Merge branch 'master' into pu/moviebrowser

Origin commit data
------------------
Commit: c65dac6283
Author: vanhofen <vanhofen@gmx.de>
Date: 2016-11-07 (Mon, 07 Nov 2016)
This commit is contained in:
vanhofen
2016-11-07 13:46:01 +01:00
4 changed files with 321 additions and 213 deletions

View File

@@ -255,6 +255,7 @@ channellist.foot_sort_freq Triediť [frekvencia]
channellist.foot_sort_sat Triediť [satelit] channellist.foot_sort_sat Triediť [satelit]
channellist.head Všetky kanály channellist.head Všetky kanály
channellist.history História channellist.history História
channellist.history_clear Vymazať históriu
channellist.keep_numbers Zachovať čísla predvolieb channellist.keep_numbers Zachovať čísla predvolieb
channellist.make_hdlist Vytvoriť zoznam pre HD kanály channellist.make_hdlist Vytvoriť zoznam pre HD kanály
channellist.make_newlist Vytvoriť zoznam pre nové kanály channellist.make_newlist Vytvoriť zoznam pre nové kanály
@@ -332,6 +333,7 @@ colormenu.timing Čas zobrazenia OSD
colormenusetup.menucontent Obsahové okno colormenusetup.menucontent Obsahové okno
colormenusetup.menucontent_inactive Neaktívne v obsahovom okne colormenusetup.menucontent_inactive Neaktívne v obsahovom okne
colormenusetup.menucontent_selected Vybrané v obsahovom okne colormenusetup.menucontent_selected Vybrané v obsahovom okne
colormenusetup.menufoot Päta
colormenusetup.menuhead Hlavička colormenusetup.menuhead Hlavička
colorstatusbar.text Text stavového riadku colorstatusbar.text Text stavového riadku
colorthememenu.head Výber vzhľadu colorthememenu.head Výber vzhľadu
@@ -387,6 +389,7 @@ epgviewer.genre Žáner
epgviewer.length Dĺžka (min.) epgviewer.length Dĺžka (min.)
epgviewer.nodetailed Detailné informácie sú nedostupné epgviewer.nodetailed Detailné informácie sú nedostupné
epgviewer.notfound EPG nenájdené epgviewer.notfound EPG nenájdené
epgviewer.select_screening Voľba relácie
eventfinder.fsk Filter hodnotenia veku eventfinder.fsk Filter hodnotenia veku
eventfinder.genre Filter žánru eventfinder.genre Filter žánru
eventfinder.head Hľadať v EPG eventfinder.head Hľadať v EPG
@@ -400,6 +403,7 @@ eventfinder.search_within_list Hľadať v zozname
eventfinder.searching Hľadám slovo v EPG... eventfinder.searching Hľadám slovo v EPG...
eventfinder.start_search Spustiť hľadanie eventfinder.start_search Spustiť hľadanie
eventlist.additional Podrobnejšie informácie EPG eventlist.additional Podrobnejšie informácie EPG
eventlist.epgplus Zobraziť EPG Plus
eventlist.name Zoznam udalostí EPG eventlist.name Zoznam udalostí EPG
eventlistbar.channelswitch Prepnúť eventlistbar.channelswitch Prepnúť
eventlistbar.eventsort Triediť eventlistbar.eventsort Triediť
@@ -699,6 +703,7 @@ fontmenu.eventlist Programový sprievodca
fontmenu.head Nastavenie písma fontmenu.head Nastavenie písma
fontmenu.infobar Informačná lišta fontmenu.infobar Informačná lišta
fontmenu.menu Menu fontmenu.menu Menu
fontmenu.moviebrowser Prehliadač filmov
fontmenu.other Iné fontmenu.other Iné
fontmenu.scaling Faktor zoomu globálneho fontu fontmenu.scaling Faktor zoomu globálneho fontu
fontmenu.scaling_x Vodorovne (v %) fontmenu.scaling_x Vodorovne (v %)
@@ -727,9 +732,13 @@ fontsize.infobar_info Informácia na informačnej lište
fontsize.infobar_ng_ecminfo ECM Informácia fontsize.infobar_ng_ecminfo ECM Informácia
fontsize.infobar_number Kanál na informačnej lište fontsize.infobar_number Kanál na informačnej lište
fontsize.menu Text menu fontsize.menu Text menu
fontsize.menu_foot Päta (vo všetkých grafických elementoch)
fontsize.menu_hint Popis menu fontsize.menu_hint Popis menu
fontsize.menu_info Informačné menu fontsize.menu_info Informačné menu
fontsize.menu_title Titulok menu fontsize.menu_title Titulok menu
fontsize.moviebrowser_head Hlavičky
fontsize.moviebrowser_info Informačné okno
fontsize.moviebrowser_list Zoznam položiek
fontsize.subtitles Text titulkov fontsize.subtitles Text titulkov
fsk.all vyp fsk.all vyp
fsk.from_12 od 12 fsk.from_12 od 12
@@ -1035,6 +1044,7 @@ menu.hint_epg_save_standby Uložiť EPG pred prechodom do pohotovostného režim
menu.hint_epg_scan Povolenie prehľadávania EPG na pozadí ak je voľný tuner menu.hint_epg_scan Povolenie prehľadávania EPG na pozadí ak je voľný tuner
menu.hint_epg_scan_mode Výber výsledku prijímača pre spustenie prehľadania EPG menu.hint_epg_scan_mode Výber výsledku prijímača pre spustenie prehľadania EPG
menu.hint_eventlist_additional Zobrazí podrobnejšie informácie\nv hlavnom okne menu.hint_eventlist_additional Zobrazí podrobnejšie informácie\nv hlavnom okne
menu.hint_eventlist_epgplus Zobraziť EPG Plus (prehľad udalostí) pri stlačení klávesy EPG
menu.hint_eventlist_fonts Zmena veľkosti písma zoznamu udalostí menu.hint_eventlist_fonts Zmena veľkosti písma zoznamu udalostí
menu.hint_eventlist_setup Konfigurácia GUI volieb zoznamu udalostí v EPG menu.hint_eventlist_setup Konfigurácia GUI volieb zoznamu udalostí v EPG
menu.hint_extended Správa napájania, voľby ukladania/nahrania EPG \nHDMI-CEC, štartovací kanál, voľby prepínania menu.hint_extended Správa napájania, voľby ukladania/nahrania EPG \nHDMI-CEC, štartovací kanál, voľby prepínania
@@ -1049,6 +1059,8 @@ menu.hint_font_gui Výber súboru písma pre GUI
menu.hint_font_scaling Zvislé a vodorovné nastavenie globálnej mierky písma menu.hint_font_scaling Zvislé a vodorovné nastavenie globálnej mierky písma
menu.hint_font_ttx Výber písma pre teletext menu.hint_font_ttx Výber písma pre teletext
menu.hint_fonts Konfigurácia písma GUI menu.hint_fonts Konfigurácia písma GUI
menu.hint_foot_back Zmena farby pozadia grafického užívateľského rozhrania (GUI)
menu.hint_foot_textcolor Zmena farby textu päty v okne grafického užívateľského rozhrania GUI
menu.hint_games Zobrazenie zoznamu inštalovaných hier menu.hint_games Zobrazenie zoznamu inštalovaných hier
menu.hint_hdd Formátovanie/kontrola pevného disku menu.hint_hdd Formátovanie/kontrola pevného disku
menu.hint_hdd_apply Použitie parametrov uspania/stíšenia menu.hint_hdd_apply Použitie parametrov uspania/stíšenia
@@ -1176,8 +1188,10 @@ menu.hint_misc_energy Použitie pohotovostného režimu, oneskorené vypnutie\n
menu.hint_misc_epg Voľby uloženia/načítania EPG, voľby ukladania EPG,\nEPG zložka uloženia menu.hint_misc_epg Voľby uloženia/načítania EPG, voľby ukladania EPG,\nEPG zložka uloženia
menu.hint_misc_filebrowser Kódovanie súborového systemu, oprávnenia súboru,\nzákaz odstrániť zložky menu.hint_misc_filebrowser Kódovanie súborového systemu, oprávnenia súboru,\nzákaz odstrániť zložky
menu.hint_misc_general Spustenie do pohotovostného režimu, vyrovnávacia pamäť teletextu, hdd zložka doplnkov,\núroveň debugovania menu.hint_misc_general Spustenie do pohotovostného režimu, vyrovnávacia pamäť teletextu, hdd zložka doplnkov,\núroveň debugovania
menu.hint_misc_onlineservices Konfigurácia a ovládanie online služieb ako YouTube, SHOUTCast a TMDb
menu.hint_misc_zapit Východzie TV/Radio kanály menu.hint_misc_zapit Východzie TV/Radio kanály
menu.hint_movie Prehrávanie filmov menu.hint_movie Prehrávanie filmov
menu.hint_moviebrowser_fonts Zmena veľkosti písma prehliadača filmov (Moje nahrávky)
menu.hint_moviebrowser_setup Nastavenie výberu a volieb zobrazenia menu.hint_moviebrowser_setup Nastavenie výberu a volieb zobrazenia
menu.hint_movieplayer_plugin Výber doplnku pre overenie s jedným potvrdením klávesy v režime prehrávača menu.hint_movieplayer_plugin Výber doplnku pre overenie s jedným potvrdením klávesy v režime prehrávača
menu.hint_net_broadcast Zadanie adresy vysielania, ak netušíte použite IP adresu s koncom .255 menu.hint_net_broadcast Zadanie adresy vysielania, ak netušíte použite IP adresu s koncom .255
@@ -1257,6 +1271,7 @@ menu.hint_progressbar_timescale_yellow Výber množstva žltej vo farebnosti inf
menu.hint_protection Ochrana obsahu PIN kódom\nVýchodzí PIN 0000 menu.hint_protection Ochrana obsahu PIN kódom\nVýchodzí PIN 0000
menu.hint_radiomode Prepne prijímač do režimu Rádio menu.hint_radiomode Prepne prijímač do režimu Rádio
menu.hint_reboot Reštart prijímača - bez potvrdzovania menu.hint_reboot Reštart prijímača - bez potvrdzovania
menu.hint_record_already_found_check Kontrola pred nastavením novej nahrávky časovača na prítomnosť zhody rovnakého titulu
menu.hint_record_apid_ac3 Nahrá AC3 zvukové pidy menu.hint_record_apid_ac3 Nahrá AC3 zvukové pidy
menu.hint_record_apid_alt Nahrá ostatné zvukové pidy menu.hint_record_apid_alt Nahrá ostatné zvukové pidy
menu.hint_record_apid_std Nahrá prvý zvukový pid menu.hint_record_apid_std Nahrá prvý zvukový pid
@@ -1388,6 +1403,8 @@ menu.hint_service Nastavenie tuneru, vyhľadanie služieb,\núprava buketov, akt
menu.hint_service_scan Automatické / manuálne vyhľadávanie staníc, FastScan, Test signálu menu.hint_service_scan Automatické / manuálne vyhľadávanie staníc, FastScan, Test signálu
menu.hint_settings Konfigurácia Neutrino-HD, sieť, zvuk, obraz, OSD a iné menu.hint_settings Konfigurácia Neutrino-HD, sieť, zvuk, obraz, OSD a iné
menu.hint_show_mute_icon Zobrazenie ikony umlčania, ak nastavenie hlasitosťi bude 0 menu.hint_show_mute_icon Zobrazenie ikony umlčania, ak nastavenie hlasitosťi bude 0
menu.hint_shoutcast_dev_id Vložte vaše SHOUTcast údaje. Neuvedením údajov sa vypne podpora SHOUTcast.
menu.hint_shoutcast_enabled Povoliť alebo zakázať podporu SHOUTcast
menu.hint_shutdown Vypnutie prijímača - bez potvrdzovania menu.hint_shutdown Vypnutie prijímača - bez potvrdzovania
menu.hint_shutdown_count Čas prepnutia prijímača z pohotovostného režimu do stavu vypnutia menu.hint_shutdown_count Čas prepnutia prijímača z pohotovostného režimu do stavu vypnutia
menu.hint_shutdown_menu Prepne prijímač do pohotovostného režimu alebo ho vypne, nastaví časovač vypnutia menu.hint_shutdown_menu Prepne prijímač do pohotovostného režimu alebo ho vypne, nastaví časovač vypnutia
@@ -1414,6 +1431,8 @@ menu.hint_theme Výber prednastavených farebných vzhľadov\nUloženie alebo na
menu.hint_timeouts Konfigurácia času zmiznutia GUI okien\nv sekundách menu.hint_timeouts Konfigurácia času zmiznutia GUI okien\nv sekundách
menu.hint_timers Pridanie/Odstránenie/Upravenie plánovaného\nnahrávania, pripomienky atď. menu.hint_timers Pridanie/Odstránenie/Upravenie plánovaného\nnahrávania, pripomienky atď.
menu.hint_timezone Výber časového pásma menu.hint_timezone Výber časového pásma
menu.hint_tmdb_api_key Vložte váš TMDb API kľúč. Neuvedením údajov sa vypne podpora TMDb
menu.hint_tmdb_enabled Povoliť alebo zakázať podporu TMDb (themoviedb.org)
menu.hint_tools Spustenie nástrojov menu.hint_tools Spustenie nástrojov
menu.hint_tvmode Prepne prijímač do režimu TV menu.hint_tvmode Prepne prijímač do režimu TV
menu.hint_tvradio_switch Prepínanie medzi TV a Rádio režimom menu.hint_tvradio_switch Prepínanie medzi TV a Rádio režimom
@@ -1451,6 +1470,8 @@ menu.hint_volume_pos Výber pozície indikátora hlasitosti
menu.hint_volume_size Výber výšky indikátora hlasitosti menu.hint_volume_size Výber výšky indikátora hlasitosti
menu.hint_webtv_setup Tu nakonfigurované WebTV kanály budú k dispozícii v štandartnom zozname kanálov menu.hint_webtv_setup Tu nakonfigurované WebTV kanály budú k dispozícii v štandartnom zozname kanálov
menu.hint_window_size Zoznam kanálov, EPG-Infp a niektoré iné okná sú zmenšené týmto faktorom menu.hint_window_size Zoznam kanálov, EPG-Infp a niektoré iné okná sú zmenšené týmto faktorom
menu.hint_youtube_dev_id Vložte vaše YouTube údaje. Neuvedením údajov sa vypne podpora YouTube
menu.hint_youtube_enabled Povoliť alebo zakázať podporu YouTube
menu.hint_ytplay Prehrávanie vybraných youtube videí menu.hint_ytplay Prehrávanie vybraných youtube videí
menu.hint_ytplay_setup Konfigurácia špecifických volieb YouTube, napr. horný limit výsledkov vyhľadávania menu.hint_ytplay_setup Konfigurácia špecifických volieb YouTube, napr. horný limit výsledkov vyhľadávania
menu.hint_zap_cycle Pri prepínaní kanálov zotrvať v aktuálnom bukete menu.hint_zap_cycle Pri prepínaní kanálov zotrvať v aktuálnom bukete
@@ -1529,6 +1550,7 @@ miscsettings.infobar_show_res_simple jednoduché
miscsettings.infobar_show_sysfs_hdd Indikátor zaplnenia (sysFS a HDD) miscsettings.infobar_show_sysfs_hdd Indikátor zaplnenia (sysFS a HDD)
miscsettings.infobar_show_tuner Zobraziť aktívny tuner miscsettings.infobar_show_tuner Zobraziť aktívny tuner
miscsettings.infoclock Informačné hodiny miscsettings.infoclock Informačné hodiny
miscsettings.onlineservices Online služby
miscsettings.progressbar Ukazateľ miscsettings.progressbar Ukazateľ
miscsettings.progressbar_color Farba miscsettings.progressbar_color Farba
miscsettings.progressbar_design Vzhľad miscsettings.progressbar_design Vzhľad
@@ -1612,6 +1634,7 @@ moviebrowser.book_position Pozícia:
moviebrowser.book_type Skok (<0 vzad , >0 vpred): moviebrowser.book_type Skok (<0 vzad , >0 vpred):
moviebrowser.book_type_backward Opakovať moviebrowser.book_type_backward Opakovať
moviebrowser.book_type_forward Skok za moviebrowser.book_type_forward Skok za
moviebrowser.browser_additional Doplnkové informácie
moviebrowser.browser_frame_high Výška prehliadača [%] moviebrowser.browser_frame_high Výška prehliadača [%]
moviebrowser.browser_row_head Nastavenia riadku moviebrowser.browser_row_head Nastavenia riadku
moviebrowser.browser_row_item Položka stĺpca moviebrowser.browser_row_item Položka stĺpca
@@ -1697,6 +1720,7 @@ moviebrowser.info_rating Hodnotenie
moviebrowser.info_recorddate Dátum nahrávky moviebrowser.info_recorddate Dátum nahrávky
moviebrowser.info_serie Seriál moviebrowser.info_serie Seriál
moviebrowser.info_size Veľkosť (MB) moviebrowser.info_size Veľkosť (MB)
moviebrowser.info_spacer Medzera
moviebrowser.info_title Titul moviebrowser.info_title Titul
moviebrowser.info_videoformat Obraz moviebrowser.info_videoformat Obraz
moviebrowser.last_play_max_items Počet posledných prehrávaní v zozname moviebrowser.last_play_max_items Počet posledných prehrávaní v zozname
@@ -1745,8 +1769,9 @@ moviebrowser.short_prodyear Rok
moviebrowser.short_quality * (kvalita) moviebrowser.short_quality * (kvalita)
moviebrowser.short_rating Hlasy moviebrowser.short_rating Hlasy
moviebrowser.short_recorddate Dátum moviebrowser.short_recorddate Dátum
moviebrowser.short_serie Serial moviebrowser.short_serie Seriál
moviebrowser.short_size Veľkosť moviebrowser.short_size Veľkosť
moviebrowser.short_spacer
moviebrowser.short_title Titul moviebrowser.short_title Titul
moviebrowser.start_head Pozerať film od: moviebrowser.start_head Pozerať film od:
moviebrowser.start_record_start Začiatok filmu moviebrowser.start_record_start Začiatok filmu
@@ -2027,6 +2052,8 @@ rclock.locked Uzamknuté
rclock.lockmsg Diaľkový ovládač uzamknutý.\n\nPre odblokovanie stlačte [ČERVENÉ] \na [MENU] na Vašom ovládači. rclock.lockmsg Diaľkový ovládač uzamknutý.\n\nPre odblokovanie stlačte [ČERVENÉ] \na [MENU] na Vašom ovládači.
rclock.title Uzamknutie diaľkového ovládača rclock.title Uzamknutie diaľkového ovládača
rclock.unlockmsg Diaľkové ovládanie funkčné... rclock.unlockmsg Diaľkové ovládanie funkčné...
recording.already_found %s\nuž bola nájdená. Napriek tomu spustiť nahrávanie?
recording.already_found_check Kontrola nahrávky
recording.is_running Tento kanál sa nahráva. Spustiť nové nahrávanie? recording.is_running Tento kanál sa nahráva. Spustiť nové nahrávanie?
recording.start Spúšťanie nahrávania, čakajte prosím...! recording.start Spúšťanie nahrávania, čakajte prosím...!
recording.startstop_msg Upozorniť o začatí / ukončení nahrávania recording.startstop_msg Upozorniť o začatí / ukončení nahrávania
@@ -2034,6 +2061,7 @@ recording.stop Zastavenie nahrávania, čakajte prosím...!
recording.time_hour Hodina recording.time_hour Hodina
recording.time_hours Hodín recording.time_hours Hodín
recording.time_min Min recording.time_min Min
recordingmenu.already_found_check Kontrola na prítomnosť rovnakého titulu
recordingmenu.apids Predvolené zvukové stopy recordingmenu.apids Predvolené zvukové stopy
recordingmenu.apids_ac3 Nahrať zvuk AC3 recordingmenu.apids_ac3 Nahrať zvuk AC3
recordingmenu.apids_alt Nahrať ostatné zvukové stopy recordingmenu.apids_alt Nahrať ostatné zvukové stopy
@@ -2069,6 +2097,16 @@ recordingmenu.vcr Videorekordér
recordingmenu.vtxt_pid Nahrať teletext recordingmenu.vtxt_pid Nahrať teletext
recordingmenu.zap_on_announce Prepnúť na kanál pred začatím nahrávania recordingmenu.zap_on_announce Prepnúť na kanál pred začatím nahrávania
recordtimer.announce Začatie nahrávania za pár minút. recordtimer.announce Začatie nahrávania za pár minút.
remotebox_add Pridať
remotebox_channel_na Kanál na vzdialenom zariadení nedostupný
remotebox_del Vymazať
remotebox_head Vzdialené zariadnia
remotebox_mod Upraviť
remotebox_pass Heslo
remotebox_port Port
remotebox_rbaddr Adresa
remotebox_rbname Názov
remotebox_user Užívateľ
reset_all Továrenské nastavenia reset_all Továrenské nastavenia
reset_channels Zmazanie všetkych kanálov reset_channels Zmazanie všetkych kanálov
reset_confirm Skutočne? reset_confirm Skutočne?
@@ -2238,6 +2276,8 @@ settings.pos_top_left vľavo hore
settings.pos_top_right vpravo hore settings.pos_top_right vpravo hore
settings.restore Záloha: Obnovenie nastavení settings.restore Záloha: Obnovenie nastavení
settings.restore_warn Všetky nastavenia budú nahradené a vykoná sa reštart.\nPokračovať? settings.restore_warn Všetky nastavenia budú nahradené a vykoná sa reštart.\nPokračovať?
shoutcast.dev_id SHOUTcast ID
shoutcast.enabled SHOUTcast podpora
shutdown.recording_query Skutočne prerušiť nahrávanie? shutdown.recording_query Skutočne prerušiť nahrávanie?
shutdowntimer.announce Vypnutie boxu za minútu.\nZrušiť vypnutie? shutdowntimer.announce Vypnutie boxu za minútu.\nZrušiť vypnutie?
sleeptimerbox.announce Do vypnutia zostáva minúta. sleeptimerbox.announce Do vypnutia zostáva minúta.
@@ -2331,6 +2371,7 @@ timerlist.type.execplugin Spustenie doplnku
timerlist.type.nextprogram Nasledujúci program timerlist.type.nextprogram Nasledujúci program
timerlist.type.record Nahrávanie timerlist.type.record Nahrávanie
timerlist.type.remind Pripomenutie timerlist.type.remind Pripomenutie
timerlist.type.remotebox Vzdialená nahrávka
timerlist.type.shutdown Vypnutie timerlist.type.shutdown Vypnutie
timerlist.type.sleeptimer Časové vypnutie timerlist.type.sleeptimer Časové vypnutie
timerlist.type.standby Akcia timerlist.type.standby Akcia
@@ -2357,6 +2398,8 @@ timing.infobar_radio Stavový riadok (rádio mód)
timing.menu Ponuka timing.menu Ponuka
timing.numericzap Prepínanie číslami timing.numericzap Prepínanie číslami
timing.volumebar Ukazateľ hlasitosti timing.volumebar Ukazateľ hlasitosti
tmdb.api_key TMDb API kľúč
tmdb.enabled TMDb podpora
tmdb.read_data Vyhľadávanie údajov TMDB... tmdb.read_data Vyhľadávanie údajov TMDB...
unicable.lnb Vstup Unicable unicable.lnb Vstup Unicable
unicable.qrg Frekvencia Unicable unicable.qrg Frekvencia Unicable
@@ -2464,6 +2507,8 @@ wizard.welcome_head Vitajte v sprievodcovi nastavení
wizard.welcome_text Nasledujúce kroky vás prevedú počiatočnou inštaláciou nastavenia prístroja.\nInformácia: Váš prijímač môžete pohodlne ovládať\ncez webové rozhranie pre správu časovača alebo živé vysielanie cez internetový prehliadač.\nPrístupové heslo nie je zatiaľ nastavené!\nNastavte ho za pomoci použitia príkazu "passwd" cez telnet rozhranie.\nChcete pokračovať? wizard.welcome_text Nasledujúce kroky vás prevedú počiatočnou inštaláciou nastavenia prístroja.\nInformácia: Váš prijímač môžete pohodlne ovládať\ncez webové rozhranie pre správu časovača alebo živé vysielanie cez internetový prehliadač.\nPrístupové heslo nie je zatiaľ nastavené!\nNastavte ho za pomoci použitia príkazu "passwd" cez telnet rozhranie.\nChcete pokračovať?
word.from z word.from z
word.in v word.in v
youtube.dev_id YouTube ID
youtube.enabled YouTube podpora
zapit.scantype Vyhľadávanie kanálov zapit.scantype Vyhľadávanie kanálov
zapit.scantype.all Všetky zapit.scantype.all Všetky
zapit.scantype.radio Len Rádio zapit.scantype.radio Len Rádio

