mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-29 08:21:12 +02:00
- neutrino: clearify mode handling in saveEpg() function
Conflicts: src/driver/scanepg.cpp src/neutrino.cpp Signed-off-by: Thilo Graf <dbt@novatux.de>
This commit is contained in:
@@ -333,6 +333,9 @@ void CEpgScan::EnterStandby()
|
|||||||
if (standby) {
|
if (standby) {
|
||||||
CZapit::getInstance()->SetCurrentChannelID(live_channel_id);
|
CZapit::getInstance()->SetCurrentChannelID(live_channel_id);
|
||||||
CNeutrinoApp::getInstance()->standbyToStandby();
|
CNeutrinoApp::getInstance()->standbyToStandby();
|
||||||
|
|
||||||
|
if (g_settings.epg_save && g_settings.epg_save_standby)
|
||||||
|
CNeutrinoApp::getInstance()->saveEpg(NeutrinoModes::mode_standby);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -3829,7 +3829,7 @@ void CNeutrinoApp::ExitRun(int can_shutdown)
|
|||||||
if(g_settings.epg_save /* && timeset && g_Sectionsd->getIsTimeSet ()*/)
|
if(g_settings.epg_save /* && timeset && g_Sectionsd->getIsTimeSet ()*/)
|
||||||
{
|
{
|
||||||
g_Sectionsd->setPauseScanning(true);
|
g_Sectionsd->setPauseScanning(true);
|
||||||
saveEpg(true);// true CVFD::MODE_SHUTDOWN
|
saveEpg(NeutrinoModes::mode_off);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* on shutdown force load new fst */
|
/* on shutdown force load new fst */
|
||||||
@@ -4020,40 +4020,47 @@ void CNeutrinoApp::ExitRun(int can_shutdown)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void CNeutrinoApp::saveEpg(bool cvfd_mode)
|
void CNeutrinoApp::saveEpg(int _mode)
|
||||||
{
|
{
|
||||||
struct stat my_stat;
|
struct stat my_stat;
|
||||||
if(stat(g_settings.epg_dir.c_str(), &my_stat) == 0){
|
if (stat(g_settings.epg_dir.c_str(), &my_stat) == 0)
|
||||||
if(!cvfd_mode){//skip saveepg in standby mode, if last saveepg time < 15 Min.
|
{
|
||||||
|
if (_mode == NeutrinoModes::mode_standby)
|
||||||
|
{
|
||||||
|
// skip save epg in standby mode, if last saveepg time < 15 Min.
|
||||||
std::string index_xml = g_settings.epg_dir.c_str();
|
std::string index_xml = g_settings.epg_dir.c_str();
|
||||||
index_xml += "/index.xml";
|
index_xml += "/index.xml";
|
||||||
time_t t=0;
|
time_t t=0;
|
||||||
if(stat(index_xml.c_str(), &my_stat) == 0){
|
if (stat(index_xml.c_str(), &my_stat) == 0)
|
||||||
if(difftime(time(&t), my_stat.st_ctime) < 900){
|
{
|
||||||
|
if (difftime(time(&t), my_stat.st_ctime) < 900)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("[neutrino] Saving EPG to %s...\n", g_settings.epg_dir.c_str());
|
|
||||||
|
|
||||||
CVFD::getInstance()->Clear();
|
CVFD::getInstance()->Clear();
|
||||||
CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO);
|
CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO);
|
||||||
CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_EPG_SAVING));
|
CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_EPG_SAVING));
|
||||||
|
|
||||||
|
printf("[neutrino] Saving EPG to %s...\n", g_settings.epg_dir.c_str());
|
||||||
g_Sectionsd->writeSI2XML(g_settings.epg_dir.c_str());
|
g_Sectionsd->writeSI2XML(g_settings.epg_dir.c_str());
|
||||||
|
|
||||||
neutrino_msg_t msg;
|
neutrino_msg_t msg;
|
||||||
neutrino_msg_data_t data;
|
neutrino_msg_data_t data;
|
||||||
while( true ) {
|
while(true)
|
||||||
|
{
|
||||||
g_RCInput->getMsg(&msg, &data, 1200); // 120 secs..
|
g_RCInput->getMsg(&msg, &data, 1200); // 120 secs..
|
||||||
if (( msg == CRCInput::RC_timeout ) || (msg == NeutrinoMessages::EVT_SI_FINISHED)) {
|
if ((msg == CRCInput::RC_timeout) || (msg == NeutrinoMessages::EVT_SI_FINISHED))
|
||||||
|
{
|
||||||
//printf("Msg %x timeout %d EVT_SI_FINISHED %x\n", msg, CRCInput::RC_timeout, NeutrinoMessages::EVT_SI_FINISHED);
|
//printf("Msg %x timeout %d EVT_SI_FINISHED %x\n", msg, CRCInput::RC_timeout, NeutrinoMessages::EVT_SI_FINISHED);
|
||||||
CVFD::getInstance()->Clear();
|
CVFD::getInstance()->Clear();
|
||||||
CVFD::getInstance()->setMode(cvfd_mode ? CVFD::MODE_SHUTDOWN : CVFD::MODE_STANDBY);// true CVFD::MODE_SHUTDOWN , false CVFD::MODE_STANDBY
|
// do we really have to change VFD-mode here again?
|
||||||
|
CVFD::getInstance()->setMode((_mode == NeutrinoModes::mode_standby) ? CVFD::MODE_STANDBY : CVFD::MODE_SHUTDOWN);
|
||||||
delete [] (unsigned char*) data;
|
delete [] (unsigned char*) data;
|
||||||
break;
|
break;
|
||||||
} else if (!cvfd_mode){
|
}
|
||||||
printf("wait for epg saving, Msg %x \n", (int) msg);
|
else if (_mode == NeutrinoModes::mode_standby)
|
||||||
|
{
|
||||||
|
printf("wait for epg saving, msg %x \n", (int) msg);
|
||||||
handleMsg(msg, data);
|
handleMsg(msg, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4208,7 +4215,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby )
|
|||||||
if(!CRecordManager::getInstance()->RecordingStatus() ) {
|
if(!CRecordManager::getInstance()->RecordingStatus() ) {
|
||||||
//only save epg when not recording
|
//only save epg when not recording
|
||||||
if(g_settings.epg_save && !fromDeepStandby && g_settings.epg_save_standby) {
|
if(g_settings.epg_save && !fromDeepStandby && g_settings.epg_save_standby) {
|
||||||
saveEpg(false);//false CVFD::MODE_STANDBY
|
saveEpg(NeutrinoModes::mode_standby);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -211,7 +211,7 @@ public:
|
|||||||
CConfigFile* getConfigFile() {return &configfile;};
|
CConfigFile* getConfigFile() {return &configfile;};
|
||||||
bool SDTreloadChannels;
|
bool SDTreloadChannels;
|
||||||
|
|
||||||
void saveEpg(bool cvfd_mode);
|
void saveEpg(int _mode);
|
||||||
void stopDaemonsForFlash();
|
void stopDaemonsForFlash();
|
||||||
int showChannelList(const neutrino_msg_t msg, bool from_menu = false);
|
int showChannelList(const neutrino_msg_t msg, bool from_menu = false);
|
||||||
void allowChannelList(bool allow){channelList_allowed = allow;}
|
void allowChannelList(bool allow){channelList_allowed = allow;}
|
||||||
|
Reference in New Issue
Block a user