mirror of
https://github.com/tuxbox-neutrino/libstb-hal.git
synced 2025-08-26 15:02:58 +02:00
lib cleanup and sync for mips vu support
This commit is contained in:
@@ -41,7 +41,7 @@ static const char * FILENAME = "[ca_ci]";
|
||||
const char ci_path[] = "/dev/dvb/adapter0/ci%d";
|
||||
ca_slot_info_t info;
|
||||
#endif
|
||||
#if HAVE_ARM_HARDWARE
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
const char ci_path[] = "/dev/ci%d";
|
||||
static int last_source = -1;
|
||||
#endif
|
||||
@@ -234,7 +234,7 @@ static bool transmitData(eDVBCISlot* slot, unsigned char* d, int len)
|
||||
{
|
||||
printf("%s -> %s len(%d)\n", FILENAME, __func__, len);
|
||||
|
||||
#if BOXMODEL_VUSOLO4K || BOXMODEL_VUDUO4K || BOXMODEL_VUZERO4K
|
||||
#if BOXMODEL_VUSOLO4K || BOXMODEL_VUDUO4K || BOXMODEL_VUULTIMO4K || BOXMODEL_VUZERO4K
|
||||
#if y_debug
|
||||
for (int i = 0; i < len; i++)
|
||||
printf("%02x ", d[i]);
|
||||
@@ -263,7 +263,7 @@ static bool transmitData(eDVBCISlot* slot, unsigned char* d, int len)
|
||||
//send some data on an fd, for a special slot and connection_id
|
||||
eData sendData(eDVBCISlot* slot, unsigned char* data, int len)
|
||||
{
|
||||
#if HAVE_ARM_HARDWARE
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
unsigned char *d = (unsigned char*) malloc(len);
|
||||
memcpy(d, data, len);
|
||||
transmitData(slot, d, len);
|
||||
@@ -878,7 +878,7 @@ bool cCA::SendCAPMT(u64 tpid, u8 source, u8 camask, const unsigned char * cabuf,
|
||||
(*It)->SID[0] = SID;
|
||||
(*It)->ci_use_count = 1;
|
||||
(*It)->TP = TP;
|
||||
#if HAVE_ARM_HARDWARE
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
if(!checkLiveSlot && mode && (*It)->source != source)
|
||||
setInputSource((eDVBCISlot*)(*It), false);
|
||||
#endif
|
||||
@@ -889,7 +889,7 @@ bool cCA::SendCAPMT(u64 tpid, u8 source, u8 camask, const unsigned char * cabuf,
|
||||
(*It)->newCapmt = true;
|
||||
}
|
||||
|
||||
#if HAVE_ARM_HARDWARE
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
if ((*It)->newCapmt)
|
||||
extractPids((eDVBCISlot*)(*It));
|
||||
#endif
|
||||
@@ -917,7 +917,7 @@ bool cCA::SendCAPMT(u64 tpid, u8 source, u8 camask, const unsigned char * cabuf,
|
||||
}
|
||||
else
|
||||
{
|
||||
#if HAVE_ARM_HARDWARE
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
std::list<eDVBCISlot*>::iterator it;
|
||||
recordUse_found = false;
|
||||
for (it = slot_data.begin(); it != slot_data.end(); ++it)
|
||||
@@ -958,7 +958,7 @@ bool cCA::SendCAPMT(u64 tpid, u8 source, u8 camask, const unsigned char * cabuf,
|
||||
return true;
|
||||
}
|
||||
|
||||
#if HAVE_ARM_HARDWARE
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
void cCA::extractPids(eDVBCISlot* slot)
|
||||
{
|
||||
u32 prg_info_len;
|
||||
@@ -1017,7 +1017,7 @@ void cCA::setSource(eDVBCISlot* slot)
|
||||
case TUNER_D:
|
||||
fprintf(ci, "D");
|
||||
break;
|
||||
#if BOXMODEL_VUSOLO4K || BOXMODEL_VUDUO4K
|
||||
#if BOXMODEL_VUSOLO4K || BOXMODEL_VUDUO4K || BOXMODEL_VUULTIMO4K
|
||||
case TUNER_E:
|
||||
fprintf(ci, "E");
|
||||
break;
|
||||
@@ -1054,13 +1054,39 @@ void cCA::setSource(eDVBCISlot* slot)
|
||||
case TUNER_P:
|
||||
fprintf(ci, "P");
|
||||
break;
|
||||
#if BOXMODEL_VUULTIMO4K
|
||||
case TUNER_Q:
|
||||
fprintf(ci, "Q");
|
||||
break;
|
||||
case TUNER_R:
|
||||
fprintf(ci, "R");
|
||||
break;
|
||||
case TUNER_S:
|
||||
fprintf(ci, "S");
|
||||
break;
|
||||
case TUNER_T:
|
||||
fprintf(ci, "T");
|
||||
break;
|
||||
case TUNER_U:
|
||||
fprintf(ci, "U");
|
||||
break;
|
||||
case TUNER_V:
|
||||
fprintf(ci, "V");
|
||||
break;
|
||||
case TUNER_W:
|
||||
fprintf(ci, "W");
|
||||
break;
|
||||
case TUNER_X:
|
||||
fprintf(ci, "X");
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
fclose(ci);
|
||||
}
|
||||
}
|
||||
|
||||
#if HAVE_ARM_HARDWARE
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
static std::string getTunerLetter(int number) { return std::string(1, char(65 + number)); }
|
||||
|
||||
void cCA::setInputs()
|
||||
@@ -1069,10 +1095,14 @@ void cCA::setInputs()
|
||||
char choices[64];
|
||||
FILE * fd = 0;
|
||||
|
||||
#if BOXMODEL_VUSOLO4K || BOXMODEL_VUDUO4K
|
||||
#if BOXMODEL_VUULTIMO4K
|
||||
for (int number = 0; number < 24; number++) // tuner A to X, input 0 to 23
|
||||
#else
|
||||
#if BOXMODEL_VUSOLO4K || BOXMODEL_VUDUO4K || BOXMODEL_VUUNO4KSE
|
||||
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
|
||||
#endif
|
||||
{
|
||||
snprintf(choices, 64, "/proc/stb/tsmux/input%d_choices", number);
|
||||
@@ -1134,7 +1164,7 @@ void cCA::setInputSource(eDVBCISlot* slot, bool ci)
|
||||
case TUNER_D:
|
||||
fprintf(input, "D");
|
||||
break;
|
||||
#if BOXMODEL_VUSOLO4K || BOXMODEL_VUDUO4K
|
||||
#if BOXMODEL_VUSOLO4K || BOXMODEL_VUDUO4K || BOXMODEL_VUULTIMO4K || BOXMODEL_VUUNO4KSE || BOXMODEL_VUUNO4K
|
||||
case TUNER_E:
|
||||
fprintf(input, "E");
|
||||
break;
|
||||
@@ -1171,6 +1201,32 @@ void cCA::setInputSource(eDVBCISlot* slot, bool ci)
|
||||
case TUNER_P:
|
||||
fprintf(input, "P");
|
||||
break;
|
||||
#if BOXMODEL_VUULTIMO4K
|
||||
case TUNER_Q:
|
||||
fprintf(input, "Q");
|
||||
break;
|
||||
case TUNER_R:
|
||||
fprintf(input, "R");
|
||||
break;
|
||||
case TUNER_S:
|
||||
fprintf(input, "S");
|
||||
break;
|
||||
case TUNER_T:
|
||||
fprintf(input, "T");
|
||||
break;
|
||||
case TUNER_U:
|
||||
fprintf(input, "U");
|
||||
break;
|
||||
case TUNER_V:
|
||||
fprintf(input, "V");
|
||||
break;
|
||||
case TUNER_W:
|
||||
fprintf(input, "W");
|
||||
break;
|
||||
case TUNER_X:
|
||||
fprintf(input, "X");
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1184,7 +1240,7 @@ cCA::cCA(int Slots)
|
||||
printf("%s -> %s %d\n", FILENAME, __func__, Slots);
|
||||
|
||||
num_slots = Slots;
|
||||
#if HAVE_ARM_HARDWARE
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
setInputs();
|
||||
#endif
|
||||
|
||||
@@ -1280,7 +1336,7 @@ void cCA::ModuleReset(enum CA_SLOT_TYPE, uint32_t slot)
|
||||
{
|
||||
(*it)->status = eStatusReset;
|
||||
usleep(200000);
|
||||
#if HAVE_ARM_HARDWARE
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
last_source = (int)(*it)->source;
|
||||
setInputSource((eDVBCISlot*)(*it), false);
|
||||
#endif
|
||||
@@ -1373,7 +1429,7 @@ void cCA::ci_inserted(eDVBCISlot* slot)
|
||||
void cCA::ci_removed(eDVBCISlot* slot)
|
||||
{
|
||||
printf("cam (%d) status changed ->cam now _not_ present\n", slot->slot);
|
||||
#if HAVE_ARM_HARDWARE
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
last_source = (int)slot->source;
|
||||
setInputSource(slot, false);
|
||||
#endif
|
||||
@@ -1444,7 +1500,7 @@ void cCA::slot_pollthread(void *c)
|
||||
|
||||
while (1)
|
||||
{
|
||||
#if HAVE_ARM_HARDWARE /* Armbox */
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE /* Armbox/Mipsbox */
|
||||
|
||||
int len = 1024 *4;
|
||||
eData status;
|
||||
@@ -1685,7 +1741,7 @@ FROM_FIRST:
|
||||
break;
|
||||
} /* switch(slot->status) */
|
||||
#endif /* end Duckbox */
|
||||
#if HAVE_ARM_HARDWARE
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
if (!slot->init && slot->camIsReady && last_source > -1)
|
||||
{
|
||||
slot->source = (u8)last_source;
|
||||
@@ -1740,7 +1796,7 @@ bool cCA::SendCaPMT(eDVBCISlot* slot)
|
||||
printf("%s -> %s\n", FILENAME, __func__);
|
||||
if (slot->fd > 0)
|
||||
{
|
||||
#if HAVE_ARM_HARDWARE
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
setInputSource(slot, true);
|
||||
#endif
|
||||
setSource(slot);
|
||||
|
Reference in New Issue
Block a user