diff --git a/src/gui/bedit/bouqueteditor_bouquets.cpp b/src/gui/bedit/bouqueteditor_bouquets.cpp index 3f829e2b8..8326163df 100644 --- a/src/gui/bedit/bouqueteditor_bouquets.cpp +++ b/src/gui/bedit/bouqueteditor_bouquets.cpp @@ -366,7 +366,7 @@ int CBEBouquetWidget::exec(CMenuTarget* parent, const std::string & /*actionKey* cancelMoveBouquet(); } } - else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) { + else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { } else { diff --git a/src/gui/bedit/bouqueteditor_channels.cpp b/src/gui/bedit/bouqueteditor_channels.cpp index 2286dbc17..88ae91ab2 100644 --- a/src/gui/bedit/bouqueteditor_channels.cpp +++ b/src/gui/bedit/bouqueteditor_channels.cpp @@ -447,7 +447,7 @@ int CBEChannelWidget::exec(CMenuTarget* parent, const std::string & /*actionKey* cancelMoveChannel(); } } - else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) { + else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { } else { diff --git a/src/gui/bouquetlist.cpp b/src/gui/bouquetlist.cpp index ae8dd7b3f..1bb805dd2 100644 --- a/src/gui/bouquetlist.cpp +++ b/src/gui/bouquetlist.cpp @@ -500,6 +500,12 @@ int CBouquetList::show(bool bShowChannelList) hide(); return CHANLIST_CHANGE_MODE; } + } else if(msg == CRCInput::RC_www) { + if(!favonly && bShowChannelList && CNeutrinoApp::getInstance()->GetChannelMode() != LIST_MODE_WEBTV) { + CNeutrinoApp::getInstance()->SetChannelMode(LIST_MODE_WEBTV); + hide(); + return CHANLIST_CHANGE_MODE; + } } else if ( msg == CRCInput::RC_setup) { if (!favonly && !Bouquets.empty()) { diff --git a/src/gui/buildinfo.cpp b/src/gui/buildinfo.cpp index 3cc1ed0b9..ca8a31e6d 100644 --- a/src/gui/buildinfo.cpp +++ b/src/gui/buildinfo.cpp @@ -82,7 +82,7 @@ int CBuildInfo::exec(CMenuTarget* parent, const string & /*actionKey*/) res = menu_return::RETURN_EXIT_ALL; break; } - else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) { + else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { g_RCInput->postMsg (msg, 0); res = menu_return::RETURN_EXIT_ALL; break; diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index e8a11f3e7..02dfe231c 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -697,7 +697,7 @@ int CChannelList::show() loop = false; } } - else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites) { + else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites || msg == CRCInput::RC_www) { if (!edit_state) { int newmode = msg == CRCInput::RC_sat ? LIST_MODE_SAT : LIST_MODE_FAV; CNeutrinoApp::getInstance()->SetChannelMode(newmode); @@ -1303,7 +1303,7 @@ int CChannelList::numericZap(int key) doZap = true; break; } - else if (msg == CRCInput::RC_favorites || msg == CRCInput::RC_sat || msg == CRCInput::RC_right) { + else if (msg == CRCInput::RC_favorites || msg == CRCInput::RC_sat || msg == CRCInput::RC_www || msg == CRCInput::RC_right) { } else if (CRCInput::isNumeric(msg)) { if (pos == 4) { diff --git a/src/gui/channellist.h b/src/gui/channellist.h index 21d2babda..5f159ed05 100644 --- a/src/gui/channellist.h +++ b/src/gui/channellist.h @@ -50,6 +50,7 @@ enum { LIST_MODE_FAV, LIST_MODE_PROV, + LIST_MODE_WEBTV, LIST_MODE_SAT, LIST_MODE_ALL, LIST_MODE_LAST diff --git a/src/gui/dboxinfo.cpp b/src/gui/dboxinfo.cpp index 19119bb24..d9351a9c3 100644 --- a/src/gui/dboxinfo.cpp +++ b/src/gui/dboxinfo.cpp @@ -138,7 +138,7 @@ int CDBoxInfoWidget::exec(CMenuTarget* parent, const std::string &) res = menu_return::RETURN_EXIT_ALL; doLoop = false; } - else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) { + else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { g_RCInput->postMsg (msg, 0); res = menu_return::RETURN_EXIT_ALL; doLoop = false; diff --git a/src/gui/epgplus.cpp b/src/gui/epgplus.cpp index bf91e3088..12e3e2f27 100644 --- a/src/gui/epgplus.cpp +++ b/src/gui/epgplus.cpp @@ -1130,7 +1130,7 @@ int EpgPlus::exec (CChannelList * pchannelList, int selectedChannelIndex, CBouqu } } } - else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites) { + else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites || msg == CRCInput::RC_www) { g_RCInput->postMsg (msg, 0); res = menu_return::RETURN_EXIT_ALL; loop = false; diff --git a/src/gui/epgview.cpp b/src/gui/epgview.cpp index 3e5181b22..e3e35faf8 100644 --- a/src/gui/epgview.cpp +++ b/src/gui/epgview.cpp @@ -1034,6 +1034,7 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start break; case CRCInput::RC_favorites: case CRCInput::RC_sat: + case CRCInput::RC_www: if( !call_fromfollowlist){ g_RCInput->postMsg (msg, 0); loop = false; diff --git a/src/gui/eventlist.cpp b/src/gui/eventlist.cpp index bf1559639..22246ca31 100644 --- a/src/gui/eventlist.cpp +++ b/src/gui/eventlist.cpp @@ -650,7 +650,7 @@ int CEventList::exec(const t_channel_id channel_id, const std::string& channelna in_search = findEvents(); timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_EPG]); } - else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites) { + else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites || msg == CRCInput::RC_www) { g_RCInput->postMsg (msg, 0); res = menu_return::RETURN_EXIT_ALL; loop = false; diff --git a/src/gui/imageinfo.cpp b/src/gui/imageinfo.cpp index 596419934..82bb1e46c 100644 --- a/src/gui/imageinfo.cpp +++ b/src/gui/imageinfo.cpp @@ -151,7 +151,7 @@ int CImageInfo::exec(CMenuTarget* parent, const std::string &) btn_red->kill(); btn_red->paint(false); } - else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) { + else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { g_RCInput->postMsg (msg, 0); res = menu_return::RETURN_EXIT_ALL; break; diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index 6b57dae19..a4bf3253b 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -1025,7 +1025,7 @@ void CInfoViewer::loop(bool show_dot) if (msg == (neutrino_msg_t) g_settings.key_screenshot) { res = CNeutrinoApp::getInstance()->handleMsg(msg, data); - } else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites) { + } else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites || msg == CRCInput::RC_www) { g_RCInput->postMsg (msg, 0); res = messages_return::cancel_info; } else if (msg == CRCInput::RC_help || msg == CRCInput::RC_info) { diff --git a/src/gui/lua/lua_hintbox.cpp b/src/gui/lua/lua_hintbox.cpp index 900637777..14c7489b2 100644 --- a/src/gui/lua/lua_hintbox.cpp +++ b/src/gui/lua/lua_hintbox.cpp @@ -154,7 +154,7 @@ int CLuaInstHintbox::HintboxExec(lua_State *L) D->b->scroll_up(); else D->b->scroll_down(); - } else if ((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) { + } else if ((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { } else if (msg == CRCInput::RC_mode) { res = messages_return::handled; break; diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 7534dbc94..5d59f9015 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -1102,7 +1102,7 @@ int CMovieBrowser::exec(const char* path) { loop = false; } - else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites) { + else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites || msg == CRCInput::RC_www) { //FIXME do nothing ? } else if (msg == NeutrinoMessages::STANDBY_ON || diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index 8275c214f..336a4107a 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -1515,7 +1515,7 @@ void CMoviePlayerGui::PlayFileLoop(void) } else if (msg == CRCInput::RC_timeout || msg == NeutrinoMessages::EVT_TIMER) { if (playstate == CMoviePlayerGui::PLAY && (position >= 300000 || (duration < 300000 && (position > (duration /2))))) makeScreenShot(true); - } else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites) { + } else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites || msg == CRCInput::RC_www) { //FIXME do nothing ? } else if (msg == (neutrino_msg_t) CRCInput::RC_setup) { CNeutrinoApp::getInstance()->handleMsg(NeutrinoMessages::SHOW_MAINMENU, 0); diff --git a/src/gui/pictureviewer.cpp b/src/gui/pictureviewer.cpp index fdb0873f1..40e5c3b28 100644 --- a/src/gui/pictureviewer.cpp +++ b/src/gui/pictureviewer.cpp @@ -633,7 +633,7 @@ int CPictureViewerGui::show() loop = false; g_RCInput->postMsg(msg, data); } - else if ((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) { + else if ((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { } else { diff --git a/src/gui/screensetup.cpp b/src/gui/screensetup.cpp index 447f1102e..1906518ee 100644 --- a/src/gui/screensetup.cpp +++ b/src/gui/screensetup.cpp @@ -211,6 +211,7 @@ int CScreenSetup::exec(CMenuTarget* parent, const std::string &) } case CRCInput::RC_favorites: case CRCInput::RC_sat: + case CRCInput::RC_www: break; default: diff --git a/src/gui/streaminfo2.cpp b/src/gui/streaminfo2.cpp index d42532a6d..0856435e0 100644 --- a/src/gui/streaminfo2.cpp +++ b/src/gui/streaminfo2.cpp @@ -238,7 +238,7 @@ int CStreamInfo2::doSignalStrengthLoop () res = menu_return::RETURN_EXIT_ALL; break; } - else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) { + else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { g_RCInput->postMsg (msg, 0); res = menu_return::RETURN_EXIT_ALL; break; diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index a0a5faac4..473d6ac4c 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -623,7 +623,7 @@ int CTimerList::show() } // help key } - else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites) { + else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites || msg == CRCInput::RC_www) { g_RCInput->postMsg (msg, 0); loop = false; res = menu_return::RETURN_EXIT_ALL; diff --git a/src/gui/widget/colorchooser.cpp b/src/gui/widget/colorchooser.cpp index e2924c173..92634eece 100644 --- a/src/gui/widget/colorchooser.cpp +++ b/src/gui/widget/colorchooser.cpp @@ -232,6 +232,7 @@ int CColorChooser::exec(CMenuTarget* parent, const std::string &) case CRCInput::RC_sat: case CRCInput::RC_favorites: + case CRCInput::RC_www: break; case CRCInput::RC_timeout: case CRCInput::RC_ok: diff --git a/src/gui/widget/hintbox.cpp b/src/gui/widget/hintbox.cpp index eb9900a58..9bc61d433 100644 --- a/src/gui/widget/hintbox.cpp +++ b/src/gui/widget/hintbox.cpp @@ -290,7 +290,7 @@ int ShowHint(const char * const Caption, const char * const Text, const int Widt else hintBox->scroll_down(); } - else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) { + else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { } else if(msg == CRCInput::RC_mode) { res = messages_return::handled; diff --git a/src/gui/widget/keyboard_input.cpp b/src/gui/widget/keyboard_input.cpp index cc4eaf6f3..4d459fefe 100644 --- a/src/gui/widget/keyboard_input.cpp +++ b/src/gui/widget/keyboard_input.cpp @@ -610,7 +610,7 @@ int CKeyboardInput::exec(CMenuTarget* parent, const std::string &) loop = false; res = menu_return::RETURN_EXIT_REPAINT; } - else if ((msg ==CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) + else if ((msg ==CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { } else diff --git a/src/gui/widget/listbox.cpp b/src/gui/widget/listbox.cpp index 74f63bf65..0ddf8d791 100644 --- a/src/gui/widget/listbox.cpp +++ b/src/gui/widget/listbox.cpp @@ -223,7 +223,7 @@ int CListBox::exec(CMenuTarget* parent, const std::string & /*actionKey*/) { onBlueKeyPressed(); } - else if ((msg ==CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) + else if ((msg ==CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { } else diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 8a021fc9a..a15b51eab 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -967,6 +967,7 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) case (CRCInput::RC_sat): case (CRCInput::RC_favorites): + case (CRCInput::RC_www): g_RCInput->postMsg (msg, 0); //close any menue on dbox-key case (CRCInput::RC_setup): diff --git a/src/gui/widget/messagebox.cpp b/src/gui/widget/messagebox.cpp index 0a5ef4356..835ff9e20 100644 --- a/src/gui/widget/messagebox.cpp +++ b/src/gui/widget/messagebox.cpp @@ -271,7 +271,7 @@ int CMessageBox::exec(int timeout) { loop = false; } - else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) + else if((msg == CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { } else if (CNeutrinoApp::getInstance()->handleMsg(msg, data) & messages_return::cancel_all) diff --git a/src/gui/widget/msgbox.cpp b/src/gui/widget/msgbox.cpp index 13b417409..45cffebf6 100644 --- a/src/gui/widget/msgbox.cpp +++ b/src/gui/widget/msgbox.cpp @@ -719,7 +719,7 @@ int CMsgBox::exec( int timeout, int returnDefaultOnTimeout) { loop = false; } - else if ((msg ==CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) + else if ((msg ==CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { } else if (CNeutrinoApp::getInstance()->handleMsg(msg, data) & messages_return::cancel_all) diff --git a/src/gui/widget/stringinput.cpp b/src/gui/widget/stringinput.cpp index 4020f6fea..e6354805e 100644 --- a/src/gui/widget/stringinput.cpp +++ b/src/gui/widget/stringinput.cpp @@ -494,7 +494,7 @@ int CStringInput::exec( CMenuTarget* parent, const std::string & ) loop=false; res = menu_return::RETURN_EXIT_REPAINT; } - else if ((msg ==CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) + else if ((msg ==CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { } else diff --git a/src/gui/widget/stringinput_ext.cpp b/src/gui/widget/stringinput_ext.cpp index 803cc4843..bf2a51972 100644 --- a/src/gui/widget/stringinput_ext.cpp +++ b/src/gui/widget/stringinput_ext.cpp @@ -257,7 +257,7 @@ int CExtendedInput::exec( CMenuTarget* parent, const std::string & ) *cancel = true; } } - else if ((msg ==CRCInput::RC_sat) || (msg == CRCInput::RC_favorites)) + else if ((msg ==CRCInput::RC_sat) || (msg == CRCInput::RC_favorites) || (msg == CRCInput::RC_www)) { } else if ( CNeutrinoApp::getInstance()->handleMsg( msg, data ) & messages_return::cancel_all ) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index fa7d9f0c0..2cc5de6d2 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -188,11 +188,13 @@ CBouquetList * TVbouquetList; CBouquetList * TVsatList; CBouquetList * TVfavList; CBouquetList * TVallList; +CBouquetList * TVwebList; CBouquetList * RADIObouquetList; CBouquetList * RADIOsatList; CBouquetList * RADIOfavList; CBouquetList * RADIOallList; +CBouquetList * RADIOwebList; CBouquetList * AllFavBouquetList; @@ -1411,11 +1413,16 @@ void CNeutrinoApp::channelsInit(bool bOnly) if(TVchannelList) delete TVchannelList; if(RADIOchannelList) delete RADIOchannelList; + if(TVwebList) delete TVwebList; + if(RADIOwebList) delete RADIOwebList; + TVchannelList = new CChannelList(g_Locale->getText(LOCALE_CHANNELLIST_HEAD), false, true); RADIOchannelList = new CChannelList(g_Locale->getText(LOCALE_CHANNELLIST_HEAD), false, true); TVbouquetList = new CBouquetList(g_Locale->getText(LOCALE_CHANNELLIST_PROVS)); TVfavList = new CBouquetList(g_Locale->getText(LOCALE_CHANNELLIST_FAVS)); + TVwebList = new CBouquetList(g_Locale->getText(LOCALE_BOUQUETNAME_WEBTV)); + RADIOwebList = new CBouquetList(g_Locale->getText(LOCALE_BOUQUETNAME_WEBTV)); RADIObouquetList = new CBouquetList(g_Locale->getText(LOCALE_CHANNELLIST_PROVS)); RADIOfavList = new CBouquetList(g_Locale->getText(LOCALE_CHANNELLIST_FAVS)); @@ -1556,6 +1563,8 @@ void CNeutrinoApp::channelsInit(bool bOnly) if (b->getTvChannels(zapitList) || (g_settings.show_empty_favorites && b->bUser)) { if(b->bUser) tmp = TVfavList->addBouquet(b); + else if(b->bWebtv) + tmp = TVwebList->addBouquet(b); else tmp = TVbouquetList->addBouquet(b); @@ -1565,6 +1574,8 @@ void CNeutrinoApp::channelsInit(bool bOnly) if (b->getRadioChannels(zapitList) || (g_settings.show_empty_favorites && b->bUser)) { if(b->bUser) tmp = RADIOfavList->addBouquet(b); + else if(b->bWebtv) + tmp = RADIOwebList->addBouquet(b); else tmp = RADIObouquetList->addBouquet(b); @@ -1621,6 +1632,12 @@ void CNeutrinoApp::SetChannelMode(int newmode) else bouquetList = TVsatList; break; + case LIST_MODE_WEBTV: + if(mode == mode_radio) + bouquetList = RADIOwebList; + else + bouquetList = TVwebList; + break; case LIST_MODE_ALL: if(mode == mode_radio) bouquetList = RADIOallList; @@ -2597,6 +2614,11 @@ int CNeutrinoApp::showChannelList(const neutrino_msg_t _msg, bool from_menu) if (bouquetList->Bouquets.empty()) SetChannelMode(LIST_MODE_PROV); nNewChannel = bouquetList->exec(true); + } else if(msg == CRCInput::RC_www) { + SetChannelMode(LIST_MODE_WEBTV); + if (bouquetList->Bouquets.empty()) + SetChannelMode(LIST_MODE_PROV); + nNewChannel = bouquetList->exec(true); } _repeat: printf("CNeutrinoApp::showChannelList: nNewChannel %d\n", nNewChannel);fflush(stdout); @@ -2816,7 +2838,7 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) } /* ================================== KEYS ================================================ */ - if( msg == CRCInput::RC_ok || (!g_InfoViewer->getSwitchMode() && (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites))) { + if( msg == CRCInput::RC_ok || (!g_InfoViewer->getSwitchMode() && (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites || msg == CRCInput::RC_www))) { if( (mode == mode_tv) || (mode == mode_radio) || (mode == mode_ts) || (mode == mode_webtv)) { showChannelList(msg); return messages_return::handled; @@ -4628,6 +4650,12 @@ bool CNeutrinoApp::adjustToChannelID(const t_channel_id channel_id) if (has_channel && first_mode_found < 0) first_mode_found = LIST_MODE_PROV; if(!has_channel && old_mode == LIST_MODE_PROV) + new_mode = LIST_MODE_WEBTV; + + has_channel = TVwebList->adjustToChannelID(channel_id); + if (has_channel && first_mode_found < 0) + first_mode_found = LIST_MODE_WEBTV; + if(!has_channel && old_mode == LIST_MODE_WEBTV) new_mode = LIST_MODE_SAT; has_channel = TVsatList->adjustToChannelID(channel_id); @@ -4649,6 +4677,12 @@ bool CNeutrinoApp::adjustToChannelID(const t_channel_id channel_id) if (has_channel && first_mode_found < 0) first_mode_found = LIST_MODE_PROV; if(!has_channel && old_mode == LIST_MODE_PROV) + new_mode = LIST_MODE_WEBTV; + + has_channel = RADIOwebList->adjustToChannelID(channel_id); + if (has_channel && first_mode_found < 0) + first_mode_found = LIST_MODE_WEBTV; + if(!has_channel && old_mode == LIST_MODE_WEBTV) new_mode = LIST_MODE_SAT; has_channel = RADIOsatList->adjustToChannelID(channel_id);