Klaus Schmidinger wrote:
On 02/17/08 18:31, Reinhard Nissl wrote:
Hi,
Klaus Schmidinger schrieb:
The basic problem, as Reinhard pointed out, is that Transferring() doesn't return the right value at this time, because the transfer player hasn't been attached, yet.
This change determines the Transferring condition from the fact that the actual device is different than the primary device, which is already the case at this early stage:
--- device.c 2008/02/16 13:52:11 1.153 +++ device.c 2008/02/17 15:55:06 @@ -1159,7 +1159,7 @@
bool cDevice::Transferring(void) const {
- return dynamic_cast<cTransfer *>(player) != NULL;
- return ActualDevice() != PrimaryDevice();
}
bool cDevice::AttachPlayer(cPlayer *Player)
I hope this doesn't have any other side effects...
Hmm, this might break vdr-xine. I remember a discussion which led to the introduction of cDevice::Transferring(), but I'm not sure whether I was using the same code before, which is now used to implement this function.
As I'm currently busy with other things, I won't find time to test this change the next days.
Can somebody else with vdr-xine please test whether this works?
Although I don't see how this change could affect vdr-xine. But it should be checked, anyway.
I have tested this with xineliboutput and have not encountered any problems. And it seems to have also fixed whatever it was that was causing the error messages.
-Petri