RFC: SID² - Simple Interface for D-box 2

Elminster
Senior Member
Beiträge: 147
Registriert: Freitag 3. August 2001, 00:00

Beitrag von Elminster »

SID² - Simple Interface for D-box 2
-----------------------------------

getList
=======

<methodCall>
<methodName>getList</methodName>
<params>
<param> <!-- parentHandle - Leerstring für rootnode; ansonsten ein
handle das von der box zurückgeliefert wurde -->
<value><string></string></value>
</param>
</params>
</methodCall>

<methodResponse>
<params><param>
<value><array>

<value><struct>

<member> <!-- caption - Name des Bouquet, Service, Event, was auch immer
wird dem Benutzer so angezeigt -->
<name>caption</name>
<value><string></string></value>
</member>

<member> <!-- type - Typ der node; wird vorerst nur verwendet um das Image im
TreeView festzulegen. Gültige Werte: Group, Service, Event -->
<name>type</name>
<value><string></string></value>
</member>

<member> <!-- handle - über diesen string wird die node identifiziert. Das
handle muss genug informationen enthalten um die node auch
ohne angabe des parenthandles eindeutig zu identifizieren -->
<name>handle</name>
<value><string></string></value>
</member>

<!-- evtl. weiter optionale members, bei events z.b. anfangszeit und länge -->

</struct></value>

<value><struct>
<!-- beliebig oft: s. o. -->
</struct></value>

</array></value>
</param></params>
</methodResponse>

Mögliche faults:
1 - busy, try again later
2 - unexpected error
3 - invalid handle
4 - need zap to parent

Falls möglich sollte diese methode auch aufrufbar sein ohne das vorher auf den parent
gezapt werden muss. Falls dies nicht möglich ist sollte fault 4 zurückgeliefert werden.


zapTo
=====

<methodCall>
<methodName>zapTo</methodName>
<params>
<param> <!-- handle - ein handle das von der box zurückgeliefert wurde -->
<value><string></string></value>
</param>
</params>
</methodCall>

<methodResponse>
</methodResponse>

Mögliche faults:
1 - busy, try again later
2 - unexpected error
3 - invalid handle
5 - record mode active

Sollte recht selbsterklärend sein.

Zap befehle auf handle die nicht direkt anwählbar sind sollten nicht zu faults führen.
Bei einem Event sollte z.b. auf den dazugehörigen Service gezapt werden (auch wenn der
Event zZt nicht aktiv ist). Zap befehle auf Bouquets sollten ignoriert werden, usw...

Es muss immer möglich sein direkt zu einem handle zu zappen ohne das erst der parent
angezapt werden muss.


getInfo
=======

<methodCall>
<methodName>getInfo</methodName>
<params>
<param> <!-- handle - ein handle das von der box zurückgeliefert wurde
oder ein Leerstring. Bei einem Leerstring sollten die
informationen zum aktuellen Event (oder Service falls keine
epg infos vorliegen) zurückgegeben werden -->
<value><string></string></value>
</param>
</params>
</methodCall>

<methodResponse>
<params><param>
<value><struct>

<member> <!-- handle - optional - nur wenn ein Leerstring als handle
angegeben wurde -->
<name>parentHandle</name>
<value><string></string></value>
</member>

<member> <!-- parentHandle - handle für die parent node -->
<name>parentHandle</name>
<value><string></string></value>
</member>

<member> <!-- caption - s. getList -->
<name>caption</name>
<value><string></string></value>
</member>

<member> <!-- type - s. getList -->
<name>type</name>
<value><string></string></value>
</member>

<member> <!-- videoPid - optional - nur bei TV Services oder TV Events -->
<name>videoPid</name>
<value><i4></i4></value>
</member>

<member> <!-- audioPids - optional - nur bei Services oder Events -->
<name>audioPids</name>
<value><array>

<value><struct>

<member> <!-- audioPid -->
<name>audioPid</name>
<value><i4></i4></value>
</member>

<member> <!-- type - optional - erlaubte Werte: mpeg, ac3 -->
<name>type</name>
<value><string></string></value>
</member>

<member> <!-- language - optional -->
<name>language</name>
<value><string></string></value>
</member>

</struct></value>

<!-- beliebig oft... -->

</array></value>
</member>

<member> <!-- startDateTime - optional, für Events -->
<name>startDateTime</name>
<value><dateTime.iso8601></dateTime.iso8601></value>
</member>

<member> <!-- duration - optional, Länge des Events in Minuten -->
<name>duration</name>
<value><i4></i4></value>
</member>

