Optionskanäle über die nhttpd API, die Zweite...

Wünsche, Anträge, Fehlermeldungen
arno-neutrinoTV
Einsteiger
Einsteiger
Beiträge: 108
Registriert: Freitag 14. April 2006, 11:21

Optionskanäle über die nhttpd API, die Zweite...

Beitrag von arno-neutrinoTV »

Hi,

Vor nicht allzulanger Zeit wurde auf mein Request hin von yjogol die neue nhttp API Funktion /control/zapto?getallsubchannels in den nhttpd eingebaut! Diese funktioniert seit nhttpd 2.2.4 bestens und wird mittlerweile in neutrinoTV (1.1 B2365) verwendet um die Optionskanäle anzuzeigen. Ein großes Danke nochmal an yjogol!

Leider ist das, noch nicht der ganze Weg:

/control/zapto?getallsubchannels liefert als Ergebnis folgendes:

Code: Alles auswählen

/control/zapto?getallsubchannels
0x10085003f Direkt Portal
....
also "<Channel-ID> <Name>" des Subkanals. Zum Anzeigen funktioniert das immer! Wenn ich nun allerdings auf einen dieser subkanäle mit Hilfe von /control/zapto?<Channel-ID> umschalten will, so geht dies NUR wenn neutrino diese Channel-ID auch kennt, d.h. sie MUSS in der myservices.xml eingetragen sein (oder in der services.xml) - ist sie das nicht, so wird neutrino einfach nicht umschalten und auf dem portal stehen bleiben.

Mein Ziel wäre allerdings eine Unterstützung der Optionskanäle völlig ohne die Hilfe einer myservices.xml.

Wie man das am besten lösst, weiss ich leider nicht, da ich nicht genau weiss wie zapit(?) intern die Kanäle verwaltet.

Spontan fallen mir zwei gehbare Wege ein:

1.) /control/zapto?<cid> so anpassen, dass wenn er eine cid bekommt, welche einem unterkanal entspricht eben auf diesen umzuschalten - auch wenn dieser Kanal nicht explizit in der services.xml oder myservices.xml auftaucht. Das wäre meines Erachtens die Beste und transparenteste Lösung. Gleichzeitig sollte dann ein Aufruf von /control/zapto auch immer die korrekte channel-id zurückliefern - bei normelen Sender ist das ja auch kein Problem, nur bei NVOD Sender liefert diese Anfrage immer die cid vom Portal und nicht die vom unterkanal.
Ich denk das wäre ein saubere Lösung, weiss allerdings aufgrund meiner Unkentniss über die interna von zapit nicht ob das so überhaupt möglich ist.

2.) Ein extra kommando zu umschalten der unterkanäle, ähnlich dem pzapit -nvod. Dann müsste mal allerdings weitere Befehle einführen, wie z.B.:
/control/zapto?getallsubchannels müsste minimal erweitert werden (nicht zwingend wenn man sich auf die Reihenfolge verlassen kann)
mit der Rückgabe <cid> <nr> <name>, wobei <nr> die nr des unterkanals darstellt, also 0,1, ..

Code: Alles auswählen

/control/zapto?getallsubchannels
Rückgabe:
<cid> <nr> <name>

Um den aktuellen subkanal zu bestimmen würde man noch /control/zapto?getcurrentsubchannel mit dem Rückgabewert <nr> benötigen

Code: Alles auswählen

/control/zapto?getcurrentsubchannel
Rückgabewert:
<nr>

Un zu guter Letzt bräuchte man noch ein Umschaltkommado:

Code: Alles auswählen

/control/zapto?subchannel=<nr>
Rückgabe: OK/Error

Jo, das wäre mein derzeitiger Wunsch. Ich würde die erste Alternative bevorzugen wenn sie machbar ist. Was denken die Entwickler der entsprecheden daemons? (nhttpd, zapit)

Grüßle und Danke für Lesen des langen Beitrags :)
Arno