diff --git a/lib/libcoolstream/ca_cs.h b/lib/libcoolstream/ca_cs.h index fa9a1a705..638762b83 100644 --- a/lib/libcoolstream/ca_cs.h +++ b/lib/libcoolstream/ca_cs.h @@ -100,7 +100,7 @@ public: u32 GetNumberCISlots(void); u32 GetNumberSmartCardSlots(void); // static cCA *GetInstance(void); - bool SendPMT(int Unit, unsigned char *Data, int Len); + bool SendPMT(int Unit, unsigned char *Data, int Len, enum CA_SLOT_TYPE SlotType = CA_SLOT_TYPE_ALL); bool SendMessage(const CA_MESSAGE *Msg); void SetInitMask(enum CA_INIT_MASK InitMask); bool Start(void); diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index 51443b6a9..60ab0e75f 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -442,6 +442,7 @@ printf("[zapit] saving channel, apid %x sub pid %x mode %d volume %d\n", g_curre pmt_stop_update_filter(&pmt_update_fd); + ca->SendPMT(0, (unsigned char*) "", 0, CA_SLOT_TYPE_CI); stopPlayBack(!forupdate); if(!forupdate && g_current_channel && g_current_channel->getCaPmt()) { @@ -725,7 +726,7 @@ void unsetRecordMode(void) cam1->sendMessage(0,0); // stop cam0->setCaPmt(g_current_channel->getCaPmt(), DEMUX_SOURCE_0, cam0->getCaMask() & ~DEMUX_DECODE_2 /*1*/); // start } - ca->SendPMT(DEMUX_SOURCE_2, (unsigned char*) "", 0); + ca->SendPMT(DEMUX_SOURCE_2, (unsigned char*) "", 0, CA_SLOT_TYPE_SMARTCARD); rec_channel_id = 0; } @@ -1993,7 +1994,7 @@ int stopPlayBack(bool stop_camd) cam0->sendMessage(0,0); unlink("/tmp/pmt.tmp"); } - ca->SendPMT(0, (unsigned char*) "", 0); + ca->SendPMT(0, (unsigned char*) "", 0, CA_SLOT_TYPE_SMARTCARD); } printf("stopPlayBack: standby %d forced %d\n", standby, playbackStopForced);