+ return 0;
+}
+
+void eDVBCISlot::removeService(uint16_t program_number)
+{
+ if (program_number == 0xFFFF)
+ running_services.clear(); // remove all
+ else
+ running_services.erase(program_number); // remove single service
+}
+
+int eDVBCISlot::enableTS(int enable, int tuner)
+{
+// eDebug("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+// eDebug("eDVBCISlot::enableTS(%d %d)", enable, tuner);
+
+ FILE *input0, *input1, *ci;
+ if((input0 = fopen("/proc/stb/tsmux/input0", "wb")) == NULL) {
+ eDebug("cannot open /proc/stb/tsmux/input0");
+ return 0;
+ }
+ if((input1 = fopen("/proc/stb/tsmux/input1", "wb")) == NULL) {
+ eDebug("cannot open /proc/stb/tsmux/input1");
+ return 0;
+ }
+ if((ci = fopen("/proc/stb/tsmux/input2", "wb")) == NULL) {
+ eDebug("cannot open /proc/stb/tsmux/input2");
+ return 0;
+ }
+
+ fprintf(ci, "%s", tuner==0 ? "A" : "B"); // configure CI data source (TunerA, TunerB)
+ fprintf(input0, "%s", tuner==0 && enable ? "CI" : "A"); // configure ATI input 0 data source
+ fprintf(input1, "%s", tuner==1 && enable ? "CI" : "B"); // configure ATI input 1 data source
+
+ fclose(input0);
+ fclose(input1);
+ fclose(ci);
+ return 0;