mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-09-06 21:28:26 +02:00
Merge branch 'master' into pu/fb-setmode
Origin commit data
------------------
Branch: ni/coolstream
Commit: be49686432
Author: Michael Liebmann <tuxcode.bbg@gmail.com>
Date: 2017-03-20 (Mon, 20 Mar 2017)
------------------
No further description and justification available within origin commit message!
------------------
This commit was generated by Migit
This commit is contained in:
@@ -272,10 +272,12 @@ int CNeutrinoFonts::getDynFontSize(int dx, int dy, std::string text, int style)
|
|||||||
if (text.empty()) tmpText = "x";
|
if (text.empty()) tmpText = "x";
|
||||||
_width = dynFont->getRenderWidth(tmpText);
|
_width = dynFont->getRenderWidth(tmpText);
|
||||||
if ((_height > dy) || (_width > dx)) {
|
if ((_height > dy) || (_width > dx)) {
|
||||||
if (dynFlag)
|
if (dynFlag){
|
||||||
dynSize--;
|
dynSize--;
|
||||||
else
|
}else{
|
||||||
printf("##### [%s] Specified size (dx=%d, dy=%d) too small, use minimal font size.\n", __FUNCTION__, dx, dy);
|
if (debug)
|
||||||
|
printf("##### [%s] Specified size (dx=%d, dy=%d) too small, use minimal font size.\n", __FUNCTION__, dx, dy);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if ((_height < dy) || (_width < dx)) {
|
else if ((_height < dy) || (_width < dx)) {
|
||||||
|
@@ -55,7 +55,6 @@
|
|||||||
#include <zapit/femanager.h>
|
#include <zapit/femanager.h>
|
||||||
#include <eitd/sectionsd.h>
|
#include <eitd/sectionsd.h>
|
||||||
|
|
||||||
#include <cs_api.h>
|
|
||||||
#include <video.h>
|
#include <video.h>
|
||||||
|
|
||||||
#include <sectionsdclient/sectionsdclient.h>
|
#include <sectionsdclient/sectionsdclient.h>
|
||||||
@@ -245,7 +244,7 @@ int CMiscMenue::showMiscSettingsMenu()
|
|||||||
misc_menue.addItem(mf);
|
misc_menue.addItem(mf);
|
||||||
|
|
||||||
//energy, shutdown
|
//energy, shutdown
|
||||||
if(cs_get_revision() > 7)
|
if(g_info.hw_caps->can_shutdown)
|
||||||
{
|
{
|
||||||
mf = new CMenuForwarder(LOCALE_MISCSETTINGS_ENERGY, true, NULL, this, "energy", CRCInput::RC_green);
|
mf = new CMenuForwarder(LOCALE_MISCSETTINGS_ENERGY, true, NULL, this, "energy", CRCInput::RC_green);
|
||||||
mf->setHint("", LOCALE_MENU_HINT_MISC_ENERGY);
|
mf->setHint("", LOCALE_MENU_HINT_MISC_ENERGY);
|
||||||
|
@@ -197,6 +197,7 @@ int CColorChooser::exec(CMenuTarget* parent, const std::string &)
|
|||||||
val += 2;
|
val += 2;
|
||||||
else
|
else
|
||||||
val = 100;
|
val = 100;
|
||||||
|
(*value[selected]) = (uint8_t)val;
|
||||||
|
|
||||||
paintSlider(x + 10, y + hheight + mheight * selected, value[selected], colorchooser_names[selected], iconnames[selected], true);
|
paintSlider(x + 10, y + hheight + mheight * selected, value[selected], colorchooser_names[selected], iconnames[selected], true);
|
||||||
setColor();
|
setColor();
|
||||||
@@ -211,6 +212,7 @@ int CColorChooser::exec(CMenuTarget* parent, const std::string &)
|
|||||||
val -= 2;
|
val -= 2;
|
||||||
else
|
else
|
||||||
val = 0;
|
val = 0;
|
||||||
|
(*value[selected]) = (uint8_t)val;
|
||||||
|
|
||||||
paintSlider(x + 10, y + hheight + mheight * selected, value[selected], colorchooser_names[selected], iconnames[selected], true);
|
paintSlider(x + 10, y + hheight + mheight * selected, value[selected], colorchooser_names[selected], iconnames[selected], true);
|
||||||
setColor();
|
setColor();
|
||||||
|
243
src/neutrino.cpp
243
src/neutrino.cpp
@@ -455,12 +455,14 @@ int CNeutrinoApp::loadSetup(const char * fname)
|
|||||||
g_settings.hdd_noise = configfile.getInt32( "hdd_noise", 254);
|
g_settings.hdd_noise = configfile.getInt32( "hdd_noise", 254);
|
||||||
g_settings.hdd_statfs_mode = configfile.getInt32( "hdd_statfs_mode", SNeutrinoSettings::HDD_STATFS_RECORDING);
|
g_settings.hdd_statfs_mode = configfile.getInt32( "hdd_statfs_mode", SNeutrinoSettings::HDD_STATFS_RECORDING);
|
||||||
|
|
||||||
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_real_rcdelay = configfile.getBool("shutdown_real_rcdelay", false );
|
||||||
g_settings.shutdown_count = configfile.getInt32("shutdown_count", 0);
|
g_settings.shutdown_count = configfile.getInt32("shutdown_count", 0);
|
||||||
|
|
||||||
g_settings.shutdown_min = 0;
|
g_settings.shutdown_min = 0;
|
||||||
if(cs_get_revision() > 7)
|
if (g_info.hw_caps->can_shutdown)
|
||||||
g_settings.shutdown_min = configfile.getInt32("shutdown_min", 180);
|
g_settings.shutdown_min = configfile.getInt32("shutdown_min", 180);
|
||||||
g_settings.sleeptimer_min = configfile.getInt32("sleeptimer_min", 0);
|
g_settings.sleeptimer_min = configfile.getInt32("sleeptimer_min", 0);
|
||||||
|
|
||||||
@@ -2370,7 +2372,7 @@ TIMER_STOP("################################## after all #######################
|
|||||||
}
|
}
|
||||||
RealRun();
|
RealRun();
|
||||||
|
|
||||||
ExitRun(true, (cs_get_revision() > 7));
|
ExitRun(g_info.hw_caps->can_shutdown);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -3439,7 +3441,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data)
|
|||||||
return messages_return::handled;
|
return messages_return::handled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(g_settings.shutdown_real)
|
if (g_settings.shutdown_real)
|
||||||
g_RCInput->postMsg(NeutrinoMessages::SHUTDOWN, 0);
|
g_RCInput->postMsg(NeutrinoMessages::SHUTDOWN, 0);
|
||||||
else
|
else
|
||||||
g_RCInput->postMsg(NeutrinoMessages::STANDBY_ON, 0);
|
g_RCInput->postMsg(NeutrinoMessages::STANDBY_ON, 0);
|
||||||
@@ -3484,7 +3486,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data)
|
|||||||
}
|
}
|
||||||
else if( msg == NeutrinoMessages::SHUTDOWN ) {
|
else if( msg == NeutrinoMessages::SHUTDOWN ) {
|
||||||
if(!skipShutdownTimer) {
|
if(!skipShutdownTimer) {
|
||||||
ExitRun(true, (cs_get_revision() > 7));
|
ExitRun(g_info.hw_caps->can_shutdown);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
skipShutdownTimer=false;
|
skipShutdownTimer=false;
|
||||||
@@ -3494,7 +3496,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data)
|
|||||||
else if( msg == NeutrinoMessages::REBOOT ) {
|
else if( msg == NeutrinoMessages::REBOOT ) {
|
||||||
FILE *f = fopen("/tmp/.reboot", "w");
|
FILE *f = fopen("/tmp/.reboot", "w");
|
||||||
fclose(f);
|
fclose(f);
|
||||||
ExitRun(true);
|
ExitRun();
|
||||||
}
|
}
|
||||||
else if (msg == NeutrinoMessages::EVT_POPUP || msg == NeutrinoMessages::EVT_EXTMSG) {
|
else if (msg == NeutrinoMessages::EVT_POPUP || msg == NeutrinoMessages::EVT_EXTMSG) {
|
||||||
if (mode != mode_scart && mode != mode_standby) {
|
if (mode != mode_scart && mode != mode_standby) {
|
||||||
@@ -3657,134 +3659,141 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data)
|
|||||||
extern time_t timer_minutes;//timermanager.cpp
|
extern time_t timer_minutes;//timermanager.cpp
|
||||||
extern bool timer_is_rec;//timermanager.cpp
|
extern bool timer_is_rec;//timermanager.cpp
|
||||||
|
|
||||||
void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode)
|
void CNeutrinoApp::ExitRun(int can_shutdown)
|
||||||
{
|
{
|
||||||
bool do_shutdown = true;
|
printf("[neutrino] %s can_shutdown: %d\n", __func__, can_shutdown);
|
||||||
|
|
||||||
|
bool do_shutdown = true;
|
||||||
CRecordManager::getInstance()->StopAutoRecord();
|
CRecordManager::getInstance()->StopAutoRecord();
|
||||||
if(CRecordManager::getInstance()->RecordingStatus() || cYTCache::getInstance()->isActive()) {
|
if(CRecordManager::getInstance()->RecordingStatus() || cYTCache::getInstance()->isActive())
|
||||||
|
{
|
||||||
do_shutdown =
|
do_shutdown =
|
||||||
(ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWN_RECORDING_QUERY, CMsgBox::mbrNo,
|
(ShowMsg(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWN_RECORDING_QUERY, CMsgBox::mbrNo,
|
||||||
CMsgBox::mbYes | CMsgBox::mbNo, NULL, 450, DEFAULT_TIMEOUT, true) == CMsgBox::mbrYes);
|
CMsgBox::mbYes | CMsgBox::mbNo, NULL, 450, DEFAULT_TIMEOUT, true) == CMsgBox::mbrYes);
|
||||||
}
|
}
|
||||||
|
if (!do_shutdown)
|
||||||
|
return;
|
||||||
|
|
||||||
if(do_shutdown) {
|
if (SDTreloadChannels)
|
||||||
if(SDTreloadChannels){
|
SDT_ReloadChannels();
|
||||||
SDT_ReloadChannels();
|
|
||||||
//SDTreloadChannels = false;
|
dprintf(DEBUG_INFO, "exit\n");
|
||||||
|
StopSubtitles();
|
||||||
|
stopPlayBack();
|
||||||
|
|
||||||
|
frameBuffer->paintBackground();
|
||||||
|
frameBuffer->showFrame("shutdown.jpg");
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
/* on shutdown force load new fst */
|
||||||
|
if (can_shutdown)
|
||||||
|
CheckFastScan(true, false);
|
||||||
|
|
||||||
|
CVFD::getInstance()->setMode(CVFD::MODE_SHUTDOWN);
|
||||||
|
|
||||||
|
stop_daemons(true /*can_shutdown*/); //need here for timer_is_rec before saveSetup
|
||||||
|
g_settings.shutdown_timer_record_type = timer_is_rec;
|
||||||
|
saveSetup(NEUTRINO_SETTINGS_FILE);
|
||||||
|
|
||||||
|
if (can_shutdown)
|
||||||
|
{
|
||||||
|
puts("[neutrino.cpp] executing " NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT ".");
|
||||||
|
if (my_system(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT) != 0)
|
||||||
|
perror(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT " failed");
|
||||||
|
|
||||||
|
printf("entering off state\n");
|
||||||
|
mode = mode_off;
|
||||||
|
//CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_SHUTDOWN));
|
||||||
|
|
||||||
|
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;
|
||||||
dprintf(DEBUG_INFO, "exit\n");
|
switch (g_settings.led_deep_mode)
|
||||||
StopSubtitles();
|
{
|
||||||
stopPlayBack();
|
case 0:
|
||||||
|
leds = 0x0; //off leds
|
||||||
frameBuffer->paintBackground();
|
break;
|
||||||
frameBuffer->showFrame("shutdown.jpg");
|
case 1:
|
||||||
|
leds = 0x60; //on led1 & 2
|
||||||
delete cHddStat::getInstance();
|
break;
|
||||||
delete CRecordManager::getInstance();
|
case 2:
|
||||||
|
leds = 0x20; //led1 on , 2 off
|
||||||
CEpgScan::getInstance()->Stop();
|
break;
|
||||||
if(g_settings.epg_save /* && timeset && g_Sectionsd->getIsTimeSet ()*/) {
|
case 3:
|
||||||
g_Sectionsd->setPauseScanning(true);
|
leds = 0x40; //led2 off, 2 on
|
||||||
saveEpg(true);// true CVFD::MODE_SHUTDOWN
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
if (leds && g_settings.led_blink && fp_timer)
|
||||||
|
leds |= 0x80;
|
||||||
|
|
||||||
/* on shutdown force load new fst */
|
standby.brightness = cs_get_revision() == 10 ? 0 : g_settings.lcd_setting[SNeutrinoSettings::LCD_DEEPSTANDBY_BRIGHTNESS];
|
||||||
if (retcode)
|
standby.flags = leds;
|
||||||
CheckFastScan(true, false);
|
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;
|
||||||
|
|
||||||
CVFD::getInstance()->setMode(CVFD::MODE_SHUTDOWN);
|
my_system("/etc/init.d/rcK");
|
||||||
|
sync();
|
||||||
|
CFSMounter::umount(); // unreachable NFS server
|
||||||
|
my_system(2,"/bin/umount", "-a");
|
||||||
|
sleep(1);
|
||||||
|
|
||||||
stop_daemons(true /*retcode*/);//need here for timer_is_rec before saveSetup
|
stop_video();
|
||||||
g_settings.shutdown_timer_record_type = timer_is_rec;
|
|
||||||
saveSetup(NEUTRINO_SETTINGS_FILE);
|
|
||||||
|
|
||||||
if(retcode) {
|
|
||||||
puts("[neutrino.cpp] executing " NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT ".");
|
|
||||||
if (my_system(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT) != 0)
|
|
||||||
perror(NEUTRINO_ENTER_DEEPSTANDBY_SCRIPT " failed");
|
|
||||||
|
|
||||||
printf("entering off state\n");
|
|
||||||
mode = mode_off;
|
|
||||||
//CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_SHUTDOWN));
|
|
||||||
|
|
||||||
|
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;
|
perror("IOC_FP_STANDBY");
|
||||||
time_t mtime = time(NULL);
|
reboot(LINUX_REBOOT_CMD_RESTART);
|
||||||
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
|
|
||||||
my_system(2,"/bin/umount", "-a");
|
|
||||||
sleep(1);
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
else
|
||||||
delete g_RCInput;
|
{
|
||||||
my_system("/etc/init.d/rcK");
|
while (true)
|
||||||
//fan speed
|
sleep(1);
|
||||||
if (g_info.hw_caps->has_fan) {
|
|
||||||
CFanControlNotifier::setSpeed(0);
|
|
||||||
}
|
}
|
||||||
//CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_REBOOT));
|
|
||||||
stop_video();
|
|
||||||
Cleanup();
|
|
||||||
//_exit(retcode);
|
|
||||||
exit(retcode);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete g_RCInput;
|
||||||
|
my_system("/etc/init.d/rcK");
|
||||||
|
//fan speed
|
||||||
|
if (g_info.hw_caps->has_fan)
|
||||||
|
CFanControlNotifier::setSpeed(0);
|
||||||
|
stop_video();
|
||||||
|
Cleanup();
|
||||||
|
//_exit(0);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CNeutrinoApp::saveEpg(bool cvfd_mode)
|
void CNeutrinoApp::saveEpg(bool cvfd_mode)
|
||||||
@@ -4145,13 +4154,13 @@ int CNeutrinoApp::exec(CMenuTarget* parent, const std::string & actionKey)
|
|||||||
ShowMsg(LOCALE_SETTINGS_HELP, LOCALE_RECORDINGMENU_HELP, CMsgBox::mbrBack, CMsgBox::mbBack);
|
ShowMsg(LOCALE_SETTINGS_HELP, LOCALE_RECORDINGMENU_HELP, CMsgBox::mbrBack, CMsgBox::mbBack);
|
||||||
}
|
}
|
||||||
else if(actionKey=="shutdown") {
|
else if(actionKey=="shutdown") {
|
||||||
ExitRun(true, 1);
|
ExitRun(1);
|
||||||
}
|
}
|
||||||
else if(actionKey=="reboot")
|
else if(actionKey=="reboot")
|
||||||
{
|
{
|
||||||
FILE *f = fopen("/tmp/.reboot", "w");
|
FILE *f = fopen("/tmp/.reboot", "w");
|
||||||
fclose(f);
|
fclose(f);
|
||||||
ExitRun(true);
|
ExitRun();
|
||||||
unlink("/tmp/.reboot");
|
unlink("/tmp/.reboot");
|
||||||
returnval = menu_return::RETURN_NONE;
|
returnval = menu_return::RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
@@ -121,7 +121,7 @@ private:
|
|||||||
void standbyMode( bool bOnOff, bool fromDeepStandby = false );
|
void standbyMode( bool bOnOff, bool fromDeepStandby = false );
|
||||||
void getAnnounceEpgName(CTimerd::RecordingInfo * eventinfo, std::string &name);
|
void getAnnounceEpgName(CTimerd::RecordingInfo * eventinfo, std::string &name);
|
||||||
|
|
||||||
void ExitRun(const bool write_si = true, int retcode = 0);
|
void ExitRun(int can_shutdown = 0);
|
||||||
void RealRun();
|
void RealRun();
|
||||||
void InitZapper();
|
void InitZapper();
|
||||||
void InitTimerdClient();
|
void InitTimerdClient();
|
||||||
|
@@ -252,7 +252,7 @@ void CNeutrinoApp::InitMenuMain()
|
|||||||
personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_REBOOT]);
|
personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_REBOOT]);
|
||||||
|
|
||||||
//shutdown
|
//shutdown
|
||||||
if(system_rev >= 8) {
|
if (g_info.hw_caps->can_shutdown) {
|
||||||
mf = new CMenuForwarder(LOCALE_MAINMENU_SHUTDOWN, true, NULL, this, "shutdown", CRCInput::RC_standby);
|
mf = new CMenuForwarder(LOCALE_MAINMENU_SHUTDOWN, true, NULL, this, "shutdown", CRCInput::RC_standby);
|
||||||
mf->setHint(NEUTRINO_ICON_HINT_SHUTDOWN, LOCALE_MENU_HINT_SHUTDOWN);
|
mf->setHint(NEUTRINO_ICON_HINT_SHUTDOWN, LOCALE_MENU_HINT_SHUTDOWN);
|
||||||
personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_SHUTDOWN]);
|
personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_SHUTDOWN]);
|
||||||
@@ -298,7 +298,7 @@ void CNeutrinoApp::InitMenuMain()
|
|||||||
personalize.addItem(MENU_SHUTDOWN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_REBOOT]);
|
personalize.addItem(MENU_SHUTDOWN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_REBOOT]);
|
||||||
|
|
||||||
//shutdown
|
//shutdown
|
||||||
if(system_rev >= 8) {
|
if (g_info.hw_caps->can_shutdown) {
|
||||||
mf = new CMenuForwarder(LOCALE_MAINMENU_SHUTDOWN, true, NULL, this, "shutdown", CRCInput::RC_blue);
|
mf = new CMenuForwarder(LOCALE_MAINMENU_SHUTDOWN, true, NULL, this, "shutdown", CRCInput::RC_blue);
|
||||||
mf->setHint(NEUTRINO_ICON_HINT_SHUTDOWN, LOCALE_MENU_HINT_SHUTDOWN);
|
mf->setHint(NEUTRINO_ICON_HINT_SHUTDOWN, LOCALE_MENU_HINT_SHUTDOWN);
|
||||||
personalize.addItem(MENU_SHUTDOWN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_SHUTDOWN]);
|
personalize.addItem(MENU_SHUTDOWN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_SHUTDOWN]);
|
||||||
|
Reference in New Issue
Block a user