mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-09-08 14:18:29 +02:00
Merge branch 'next' of coolstreamtech.de:cst-private-neutrino into next
Origin commit data
------------------
Commit: 34187b12cd
Author: [CST] Bas <bas@coolstreamtech.com>
Date: 2013-01-28 (Mon, 28 Jan 2013)
This commit is contained in:
@@ -964,13 +964,15 @@ menu.hint_scan_cable Select cable network to scan
|
||||
menu.hint_scan_cable_simple Cable scan with optional\nprovider channel numbering
|
||||
menu.hint_scan_commited Select commited input for\nthis satellite
|
||||
menu.hint_scan_diseqc Select diseqc switch input for\nthis satellite
|
||||
menu.hint_scan_diseqcorder Diseqc command order for cascaded switches
|
||||
menu.hint_scan_diseqcrepeat Diseqc repeat for cascaded switches
|
||||
menu.hint_scan_diseqctype Select your diseqc switch protocol\nwith 'advanced' you can use uncommited switches
|
||||
menu.hint_scan_fast CanalDigitaal/TéléSAT/TV Vlaanderen provider scan\nWARNING: diseqc config will be overwritten
|
||||
menu.hint_scan_fastprov Select provider to scan
|
||||
menu.hint_scan_fasttype Select fast scan type
|
||||
menu.hint_scan_fec Select transponder FEC
|
||||
menu.hint_scan_femode Select second tuner connection type
|
||||
menu.hint_scan_femode Select tuner connection type
|
||||
menu.hint_scan_felink Select tuner to link tuner to
|
||||
menu.hint_scan_fesetup Configure tuner(s)
|
||||
menu.hint_scan_fetimeout Time to wait for signal, in 1/10 of second
|
||||
menu.hint_scan_freq Enter transponder frequency
|
||||
@@ -1534,6 +1536,7 @@ satsetup.diseqc12 DiSEqC 1.2
|
||||
satsetup.diseqc_advanced Advanced
|
||||
satsetup.diseqc_com_uncom Commited/Uncommited
|
||||
satsetup.diseqc_input DiSEqC input
|
||||
satsetup.diseqc_order DiSEqC command order
|
||||
satsetup.diseqc_uncom_com Uncommited/Commited
|
||||
satsetup.diseqcrepeat DiSEqC-repeats
|
||||
satsetup.extended DiSEqC-Settings
|
||||
@@ -1590,7 +1593,7 @@ scants.actcable Cable:
|
||||
scants.actsatellite Satellite:
|
||||
scants.bouquet Bouquet
|
||||
scants.bouquet_create create new
|
||||
scants.bouquet_erase erase all
|
||||
scants.bouquet_erase erase old
|
||||
scants.bouquet_leave leave current
|
||||
scants.bouquet_satellite Satellite-Bouquet
|
||||
scants.bouquet_update update
|
||||
|
@@ -33,28 +33,12 @@ typedef struct _scart_status {
|
||||
bool fastblank;
|
||||
} scart_status_t;
|
||||
|
||||
typedef struct _pwm_status {
|
||||
u16 pwm_pulse_first;
|
||||
u16 pwm_pulse_second;
|
||||
u32 pwm_clock;
|
||||
} pwm_status_t;
|
||||
|
||||
typedef struct cs_control_data {
|
||||
scart_status_t scart_status;
|
||||
pwm_status_t pwm_status;
|
||||
bool hdd_power;
|
||||
u32 readers;
|
||||
u32 sys_serial_high, sys_serial_low;
|
||||
u32 sys_revision;
|
||||
} cs_control_data_t;
|
||||
|
||||
/* ioctls */
|
||||
#define CS_CONTROL_MAGIC 0xDE
|
||||
#define IOC_CONTROL_WIDESCREEN _IOW(CS_CONTROL_MAGIC, 20, unsigned int)
|
||||
#define IOC_CONTROL_TVAV _IOW(CS_CONTROL_MAGIC, 21, unsigned int)
|
||||
#define IOC_CONTROL_RGB _IOW(CS_CONTROL_MAGIC, 22, unsigned int)
|
||||
#define IOC_CONTROL_SCART_STATUS _IOR(CS_CONTROL_MAGIC, 23, scart_status_t *)
|
||||
#define IOC_CONTROL_PWM_SPEED _IOW(CS_CONTROL_MAGIC, 24, unsigned int)
|
||||
#define IOC_CONTROL_HDDPOWER _IOW(CS_CONTROL_MAGIC, 25, unsigned int)
|
||||
|
||||
/* ioctl for getting board serial and revision */
|
||||
|
@@ -29,4 +29,9 @@ extern void cs_tsx_tsp_get_port_config(tsrouter_tsp_config_t *conf);
|
||||
extern void cs_tsx_hsdp_set_port_config(const tsrouter_hsdp_config_t *conf);
|
||||
extern void cs_tsx_tsp_set_port_config(const tsrouter_tsp_config_t *conf);
|
||||
|
||||
extern void cs_tsx_hsdp_get_port_pll(unsigned int port, unsigned int *pll_index);
|
||||
extern void cs_tsx_hsdp_set_port_pll(unsigned int port, unsigned int pll_index);
|
||||
|
||||
extern void cs_tsx_hsdp_get_port_speed(unsigned int port, unsigned int *speed);
|
||||
extern void cs_tsx_hsdp_set_port_speed(unsigned int port, unsigned int speed);
|
||||
#endif /* __TSROUTER_H */
|
||||
|
@@ -88,6 +88,7 @@ void COSDFader::Stop()
|
||||
{
|
||||
if ( fadeIn || fadeOut ) {
|
||||
g_RCInput->killTimer(fadeTimer);
|
||||
usleep(40000);
|
||||
#ifdef BOXMODEL_APOLLO
|
||||
frameBuffer->setBlendMode(CNXTFB_BLEND_MODE_PER_PIXEL); // Global alpha multiplied with pixel alpha
|
||||
#else
|
||||
|
@@ -543,7 +543,7 @@ void CFrameBuffer::setBlendLevel(int level)
|
||||
|
||||
if (ioctl(fd, FBIO_SETOPACITY, value))
|
||||
printf("FBIO_SETOPACITY failed.\n");
|
||||
#ifndef ISAPOLLO
|
||||
#if 0
|
||||
if(level == 100) // TODO: sucks.
|
||||
usleep(20000);
|
||||
#endif
|
||||
|
@@ -694,11 +694,12 @@ int CScanSetup::showFrontendSetup(int number)
|
||||
|
||||
if (fe->getInfo()->type == FE_QPSK) {
|
||||
/* disable all but mode option for linked frontends */
|
||||
bool allow_moptions = !CFrontend::linked(femode);
|
||||
bool allow_moptions = !CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED;
|
||||
|
||||
if (fecount > 1) {
|
||||
/* link to master select */
|
||||
linkfe = new CMenuOptionChooser(LOCALE_SATSETUP_FE_MODE_MASTER, &femaster, feselect, select_count, !allow_moptions, this, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN, true);
|
||||
linkfe->setHint("", LOCALE_MENU_HINT_SCAN_FELINK);
|
||||
setupMenu->addItem(linkfe);
|
||||
}
|
||||
/* diseqc type select */
|
||||
@@ -713,6 +714,13 @@ int CScanSetup::showFrontendSetup(int number)
|
||||
ojDiseqcRepeats->setHint("", LOCALE_MENU_HINT_SCAN_DISEQCREPEAT);
|
||||
setupMenu->addItem(ojDiseqcRepeats);
|
||||
|
||||
/* diseqc cmd order select */
|
||||
dorder = new CMenuOptionChooser(LOCALE_SATSETUP_DISEQC_ORDER, (int *)&fe_config.diseqc_order, DISEQC_ORDER_OPTIONS, DISEQC_ORDER_OPTION_COUNT,
|
||||
allow_moptions && (dmode == DISEQC_ADVANCED),
|
||||
this, CRCInput::convertDigitToKey(shortcut++), "", true);
|
||||
dorder->setHint("", LOCALE_MENU_HINT_SCAN_DISEQCORDER);
|
||||
setupMenu->addItem(dorder);
|
||||
|
||||
CMenuWidget * satToSelect = new CMenuWidget(LOCALE_SATSETUP_SELECT_SAT, NEUTRINO_ICON_SETTINGS, width);
|
||||
satToSelect->addIntroItems();
|
||||
|
||||
@@ -1378,7 +1386,8 @@ bool CScanSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data*
|
||||
#endif
|
||||
uniSetup->setActive(dmode == DISEQC_UNICABLE);
|
||||
bool enable = (dmode < DISEQC_ADVANCED) && (dmode != NO_DISEQC);
|
||||
ojDiseqcRepeats->setActive(enable);
|
||||
ojDiseqcRepeats->setActive(enable && !CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED);
|
||||
dorder->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED && dmode == DISEQC_ADVANCED);
|
||||
|
||||
}
|
||||
else if(ARE_LOCALES_EQUAL(OptionName, LOCALE_SATSETUP_FE_MODE)) {
|
||||
@@ -1404,12 +1413,14 @@ bool CScanSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data*
|
||||
if (fe && fe->getType() == FE_QPSK) {
|
||||
if (linkfe)
|
||||
linkfe->setActive(CFrontend::linked(femode));
|
||||
/* leave diseqc type enabled for TWIN in case user need different unicable setup */
|
||||
dtype->setActive(femode != CFrontend::FE_MODE_UNUSED && femode != CFrontend::FE_MODE_LINK_LOOP);
|
||||
uniSetup->setActive(dmode == DISEQC_UNICABLE && femode != CFrontend::FE_MODE_UNUSED && femode != CFrontend::FE_MODE_LINK_LOOP);
|
||||
dorder->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED && dmode == DISEQC_ADVANCED);
|
||||
fsatSelect->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED);
|
||||
fsatSetup->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED);
|
||||
bool enable = (dmode < DISEQC_ADVANCED) && (dmode != NO_DISEQC);
|
||||
ojDiseqcRepeats->setActive(!CFrontend::linked(femode) && enable);
|
||||
ojDiseqcRepeats->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED && enable);
|
||||
|
||||
/* if mode changed, set current master too */
|
||||
if (femaster >= 0)
|
||||
|
@@ -60,6 +60,7 @@ class CScanSetup : public CMenuTarget, public CChangeObserver
|
||||
CMenuForwarder *fsatSetup;
|
||||
CMenuForwarder *fsatSelect;
|
||||
CMenuOptionChooser * dtype;
|
||||
CMenuOptionChooser * dorder;
|
||||
CMenuForwarder *uniSetup;
|
||||
CMenuOptionNumberChooser * ojDiseqcRepeats;
|
||||
CIntInput * nid;
|
||||
|
@@ -1156,7 +1156,6 @@ extern CBouquetManager *g_bouquetManager;
|
||||
|
||||
void CNeutrinoApp::channelsInit(bool bOnly)
|
||||
{
|
||||
int bnum;
|
||||
CBouquet* tmp;
|
||||
|
||||
printf("[neutrino] Creating channels lists...\n");
|
||||
@@ -1173,7 +1172,6 @@ void CNeutrinoApp::channelsInit(bool bOnly)
|
||||
if(g_bouquetManager->existsUBouquet(fav_bouquetname, true) == -1)
|
||||
g_bouquetManager->addBouquet(fav_bouquetname, true, true);
|
||||
|
||||
|
||||
if(TVbouquetList) delete TVbouquetList;
|
||||
if(RADIObouquetList) delete RADIObouquetList;
|
||||
|
||||
@@ -1222,15 +1220,11 @@ void CNeutrinoApp::channelsInit(bool bOnly)
|
||||
tmp = TVallList->addBouquet(g_Locale->getText(LOCALE_CHANNELLIST_HEAD));
|
||||
delete tmp->channelList;
|
||||
tmp->channelList = new CChannelList(*TVchannelList);
|
||||
//tmp->channelList->SortAlpha();
|
||||
|
||||
RADIOallList = new CBouquetList(g_Locale->getText(LOCALE_CHANNELLIST_HEAD));
|
||||
tmp = RADIOallList->addBouquet(g_Locale->getText(LOCALE_CHANNELLIST_HEAD));
|
||||
delete tmp->channelList;
|
||||
tmp->channelList = new CChannelList(*RADIOchannelList);
|
||||
//tmp->channelList->SortAlpha();
|
||||
|
||||
TIMER_STOP("[neutrino] sort took");
|
||||
|
||||
if(TVsatList) delete TVsatList;
|
||||
TVsatList = new CBouquetList(g_Locale->getText(LOCALE_CHANNELLIST_SATS));
|
||||
@@ -1241,8 +1235,7 @@ void CNeutrinoApp::channelsInit(bool bOnly)
|
||||
sat_iterator_t sit;
|
||||
satellite_map_t satlist = CServiceManager::getInstance()->SatelliteList();
|
||||
for(sit = satlist.begin(); sit != satlist.end(); sit++) {
|
||||
CServiceManager::getInstance()->GetAllSatelliteChannels(zapitList, sit->first);
|
||||
if( zapitList.empty() )
|
||||
if (!CServiceManager::getInstance()->GetAllSatelliteChannels(zapitList, sit->first))
|
||||
continue;
|
||||
|
||||
tvi = 0, ri = 0;
|
||||
@@ -1267,33 +1260,39 @@ void CNeutrinoApp::channelsInit(bool bOnly)
|
||||
|
||||
TIMER_STOP("[neutrino] sat took");
|
||||
}
|
||||
/* all HD channels */
|
||||
if (g_settings.make_hd_list) {
|
||||
if (CServiceManager::getInstance()->GetAllHDChannels(zapitList)) {
|
||||
CBouquet* hdBouquet = new CBouquet(0, g_Locale->getText(LOCALE_BOUQUETNAME_HDTV), false, true);
|
||||
hdBouquet->channelList->SetChannelList(&zapitList);
|
||||
TVallList->Bouquets.push_back(hdBouquet);
|
||||
printf("[neutrino] got %d HD channels\n", zapitList.size()); fflush(stdout);
|
||||
}
|
||||
}
|
||||
/* new channels */
|
||||
if (g_settings.make_new_list) {
|
||||
CServiceManager::getInstance()->GetAllTvChannels(zapitList, CZapitChannel::NEW);
|
||||
if (!zapitList.empty()) {
|
||||
if (CServiceManager::getInstance()->GetAllTvChannels(zapitList, CZapitChannel::NEW)) {
|
||||
CBouquet* newBouquet = new CBouquet(0, g_Locale->getText(LOCALE_BOUQUETNAME_NEW), false, true);
|
||||
newBouquet->channelList->SetChannelList(&zapitList);
|
||||
TVallList->Bouquets.push_back(newBouquet);
|
||||
printf("[neutrino] got %d new TV channels\n", zapitList.size()); fflush(stdout);
|
||||
}
|
||||
CServiceManager::getInstance()->GetAllRadioChannels(zapitList, CZapitChannel::NEW);
|
||||
if (!zapitList.empty()) {
|
||||
if (CServiceManager::getInstance()->GetAllRadioChannels(zapitList, CZapitChannel::NEW)) {
|
||||
CBouquet* newBouquet = new CBouquet(0, g_Locale->getText(LOCALE_BOUQUETNAME_NEW), false, true);
|
||||
newBouquet->channelList->SetChannelList(&zapitList);
|
||||
RADIOallList->Bouquets.push_back(newBouquet);
|
||||
printf("[neutrino] got %d new RADIO channels\n", zapitList.size()); fflush(stdout);
|
||||
}
|
||||
}
|
||||
/* removed channels */
|
||||
if (g_settings.make_removed_list) {
|
||||
CServiceManager::getInstance()->GetAllTvChannels(zapitList, CZapitChannel::REMOVED);
|
||||
if (!zapitList.empty()) {
|
||||
if (CServiceManager::getInstance()->GetAllTvChannels(zapitList, CZapitChannel::REMOVED)) {
|
||||
CBouquet* newBouquet = new CBouquet(0, g_Locale->getText(LOCALE_BOUQUETNAME_REMOVED), false, true);
|
||||
newBouquet->channelList->SetChannelList(&zapitList);
|
||||
TVallList->Bouquets.push_back(newBouquet);
|
||||
printf("[neutrino] got %d removed TV channels\n", zapitList.size()); fflush(stdout);
|
||||
}
|
||||
CServiceManager::getInstance()->GetAllRadioChannels(zapitList, CZapitChannel::REMOVED);
|
||||
if (!zapitList.empty()) {
|
||||
if (CServiceManager::getInstance()->GetAllRadioChannels(zapitList, CZapitChannel::REMOVED)) {
|
||||
CBouquet* newBouquet = new CBouquet(0, g_Locale->getText(LOCALE_BOUQUETNAME_REMOVED), false, true);
|
||||
newBouquet->channelList->SetChannelList(&zapitList);
|
||||
RADIOallList->Bouquets.push_back(newBouquet);
|
||||
@@ -1303,63 +1302,36 @@ void CNeutrinoApp::channelsInit(bool bOnly)
|
||||
TIMER_STOP("[neutrino] sats took");
|
||||
}
|
||||
|
||||
/* Favorites and providers TV bouquets */
|
||||
bnum = 0;
|
||||
/* Favorites and providers bouquets */
|
||||
tvi = ri = 0;
|
||||
for (i = 0; i < g_bouquetManager->Bouquets.size(); i++) {
|
||||
if (!g_bouquetManager->Bouquets[i]->bHidden && !g_bouquetManager->Bouquets[i]->tvChannels.empty())
|
||||
{
|
||||
if (!g_bouquetManager->Bouquets[i]->bHidden) {
|
||||
if (g_bouquetManager->Bouquets[i]->getTvChannels(zapitList)) {
|
||||
if(g_bouquetManager->Bouquets[i]->bUser)
|
||||
tmp = TVfavList->addBouquet(g_bouquetManager->Bouquets[i]);
|
||||
else
|
||||
tmp = TVbouquetList->addBouquet(g_bouquetManager->Bouquets[i]);
|
||||
|
||||
ZapitChannelList* channels = &(g_bouquetManager->Bouquets[i]->tvChannels);
|
||||
tmp->channelList->SetChannelList(channels);
|
||||
bnum++;
|
||||
tmp->channelList->SetChannelList(&zapitList);
|
||||
tvi++;
|
||||
}
|
||||
}
|
||||
printf("[neutrino] got %d TV bouquets\n", bnum); fflush(stdout);
|
||||
|
||||
/* all HD channels */
|
||||
if (g_settings.make_hd_list) {
|
||||
CServiceManager::getInstance()->GetAllHDChannels(zapitList);
|
||||
if (!zapitList.empty()) {
|
||||
CBouquet* hdBouquet = new CBouquet(0, g_Locale->getText(LOCALE_BOUQUETNAME_HDTV), false, true);
|
||||
hdBouquet->channelList->SetChannelList(&zapitList);
|
||||
hdBouquet->channelList->SortSat();
|
||||
TVfavList->Bouquets.push_back(hdBouquet);
|
||||
printf("[neutrino] got %d HD channels\n", zapitList.size()); fflush(stdout);
|
||||
}
|
||||
}
|
||||
TIMER_STOP("[neutrino] tv took");
|
||||
|
||||
/* Favorites and provides RADIO bouquets */
|
||||
bnum = 0;
|
||||
for (i = 0; i < g_bouquetManager->Bouquets.size(); i++) {
|
||||
if (!g_bouquetManager->Bouquets[i]->bHidden && !g_bouquetManager->Bouquets[i]->radioChannels.empty() )
|
||||
{
|
||||
if (g_bouquetManager->Bouquets[i]->getRadioChannels(zapitList)) {
|
||||
if(g_bouquetManager->Bouquets[i]->bUser)
|
||||
tmp = RADIOfavList->addBouquet(g_bouquetManager->Bouquets[i]);
|
||||
else
|
||||
tmp = RADIObouquetList->addBouquet(g_bouquetManager->Bouquets[i]);
|
||||
|
||||
ZapitChannelList* channels = &(g_bouquetManager->Bouquets[i]->radioChannels);
|
||||
tmp->channelList->SetChannelList(channels);
|
||||
bnum++;
|
||||
tmp->channelList->SetChannelList(&zapitList);
|
||||
ri++;
|
||||
}
|
||||
}
|
||||
printf("[neutrino] got %d RADIO bouquets\n", bnum); fflush(stdout);
|
||||
}
|
||||
printf("[neutrino] got %d TV and %d RADIO bouquets\n", tvi, ri); fflush(stdout);
|
||||
TIMER_STOP("[neutrino] took");
|
||||
|
||||
SetChannelMode(lastChannelMode);
|
||||
|
||||
dprintf(DEBUG_DEBUG, "\nAll bouquets-channels received\n");
|
||||
#ifdef DEBUG
|
||||
struct mallinfo myinfo = mallinfo();
|
||||
printf("[neutrino] total memory allocated by malloc, in bytes: %d (%dkb), chunks %d\n",
|
||||
myinfo.arena, myinfo.arena / 1024, myinfo.uordblks);
|
||||
#endif
|
||||
|
||||
reloadhintBox->hide();
|
||||
}
|
||||
|
||||
|
@@ -991,6 +991,7 @@ typedef enum
|
||||
LOCALE_MENU_HINT_SCAN_CABLE_SIMPLE,
|
||||
LOCALE_MENU_HINT_SCAN_COMMITED,
|
||||
LOCALE_MENU_HINT_SCAN_DISEQC,
|
||||
LOCALE_MENU_HINT_SCAN_DISEQCORDER,
|
||||
LOCALE_MENU_HINT_SCAN_DISEQCREPEAT,
|
||||
LOCALE_MENU_HINT_SCAN_DISEQCTYPE,
|
||||
LOCALE_MENU_HINT_SCAN_FAST,
|
||||
@@ -998,6 +999,7 @@ typedef enum
|
||||
LOCALE_MENU_HINT_SCAN_FASTTYPE,
|
||||
LOCALE_MENU_HINT_SCAN_FEC,
|
||||
LOCALE_MENU_HINT_SCAN_FEMODE,
|
||||
LOCALE_MENU_HINT_SCAN_FELINK,
|
||||
LOCALE_MENU_HINT_SCAN_FESETUP,
|
||||
LOCALE_MENU_HINT_SCAN_FETIMEOUT,
|
||||
LOCALE_MENU_HINT_SCAN_FREQ,
|
||||
@@ -1561,6 +1563,7 @@ typedef enum
|
||||
LOCALE_SATSETUP_DISEQC_ADVANCED,
|
||||
LOCALE_SATSETUP_DISEQC_COM_UNCOM,
|
||||
LOCALE_SATSETUP_DISEQC_INPUT,
|
||||
LOCALE_SATSETUP_DISEQC_ORDER,
|
||||
LOCALE_SATSETUP_DISEQC_UNCOM_COM,
|
||||
LOCALE_SATSETUP_DISEQCREPEAT,
|
||||
LOCALE_SATSETUP_EXTENDED,
|
||||
|
@@ -991,6 +991,7 @@ const char * locale_real_names[] =
|
||||
"menu.hint_scan_cable_simple",
|
||||
"menu.hint_scan_commited",
|
||||
"menu.hint_scan_diseqc",
|
||||
"menu.hint_scan_diseqcorder",
|
||||
"menu.hint_scan_diseqcrepeat",
|
||||
"menu.hint_scan_diseqctype",
|
||||
"menu.hint_scan_fast",
|
||||
@@ -998,6 +999,7 @@ const char * locale_real_names[] =
|
||||
"menu.hint_scan_fasttype",
|
||||
"menu.hint_scan_fec",
|
||||
"menu.hint_scan_femode",
|
||||
"menu.hint_scan_felink",
|
||||
"menu.hint_scan_fesetup",
|
||||
"menu.hint_scan_fetimeout",
|
||||
"menu.hint_scan_freq",
|
||||
@@ -1561,6 +1563,7 @@ const char * locale_real_names[] =
|
||||
"satsetup.diseqc_advanced",
|
||||
"satsetup.diseqc_com_uncom",
|
||||
"satsetup.diseqc_input",
|
||||
"satsetup.diseqc_order",
|
||||
"satsetup.diseqc_uncom_com",
|
||||
"satsetup.diseqcrepeat",
|
||||
"satsetup.extended",
|
||||
|
@@ -57,6 +57,8 @@ class CZapitBouquet
|
||||
CZapitChannel* getChannelByChannelID(const t_channel_id channel_id, const unsigned char serviceType = ST_RESERVED);
|
||||
void sortBouquet(void);
|
||||
void sortBouquetByNumber(void);
|
||||
bool getTvChannels(ZapitChannelList &list, int flags = CZapitChannel::PRESENT);
|
||||
bool getRadioChannels(ZapitChannelList &list, int flags = CZapitChannel::PRESENT);
|
||||
};
|
||||
|
||||
typedef vector<CZapitBouquet *> BouquetList;
|
||||
@@ -115,7 +117,7 @@ class CBouquetManager
|
||||
void moveBouquet(const unsigned int oldId, const unsigned int newId);
|
||||
bool existsChannelInBouquet(unsigned int bq_id, const t_channel_id channel_id);
|
||||
|
||||
void clearAll();
|
||||
void clearAll(bool user = true);
|
||||
|
||||
void sortBouquets(void);
|
||||
};
|
||||
|
@@ -168,7 +168,10 @@ class CZapitChannel
|
||||
typedef enum channel_flags {
|
||||
NEW = 0x01,
|
||||
REMOVED = 0x02,
|
||||
UPDATED = 0x04
|
||||
UPDATED = 0x04,
|
||||
NOT_FOUND = 0x08,
|
||||
PRESENT = 0x05, // NEW + UPDATED
|
||||
ANY = 0xFF
|
||||
} channel_flags_t;
|
||||
casys_map_t camap;
|
||||
|
||||
|
@@ -37,6 +37,7 @@ typedef struct frontend_config {
|
||||
int uni_lnb;
|
||||
int motorRotationSpeed;
|
||||
int highVoltage;
|
||||
int diseqc_order;
|
||||
} frontend_config_t;
|
||||
|
||||
#endif // __FRONTEND_TYPES_H__
|
||||
|
@@ -135,12 +135,12 @@ class CServiceManager
|
||||
std::string GetServiceName(t_channel_id channel_id);
|
||||
|
||||
tallchans* GetAllChannels(){ return &allchans; };
|
||||
bool GetAllRadioChannels(ZapitChannelList &list, int flags = 0);
|
||||
bool GetAllTvChannels(ZapitChannelList &list, int flags = 0);
|
||||
bool GetAllHDChannels(ZapitChannelList &list);
|
||||
bool GetAllSatelliteChannels(ZapitChannelList &list, t_satellite_position position);
|
||||
bool GetAllTransponderChannels(ZapitChannelList &list, transponder_id_t tpid);
|
||||
bool GetAllUnusedChannels(ZapitChannelList &list);
|
||||
bool GetAllRadioChannels(ZapitChannelList &list, int flags = CZapitChannel::PRESENT);
|
||||
bool GetAllTvChannels(ZapitChannelList &list, int flags = CZapitChannel::PRESENT);
|
||||
bool GetAllHDChannels(ZapitChannelList &list, int flags = CZapitChannel::PRESENT);
|
||||
bool GetAllSatelliteChannels(ZapitChannelList &list, t_satellite_position position, int flags = CZapitChannel::PRESENT);
|
||||
bool GetAllTransponderChannels(ZapitChannelList &list, transponder_id_t tpid, int flags = CZapitChannel::PRESENT);
|
||||
bool GetAllUnusedChannels(ZapitChannelList &list, int flags = CZapitChannel::PRESENT);
|
||||
|
||||
bool IsChannelTVChannel(const t_channel_id channel_id);
|
||||
|
||||
|
@@ -157,6 +157,26 @@ void CZapitBouquet::moveService(const unsigned int oldPosition, const unsigned i
|
||||
}
|
||||
}
|
||||
|
||||
bool CZapitBouquet::getTvChannels(ZapitChannelList &list, int flags)
|
||||
{
|
||||
list.clear();
|
||||
for (ZapitChannelList::iterator it = tvChannels.begin(); it != tvChannels.end(); ++it) {
|
||||
if ((*it)->flags & flags)
|
||||
list.push_back(*it);
|
||||
}
|
||||
return (!list.empty());
|
||||
}
|
||||
|
||||
bool CZapitBouquet::getRadioChannels(ZapitChannelList &list, int flags)
|
||||
{
|
||||
list.clear();
|
||||
for (ZapitChannelList::iterator it = tvChannels.begin(); it != tvChannels.end(); ++it) {
|
||||
if ((*it)->flags & flags)
|
||||
list.push_back(*it);
|
||||
}
|
||||
return (!list.empty());
|
||||
}
|
||||
|
||||
#if 0
|
||||
size_t CZapitBouquet::recModeRadioSize(const transponder_id_t transponder_id)
|
||||
{
|
||||
@@ -262,7 +282,7 @@ void CBouquetManager::saveBouquets(const CZapitClient::bouquetMode bouquetMode,
|
||||
if (bouquetMode == CZapitClient::BM_DELETEBOUQUETS) {
|
||||
INFO("removing existing bouquets");
|
||||
//unlink(BOUQUETS_XML);
|
||||
g_bouquetManager->clearAll();
|
||||
g_bouquetManager->clearAll(false);
|
||||
}
|
||||
if (bouquetMode == CZapitClient::BM_DONTTOUCHBOUQUETS)
|
||||
return;
|
||||
@@ -279,7 +299,7 @@ void CBouquetManager::saveBouquets(const CZapitClient::bouquetMode bouquetMode,
|
||||
Bouquets[0]->Name = providerName;
|
||||
}
|
||||
|
||||
if ((bouquetMode == CZapitClient::BM_UPDATEBOUQUETS) || (bouquetMode == CZapitClient::BM_CREATESATELLITEBOUQUET)) {
|
||||
if ((bouquetMode == CZapitClient::BM_UPDATEBOUQUETS) || (bouquetMode == CZapitClient::BM_DELETEBOUQUETS)) {
|
||||
while (!(Bouquets.empty())) {
|
||||
CZapitBouquet* bouquet;
|
||||
int dest = g_bouquetManager->existsBouquet(Bouquets[0]->Name.c_str());
|
||||
@@ -378,6 +398,13 @@ void CBouquetManager::parseBouquetsXml(const char *fname, bool bUser)
|
||||
|
||||
chan->bAlwaysLocked = newBouquet->bLocked;
|
||||
newBouquet->addService(chan);
|
||||
} else if (bUser) {
|
||||
chan = new CZapitChannel(name2, CREATE_CHANNEL_ID64, 1 /*service_type*/,
|
||||
satellitePosition, freq);
|
||||
CServiceManager::getInstance()->AddChannel(chan);
|
||||
chan->flags = CZapitChannel::NOT_FOUND;
|
||||
chan->bAlwaysLocked = newBouquet->bLocked;
|
||||
newBouquet->addService(chan);
|
||||
}
|
||||
|
||||
channel_node = channel_node->xmlNextNode;
|
||||
@@ -616,12 +643,19 @@ void CBouquetManager::moveBouquet(const unsigned int oldId, const unsigned int n
|
||||
}
|
||||
}
|
||||
|
||||
void CBouquetManager::clearAll()
|
||||
void CBouquetManager::clearAll(bool user)
|
||||
{
|
||||
for (unsigned int i =0; i < Bouquets.size(); i++)
|
||||
BouquetList tmplist;
|
||||
for (unsigned int i =0; i < Bouquets.size(); i++) {
|
||||
if (!user || !Bouquets[i]->bFav)
|
||||
delete Bouquets[i];
|
||||
else
|
||||
tmplist.push_back(Bouquets[i]);
|
||||
}
|
||||
|
||||
Bouquets.clear();
|
||||
if (!user)
|
||||
Bouquets = tmplist;
|
||||
remainChannels = NULL;
|
||||
}
|
||||
|
||||
|
@@ -321,6 +321,8 @@ bool CServiceScan::ParseFst(unsigned short pid, fast_scan_operator_t * op)
|
||||
newchannel->deltype = FE_QPSK;
|
||||
CServiceManager::getInstance()->AddChannel(newchannel);
|
||||
}
|
||||
// FIXME detect new/removed
|
||||
newchannel->flags = CZapitChannel::UPDATED;
|
||||
newchannel->setName(serviceName);
|
||||
newchannel->setServiceType(service_type);
|
||||
newchannel->setVideoPid(video_pid);
|
||||
|
@@ -223,6 +223,7 @@ bool CFEManager::loadSettings()
|
||||
fe_config.highVoltage = getConfigValue(fe, "highVoltage", 0);
|
||||
fe_config.uni_scr = getConfigValue(fe, "uni_scr", -1);
|
||||
fe_config.uni_qrg = getConfigValue(fe, "uni_qrg", 0);
|
||||
fe_config.diseqc_order = getConfigValue(fe, "diseqc_order", UNCOMMITED_FIRST);
|
||||
|
||||
fe->setRotorSatellitePosition(getConfigValue(fe, "lastSatellitePosition", 0));
|
||||
|
||||
@@ -303,6 +304,7 @@ void CFEManager::saveSettings(bool write)
|
||||
setConfigValue(fe, "highVoltage", fe_config.highVoltage);
|
||||
setConfigValue(fe, "uni_scr", fe_config.uni_scr);
|
||||
setConfigValue(fe, "uni_qrg", fe_config.uni_qrg);
|
||||
setConfigValue(fe, "diseqc_order", fe_config.diseqc_order);
|
||||
setConfigValue(fe, "lastSatellitePosition", fe->getRotorSatellitePosition());
|
||||
setConfigValue(fe, "mode", fe->getMode());
|
||||
setConfigValue(fe, "master", fe->getMaster());
|
||||
|
@@ -1008,7 +1008,7 @@ void CFrontend::setInput(t_satellite_position satellitePosition, uint32_t freque
|
||||
setDiseqc(sit->second.diseqc, polarization, frequency);
|
||||
return;
|
||||
}
|
||||
if (sit->second.diseqc_order == COMMITED_FIRST) {
|
||||
if (config.diseqc_order /*sit->second.diseqc_order*/ == COMMITED_FIRST) {
|
||||
if (setDiseqcSimple(sit->second.commited, polarization, frequency))
|
||||
uncommitedInput = 255;
|
||||
sendUncommittedSwitchesCommand(sit->second.uncommited);
|
||||
|
@@ -225,7 +225,7 @@ bool CServiceManager::GetAllRadioChannels(ZapitChannelList &list, int flags)
|
||||
list.clear();
|
||||
for (channel_map_iterator_t it = allchans.begin(); it != allchans.end(); ++it) {
|
||||
if (it->second.getServiceType() == ST_DIGITAL_RADIO_SOUND_SERVICE &&
|
||||
((flags == 0) || (it->second.flags & flags)))
|
||||
(it->second.flags & flags))
|
||||
list.push_back(&(it->second));
|
||||
}
|
||||
return (!list.empty());
|
||||
@@ -236,47 +236,47 @@ bool CServiceManager::GetAllTvChannels(ZapitChannelList &list, int flags)
|
||||
list.clear();
|
||||
for (channel_map_iterator_t it = allchans.begin(); it != allchans.end(); ++it) {
|
||||
if (it->second.getServiceType() != ST_DIGITAL_RADIO_SOUND_SERVICE &&
|
||||
((flags == 0) || (it->second.flags & flags)))
|
||||
(it->second.flags & flags))
|
||||
list.push_back(&(it->second));
|
||||
}
|
||||
return (!list.empty());
|
||||
}
|
||||
|
||||
bool CServiceManager::GetAllHDChannels(ZapitChannelList &list)
|
||||
bool CServiceManager::GetAllHDChannels(ZapitChannelList &list, int flags)
|
||||
{
|
||||
list.clear();
|
||||
for (channel_map_iterator_t it = allchans.begin(); it != allchans.end(); ++it) {
|
||||
if (it->second.isHD())
|
||||
if ((it->second.flags & flags) && it->second.isHD())
|
||||
list.push_back(&(it->second));
|
||||
}
|
||||
return (!list.empty());
|
||||
}
|
||||
|
||||
bool CServiceManager::GetAllUnusedChannels(ZapitChannelList &list)
|
||||
bool CServiceManager::GetAllUnusedChannels(ZapitChannelList &list, int flags)
|
||||
{
|
||||
list.clear();
|
||||
for (channel_map_iterator_t it = allchans.begin(); it != allchans.end(); ++it) {
|
||||
if (it->second.has_bouquet == false)
|
||||
if ((it->second.flags & flags) && it->second.has_bouquet == false)
|
||||
list.push_back(&(it->second));
|
||||
}
|
||||
return (!list.empty());
|
||||
}
|
||||
|
||||
bool CServiceManager::GetAllSatelliteChannels(ZapitChannelList &list, t_satellite_position position)
|
||||
bool CServiceManager::GetAllSatelliteChannels(ZapitChannelList &list, t_satellite_position position, int flags)
|
||||
{
|
||||
list.clear();
|
||||
for (channel_map_iterator_t it = allchans.begin(); it != allchans.end(); ++it) {
|
||||
if(it->second.getSatellitePosition() == position)
|
||||
if((it->second.flags & flags) && it->second.getSatellitePosition() == position)
|
||||
list.push_back(&(it->second));
|
||||
}
|
||||
return (!list.empty());
|
||||
}
|
||||
|
||||
bool CServiceManager::GetAllTransponderChannels(ZapitChannelList &list, transponder_id_t tpid)
|
||||
bool CServiceManager::GetAllTransponderChannels(ZapitChannelList &list, transponder_id_t tpid, int flags)
|
||||
{
|
||||
list.clear();
|
||||
for (channel_map_iterator_t it = allchans.begin(); it != allchans.end(); ++it) {
|
||||
if(it->second.getTransponderId() == tpid)
|
||||
if((it->second.flags & flags) && it->second.getTransponderId() == tpid)
|
||||
list.push_back(&(it->second));
|
||||
}
|
||||
return (!list.empty());
|
||||
@@ -368,6 +368,9 @@ void CServiceManager::ParseChannels(xmlNodePtr node, const t_transport_stream_id
|
||||
uint16_t scrambled = xmlGetNumericAttribute(node, "s", 16);
|
||||
int number = xmlGetNumericAttribute(node, "num", 10);
|
||||
int flags = xmlGetNumericAttribute(node, "f", 10);
|
||||
/* default if no flags present */
|
||||
if (flags == 0)
|
||||
flags = CZapitChannel::UPDATED;
|
||||
|
||||
t_channel_id chid = CREATE_CHANNEL_ID64;
|
||||
char *ptr = xmlGetAttribute(node, "action");
|
||||
@@ -789,6 +792,8 @@ void CServiceManager::SaveServices(bool tocopy, bool if_changed)
|
||||
continue;
|
||||
}
|
||||
for (channel_map_iterator_t ccI = allchans.begin(); ccI != allchans.end(); ++ccI) {
|
||||
if(ccI->second.flags & CZapitChannel::NOT_FOUND)
|
||||
continue;
|
||||
if(ccI->second.getTransponderId() == tI->first) {
|
||||
if(!satdone) {
|
||||
WriteSatHeader(fd, spos_it->second);
|
||||
@@ -848,16 +853,16 @@ bool CServiceManager::CopyCurrentServices(transponder_id_t tpid)
|
||||
aI = allchans.find(cI->second.getChannelID());
|
||||
if(aI == allchans.end()) {
|
||||
channel_insert_res_t ret = allchans.insert(channel_pair_t (cI->second.getChannelID(), cI->second));
|
||||
ret.first->second.flags |= CZapitChannel::NEW;
|
||||
ret.first->second.flags = CZapitChannel::NEW;
|
||||
updated = true;
|
||||
printf("CServiceManager::CopyCurrentServices: [%s] add\n", cI->second.getName().c_str());
|
||||
printf("CServiceManager::CopyCurrentServices: [%s] add\n", cI->second.getName().c_str());
|
||||
} else {
|
||||
if(cI->second.scrambled != aI->second.scrambled || cI->second.getName() != aI->second.getName()) {
|
||||
aI->second.setName(cI->second.getName());
|
||||
aI->second.scrambled = cI->second.scrambled;
|
||||
aI->second.flags |= CZapitChannel::UPDATED;
|
||||
aI->second.flags = CZapitChannel::UPDATED;
|
||||
updated = true;
|
||||
printf("CServiceManager::CopyCurrentServices: [%s] replace\n", cI->second.getName().c_str());
|
||||
printf("CServiceManager::CopyCurrentServices: [%s] replace\n", cI->second.getName().c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -865,12 +870,12 @@ printf("CServiceManager::CopyCurrentServices: [%s] replace\n", cI->second.getNam
|
||||
if(aI->second.getTransponderId() == tpid) {
|
||||
channel_map_iterator_t dI = curchans.find(aI->second.getChannelID());
|
||||
if(dI == curchans.end()) {
|
||||
aI->second.flags |= CZapitChannel::REMOVED;
|
||||
aI->second.flags = CZapitChannel::REMOVED;
|
||||
updated = true;
|
||||
printf("CServiceManager::CopyCurrentServices: [%s] remove\n", aI->second.getName().c_str());
|
||||
printf("CServiceManager::CopyCurrentServices: [%s] remove\n", aI->second.getName().c_str());
|
||||
} else if(aI->second.flags & CZapitChannel::REMOVED) {
|
||||
printf("CServiceManager::CopyCurrentServices: [%s] restore\n", aI->second.getName().c_str());
|
||||
aI->second.flags = 0;
|
||||
printf("CServiceManager::CopyCurrentServices: [%s] restore\n", aI->second.getName().c_str());
|
||||
aI->second.flags = CZapitChannel::UPDATED;
|
||||
updated = true;
|
||||
}
|
||||
}
|
||||
|
@@ -321,14 +321,13 @@ bool CSdt::ParseServiceDescriptor(ServiceDescription * service, ServiceDescripto
|
||||
if (channel) {
|
||||
channel->setName(serviceName);
|
||||
channel->setServiceType(real_type);
|
||||
channel->flags &= ~CZapitChannel::REMOVED;
|
||||
channel->flags |= CZapitChannel::UPDATED;
|
||||
channel->flags = CZapitChannel::UPDATED;
|
||||
} else {
|
||||
channel = new CZapitChannel(serviceName, channel_id,
|
||||
real_type, satellitePosition, freq_id);
|
||||
channel->deltype = cable ? FE_QAM : FE_QPSK;
|
||||
|
||||
CServiceManager::getInstance()->AddChannel(channel);
|
||||
channel->deltype = cable ? FE_QAM : FE_QPSK;
|
||||
channel->flags = CZapitChannel::UPDATED;
|
||||
/* mark channel as new, if this satellite already have channels */
|
||||
if (CServiceScan::getInstance()->SatHaveChannels())
|
||||
channel->flags = CZapitChannel::NEW;
|
||||
|
Reference in New Issue
Block a user