View File

@@ -83,6 +83,11 @@ CComponentsInfoBox::~CComponentsInfoBox()
void CComponentsInfoBox::setPicture(const std::string& picture_name) void CComponentsInfoBox::setPicture(const std::string& picture_name)
{ {
pic_name = picture_name; pic_name = picture_name;
if (!pic_name.empty()){
int w, h;
frameBuffer->getIconSize(pic_name.c_str(), &w, &h);
height = max(h, height);
}
} }
void CComponentsInfoBox::setPicture(const char* picture_name) void CComponentsInfoBox::setPicture(const char* picture_name)

View File

@@ -713,10 +713,15 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start
int logo_w = 0; int logo_w = 0;
int logo_h = 0; int logo_h = 0;
int logo_w_max = ox / 4; int logo_w_max = ox / 4;
if(g_settings.infobar_show_channellogo && g_PicViewer->GetLogoName(channel_id, g_Zapit->getChannelName(channel_id), lname, &logo_w, &logo_h)) { std::string channel_name;
if((logo_h > (toph-4)) || (logo_w > logo_w_max)) { if (mp_info)
channel_name = mp_movie_info->channelName;
else
channel_name = g_Zapit->getChannelName(channel_id);
if (g_settings.infobar_show_channellogo && g_PicViewer->GetLogoName(channel_id, channel_name, lname, &logo_w, &logo_h))
{
if ((logo_h > (toph-4)) || (logo_w > logo_w_max))
g_PicViewer->rescaleImageDimensions(&logo_w, &logo_h, logo_w_max, toph-4); g_PicViewer->rescaleImageDimensions(&logo_w, &logo_h, logo_w_max, toph-4);
}
pic_offx = logo_w + 10; pic_offx = logo_w + 10;
} }

