Patrick Fischer wrote:
Klaus Schmidinger schrieb:
Patrick Fischer wrote:
By the way... -how to realize that a receiver was detached? -how to ask if ANY cDevice can ProvidesChannel?
I know if I create a receiver with prio -1 vdr can detach it if vdr needs the device.
My Problem is: If I create a receiver with prio -1 then vdr can detach it. Thats OK. But if I want to know if a device can handle my new receiver(on an defined channel) then cDevice->ProvideChannel() show me allways that the first device can handle my receiver. Thats because my first receiver has prio -1.
If I create my receiver with prio 1 then cDevice->ProvideChannel() tells me that the device is used. Thats better but in this case vdr don't detach my receiver.
Calling ProvidesChannel(-1) tells you whether the device can pricipally provide this channel, no matter what receivers it currently has attached to it. Why don't you just skip your first device if you already know that you don't want to use that one?
It would be nice if vdr can detach all receiver with prio <50.
What would that be good for?
Klaus
-I want always receive Channel X -The user should switch if he want to -And I want to allot some receiver for some channels(vpids) But this needs some management.
It's difficult to explane, but I try:
//some defines: Userreceiver(int channel) : the user want to see or record some channel myreceiver(int channel, int vpid) : I want to receive some data from channel staticreceiver(int channel, int vpid): this receiver should always receive the vpid from channel
Same Transponder {1,2,3,4}{5,6,7,8}{9,10,11,12}{13,14,15,16}
Getting started: Device 0: Userreceiver(4) Device 1: Device 2: staticreceiver(14,42)
->Add new myreceiver(5,213): can be attached to Device 1
Device 0: Userreceiver(4) Device 1: myreceiver(5,11) Device 2: staticreceiver(14,42)
->Add new myreceiver(2,113): can be attached to Device 0
Device 0: Userreceiver(4),myreceiver(2,113) Device 1: myreceiver(5,11) Device 2: staticreceiver(14,42)
->Add new myreceiver(7,413): can be attached to Device 1
Device 0: Userreceiver(4),myreceiver(2,113) Device 1: myreceiver(5,11),myreceiver(7,413) Device 2: staticreceiver(14,42)
->Add new myreceiver(16,515): can be attached to Device 2
Device 0: Userreceiver(4),myreceiver(2,113) Device 1: myreceiver(5,11),myreceiver(7,413) Device 2: staticreceiver(14,42),myreceiver(16,515)
->User want to switch to Channel(11): myreceiver(2,113) must be detached
Device 0: Userreceiver(11) Device 1: myreceiver(5,11),myreceiver(7,413) Device 2: staticreceiver(14,42),myreceiver(16,515)
If I want to add a new myreceiver, the i must find a device where to attach it. How I do that?: I ask each device if it can handle it. ->Add new myreceiver(16,515){ for all devices if(cDevice->ProvideChannel(16)) attach myreceiver(16,515) }
so I can find: device0 , device1, device2 or nodevice
If I use prio-1 the always device0 will be found. If I use prio>0 then the user can't switch to other channels if a myreceiver is also attached to device0,device1, device2.
maybe I don't understand the prio management of vdr. device0->attachReceiver(myreceiver,Prio10) if(device0->ProvideChannel(channel1,11)) device0->switchToChannel(channel1): that ought detach myreceiver!
wouldn't it be good if the switchToChannel can have a prio? Maybe 50.
Wouldn't it be enough to simply give your receiver a priority of -2 (anything less than -1 would do)? That way any recording and even a Transfer Mode (which uses priority -1) could detach your receiver.
Klaus