Merge branch 'master' into multituner

This commit is contained in:
[CST] Focus
2012-01-26 19:37:46 +04:00
14 changed files with 189 additions and 143 deletions

View File

@@ -594,7 +594,7 @@ keybindingmenu.poweroff Umschalter
keybindingmenu.quickzap Schnellumschaltung
keybindingmenu.remotecontrol_hardware Hardware
keybindingmenu.remotecontrol_hardware_coolstream Coolstream
keybindingmenu.remotecontrol_hardware_dbox dbox
keybindingmenu.remotecontrol_hardware_dbox d-box Nokia (alt)
keybindingmenu.remotecontrol_hardware_msg_part1 Die Fernbedienung wurde von '
keybindingmenu.remotecontrol_hardware_msg_part2 ' auf '
keybindingmenu.remotecontrol_hardware_msg_part3 ' geändert.\nIst dies korrekt?\nBitte die Auswahl innerhalb 15 Sekunden mit der neuen Fernbedienung\nbestätigen. Ansonsten wird die Auswahl zurückgesetzt.

View File

@@ -595,7 +595,7 @@ keybindingmenu.poweroff Power toggle
keybindingmenu.quickzap Quickzap
keybindingmenu.remotecontrol_hardware Hardware
keybindingmenu.remotecontrol_hardware_coolstream Coolstream
keybindingmenu.remotecontrol_hardware_dbox dbox
keybindingmenu.remotecontrol_hardware_dbox d-box Nokia (old)
keybindingmenu.remotecontrol_hardware_msg_part1 The remote control has been changed from '
keybindingmenu.remotecontrol_hardware_msg_part2 ' to '
keybindingmenu.remotecontrol_hardware_msg_part3 ' \nIs this correct?\nPlease confirm the selection within 15 seconds by using the new remote control.\nOtherwise the selection will be reverted.

View File

@@ -1368,7 +1368,7 @@
<transponder frequency="10719000" symbol_rate="27500000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="10723000" symbol_rate="29900000" polarization="0" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="10758000" symbol_rate="27500000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="10775000" symbol_rate="28000000" polarization="0" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="10775000" symbol_rate="29900000" polarization="0" fec_inner="3" system="1" modulation="2"/>
<transponder frequency="10796000" symbol_rate="27500000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="10815000" symbol_rate="27500000" polarization="0" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="10834000" symbol_rate="27500000" polarization="1" fec_inner="3" system="1" modulation="2"/>
@@ -1384,7 +1384,7 @@
<transponder frequency="11034000" symbol_rate="27500000" polarization="1" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="11054000" symbol_rate="27500000" polarization="0" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11075000" symbol_rate="27500000" polarization="1" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="11096000" symbol_rate="28000000" polarization="0" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="11096000" symbol_rate="29900000" polarization="0" fec_inner="2" system="1" modulation="2"/>
<transponder frequency="11117000" symbol_rate="27500000" polarization="1" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="11137000" symbol_rate="27500000" polarization="0" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="11158000" symbol_rate="27500000" polarization="1" fec_inner="4" system="0" modulation="1"/>
@@ -1400,7 +1400,7 @@
<transponder frequency="11355000" symbol_rate="29900000" polarization="1" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="11373000" symbol_rate="27500000" polarization="0" fec_inner="2" system="1" modulation="1"/>
<transponder frequency="11393000" symbol_rate="27500000" polarization="1" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="11411000" symbol_rate="27500000" polarization="0" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11411000" symbol_rate="27500000" polarization="0" fec_inner="4" system="1" modulation="2"/>
<transponder frequency="11432000" symbol_rate="27500000" polarization="1" fec_inner="2" system="1" modulation="1"/>
<transponder frequency="11449000" symbol_rate="27500000" polarization="0" fec_inner="3" system="1" modulation="2"/>
<transponder frequency="11471000" symbol_rate="27500000" polarization="1" fec_inner="4" system="0" modulation="1"/>
@@ -1571,11 +1571,15 @@
<transponder frequency="11023000" symbol_rate="22000000" polarization="0" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11038000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11097000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11126000" symbol_rate="22000000" polarization="1" fec_inner="2" system="1" modulation="2"/>
<transponder frequency="11156000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11171000" symbol_rate="22000000" polarization="0" fec_inner="2" system="1" modulation="2"/>
<transponder frequency="11243000" symbol_rate="22000000" polarization="0" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11303000" symbol_rate="22000000" polarization="0" fec_inner="2" system="1" modulation="2"/>
<transponder frequency="11318000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11362000" symbol_rate="22000000" polarization="0" fec_inner="2" system="1" modulation="2"/>
<transponder frequency="11376000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11420000" symbol_rate="22000000" polarization="0" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11436000" symbol_rate="22000000" polarization="1" fec_inner="2" system="1" modulation="2"/>
<transponder frequency="11464000" symbol_rate="22000000" polarization="0" fec_inner="2" system="1" modulation="2"/>
<transponder frequency="11479000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/>
@@ -1583,7 +1587,8 @@
<transponder frequency="11538000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11568000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11597000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11627000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11611000" symbol_rate="22000000" polarization="0" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11626000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11671000" symbol_rate="22000000" polarization="0" fec_inner="2" system="1" modulation="2"/>
<transponder frequency="11686000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/>
<transponder frequency="11720000" symbol_rate="27500000" polarization="0" fec_inner="3" system="0" modulation="1"/>
@@ -1595,7 +1600,6 @@
<transponder frequency="11836000" symbol_rate="27500000" polarization="0" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="11856000" symbol_rate="27500000" polarization="1" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="11875000" symbol_rate="27500000" polarization="0" fec_inner="9" system="1" modulation="1"/>
<transponder frequency="11876000" symbol_rate="27500000" polarization="0" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="11895000" symbol_rate="27500000" polarization="1" fec_inner="3" system="0" modulation="1"/>
<transponder frequency="11914000" symbol_rate="27500000" polarization="0" fec_inner="9" system="1" modulation="1"/>
<transponder frequency="11934000" symbol_rate="27500000" polarization="1" fec_inner="3" system="0" modulation="1"/>