View File

@@ -181,11 +181,13 @@ public:
bool changeNotify(const neutrino_locale_t /*OptionName*/, void *) bool changeNotify(const neutrino_locale_t /*OptionName*/, void *)
{ {
if (*iRepeat >= (int)CTimerd::TIMERREPEAT_WEEKDAYS) { if (*iRepeat >= (int)CTimerd::TIMERREPEAT_WEEKDAYS)
{
m1->setActive (true); m1->setActive (true);
*weekdays = "XXXXX--"; *weekdays = "XXXXX--";
} }
else { else
{
m1->setActive (false); m1->setActive (false);
*weekdays = "-------"; *weekdays = "-------";
} }
@@ -294,18 +296,19 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
{ {
const char * key = actionKey.c_str(); const char * key = actionKey.c_str();
if(actionKey == "add_ip") { if (actionKey == "add_ip")
{
std::string rbname,rbaddress,user,pass = ""; std::string rbname,rbaddress,user,pass = "";
std::string port = "80"; std::string port = "80";
CKeyboardInput remotebox_name(LOCALE_REMOTEBOX_RBNAME , &rbname, 25); CKeyboardInput remotebox_name(LOCALE_REMOTEBOX_RBNAME, &rbname, 25);
remotebox_name.forceSaveScreen(true); remotebox_name.forceSaveScreen(true);
CKeyboardInput remotebox_address(LOCALE_REMOTEBOX_RBADDR , &rbaddress, 50); CKeyboardInput remotebox_address(LOCALE_REMOTEBOX_RBADDR, &rbaddress, 50);
remotebox_address.forceSaveScreen(true); remotebox_address.forceSaveScreen(true);
CStringInput remotebox_port(LOCALE_REMOTEBOX_PORT , &port, 5); CStringInput remotebox_port(LOCALE_REMOTEBOX_PORT, &port, 5);
remotebox_port.forceSaveScreen(true); remotebox_port.forceSaveScreen(true);
CKeyboardInput remotebox_user(LOCALE_REMOTEBOX_USER , &user, 15); CKeyboardInput remotebox_user(LOCALE_REMOTEBOX_USER, &user, 15);
remotebox_user.forceSaveScreen(true); remotebox_user.forceSaveScreen(true);
CKeyboardInput remotebox_pass(LOCALE_REMOTEBOX_PASS , &pass, 15); CKeyboardInput remotebox_pass(LOCALE_REMOTEBOX_PASS, &pass, 15);
remotebox_pass.forceSaveScreen(true); remotebox_pass.forceSaveScreen(true);
CMenuWidget * rbsetup = new CMenuWidget(LOCALE_REMOTEBOX_HEAD, NEUTRINO_ICON_TIMER); CMenuWidget * rbsetup = new CMenuWidget(LOCALE_REMOTEBOX_HEAD, NEUTRINO_ICON_TIMER);
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_RBNAME, true, rbname, &remotebox_name)); rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_RBNAME, true, rbname, &remotebox_name));
@@ -314,30 +317,34 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_USER, true, user, &remotebox_user)); rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_USER, true, user, &remotebox_user));
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_PASS, true, pass, &remotebox_pass)); rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_PASS, true, pass, &remotebox_pass));
rbsetup->enableSaveScreen(true); rbsetup->enableSaveScreen(true);
if ((rbsetup->exec(NULL,"") == true) && (!rbaddress.empty())) { if ((rbsetup->exec(NULL,"") == true) && (!rbaddress.empty()))
{
remboxmenu->addItem(new CMenuForwarder(rbname, true, NULL, this, "cha_ip")); remboxmenu->addItem(new CMenuForwarder(rbname, true, NULL, this, "cha_ip"));
rbsetup->hide(); rbsetup->hide();
remboxmenu->enableSaveScreen(false); remboxmenu->enableSaveScreen(false);
remboxmenu->hide(); remboxmenu->hide();
timer_remotebox_item timer_rb; timer_remotebox_item timer_rb;
timer_rb.rbaddress = rbaddress; timer_rb.rbaddress = rbaddress;
if (!timer_rb.rbaddress.empty()) { if (!timer_rb.rbaddress.empty())
timer_rb.port = atoi(port); {
timer_rb.user = user; timer_rb.port = atoi(port);
timer_rb.pass = pass; timer_rb.user = user;
timer_rb.rbname = rbname; timer_rb.pass = pass;
if (timer_rb.rbname.empty()) timer_rb.rbname = rbname;
timer_rb.rbname = timer_rb.rbaddress; if (timer_rb.rbname.empty())
g_settings.timer_remotebox_ip.push_back(timer_rb); timer_rb.rbname = timer_rb.rbaddress;
g_settings.timer_remotebox_ip.push_back(timer_rb);
} }
changed = true; changed = true;
} }
return menu_return::RETURN_REPAINT; return menu_return::RETURN_REPAINT;
} }
if(actionKey == "del_ip") { if (actionKey == "del_ip")
{
bselected = remboxmenu->getSelected(); bselected = remboxmenu->getSelected();
if (bselected >= item_offset) { if (bselected >= item_offset)
{
remboxmenu->removeItem(bselected); remboxmenu->removeItem(bselected);
remboxmenu->enableSaveScreen(false); remboxmenu->enableSaveScreen(false);
remboxmenu->hide(); remboxmenu->hide();
@@ -347,22 +354,23 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
return menu_return::RETURN_REPAINT; return menu_return::RETURN_REPAINT;
} }
if(actionKey == "cha_ip") { if (actionKey == "cha_ip")
{
bselected = remboxmenu->getSelected(); bselected = remboxmenu->getSelected();
CMenuItem* item = remboxmenu->getItem(bselected); CMenuItem* item = remboxmenu->getItem(bselected);
CMenuForwarder *f = static_cast<CMenuForwarder*>(item); CMenuForwarder *f = static_cast<CMenuForwarder*>(item);
std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin(); std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin();
std::advance(it,bselected-item_offset); std::advance(it,bselected-item_offset);
std::string port = to_string(it->port); std::string port = to_string(it->port);
CKeyboardInput remotebox_name(LOCALE_REMOTEBOX_RBNAME , &it->rbname, 25); CKeyboardInput remotebox_name(LOCALE_REMOTEBOX_RBNAME, &it->rbname, 25);
remotebox_name.forceSaveScreen(true); remotebox_name.forceSaveScreen(true);
CKeyboardInput remotebox_address(LOCALE_REMOTEBOX_RBADDR , &it->rbaddress, 50); CKeyboardInput remotebox_address(LOCALE_REMOTEBOX_RBADDR, &it->rbaddress, 50);
remotebox_address.forceSaveScreen(true); remotebox_address.forceSaveScreen(true);
CStringInput remotebox_port(LOCALE_REMOTEBOX_PORT , &port, 5); CStringInput remotebox_port(LOCALE_REMOTEBOX_PORT, &port, 5);
remotebox_port.forceSaveScreen(true); remotebox_port.forceSaveScreen(true);
CKeyboardInput remotebox_user(LOCALE_REMOTEBOX_USER , &it->user, 15); CKeyboardInput remotebox_user(LOCALE_REMOTEBOX_USER, &it->user, 15);
remotebox_user.forceSaveScreen(true); remotebox_user.forceSaveScreen(true);
CKeyboardInput remotebox_pass(LOCALE_REMOTEBOX_PASS , &it->pass, 15); CKeyboardInput remotebox_pass(LOCALE_REMOTEBOX_PASS, &it->pass, 15);
remotebox_pass.forceSaveScreen(true); remotebox_pass.forceSaveScreen(true);
CMenuWidget * rbsetup = new CMenuWidget(LOCALE_REMOTEBOX_HEAD, NEUTRINO_ICON_TIMER); CMenuWidget * rbsetup = new CMenuWidget(LOCALE_REMOTEBOX_HEAD, NEUTRINO_ICON_TIMER);
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_RBNAME, true, it->rbname, &remotebox_name)); rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_RBNAME, true, it->rbname, &remotebox_name));
@@ -371,7 +379,8 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_USER, true, it->user, &remotebox_user)); rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_USER, true, it->user, &remotebox_user));
rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_PASS, true, it->pass, &remotebox_pass)); rbsetup->addItem(new CMenuForwarder(LOCALE_REMOTEBOX_PASS, true, it->pass, &remotebox_pass));
rbsetup->enableSaveScreen(true); rbsetup->enableSaveScreen(true);
if ((rbsetup->exec(NULL,"") == true) && (!it->rbaddress.empty())) { if ((rbsetup->exec(NULL,"") == true) && (!it->rbaddress.empty()))
{
it->port = atoi(port); it->port = atoi(port);
f->setName(it->rbname); f->setName(it->rbname);
rbsetup->hide(); rbsetup->hide();
@@ -393,18 +402,18 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
if (timer_apids_dflt) if (timer_apids_dflt)
timerlist[selected].apids = TIMERD_APIDS_CONF; timerlist[selected].apids = TIMERD_APIDS_CONF;
else else
timerlist[selected].apids = (unsigned char)((timer_apids_std * TIMERD_APIDS_STD) | (timer_apids_ac3 * TIMERD_APIDS_AC3) | timerlist[selected].apids = (unsigned char)((timer_apids_std * TIMERD_APIDS_STD) | (timer_apids_ac3 * TIMERD_APIDS_AC3) | (timer_apids_alt * TIMERD_APIDS_ALT));
(timer_apids_alt * TIMERD_APIDS_ALT));
Timer->modifyTimerAPid(timerlist[selected].eventID,timerlist[selected].apids); Timer->modifyTimerAPid(timerlist[selected].eventID,timerlist[selected].apids);
Timer->modifyRecordTimerEvent(timerlist[selected].eventID, timerlist[selected].announceTime, Timer->modifyRecordTimerEvent(timerlist[selected].eventID, timerlist[selected].announceTime,
timerlist[selected].alarmTime, timerlist[selected].alarmTime,
timerlist[selected].stopTime, timerlist[selected].eventRepeat, timerlist[selected].stopTime, timerlist[selected].eventRepeat,
timerlist[selected].repeatCount,timerlist[selected].recordingDir); timerlist[selected].repeatCount,timerlist[selected].recordingDir);
} else if (timerlist[selected].eventType == CTimerd::TIMER_REMOTEBOX) }
else if (timerlist[selected].eventType == CTimerd::TIMER_REMOTEBOX)
{ {
CHTTPTool httpTool; CHTTPTool httpTool;
std::string r_url; std::string r_url;
r_url = "http://"; r_url = "http://";
r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name); r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name);
r_url += "/control/timer?action=new&update=1"; r_url += "/control/timer?action=new&update=1";
r_url += "&alarm=" + to_string((int)timerlist[selected].alarmTime); r_url += "&alarm=" + to_string((int)timerlist[selected].alarmTime);
@@ -417,7 +426,8 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
//printf("[remotetimer] url:%s\n",r_url.c_str()); //printf("[remotetimer] url:%s\n",r_url.c_str());
r_url = httpTool.downloadString(r_url, -1, httpConnectTimeout); r_url = httpTool.downloadString(r_url, -1, httpConnectTimeout);
//printf("[remotetimer] status:%s\n",r_url.c_str()); //printf("[remotetimer] status:%s\n",r_url.c_str());
} else }
else
{ {
Timer->modifyTimerEvent(timerlist[selected].eventID, timerlist[selected].announceTime, Timer->modifyTimerEvent(timerlist[selected].eventID, timerlist[selected].announceTime,
timerlist[selected].alarmTime, timerlist[selected].alarmTime,
@@ -430,7 +440,7 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
{ {
CHTTPTool httpTool; CHTTPTool httpTool;
std::string r_url; std::string r_url;
r_url = "http://"; r_url = "http://";
r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name); r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name);
r_url += "/control/timer?action=new"; r_url += "/control/timer?action=new";
r_url += "&alarm=" + to_string((int)timerlist[selected].alarmTime + timerlist[selected].rem_pre); r_url += "&alarm=" + to_string((int)timerlist[selected].alarmTime + timerlist[selected].rem_pre);
@@ -470,7 +480,7 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
CHTTPTool httpTool; CHTTPTool httpTool;
std::string r_url; std::string r_url;
r_url = "http://"; r_url = "http://";
r_url += RemoteBoxConnectUrl(remotebox_name); r_url += RemoteBoxConnectUrl(remotebox_name);
r_url += "/control/timer?action=remove"; r_url += "/control/timer?action=remove";
r_url += "&id=" + eventID; r_url += "&id=" + eventID;
@@ -483,7 +493,7 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
{ {
CHTTPTool httpTool; CHTTPTool httpTool;
std::string r_url; std::string r_url;
r_url = "http://"; r_url = "http://";
r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name); r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name);
r_url += "/control/timer?action=remove"; r_url += "/control/timer?action=remove";
r_url += "&id=" + to_string((int)timerlist[selected].eventID); r_url += "&id=" + to_string((int)timerlist[selected].eventID);
@@ -495,7 +505,7 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
{ {
CHTTPTool httpTool; CHTTPTool httpTool;
std::string r_url; std::string r_url;
r_url = "http://"; r_url = "http://";
r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name); r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name);
r_url += "/control/timer?action=new&update=1"; r_url += "/control/timer?action=new&update=1";
r_url += "&alarm=" + to_string((int)timerlist[selected].alarmTime); r_url += "&alarm=" + to_string((int)timerlist[selected].alarmTime);
@@ -541,7 +551,8 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
timerNew.announceTime-= 120; // 2 more mins for rec timer timerNew.announceTime-= 120; // 2 more mins for rec timer
strncpy(recinfo.recordingDir,timerNew.recordingDir,sizeof(recinfo.recordingDir)-1); strncpy(recinfo.recordingDir,timerNew.recordingDir,sizeof(recinfo.recordingDir)-1);
data = &recinfo; data = &recinfo;
} else }
else
data= &eventinfo; data= &eventinfo;
} }
else if (timerNew.eventType==CTimerd::TIMER_REMIND) else if (timerNew.eventType==CTimerd::TIMER_REMIND)
@@ -576,30 +587,34 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
{ {
int delta; int delta;
sscanf(&(key[3]), sscanf(&(key[3]),
SCANF_CHANNEL_ID_TYPE SCANF_CHANNEL_ID_TYPE
"%n", "%n",
&timerNew.channel_id, &timerNew.channel_id,
&delta); &delta);
timerNew_channel_name = std::string(key + 3 + delta + 1); timerNew_channel_name = std::string(key + 3 + delta + 1);
g_RCInput->postMsg(CRCInput::RC_timeout, 0); // leave underlying menu also g_RCInput->postMsg(CRCInput::RC_timeout, 0); // leave underlying menu also
g_RCInput->postMsg(CRCInput::RC_timeout, 0); // leave underlying menu also g_RCInput->postMsg(CRCInput::RC_timeout, 0); // leave underlying menu also
return menu_return::RETURN_EXIT; return menu_return::RETURN_EXIT;
} }
else if(actionKey == "rec_dir1") { else if (actionKey == "rec_dir1")
{
if (parent) if (parent)
parent->hide(); parent->hide();
const char *action_str = "RecDir1"; const char *action_str = "RecDir1";
if(chooserDir(timerlist[selected].recordingDir, true, action_str, sizeof(timerlist[selected].recordingDir)-1)) { if (chooserDir(timerlist[selected].recordingDir, true, action_str, sizeof(timerlist[selected].recordingDir)-1))
{
printf("[timerlist] new %s dir %s\n", action_str, timerlist[selected].recordingDir); printf("[timerlist] new %s dir %s\n", action_str, timerlist[selected].recordingDir);
} }
timer_recordingDir = timerlist[selected].recordingDir; timer_recordingDir = timerlist[selected].recordingDir;
return menu_return::RETURN_REPAINT; return menu_return::RETURN_REPAINT;
} }
else if(actionKey == "rec_dir2") { else if (actionKey == "rec_dir2")
{
if (parent) if (parent)
parent->hide(); parent->hide();
const char *action_str = "RecDir2"; const char *action_str = "RecDir2";
if(chooserDir(timerNew.recordingDir, true, action_str, sizeof(timerNew.recordingDir)-1)) { if (chooserDir(timerNew.recordingDir, true, action_str, sizeof(timerNew.recordingDir)-1))
{
printf("[timerlist] new %s dir %s\n", action_str, timerNew.recordingDir); printf("[timerlist] new %s dir %s\n", action_str, timerNew.recordingDir);
} }
timerNew_recordingDir = timerNew.recordingDir; timerNew_recordingDir = timerNew.recordingDir;
@@ -615,11 +630,11 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey)
return ret; return ret;
/* /*
if( ret > -1) if (ret > -1)
{ {
return menu_return::RETURN_REPAINT; return menu_return::RETURN_REPAINT;
} }
else if( ret == -1) else if (ret == -1)
{ {
// -1 bedeutet nur REPAINT // -1 bedeutet nur REPAINT
return menu_return::RETURN_REPAINT; return menu_return::RETURN_REPAINT;
@@ -703,8 +718,8 @@ void CTimerList::RemoteBoxSelect()
std::advance(it,select); std::advance(it,select);
if (askUserOnRemoteTimerConflict(timerlist[selected].announceTime, timerlist[selected].stopTime, (char*) it->rbname.c_str())) if (askUserOnRemoteTimerConflict(timerlist[selected].announceTime, timerlist[selected].stopTime, (char*) it->rbname.c_str()))
{ {
strncpy(timerlist[selected].remotebox_name,it->rbname.c_str(),sizeof(timerlist[selected].remotebox_name)); strncpy(timerlist[selected].remotebox_name,it->rbname.c_str(),sizeof(timerlist[selected].remotebox_name));
timerlist[selected].remotebox_name[sizeof(timerlist[selected].remotebox_name) - 1] = 0; timerlist[selected].remotebox_name[sizeof(timerlist[selected].remotebox_name) - 1] = 0;
} }
} }
@@ -715,7 +730,7 @@ bool CTimerList::RemoteBoxChanExists(t_channel_id channel_id)
CHTTPTool httpTool; CHTTPTool httpTool;
std::string r_url; std::string r_url;
r_url = "http://"; r_url = "http://";
r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name); r_url += RemoteBoxConnectUrl(timerlist[selected].remotebox_name);
r_url += "/control/getchannel?format=json&id="; r_url += "/control/getchannel?format=json&id=";
r_url += string_printf_helper(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, channel_id); r_url += string_printf_helper(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, channel_id);
@@ -750,9 +765,10 @@ bool CTimerList::LocalBoxChanExists(t_channel_id channel_id)
std::string CTimerList::RemoteBoxConnectUrl(std::string _rbname) std::string CTimerList::RemoteBoxConnectUrl(std::string _rbname)
{ {
std::string c_url = ""; std::string c_url = "";
for (std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin(); for (std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin(); it != g_settings.timer_remotebox_ip.end(); ++it)
it != g_settings.timer_remotebox_ip.end(); ++it) { {
if (it->rbname == _rbname) { if (it->rbname == _rbname)
{
if (!it->user.empty() && !it->pass.empty()) if (!it->user.empty() && !it->pass.empty())
c_url += it->user + ":" + it->pass +"@"; c_url += it->user + ":" + it->pass +"@";
c_url += it->rbaddress; c_url += it->rbaddress;
@@ -770,37 +786,40 @@ void CTimerList::RemoteBoxTimerList(CTimerd::TimerList &rtimerlist)
CHTTPTool httpTool; CHTTPTool httpTool;
std::string r_url; std::string r_url;
for (std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin(); for (std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin(); it != g_settings.timer_remotebox_ip.end(); ++it)
it != g_settings.timer_remotebox_ip.end(); ++it) { {
r_url = "http://"; r_url = "http://";
r_url += RemoteBoxConnectUrl(it->rbname); r_url += RemoteBoxConnectUrl(it->rbname);
r_url += "/control/timer?format=json"; r_url += "/control/timer?format=json";
r_url = httpTool.downloadString(r_url, -1, httpConnectTimeout); r_url = httpTool.downloadString(r_url, -1, httpConnectTimeout);
//printf("[remotetimer] timers:%s\n",r_url.c_str()); //printf("[remotetimer] timers:%s\n",r_url.c_str());
Json::Value root; Json::Value root;
Json::Reader reader; Json::Reader reader;
bool parsedSuccess = reader.parse(r_url, root, false); bool parsedSuccess = reader.parse(r_url, root, false);
if (!parsedSuccess) { if (!parsedSuccess)
printf("Failed to parse JSON\n"); {
printf("%s\n", reader.getFormattedErrorMessages().c_str()); printf("Failed to parse JSON\n");
} printf("%s\n", reader.getFormattedErrorMessages().c_str());
Json::Value delays = root["data"]["timer"][0]; }
Json::Value delays = root["data"]["timer"][0];
rem_pre = atoi(delays["config"].get("pre_delay","0").asString()); rem_pre = atoi(delays["config"].get("pre_delay","0").asString());
rem_post = atoi(delays["config"].get("post_delay","0").asString()); rem_post = atoi(delays["config"].get("post_delay","0").asString());
//printf("[remotetimer] pre:%d - post:%d\n", rem_pre, rem_post); //printf("[remotetimer] pre:%d - post:%d\n", rem_pre, rem_post);
Json::Value remotetimers = root["data"]["timer"][0]["timer_list"]; Json::Value remotetimers = root["data"]["timer"][0]["timer_list"];
for (unsigned int i= 0; i<remotetimers.size();i++) { for (unsigned int i= 0; i<remotetimers.size();i++)
{
CTimerd::responseGetTimer rtimer; CTimerd::responseGetTimer rtimer;
if ( atoi(remotetimers[i].get("type_number","").asString()) == 5) { if ( atoi(remotetimers[i].get("type_number","").asString()) == 5)
strncpy(rtimer.remotebox_name,it->rbname.c_str(),sizeof(rtimer.remotebox_name)); {
rtimer.remotebox_name[sizeof(rtimer.remotebox_name) - 1] = 0; strncpy(rtimer.remotebox_name,it->rbname.c_str(),sizeof(rtimer.remotebox_name));
rtimer.rem_pre = rem_pre; rtimer.remotebox_name[sizeof(rtimer.remotebox_name) - 1] = 0;
rtimer.rem_post = rem_post; rtimer.rem_pre = rem_pre;
rtimer.rem_post = rem_post;
rtimer.eventID = atoi(remotetimers[i].get("id","").asString()); rtimer.eventID = atoi(remotetimers[i].get("id","").asString());
rtimer.eventType = CTimerd::TIMER_REMOTEBOX; rtimer.eventType = CTimerd::TIMER_REMOTEBOX;
rtimer.eventState = (CTimerd::CTimerEventStates) atoi(remotetimers[i].get("state","").asString()); rtimer.eventState = (CTimerd::CTimerEventStates) atoi(remotetimers[i].get("state","").asString());
@@ -822,13 +841,13 @@ void CTimerList::RemoteBoxTimerList(CTimerd::TimerList &rtimerlist)
//printf("[remotetimer] r-timer:%s - %s\n", remotetimers[i].get("channel_id","").asString().c_str(), remotetimers[i].get("title","").asString().c_str()); //printf("[remotetimer] r-timer:%s - %s\n", remotetimers[i].get("channel_id","").asString().c_str(), remotetimers[i].get("title","").asString().c_str());
rtimerlist.push_back(rtimer); rtimerlist.push_back(rtimer);
} }
} }
} }
} }
int CTimerList::show() int CTimerList::show()
{ {
neutrino_msg_t msg; neutrino_msg_t msg;
neutrino_msg_data_t data; neutrino_msg_data_t data;
int res = menu_return::RETURN_REPAINT; int res = menu_return::RETURN_REPAINT;
@@ -853,32 +872,42 @@ int CTimerList::show()
g_RCInput->getMsgAbsoluteTimeout( &msg, &data, &timeoutEnd ); g_RCInput->getMsgAbsoluteTimeout( &msg, &data, &timeoutEnd );
//ignore numeric keys //ignore numeric keys
if (g_RCInput->isNumeric(msg)){ if (g_RCInput->isNumeric(msg))
{
msg = CRCInput::RC_nokey; msg = CRCInput::RC_nokey;
} }
if ( msg <= CRCInput::RC_MaxRC ) if ( msg <= CRCInput::RC_MaxRC )
timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_MENU] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_MENU] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_MENU]);
::TIMING_MENU]);
if((msg == NeutrinoMessages::EVT_TIMER) && (data == fader.GetFadeTimer())) { if ((msg == NeutrinoMessages::EVT_TIMER) && (data == fader.GetFadeTimer()))
if(fader.FadeDone()) {
if (fader.FadeDone())
loop = false; loop = false;
} }
else if ( ( msg == CRCInput::RC_timeout ) || else if (
( msg == CRCInput::RC_home) || (msg == CRCInput::RC_left) || (msg == CRCInput::RC_timeout)
(( msg == CRCInput::RC_ok) && (timerlist.empty())) ) || (msg == CRCInput::RC_home)
|| (msg == CRCInput::RC_left)
|| (msg == CRCInput::RC_ok && timerlist.empty())
)
{ //Exit after timeout or cancel key { //Exit after timeout or cancel key
if(fader.StartFadeOut()) { if (fader.StartFadeOut())
{
timeoutEnd = CRCInput::calcTimeoutEnd( 1 ); timeoutEnd = CRCInput::calcTimeoutEnd( 1 );
msg = 0; msg = 0;
} else }
else
loop=false; loop=false;
} }
else if (!timerlist.empty() && else if (!timerlist.empty() && (
(msg == CRCInput::RC_up || (int)msg == g_settings.key_pageup || msg == CRCInput::RC_up
msg == CRCInput::RC_down || (int)msg == g_settings.key_pagedown)) || msg == CRCInput::RC_down
|| (int)msg == g_settings.key_pageup
|| (int)msg == g_settings.key_pagedown
)
)
{ {
int prev_selected = selected; int prev_selected = selected;
int oldliststart = liststart; int oldliststart = liststart;
@@ -888,13 +917,19 @@ int CTimerList::show()
liststart = (selected / listmaxshow) * listmaxshow; liststart = (selected / listmaxshow) * listmaxshow;
if (oldliststart != liststart) if (oldliststart != liststart)
paint(); paint();
else { else
{
paintItem(prev_selected - liststart); paintItem(prev_selected - liststart);
paintItem(selected - liststart); paintItem(selected - liststart);
} }
paintFoot(); paintFoot();
} }
else if ((msg == CRCInput::RC_right || msg == CRCInput::RC_ok || msg==CRCInput::RC_blue) && !(timerlist.empty())) else if (!timerlist.empty() && (
msg == CRCInput::RC_ok
|| msg == CRCInput::RC_right
|| msg == CRCInput::RC_blue
)
)
{ {
if (modifyTimer()==menu_return::RETURN_EXIT_ALL) if (modifyTimer()==menu_return::RETURN_EXIT_ALL)
{ {
@@ -904,84 +939,92 @@ int CTimerList::show()
else else
update=true; update=true;
} }
else if ((msg == CRCInput::RC_play) && !(timerlist.empty()) && (g_settings.timer_remotebox_ip.size() > 0)) else if (!timerlist.empty() && (msg == CRCInput::RC_play && g_settings.timer_remotebox_ip.size() > 0))
{ {
if (timerlist[selected].eventType == CTimerd::TIMER_RECORD ) { if (timerlist[selected].eventType == CTimerd::TIMER_RECORD )
{
RemoteBoxSelect(); RemoteBoxSelect();
if (exec(this,"send_remotetimer")) if (exec(this,"send_remotetimer"))
{ {
res=menu_return::RETURN_EXIT_ALL; res = menu_return::RETURN_EXIT_ALL;
loop=false; loop = false;
} }
else else
update=true; update=true;
} else if (timerlist[selected].eventType == CTimerd::TIMER_REMOTEBOX ) { }
else if (timerlist[selected].eventType == CTimerd::TIMER_REMOTEBOX )
{
if (exec(this,"fetch_remotetimer")) if (exec(this,"fetch_remotetimer"))
{ {
res=menu_return::RETURN_EXIT_ALL; res = menu_return::RETURN_EXIT_ALL;
loop=false; loop = false;
} }
else else
update=true; update = true;
} }
} }
else if ((msg == CRCInput::RC_red) && !(timerlist.empty())) else if (!timerlist.empty() && msg == CRCInput::RC_red)
{ {
if ((timerlist[selected].eventType == CTimerd::TIMER_REMOTEBOX) && (timerlist[selected].eventState < CTimerd::TIMERSTATE_ISRUNNING)) { if ((timerlist[selected].eventType == CTimerd::TIMER_REMOTEBOX) && (timerlist[selected].eventState < CTimerd::TIMERSTATE_ISRUNNING))
if (exec(this,"del_remotetimer")) {
{ if (exec(this,"del_remotetimer"))
res=menu_return::RETURN_EXIT_ALL; {
loop=false; res = menu_return::RETURN_EXIT_ALL;
} loop = false;
} else {
bool killTimer = true;
if (CRecordManager::getInstance()->RecordingStatus(timerlist[selected].channel_id)) {
CTimerd::RecordingStopInfo recinfo;
recinfo.channel_id = timerlist[selected].channel_id;
recinfo.eventID = timerlist[selected].eventID;
if (CRecordManager::getInstance()->IsRecording(&recinfo)) {
std::string title = "";
char buf1[1024];
CEPGData epgdata;
CEitManager::getInstance()->getEPGid(timerlist[selected].epgID, timerlist[selected].epg_starttime, &epgdata);
memset(buf1, '\0', sizeof(buf1));
if (!epgdata.title.empty())
title = "(" + epgdata.title + ")\n";
snprintf(buf1, sizeof(buf1)-1, g_Locale->getText(LOCALE_TIMERLIST_ASK_TO_DELETE), title.c_str());
if(ShowMsg(LOCALE_RECORDINGMENU_RECORD_IS_RUNNING, buf1,
CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, false) == CMessageBox::mbrNo) {
killTimer = false;
update = false;
}
} }
} }
if (killTimer) { else
{
bool killTimer = true;
if (CRecordManager::getInstance()->RecordingStatus(timerlist[selected].channel_id))
{
CTimerd::RecordingStopInfo recinfo;
recinfo.channel_id = timerlist[selected].channel_id;
recinfo.eventID = timerlist[selected].eventID;
if (CRecordManager::getInstance()->IsRecording(&recinfo))
{
std::string title = "";
char buf1[1024];
CEPGData epgdata;
CEitManager::getInstance()->getEPGid(timerlist[selected].epgID, timerlist[selected].epg_starttime, &epgdata);
memset(buf1, '\0', sizeof(buf1));
if (!epgdata.title.empty())
title = "(" + epgdata.title + ")\n";
snprintf(buf1, sizeof(buf1)-1, g_Locale->getText(LOCALE_TIMERLIST_ASK_TO_DELETE), title.c_str());
if (ShowMsg(LOCALE_RECORDINGMENU_RECORD_IS_RUNNING, buf1, CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, false) == CMessageBox::mbrNo)
{
killTimer = false;
update = false;
}
}
}
if (killTimer)
{
Timer->removeTimerEvent(timerlist[selected].eventID); Timer->removeTimerEvent(timerlist[selected].eventID);
update = true; update = true;
}
} }
} }
} else if (msg == CRCInput::RC_green)
else if (msg==CRCInput::RC_green)
{ {
if (newTimer()==menu_return::RETURN_EXIT_ALL) if (newTimer() == menu_return::RETURN_EXIT_ALL)
{ {
res=menu_return::RETURN_EXIT_ALL; res = menu_return::RETURN_EXIT_ALL;
loop=false; loop = false;
} }
else else
update=true; update = true;
} }
else if (msg==CRCInput::RC_setup) else if (msg == CRCInput::RC_setup)
{ {
update = RemoteBoxSetup(); update = RemoteBoxSetup();
} }
else if (msg==CRCInput::RC_yellow) else if (msg == CRCInput::RC_yellow)
{ {
update=true; update = true;
} }
#if 0 #if 0
else if ((msg==CRCInput::RC_blue)|| else if (msg==CRCInput::RC_blue || CRCInput::isNumeric(msg))
(CRCInput::isNumeric(msg)) )
{ {
//pushback key if... //pushback key if...
g_RCInput->postMsg( msg, data ); g_RCInput->postMsg( msg, data );
@@ -996,26 +1039,29 @@ int CTimerList::show()
if (timer->eventType == CTimerd::TIMER_RECORD || timer->eventType == CTimerd::TIMER_REMOTEBOX || timer->eventType == CTimerd::TIMER_ZAPTO) if (timer->eventType == CTimerd::TIMER_RECORD || timer->eventType == CTimerd::TIMER_REMOTEBOX || timer->eventType == CTimerd::TIMER_ZAPTO)
{ {
hide(); hide();
if (timer->epgID != 0){ if (timer->epgID != 0)
{
res = g_EpgData->show(timer->channel_id, timer->epgID, &timer->epg_starttime); res = g_EpgData->show(timer->channel_id, timer->epgID, &timer->epg_starttime);
update=true; update = true;
}else }
else
ShowHint(LOCALE_MESSAGEBOX_INFO, LOCALE_EPGVIEWER_NOTFOUND); ShowHint(LOCALE_MESSAGEBOX_INFO, LOCALE_EPGVIEWER_NOTFOUND);
if (res==menu_return::RETURN_EXIT_ALL) if (res == menu_return::RETURN_EXIT_ALL)
loop=false; loop = false;
else else
paint(); paint();
} }
} }
} }
else if (CNeutrinoApp::getInstance()->listModeKey(msg)) { else if (CNeutrinoApp::getInstance()->listModeKey(msg))
g_RCInput->postMsg (msg, 0); {
g_RCInput->postMsg(msg, 0);
loop = false; loop = false;
res = menu_return::RETURN_EXIT_ALL; res = menu_return::RETURN_EXIT_ALL;
} }
else else
{ {
if ( CNeutrinoApp::getInstance()->handleMsg( msg, data ) & messages_return::cancel_all ) if (CNeutrinoApp::getInstance()->handleMsg(msg, data) & messages_return::cancel_all)
{ {
loop = false; loop = false;
res = menu_return::RETURN_EXIT_ALL; res = menu_return::RETURN_EXIT_ALL;
@@ -1047,27 +1093,29 @@ bool CTimerList::RemoteBoxSetup()
remboxmenu->addIntroItems(); remboxmenu->addIntroItems();
item_offset = remboxmenu->getItemsCount(); item_offset = remboxmenu->getItemsCount();
for (std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin(); for (std::vector<timer_remotebox_item>::iterator it = g_settings.timer_remotebox_ip.begin(); it != g_settings.timer_remotebox_ip.end(); ++it)
it != g_settings.timer_remotebox_ip.end(); ++it)
remboxmenu->addItem(new CMenuForwarder(it->rbname, true, NULL, this, "cha_ip")); remboxmenu->addItem(new CMenuForwarder(it->rbname, true, NULL, this, "cha_ip"));
remboxmenu->setFooter(RemoteBoxFooterButtons, RemoteBoxFooterButtonCount); remboxmenu->setFooter(RemoteBoxFooterButtons, RemoteBoxFooterButtonCount);
remboxmenu->enableSaveScreen(true); remboxmenu->enableSaveScreen(true);
remboxmenu->exec(NULL, ""); remboxmenu->exec(NULL, "");
if (changed) { if (changed)
std::vector<timer_remotebox_item> old_timer_remotebox_ip = g_settings.timer_remotebox_ip; {
g_settings.timer_remotebox_ip.clear(); std::vector<timer_remotebox_item> old_timer_remotebox_ip = g_settings.timer_remotebox_ip;
for (int i = item_offset; i < remboxmenu->getItemsCount(); i++) { g_settings.timer_remotebox_ip.clear();
CMenuItem *item = remboxmenu->getItem(i); for (int i = item_offset; i < remboxmenu->getItemsCount(); i++)
CMenuForwarder *f = static_cast<CMenuForwarder*>(item); {
for (std::vector<timer_remotebox_item>::iterator it = old_timer_remotebox_ip.begin(); CMenuItem *item = remboxmenu->getItem(i);
it != old_timer_remotebox_ip.end(); ++it) CMenuForwarder *f = static_cast<CMenuForwarder*>(item);
if (it->rbname == f->getName()) { for (std::vector<timer_remotebox_item>::iterator it = old_timer_remotebox_ip.begin(); it != old_timer_remotebox_ip.end(); ++it)
g_settings.timer_remotebox_ip.push_back(*it);} if (it->rbname == f->getName())
} {
changed = false; g_settings.timer_remotebox_ip.push_back(*it);
ret = true; }
}
changed = false;
ret = true;
} }
delete remboxmenu; delete remboxmenu;
return ret; return ret;
@@ -1125,9 +1173,11 @@ void CTimerList::paintItem(int pos)
{ {
char srepeatcount[25] = {0}; char srepeatcount[25] = {0};
if (timer.repeatCount == 0) if (timer.repeatCount == 0)
// Unicode 8734 (hex: 221E) not available in all fonts {
// sprintf(srepeatcount,"∞"); // Unicode 8734 (hex: 221E) not available in all fonts
//sprintf(srepeatcount,"∞");
sprintf(srepeatcount,"00"); sprintf(srepeatcount,"00");
}
else else
sprintf(srepeatcount,"%ux",timer.repeatCount); sprintf(srepeatcount,"%ux",timer.repeatCount);
g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+fw*13+(real_width-fw*23)/2,ypos+fheight, (real_width-fw*13)/2-5, srepeatcount, color, fheight); g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+fw*13+(real_width-fw*23)/2,ypos+fheight, (real_width-fw*13)/2-5, srepeatcount, color, fheight);
@@ -1136,23 +1186,28 @@ void CTimerList::paintItem(int pos)
g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+fw*13+(real_width-fw*13)/2,ypos+fheight, (real_width-fw*13)/2-5, t_type, color, fheight); g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+fw*13+(real_width-fw*13)/2,ypos+fheight, (real_width-fw*13)/2-5, t_type, color, fheight);
// paint rec icon when recording in progress // paint rec icon when recording in progress
if ((timer.eventType == CTimerd::TIMER_RECORD) && (CRecordManager::getInstance()->RecordingStatus(timer.channel_id))) { if ((timer.eventType == CTimerd::TIMER_RECORD) && (CRecordManager::getInstance()->RecordingStatus(timer.channel_id)))
{
CTimerd::RecordingStopInfo recinfo; CTimerd::RecordingStopInfo recinfo;
recinfo.channel_id = timer.channel_id; recinfo.channel_id = timer.channel_id;
recinfo.eventID = timer.eventID; recinfo.eventID = timer.eventID;
if (CRecordManager::getInstance()->IsRecording(&recinfo)) { if (CRecordManager::getInstance()->IsRecording(&recinfo))
{
int icol_w, icol_h; int icol_w, icol_h;
frameBuffer->getIconSize(NEUTRINO_ICON_REC, &icol_w, &icol_h); frameBuffer->getIconSize(NEUTRINO_ICON_REC, &icol_w, &icol_h);
if ((icol_w > 0) && (icol_h > 0)) { if ((icol_w > 0) && (icol_h > 0))
{
frameBuffer->paintIcon(NEUTRINO_ICON_REC, (x + real_width) - (icol_w + 8), ypos, 2*fheight); frameBuffer->paintIcon(NEUTRINO_ICON_REC, (x + real_width) - (icol_w + 8), ypos, 2*fheight);
} }
} }
} }
if ((timer.eventType == CTimerd::TIMER_REMOTEBOX) && timer.eventState == CTimerd::TIMERSTATE_ISRUNNING) { if ((timer.eventType == CTimerd::TIMER_REMOTEBOX) && timer.eventState == CTimerd::TIMERSTATE_ISRUNNING)
{
int icol_w, icol_h; int icol_w, icol_h;
frameBuffer->getIconSize(NEUTRINO_ICON_REC, &icol_w, &icol_h); frameBuffer->getIconSize(NEUTRINO_ICON_REC, &icol_w, &icol_h);
if ((icol_w > 0) && (icol_h > 0)) { if ((icol_w > 0) && (icol_h > 0))
{
frameBuffer->paintIcon(NEUTRINO_ICON_REC, (x + real_width) - (icol_w + 8), ypos, 2*fheight); frameBuffer->paintIcon(NEUTRINO_ICON_REC, (x + real_width) - (icol_w + 8), ypos, 2*fheight);
} }
} }
@@ -1213,7 +1268,7 @@ void CTimerList::paintItem(int pos)
{ {
CHTTPTool httpTool; CHTTPTool httpTool;
std::string r_url; std::string r_url;
r_url = "http://"; r_url = "http://";
r_url += RemoteBoxConnectUrl(timer.remotebox_name); r_url += RemoteBoxConnectUrl(timer.remotebox_name);
r_url += "/control/getchannel?format=json&id="; r_url += "/control/getchannel?format=json&id=";
r_url += string_printf_helper(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, timer.channel_id); r_url += string_printf_helper(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, timer.channel_id);
@@ -1222,7 +1277,8 @@ void CTimerList::paintItem(int pos)
Json::Value root; Json::Value root;
Json::Reader reader; Json::Reader reader;
bool parsedSuccess = reader.parse(r_url, root, false); bool parsedSuccess = reader.parse(r_url, root, false);
if (!parsedSuccess) { if (!parsedSuccess)
{
printf("Failed to parse JSON\n"); printf("Failed to parse JSON\n");
printf("%s\n", reader.getFormattedErrorMessages().c_str()); printf("%s\n", reader.getFormattedErrorMessages().c_str());
} }
@@ -1364,10 +1420,10 @@ void CTimerList::paint()
int ypos = y+ theight; int ypos = y+ theight;
int sb = 2*fheight* listmaxshow; int sb = 2*fheight* listmaxshow;
frameBuffer->paintBoxRel(x+ width- 15,ypos, 15, sb, COL_SCROLLBAR_PASSIVE_PLUS_0); frameBuffer->paintBoxRel(x+ width- 15,ypos, 15, sb, COL_SCROLLBAR_PASSIVE_PLUS_0);
unsigned int tmp_max = listmaxshow; unsigned int tmp_max = listmaxshow;
if(!tmp_max) if (!tmp_max)
tmp_max = 1; tmp_max = 1;
int sbc= ((timerlist.size()- 1)/ tmp_max)+ 1; int sbc = ((timerlist.size()- 1)/ tmp_max)+ 1;
frameBuffer->paintBoxRel(x+ width- 13, ypos+ 2+ page_nr * (sb-4)/sbc, 11, (sb-4)/sbc, COL_SCROLLBAR_ACTIVE_PLUS_0, RADIUS_SMALL); frameBuffer->paintBoxRel(x+ width- 13, ypos+ 2+ page_nr * (sb-4)/sbc, 11, (sb-4)/sbc, COL_SCROLLBAR_ACTIVE_PLUS_0, RADIUS_SMALL);
} }
@@ -1396,8 +1452,8 @@ const char * CTimerList::convertTimerType2String(const CTimerd::CTimerEventTypes
return g_Locale->getText(LOCALE_TIMERLIST_TYPE_SLEEPTIMER ); return g_Locale->getText(LOCALE_TIMERLIST_TYPE_SLEEPTIMER );
case CTimerd::TIMER_EXEC_PLUGIN : case CTimerd::TIMER_EXEC_PLUGIN :
return g_Locale->getText(LOCALE_TIMERLIST_TYPE_EXECPLUGIN ); return g_Locale->getText(LOCALE_TIMERLIST_TYPE_EXECPLUGIN );
case CTimerd::TIMER_REMOTEBOX : case CTimerd::TIMER_REMOTEBOX :
return g_Locale->getText(LOCALE_TIMERLIST_TYPE_REMOTEBOX ); return g_Locale->getText(LOCALE_TIMERLIST_TYPE_REMOTEBOX );
default : default :
return g_Locale->getText(LOCALE_TIMERLIST_TYPE_UNKNOWN ); return g_Locale->getText(LOCALE_TIMERLIST_TYPE_UNKNOWN );
} }
@@ -1520,13 +1576,13 @@ int CTimerList::modifyTimer()
timerSettings.addItem( m0); timerSettings.addItem( m0);
CDateInput timerSettings_alarmTime(LOCALE_TIMERLIST_ALARMTIME, &timer->alarmTime , LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2); CDateInput timerSettings_alarmTime(LOCALE_TIMERLIST_ALARMTIME, &timer->alarmTime , LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2);
CMenuForwarder *m1 = new CMenuForwarder(LOCALE_TIMERLIST_ALARMTIME, true, timerSettings_alarmTime.getValue (), &timerSettings_alarmTime ); CMenuForwarder *m1 = new CMenuForwarder(LOCALE_TIMERLIST_ALARMTIME, true, timerSettings_alarmTime.getValue(), &timerSettings_alarmTime );
timerSettings.addItem( m1); timerSettings.addItem( m1);
CDateInput timerSettings_stopTime(LOCALE_TIMERLIST_STOPTIME, &timer->stopTime , LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2); CDateInput timerSettings_stopTime(LOCALE_TIMERLIST_STOPTIME, &timer->stopTime , LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2);
if (timer->stopTime != 0) if (timer->stopTime != 0)
{ {
CMenuForwarder *m2 = new CMenuForwarder(LOCALE_TIMERLIST_STOPTIME, true, timerSettings_stopTime.getValue (), &timerSettings_stopTime ); CMenuForwarder *m2 = new CMenuForwarder(LOCALE_TIMERLIST_STOPTIME, true, timerSettings_stopTime.getValue(), &timerSettings_stopTime );
timerSettings.addItem( m2); timerSettings.addItem( m2);
} }
@@ -1579,7 +1635,7 @@ int CTimerList::modifyTimer()
CMenuOptionChooser* ma4 = new CMenuOptionChooser(LOCALE_RECORDINGMENU_APIDS_AC3, &timer_apids_ac3, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, !timer_apids_dflt, &apid_notifier); CMenuOptionChooser* ma4 = new CMenuOptionChooser(LOCALE_RECORDINGMENU_APIDS_AC3, &timer_apids_ac3, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, !timer_apids_dflt, &apid_notifier);
timerSettings_apids.addItem(ma4); timerSettings_apids.addItem(ma4);
apid_notifier.setItems(ma1,ma2,ma3,ma4); apid_notifier.setItems(ma1,ma2,ma3,ma4);
if (timer->eventType == CTimerd::TIMER_RECORD) if (timer->eventType == CTimerd::TIMER_RECORD)
{ {
timerSettings.addItem( new CMenuForwarder(LOCALE_TIMERLIST_APIDS, true, NULL, &timerSettings_apids )); timerSettings.addItem( new CMenuForwarder(LOCALE_TIMERLIST_APIDS, true, NULL, &timerSettings_apids ));
} }
@@ -1630,20 +1686,19 @@ int CTimerList::newTimer()
timerNew_standby_on =false; timerNew_standby_on =false;
strncpy(timerNew.recordingDir,g_settings.network_nfs_recordingdir.c_str(),sizeof(timerNew.recordingDir)-1); strncpy(timerNew.recordingDir,g_settings.network_nfs_recordingdir.c_str(),sizeof(timerNew.recordingDir)-1);
CMenuWidget timerSettings(LOCALE_TIMERLIST_MENUNEW, NEUTRINO_ICON_SETTINGS); CMenuWidget timerSettings(LOCALE_TIMERLIST_MENUNEW, NEUTRINO_ICON_SETTINGS);
timerSettings.addIntroItems(); timerSettings.addIntroItems();
timerSettings.addItem(new CMenuForwarder(LOCALE_TIMERLIST_SAVE, true, NULL, this, "newtimer", CRCInput::RC_red)); timerSettings.addItem(new CMenuForwarder(LOCALE_TIMERLIST_SAVE, true, NULL, this, "newtimer", CRCInput::RC_red));
timerSettings.addItem(GenericMenuSeparatorLine); timerSettings.addItem(GenericMenuSeparatorLine);
CDateInput timerSettings_alarmTime(LOCALE_TIMERLIST_ALARMTIME, &(timerNew.alarmTime) , LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2); CDateInput timerSettings_alarmTime(LOCALE_TIMERLIST_ALARMTIME, &(timerNew.alarmTime) , LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2);
CMenuForwarder *m1 = new CMenuForwarder(LOCALE_TIMERLIST_ALARMTIME, true, timerSettings_alarmTime.getValue (), &timerSettings_alarmTime ); CMenuForwarder *m1 = new CMenuForwarder(LOCALE_TIMERLIST_ALARMTIME, true, timerSettings_alarmTime.getValue(), &timerSettings_alarmTime );
CDateInput timerSettings_stopTime(LOCALE_TIMERLIST_STOPTIME, &(timerNew.stopTime) , LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2); CDateInput timerSettings_stopTime(LOCALE_TIMERLIST_STOPTIME, &(timerNew.stopTime) , LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2);
CMenuForwarder *m2 = new CMenuForwarder(LOCALE_TIMERLIST_STOPTIME, true, timerSettings_stopTime.getValue (), &timerSettings_stopTime ); CMenuForwarder *m2 = new CMenuForwarder(LOCALE_TIMERLIST_STOPTIME, true, timerSettings_stopTime.getValue(), &timerSettings_stopTime );
CStringInput timerSettings_weekdays(LOCALE_TIMERLIST_WEEKDAYS, &m_weekdaysStr, 7, LOCALE_TIMERLIST_WEEKDAYS_HINT_1, LOCALE_TIMERLIST_WEEKDAYS_HINT_2, "-X"); CStringInput timerSettings_weekdays(LOCALE_TIMERLIST_WEEKDAYS, &m_weekdaysStr, 7, LOCALE_TIMERLIST_WEEKDAYS_HINT_1, LOCALE_TIMERLIST_WEEKDAYS_HINT_2, "-X");
CMenuForwarder *m4 = new CMenuForwarder(LOCALE_TIMERLIST_WEEKDAYS, false, m_weekdaysStr, &timerSettings_weekdays); CMenuForwarder *m4 = new CMenuForwarder(LOCALE_TIMERLIST_WEEKDAYS, false, m_weekdaysStr, &timerSettings_weekdays);
CIntInput timerSettings_repeatCount(LOCALE_TIMERLIST_REPEATCOUNT, (int*)&timerNew.repeatCount,3, LOCALE_TIMERLIST_REPEATCOUNT_HELP1, LOCALE_TIMERLIST_REPEATCOUNT_HELP2); CIntInput timerSettings_repeatCount(LOCALE_TIMERLIST_REPEATCOUNT, (int*)&timerNew.repeatCount,3, LOCALE_TIMERLIST_REPEATCOUNT_HELP1, LOCALE_TIMERLIST_REPEATCOUNT_HELP2);
CMenuForwarder *m5 = new CMenuForwarder(LOCALE_TIMERLIST_REPEATCOUNT, false,timerSettings_repeatCount.getValue() , &timerSettings_repeatCount); CMenuForwarder *m5 = new CMenuForwarder(LOCALE_TIMERLIST_REPEATCOUNT, false,timerSettings_repeatCount.getValue() , &timerSettings_repeatCount);
@@ -1652,12 +1707,13 @@ int CTimerList::newTimer()
m_weekdaysStr = "XXXXX--"; m_weekdaysStr = "XXXXX--";
CMenuOptionChooser* m3 = new CMenuOptionChooser(LOCALE_TIMERLIST_REPEAT, (int *)&timerNew.eventRepeat, TIMERLIST_REPEAT_OPTIONS, TIMERLIST_REPEAT_OPTION_COUNT, true, &notifier); CMenuOptionChooser* m3 = new CMenuOptionChooser(LOCALE_TIMERLIST_REPEAT, (int *)&timerNew.eventRepeat, TIMERLIST_REPEAT_OPTIONS, TIMERLIST_REPEAT_OPTION_COUNT, true, &notifier);
CMenuWidget mctv(LOCALE_TIMERLIST_BOUQUETSELECT, NEUTRINO_ICON_SETTINGS); CMenuWidget mctv(LOCALE_TIMERLIST_BOUQUETSELECT, NEUTRINO_ICON_SETTINGS);
CMenuWidget mcradio(LOCALE_TIMERLIST_BOUQUETSELECT, NEUTRINO_ICON_SETTINGS); CMenuWidget mcradio(LOCALE_TIMERLIST_BOUQUETSELECT, NEUTRINO_ICON_SETTINGS);
for (int i = 0; i < (int) g_bouquetManager->Bouquets.size(); i++) { for (int i = 0; i < (int) g_bouquetManager->Bouquets.size(); i++)
if (!g_bouquetManager->Bouquets[i]->bHidden) { {
if (!g_bouquetManager->Bouquets[i]->bHidden)
{
CMenuWidget* mwtv = new CMenuWidget(LOCALE_TIMERLIST_CHANNELSELECT, NEUTRINO_ICON_SETTINGS); CMenuWidget* mwtv = new CMenuWidget(LOCALE_TIMERLIST_CHANNELSELECT, NEUTRINO_ICON_SETTINGS);
toDelete.push_back(mwtv); toDelete.push_back(mwtv);
CMenuWidget* mwradio = new CMenuWidget(LOCALE_TIMERLIST_CHANNELSELECT, NEUTRINO_ICON_SETTINGS); CMenuWidget* mwradio = new CMenuWidget(LOCALE_TIMERLIST_CHANNELSELECT, NEUTRINO_ICON_SETTINGS);
@@ -1665,18 +1721,19 @@ int CTimerList::newTimer()
ZapitChannelList channels; ZapitChannelList channels;
g_bouquetManager->Bouquets[i]->getTvChannels(channels); g_bouquetManager->Bouquets[i]->getTvChannels(channels);
for (int j = 0; j < (int) channels.size(); j++) { for (int j = 0; j < (int) channels.size(); j++)
{
char cChannelId[3+16+1+1]; char cChannelId[3+16+1+1];
sprintf(cChannelId, "SC:" PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS ",", channels[j]->getChannelID()); sprintf(cChannelId, "SC:" PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS ",", channels[j]->getChannelID());
mwtv->addItem(new CMenuForwarder(channels[j]->getName(), true, NULL, this, (std::string(cChannelId) + channels[j]->getName()).c_str(), CRCInput::RC_nokey, NULL, channels[j]->scrambled ? NEUTRINO_ICON_SCRAMBLED : (channels[j]->getUrl().empty() ? NULL : NEUTRINO_ICON_STREAMING))); mwtv->addItem(new CMenuForwarder(channels[j]->getName(), true, NULL, this, (std::string(cChannelId) + channels[j]->getName()).c_str(), CRCInput::RC_nokey, NULL, channels[j]->scrambled ? NEUTRINO_ICON_SCRAMBLED : (channels[j]->getUrl().empty() ? NULL : NEUTRINO_ICON_STREAMING)));
} }
if (!channels.empty()) if (!channels.empty())
mctv.addItem(new CMenuForwarder(g_bouquetManager->Bouquets[i]->bFav ? g_Locale->getText(LOCALE_FAVORITES_BOUQUETNAME) : g_bouquetManager->Bouquets[i]->Name.c_str() /*g_bouquetManager->Bouquets[i]->Name.c_str()*/, true, NULL, mwtv)); mctv.addItem(new CMenuForwarder(g_bouquetManager->Bouquets[i]->bFav ? g_Locale->getText(LOCALE_FAVORITES_BOUQUETNAME) : g_bouquetManager->Bouquets[i]->Name.c_str() /*g_bouquetManager->Bouquets[i]->Name.c_str()*/, true, NULL, mwtv));
g_bouquetManager->Bouquets[i]->getRadioChannels(channels); g_bouquetManager->Bouquets[i]->getRadioChannels(channels);
for (int j = 0; j < (int) channels.size(); j++) { for (int j = 0; j < (int) channels.size(); j++)
{
char cChannelId[3+16+1+1]; char cChannelId[3+16+1+1];
sprintf(cChannelId, "SC:" PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS ",", channels[j]->getChannelID()); sprintf(cChannelId, "SC:" PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS ",", channels[j]->getChannelID());
mwradio->addItem(new CMenuForwarder(channels[j]->getName(), true, NULL, this, (std::string(cChannelId) + channels[j]->getName()).c_str(), CRCInput::RC_nokey, NULL, channels[j]->scrambled ? NEUTRINO_ICON_SCRAMBLED : (channels[j]->getUrl().empty() ? NULL : NEUTRINO_ICON_STREAMING))); mwradio->addItem(new CMenuForwarder(channels[j]->getName(), true, NULL, this, (std::string(cChannelId) + channels[j]->getName()).c_str(), CRCInput::RC_nokey, NULL, channels[j]->scrambled ? NEUTRINO_ICON_SCRAMBLED : (channels[j]->getUrl().empty() ? NULL : NEUTRINO_ICON_STREAMING)));
@@ -1752,34 +1809,31 @@ bool CTimerList::askUserOnRemoteTimerConflict(time_t announceTime, time_t stopTi
int pre,post; int pre,post;
Timer->getRecordingSafety(pre,post); Timer->getRecordingSafety(pre,post);
for (CTimerd::TimerList::iterator it = timerlist.begin(); for (CTimerd::TimerList::iterator it = timerlist.begin(); it != timerlist.end();++it)
it != timerlist.end();++it)
{ {
if (strcmp(it->remotebox_name,remotebox_name) == 0)
if (strcmp(it->remotebox_name,remotebox_name) == 0) {
if(it->stopTime != 0 && stopTime != 0)
{ {
// Check if both timers have start and end. In this case do not show conflict, if endtime is the same than the starttime of the following timer if (it->stopTime != 0 && stopTime != 0)
if ((stopTime+post > it->alarmTime) && (announceTime-pre < it->stopTime))
{ {
overlappingTimers.push_back(*it); // Check if both timers have start and end. In this case do not show conflict, if endtime is the same than the starttime of the following timer
if ((stopTime+post > it->alarmTime) && (announceTime-pre < it->stopTime))
{
overlappingTimers.push_back(*it);
}
} }
} else
else
{
if (!((stopTime < it->announceTime) || (announceTime > it->stopTime)))
{ {
overlappingTimers.push_back(*it); if (!((stopTime < it->announceTime) || (announceTime > it->stopTime)))
{
overlappingTimers.push_back(*it);
}
} }
} }
}
} }
std::string timerbuf = g_Locale->getText(LOCALE_TIMERLIST_OVERLAPPING_TIMER); std::string timerbuf = g_Locale->getText(LOCALE_TIMERLIST_OVERLAPPING_TIMER);
timerbuf += "\n"; timerbuf += "\n";
for (CTimerd::TimerList::iterator it = overlappingTimers.begin(); for (CTimerd::TimerList::iterator it = overlappingTimers.begin(); it != overlappingTimers.end(); ++it)
it != overlappingTimers.end(); ++it)
{ {
timerbuf += CTimerList::convertTimerType2String(it->eventType); timerbuf += CTimerList::convertTimerType2String(it->eventType);
timerbuf += " ("; timerbuf += " (";
@@ -1831,8 +1885,7 @@ bool askUserOnTimerConflict(time_t announceTime, time_t stopTime, t_channel_id c
std::string timerbuf = g_Locale->getText(LOCALE_TIMERLIST_OVERLAPPING_TIMER); std::string timerbuf = g_Locale->getText(LOCALE_TIMERLIST_OVERLAPPING_TIMER);
timerbuf += "\n"; timerbuf += "\n";
for (CTimerd::TimerList::iterator it = overlappingTimers.begin(); for (CTimerd::TimerList::iterator it = overlappingTimers.begin(); it != overlappingTimers.end(); ++it)
it != overlappingTimers.end(); ++it)
{ {
timerbuf += CTimerList::convertTimerType2String(it->eventType); timerbuf += CTimerList::convertTimerType2String(it->eventType);
timerbuf += " ("; timerbuf += " (";