+ if (eDVBCIInterfaces::getInstance()->getNumOfSlots() > 1) // FIXME .. we force DM8000 when more than one CI Slot is avail
+ {
+ char buf[64];
+ snprintf(buf, 64, "/proc/stb/tsmux/ci%d_input", slotid);
+ FILE *ci = fopen(buf, "wb");
+ switch(source)
+ {
+ case CI_A:
+ fprintf(ci, "CI0");
+ break;
+ case CI_B:
+ fprintf(ci, "CI1");
+ break;
+ case CI_C:
+ fprintf(ci, "CI2");
+ break;
+ case CI_D:
+ fprintf(ci, "CI3");
+ break;
+ case TUNER_A:
+ fprintf(ci, "A");
+ break;
+ case TUNER_B:
+ fprintf(ci, "B");
+ break;
+ case TUNER_C:
+ fprintf(ci, "C");
+ break;
+ case TUNER_D:
+ fprintf(ci, "D");
+ break;
+ default:
+ eDebug("CI Slot %d: setSource %d failed!!!\n", getSlotID(), (int)source);
+ break;
+ }
+ fclose(ci);
+ }
+ else // DM7025
+ {
+// eDebug("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+// eDebug("eDVBCISlot::enableTS(%d %d)", enable, (int)source);
+ FILE *ci = fopen("/proc/stb/tsmux/input2", "wb");
+ if(ci == NULL) {
+ eDebug("cannot open /proc/stb/tsmux/input2");
+ return 0;
+ }
+ if (source != TUNER_A && source != TUNER_B)
+ eDebug("CI Slot %d: setSource %d failed!!!\n", getSlotID(), (int)source);
+ else
+ fprintf(ci, "%s", source==TUNER_A ? "A" : "B"); // configure CI data source (TunerA, TunerB)
+ fclose(ci);
+ }
+ eDebug("CI Slot %d setSource(%d)", getSlotID(), (int)source);
+ return 0;
+}
+
+int eDVBCISlot::setClockRate(int rate)
+{