Hi,
Sorry if it's a trivial question (or a non-sense one), i'm wondering how I could change the priority of the receiver when xine is connected to vdr-xine. (i may not be using the correct vocabulary)
In fact i'd like to resolve some priorities issues. I'm running 2 vdr instances, both with vdr-xine; one is accessing the dvb devices and running streamdev-server, the other one just running streamdev-client. I'd like streamdev-server not to take over vdr-xine when xine is connected to vdr. I thought i could do that playing priorities. Could you give a little explanation on how i could do that ?
TIA.
syrius.ml@no-log.org writes:
Hi,
Sorry if it's a trivial question (or a non-sense one), i'm wondering how I could change the priority of the receiver when xine is connected to vdr-xine. (i may not be using the correct vocabulary)
In fact i'd like to resolve some priorities issues. I'm running 2 vdr instances, both with vdr-xine; one is accessing the dvb devices and running streamdev-server, the other one just running streamdev-client. I'd like streamdev-server not to take over vdr-xine when xine is connected to vdr. I thought i could do that playing priorities. Could you give a little explanation on how i could do that ?
I'm discovering how things work by grepping the sources and includes... :) ok in xineDevice.c, it's easy to add a esyslog("xine connected to device %d",cDevice::ActualDevice()->DeviceNumber()); in OnClientConnect. (but there's already a xfprint("client connected!") in xineLib.c) Not using -q, i've discovered cXineDevice::SetPlayMode is called everytime i change the channel. from it i can check m_xineLib.isConnected().
Hmm while i continue to seek, could you confirm it will be possible to set the receiving device priority from xineDevice.C ?
Very likely i'll will answer this myself in a few hours ;)
syrius.ml@no-log.org writes:
Hmm while i continue to seek, could you confirm it will be possible to set the receiving device priority from xineDevice.C ?
Very likely i'll will answer this myself in a few hours ;)
Ok, if i've understood things well, i can't without adding a new protected function to cDevice. (i guess it's the nice way and that it could be worst: cReceiver *receiver[MAXRECEIVERS]; could be moved from private to protected)
Ok, maybe i should think in silence :)
Hi,
syrius.ml@no-log.org wrote:
Hmm while i continue to seek, could you confirm it will be possible to set the receiving device priority from xineDevice.C ?
Very likely i'll will answer this myself in a few hours ;)
Ok, if i've understood things well, i can't without adding a new protected function to cDevice. (i guess it's the nice way and that it could be worst: cReceiver *receiver[MAXRECEIVERS]; could be moved from private to protected)
Ok, maybe i should think in silence :)
Well, please keep in mind that you'll have to change receiver priority whenever a new receiver is created (e. g. when a transfer thread is started e. g. after replaying a recording or when switching channels). So cXineDevice::SetPlayMode() is your friend ;-)
Bye.
Reinhard Nissl rnissl@gmx.de writes:
Hmm while i continue to seek, could you confirm it will be possible to set the receiving device priority from xineDevice.C ?
Very likely i'll will answer this myself in a few hours ;)
Ok, if i've understood things well, i can't without adding a new protected function to cDevice. (i guess it's the nice way and that it could be worst: cReceiver *receiver[MAXRECEIVERS]; could be moved from private to protected) Ok, maybe i should think in silence :)
Well, please keep in mind that you'll have to change receiver priority whenever a new receiver is created (e. g. when a transfer thread is started e. g. after replaying a recording or when switching channels). So cXineDevice::SetPlayMode() is your friend ;-)
Oh yes, that's what i've found, but SetPlayMode() doesn't know when the client connects to the plugin. So I have to play in both SetPlayMode (and check if a client is connected) and OnClientConnect/Disconnect.
I just thought I could do that without modifying vdr. (it seems i can't, but i'd love to read i'm wrong)
I'll propose a new method, it doesn't cost anything to propose :-) Maybe it could help solving something that hasn't been solved (i think): http://thread.gmane.org/gmane.linux.vdr/23212