return slot->reset();
}
+int eDVBCIInterfaces::enableTS(int slotid, int enable)
+{
+ eDVBCISlot *slot;
+
+ if( (slot = getSlot(slotid)) == 0 )
+ return -1;
+
+ return slot->enableTS(enable);
+}
+
int eDVBCIInterfaces::initialize(int slotid)
{
eDVBCISlot *slot;
if(what == eSocketNotifier::Priority) {
if(state != stateRemoved) {
state = stateRemoved;
+ enableTS(0);
printf("ci removed\n");
notifier->setRequested(eSocketNotifier::Read);
//HACK
eDVBCISlot::~eDVBCISlot()
{
+ enableTS(0);
}
int eDVBCISlot::getSlotID()
{
printf("edvbcislot: reset requested\n");
+ enableTS(0);
+
ioctl(fd, 0);
return 0;
}
+int eDVBCISlot::enableTS(int enable)
+{
+ printf("eDVBCISlot::enableTS(%d)\n", enable);
+
+ FILE *f;
+ if((f = fopen("/proc/stb/tsmux/input0", "wb")) == NULL) {
+ printf("cannot open /proc/stb/audio/j1_mute\n");
+ return;
+ }
+
+ fprintf(f, "%s", enable?"CI":"A");
+
+ fclose(f);
+
+ return 0;
+}
+
+
eAutoInitP0<eDVBCIInterfaces> init_eDVBCIInterfaces(eAutoInitNumbers::dvb, "CI Slots");