View File

@@ -505,9 +505,11 @@ void CRemoteControl::processAPIDnames()
if(!strstr(current_PIDs.APIDs[count].desc, " (AC3)"))
strncat(current_PIDs.APIDs[count].desc, " (AC3)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[count].desc));
has_ac3 = true;
if((strlen( current_PIDs.APIDs[count].desc ) == 3) && g_settings.audio_DolbyDigital && (ac3_found < 0))
if(g_settings.audio_DolbyDigital && (ac3_found < 0))
ac3_found = count;
}
else if (current_PIDs.APIDs[count].is_aac && !strstr(current_PIDs.APIDs[count].desc, " (AAC)"))
strncat(current_PIDs.APIDs[count].desc, " (AAC)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[count].desc));
}
if ( has_unresolved_ctags )

View File

@@ -197,6 +197,7 @@ bool CScreenShot::SavePng()
{
printf("CScreenShot::SavePng: %s save error\n", filename.c_str());
png_destroy_write_struct(&png_ptr, &info_ptr);
free(row_pointers);
fclose(fd);
return false;
}

View File

@@ -57,7 +57,6 @@
#include <neutrino.h>
extern CBouquetManager *g_bouquetManager;
extern int g_channel_list_changed;
CBouquetList::CBouquetList(const char * const Name)
{
@@ -381,7 +380,7 @@ int CBouquetList::show(bool bShowChannelList)
else if ( msg == CRCInput::RC_setup) {
int ret = doMenu();
if(ret > 0) {
g_channel_list_changed = true;
CNeutrinoApp::getInstance ()->g_channel_list_changed = true;
res = -4;
loop = false;
} else if(ret < 0)

View File

@@ -85,7 +85,6 @@ extern CBouquetList * RADIOallList;
//extern t_channel_id rec_channel_id;
extern bool autoshift;
extern int g_channel_list_changed;
extern CBouquetManager *g_bouquetManager;
void sectionsd_getChannelEvents(CChannelEventList &eList, const bool tv_mode, t_channel_id *chidlist, int clen);
@@ -663,8 +662,8 @@ int CChannelList::show()
else if ( msg == CRCInput::RC_setup) {
old_b_id = bouquetList->getActiveBouquetNumber();
fader.Stop();
g_channel_list_changed = doChannelMenu();
if(g_channel_list_changed) {
CNeutrinoApp::getInstance ()->g_channel_list_changed = doChannelMenu();
if(CNeutrinoApp::getInstance ()->g_channel_list_changed) {
res = -4;
loop = false;
} else {

View File

@@ -33,6 +33,19 @@
#include <config.h>
#endif
#ifdef HAVE_COOLSTREAM_NEVIS_IR_H
/* define constants instead of #ifdef'ing the corresponding code.
* the compiler will optimize it away anyway, but the syntax is
* still checked */
#define RC_HW_SELECT true
#else
#define RC_HW_SELECT false
#ifdef HAVE_COOL_HARDWARE
#warning header coolstream/nevis_ir.h not found
#warning you probably have an old driver installation
#warning you´ll be missing the remotecontrol selection feature!
#endif
#endif
#include "gui/keybind_setup.h"
@@ -218,7 +231,8 @@ int CKeybindSetup::showKeySetup()
keySetupNotifier->changeNotify(NONEXISTANT_LOCALE, NULL);
keySettings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_KEYBINDINGMENU_RC));
keySettings->addItem(new CMenuOptionChooser(LOCALE_KEYBINDINGMENU_REMOTECONTROL_HARDWARE, &g_settings.remote_control_hardware, KEYBINDINGMENU_REMOTECONTROL_HARDWARE_OPTIONS, KEYBINDINGMENU_REMOTECONTROL_HARDWARE_OPTION_COUNT, true));
if (RC_HW_SELECT)
keySettings->addItem(new CMenuOptionChooser(LOCALE_KEYBINDINGMENU_REMOTECONTROL_HARDWARE, &g_settings.remote_control_hardware, KEYBINDINGMENU_REMOTECONTROL_HARDWARE_OPTIONS, KEYBINDINGMENU_REMOTECONTROL_HARDWARE_OPTION_COUNT, true));
keySettings->addItem(new CMenuForwarder(LOCALE_KEYBINDINGMENU_REPEATBLOCK, true, g_settings.repeat_blocker, keySettings_repeatBlocker));
keySettings->addItem(new CMenuForwarder(LOCALE_KEYBINDINGMENU_REPEATBLOCKGENERIC, true, g_settings.repeat_genericblocker, keySettings_repeat_genericblocker));

View File

@@ -36,6 +36,7 @@
#include <global.h>
#include <neutrino.h>
#include <neutrino_menue.h>
#include <neutrinoMessages.h>
#include "gui/movieplayer.h"
#include "gui/pictureviewer.h"
@@ -48,7 +49,8 @@
#include <driver/screen_max.h>
#include <system/debug.h>
#include <video.h>
extern cVideo * videoDecoder;
CMediaPlayerMenu::CMediaPlayerMenu()
{
@@ -101,6 +103,28 @@ int CMediaPlayerMenu::exec(CMenuTarget* parent, const std::string &actionKey)
return menu_return::RETURN_REPAINT;
}
else if (actionKey == "movieplayer")
{
#if 0 //Is it really necessary to lock here? Moviebrowser got its own configurable parental lock.
bool show = true;
if ((g_settings.parentallock_prompt == PARENTALLOCK_PROMPT_ONSIGNAL) || (g_settings.parentallock_prompt == PARENTALLOCK_PROMPT_CHANGETOLOCKED)) {
CZapProtection zapProtection( g_settings.parentallock_pincode, 0x100 );
show = zapProtection.check();
}
if(show){
#endif
int mode = CNeutrinoApp::getInstance()->getMode();
if( mode == NeutrinoMessages::mode_radio )
videoDecoder->StopPicture();
CMoviePlayerGui::getInstance().exec(NULL, "tsmoviebrowser");
if( mode == NeutrinoMessages::mode_radio )
videoDecoder->ShowPicture(DATADIR "/neutrino/icons/radiomode.jpg");
#if 0
}
#endif
return menu_return::RETURN_REPAINT;;
}
int res = initMenuMedia();
@@ -216,9 +240,8 @@ int CMediaPlayerMenu::initMenuMedia(CMenuWidget *m, CPersonalizeGui *p)
//show movieplayer submenu with selectable items for moviebrowser or filebrowser
void CMediaPlayerMenu::showMoviePlayer(CMenuWidget *moviePlayer, CPersonalizeGui *p)
{
CMoviePlayerGui *movieplayer_gui = &CMoviePlayerGui::getInstance();
CMenuForwarder *fw_mbrowser = new CMenuForwarder(LOCALE_MOVIEBROWSER_HEAD, true, NULL, movieplayer_gui, "tsmoviebrowser", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
CMenuForwarder *fw_file = new CMenuForwarder(LOCALE_MOVIEPLAYER_FILEPLAYBACK, true, NULL, movieplayer_gui, "fileplayback", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
CMenuForwarder *fw_mbrowser = new CMenuForwarder(LOCALE_MOVIEBROWSER_HEAD, true, NULL, this, "movieplayer", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
CMenuForwarder *fw_file = new CMenuForwarder(LOCALE_MOVIEPLAYER_FILEPLAYBACK, true, NULL, &CMoviePlayerGui::getInstance(), "fileplayback", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
p->addIntroItems(moviePlayer);

View File

@@ -248,6 +248,7 @@ int CScanSetup::exec(CMenuTarget* parent, const std::string &actionKey)
g_Zapit->reinitChannels();
if (reloadhintBox)
reloadhintBox->hide();
CNeutrinoApp::getInstance ()->SDTreloadChannels = false;
return res;
}
else if(actionKey=="satsetup")

View File

@@ -42,49 +42,69 @@
CMessageBox::CMessageBox(const neutrino_locale_t Caption, const char * const Text, const int Width, const char * const Icon, const CMessageBox::result_ Default, const uint32_t ShowButtons) : CHintBoxExt(Caption, Text, Width, Icon)
{
returnDefaultOnTimeout = false;
m_height += (m_fheight << 1);
result = Default;
showbuttons = ShowButtons;
int MaxButtonTextWidth = g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->getRenderWidth(g_Locale->getText(LOCALE_MESSAGEBOX_CANCEL), true); // UTF-8
int ButtonWidth = 20 + 33 + MaxButtonTextWidth + 5;
int num = 0;
if (showbuttons & mbYes)
num++;
if (showbuttons & mbNo)
num++;
if (showbuttons & (mbCancel | mbBack | mbOk))
num++;
int new_width = 15 + num*ButtonWidth;
if(new_width > m_width)
m_width = new_width;
Init(Default, ShowButtons);
}
CMessageBox::CMessageBox(const neutrino_locale_t Caption, ContentLines& Lines, const int Width, const char * const Icon, const CMessageBox::result_ Default, const uint32_t ShowButtons) : CHintBoxExt(Caption, Lines, Width, Icon)
{
Init(Default, ShowButtons);
}
void CMessageBox::Init(const CMessageBox::result_ Default, const uint32_t ShowButtons)
{
#define BtnCount 3
returnDefaultOnTimeout = false;
ButtonSpacing = 15;
int w = 0, h = 0, ih = 0;
i_maxw = 0;
std::string Btns[BtnCount] = {NEUTRINO_ICON_BUTTON_RED, NEUTRINO_ICON_BUTTON_GREEN, NEUTRINO_ICON_BUTTON_HOME};
for (int i = 0; i < BtnCount; i++) {
CFrameBuffer::getInstance()->getIconSize(Btns[i].c_str(), &w, &h);
ih = std::max(h, ih);
i_maxw = std::max(w, i_maxw);
}
fh = g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->getHeight();
b_height = std::max(fh, ih) + 8 + (RADIUS_LARGE / 2);
bb_height = b_height + fh/2 + ButtonSpacing;
m_height += bb_height;
result = Default;
b_width = getButtonWidth();
if (ShowButtons & CMessageBox::mbBtnAlignCenter1)
mbBtnAlign = CMessageBox::mbBtnAlignCenter1; // centered, large distances
else if (ShowButtons & CMessageBox::mbBtnAlignCenter2)
mbBtnAlign = CMessageBox::mbBtnAlignCenter2; // centered, small distances
else if (ShowButtons & CMessageBox::mbBtnAlignLeft)
mbBtnAlign = CMessageBox::mbBtnAlignLeft;
else if (ShowButtons & CMessageBox::mbBtnAlignRight)
mbBtnAlign = CMessageBox::mbBtnAlignRight;
else
mbBtnAlign = CMessageBox::mbBtnAlignCenter1; // or g_settings.mbBtnAlign? ;-)
showbuttons = ShowButtons & 0xFF;
m_height += (m_fheight << 1);
ButtonCount = 0;
if (showbuttons & mbYes) {
Buttons[ButtonCount].icon = NEUTRINO_ICON_BUTTON_RED;
Buttons[ButtonCount].text = g_Locale->getText(LOCALE_MESSAGEBOX_YES);
ButtonCount++;
}
if (showbuttons & mbNo) {
Buttons[ButtonCount].icon = NEUTRINO_ICON_BUTTON_GREEN;
Buttons[ButtonCount].text = g_Locale->getText(LOCALE_MESSAGEBOX_NO);
ButtonCount++;
}
if (showbuttons & (mbCancel | mbBack | mbOk)) {
Buttons[ButtonCount].icon = NEUTRINO_ICON_BUTTON_HOME;
Buttons[ButtonCount].text = g_Locale->getText((showbuttons & mbCancel) ? LOCALE_MESSAGEBOX_CANCEL : (showbuttons & mbOk) ? LOCALE_MESSAGEBOX_OK : LOCALE_MESSAGEBOX_BACK);
ButtonCount++;
}
result = Default;
showbuttons = ShowButtons;
int MaxButtonTextWidth = g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->getRenderWidth(g_Locale->getText(LOCALE_MESSAGEBOX_CANCEL), true); // UTF-8
int ButtonWidth = 20 + 33 + MaxButtonTextWidth + 5;
int num = 0;
if (showbuttons & mbYes)
num++;
if (showbuttons & mbNo)
num++;
if (showbuttons & (mbCancel | mbBack | mbOk))
num++;
int new_width = 15 + num*ButtonWidth;
if(new_width > m_width)
m_width = new_width;
ButtonDistance = ButtonSpacing;
bb_width = b_width * ButtonCount + ButtonDistance * (ButtonCount - 1);
if(bb_width > m_width)
m_width = bb_width;
else
if (mbBtnAlign == CMessageBox::mbBtnAlignCenter1)
ButtonDistance = (m_width - b_width * ButtonCount) / (ButtonCount + 1);
}
void CMessageBox::returnDefaultValueOnTimeout(bool returnDefault)
@@ -92,86 +112,62 @@ void CMessageBox::returnDefaultValueOnTimeout(bool returnDefault)
returnDefaultOnTimeout = returnDefault;
}
int CMessageBox::getButtonWidth()
{
#define localeMsgCount 5
neutrino_locale_t localeMsg[localeMsgCount] = {LOCALE_MESSAGEBOX_YES, LOCALE_MESSAGEBOX_NO, LOCALE_MESSAGEBOX_CANCEL, LOCALE_MESSAGEBOX_OK, LOCALE_MESSAGEBOX_BACK};
int MaxButtonTextWidth = 0;
for (int i = 0; i < localeMsgCount; i++)
MaxButtonTextWidth = std::max(g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->getRenderWidth(g_Locale->getText(localeMsg[i]), true), MaxButtonTextWidth);
return MaxButtonTextWidth + i_maxw + 36 + (RADIUS_LARGE / 2);
}
void CMessageBox::paintButtons()
{
uint8_t color;
fb_pixel_t color;
fb_pixel_t bgcolor;
int iw, ih, i;
m_window->paintBoxRel(0, m_height - (m_fheight << 1) - RADIUS_LARGE, m_width, (m_fheight << 1) + RADIUS_LARGE, (CFBWindow::color_t)COL_MENUCONTENT_PLUS_0, RADIUS_LARGE, CORNER_BOTTOM);
int xpos = (m_width - bb_width) / 2;
if (mbBtnAlign == CMessageBox::mbBtnAlignCenter1)
xpos = ButtonDistance;
else if (mbBtnAlign == CMessageBox::mbBtnAlignCenter2)
xpos = (m_width - bb_width) / 2;
else if (mbBtnAlign == CMessageBox::mbBtnAlignLeft)
xpos = ButtonSpacing;
else if (mbBtnAlign == CMessageBox::mbBtnAlignRight)
xpos = m_width - bb_width - ButtonSpacing;
//irgendwann alle vergleichen - aber cancel ist sicher der l<>ngste
int MaxButtonTextWidth = g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->getRenderWidth(g_Locale->getText(LOCALE_MESSAGEBOX_CANCEL), true); // UTF-8
int ypos = (m_height - bb_height) + fh/2;
int ButtonWidth = 20 + 33 + MaxButtonTextWidth;
m_window->paintBoxRel(0, m_height - bb_height, m_width, bb_height, COL_MENUCONTENT_PLUS_0, RADIUS_LARGE, CORNER_BOTTOM);
int ButtonSpacing = (m_width - 20 - (ButtonWidth * 3)) / 2;
if(ButtonSpacing <= 5) ButtonSpacing = 5;
int xpos = 10;
int iw, ih;
int fh = g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->getHeight();
const int noname = 20;
if (showbuttons & mbYes)
{
if (result == mbrYes)
{
color = COL_MENUCONTENTSELECTED;
bgcolor = COL_MENUCONTENTSELECTED_PLUS_0;
}
else
{
color = COL_INFOBAR_SHADOW;
bgcolor = COL_INFOBAR_SHADOW_PLUS_0;
}
CFrameBuffer::getInstance()->getIconSize(NEUTRINO_ICON_BUTTON_RED, &iw, &ih);
m_window->paintBoxRel(xpos, m_height - m_fheight - noname, ButtonWidth, m_fheight, (CFBWindow::color_t)bgcolor, RADIUS_LARGE);//round
//m_window->paintIcon(NEUTRINO_ICON_BUTTON_RED, xpos + 14, m_height - m_fheight - 15);
//m_window->RenderString(g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL], xpos + 43, m_height-m_fheight+4, ButtonWidth- 53, g_Locale->getText(LOCALE_MESSAGEBOX_YES), (CFBWindow::color_t)color, 0, true); // UTF-8
m_window->paintIcon(NEUTRINO_ICON_BUTTON_RED, xpos + 14, m_height - m_fheight - noname, m_fheight);
m_window->RenderString(g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL], xpos + 43, (m_height - noname)-(m_fheight-fh)/2, ButtonWidth- 53, g_Locale->getText(LOCALE_MESSAGEBOX_YES), (CFBWindow::color_t)color, 0, true); // UTF-8
xpos += ButtonWidth + ButtonSpacing;
i = 0;
if (showbuttons & mbYes) {
Buttons[i].def = (result == mbrYes) ? true : false;
i++;
}
if (showbuttons & mbNo)
{
if (result == mbrNo)
{
color = COL_MENUCONTENTSELECTED;
bgcolor = COL_MENUCONTENTSELECTED_PLUS_0;
}
else
{
color = COL_INFOBAR_SHADOW;
bgcolor = COL_INFOBAR_SHADOW_PLUS_0;
}
m_window->paintBoxRel(xpos, m_height-m_fheight-noname, ButtonWidth, m_fheight, (CFBWindow::color_t)bgcolor, RADIUS_LARGE);//round
//m_window->paintIcon(NEUTRINO_ICON_BUTTON_GREEN, xpos+14, m_height-m_fheight-15);
m_window->paintIcon(NEUTRINO_ICON_BUTTON_GREEN, xpos+14, m_height-m_fheight - noname, m_fheight);
m_window->RenderString(g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL], xpos + 43, (m_height - noname)-(m_fheight-fh)/2, ButtonWidth- 53, g_Locale->getText(LOCALE_MESSAGEBOX_NO), (CFBWindow::color_t)color, 0, true); // UTF-8
xpos += ButtonWidth + ButtonSpacing;
if (showbuttons & mbNo) {
Buttons[i].def = (result == mbrNo) ? true : false;
i++;
}
if (showbuttons & (mbCancel | mbBack | mbOk))
{
if (result >= mbrCancel)
{
Buttons[i].def = (result >= mbrCancel) ? true : false;
for (i = 0; i < ButtonCount; i++) {
if (Buttons[i].def) {
color = COL_MENUCONTENTSELECTED;
bgcolor = COL_MENUCONTENTSELECTED_PLUS_0;
}
else
{
} else {
color = COL_INFOBAR_SHADOW;
bgcolor = COL_INFOBAR_SHADOW_PLUS_0;
}
m_window->paintBoxRel(xpos, m_height-m_fheight-noname, ButtonWidth, m_fheight, (CFBWindow::color_t)bgcolor, RADIUS_LARGE);//round
//m_window->paintIcon(NEUTRINO_ICON_BUTTON_HOME, xpos+10, m_height-m_fheight-19);
m_window->paintIcon(NEUTRINO_ICON_BUTTON_HOME, xpos+14, m_height-m_fheight - noname, m_fheight);
m_window->RenderString(g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL], xpos + 43, (m_height - noname)-(m_fheight-fh)/2, ButtonWidth- 53,
g_Locale->getText((showbuttons & mbCancel) ? LOCALE_MESSAGEBOX_CANCEL : (showbuttons & mbOk) ? LOCALE_MESSAGEBOX_OK : LOCALE_MESSAGEBOX_BACK),
(CFBWindow::color_t)color, 0, true); // UTF-8
CFrameBuffer::getInstance()->getIconSize(Buttons[i].icon, &iw, &ih);
m_window->paintBoxRel(xpos, ypos, b_width, b_height, (CFBWindow::color_t)bgcolor, RADIUS_LARGE);
m_window->paintIcon(Buttons[i].icon, xpos + ((b_height - ih) / 2), ypos + ((b_height - ih) / 2), ih);
m_window->RenderString(g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL], xpos + iw + 17, ypos + fh + ((b_height - fh) / 2),
b_width - (iw + 21), Buttons[i].text, (CFBWindow::color_t)color, 0, true);
xpos += b_width + ButtonDistance;
}
}

View File

@@ -38,15 +38,29 @@
#include <stdint.h>
#include <string>
#define MaxButtons 3
class CMessageBox : public CHintBoxExt
{
private:
struct mbButtons
{
bool def;
const char* icon;
const char* text;
};
struct mbButtons Buttons[MaxButtons];
int showbuttons;
bool returnDefaultOnTimeout;
int mbBtnAlign;
int ButtonSpacing, ButtonDistance;
int fh, i_maxw;
int b_height, b_width, bb_height, bb_width;
int ButtonCount;
void paintButtons();
int getButtonWidth();
public:
enum result_
@@ -60,12 +74,16 @@ class CMessageBox : public CHintBoxExt
enum buttons_
{
mbYes= 0x01,
mbNo = 0x02,
mbCancel = 0x04,
mbAll = 0x07,
mbBack = 0x08,
mbOk = 0x10
mbYes = 0x01,
mbNo = 0x02,
mbCancel = 0x04,
mbAll = 0x07,
mbBack = 0x08,
mbOk = 0x10,
mbBtnAlignCenter1 = 0x0100, /* centered, large distances */
mbBtnAlignCenter2 = 0x0200, /* centered, small distances */
mbBtnAlignLeft = 0x0400,
mbBtnAlignRight = 0x0800
} buttons;
// Text & Caption are always UTF-8 encoded
@@ -75,6 +93,9 @@ class CMessageBox : public CHintBoxExt
int exec(int timeout = -1);
void returnDefaultValueOnTimeout(bool returnDefault);
private:
void Init(const CMessageBox::result_ Default, const uint32_t ShowButtons);
};
// Text is always UTF-8 encoded

View File

@@ -150,8 +150,6 @@ extern cAudio * audioDecoder;
cPowerManager *powerManager;
cCpuFreqManager * cpuFreq;
int g_channel_list_changed;
void stop_daemons(bool stopall = true);
// uncomment if you want to have a "test" menue entry (rasc)
@@ -2148,21 +2146,8 @@ INFO("cCA::GetInstance()->Ready\n");
media->exec(NULL, "");
}
else if( msg == CRCInput::RC_video || msg == CRCInput::RC_play ) {
bool show = true;
if ((g_settings.parentallock_prompt == PARENTALLOCK_PROMPT_ONSIGNAL) || (g_settings.parentallock_prompt == PARENTALLOCK_PROMPT_CHANGETOLOCKED)) {
CZapProtection* zapProtection = new CZapProtection( g_settings.parentallock_pincode, 0x100 );
show = zapProtection->check();
delete zapProtection;
}
if(show) {
//StopSubtitles();
if( mode == mode_radio )
videoDecoder->StopPicture();
CMoviePlayerGui::getInstance().exec(NULL, "tsmoviebrowser");
if( mode == mode_radio )
videoDecoder->ShowPicture(DATADIR "/neutrino/icons/radiomode.jpg");
//StartSubtitles();
}
//open moviebrowser via media player menu object
CMediaPlayerMenu::getInstance()->exec(NULL,"movieplayer");
}
else if (CRCInput::isNumeric(msg) && g_RemoteControl->director_mode ) {
g_RemoteControl->setSubChannel(CRCInput::getNumericValue(msg));

View File

@@ -130,7 +130,6 @@ private:
// bool fromflash;
bool init_cec_setting;
int lastChannelMode;
bool SDTreloadChannels;
struct timeval standby_pressed_at;
CZapitClient::responseGetLastChannel firstchannel;
@@ -229,6 +228,8 @@ public:
void SelectSubtitles();
void showInfo(void);
CConfigFile* getConfigFile() {return &configfile;};
bool SDTreloadChannels;
bool g_channel_list_changed;
};
#endif