- add submenu to configure and control online services like youtube, shoutcast and tmdb

This commit is contained in:
vanhofen
2016-08-06 22:29:26 +02:00
committed by svenhoefer
parent 5ce13c651d
commit a291b11300
7 changed files with 102 additions and 2 deletions

View File

@@ -47,6 +47,7 @@
#include <gui/widget/icons.h>
#include <gui/widget/stringinput.h>
#include <gui/widget/messagebox.h>
#include <gui/widget/keyboard_input.h>
#include <driver/screen_max.h>
#include <driver/scanepg.h>
@@ -135,6 +136,10 @@ int CMiscMenue::exec(CMenuTarget* parent, const std::string &actionKey)
{
return showMiscSettingsMenuChanlist();
}
else if(actionKey == "onlineservices")
{
return showMiscSettingsMenuOnlineServices();
}
return showMiscSettingsMenu();
}
@@ -270,11 +275,16 @@ int CMiscMenue::showMiscSettingsMenu()
mf->setHint("", LOCALE_MENU_HINT_MISC_ZAPIT);
misc_menue.addItem(mf);
// onlineservices
mf = new CMenuForwarder(LOCALE_MISCSETTINGS_ONLINESERVICES, true, NULL, this, "onlineservices", CRCInput::RC_4);
mf->setHint("", LOCALE_MENU_HINT_MISC_ONLINESERVICES);
misc_menue.addItem(mf);
#ifdef CPU_FREQ
//CPU
CMenuWidget misc_menue_cpu("CPU", NEUTRINO_ICON_SETTINGS, width);
showMiscSettingsMenuCPUFreq(&misc_menue_cpu);
misc_menue.addItem( new CMenuForwarder("CPU", true, NULL, &misc_menue_cpu, NULL, CRCInput::RC_4));
misc_menue.addItem( new CMenuForwarder("CPU", true, NULL, &misc_menue_cpu, NULL, CRCInput::RC_5));
#endif /*CPU_FREQ*/
int res = misc_menue.exec(NULL, "");
@@ -536,6 +546,35 @@ int CMiscMenue::showMiscSettingsMenuChanlist()
return res;
}
// online services
int CMiscMenue::showMiscSettingsMenuOnlineServices()
{
CMenuWidget *ms_oservices = new CMenuWidget(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_MISCSETUP_ONLINESERVICES);
ms_oservices->addIntroItems(LOCALE_MISCSETTINGS_ONLINESERVICES);
changeNotify(LOCALE_TMDB_API_KEY, NULL);
CKeyboardInput tmdb_api_key_input(LOCALE_TMDB_API_KEY, &g_settings.tmdb_api_key, 32, this);
CMenuForwarder *mf = new CMenuForwarder(LOCALE_TMDB_API_KEY, true, tmdb_api_key_short, &tmdb_api_key_input);
mf->setHint(NEUTRINO_ICON_HINT_SETTINGS, LOCALE_MENU_HINT_TMDB_API_KEY);
ms_oservices->addItem(mf);
changeNotify(LOCALE_YOUTUBE_DEV_ID, NULL);
CKeyboardInput youtube_dev_id_input(LOCALE_YOUTUBE_DEV_ID, &g_settings.youtube_dev_id, 38, this);
mf = new CMenuForwarder(LOCALE_YOUTUBE_DEV_ID, true, youtube_dev_id_short, &youtube_dev_id_input);
mf->setHint(NEUTRINO_ICON_HINT_SETTINGS, LOCALE_MENU_HINT_YOUTUBE_DEV_ID);
ms_oservices->addItem(mf);
changeNotify(LOCALE_SHOUTCAST_DEV_ID, NULL);
CKeyboardInput shoutcast_dev_id_input(LOCALE_SHOUTCAST_DEV_ID, &g_settings.shoutcast_dev_id, 16, this);
mf = new CMenuForwarder(LOCALE_SHOUTCAST_DEV_ID, true, shoutcast_dev_id_short, &shoutcast_dev_id_input);
mf->setHint(NEUTRINO_ICON_HINT_SETTINGS, LOCALE_MENU_HINT_SHOUTCAST_DEV_ID);
ms_oservices->addItem(mf);
int res = ms_oservices->exec(NULL, "");
delete ms_oservices;
return res;
}
#ifdef CPU_FREQ
//CPU
void CMiscMenue::showMiscSettingsMenuCPUFreq(CMenuWidget *ms_cpu)
@@ -592,6 +631,29 @@ bool CMiscMenue::changeNotify(const neutrino_locale_t OptionName, void * /*data*
epg_scan->setActive(g_settings.epg_scan_mode != CEpgScan::MODE_OFF && g_settings.epg_save_mode == 0);
ret = menu_return::RETURN_REPAINT;
}
else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_TMDB_API_KEY))
{
g_settings.tmdb_enabled = ((g_settings.tmdb_api_key != "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") && !g_settings.tmdb_api_key.empty());
if (g_settings.tmdb_enabled)
tmdb_api_key_short = g_settings.tmdb_api_key.substr(0, 8) + "...";
else
tmdb_api_key_short.clear();
}
else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_YOUTUBE_DEV_ID))
{
g_settings.youtube_enabled = ((g_settings.youtube_dev_id != "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") && !g_settings.youtube_dev_id.empty());
if (g_settings.youtube_enabled)
youtube_dev_id_short = g_settings.youtube_dev_id.substr(0, 8) + "...";
else
youtube_dev_id_short.clear();
}
else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_SHOUTCAST_DEV_ID))
{
g_settings.shoutcast_enabled = ((g_settings.shoutcast_dev_id != "XXXXXXXXXXXXXXXX") && !g_settings.shoutcast_dev_id.empty());
if (g_settings.shoutcast_enabled)
shoutcast_dev_id_short = g_settings.shoutcast_dev_id.substr(0, 8) + "...";
else
shoutcast_dev_id_short.clear();
}
return ret;
}