Klaus Schmidinger wrote:
So it's either
void Recording(const cDevice *Device, const char *FileName)
which would be code compatible but might break plugins at runtime that rely on the string being a pure name, or
void Recording(const cDevice *Device, const char *Name, const char *FileName)
which extends the interface to hold a second parameter that contains the actual file name (or NULL, if there is none), but would break plugins st compile time.
Same goes for Replaying(), of course.
To me it's all the same, so let's here the votes.
Imho it is far more dangerous to break a plugin at run-time because changes are not obvious. Incompatible changes of an interface should always break compilation. I have no problems to release a new version of the remote plugin...
Recording/Replaying should pass the _same_ file name (short name, full name or whatever).
If a recording has been stopped, Recording() should also pass the file name. Otherwise you never know which recording has stopped. ;-(
For example: void Recording(const cDevice *Device, const char *FileName, bool On)
The same should be done for Replaying(). void Replaying(const cControl *Control, const char *FileName, bool On)
Just my 2 cents.
Oliver