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");
int sendCAPMT(eDVBServicePMTHandler *ptr, const std::vector<uint16_t> &caids=std::vector<uint16_t>());
uint8_t getPrevSentCAPMTVersion() const { return prev_sent_capmt_version; }
void resetPrevSentCAPMTVersion() { prev_sent_capmt_version = 0xFF; }
+
+ enableTS(int enable);
+
};
struct CIPmtHandler
int answerEnq(int slot, char *value);
int cancelEnq(int slot);
int getMMIState(int slot);
+ int enableTS(int slot, int enable);
};
#endif
void eDVBCI_UI::setState(int slot, int newState)
{
state[slot] = newState;
+
+ if(newState == 2) //enable TS
+ eDVBCIInterfaces::getInstance()->enableTS(slot, 1);
}
std::string eDVBCI_UI::getAppName(int slot)