From 3a4cded5d8bf60eed04669c76f8d4d7398cdafbc Mon Sep 17 00:00:00 2001 From: BPanther Date: Sun, 2 Sep 2018 14:19:42 +0200 Subject: [PATCH] vusolo4k: more tuner --- common/ca_ci.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ include/ca_ci.h | 14 ++++++++++++++ include/dmx_hal.h | 4 ++++ libarmbox/dmx.cpp | 14 ++++++++++++++ 4 files changed, 74 insertions(+) diff --git a/common/ca_ci.cpp b/common/ca_ci.cpp index 0f6c05d..335c8c4 100644 --- a/common/ca_ci.cpp +++ b/common/ca_ci.cpp @@ -1011,6 +1011,44 @@ void cCA::setSource(eDVBCISlot* slot) case TUNER_D: fprintf(ci, "D"); break; +#if BOXMODEL_VUSOLO4K + case TUNER_E: + fprintf(ci, "E"); + break; + case TUNER_F: + fprintf(ci, "F"); + break; + case TUNER_G: + fprintf(ci, "G"); + break; + case TUNER_H: + fprintf(ci, "H"); + break; + case TUNER_I: + fprintf(ci, "I"); + break; + case TUNER_J: + fprintf(ci, "J"); + break; + case TUNER_K: + fprintf(ci, "K"); + break; + case TUNER_L: + fprintf(ci, "L"); + break; + case TUNER_M: + fprintf(ci, "M"); + break; + case TUNER_N: + fprintf(ci, "N"); + break; + case TUNER_O: + fprintf(ci, "O"); + break; + case TUNER_P: + fprintf(ci, "P"); + break; +#endif } fclose(ci); } @@ -1025,7 +1063,11 @@ void cCA::setInputs() char choices[64]; FILE * fd = 0; +#if BOXMODEL_VUSOLO4K + for (int number = 0; number < 16; number++) // tuner A to P, input 0 to 15 +#else for (int number = 0; number < 4; number++) // tuner A to D, input 0 to 3 +#endif { snprintf(choices, 64, "/proc/stb/tsmux/input%d_choices", number); if(access(choices, R_OK) < 0) diff --git a/include/ca_ci.h b/include/ca_ci.h index 5a75650..802f314 100644 --- a/include/ca_ci.h +++ b/include/ca_ci.h @@ -126,6 +126,20 @@ typedef enum { TUNER_B, TUNER_C, TUNER_D +#if BOXMODEL_VUSOLO4K + , TUNER_E + , TUNER_F + , TUNER_G + , TUNER_H + , TUNER_I + , TUNER_J + , TUNER_K + , TUNER_L + , TUNER_M + , TUNER_N + , TUNER_O + , TUNER_P +#endif } source_t; typedef enum { diff --git a/include/dmx_hal.h b/include/dmx_hal.h index 4463b70..c97d8cb 100644 --- a/include/dmx_hal.h +++ b/include/dmx_hal.h @@ -36,7 +36,11 @@ extern "C" { #include +#if BOXMODEL_VUSOLO4K +#define MAX_DMX_UNITS 16 +#else #define MAX_DMX_UNITS 4 +#endif typedef enum { diff --git a/libarmbox/dmx.cpp b/libarmbox/dmx.cpp index 10f2f32..8d973ba 100644 --- a/libarmbox/dmx.cpp +++ b/libarmbox/dmx.cpp @@ -75,7 +75,11 @@ static const char *DMX_T[] = { static int dmx_source[NUM_DEMUX] = { 0, 0, 0, 0 }; /* map the device numbers. */ +#if BOXMODEL_VUSOLO4K +#define NUM_DEMUXDEV 16 +#else #define NUM_DEMUXDEV 8 +#endif static const char *devname[NUM_DEMUXDEV] = { "/dev/dvb/adapter0/demux0", "/dev/dvb/adapter0/demux1", @@ -85,6 +89,16 @@ static const char *devname[NUM_DEMUXDEV] = { "/dev/dvb/adapter0/demux5", "/dev/dvb/adapter0/demux6", "/dev/dvb/adapter0/demux7" +#if BOXMODEL_VUSOLO4K + , "/dev/dvb/adapter0/demux8" + , "/dev/dvb/adapter0/demux9" + , "/dev/dvb/adapter0/demux10" + , "/dev/dvb/adapter0/demux11" + , "/dev/dvb/adapter0/demux12" + , "/dev/dvb/adapter0/demux13" + , "/dev/dvb/adapter0/demux14" + , "/dev/dvb/adapter0/demux15" +#endif }; /* did we already DMX_SET_SOURCE on that demux device? */ static bool init[NUM_DEMUXDEV] = { false, false, false, false, false, false, false, false };