aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb_ci
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-01-23 15:21:59 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-01-23 15:21:59 +0000
commitc8e724bf4828077d60b2d969fc210c0c5b722506 (patch)
tree291de8784bc52cbaeb192f1c916587bc8cfbce6d /lib/dvb_ci
parent82afad7661dffa00f29c80cbe4e9865ace1e0730 (diff)
downloadenigma2-c8e724bf4828077d60b2d969fc210c0c5b722506.tar.gz
enigma2-c8e724bf4828077d60b2d969fc210c0c5b722506.zip
fix non working ENQ fields in CI mmi (PIN inputs and other)
TODO: make MMI global useable (at moment just in the mmi setup)
Diffstat (limited to 'lib/dvb_ci')
-rw-r--r--lib/dvb_ci/dvbci_mmi.cpp8
-rw-r--r--lib/dvb_ci/dvbci_ui.cpp6
-rw-r--r--lib/dvb_ci/dvbci_ui.h1
3 files changed, 12 insertions, 3 deletions
diff --git a/lib/dvb_ci/dvbci_mmi.cpp b/lib/dvb_ci/dvbci_mmi.cpp
index 99426d04..d1103c55 100644
--- a/lib/dvb_ci/dvbci_mmi.cpp
+++ b/lib/dvb_ci/dvbci_mmi.cpp
@@ -189,8 +189,12 @@ int eDVBCIMMISession::answerEnq(char *answer)
unsigned int len = strlen(answer);
printf("eDVBCIMMISession::answerEnq(%d bytes)\n", len);
+ unsigned char data[len+1];
+ data[0] = 0x01; // answer ok
+ memcpy(data+1, answer, len);
+
unsigned char tag[]={0x9f, 0x88, 0x08};
- sendAPDU(tag, (unsigned char*)answer, len);
+ sendAPDU(tag, data, len+1);
return 0;
}
@@ -200,7 +204,7 @@ int eDVBCIMMISession::cancelEnq()
printf("eDVBCIMMISession::cancelEnq()\n");
unsigned char tag[]={0x9f, 0x88, 0x08};
- unsigned char data[]={0x00};
+ unsigned char data[]={0x00}; // canceled
sendAPDU(tag, data, 1);
return 0;
diff --git a/lib/dvb_ci/dvbci_ui.cpp b/lib/dvb_ci/dvbci_ui.cpp
index 0716f6c8..d36ea6ec 100644
--- a/lib/dvb_ci/dvbci_ui.cpp
+++ b/lib/dvb_ci/dvbci_ui.cpp
@@ -60,10 +60,14 @@ void eDVBCI_UI::setAppName(int slot, const char *name)
appName = name;
}
+void eDVBCI_UI::setInit(int slot)
+{
+ eDVBCIInterfaces::getInstance()->sendCAPMT(slot);
+}
+
void eDVBCI_UI::setReset(int slot)
{
eDVBCIInterfaces::getInstance()->reset(slot);
- return;
}
int eDVBCI_UI::startMMI(int slot)
diff --git a/lib/dvb_ci/dvbci_ui.h b/lib/dvb_ci/dvbci_ui.h
index abf6173a..4f23974e 100644
--- a/lib/dvb_ci/dvbci_ui.h
+++ b/lib/dvb_ci/dvbci_ui.h
@@ -32,6 +32,7 @@ public:
void setState(int slot, int state);
std::string getAppName(int slot);
void setAppName(int slot, const char *name);
+ void setInit(int slot);
void setReset(int slot);
int initialize(int slot);
int startMMI(int slot);