diff options
author | hschang <chang@dev3> | 2017-06-14 06:40:53 (GMT) |
---|---|---|
committer | hschang <chang@dev3> | 2017-06-14 06:40:53 (GMT) |
commit | 1a3b0c71ac68860659e72185b9e32e94f3d2c87c (patch) | |
tree | 990fd6ed4cd5c237b7eaf6383b17b9b0573ced1e | |
parent | 111726307a7dee30c221e10ff144ed27ffb6283c (diff) |
[DVBCI] set tuner source A~R
-rw-r--r-- | lib/dvb_ci/dvbci.cpp | 59 | ||||
-rw-r--r-- | lib/dvb_ci/dvbci.h | 2 |
2 files changed, 10 insertions, 51 deletions
diff --git a/lib/dvb_ci/dvbci.cpp b/lib/dvb_ci/dvbci.cpp index 374672a..cd59eda 100644 --- a/lib/dvb_ci/dvbci.cpp +++ b/lib/dvb_ci/dvbci.cpp @@ -495,10 +495,9 @@ void eDVBCIInterfaces::recheckPMTHandlers() data_source tuner_source = TUNER_A; switch (tunernum) { - case 0: tuner_source = TUNER_A; break; - case 1: tuner_source = TUNER_B; break; - case 2: tuner_source = TUNER_C; break; - case 3: tuner_source = TUNER_D; break; + case 0 ... 18: + tuner_source = (data_source)tunernum; + break; default: eDebug("try to get source for tuner %d!!\n", tunernum); break; @@ -646,6 +645,8 @@ int eDVBCIInterfaces::getMMIState(int slotid) return slot->getMMIState(); } +static const char *tuner_source[] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "CI0", "CI1", "CI2", "CI3"}; + int eDVBCIInterfaces::setInputSource(int tuner_no, data_source source) { // eDebug("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); @@ -666,29 +667,8 @@ int eDVBCIInterfaces::setInputSource(int tuner_no, data_source source) switch(source) { - case CI_A: - fprintf(input, "CI0"); - break; - case CI_B: - fprintf(input, "CI1"); - break; - case CI_C: - fprintf(input, "CI2"); - break; - case CI_D: - fprintf(input, "CI3"); - break; - case TUNER_A: - fprintf(input, "A"); - break; - case TUNER_B: - fprintf(input, "B"); - break; - case TUNER_C: - fprintf(input, "C"); - break; - case TUNER_D: - fprintf(input, "D"); + case TUNER_A ... CI_D: + fprintf(input, tuner_source[(int)source]); break; default: eDebug("setInputSource for input %d failed!!!\n", (int)source); @@ -1281,29 +1261,8 @@ int eDVBCISlot::setSource(data_source source) 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"); + case TUNER_A ... CI_D: + fprintf(ci, tuner_source[(int)source]); break; default: eDebug("CI Slot %d: setSource %d failed!!!\n", getSlotID(), (int)source); diff --git a/lib/dvb_ci/dvbci.h b/lib/dvb_ci/dvbci.h index de84e18..ec82ec2 100644 --- a/lib/dvb_ci/dvbci.h +++ b/lib/dvb_ci/dvbci.h @@ -35,7 +35,7 @@ struct queueData enum data_source { - TUNER_A, TUNER_B, TUNER_C, TUNER_D, CI_A, CI_B, CI_C, CI_D + TUNER_A=0, TUNER_B, TUNER_C, TUNER_D, TUNER_E, TUNER_F, TUNER_G, TUNER_H, TUNER_I, TUNER_J, TUNER_K, TUNER_L, TUNER_M, TUNER_N, TUNER_O, TUNER_P, TUNER_Q, TUNER_R, CI_A, CI_B, CI_C, CI_D }; typedef std::pair<std::string, uint32_t> providerPair; |