<member> <!-- nextEventHandle - optional - ist gedacht für Cinedoms. Hier eine kurze Erklärung:

BouquetHandle "Premiere World"
|
+--ServiceHandle "Cinedom 1"
|
+--EventHandle "Woman On Top"
|
+--ServiceHandle "Stream 1"
| |
| +--EventHandle "19:15 bis 21:00"
| |
| +--EventHandle "21:45 bis 23:30"
|
+--ServiceHandle "Stream 2"
|
+--EventHandle "19:45 bis 21:30"
|
+--EventHandle "22:00 bis 23:45"

Bei diesem Aufbau würde getInfo für das EventHandle "Woman On Top" (und nur
bei diesem) um 19:11 als nextEventHandle das EventHandle "19:15 bis 21:00"
und um 19:16 das EventHandle "19:45 bis 21:30" zurückliefern.

So wird es möglich Aufnahmen für Cinedoms zu programmieren auch wenn zum
Zeitpunkt der Programmierung der exakte Sendezeitpunkt/Service noch nicht feststand.-->
<name>nextEventHandle</name>
<value><string></string></value>
</member>

<member> <!-- infotext - optional, kompletter infotext zum Event -->
<name>infotext</name>
<value><string></string></value>
</member>

</value></struct>
</param></params>
</methodResponse>

Mögliche faults:
1 - busy, try again later
2 - unexpected error
3 - invalid handle
4 - need zap to parent

Falls möglich sollte diese methode auch aufrufbar sein ohne das vorher auf den parent
gezapt werden muss. Falls dies nicht möglich ist sollte fault 4 zurückgeliefert werden.

beginRecordMode
===============

<methodCall>
<methodName>beginRecordMode</methodName>
<params>
<param> <!-- handle - ein handle das von der box zurückgeliefert wurde -->
<value><string></string></value>
</param>
</params>
</methodCall>

<methodResponse>
</methodResponse>


Mögliche faults:
1 - busy, try again later
2 - unexpected error
3 - invalid handle
4 - need zap to parent
5 - record mode active

Falls möglich sollte diese methode auch aufrufbar sein ohne das vorher auf den parent
gezapt werden muss. Falls dies nicht möglich ist sollte fault 4 zurückgeliefert werden.

Solange der RecordMode aktiv ist sollte es nicht möglich sein irgendwelche Aktionen
durchzuführen die zu einem abbruch des Record Modes führen. (über die GUI direkt nur
gegen Sicherheitsabfrage)


endRecordMode
===============

<methodCall>
<methodName>endRecordMode</methodName>
</methodCall>

Mögliche faults:
1 - busy, try again later
2 - unexpected error

Selbsterklärend.
TheDOC
Senior Member
Beiträge: 697
Registriert: Freitag 20. Juli 2001, 00:00

Beitrag von TheDOC »

Als URL nehmen wir [url]http://<boxip>/RPC2[/url]?
Elminster
Senior Member
Beiträge: 147
Registriert: Freitag 3. August 2001, 00:00

Beitrag von Elminster »

http:/dbox/SID2/

Auf meinem ftp (wingrab.elitedvb.net) liegt die beschreibung noch mal als sid².txt mit korrekten einrückungen.
TheDOC
Senior Member
Beiträge: 697
Registriert: Freitag 20. Juli 2001, 00:00

Beitrag von TheDOC »

Fehler:
<member> <!-- handle - optional - nur wenn ein Leerstring als handle
angegeben wurde -->
<name>parentHandle</name>
<value><string></string></value>
</member>
Bei getInfo... Das sollte nur handle heißen und nicht parentHandle.

Weiterhin fehlt noch bei getList ein Boolean namens zappable.

Wenn man getInfo anfordert von einem Service, dann muss wohl oder übel auf diesen Servioe gezappt werden. Das nehmen wir dann in Kauf, oder?
TheDOC
Senior Member
Beiträge: 697
Registriert: Freitag 20. Juli 2001, 00:00

Beitrag von TheDOC »

Weiterhin:
<member> <!-- videoPid - optional - nur bei TV Services oder TV Events -->
<name>videoPid</name>
<value><i4></i4></value>
</member>
Bei TV-Events ist das schlecht, weil sich die VPID und die APID(s) ja auch noch ändern können (Oder z.B. zum Zeitpunkt des Event-Lesens garnicht existieren, K-Toon und Beate Uhse.TV als Beispiel). Da sollte also Wingrab lieber auf das parentHandle zappen und dann von dort VPID und APID holen.

<font size=-1>[ This Message was edited by: TheDOC on 2001-12-07 02:22 ]</font>