Merge branch 'ni/tuxbox' into ni/mp/tuxbox

Conflicts:
	src/gui/miscsettings_menu.cpp
	src/neutrino.cpp
	src/neutrino_menue.cpp


Origin commit data
------------------
Commit: ddbd537865
Author: vanhofen <vanhofen@gmx.de>
Date: 2017-03-20 (Mon, 20 Mar 2017)
This commit is contained in:
vanhofen
2017-03-20 15:53:10 +01:00
19 changed files with 151 additions and 151 deletions

View File

@@ -515,12 +515,14 @@ int CNeutrinoApp::loadSetup(const char * fname)
g_settings.hdd_wakeup_msg = configfile.getInt32( "hdd_wakeup_msg", 1); //NI
g_settings.hdd_allow_set_recdir = configfile.getInt32( "hdd_allow_set_recdir", 1); //NI
g_settings.shutdown_real = configfile.getBool("shutdown_real" , false );
g_settings.shutdown_real = false;
if (g_info.hw_caps->can_shutdown)
g_settings.shutdown_real = configfile.getBool("shutdown_real" , false );
g_settings.shutdown_real_rcdelay = configfile.getBool("shutdown_real_rcdelay", false );
g_settings.shutdown_count = configfile.getInt32("shutdown_count", 0);
g_settings.shutdown_min = 0;
if (can_deepstandby || cs_get_revision() == 1)
if (g_info.hw_caps->can_shutdown || cs_get_revision() == 1)
g_settings.shutdown_min = configfile.getInt32("shutdown_min", 000); //NI
g_settings.sleeptimer_min = configfile.getInt32("sleeptimer_min", 0);
@@ -2564,7 +2566,7 @@ TIMER_STOP("################################## after all #######################
}
RealRun();
ExitRun(true, can_deepstandby);
ExitRun(g_info.hw_caps->can_shutdown);
return 0;
}
@@ -3693,7 +3695,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data)
return messages_return::handled;
}
}
if (g_settings.shutdown_real && can_deepstandby)
if (g_settings.shutdown_real)
g_RCInput->postMsg(NeutrinoMessages::SHUTDOWN, 0);
else
g_RCInput->postMsg(NeutrinoMessages::STANDBY_ON, 0);
@@ -3738,7 +3740,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data)
}
else if( msg == NeutrinoMessages::SHUTDOWN ) {
if(!skipShutdownTimer) {
ExitRun(true, can_deepstandby);
ExitRun(g_info.hw_caps->can_shutdown);
}
else {
skipShutdownTimer=false;
@@ -3748,7 +3750,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data)
else if( msg == NeutrinoMessages::REBOOT ) {
FILE *f = fopen("/tmp/.reboot", "w");
fclose(f);
ExitRun(true);
ExitRun();
}
else if (msg == NeutrinoMessages::EVT_POPUP || msg == NeutrinoMessages::EVT_EXTMSG) {
if (mode != mode_scart && mode != mode_standby) {
@@ -3911,141 +3913,150 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data)
extern time_t timer_minutes;//timermanager.cpp
extern bool timer_is_rec;//timermanager.cpp
void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode)
void CNeutrinoApp::ExitRun(int can_shutdown)
{
printf("[neutrino] %s retcode: %d can_deep: %d\n", __func__, retcode, can_deepstandby);
bool do_shutdown = true;
printf("[neutrino] %s can_shutdown: %d\n", __func__, can_shutdown);
bool do_shutdown = true;
CRecordManager::getInstance()->StopAutoRecord();
if(CRecordManager::getInstance()->RecordingStatus() || cYTCache::getInstance()->isActive()) {
if(CRecordManager::getInstance()->RecordingStatus() || cYTCache::getInstance()->isActive())
{
do_shutdown =
(ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWN_RECORDING_QUERY, CMsgBox::mbrNo,
CMsgBox::mbYes | CMsgBox::mbNo, NULL, 450, DEFAULT_TIMEOUT, true) == CMsgBox::mbrYes);
}
if (!do_shutdown)
return;
if(do_shutdown) {
stop_lcd4l_support(); //NI lcd4l-support
stop_lcd4l_support(); //NI lcd4l-support
if(SDTreloadChannels){
SDT_ReloadChannels();
//SDTreloadChannels = false;
}
if(SDTreloadChannels)
SDT_ReloadChannels();
dprintf(DEBUG_INFO, "exit\n");
StopSubtitles();
stopPlayBack();
dprintf(DEBUG_INFO, "exit\n");
StopSubtitles();
stopPlayBack();
frameBuffer->paintBackground();
frameBuffer->showFrame("shutdown.jpg");
frameBuffer->paintBackground();
frameBuffer->showFrame("shutdown.jpg");
delete cHddStat::getInstance();
delete CRecordManager::getInstance();
delete cHddStat::getInstance();
delete CRecordManager::getInstance();
CEpgScan::getInstance()->Stop();
if(g_settings.epg_save /* && timeset && g_Sectionsd->getIsTimeSet ()*/)
{
g_Sectionsd->setPauseScanning(true);
saveEpg(true);// true CVFD::MODE_SHUTDOWN
}
CEpgScan::getInstance()->Stop();
if(g_settings.epg_save /* && timeset && g_Sectionsd->getIsTimeSet ()*/) {
g_Sectionsd->setPauseScanning(true);
saveEpg(true);// true CVFD::MODE_SHUTDOWN
}
/* on shutdown force load new fst */
if (can_shutdown)
CheckFastScan(true, false);
/* on shutdown force load new fst */
if (retcode)
CheckFastScan(true, false);
CVFD::getInstance()->setMode(CVFD::MODE_SHUTDOWN);
CVFD::getInstance()->setMode(CVFD::MODE_SHUTDOWN);
stop_daemons(true /*retcode*/);//need here for timer_is_rec before saveSetup
g_settings.shutdown_timer_record_type = timer_is_rec;
saveSetup(NEUTRINO_SETTINGS_FILE);
stop_daemons(true /*can_shoutdown*/); //need here for timer_is_rec before saveSetup
g_settings.shutdown_timer_record_type = timer_is_rec;
saveSetup(NEUTRINO_SETTINGS_FILE);
#if 0
if(retcode) {
if (can_shutdown)
{
#endif
puts("[neutrino.cpp] executing " NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT ".");
if (my_system(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT) != 0)
perror(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT " failed");
puts("[neutrino.cpp] executing " NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT ".");
if (my_system(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT) != 0)
perror(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT " failed");
//NI InfoIcons
if(g_settings.mode_icons && g_settings.mode_icons_skin == INFOICONS_POPUP)
InfoIcons->saveIconstate();
//NI InfoIcons
if(g_settings.mode_icons && g_settings.mode_icons_skin == INFOICONS_POPUP)
InfoIcons->saveIconstate();
printf("entering off state\n");
printf("timer_minutes: %ld\n", timer_minutes);
mode = mode_off;
//CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_SHUTDOWN));
printf("entering off state\n");
printf("timer_minutes: %ld\n", timer_minutes);
mode = mode_off;
//CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_SHUTDOWN));
#if 0
fp_standby_data_t standby;
time_t mtime = time(NULL);
struct tm *tmtime = localtime(&mtime);
time_t fp_timer = 0;
if (timer_minutes)
{
fp_timer = timer_minutes - mtime/60;
if (fp_timer < 1)
fp_timer = 1;
}
printf("now: %ld, timer %ld, FP timer %ldmin\n", mtime/60, timer_minutes, fp_timer);fflush(stdout);
int leds = 0x40;
switch (g_settings.led_deep_mode)
{
case 0:
leds = 0x0; //off leds
break;
case 1:
leds = 0x60; //on led1 & 2
break;
case 2:
leds = 0x20; //led1 on , 2 off
break;
case 3:
leds = 0x40; //led2 off, 2 on
break;
default:
break;
}
if (leds && g_settings.led_blink && fp_timer)
leds |= 0x80;
standby.brightness = cs_get_revision() == 10 ? 0 : g_settings.lcd_setting[SNeutrinoSettings::LCD_DEEPSTANDBY_BRIGHTNESS];
standby.flags = leds;
standby.current_hour = tmtime->tm_hour;
standby.current_minute = tmtime->tm_min;
standby.timer_minutes_hi = fp_timer >> 8;;
standby.timer_minutes_lo = fp_timer & 0xFF;
my_system("/etc/init.d/rcK");
sync();
CFSMounter::umount(); // unreachable NFS server
//NI my_system(2,"/bin/umount", "-a");
//NI sleep(1);
//NI
if (cs_get_revision() < 8)
CVFD::getInstance()->ShowText((char *) "power-off!");
stop_video();
int fd = open("/dev/display", O_RDONLY);
if (fd < 0)
{
perror("/dev/display");
reboot(LINUX_REBOOT_CMD_RESTART);
}
else
{
if (ioctl(fd, IOC_FP_STANDBY, (fp_standby_data_t *) &standby))
{
fp_standby_data_t standby;
time_t mtime = time(NULL);
struct tm *tmtime = localtime(&mtime);
time_t fp_timer = 0;
if(timer_minutes) {
fp_timer = timer_minutes - mtime/60;
if(fp_timer < 1)
fp_timer = 1;
}
printf("now: %ld, timer %ld, FP timer %ldmin\n", mtime/60, timer_minutes, fp_timer);fflush(stdout);
int leds = 0x40;
switch(g_settings.led_deep_mode){
case 0:
leds = 0x0;//off leds
break;
case 1:
leds = 0x60;//on led1 & 2
break;
case 2:
leds = 0x20;//led1 on , 2 off
break;
case 3:
leds = 0x40;//led2 off, 2 on
break;
default:
break;
}
if(leds && g_settings.led_blink && fp_timer)
leds |= 0x80;
standby.brightness = cs_get_revision() == 10 ? 0 : g_settings.lcd_setting[SNeutrinoSettings::LCD_DEEPSTANDBY_BRIGHTNESS];
standby.flags = leds;
standby.current_hour = tmtime->tm_hour;
standby.current_minute = tmtime->tm_min;
standby.timer_minutes_hi = fp_timer >> 8;;
standby.timer_minutes_lo = fp_timer & 0xFF;
my_system("/etc/init.d/rcK");
sync();
CFSMounter::umount(); // unreachable NFS server
//NI my_system(2,"/bin/umount", "-a");
//NI sleep(1);
//NI
if (cs_get_revision() < 8)
CVFD::getInstance()->ShowText((char *) "power-off!");
stop_video();
int fd = open("/dev/display", O_RDONLY);
if (fd < 0) {
perror("/dev/display");
reboot(LINUX_REBOOT_CMD_RESTART);
} else {
if (ioctl(fd, IOC_FP_STANDBY, (fp_standby_data_t *) &standby)) {
perror("IOC_FP_STANDBY");
reboot(LINUX_REBOOT_CMD_RESTART);
} else {
while(true) sleep(1);
}
}
perror("IOC_FP_STANDBY");
reboot(LINUX_REBOOT_CMD_RESTART);
}
} else {
else
{
while (true)
sleep(1);
}
}
}
else
{
#endif
int leds = 0;
int bright = 0;
#if HAVE_COOL_HARDWARE
if (retcode) {
if (can_shutdown) {
leds = 0x40;
switch (g_settings.led_deep_mode){
case 0:
@@ -4086,7 +4097,6 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode)
delete g_RCInput;
g_RCInput = NULL;
//NI my_system("/etc/init.d/rcK");
//fan speed
if (g_info.hw_caps->has_fan) {
CFanControlNotifier::setSpeed(0);
@@ -4096,22 +4106,17 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode)
delete SHTDCNT::getInstance();
stop_video();
printf("[neutrino] This is the end. exiting with code %d\n", retcode);
printf("[neutrino] This is the end. exiting with code %d\n", can_shutdown);
Cleanup();
#if HAVE_COOL_HARDWARE
FILE *f = fopen("/tmp/.shutdown", "w");
fclose(f);
#endif
#ifdef __sh__
/* the sh4 gcc seems to dislike someting about openthreads... */
_exit(retcode);
_exit(can_shutdown);
#else
exit(retcode);
exit(can_shutdown);
#endif
#if 0
}
#endif
}
#endif
}
void CNeutrinoApp::saveEpg(bool cvfd_mode)
@@ -4507,13 +4512,13 @@ int CNeutrinoApp::exec(CMenuTarget* parent, const std::string & actionKey)
ShowMsg(LOCALE_SETTINGS_HELP, LOCALE_RECORDINGMENU_HELP, CMsgBox::mbrBack, CMsgBox::mbBack);
}
else if(actionKey=="shutdown") {
ExitRun(true, 1);
ExitRun(1);
}
else if(actionKey=="reboot")
{
FILE *f = fopen("/tmp/.reboot", "w");
fclose(f);
ExitRun(true);
ExitRun();
unlink("/tmp/.reboot");
returnval = menu_return::RETURN_NONE;
}