Der code von den komischen Helpern ist ziemlich zusammengeschustert weil er wahrscheinlich von Boxen stammt die das was die 7080 kann gar nicht unterstützt, weswegen das CI handling für eine korrekte Zuordnung eben nicht wirklich optimal ist.
Naturlich ist der code unserer Freunde dazu da primär die richtigen Tunernamen zu ermitteln. Das A1/A2 ist ja eine Spezialitäöt von 8000 und 7080 aber es soll ja Leute geben die statt dem Dualtuner einen 3. DVB-C reinsteckemn und dann macht es Sinn aus den nim_sockets die Tunernamen auszulesen.
Aber ganz am Anfang wird das inputX einfach aus der Tuner nummer bestimmt:
snprintf(buf, 64, "/proc/stb/tsmux/input%d", tuner_no);
Wenn das so einfach ist und die tuner nummer der nim nummer entspricht und man ja im ciX_input immer stehen hat welcher tuner in welches CI bläst dann kann es ja nicht so schwer sein das in python korrekt nachzubauen, ausser Ihr hättet das im DreamOS total anders implementiert.
Dann müsste ich immer nur wissen mit welchem Tuner die jeweilige serviceref gerade getuned wird, dann wüsste ich dessen tuner nummer und damit dessen korrekte inputX wo dann halt das richtige CIX reingeschrieben gehört.
Oder einfacher - auslesen der ciX_input welcher tuner dort drinnen steht, dann daraus die tuner nummer ermittlen und damit wissen welches inputX verwendet wird.
Ich hoffe das erklärt meine Frage besser
Hier noch ein Beispiel mit laufendem PIP wo jeweils ein Modul pro sender benötigt wird:
cat /proc/stb/tsmux/ci0_input
A1
cat /proc/stb/tsmux/input0
CI0
cat /proc/stb/tsmux/ci1_input
A2
cat /proc/stb/tsmux/input1
CI1
das obere CI wird von A1 mit der nim nummer 0 befüttert, weswegen im input0 also CI0 stehen muss.
das untere CI wird von A2 mit der nim nummer 1 befüttert, weswegen im input1 also CI1 stehen muss.