From debd7138a09ee9087db4e24a15cf9a20a2a65b64 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Mon, 29 Dec 2014 17:04:27 +0100 Subject: [PATCH 01/72] update slovak.locale by EnoSat --- data/locale/slovak.locale | 367 ++++++++++++++++++++++++++++++++------ 1 file changed, 314 insertions(+), 53 deletions(-) diff --git a/data/locale/slovak.locale b/data/locale/slovak.locale index 63b7cc53f..b9507ce04 100644 --- a/data/locale/slovak.locale +++ b/data/locale/slovak.locale @@ -96,7 +96,7 @@ GENRE.TRAVEL_HOBBIES.5 varenie GENRE.TRAVEL_HOBBIES.6 inzertovanie/nakupovanie GENRE.TRAVEL_HOBBIES.7 záhradkárstvo GENRE.UNKNOWN neznáme -adzap *AdZap* +adzap prepni za apidselector.head Výber jazyka audio.srs_algo Režim audio.srs_algo_heavy Hrubý @@ -128,6 +128,11 @@ audiomenu.pref_subs_head Nastavenie jazyku vybraných titulkov audiomenu.spdif_dd Zvuk DD na SPDIF audiomenu.stereo stereo audiomenu.volume_adjust Nastavená hlasitosť, v % +audiomenu.volume_adjustment Špecifické nastavenie hlasitosti kanála +audiomenu.volume_adjustment_ac3 AC3 prúdy +audiomenu.volume_adjustment_clear Vyčistiť uložené hodnoty +audiomenu.volume_adjustment_pcm PCM prúdy +audiomenu.volume_start Počiatočná hlasitosť audiomenu.volume_step Krok hlasitosti audioplayer.add pridaj audioplayer.add_ic Icecast @@ -152,7 +157,7 @@ audioplayer.jump_dialog_hint2 v sekundách. audioplayer.jump_dialog_title Zadaj čas skoku audioplayer.jump_forwards skoč dopredu audioplayer.keylevel funkcie klávesy -audioplayer.load_radio_stations Nahrávam internetové rádia +audioplayer.load_radio_stations Nahratie internetových rádií audioplayer.name Prehrávač hudby audioplayer.pause pauza audioplayer.play spusti @@ -175,7 +180,6 @@ audioplayer.shuffle náhodne audioplayer.spectrum lcd a-spektrum audioplayer.stop zastav audioplayer.title_artist Titul, Umelec -audioplayerpicsettings.general Nastavenia prehrávača bookmarkmanager.delete zmaž bookmarkmanager.name záložky bookmarkmanager.rename premenuj @@ -188,6 +192,7 @@ bouqueteditor.discardingchanges Zrušenie zmien. Prosím čakaj... bouqueteditor.hide skri bouqueteditor.lock zamkni bouqueteditor.move presuň +bouqueteditor.move_to presuň do bouqueteditor.name Úprava buketov bouqueteditor.newbouquetname Nový názov buketu bouqueteditor.rename premenuj @@ -201,6 +206,7 @@ bouquetname.hdtv HD programy bouquetname.new Nové programy bouquetname.other Neznámy poskytovateľ bouquetname.removed Odstránené programy +bouquetname.webtv WebTV kanály buildinfo.compiled_on Kompilované na: buildinfo.compiled_with Verzia kompilera: buildinfo.compiler_flags Príkazy kompilera: @@ -217,6 +223,8 @@ channellist.edit Uprav channellist.epgtext_align_left do ľava channellist.epgtext_align_right do prava channellist.extended Grafické EPG v zozname +channellist.extended_colored s farebným ukazovateľom +channellist.extended_simple s jednoduchým ukazovateľom channellist.favs Obľúbené channellist.foot Informácie programu channellist.foot_freq Informácie kmitočtu @@ -232,6 +240,7 @@ channellist.keep_numbers Zachovať čísla predvolieb channellist.make_hdlist Vytvor zoznam pre HD kanály channellist.make_newlist Vytvor zoznam pre nové kanály channellist.make_removedlist Vytvor zoznam pre odstránené kanály +channellist.make_webtvlist Vytvor zoznam pre WebTV kanály channellist.new_zap_mode Okamžité prepínanie v zozname channellist.new_zap_mode_active aktívne channellist.new_zap_mode_allow povolené @@ -240,10 +249,13 @@ channellist.nonefound Nenájdený zoznam kanálov!\nVykonaj vyhľadanie kanálov channellist.numeric_adjust Zadanie čísla na prepnutie channellist.provs Poskytovatelia channellist.recording_not_possible Nahrávanie nedostupné! +channellist.remember Posledne použité channellist.reset_all Odstrániť značku "Nový" pre všetky kanály channellist.reset_flags Odstrániť na kanály značku "Nový" channellist.sats Satelity -channellist.show_channellogo Zobraziť logo stanice +channellist.show_channellogo Zobraziť logo staníc +channellist.show_channelnumber Zobraziť čísla kanála +channellist.show_empty_favs Zobraziť aj prázdne obľúbené channellist.since od channellist.start spúšťa ci.clock CI taktovanie (MHz) @@ -263,6 +275,7 @@ clock_seconds Zobraziť sekundy clock_size_height Výška zobrazenia clock_switch_off Skryť hodiny clock_switch_on Zobraziť hodiny +color.gradient Farebný gradient colorchooser.alpha Priehľadnosť colorchooser.blue Modrý colorchooser.green Zelený @@ -316,11 +329,11 @@ date.Sun Ne date.Thu Št date.Tue Ut date.Wed St -debug Debug Output -debug.level Rovina +debug Výstup debugu +debug.level Úroveň debug.level_1 normálne -debug.level_2 informatívny -debug.level_3 detail +debug.level_2 informatívne +debug.level_3 detailne epg.saving Uloženie EPG epgextended.actors Herci epgextended.director Režisér @@ -360,43 +373,47 @@ extra.cache_txt Zachytávanie teletextu extra.chadded Aktuálny kanál bol pridaný do vybraného buketu....\n extra.chalreadyinbq Aktuálny kanál sa už nachádza vo vybranom bukete....\n extra.dboxinfo Informácie o systéme +extra.dboxinfo_available Voľné +extra.dboxinfo_boottime Spustené +extra.dboxinfo_filesystem Súborový systém +extra.dboxinfo_frontend Príjmacie zariadenie +extra.dboxinfo_load Zaťaženie +extra.dboxinfo_memory Pamäť +extra.dboxinfo_ram RAM +extra.dboxinfo_size Celkom +extra.dboxinfo_swap Swap +extra.dboxinfo_time Čas +extra.dboxinfo_timeformat %F, %H:%M:%S +extra.dboxinfo_uptime Beží +extra.dboxinfo_use Využitie +extra.dboxinfo_used Použité extra.east Východne extra.fec_1_2 1/2 extra.fec_2_3 2/3 +extra.fec_2_5 2/5 extra.fec_3_4 3/4 +extra.fec_3_5 3/5 +extra.fec_4_5 4/5 extra.fec_5_6 5/6 extra.fec_7_8 7/8 -extra.fec_auto Auto DVB-S -extra.fec_auto_s2 Auto DVB-S2 -extra.fec_s2_8psk_1_2 1/2 s2 8psk -extra.fec_s2_8psk_2_3 2/3 s2 8psk -extra.fec_s2_8psk_3_4 3/4 s2 8psk -extra.fec_s2_8psk_3_5 3/5 s2 8psk -extra.fec_s2_8psk_4_5 4/5 s2 8psk -extra.fec_s2_8psk_5_6 5/6 s2 8psk -extra.fec_s2_8psk_7_8 7/8 s2 8psk -extra.fec_s2_8psk_8_9 8/9 s2 8psk -extra.fec_s2_8psk_9_10 9/10 s2 8psk -extra.fec_s2_qpsk_1_2 1/2 s2 qpsk -extra.fec_s2_qpsk_2_3 2/3 s2 qpsk -extra.fec_s2_qpsk_3_4 3/4 s2 qpsk -extra.fec_s2_qpsk_3_5 3/5 s2 qpsk -extra.fec_s2_qpsk_4_5 4/5 s2 qpsk -extra.fec_s2_qpsk_5_6 5/6 s2 qpsk -extra.fec_s2_qpsk_7_8 7/8 s2 qpsk -extra.fec_s2_qpsk_8_9 8/9 s2 qpsk -extra.fec_s2_qpsk_9_10 9/10 s2 qpsk +extra.fec_8_9 8/9 +extra.fec_9_10 9/10 +extra.fec_auto Auto extra.key_current_transponder Aktuálny kľúč transpondéra extra.key_format_mode Mód obrazu +extra.key_help Tlačítko nápovedy extra.key_list_end Na koniec extra.key_list_start Na začiatok +extra.key_next43mode Ďaľší pomer extra.key_pic_mode Formát obrazu extra.key_pic_size Zobrazenie formátu 4:3 extra.key_pip_close Spustiť/Zastaviť PiP extra.key_pip_setup Nastavenie PiP extra.key_pip_swap Prehodiť PiP/Hlavný obraz extra.key_plugin Tlačítko zobrazujúce doplnky +extra.key_record Tlačítko nahrávania extra.key_screenshot Tlačítko zosnímania obrazovky +extra.key_switchformat Ďaľšie rozlíšenie extra.key_timeshift Časový posun extra.key_unlock Odblokuj extra.ladirection Umiestnenie zem.šírky @@ -408,6 +425,7 @@ extra.longitude Zem.dľžka [E/W] extra.menu_left_exit "Ľavý" = návrat menu extra.north Severne extra.record_time Rýchly čas nahrávania (hodiny) +extra.record_time_ts Maximálna dĺžka časového posuvu extra.rotor_swap Vymeniť východ/západ motoru extra.rounded_corners Vzhľad rohov extra.rounded_corners_off hranatý @@ -421,20 +439,79 @@ extra.south Južne extra.start_tostandby Spustenie do stavu pripravenosti extra.temp_timeshift Dočasný časový posun extra.timeshift_pause Pozastavenie časového posunu -extra.tp.pol_v V +extra.tp_bandwidth Šírka pásma +extra.tp_bandwidth_10mhz 10MHz +extra.tp_bandwidth_1_712mhz 1.712MHz +extra.tp_bandwidth_5mhz 5MHz +extra.tp_bandwidth_6mhz 6MHz +extra.tp_bandwidth_7mhz 7MHz +extra.tp_bandwidth_8mhz 8MHz +extra.tp_bandwidth_auto Auto +extra.tp_coderate_hp Coderate(HP) +extra.tp_coderate_lp Coderate(LP) +extra.tp_constellation Konštelácia +extra.tp_delsys Odbavovací systém +extra.tp_delsys_dss DSS +extra.tp_delsys_dtmb DTMB +extra.tp_delsys_dvbc DVB-C +extra.tp_delsys_dvbc2 DVB-C2 +extra.tp_delsys_dvbs DVB-S +extra.tp_delsys_dvbs2 DVB-S2 +extra.tp_delsys_dvbt DVB-T +extra.tp_delsys_dvbt2 DVB-T2 +extra.tp_delsys_isdbc ISDB-C +extra.tp_delsys_isdbs ISDB-S +extra.tp_delsys_isdbt ISDB-T +extra.tp_delsys_turbo Turbo extra.tp_fec FEC extra.tp_freq Kmitočet +extra.tp_gi Ochranný interval +extra.tp_gi_19_128 19/128 +extra.tp_gi_19_256 19/256 +extra.tp_gi_1_128 1/128 +extra.tp_gi_1_16 1/16 +extra.tp_gi_1_32 1/32 +extra.tp_gi_1_4 1/4 +extra.tp_gi_1_8 1/8 +extra.tp_gi_auto Auto +extra.tp_gi_pn420 PN420 +extra.tp_gi_pn595 PN595 +extra.tp_gi_pn945 PN945 +extra.tp_hierarchy Hierarchy informácia +extra.tp_hierarchy_1 1 +extra.tp_hierarchy_2 2 +extra.tp_hierarchy_4 4 +extra.tp_hierarchy_auto Auto +extra.tp_hierarchy_none Žiadna extra.tp_mod Modulácia extra.tp_mod_128 QAM/128 extra.tp_mod_16 QAM/16 extra.tp_mod_256 QAM/256 extra.tp_mod_32 QAM/32 +extra.tp_mod_4 QPSK +extra.tp_mod_4_nr QAM/4-NR extra.tp_mod_64 QAM/64 +extra.tp_mod_8 8PSK +extra.tp_mod_auto QAM/AUTO +extra.tp_pilot Pilot +extra.tp_pilot_auto Automaticky (HW) +extra.tp_pilot_auto_sw Automaticky (SW) extra.tp_pol Polarizácia extra.tp_pol_h H extra.tp_pol_l L extra.tp_pol_r R -extra.tp_rate SymbolRate +extra.tp_pol_v V +extra.tp_rate Symbolová rýchlosť +extra.tp_transmit_mode Vysielací režim +extra.tp_transmit_mode_16k 16K +extra.tp_transmit_mode_1k 1K +extra.tp_transmit_mode_2k 2K +extra.tp_transmit_mode_32k 32K +extra.tp_transmit_mode_4k 4K +extra.tp_transmit_mode_8k 8K +extra.tp_transmit_mode_auto Auto +extra.tp_transmit_mode_c1 C1 +extra.tp_transmit_mode_c3780 C3780 extra.update_dir Adresár aktualizácie extra.use_gotoxx Použi gotoXX extra.volume_digits Hlasitoť číselne @@ -458,6 +535,7 @@ favorites.copy Kopíruj buket do Obľúbených favorites.finalhint \nPouži editor buketov pre dokonačenie\nzmien v obľúbených.\n favorites.menueadd Pridaj kanál do obľúbených favorites.nobouquets Obľúbené sú dostupné len pri použití Buketov. +filebrowser.add Pridať filebrowser.delete Zmazať filebrowser.denydirectoryleave Hlavný adresár filebrowser.dodelete1 zmaž @@ -467,6 +545,7 @@ filebrowser.filter.inactive nefiltruj filebrowser.head Prehliadač súborov filebrowser.mark označ filebrowser.nextpage nasl.strana +filebrowser.pm Manažér prehrávania filebrowser.prevpage pred.strana filebrowser.scan Prehľadanie adesára filebrowser.select výber @@ -481,10 +560,12 @@ filesystem.is.utf8.option.iso8859.1 ISO-8859-1 filesystem.is.utf8.option.utf8 UTF-8 flashupdate.actionreadflash načítavanie flashupdate.apply_settings Preniesť aktuálne nastavenia do nového image? +flashupdate.autocheck Automatická kontrola aktualizácií pri zavádzaní flashupdate.cantopenfile Otvorenie súboru nemožné flashupdate.cantopenmtd Otvorenie MTD-zariadenia nemožné flashupdate.checkupdate_internet Skontrolovať aktualizácie on-line flashupdate.checkupdate_local Lokálna aktualizácia +flashupdate.copy_image Kopítrovať Image do hlavnej pamäte flashupdate.createimage Uložiť Image flashupdate.createimage_add_env Pridať "env" flashupdate.createimage_add_kernel Pridať "kernel" @@ -500,7 +581,7 @@ flashupdate.currentversiondate Dátum flashupdate.currentversiontime Hodina flashupdate.erasefailed Vymazanie pamäte FLASH sa nepodarilo flashupdate.erasing Mazanie pamäte FLASH -flashupdate.experimentalimage Vybraný IMAGE je testovacou verziou\na môže mi spôsobiť chybu zavádzania po inštalácii.\n\nNaozaj chceš nainštalovať túto verziu? +flashupdate.experimentalimage Vybraný IMAGE je testovacou verziou\na môže spôsobiť chybu zavádzania po inštalácii.\n\nNaozaj chceš nainštalovať túto verziu? flashupdate.expertfunctions Doplnkové funkcie flashupdate.fileis0bytes Veľkosť súboru je 0 bajtov flashupdate.fileselector Výber súboru @@ -518,8 +599,8 @@ flashupdate.menu_apply_settings Povoliť aplikovanie nastavení flashupdate.mkfs_create_image Vytvoriť Image flashupdate.mkfs_preparing_files Pripraviť súbory a adresáre flashupdate.mkfs_using_sumtool Použiť "sumtool" -flashupdate.msgbox Zistený nový súbor:\nDátum: %s, %s\nBaseImage: %s\nTyp: %s\n\nNaozaj prevziať a nainštalovať\ntento súbor? -flashupdate.msgbox_manual Zistený nový súbor:\nDátum: %s, %s\nBaseImage: %s\nTyp IMAGE: %s\n\nNaozaj nainštalovať\ntento súbor? +flashupdate.msgbox Zistený nový súbor:\nDátum: %s, %s\nZákledné Image: %s\nTyp: %s\n\nNaozaj prevziať a nainštalovať\ntento súbor? +flashupdate.msgbox_manual Zistený nový súbor:\nDátum: %s, %s\nZákladné Image: %s\nTyp IMAGE: %s\n\nNaozaj nainštalovať\ntento súbor? flashupdate.mtdselector Výber partície flashupdate.namemode1 Názov súboru nastavení flashupdate.namemode1_default +settings.img @@ -574,6 +655,7 @@ fontmenu.eventlist Programový sprievodca fontmenu.head Nastavenia písma fontmenu.infobar Informačná lišta fontmenu.menu Menu +fontmenu.other Iné fontmenu.scaling Faktor zoomu globálneho fontu fontmenu.scaling_x Vodorovne (v %) fontmenu.scaling_x_hint2 Vodorovne (v %) min 50 / max 200 @@ -604,6 +686,7 @@ fontsize.menu Text menu fontsize.menu_hint Popis menu fontsize.menu_info Informačné menu fontsize.menu_title Titulok menu +fontsize.subtitles Text titulkov hdd_10min 10 minút hdd_1min 1 minúta hdd_20min 20 minút @@ -613,23 +696,33 @@ hdd_60min 60 minút hdd_activate Použi nastavenia hdd_check Kontrola súborového systému hdd_check_failed Chyba kontroly disku ! -hdd_ext3 Súborový systém Ext3 +hdd_check_format_bad Kontrola diskov s formátom %s ak je nepodporovaný. hdd_extended_settings Rozšírené nastavenia disku hdd_fast rýchle hdd_format Formátovanie HDD hdd_format_failed Chyba počas formátovania disku ! hdd_format_warn Naozaj formátovať? Všetky dáta budú stratené! hdd_fs Súborový systém +hdd_fs_unknown neznámy hdd_manage Spravovanie HDD hdd_middle stredne +hdd_mount Pripojenie +hdd_mount_failed Chyba pripojenia. +hdd_mount_ok Zariadenie pripravené k používaniu. +hdd_mount_umount Pripojenie/Odpojenie hdd_noise Hlučnosť (AAM) hdd_not_found Nenájdený disk -hdd_reiser ReiserFS hdd_removable_device Odstrániteľné zariadenie +hdd_set_recdir Použiť zariadenie k nahrávaniu ? hdd_settings Nastavenia HDD/USB hdd_sleep Čas uspania hdd_slow pomaly +hdd_statfs Zadaná úroveň dotazu +hdd_statfs_always vždy +hdd_statfs_recording len pri nahrávaní +hdd_umount Odpojenie hdd_umount_warn Chyba počas odpojenia disku ! +hdd_umounted Zariadenie odstránené imageinfo.creator Vytvoril: imageinfo.date Dátum: imageinfo.dokumentation Dokumentácia: @@ -673,8 +766,10 @@ keybindingmenu.cancel Zatvorenie zoznamu kanálov keybindingmenu.channeldown Nasledujúci kanál keybindingmenu.channellist Zoznam kanálov keybindingmenu.channelup Predchádzajúci kanál +keybindingmenu.edit Úprava keybindingmenu.head Nastavenie klávesov keybindingmenu.lastchannel Späť na posledný kanála +keybindingmenu.longkeypress_duration Dlhý stisk klávesy keybindingmenu.misc Rôzne keybindingmenu.mode_left_right_key_tv Činnosť Ľavého/Pravého kurzora v TV režime keybindingmenu.mode_left_right_key_tv_infobar Zobraz informačnú lištu @@ -682,6 +777,7 @@ keybindingmenu.mode_left_right_key_tv_volume Ovládanie hlasitosti keybindingmenu.mode_left_right_key_tv_vzap Virtuálne prepnutie keybindingmenu.mode_left_right_key_tv_zap Prepnutie keybindingmenu.modechange Zmena spôsobu +keybindingmenu.navigation Navigácia keybindingmenu.pagedown Nasledujúca strana keybindingmenu.pageup Predchádzajúca strana keybindingmenu.poweroff Správa napájania @@ -701,6 +797,10 @@ keybindingmenu.special_active Špeciálne klávesy keybindingmenu.subchanneldown Predchádzajúci podkanál keybindingmenu.subchannelup Nasledujúci podkanál keybindingmenu.tvradiomode TV/Rádio +keybindingmenu.video Obraz +keybindingmenu.volume Hlasitosť +keybindingmenu.volumedown Znížiť +keybindingmenu.volumeup Zvýšiť keybindingmenu.zaphistory História prepínania buketov keychooser.head Nastvenie nového klávesu keychooser.text1 Stlač kláves @@ -719,7 +819,7 @@ lcdcontroler.brightnessdeepstandby Jas v hlbokom spánku lcdcontroler.brightnessstandby Jas v spánku lcdmenu.dim_brightness Jas po zhasnutí lcdmenu.dim_time Čas zhasnutia -lcdmenu.head Nastavenie VFD/LED +lcdmenu.head Nastavenie VFD lcdmenu.lcdcontroler Jas lcdmenu.scroll Povoliť pohyb textu lcdmenu.statusline Stavový riadok @@ -738,6 +838,12 @@ ledcontroler.off Led1 a Led2 vyp. ledcontroler.on.all Led1 a Led2 zap. ledcontroler.on.led1 Led1 zap. ledcontroler.on.led2 Led2 zap. +lua.boolparam_deprecated1 Upozornenie! +lua.boolparam_deprecated2 Použité číslo alebo reťazec +lua.boolparam_deprecated3 pre Boolean parameter je zastarané.\n Prosím použiť prirodzenú bool hodnotu napr. +lua.function_deprecated1 Upozornenie! +lua.function_deprecated2 Funkcia +lua.function_deprecated3 je kritická,\n prosím použiť mainmenu.audioplayer Prehrávač hudby mainmenu.channels Zoznam kanálov mainmenu.clearsectionsd Vyčistenie EPG zachytávania @@ -767,9 +873,10 @@ mainsettings.audio Zvuk mainsettings.head Nastavenia mainsettings.keybinding Nastavenia kláves mainsettings.language Jazyk / Časové pásmo -mainsettings.lcd Zobrazovač VFD / LED +mainsettings.lcd Zobrazovač VFD mainsettings.manage Spravovanie nastavení mainsettings.misc Iné nastavenia +mainsettings.multimedia Multimédia mainsettings.network Sieť mainsettings.osd Nastavenia OSD mainsettings.recording Nahrávanie @@ -780,8 +887,11 @@ mainsettings.video Obraz menu.back späť menu.cancel zrušiť menu.hint_a_pic Nastavenie prehrávača hudby a obrázkového prehliadača -menu.hint_aplay Prehrávač zvukových súborov +menu.hint_aplay Prehrávanie zvukových súborov menu.hint_audio Audio výstup, DD, SRS TrueVolume \nVoľby +menu.hint_audio_adjust_vol_ac3 Špecifické nastavenie hlasitosti pre AC3 prúdy +menu.hint_audio_adjust_vol_clear Vyčistenie všetkých uložených hodnôt pre PCM a AC3 prúdy +menu.hint_audio_adjust_vol_pcm Špecifické nastavenie hlasitosti pre PCM prúdy menu.hint_audio_analog_mode Výber zvukového kanálu pre\nstereo, mono-ľavý, mono-pravý menu.hint_audio_avsync A/V synchronizácia menu.hint_audio_dd Automatické prepnutie na DolbyDigital zvukový pid,\nak je dostupný @@ -791,6 +901,7 @@ menu.hint_audio_srs SRS TruVolume ovládanie hlasitosti \npoužitím zmien obsah menu.hint_audio_srs_algo Účinnosť ovládania, jemná alebo klasická menu.hint_audio_srs_nmgr Potlačovač šumu menu.hint_audio_srs_volume Referenčná úroveň citlivosti +menu.hint_audio_volstart Vždy naství zvolenú hodnotu hlasitosti pri spustení menu.hint_audio_volstep Zvýšenie/zníženie kroku pre klávesy VOL +/- menu.hint_audioplayer_defdir Prednastavený adresár prehrávača hudby menu.hint_audioplayer_follow Pohyb vybraného ukazovateľa zoznamu prehrávania\nna aktuálne hrajúcu pieseň @@ -804,6 +915,7 @@ menu.hint_audioplayer_title Použije SMS štýl vyhľadávania titulov v zozname menu.hint_auto_lang Automatické prepnutie zvuku na preferovaný jazyk menu.hint_auto_subs Automatické spustenie titulkov pre preferovaný jazyk menu.hint_back Návrat do predchádzajúcej položky.\nStlačenie MENU klávesy uzavrie všetky položky +menu.hint_back_brief Návrat do predchádzajúcej ponuky menu.hint_backlight Nastavenie podsvietených tlačidiel menu.hint_backup Záloha konfigurácií a kanálov do vybraného adresára menu.hint_bedit Úprava obľúbených a buketov @@ -818,15 +930,20 @@ menu.hint_channellist_epg_align Zarovnanie EPG udalostí menu.hint_channellist_extended Grafické zobrazenie aktuálnej udalosti menu.hint_channellist_fonts Zmena veľkosti písma zoznamu kanálov menu.hint_channellist_foot Zobrazenie ďaľších informácií\nv dolnom boxe +menu.hint_channellist_mode Použiť vybraný režim zoznamu kanálov pri spustení ak posledný režim je TV +menu.hint_channellist_mode_radio Použiť vybraný režim zoznamu kanálov pri spustení ak posledný režim je Radio menu.hint_channellist_setup Konfigurácia GUI volieb zonamu kanálov menu.hint_channellist_show_channellogo Zobrazenie loga staníc v zozname kanálov +menu.hint_channellist_show_channelnumber Zobrazenie čísla kanála v zozname kanálov +menu.hint_channellist_show_empty_favs Zobrazenie / skrytie prázdnych buketov v obľúbených menu.hint_channels Otvorí zoznam kanálov -menu.hint_ci Nastavovacie menu podmieneného pristupu\npre váš CI CAM or vloženú Conax kartu +menu.hint_ci Nastavovacie menu podmieneného pristupu\npre váš CI CAM alebo vloženú Conax kartu menu.hint_clock_background Zobrazenie hodín s farbami témy vzhľadu menu.hint_clock_mode Zapnutie alebo vypnutie zobrazenia hodín menu.hint_clock_seconds Zobraenie formátu času so sekundami menu.hint_clock_size Nastavenie veľkosti informačných hodín. menu.hint_clock_textcolor Nastavenie ferieb číslic +menu.hint_color_gradient Prepne farebné prechody pre rôzne položky ponuky Zap/Vyp menu.hint_colors Konfigurácia farieb GUI menu.hint_content_back Zmena farby podkladu GUI okna menu.hint_content_textcolor Zmena farby textu GUI okna @@ -839,10 +956,13 @@ menu.hint_epg_dir Výber adresára na disku alebo usb \npre uloženie EPG. menu.hint_epg_extendedcache Maximálny čas zachytávania\npopisov doplňujúcich udalostí menu.hint_epg_fonts Zmena veľkosti písma okna EPG podrobností menu.hint_epg_max_events Maximum udalostí zachytávania. Po dosiahnutí hranice\nEPG cache odstráni nasledujúce udalosti -menu.hint_epg_old_events Hodiny po skončení udalosti aby sa označila\nako stará a odstránila sa zo zachytávania +menu.hint_epg_old_events Hodiny po skončení udalosti aby sa označilo\nako staré a odstránilo sa zo zachytávania +menu.hint_epg_read Načíta uložené EPG údaje po zavedení z externého zariadenia menu.hint_epg_save Uloženie zachyteného EPG na disk alebo usb\na načítanie po spustení +menu.hint_epg_save_frequently Uloženie zachyteného EPG v pravidelných intervaloch na externé zariadenie menu.hint_epg_save_standby Uloženie EPG v režime pripravenosti 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 príjmača pre spustenie prehľadania EPG menu.hint_event_textcolor Zmena farby udalosti pre nastavenia farebnosti udalosti\nv zozname kanálov a stavovom riadku menu.hint_eventlist_additional Zobrazí podrobnejšie informácie\nv hlavnom okne menu.hint_eventlist_fonts Zmena veľkosti písma zoznamu udalostí @@ -863,9 +983,11 @@ menu.hint_games Zobrazenie zoznamu inštalovaných hier menu.hint_hdd Formátovanie/kontrola pevného disku menu.hint_hdd_apply Použitie parametrov uspania/stíšenia menu.hint_hdd_check Kontrola súborového systému (fsck) +menu.hint_hdd_fmt Výber formátu disku menu.hint_hdd_format Vytvorenie HDD partície a jej formátovanie menu.hint_hdd_noise Nastavenie Automatic Acoustic Management\nnie je podporované u všetkých zariadení menu.hint_hdd_sleep Výber času zastavenia disku pri neaktivite +menu.hint_hdd_statfs Určí kedy úroveň zaplnenia adresára nahrávania v "infovieweri" a ak je dostupné bude aktualizované na VFD menu.hint_hdd_tools Inicializácia HDD, kontrola súborového systému menu.hint_head_back Zmena farby podkladu nadpisu hlavičky menu.hint_head_textcolor Zmena farby nadpisu hlavičky @@ -931,8 +1053,10 @@ menu.hint_key_pic_size_active Povolenie/zakázanie klávesy pre zmenu správneho menu.hint_key_pip_close Priradenie klávesy pre ukončenie PiP\nalebo spustenia ho na aktuálnom kanály menu.hint_key_pip_setup Priradenie klávesy pre konfiguráciu PiP menu.hint_key_pip_swap Priradenie klávesy pre zmenu PiP a živého kanála +menu.hint_key_plugin Priradenie klávesy pre vykonanie jedného vyskúšania doplnku menu.hint_key_poweroff Priradenie klávesy pre zmenu stavu napájania\n (pripravenosť/spánok <-> práca) menu.hint_key_quickzap Konfigurácia klávesových skratiek pre rýchlu\nzmenu kanála +menu.hint_key_record Priradenie klávesy pre spustenie nahrávania menu.hint_key_repeatblock Oneskorenie po stlačení klávesy a pred\nprvým opakovním povelu menu.hint_key_repeatblockgeneric Oneskorenie medzi opakovanim povelov\npočas stlačenia klávesy menu.hint_key_right Výber 'vpravo' funkcie v živom TV/Rádio režime @@ -942,9 +1066,11 @@ menu.hint_key_sort Priradenie klávesy pre zmenu triedenia zoznamu kanálov menu.hint_key_special_active Povolenie/zakázanie niektorých špeciálnych kláves menu.hint_key_subchanneldown Priradenie klávesy pre rýchlu zmenu\n do predchádzajúceho subkanálu menu.hint_key_subchannelup Priradenie klávesy pre rýchlu zmenu\n do nasledujúceho subkanálu -menu.hint_key_transponder Priradenie tlačítka pre zobrazenie zoznamu kanálov\nz aktuálneho transpondéra -menu.hint_key_tvradiomode Priradenie tlačítka pre zmenu TV <> Rádio režimu -menu.hint_key_unlock Priradenie tlačitka pre odomknutie poľa ak je zamknuté\nPre odomknutie stlačiť 'RED', potom počas 5 sekúnd to tlačítko +menu.hint_key_transponder Priradenie klávesy pre zobrazenie zoznamu kanálov\nz aktuálneho transpondéra +menu.hint_key_tvradiomode Priradenie klávesy pre zmenu TV <> Rádio režimu +menu.hint_key_unlock Priradenie klávesy pre odomknutie poľa ak je zamknuté\nPre odomknutie stlačiť 'RED', potom počas 5 sekúnd to tlačítko +menu.hint_key_volumedown Priradenie klávesy pre zníženie hlasitosti +menu.hint_key_volumeup Priradenie klávesy pre zvýšenie hlasitosti menu.hint_keys Rýchlosť opakovania diaľkového ovládača\nÚprava väzieb tlačítok menu.hint_lang_pref Konfigurácia preferovaného zvuku, EPG a jazyka titulkov menu.hint_language OSD jazyk, časové pásmo\nPreferovaný zvuk a jazyk titulkov @@ -957,10 +1083,12 @@ menu.hint_leds_record Stav LED počas nahrávania menu.hint_leds_standby Stav LED v režime pripravenosti menu.hint_leds_tv Funkčný stav LED menu.hint_load Nahranie GUI nastavení zo súboru +menu.hint_longkeypress_duration Stlačenie klávesy bude vyhodnotené ako "dlhý stisk klávesy" ak bude stlačené dlhšie ako špecifikovaný čas. menu.hint_lua Spustenie doplnkov menu.hint_make_hdlist Automaticky vytvorí HD zoznam kanálov na základe\ntypu kanála a názvu menu.hint_make_newlist Vytvorí zoznam nedávno pridaných kanálov menu.hint_make_removedlist Vytvorí zoznam nedávno odstránených kanálov +menu.hint_make_webtvlist Automaticky vytvorí WebTV zoznam kanálov na základe\ntypu kanála a názvu menu.hint_manage_settings Záloha, obnova, východzí stav\nVýrobné nastavenie príjmača menu.hint_mb Vaše nahrávky menu.hint_media Prehrávanie filmov a hudby, prezeranie obrázkov @@ -973,12 +1101,14 @@ menu.hint_misc_channellist HD/Nové/Odstránené zoznamy kanálov, cyklické pre menu.hint_misc_energy Použitie pripravenosti, oddialené vypnutie\nčasovače neaktivity menu.hint_misc_epg Voľby uloženia/nahrania EPG, voľby zachytávania EPG,\nEPG adresár uloženia menu.hint_misc_filebrowser Kódovanie súborového systemu, oprávnenia súboru,\nzákaz odstrániť adresáre -menu.hint_misc_general Spustenie do pripravenosti, zachytávanie teletextu, zmena motora\nhdd adresár doplnkov +menu.hint_misc_general Spustenie do pripravenosti, zachytávanie teletextu, hdd adresár doplnkov,\núroveň debugovania menu.hint_misc_zapit Východzie TV/Radio kanály menu.hint_movie Prehrávanie filmov +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_dhcp Použije DHCP server pre automatickú konfiguráciu menu.hint_net_djmount Pripojenie UPnP zariadení ako filesystem\npodľa /media/00upnp +menu.hint_net_dropbear Použitie ssh prístupu do boxu menu.hint_net_ftpd Použitie prenosu súboru cez FTP menu.hint_net_gateway Vloženie IP adresy brány smerovača menu.hint_net_hostname Zmena hosťovacieho názvu príjmača @@ -1011,10 +1141,13 @@ menu.hint_net_xupnpd Zdielanie "Živých kanálov" cez uPnp menu.hint_network IP adresa, brána, DNS, Synch. času\nSieťové zdielanie a služby menu.hint_new_zap_mode Povoliť prepnutie kanála počas prehliadania\n(prepnuť režim s 'MUTE' v zozname kanálov) menu.hint_numeric_adjust Nastavenie režimu zoznamu kanálov na číselné prepnutie +menu.hint_opkg Inštalovať alebo aktualizovať programové balíčky +menu.hint_opkg_upgrade Aktualizuje všetky inštalované balíčky na poslednú dostupnú verziu menu.hint_osd Farby, písma, veľkosť obrazu\nvzhľad a možnosti GUI menu.hint_osd_language Výber OSD jazyka menu.hint_osd_preset Prekonfigurovanie okrajov obrazovky pre CRT a LCD TV menu.hint_osd_timing Po tejto dobe OSD zmizne +menu.hint_other_fonts Zmena veľkostí ďaľšieho písma menu.hint_parentallock_changepin Zmena PIN kódu menu.hint_parentallock_lockage Výber povoleného veku pre sledovanie menu.hint_parentallock_menu Zamknutie ponúk s pin kódom @@ -1024,14 +1157,23 @@ menu.hint_pictureviewer_defdir Východzí adresár prehliadača obrázkov menu.hint_pictureviewer_scaling Algoritmus mierky obrázku menu.hint_pictureviewer_slide_time Interval zmeny obrázka, v sekundách menu.hint_picview Sledovanie obrázkov +menu.hint_plugin_type_games Zobrazí hry v uživateľskom menu pri výbere 'Typy doplnkov' +menu.hint_plugin_type_lua Zobrazí doplnky v uživateľskom menu pri výbere 'Typy doplnkov' +menu.hint_plugin_type_scripts Zobrazí skripty v uživateľskom menu pri výbere 'Typy doplnkov' +menu.hint_plugin_type_tools Zobrazí nástroje v uživateľskom menu pri výbere 'Typy doplnkov' menu.hint_plugins_hdd_dir Výber adresára pre nahranie doplnkov menu.hint_power_leds Konfigurácia správania LED podsvietenia tlačítka napájania menu.hint_pref_lang Výber preferovaných jayzkov zvuku a EPG\nvýber 'none' pre nepoužitie menu.hint_pref_subs Výber preferovaných jazykov titulkov\nvýber 'none' pre nepoužitie menu.hint_progressbar Výber volieb pre ukazovateľ menu.hint_progressbar_color Zobrazenie farebného ukazovateľa -menu.hint_progressbar_design Tu je možné vybrať dizajn ukazovateľa s aktívnymi farebnými voľbami +menu.hint_progressbar_gradient Pridanie vertikálneho jasového gradientu do stavového ukazovateľa menu.hint_progressbar_infobar_position Vyberie možnosti ukazovateľa v infobare +menu.hint_progressbar_preview Použiť OK na zmenu aktuálneho stavu infobaru +menu.hint_progressbar_timescale_green Výber množstva zelenej vo farebnosti infobaru +menu.hint_progressbar_timescale_invert Výber preferovaného farebného prechodu +menu.hint_progressbar_timescale_red Výber množstva červenej vo farebnosti infobaru +menu.hint_progressbar_timescale_yellow Výber množstva žltej vo farebnosti infobaru menu.hint_protection Ochrana obsahu PIN kódom\nVýchodzí PIN 0000 menu.hint_radiomode Prepne príjmač do rádio režimu menu.hint_reboot Reboot príjmača\nBez potvrdzovania @@ -1040,16 +1182,19 @@ menu.hint_record_apid_alt Nahrá ostatné zvukové pidy menu.hint_record_apid_std Nahrá prvý zvukový pid menu.hint_record_apids Konfigurácia volieb zvukových pidov pre nahrávanie menu.hint_record_apply Použije voľby nahrávania +menu.hint_record_auto_cover Automatické vytvorenie náhľadu pre filmový prehliadač na nahranom prehrávaní menu.hint_record_chandir Vytvorí adresár s názvom kanála\npre uloženie nahrávky menu.hint_record_data Konfigurácia dátových služieb (TeleText, Titulky) pre nahrávanie menu.hint_record_data_dvbsub Nahrá pid/stream s titulkami menu.hint_record_data_vtxt Nahrá pid/stream s teletextom menu.hint_record_dir Výber adresára pre ukladanie nahrávok menu.hint_record_end Zastaviť nahrávanie po max. čase alebo\npo čase ukončenia aktuálnej udalosti +menu.hint_record_filename_template Upraiť dočasný názov menu.hint_record_slow_warn Zobrazenie upozornenia, ak nahrávací buffer je blízko k preplneniu menu.hint_record_startstop_msg Zobrazenie správy o začatí/ukončení nahrávania pri začatí alebo ukončení menu.hint_record_tdir Výber adresára pre uloženie nahrávok časového posunu\nv režime dočasného časového posunu menu.hint_record_time Čas nahrávania do konca ak\nsa použije nahrávanie s tlačitkom nahrávania (REC) +menu.hint_record_time_ts Dĺžka časového posuvu pred zastavením keď\nje použitý menu.hint_record_timeafter Zastavenie nahrávania po ukonční udalosti\nv minútach menu.hint_record_timebefore Spustenie nahrávania pred začatím udalosti\nv minútach menu.hint_record_timer Konfigurácia volieb časového nahrávania @@ -1073,16 +1218,21 @@ menu.hint_scan_auto Prehľadanie vybraného satelitu menu.hint_scan_autoall Prehľadanie niektorých vybraných satelitov menu.hint_scan_autoall_select Pridá vybrané satelity do prehľadávania menu.hint_scan_bouquet aktualizácia: pridá aktuálne bukety\nzmaž všetky:odstráni staré bukety, bez zmien: nepridá alebo nezmení +menu.hint_scan_bouquet_writenames Zapísanie názvov služieb do buketov \n nikdy -> len obľúbené -> len poskytovateľ -> oba +menu.hint_scan_bw Výber šírky pásma kanála menu.hint_scan_cable Výber káblovej siete na prehľadanie menu.hint_scan_cable_simple Káblové prehľadávanie s možnosťou\nčíslovania kanálov poskytovateľom menu.hint_scan_commited Výber potvrdeného vstupu pre\ntento satelit +menu.hint_scan_delsys Výber odbavovacieho systému pre tento kanál/TP menu.hint_scan_diseqc Výber vstupu DiSEqC prepínača pre\ntento satelit menu.hint_scan_diseqcorder Vykoná príkaz DiSEqC pre kaskádne prepínače menu.hint_scan_diseqcrepeat DiSEqC opakovania pre kaskádne prepínače menu.hint_scan_diseqctype Výber protokolu 'rozšírené' pre DiSEqC prepínač\n môžete použiť na nepotvrdené prepínače menu.hint_scan_fast CanalDigitaal/TéléSAT/TV Vlaanderen vyhľadanie poskytovateľa\nPOZOR: nastavenie DiSEqC bude prepísané +menu.hint_scan_fastdiseqc Spustiť automatickú konfiguráciu DiSEqC menu.hint_scan_fastprov Výber poskytovateľa pre vyhľadávanie menu.hint_scan_fasttype Výber typu rýchleho vyhľadávania +menu.hint_scan_fastupdate Použiť/Vypnúť automatickú aktualizáciu rýchleho vyhľadávania menu.hint_scan_fec Výber FEC transpondéra menu.hint_scan_felink Výber tuneru pre vzájomné prepojenie menu.hint_scan_femode Výber typu pripojeného tuneru @@ -1090,6 +1240,8 @@ menu.hint_scan_fesetup Konfigurácia tuneru(ov) menu.hint_scan_fetimeout Čas čakania na signál, v desatinách sekundy menu.hint_scan_freq Zadanie kmitočtu transpondéra menu.hint_scan_fta Pridá len Free-To-Air (nekódované) kanály +menu.hint_scan_gi Výber ochranného intervalu pre tento pozemný kanál +menu.hint_scan_hierarchy Výber hierarchie pre tento pozemný kanál menu.hint_scan_ladirection Výber umiestnenia zemepisnej šírky menu.hint_scan_latitude Zadanie vašej zemepisnej šírky menu.hint_scan_lnbconfig Konfigurácia LNB parameterov pre tento satelit @@ -1102,12 +1254,14 @@ menu.hint_scan_logical_hd Ak je dostupná SD a HD verzia kanálu\nvloží HD na menu.hint_scan_longitude Zadanie vašej zemepisnej dĺžky menu.hint_scan_manual Použije vybrané parametre na\nmanuálne prehľadanie transpondéra menu.hint_scan_mod Výber modulácie transpondéra +menu.hint_scan_motor Možnosti motora, satelitný vyhľadávač menu.hint_scan_motor_18v Použije 18V pri pohybe motora menu.hint_scan_motor_speed Rýchlosť pohybu motora v 1/10 stupňa\nza sekundu menu.hint_scan_motorpos Výber čísla uloženej pozície pre\ntento satelit menu.hint_scan_nid Vloženie network ID (dekadicky) menu.hint_scan_nit Pridanie transpondérov zo sieťovej informácie menu.hint_scan_pids Hľadanie a uloženie audio/video/PMT pidov +menu.hint_scan_pilot Výber parametra pilotu menu.hint_scan_pol Výber polarizácie transpondéra menu.hint_scan_rate Zadanie symbolovej rýchlosti transpondéra menu.hint_scan_reset_numbers Resetovanie existujúcich čísel kanálov\na prečíslovanie kanálov po vyhľadaní @@ -1125,7 +1279,9 @@ menu.hint_scan_setup_fe Konfigurácia volieb vybraného vstupného dielu menu.hint_scan_start Spustenie hľadania. Môžete použiť 'EXIT' tlačítko na zastavenie menu.hint_scan_test Otestovanie signálu z tohto transpondéra menu.hint_scan_tpselect Výber transpondéra pre prehľadanie +menu.hint_scan_transmit_mode Výber režimu prenosu pre tento pozemný kanál menu.hint_scan_uncommited Výber nepotvrdeného vstupu pre\ntento satelit +menu.hint_scan_usals USALS možnosti menu.hint_scan_usals_repeat Opakuje príkazy pohybu motora USALS \nak si myslíte, že pohyb je nestabilný menu.hint_scan_usalsall Nastavenie USALS označenia pre všetky satelity menu.hint_scan_useusals Použije USALS pre\ntento satelit @@ -1139,7 +1295,7 @@ menu.hint_screenshot_res Veľkosť zosnímania: veľkosť obrazového rozmeru ak menu.hint_screenshot_scale Pre obraz+OSD zosnímanie, mierka z obrazového rozlíšenia menu.hint_screenshot_setup Konfigurácia volieb zosnímania obrázku menu.hint_screenshot_video Vrátane živého obrazu v zosnímanom obrázku -menu.hint_scripts Spustí zadanie +menu.hint_scripts Spustenie zadaní menu.hint_selected_back Zmena farby podkladu označenej položky menu.hint_selected_text Zmena farby textu označenej položky menu.hint_service Nastavenie tuneru, vyhľadanie služieb,\núprava buketov, aktualizácia software @@ -1173,6 +1329,7 @@ menu.hint_timezone Výber časového pásma menu.hint_tools Spustenie nástrojov menu.hint_tvmode Prepne príjmač do TV režimu menu.hint_tvradio_switch Prepínanie medzi TV a Rádio režimom +menu.hint_upnp Univerzálny Plug and Play prehliadač menu.hint_vfd LED-ky predného panelu, VFD voľby menu.hint_vfd_brightness Jas pri práci menu.hint_vfd_brightness_setup Konfigurácia jasu zobrazovača predného panelu\npre rôzne režimy @@ -1194,15 +1351,18 @@ menu.hint_video_dbdr MPEG2 rozšírené filtre menu.hint_video_format Pomer TV obrazu menu.hint_video_mode Obrazový režim HDMI výstupu menu.hint_video_modes VF klávesa bude cyklovať medzi zvolenými režimami +menu.hint_video_modes_auto Povoliť režimy automatického výberu na základe obsahu menu.hint_video_pip Veľkosť a umiestneie obrazu v obraze menu.hint_video_saturation Zmena farebnosti obrázku menu.hint_video_scart_mode Výber režimu analógového výstupu pre SCART konektory +menu.hint_video_sdosd Zapnúť/vypnúť OSD zorazenie na SD výstupe (scart, cinch) menu.hint_volume Konfigurácia volieb okna hlasitosti menu.hint_volume_digits Číselné zobrazenie ukazovateľa hlasitosti ZAP/VYP menu.hint_volume_pos Výber pozície 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_window_size Zoznam kanálov, EPG-Infp a niektoré iné okná sú zmenšené týmto faktorom -menu.hint_ytplay Prehranie vybraných youtube videí +menu.hint_ytplay Prehrávanie vybraných youtube videí menu.hint_zap_cycle Pri prepínaní kanálov zotrvať v aktuálnom bukete menu.next ďaľej (MENU ukončí) messagebox.back späť @@ -1234,11 +1394,18 @@ miscsettings.epg_max_events_hint2 normálne 6000, 0 pre zrušenie limitu miscsettings.epg_old_events Odstráň neaktuálne EPG miscsettings.epg_old_events_hint1 Ako dlho zapisovať dáta EPG po skončení? miscsettings.epg_old_events_hint2 Nastavenie v hodinách. +miscsettings.epg_read Obnoviť EPG pri zavádzaní miscsettings.epg_save Ulož/Obnov EPG po reštarte +miscsettings.epg_save_frequently Periodické ukladanie EPG miscsettings.epg_save_standby Ulož EPG pri soft standby miscsettings.epg_scan Prehľadávanie EPG +miscsettings.epg_scan_always Vždy +miscsettings.epg_scan_bouquets Prehľadanie EPG buketov miscsettings.epg_scan_bq buket miscsettings.epg_scan_fav favoritné +miscsettings.epg_scan_live Naživo +miscsettings.epg_scan_sel Vybrané +miscsettings.epg_scan_standby Vspánku miscsettings.general Hlavné nastavenia miscsettings.head Rôzne nastavenia miscsettings.infobar Inforiadok @@ -1262,7 +1429,7 @@ miscsettings.infobar_show_res Zobraziť rozlišenie v stavovom riadku miscsettings.infobar_show_res_simple jednoduché miscsettings.infobar_show_sysfs_hdd Zaplnenie (sysFS & HDD) miscsettings.infobar_show_tuner Zobraziť aktívny tuner -miscsettings.infoclock Informačné hodiny +miscsettings.infoclock Informačné hodiny miscsettings.progressbar Ukazovateľ miscsettings.progressbar_color Farba miscsettings.progressbar_design Vzhľad @@ -1270,11 +1437,22 @@ miscsettings.progressbar_design_0 body miscsettings.progressbar_design_1 zvyslé pruhy miscsettings.progressbar_design_2 vodorovné pruhy miscsettings.progressbar_design_3 farebná škála +miscsettings.progressbar_design_4 jednofarebne +miscsettings.progressbar_design_long Vzhľad +miscsettings.progressbar_gradient 3D efekt miscsettings.progressbar_infobar_position Pozícia miscsettings.progressbar_infobar_position_0 štandartne miscsettings.progressbar_infobar_position_1 pod názvom kanála miscsettings.progressbar_infobar_position_2 úzky pod názvom kanála miscsettings.progressbar_infobar_position_3 zúžený medzi EPG udalosťami +miscsettings.progressbar_preview Náhľad +miscsettings.progressbar_timescale Časová os +miscsettings.progressbar_timescale_green zelená +miscsettings.progressbar_timescale_green_red zo zelenej do červenej +miscsettings.progressbar_timescale_invert Farebný prechod +miscsettings.progressbar_timescale_red červená +miscsettings.progressbar_timescale_red_green z červenej do zelenej +miscsettings.progressbar_timescale_yellow žltá miscsettings.radiotext RádioText miscsettings.shutdown_count Vypnúť po miscsettings.shutdown_count_hint1 Čas (v minútach) pre prepnutie zo stavu pripravenosti @@ -1339,6 +1517,7 @@ moviebrowser.browser_row_head Nastavenia riadku moviebrowser.browser_row_item Položka stĺpca moviebrowser.browser_row_nr Počet stĺpcov moviebrowser.browser_row_width Šírka stĺpca [%] +moviebrowser.cache_dir Adresár cache moviebrowser.delete_info Mazanie súborov, prosim čakajte... moviebrowser.dir Adresár moviebrowser.dir_head Doplnkové adresáre @@ -1369,6 +1548,7 @@ moviebrowser.hint_newbook_backward Nový skok vzad \n 'MODRÝ' na koniec moviebrowser.hint_newbook_forward Nový skok vpred\n 'MODRÝ' na koniec moviebrowser.info_audio Zvuk moviebrowser.info_channel Kanál +moviebrowser.info_file Súbor moviebrowser.info_filename Názov moviebrowser.info_genre_major Žáner moviebrowser.info_genre_minor Vedľajší žáner @@ -1438,12 +1618,20 @@ moviebrowser.short_size Veľkosť moviebrowser.short_title Titul moviebrowser.start_head Pozerať film od: moviebrowser.start_record_start Začiatok filmu +moviebrowser.ts_only Zobraziť iba nahrávky moviebrowser.update_if_dest_empty_only Kopírovať len ak je cieľové miesto prázdne moviebrowser.use_dir Použi adresár moviebrowser.use_movie_dir Použi adresár filmov moviebrowser.use_rec_dir Použi adresár nahrávania +moviebrowser.yt_cache Stiahnutia +moviebrowser.yt_cache_add Plánované \n%s\nsťahovanie. +moviebrowser.yt_cancel Zrušiť všetko +moviebrowser.yt_cancel_transfer Zrušiť sťahovanie? +moviebrowser.yt_clear Vyčistiť +moviebrowser.yt_completed Sťahovania ukončené moviebrowser.yt_concurrent_connections Súbežné spojenia moviebrowser.yt_error Chyba načítania youtube videa +moviebrowser.yt_failed Chybné sťahovania moviebrowser.yt_history Hľadať históriu moviebrowser.yt_max_history Maximálna veľkosť hľadania histórie moviebrowser.yt_max_results Dosiahnuté maximum výsledkov @@ -1455,6 +1643,7 @@ moviebrowser.yt_orderby.published dátum zverejnenia moviebrowser.yt_orderby.rating obľúbenosť moviebrowser.yt_orderby.relevance závažnosť moviebrowser.yt_orderby.viewcount sledovanosť +moviebrowser.yt_pending Čakajúce sťahovania moviebrowser.yt_pref_quality Preferovaná kvalita moviebrowser.yt_prev_results Predchádzájúce výsledky moviebrowser.yt_recently_featured Nedávno odporúčané @@ -1465,10 +1654,12 @@ movieplayer.bookmark Záložky movieplayer.bookmarkname Názov záložky movieplayer.bookmarkname_hint1 Vloženie názvu movieplayer.bookmarkname_hint2 novej záložky? +movieplayer.chapters Kapitoly movieplayer.defplugin Spustenie doplnku movieplayer.fileplayback Súbor cez VLC movieplayer.head Prehrávač filmov movieplayer.starting Spúšťa sa prehrávanie... +movieplayer.titles Tituly movieplayer.toomanybookmarks Veľa záložiek.\nJe potrebné vymazať jednu najprv. movieplayer.tshelp1 Zastavenie movieplayer.tshelp10 asi 10 min dozadu @@ -1487,6 +1678,8 @@ movieplayer.ytplayback Prehrávanie youtube mpkey.audio Zvuková stpopa mpkey.bookmark Ulož záložku mpkey.forward Dopredu +mpkey.goto Zadaj čas prehrávania +mpkey.next_repeat_mode ďaľší opakovací režim mpkey.pause Preruš mpkey.play Prehraj mpkey.plugin Spusti doplnok @@ -1542,6 +1735,7 @@ nfs.mountnow Pripoj teraz nfs.mountok Pripojenie úspešné nfs.mounttimeout Chyba pripojenia: uplinul časový limit nfs.password Heslo CIFS +nfs.refresh_mac vyhľadať MAC adresu nfs.remount Znovu pripoj nfs.type Typ nfs.type_cifs CIFS @@ -1556,8 +1750,22 @@ nvod.starting (spustenie za %d min) nvodselector.directormode Priamo nvodselector.head Výber času spustenia nvodselector.subservice Výber podkanálu +opkg.button.expert_off Štandartný mód +opkg.button.expert_on Expertný mód +opkg.button.info Informácia balíčka +opkg.button.install Inštalovať balíček +opkg.button.uninstall Odstrániť balíček +opkg.failure.install Chyba inštalácie (%d) +opkg.failure.update Chyba aktualizácie (%d) +opkg.failure.upgrade Chyba aktualizovania (%d) +opkg.messagebox.reinstall Preinštalovať %s? +opkg.messagebox.remove Odstrániť %s? +opkg.success.install Inštalácia v poriadku, reštart Neutrina bude žiadúci. +opkg.title Správa balíčkov +opkg.upgrade Aktualizovanie inštalovaných balíčkov options.default obnov predvolené options.fb FRAMEBUFFER +options.hint_default Nastaviť prednastavené hodnoty options.ntp_off DVB options.ntp_on NTP options.null nič @@ -1583,6 +1791,7 @@ parentallock.never nikdy parentallock.onsignal pri zistení zámku parentallock.parentallock Rodičovský zámok parentallock.prompt Použitie PIN kódu +parentallock.zaptime Čas zamknutia buketov (minúty) personalize.access Voľby prístupu personalize.apply_settings Použiť zmeny? personalize.button_auto auto @@ -1661,6 +1870,11 @@ pinprotection.head Zadanie PIN kódu pinprotection.wrongcode Nespávny PIN kód! Skúste znova. plugins.hdd_dir Plugin adresár na HDD plugins.result Výstup doplnku +plugintype.disabled Nepoužitý +plugintype.game Hra +plugintype.lua Lua doplnok +plugintype.script Skript +plugintype.tool Nástroj rclock.lockmsg Váš ovládač boxu bude zablokovaný.\n\nPre odblokovanie stlačte [ČERVENÝ] \na [MENU] na Vašom ovládači. rclock.menueadd Zamknutie DO rclock.title Zamknutie Diaľkového Ovládača @@ -1676,6 +1890,7 @@ recordingmenu.apids Predvolené zvukové stopy recordingmenu.apids_ac3 Nahraj zvuk AC3 recordingmenu.apids_alt Nahraj ostatné zvukové stopy recordingmenu.apids_std Nahraj štandartný zvuk +recordingmenu.auto_cover Automatický náhľad recordingmenu.data_pids Dátové stopy recordingmenu.defdir Adresár nahrávania recordingmenu.dvbsub_pids Nahraj titulky @@ -1683,6 +1898,9 @@ recordingmenu.end_of_recording_epg EPG akt.udalosť recordingmenu.end_of_recording_max max. čas nahrávania recordingmenu.end_of_recording_name Konečný čas nahrávania recordingmenu.file disk (súbor) +recordingmenu.filename_template Dočasný názov +recordingmenu.filename_template_hint wildcards budú nahradené +recordingmenu.filename_template_hint2 %C = kanál, %T = názov, %I = info, %d = dátum, %t = čas recordingmenu.help Nahrávacie zariadenie:\n--------------------------------------\nserver:\npotrebný streamovaci SW na PC\n\(analóg) VCR:\npotrebný VCR (druhý SCART)\n\ndisk (súbor):\npotrebný pripojený sieťový NFS adresár\nalebo vnútorný HDD disk\nTS: použi SPTS režim(dBox2)\nPES: nepouži SPTS režim(dBox2)\n\n\nMaximálna veľkosť súboru:\n---------------------\nNFS V2: 2 GB (2048 MB)\nNFS V3: takmer nekonečné (0 MB)\nFAT: 2 GB (2048 MB)\nFAT32: 4 GB (4096 MB)\n\nPre NFS (UDP) sa doporučuje synchronizovaný zápis recordingmenu.multimenu.ask_stop_all skutočne zastaviť všetky %d nahrávania? recordingmenu.multimenu.info_stop_all %d z %d nahrávaní budú zastavené. @@ -1726,14 +1944,29 @@ satsetup.diseqcrepeat DiSEqC opakovania satsetup.extended Nastavenia DiSEqC satsetup.extended_motor Nastavenia motora satsetup.fastscan_all SD a HD +satsetup.fastscan_auto_diseqc Spustiť automatickú konfiguráciu DiSEqC +satsetup.fastscan_auto_diseqc_wait Prebieha automatická konfigurácia DiSEqC satsetup.fastscan_hd len HD -satsetup.fastscan_head Rýchle prehľadanie +satsetup.fastscan_head Rýchle prehľadanie (Fast-SCAN) satsetup.fastscan_prov Poskytovateľ -satsetup.fastscan_prov_cd CanalDigitaal -satsetup.fastscan_prov_telesat TéléSAT -satsetup.fastscan_prov_tvv TV Vlaanderen +satsetup.fastscan_prov_cd_hd CanalDigitaal (HD) +satsetup.fastscan_prov_cd_sd CanalDigitaal (SD) +satsetup.fastscan_prov_hda AustriaSat (HD) +satsetup.fastscan_prov_hello M7 Group (HU) +satsetup.fastscan_prov_skylink_c M7 Group (CZ) +satsetup.fastscan_prov_skylink_s M7 Group (SK) +satsetup.fastscan_prov_telesat_b TeleSAT Belgium +satsetup.fastscan_prov_telesat_l TeleSAT Luxemburg +satsetup.fastscan_prov_tvv_hd TV Vlaanderen (HD) +satsetup.fastscan_prov_tvv_sd TV Vlaanderen (SD) satsetup.fastscan_sd len SD satsetup.fastscan_type Typ prehľadania +satsetup.fastscan_update Automatická aktualizácia +satsetup.fe_delsys_mode Režim odbavovacieho systému +satsetup.fe_delsys_mode_auto Auto +satsetup.fe_delsys_mode_cable Kábel +satsetup.fe_delsys_mode_sat Družica +satsetup.fe_delsys_mode_terrestrial Pozemne satsetup.fe_mode Mód tuneru satsetup.fe_mode_independent Nezávislý satsetup.fe_mode_link_loop Prepojený @@ -1774,13 +2007,20 @@ sc.waiting Čakanie na odpoveď karty scants.abort_body Skutočne prerušiť vyhľadávanie? scants.abort_header Prerušenie vyhľadávania scants.actcable Kábel: +scants.acthybrid Hybrid: scants.actsatellite Satelit: +scants.actterrestrial Pozemne: scants.bouquet Bukety scants.bouquet_create vytvor nový scants.bouquet_erase zmaž všetky scants.bouquet_leave bez zmien scants.bouquet_satellite Satelitný Buket scants.bouquet_update aktualizácia +scants.bouquet_writenames Zápis názvov služby do buketov +scants.bouquet_writenames_bouquets poskytovatelia +scants.bouquet_writenames_ever oba +scants.bouquet_writenames_never nikdy +scants.bouquet_writenames_ubouquets obľúbené scants.channel Kanál: scants.failed Neúspešné prehľadávanie! scants.finished Dokončené prehľadávanie transpondérov! @@ -1840,7 +2080,7 @@ settings.pos_top_left ľavý vrch settings.pos_top_right pravý vrch settings.restore Obnovenie nastavení settings.restore_warn Budú nahradené všetky nastavenia a reštartujem sa\nPokračovať ? -shutdown.recoding_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? sleeptimerbox.announce Do vypnutia ostáva minúta. sleeptimerbox.hint1 Čas do vypnutia v minútach (000=vypnuté) @@ -1851,6 +2091,7 @@ sleeptimerbox.title2 Čas vypnutia pri neaktivite streaminfo.aratio Formát obrazu streaminfo.aratio_unknown Formát obrazu: neznámy streaminfo.audiotype Formát zvuku +streaminfo.audiotype_unknown neznámy streaminfo.average_bitrate priemer streaminfo.bitrate Prenosová rýchlosť streaminfo.framerate Snímková rýchlosť @@ -1864,10 +2105,17 @@ streaming.dir_not_writable Do nahrávacieho adresára nie je možné nahrávať. streaming.overflow Pretečenie buferu nahrávania, zvážte zastavenie niekterých nahrávaní streaming.slow System/HDD je pomalý, zvážte zastavenie niekterých nahrávaní streaming.write_error Nahrávanie bolo prerušené\npretože vznikla chybu počas zapisovacieho procesu. +stringinput.backspace Naspäť stringinput.caps veľké/malé znaky stringinput.clear všetko zmaž +stringinput.insert Vložiť +stringinput.layout Rozloženie +stringinput.save Uložiť +subtitles.charset Znaková sada subtitles.head Titulky subtitles.stop Vypnúť titulky +terrestrialsetup.area Územie +terrestrialsetup.provider Pozemný prevádzkovateľ timer.eventrecord.msg Udalosť je naplánovaná na nahrávanie.\nPre úpravu plánu otvorte časovač nahrávania. timer.eventrecord.title Plánovač nahrávania timer.eventtimed.msg Táto relácia je naplánovaná.\nBox bude zapnutý a prepnutý \nna tento kanál v stanovenom čase. @@ -1956,6 +2204,7 @@ unicable.lnb Vstup Unicable unicable.qrg Kmitočet Unicable unicable.scr SCR Unicable unit.decimal . +unit.long.years roky unit.short.hour h unit.short.millisecond ms unit.short.minute min @@ -1974,6 +2223,9 @@ usermenu.item_epg_misc Funkcie EPG usermenu.item_none Nič usermenu.item_plugin_types Typy doplnku usermenu.item_vtxt Teletext +usermenu.items Položky menu +usermenu.key Klávesa +usermenu.key_select Priradená klávesa usermenu.msg_info_is_empty Nenadefinovaný názov pre toto menu!\nPoužije sa prednastavený názov:\n usermenu.msg_warning_name Máte viac ako jednu položku vytvorené pro toto menu,\nale žiadny definovaný nový názov pro toto menu.\nDoporučujem vytvoriť nový názov! usermenu.msg_warning_no_items Nedefinované žiadne položky!\nZresetovaný názov menu! @@ -2004,6 +2256,7 @@ videomenu.dbdr_both deblock+dering videomenu.dbdr_deblock deblock videomenu.dbdr_none nič videomenu.enabled_modes Nastavenie režimov pre VF klávesu +videomenu.enabled_modes_auto Automatický výber použitých režimov videomenu.fullscreen Celý obraz videomenu.hdmi_cec Uživateľské ovládanie (HDMI-CEC) videomenu.hdmi_cec_mode Mód HDMI-CEC @@ -2021,6 +2274,7 @@ videomenu.pip_error Chybné spustenie PiP videomenu.saturation Farebnosť videomenu.scart SCART videomenu.screensetup Nastavenie zobrazenia OSD +videomenu.sdosd SD OSD videomenu.sharpness Ostrosť videomenu.tv-scart TV SCART videomenu.vcrsignal Typ signálu VCR výstupu @@ -2031,6 +2285,10 @@ videomenu.videoformat_149 14:9 videomenu.videoformat_169 16:9 videomenu.videoformat_43 4:3 videomenu.videomode Obrazový režim +webtv.head WebTV +webtv.xml WebTV XML súbory +webtv.xml.add Pridaj XML súbor +webtv.xml.del Odstráň XML súbor window_size Veľkosť okna v % wizard.initial_settings Najdené ininicializačné nastavenia wizard.install_settings Chcete inštalovať kanály pre Astra 19.2°E? @@ -2042,11 +2300,14 @@ wizard.setup_type_hint Jednoduché nastavenie pre CanalDigitaal/TĂ©lĂ©SAT/TV wizard.welcome_head Vitajte v Sprievodcovi nastavenia wizard.welcome_text Ďaľšie kroky prevedú základnú inštaláciu tohto zariadenia.\nChceš pokračovať?\nBlahoželáme k zakúpeniu CST. Nasledujúce \nkroky ťa prevedú počiatočnou inštaláciou nastavenia prístroja.\nPrajeme ti veľa radosti s týmto príjmačom!\nĎaľší krok ? word.from z +word.in v zapit.scantype Vyhľadávanie kanálov zapit.scantype.all všetkých zapit.scantype.radio len Rádio zapit.scantype.tv len TV zapit.scantype.tvradio TV a Rádio +zapitsetup.channelmode Východzí TV zoznam kanálov +zapitsetup.channelmode_radio Východzí Radio zoznam kanálov zapitsetup.head Nastavenia kanála spustenia zapitsetup.info Kanál pri spustení zapitsetup.last_radio Rádiový kanál From 6a23a1c36a34cdd757763190a11f0971a61c36bb Mon Sep 17 00:00:00 2001 From: defans Date: Mon, 29 Dec 2014 21:06:18 +0100 Subject: [PATCH 02/72] CScreenSaver: add class CScreenSaver --- src/gui/Makefile.am | 1 + src/gui/audioplayer.cpp | 33 +------ src/gui/audioplayer.h | 1 - src/gui/screensaver.cpp | 193 ++++++++++++++++++++++++++++++++++++++++ src/gui/screensaver.h | 55 ++++++++++++ src/neutrino.cpp | 6 ++ src/system/settings.h | 3 + 7 files changed, 262 insertions(+), 30 deletions(-) create mode 100644 src/gui/screensaver.cpp create mode 100644 src/gui/screensaver.h diff --git a/src/gui/Makefile.am b/src/gui/Makefile.am index 8b78680cd..4133761b9 100644 --- a/src/gui/Makefile.am +++ b/src/gui/Makefile.am @@ -97,6 +97,7 @@ libneutrino_gui_a_SOURCES = \ record_setup.cpp \ scan.cpp \ scan_setup.cpp \ + screensaver.cpp \ screensetup.cpp \ settings_manager.cpp \ sleeptimer.cpp \ diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index caf99d898..08cefc6ca 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -65,7 +65,7 @@ #include #include #include - +#include #include "gui/pictureviewer.h" extern CPictureViewer * g_PicViewer; @@ -172,7 +172,6 @@ CAudioPlayerGui::CAudioPlayerGui(bool inetmode) void CAudioPlayerGui::Init(void) { - stimer = 0; m_selected = 0; m_metainfo.clear(); @@ -329,8 +328,6 @@ int CAudioPlayerGui::show() neutrino_msg_t msg; neutrino_msg_data_t data; - int pic_index = 0; - int ret = menu_return::RETURN_REPAINT; // clear whole screen @@ -378,28 +375,8 @@ int CAudioPlayerGui::show() { int timeout = time(NULL) - m_idletime; int screensaver_timeout = g_settings.audioplayer_screensaver; - if (screensaver_timeout !=0 && timeout > screensaver_timeout*60 && !m_screensaver) + if (screensaver_timeout != 0 && timeout > screensaver_timeout*60 && !m_screensaver) screensaver(true); - - if (msg == NeutrinoMessages::EVT_TIMER && data == stimer) { - if (m_screensaver) { - char fname[255]; - - sprintf(fname, "%s/mp3-%d.jpg", DATADIR "/neutrino/icons", pic_index); - - int lret = access(fname, F_OK); - printf("CAudioPlayerGui::show: new pic %s: %s\n", fname, lret ? "not found" : "found"); - if (lret == 0) { - pic_index++; - videoDecoder->StopPicture(); - videoDecoder->ShowPicture(fname); - } else if (pic_index) { - pic_index = 0; - } - } else - pic_index = 0; - } - } else { @@ -2224,18 +2201,16 @@ void CAudioPlayerGui::paintLCD() break; } } - void CAudioPlayerGui::screensaver(bool on) { if (on) { m_screensaver = true; - m_frameBuffer->Clear(); - stimer = g_RCInput->addTimer(10*1000*1000, false); + CScreenSaver::getInstance()->Start(); } else { - g_RCInput->killTimer(stimer); + CScreenSaver::getInstance()->Stop(); m_screensaver = false; videoDecoder->StopPicture(); videoDecoder->ShowPicture(DATADIR "/neutrino/icons/mp3.jpg"); diff --git a/src/gui/audioplayer.h b/src/gui/audioplayer.h index 17f8fca92..073bf7b65 100644 --- a/src/gui/audioplayer.h +++ b/src/gui/audioplayer.h @@ -140,7 +140,6 @@ class CAudioPlayerGui : public CMenuTarget int m_idletime; bool m_screensaver; bool m_inetmode; - uint32_t stimer; CComponentsDetailLine *dline; CComponentsInfoBox *ibox; diff --git a/src/gui/screensaver.cpp b/src/gui/screensaver.cpp new file mode 100644 index 000000000..12208cbb8 --- /dev/null +++ b/src/gui/screensaver.cpp @@ -0,0 +1,193 @@ +/* + Neutrino-GUI - DBoxII-Project + + Copyright (C) 2001 Steffen Hehn 'McClean' + Homepage: http://dbox.cyberphoria.org/ + + Copyright (C) 2012-2013 defans@bluepeercrew.us + + License: GPL + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // std::sort +#include +#include "audiomute.h" +#include "screensaver.h" + +#include +extern cVideo * videoDecoder; + + +CScreenSaver::CScreenSaver() +{ + thrScreenSaver = 0; + m_frameBuffer = CFrameBuffer::getInstance(); + index = 0; +} + +CScreenSaver::~CScreenSaver() +{ + if(thrScreenSaver) + pthread_cancel(thrScreenSaver); + thrScreenSaver = 0; +} + + +CScreenSaver* CScreenSaver::getInstance() +{ + static CScreenSaver * screenSaver = NULL; + if (!screenSaver) + screenSaver = new CScreenSaver(); + + return screenSaver; +} + + +void CScreenSaver::Start() +{ + CAudioMute::getInstance()->enableMuteIcon(false); + + if(!thrScreenSaver) + { + //printf("[%s] %s: starting thread\n", __FILE__, __FUNCTION__); + pthread_create(&thrScreenSaver, NULL, ScreenSaverPrg, (void*) this); + pthread_detach(thrScreenSaver); + } + +} + +void CScreenSaver::Stop() +{ + if(thrScreenSaver) + { + pthread_cancel(thrScreenSaver); + thrScreenSaver = 0; + } + + if(thrScreenSaver) + pthread_cancel(thrScreenSaver); + thrScreenSaver = 0; + + CAudioMute::getInstance()->enableMuteIcon(true); +} + +void* CScreenSaver::ScreenSaverPrg(void* arg) +{ + pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, 0); + pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, 0); + + CScreenSaver * PScreenSaver = static_cast(arg); + + PScreenSaver->ReadDir(); //TODO kill Screensaver if false + PScreenSaver->m_frameBuffer->Clear(); + + while(1) + { + PScreenSaver->PaintPicture(); + sleep(10); + } + return 0; +} + +bool CScreenSaver::ReadDir() +{ + char* dir_name = (char *) g_settings.screensaver_dir.c_str(); + struct dirent *dirpointer; + DIR *dir; + char curr_ext[5]; + int curr_lenght; + char* p; + bool ret = false; + + v_bg_files.clear(); + + /* open dir */ + if((dir=opendir(dir_name)) == NULL) { + fprintf(stderr,"[CScreenSaver] Error opendir ...\n"); + return ret; + } + + /* read complete dir */ + while((dirpointer=readdir(dir)) != NULL) + { + curr_lenght = strlen((*dirpointer).d_name); + string str = dir_name; +// printf("%d\n",curr_lenght); + if(curr_lenght > 4) + { + strncpy(curr_ext,(*dirpointer).d_name+(curr_lenght-4),5); + + for (p = curr_ext; *p; ++p) + *p = (char)tolower(*p); +// printf("%s\n",curr_ext); + + if((strcmp(".jpg",curr_ext)) + //|| (strcmp(".png",curr_ext)) + //|| (strcmp(".bmp",curr_ext)) + ) + continue; + + str += "/"; + str += (*dirpointer).d_name; + v_bg_files.push_back(str); + } + } + + sort(v_bg_files.begin(), v_bg_files.end()); + + /* close pointer */ + if(closedir(dir) == -1) + printf("[CScreenSaver] Error no closed %s\n", dir_name); + + if(!v_bg_files.empty()) + ret = true; + else + printf("[CScreenSaver] no picture found\n"); + + return ret; +} + + +void CScreenSaver::PaintPicture() +{ + if(v_bg_files.empty()) + return; + + if( (index >= v_bg_files.size()) || (access(v_bg_files.at(index).c_str(), F_OK)) ) + { + ReadDir(); + index = 0; + return; + } + + printf("[CScreenSaver] ShowPicture: %s\n", v_bg_files.at(index).c_str()); + videoDecoder->StopPicture(); + videoDecoder->ShowPicture(v_bg_files.at(index).c_str()); + index++; + + if(index == v_bg_files.size()) + index = 0; +} diff --git a/src/gui/screensaver.h b/src/gui/screensaver.h new file mode 100644 index 000000000..87c0ec02c --- /dev/null +++ b/src/gui/screensaver.h @@ -0,0 +1,55 @@ +/* + Neutrino-GUI - DBoxII-Project + + Copyright (C) 2001 Steffen Hehn 'McClean' + Homepage: http://dbox.cyberphoria.org/ + + Copyright (C) 2012-2013 defans@bluepeercrew.us + + License: GPL + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef __CSCREENSAVER_H__ +#define __CSCREENSAVER_H__ + +#include +#include +#include + +using namespace std; + +class CScreenSaver +{ + private: + CFrameBuffer *m_frameBuffer; + pthread_t thrScreenSaver; + static void* ScreenSaverPrg(void *arg); + vector v_bg_files; + unsigned int index; + + bool ReadDir(); + void PaintPicture(); + + public: + CScreenSaver(); + ~CScreenSaver(); + static CScreenSaver* getInstance(); + + void Start(); + void Stop(); +}; + +#endif // __CSCREENSAVER_H__ diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 5fde3e832..1040eb66f 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -496,6 +496,9 @@ int CNeutrinoApp::loadSetup(const char * fname) g_settings.subs_charset = configfile.getString("subs_charset", "CP1252"); g_settings.zap_cycle = configfile.getInt32( "zap_cycle", 0 ); + //screen saver + g_settings.screensaver_dir = configfile.getString("screensaver_dir", DATADIR "/neutrino/icons/"); + //vcr g_settings.vcr_AutoSwitch = configfile.getBool("vcr_AutoSwitch" , true ); @@ -1020,6 +1023,9 @@ void CNeutrinoApp::saveSetup(const char * fname) } configfile.setString("subs_charset", g_settings.subs_charset); + //screen saver + configfile.setString("screensaver_dir", g_settings.screensaver_dir); + //vcr configfile.setBool("vcr_AutoSwitch" , g_settings.vcr_AutoSwitch ); diff --git a/src/system/settings.h b/src/system/settings.h index 957ec06b6..5ce10bd09 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -206,6 +206,9 @@ struct SNeutrinoSettings int radiotext_enable; int easymenu; + //screen saver + std::string screensaver_dir; + //vcr int vcr_AutoSwitch; From 20e49a492ab22e79d86f5305a8e35a2dd52fcc61 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Wed, 24 Dec 2014 23:20:38 +0100 Subject: [PATCH 03/72] - screensaver: remove trailing slash from screensaver_dir --- src/gui/screensaver.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/gui/screensaver.cpp b/src/gui/screensaver.cpp index 12208cbb8..fe1a095a9 100644 --- a/src/gui/screensaver.cpp +++ b/src/gui/screensaver.cpp @@ -114,12 +114,21 @@ void* CScreenSaver::ScreenSaverPrg(void* arg) bool CScreenSaver::ReadDir() { - char* dir_name = (char *) g_settings.screensaver_dir.c_str(); + std::string d = g_settings.screensaver_dir; + if (d.length() > 1) + { + //remove trailing slash + std::string::iterator it = d.end() - 1; + if (*it == '/') + d.erase(it); + } + + char *dir_name = (char *) d.c_str(); struct dirent *dirpointer; DIR *dir; char curr_ext[5]; int curr_lenght; - char* p; + char *p; bool ret = false; v_bg_files.clear(); From 4cf5e8ffd1a411e18385e50ee45fb609030fa2bb Mon Sep 17 00:00:00 2001 From: vanhofen Date: Wed, 24 Dec 2014 23:21:57 +0100 Subject: [PATCH 04/72] - screensaver: just add mp3-?.jpg when using DATADIR "/neutrino/icons" ... ... to get the same behavior as usual --- src/gui/screensaver.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/gui/screensaver.cpp b/src/gui/screensaver.cpp index fe1a095a9..3f30fe24a 100644 --- a/src/gui/screensaver.cpp +++ b/src/gui/screensaver.cpp @@ -161,6 +161,18 @@ bool CScreenSaver::ReadDir() str += "/"; str += (*dirpointer).d_name; + + if ((std::string) dir_name == DATADIR "/neutrino/icons") + { + /* + backward compatiblity: + just add the standard mp3-?.jpg pictures + to get the same behavior as usual + */ + if (str.find("/mp3-") == string::npos) + continue; + } + v_bg_files.push_back(str); } } From ecc98b7defff72a4220c7767aa862260f396aa39 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Wed, 24 Dec 2014 23:24:11 +0100 Subject: [PATCH 05/72] - screensaver: user pictureviewer instead of videoDecoder ... ... to avoid interrupts while playing and keep pictures unscaled --- src/gui/screensaver.cpp | 28 +++++++++++++++++++++------- src/gui/screensaver.h | 1 + 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/gui/screensaver.cpp b/src/gui/screensaver.cpp index 3f30fe24a..46ff63f1e 100644 --- a/src/gui/screensaver.cpp +++ b/src/gui/screensaver.cpp @@ -45,6 +45,7 @@ CScreenSaver::CScreenSaver() { thrScreenSaver = 0; m_frameBuffer = CFrameBuffer::getInstance(); + m_viewer = new CPictureViewer(); index = 0; } @@ -53,6 +54,8 @@ CScreenSaver::~CScreenSaver() if(thrScreenSaver) pthread_cancel(thrScreenSaver); thrScreenSaver = 0; + + delete m_viewer; } @@ -70,6 +73,18 @@ void CScreenSaver::Start() { CAudioMute::getInstance()->enableMuteIcon(false); + m_viewer->SetScaling((CPictureViewer::ScalingMode)g_settings.picviewer_scaling); + m_viewer->SetVisible(g_settings.screen_StartX, g_settings.screen_EndX, g_settings.screen_StartY, g_settings.screen_EndY); + + if (g_settings.video_Format == 3) + m_viewer->SetAspectRatio(16.0/9); + else + m_viewer->SetAspectRatio(4.0/3); + + m_viewer->Cleanup(); + + videoDecoder->StopPicture(); + if(!thrScreenSaver) { //printf("[%s] %s: starting thread\n", __FILE__, __FUNCTION__); @@ -91,6 +106,7 @@ void CScreenSaver::Stop() pthread_cancel(thrScreenSaver); thrScreenSaver = 0; + m_frameBuffer->paintBackground(); //clear entire screen CAudioMute::getInstance()->enableMuteIcon(true); } @@ -144,15 +160,14 @@ bool CScreenSaver::ReadDir() { curr_lenght = strlen((*dirpointer).d_name); string str = dir_name; -// printf("%d\n",curr_lenght); + //printf("%d\n",curr_lenght); if(curr_lenght > 4) { strncpy(curr_ext,(*dirpointer).d_name+(curr_lenght-4),5); for (p = curr_ext; *p; ++p) *p = (char)tolower(*p); -// printf("%s\n",curr_ext); - + //printf("%s\n",curr_ext); if((strcmp(".jpg",curr_ext)) //|| (strcmp(".png",curr_ext)) //|| (strcmp(".bmp",curr_ext)) @@ -204,11 +219,10 @@ void CScreenSaver::PaintPicture() return; } - printf("[CScreenSaver] ShowPicture: %s\n", v_bg_files.at(index).c_str()); - videoDecoder->StopPicture(); - videoDecoder->ShowPicture(v_bg_files.at(index).c_str()); - index++; + printf("[CScreenSaver] PaintPicture: %s\n", v_bg_files.at(index).c_str()); + m_viewer->ShowImage(v_bg_files.at(index).c_str(), false /*unscaled*/); + index++; if(index == v_bg_files.size()) index = 0; } diff --git a/src/gui/screensaver.h b/src/gui/screensaver.h index 87c0ec02c..aadfaeb51 100644 --- a/src/gui/screensaver.h +++ b/src/gui/screensaver.h @@ -39,6 +39,7 @@ class CScreenSaver static void* ScreenSaverPrg(void *arg); vector v_bg_files; unsigned int index; + CPictureViewer *m_viewer; bool ReadDir(); void PaintPicture(); From cbed13ecd056fc6f371573635417ae8309286f98 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 25 Dec 2014 00:14:19 +0100 Subject: [PATCH 06/72] - screensaver: add GUI option to change screensaver directory --- data/locale/deutsch.locale | 2 ++ data/locale/english.locale | 2 ++ src/gui/osd_setup.cpp | 12 ++++++++++++ src/system/locals.h | 2 ++ src/system/locals_intern.h | 2 ++ 5 files changed, 20 insertions(+) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 4ee859428..e972592df 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1286,6 +1286,7 @@ menu.hint_scan_usalsall Verwenden Sie USALS für alle Satelliten an diesem Tuner menu.hint_scan_useusals Verwenden Sie USALS für diesen Satelliten,\nwenn aktiv, wird Rotorposition ignoriert menu.hint_scrambled_message Bei aktivierter Option erscheint eine Meldung, wenn ein verschlüsselter Sender nicht entschlüsselt werden kann menu.hint_screen_setup Konfigurieren Sie den Bildschirmbereich für die Menüanzeige +menu.hint_screensaver_dir Wählen Sie das Verzeichnis, in dem die Bilder für Ihren Bildschirmschoner gespeichert sind menu.hint_screenshot_count Wählen Sie, wie viele Screenshots erstellt werden sollen menu.hint_screenshot_cover Während der Wiedergabe von Aufnahmen kann ein Screenshot für die Vorschau im Moviebrowser erstellt werden menu.hint_screenshot_dir Wählen Sie das Verzeichnis zum Speichern der Screenshots @@ -2051,6 +2052,7 @@ scants.startnow Kanalsuche starten scants.test Empfangstest scants.transponders Transponder: scrambled_channel Verschlüsselung aktiv +screensaver.dir Bildschirmschoner-Verzeichnis screensetup.lowerright grün = Bildrand unten, rechts screensetup.upperleft rot = Bildrand oben, links screenshot.count Anzahl diff --git a/data/locale/english.locale b/data/locale/english.locale index ed8961ab4..abfc22819 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1290,6 +1290,7 @@ menu.hint_scan_usalsall Use USALS for all satellites on this frontend menu.hint_scan_useusals Use USALS for this satellite,\nif ON, rotor position ignored menu.hint_scrambled_message Show scrambled message, when channel cannot be decoded menu.hint_screen_setup Configure screen margins +menu.hint_screensaver_dir Select directory in which the screensaver has to start. menu.hint_screenshot_count When no GUI on screen, you can save 1-5\nscreenshot serie menu.hint_screenshot_cover ON: When playing record, overwrite single\nscreenshot to show inside MovieBrowser menu.hint_screenshot_dir Select directory to save screenshots @@ -2056,6 +2057,7 @@ scants.startnow start scan scants.test Test signal scants.transponders Transponders: scrambled_channel Scrambled channel +screensaver.dir Screensaver directory screensetup.lowerright green = setup lower right screensetup.upperleft red = setup upper left screenshot.count Count diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index b4a97f363..a49c46f2b 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -322,6 +322,11 @@ int COsdSetup::exec(CMenuTarget* parent, const std::string &actionKey) chooserDir(g_settings.screenshot_dir, true, action_str); return res; } + else if(actionKey=="screensaver_dir") { + const char *action_str = "screensaver"; + chooserDir(g_settings.screensaver_dir, false, action_str); + return res; + } else if(strncmp(actionKey.c_str(), "fontsize.d", 10) == 0) { for (int i = 0; i < FONT_GROUP_COUNT; i++) { if (actionKey == font_sizes_groups[i].actionkey) { @@ -607,6 +612,13 @@ int COsdSetup::showOsdSetup() mc->setHint("", LOCALE_MENU_HINT_SUBCHANNEL_POS); osd_menu->addItem(mc); + osd_menu->addItem(GenericMenuSeparatorLine); + + // screensaver_dir + mf = new CMenuForwarder(LOCALE_SCREENSAVER_DIR, true, g_settings.screensaver_dir, this, "screensaver_dir"); + mf->setHint("", LOCALE_MENU_HINT_SCREENSAVER_DIR); + osd_menu->addItem(mf); + int oldVolumeSize = g_settings.volume_size; int oldInfoClockSize = g_settings.infoClockFontSize; diff --git a/src/system/locals.h b/src/system/locals.h index 699b40583..336cefa5b 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1317,6 +1317,7 @@ typedef enum LOCALE_MENU_HINT_SCAN_USEUSALS, LOCALE_MENU_HINT_SCRAMBLED_MESSAGE, LOCALE_MENU_HINT_SCREEN_SETUP, + LOCALE_MENU_HINT_SCREENSAVER_DIR, LOCALE_MENU_HINT_SCREENSHOT_COUNT, LOCALE_MENU_HINT_SCREENSHOT_COVER, LOCALE_MENU_HINT_SCREENSHOT_DIR, @@ -2083,6 +2084,7 @@ typedef enum LOCALE_SCANTS_TEST, LOCALE_SCANTS_TRANSPONDERS, LOCALE_SCRAMBLED_CHANNEL, + LOCALE_SCREENSAVER_DIR, LOCALE_SCREENSETUP_LOWERRIGHT, LOCALE_SCREENSETUP_UPPERLEFT, LOCALE_SCREENSHOT_COUNT, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index baa00f4a2..916fd5811 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1317,6 +1317,7 @@ const char * locale_real_names[] = "menu.hint_scan_useusals", "menu.hint_scrambled_message", "menu.hint_screen_setup", + "menu.hint_screensaver_dir", "menu.hint_screenshot_count", "menu.hint_screenshot_cover", "menu.hint_screenshot_dir", @@ -2083,6 +2084,7 @@ const char * locale_real_names[] = "scants.test", "scants.transponders", "scrambled_channel", + "screensaver.dir", "screensetup.lowerright", "screensetup.upperleft", "screenshot.count", From 153e7dba912ffc89cfa42a7f8eedcf2eeb99a44f Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 29 Dec 2014 21:09:24 +0100 Subject: [PATCH 07/72] - screensaver: add GUI option to change timeout --- data/locale/deutsch.locale | 2 ++ data/locale/english.locale | 2 ++ src/gui/osd_setup.cpp | 6 ++++++ src/gui/screensaver.cpp | 2 +- src/neutrino.cpp | 2 ++ src/system/locals.h | 2 ++ src/system/locals_intern.h | 2 ++ src/system/settings.h | 1 + 8 files changed, 18 insertions(+), 1 deletion(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index e972592df..3edfe1959 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1287,6 +1287,7 @@ menu.hint_scan_useusals Verwenden Sie USALS für diesen Satelliten,\nwenn aktiv, menu.hint_scrambled_message Bei aktivierter Option erscheint eine Meldung, wenn ein verschlüsselter Sender nicht entschlüsselt werden kann menu.hint_screen_setup Konfigurieren Sie den Bildschirmbereich für die Menüanzeige menu.hint_screensaver_dir Wählen Sie das Verzeichnis, in dem die Bilder für Ihren Bildschirmschoner gespeichert sind +menu.hint_screensaver_timeout Wählen Sie Die Wartezeit bis zum Bilderwechsel des Bildschirmschoners menu.hint_screenshot_count Wählen Sie, wie viele Screenshots erstellt werden sollen menu.hint_screenshot_cover Während der Wiedergabe von Aufnahmen kann ein Screenshot für die Vorschau im Moviebrowser erstellt werden menu.hint_screenshot_dir Wählen Sie das Verzeichnis zum Speichern der Screenshots @@ -2053,6 +2054,7 @@ scants.test Empfangstest scants.transponders Transponder: scrambled_channel Verschlüsselung aktiv screensaver.dir Bildschirmschoner-Verzeichnis +screensaver.timeout Bildschirmschoner-Wartezeit screensetup.lowerright grün = Bildrand unten, rechts screensetup.upperleft rot = Bildrand oben, links screenshot.count Anzahl diff --git a/data/locale/english.locale b/data/locale/english.locale index abfc22819..6185fb62d 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1291,6 +1291,7 @@ menu.hint_scan_useusals Use USALS for this satellite,\nif ON, rotor position ign menu.hint_scrambled_message Show scrambled message, when channel cannot be decoded menu.hint_screen_setup Configure screen margins menu.hint_screensaver_dir Select directory in which the screensaver has to start. +menu.hint_screensaver_timeout Select the timeout to change pictures in screensavers menu.hint_screenshot_count When no GUI on screen, you can save 1-5\nscreenshot serie menu.hint_screenshot_cover ON: When playing record, overwrite single\nscreenshot to show inside MovieBrowser menu.hint_screenshot_dir Select directory to save screenshots @@ -2058,6 +2059,7 @@ scants.test Test signal scants.transponders Transponders: scrambled_channel Scrambled channel screensaver.dir Screensaver directory +screensaver.timeout Screensaver timeout screensetup.lowerright green = setup lower right screensetup.upperleft red = setup upper left screenshot.count Count diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index a49c46f2b..76bede0e2 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -619,6 +619,12 @@ int COsdSetup::showOsdSetup() mf->setHint("", LOCALE_MENU_HINT_SCREENSAVER_DIR); osd_menu->addItem(mf); + // screensaver timeout + CMenuOptionNumberChooser* nc = new CMenuOptionNumberChooser(LOCALE_SCREENSAVER_TIMEOUT, &g_settings.screensaver_timeout, true, 10, 60); + nc->setNumberFormat(std::string("%d ") + g_Locale->getText(LOCALE_UNIT_SHORT_SECOND)); + nc->setHint("", LOCALE_MENU_HINT_SCREENSAVER_TIMEOUT); + osd_menu->addItem(nc); + int oldVolumeSize = g_settings.volume_size; int oldInfoClockSize = g_settings.infoClockFontSize; diff --git a/src/gui/screensaver.cpp b/src/gui/screensaver.cpp index 46ff63f1e..ddc51feb7 100644 --- a/src/gui/screensaver.cpp +++ b/src/gui/screensaver.cpp @@ -123,7 +123,7 @@ void* CScreenSaver::ScreenSaverPrg(void* arg) while(1) { PScreenSaver->PaintPicture(); - sleep(10); + sleep(g_settings.screensaver_timeout); } return 0; } diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 1040eb66f..c81abeb92 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -498,6 +498,7 @@ int CNeutrinoApp::loadSetup(const char * fname) //screen saver g_settings.screensaver_dir = configfile.getString("screensaver_dir", DATADIR "/neutrino/icons/"); + g_settings.screensaver_timeout = configfile.getInt32("screensaver_timeout", 10); //vcr g_settings.vcr_AutoSwitch = configfile.getBool("vcr_AutoSwitch" , true ); @@ -1025,6 +1026,7 @@ void CNeutrinoApp::saveSetup(const char * fname) //screen saver configfile.setString("screensaver_dir", g_settings.screensaver_dir); + configfile.setInt32("screensaver_timeout", g_settings.screensaver_timeout); //vcr configfile.setBool("vcr_AutoSwitch" , g_settings.vcr_AutoSwitch ); diff --git a/src/system/locals.h b/src/system/locals.h index 336cefa5b..bf4383761 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1318,6 +1318,7 @@ typedef enum LOCALE_MENU_HINT_SCRAMBLED_MESSAGE, LOCALE_MENU_HINT_SCREEN_SETUP, LOCALE_MENU_HINT_SCREENSAVER_DIR, + LOCALE_MENU_HINT_SCREENSAVER_TIMEOUT, LOCALE_MENU_HINT_SCREENSHOT_COUNT, LOCALE_MENU_HINT_SCREENSHOT_COVER, LOCALE_MENU_HINT_SCREENSHOT_DIR, @@ -2085,6 +2086,7 @@ typedef enum LOCALE_SCANTS_TRANSPONDERS, LOCALE_SCRAMBLED_CHANNEL, LOCALE_SCREENSAVER_DIR, + LOCALE_SCREENSAVER_TIMEOUT, LOCALE_SCREENSETUP_LOWERRIGHT, LOCALE_SCREENSETUP_UPPERLEFT, LOCALE_SCREENSHOT_COUNT, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 916fd5811..1e0179675 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1318,6 +1318,7 @@ const char * locale_real_names[] = "menu.hint_scrambled_message", "menu.hint_screen_setup", "menu.hint_screensaver_dir", + "menu.hint_screensaver_timeout", "menu.hint_screenshot_count", "menu.hint_screenshot_cover", "menu.hint_screenshot_dir", @@ -2085,6 +2086,7 @@ const char * locale_real_names[] = "scants.transponders", "scrambled_channel", "screensaver.dir", + "screensaver.timeout", "screensetup.lowerright", "screensetup.upperleft", "screenshot.count", diff --git a/src/system/settings.h b/src/system/settings.h index 5ce10bd09..7a9a9c65c 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -208,6 +208,7 @@ struct SNeutrinoSettings //screen saver std::string screensaver_dir; + int screensaver_timeout; //vcr int vcr_AutoSwitch; From 3206e35e20fd89a977db8a2a737eb9f91e22c252 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 25 Dec 2014 21:12:35 +0100 Subject: [PATCH 08/72] - screensaver: move configuration to own submenu --- data/locale/deutsch.locale | 6 ++++-- data/locale/english.locale | 6 ++++-- src/gui/osd_setup.cpp | 36 +++++++++++++++++++++++------------- src/gui/osd_setup.h | 1 + src/neutrino_menue.h | 1 + src/system/locals.h | 2 ++ src/system/locals_intern.h | 2 ++ 7 files changed, 37 insertions(+), 17 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 3edfe1959..1617db0ac 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1288,6 +1288,7 @@ menu.hint_scrambled_message Bei aktivierter Option erscheint eine Meldung, wenn menu.hint_screen_setup Konfigurieren Sie den Bildschirmbereich für die Menüanzeige menu.hint_screensaver_dir Wählen Sie das Verzeichnis, in dem die Bilder für Ihren Bildschirmschoner gespeichert sind menu.hint_screensaver_timeout Wählen Sie Die Wartezeit bis zum Bilderwechsel des Bildschirmschoners +menu.hint_screensaver_setup Konfigurieren Sie die Optionen des Bildschirmschoners für den Audioplayer menu.hint_screenshot_count Wählen Sie, wie viele Screenshots erstellt werden sollen menu.hint_screenshot_cover Während der Wiedergabe von Aufnahmen kann ein Screenshot für die Vorschau im Moviebrowser erstellt werden menu.hint_screenshot_dir Wählen Sie das Verzeichnis zum Speichern der Screenshots @@ -2053,8 +2054,9 @@ scants.startnow Kanalsuche starten scants.test Empfangstest scants.transponders Transponder: scrambled_channel Verschlüsselung aktiv -screensaver.dir Bildschirmschoner-Verzeichnis -screensaver.timeout Bildschirmschoner-Wartezeit +screensaver.dir Verzeichnis +screensaver.timeout Wartezeit +screensaver.setup Bildschirmschoner screensetup.lowerright grün = Bildrand unten, rechts screensetup.upperleft rot = Bildrand oben, links screenshot.count Anzahl diff --git a/data/locale/english.locale b/data/locale/english.locale index 6185fb62d..e18efb5ee 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1292,6 +1292,7 @@ menu.hint_scrambled_message Show scrambled message, when channel cannot be decod menu.hint_screen_setup Configure screen margins menu.hint_screensaver_dir Select directory in which the screensaver has to start. menu.hint_screensaver_timeout Select the timeout to change pictures in screensavers +menu.hint_screensaver_setup Configure screensaver options for audioplayer menu.hint_screenshot_count When no GUI on screen, you can save 1-5\nscreenshot serie menu.hint_screenshot_cover ON: When playing record, overwrite single\nscreenshot to show inside MovieBrowser menu.hint_screenshot_dir Select directory to save screenshots @@ -2058,8 +2059,9 @@ scants.startnow start scan scants.test Test signal scants.transponders Transponders: scrambled_channel Scrambled channel -screensaver.dir Screensaver directory -screensaver.timeout Screensaver timeout +screensaver.dir Directory +screensaver.menu Screensaver +screensaver.timeout Timeout screensetup.lowerright green = setup lower right screensetup.upperleft red = setup upper left screenshot.count Count diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 76bede0e2..5520f6b9d 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -570,6 +570,13 @@ int COsdSetup::showOsdSetup() mf->setHint("", LOCALE_MENU_HINT_SCREENSHOT_SETUP); osd_menu->addItem(mf); + //screensaver + CMenuWidget osd_menu_screensaver(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_OSDSETUP_SCREENSAVER); + showOsdScreensaverSetup(&osd_menu_screensaver); + mf = new CMenuForwarder(LOCALE_SCREENSAVER_MENU, true, NULL, &osd_menu_screensaver, NULL, CRCInput::convertDigitToKey(shortcut++)); + mf->setHint("", LOCALE_MENU_HINT_SCREENSAVER_SETUP); + osd_menu->addItem(mf); + osd_menu->addItem(GenericMenuSeparatorLine); //monitor @@ -612,19 +619,6 @@ int COsdSetup::showOsdSetup() mc->setHint("", LOCALE_MENU_HINT_SUBCHANNEL_POS); osd_menu->addItem(mc); - osd_menu->addItem(GenericMenuSeparatorLine); - - // screensaver_dir - mf = new CMenuForwarder(LOCALE_SCREENSAVER_DIR, true, g_settings.screensaver_dir, this, "screensaver_dir"); - mf->setHint("", LOCALE_MENU_HINT_SCREENSAVER_DIR); - osd_menu->addItem(mf); - - // screensaver timeout - CMenuOptionNumberChooser* nc = new CMenuOptionNumberChooser(LOCALE_SCREENSAVER_TIMEOUT, &g_settings.screensaver_timeout, true, 10, 60); - nc->setNumberFormat(std::string("%d ") + g_Locale->getText(LOCALE_UNIT_SHORT_SECOND)); - nc->setHint("", LOCALE_MENU_HINT_SCREENSAVER_TIMEOUT); - osd_menu->addItem(nc); - int oldVolumeSize = g_settings.volume_size; int oldInfoClockSize = g_settings.infoClockFontSize; @@ -1268,6 +1262,22 @@ void COsdSetup::showOsdScreenShotSetup(CMenuWidget *menu_screenshot) menu_screenshot->addItem(mc); } +void COsdSetup::showOsdScreensaverSetup(CMenuWidget *menu_screensaver) +{ + menu_screensaver->addIntroItems(LOCALE_SCREENSAVER_MENU); + + // screensaver_dir + CMenuForwarder *mf = new CMenuForwarder(LOCALE_SCREENSAVER_DIR, true, g_settings.screensaver_dir, this, "screensaver_dir"); + mf->setHint("", LOCALE_MENU_HINT_SCREENSAVER_DIR); + menu_screensaver->addItem(mf); + + // screensaver timeout + CMenuOptionNumberChooser* nc = new CMenuOptionNumberChooser(LOCALE_SCREENSAVER_TIMEOUT, &g_settings.screensaver_timeout, true, 10, 60); + nc->setNumberFormat(std::string("%d ") + g_Locale->getText(LOCALE_UNIT_SHORT_SECOND)); + nc->setHint("", LOCALE_MENU_HINT_SCREENSAVER_TIMEOUT); + menu_screensaver->addItem(nc); +} + void COsdSetup::paintWindowSize(int w, int h) { if (win_demo == NULL) { diff --git a/src/gui/osd_setup.h b/src/gui/osd_setup.h index be227c04e..85344c5b4 100644 --- a/src/gui/osd_setup.h +++ b/src/gui/osd_setup.h @@ -71,6 +71,7 @@ class COsdSetup : public CMenuTarget, public CChangeObserver void showOsdVolumeSetup(CMenuWidget *menu_volume); void showOsdInfoclockSetup(CMenuWidget *menu_infoclock); void showOsdScreenShotSetup(CMenuWidget *menu_screenshot); + void showOsdScreensaverSetup(CMenuWidget *menu_screensaver); void paintWindowSize(int w, int h); void AddFontSettingItem(CMenuWidget &font_Settings, const SNeutrinoSettings::FONT_TYPES number_of_fontsize_entry); diff --git a/src/neutrino_menue.h b/src/neutrino_menue.h index e8e49fc1f..cb261abab 100644 --- a/src/neutrino_menue.h +++ b/src/neutrino_menue.h @@ -63,6 +63,7 @@ enum MN_WIDGET_ID MN_WIDGET_ID_OSDSETUP_MENUCOLORS, MN_WIDGET_ID_OSDSETUP_TIMEOUT, MN_WIDGET_ID_OSDSETUP_SCREENSHOT, + MN_WIDGET_ID_OSDSETUP_SCREENSAVER, MN_WIDGET_ID_OSDSETUP_VOLUME, MN_WIDGET_ID_OSDSETUP_INFOCLOCK, MN_WIDGET_ID_OSDSETUP_PROGRESSBAR, diff --git a/src/system/locals.h b/src/system/locals.h index bf4383761..d428502dc 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1319,6 +1319,7 @@ typedef enum LOCALE_MENU_HINT_SCREEN_SETUP, LOCALE_MENU_HINT_SCREENSAVER_DIR, LOCALE_MENU_HINT_SCREENSAVER_TIMEOUT, + LOCALE_MENU_HINT_SCREENSAVER_SETUP, LOCALE_MENU_HINT_SCREENSHOT_COUNT, LOCALE_MENU_HINT_SCREENSHOT_COVER, LOCALE_MENU_HINT_SCREENSHOT_DIR, @@ -2086,6 +2087,7 @@ typedef enum LOCALE_SCANTS_TRANSPONDERS, LOCALE_SCRAMBLED_CHANNEL, LOCALE_SCREENSAVER_DIR, + LOCALE_SCREENSAVER_MENU, LOCALE_SCREENSAVER_TIMEOUT, LOCALE_SCREENSETUP_LOWERRIGHT, LOCALE_SCREENSETUP_UPPERLEFT, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 1e0179675..d41f442f0 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1319,6 +1319,7 @@ const char * locale_real_names[] = "menu.hint_screen_setup", "menu.hint_screensaver_dir", "menu.hint_screensaver_timeout", + "menu.hint_screensaver_setup", "menu.hint_screenshot_count", "menu.hint_screenshot_cover", "menu.hint_screenshot_dir", @@ -2086,6 +2087,7 @@ const char * locale_real_names[] = "scants.transponders", "scrambled_channel", "screensaver.dir", + "screensaver.menu", "screensaver.timeout", "screensetup.lowerright", "screensetup.upperleft", From e96a0f9c175c6455f5f373aef98e9cd1515b3856 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Thu, 25 Dec 2014 21:24:18 +0100 Subject: [PATCH 09/72] - screensaver: small changes in locales --- data/locale/deutsch.locale | 2 +- data/locale/english.locale | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 1617db0ac..b417ff612 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -2055,7 +2055,7 @@ scants.test Empfangstest scants.transponders Transponder: scrambled_channel Verschlüsselung aktiv screensaver.dir Verzeichnis -screensaver.timeout Wartezeit +screensaver.timeout Bilderwechsel screensaver.setup Bildschirmschoner screensetup.lowerright grün = Bildrand unten, rechts screensetup.upperleft rot = Bildrand oben, links diff --git a/data/locale/english.locale b/data/locale/english.locale index e18efb5ee..a6e831ee8 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -2061,7 +2061,7 @@ scants.transponders Transponders: scrambled_channel Scrambled channel screensaver.dir Directory screensaver.menu Screensaver -screensaver.timeout Timeout +screensaver.timeout Change pictures screensetup.lowerright green = setup lower right screensetup.upperleft red = setup upper left screenshot.count Count From 5f4284516016c118e6031bfd255c80c6deee3f3d Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 28 Dec 2014 21:55:32 +0100 Subject: [PATCH 10/72] - screensaver: moving "using namespace std;" to cpp ... ... to avoid the inheritance of this --- src/gui/screensaver.cpp | 9 +++++---- src/gui/screensaver.h | 2 -- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/gui/screensaver.cpp b/src/gui/screensaver.cpp index ddc51feb7..ebc3827d5 100644 --- a/src/gui/screensaver.cpp +++ b/src/gui/screensaver.cpp @@ -32,7 +32,7 @@ #include #include #include -#include // std::sort +#include // sort #include #include "audiomute.h" #include "screensaver.h" @@ -40,6 +40,7 @@ #include extern cVideo * videoDecoder; +using namespace std; CScreenSaver::CScreenSaver() { @@ -130,11 +131,11 @@ void* CScreenSaver::ScreenSaverPrg(void* arg) bool CScreenSaver::ReadDir() { - std::string d = g_settings.screensaver_dir; + string d = g_settings.screensaver_dir; if (d.length() > 1) { //remove trailing slash - std::string::iterator it = d.end() - 1; + string::iterator it = d.end() - 1; if (*it == '/') d.erase(it); } @@ -177,7 +178,7 @@ bool CScreenSaver::ReadDir() str += "/"; str += (*dirpointer).d_name; - if ((std::string) dir_name == DATADIR "/neutrino/icons") + if ((string) dir_name == DATADIR "/neutrino/icons") { /* backward compatiblity: diff --git a/src/gui/screensaver.h b/src/gui/screensaver.h index aadfaeb51..964c6785b 100644 --- a/src/gui/screensaver.h +++ b/src/gui/screensaver.h @@ -29,8 +29,6 @@ #include #include -using namespace std; - class CScreenSaver { private: From dec7d42ffebf3668f00c8af7124c3b8baa470dd4 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 29 Dec 2014 21:27:44 +0100 Subject: [PATCH 11/72] - audioplayer: move videodecoder/pain away from screensaver() function --- src/gui/audioplayer.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index 08cefc6ca..f2bdb1547 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -384,6 +384,11 @@ int CAudioPlayerGui::show() if (m_screensaver) { screensaver(false); + + videoDecoder->StopPicture(); + videoDecoder->ShowPicture(DATADIR "/neutrino/icons/mp3.jpg"); + paint(); + if (msg <= CRCInput::RC_MaxRC) { // ignore first keypress - just quit the screensaver g_RCInput->clearRCMsg(); @@ -706,11 +711,11 @@ int CAudioPlayerGui::show() picture->exec(this, "audio"); delete picture; pictureviewer = false; + screensaver(false); videoDecoder->setBlank(true); videoDecoder->ShowPicture(DATADIR "/neutrino/icons/mp3.jpg"); CVFD::getInstance()->setMode(CVFD::MODE_AUDIO); paintLCD(); - screensaver(false); } else if (msg == CRCInput::RC_help) { @@ -2212,9 +2217,6 @@ void CAudioPlayerGui::screensaver(bool on) { CScreenSaver::getInstance()->Stop(); m_screensaver = false; - videoDecoder->StopPicture(); - videoDecoder->ShowPicture(DATADIR "/neutrino/icons/mp3.jpg"); - paint(); m_idletime = time(NULL); } } From f023ff1651e055feb481d84ee2fe9bd2d5cc49de Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 29 Dec 2014 21:33:23 +0100 Subject: [PATCH 12/72] - audioplayer: remove bool screen_saver from updateMetaData() ... ... using member m_screensaver instead of this --- src/gui/audioplayer.cpp | 10 +++++----- src/gui/audioplayer.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index f2bdb1547..a77bce07d 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -343,7 +343,7 @@ int CAudioPlayerGui::show() while (loop) { - updateMetaData(m_screensaver); + updateMetaData(); updateTimes(); @@ -2026,7 +2026,7 @@ int CAudioPlayerGui::getNext() return ret; } -void CAudioPlayerGui::updateMetaData(bool screen_saver) +void CAudioPlayerGui::updateMetaData() { bool updateMeta = false; bool updateLcd = false; @@ -2056,13 +2056,13 @@ void CAudioPlayerGui::updateMetaData(bool screen_saver) info << " / " << meta.samplerate/1000 << "." << (meta.samplerate/100)%10 <<"kHz"; m_metainfo = meta.type_info + info.str(); - updateMeta = !screen_saver; + updateMeta = !m_screensaver; if (!meta.artist.empty() && meta.artist != m_curr_audiofile.MetaData.artist) { m_curr_audiofile.MetaData.artist = meta.artist; - if ( !screen_saver) + if (!m_screensaver) updateScreen = true; updateLcd = true; } @@ -2071,7 +2071,7 @@ void CAudioPlayerGui::updateMetaData(bool screen_saver) { m_curr_audiofile.MetaData.title = meta.title; - if ( !screen_saver) + if (!m_screensaver) updateScreen = true; updateLcd = true; } diff --git a/src/gui/audioplayer.h b/src/gui/audioplayer.h index 073bf7b65..f41dc98c2 100644 --- a/src/gui/audioplayer.h +++ b/src/gui/audioplayer.h @@ -163,7 +163,7 @@ class CAudioPlayerGui : public CMenuTarget void rev(unsigned int seconds=0); int getNext(); void GetMetaData(CAudiofileExt &File); - void updateMetaData(bool screen_saver = false); + void updateMetaData(); void updateTimes(const bool force = false); void showMetaData(); void screensaver(bool on); From 9d34d4ba978e13f039192679096fa4a7bb3d22ce Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 29 Dec 2014 21:35:50 +0100 Subject: [PATCH 13/72] - audioplayer: don't paint cover while screensaver --- src/gui/audioplayer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index a77bce07d..2339d49ff 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -2082,7 +2082,8 @@ void CAudioPlayerGui::updateMetaData() updateLcd = true; } - paintCover(); + if (!m_screensaver) + paintCover(); } if (CAudioPlayer::getInstance()->hasMetaDataChanged() != 0) updateLcd = true; From df18f1f4e56df7922660d91f0884f16f2dfde900 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 29 Dec 2014 21:53:50 +0100 Subject: [PATCH 14/72] - screensaver: remove audioplayer_screensaver; add screensaver_delay --- data/locale/deutsch.locale | 6 +++--- data/locale/english.locale | 6 +++--- src/gui/audioplayer.cpp | 6 +++--- src/gui/audioplayer_setup.cpp | 5 ----- src/gui/osd_setup.cpp | 8 +++++++- src/neutrino.cpp | 4 ++-- src/system/locals.h | 4 ++-- src/system/locals_intern.h | 4 ++-- src/system/settings.h | 2 +- 9 files changed, 23 insertions(+), 22 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index b417ff612..e9479fb6c 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -173,7 +173,6 @@ audioplayer.receiving_list Liste wird empfangen, bitte warten... audioplayer.repeat_on Repeatmodus aktivieren audioplayer.rewind schneller Rückl. audioplayer.save_playlist Playlist speichern -audioplayer.screensaver_timeout Bildschirmschoner audioplayer.select_title_by_name Titelsuche nach Name (SMS) audioplayer.show_playlist Playlist anzeigen audioplayer.shuffle Zufällig @@ -908,7 +907,6 @@ menu.hint_audioplayer_order Ändern der Sortierreihenfolge der Wiedergabeliste menu.hint_audioplayer_playlist Aktiviert die Anzeige der Titel in der Wiedergabeliste menu.hint_audioplayer_repeat Aktiviert das Wiederholen der Wiedergabeliste, wenn das Ende erreicht ist menu.hint_audioplayer_sc_metadata Aktiviert das Anzeigen der Audio-Metadaten -menu.hint_audioplayer_screensaver Aktiviert den Bildschirmschoner nach dieser Zeit (Minuten) menu.hint_audioplayer_title Aktivieren Sie die Titelsuche (SMS-Stil) in der Playliste menu.hint_auto_lang Wählen Sie, ob automatisch ihre bevorzugte Tonspur ausgewählt wird, wenn sie vorhanden ist menu.hint_auto_subs Automatische Anzeige der Untertitel in Ihrer bevorzugten Sprache @@ -1286,6 +1284,7 @@ menu.hint_scan_usalsall Verwenden Sie USALS für alle Satelliten an diesem Tuner menu.hint_scan_useusals Verwenden Sie USALS für diesen Satelliten,\nwenn aktiv, wird Rotorposition ignoriert menu.hint_scrambled_message Bei aktivierter Option erscheint eine Meldung, wenn ein verschlüsselter Sender nicht entschlüsselt werden kann menu.hint_screen_setup Konfigurieren Sie den Bildschirmbereich für die Menüanzeige +menu.hint_screensaver_delay Legen sie die Zeit (in Minuten) fest, nach der der Bildschirmschoner starten soll menu.hint_screensaver_dir Wählen Sie das Verzeichnis, in dem die Bilder für Ihren Bildschirmschoner gespeichert sind menu.hint_screensaver_timeout Wählen Sie Die Wartezeit bis zum Bilderwechsel des Bildschirmschoners menu.hint_screensaver_setup Konfigurieren Sie die Optionen des Bildschirmschoners für den Audioplayer @@ -2054,9 +2053,10 @@ scants.startnow Kanalsuche starten scants.test Empfangstest scants.transponders Transponder: scrambled_channel Verschlüsselung aktiv +screensaver.delay Verzögerung screensaver.dir Verzeichnis +screensaver.menu Bildschirmschoner screensaver.timeout Bilderwechsel -screensaver.setup Bildschirmschoner screensetup.lowerright grün = Bildrand unten, rechts screensetup.upperleft rot = Bildrand oben, links screenshot.count Anzahl diff --git a/data/locale/english.locale b/data/locale/english.locale index a6e831ee8..133758382 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -173,7 +173,6 @@ audioplayer.receiving_list Receiving list, please wait audioplayer.repeat_on enable repeat mode audioplayer.rewind rewind audioplayer.save_playlist save play list -audioplayer.screensaver_timeout screensaver timeout audioplayer.select_title_by_name search title by name (SMS) audioplayer.show_playlist Show Playlist audioplayer.shuffle shuffle @@ -911,7 +910,6 @@ menu.hint_audioplayer_order Change playlist sort order menu.hint_audioplayer_playlist Show playlist items menu.hint_audioplayer_repeat Enable playlist repeat when end of list reached menu.hint_audioplayer_sc_metadata Enable streaming audio metadata parsing -menu.hint_audioplayer_screensaver Set screensaver timeout, in minutes menu.hint_audioplayer_title Enable SMS-style title search in playlist menu.hint_auto_lang Auto-switch audio to preferred language menu.hint_auto_subs Auto-start subtitles for preferred language @@ -1290,7 +1288,8 @@ menu.hint_scan_usalsall Use USALS for all satellites on this frontend menu.hint_scan_useusals Use USALS for this satellite,\nif ON, rotor position ignored menu.hint_scrambled_message Show scrambled message, when channel cannot be decoded menu.hint_screen_setup Configure screen margins -menu.hint_screensaver_dir Select directory in which the screensaver has to start. +menu.hint_screensaver_delay Set the time (in minutes) after which the screensaver has to start +menu.hint_screensaver_dir Select directory in which the screensaver has to start menu.hint_screensaver_timeout Select the timeout to change pictures in screensavers menu.hint_screensaver_setup Configure screensaver options for audioplayer menu.hint_screenshot_count When no GUI on screen, you can save 1-5\nscreenshot serie @@ -2059,6 +2058,7 @@ scants.startnow start scan scants.test Test signal scants.transponders Transponders: scrambled_channel Scrambled channel +screensaver.delay Delay screensaver.dir Directory screensaver.menu Screensaver screensaver.timeout Change pictures diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index 2339d49ff..71dbc4307 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -373,9 +373,9 @@ int CAudioPlayerGui::show() if ( msg == CRCInput::RC_timeout || msg == NeutrinoMessages::EVT_TIMER) { - int timeout = time(NULL) - m_idletime; - int screensaver_timeout = g_settings.audioplayer_screensaver; - if (screensaver_timeout != 0 && timeout > screensaver_timeout*60 && !m_screensaver) + int delay = time(NULL) - m_idletime; + int screensaver_delay = g_settings.screensaver_delay; + if (screensaver_delay != 0 && delay > screensaver_delay*60 && !m_screensaver) screensaver(true); } else diff --git a/src/gui/audioplayer_setup.cpp b/src/gui/audioplayer_setup.cpp index b95433215..84fd29cf1 100644 --- a/src/gui/audioplayer_setup.cpp +++ b/src/gui/audioplayer_setup.cpp @@ -125,11 +125,6 @@ int CAudioPlayerSetup::showAudioPlayerSetup() mc->setHint("", LOCALE_MENU_HINT_AUDIOPLAYER_PLAYLIST); audioplayerSetup->addItem(mc); - CMenuOptionNumberChooser *cc = new CMenuOptionNumberChooser(LOCALE_AUDIOPLAYER_SCREENSAVER_TIMEOUT, &g_settings.audioplayer_screensaver, true, 0, 999, NULL, CRCInput::RC_nokey, NULL, 0, 0, LOCALE_OPTIONS_OFF); - cc->setNumberFormat(std::string("%d ") + g_Locale->getText(LOCALE_UNIT_SHORT_MINUTE)); - cc->setHint("", LOCALE_MENU_HINT_AUDIOPLAYER_SCREENSAVER); - audioplayerSetup->addItem(cc); - mc = new CMenuOptionChooser(LOCALE_AUDIOPLAYER_HIGHPRIO, &g_settings.audioplayer_highprio, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, true ); mc->setHint("", LOCALE_MENU_HINT_AUDIOPLAYER_HIGHPRIO); audioplayerSetup->addItem(mc); diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 5520f6b9d..89e8a1590 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -1271,8 +1271,14 @@ void COsdSetup::showOsdScreensaverSetup(CMenuWidget *menu_screensaver) mf->setHint("", LOCALE_MENU_HINT_SCREENSAVER_DIR); menu_screensaver->addItem(mf); + // screensaver delay + CMenuOptionNumberChooser* nc = new CMenuOptionNumberChooser(LOCALE_SCREENSAVER_DELAY, &g_settings.screensaver_delay, true, 0, 999, NULL, CRCInput::RC_nokey, NULL, 0, 0, LOCALE_OPTIONS_OFF); + nc->setNumberFormat(std::string("%d ") + g_Locale->getText(LOCALE_UNIT_SHORT_MINUTE)); + nc->setHint("", LOCALE_MENU_HINT_SCREENSAVER_DELAY); + menu_screensaver->addItem(nc); + // screensaver timeout - CMenuOptionNumberChooser* nc = new CMenuOptionNumberChooser(LOCALE_SCREENSAVER_TIMEOUT, &g_settings.screensaver_timeout, true, 10, 60); + nc = new CMenuOptionNumberChooser(LOCALE_SCREENSAVER_TIMEOUT, &g_settings.screensaver_timeout, true, 0, 60); nc->setNumberFormat(std::string("%d ") + g_Locale->getText(LOCALE_UNIT_SHORT_SECOND)); nc->setHint("", LOCALE_MENU_HINT_SCREENSAVER_TIMEOUT); menu_screensaver->addItem(nc); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index c81abeb92..df40f4add 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -497,6 +497,7 @@ int CNeutrinoApp::loadSetup(const char * fname) g_settings.zap_cycle = configfile.getInt32( "zap_cycle", 0 ); //screen saver + g_settings.screensaver_delay = configfile.getInt32("screensaver_delay", 1); g_settings.screensaver_dir = configfile.getString("screensaver_dir", DATADIR "/neutrino/icons/"); g_settings.screensaver_timeout = configfile.getInt32("screensaver_timeout", 10); @@ -778,7 +779,6 @@ int CNeutrinoApp::loadSetup(const char * fname) //Audio-Player g_settings.audioplayer_display = configfile.getInt32("audioplayer_display",(int)CAudioPlayerGui::ARTIST_TITLE); g_settings.audioplayer_follow = configfile.getInt32("audioplayer_follow",0); - g_settings.audioplayer_screensaver = configfile.getInt32("audioplayer_screensaver", 1); g_settings.audioplayer_highprio = configfile.getInt32("audioplayer_highprio",0); g_settings.audioplayer_select_title_by_name = configfile.getInt32("audioplayer_select_title_by_name",0); g_settings.audioplayer_repeat_on = configfile.getInt32("audioplayer_repeat_on",0); @@ -1025,6 +1025,7 @@ void CNeutrinoApp::saveSetup(const char * fname) configfile.setString("subs_charset", g_settings.subs_charset); //screen saver + configfile.setInt32("screensaver_delay", g_settings.screensaver_delay); configfile.setString("screensaver_dir", g_settings.screensaver_dir); configfile.setInt32("screensaver_timeout", g_settings.screensaver_timeout); @@ -1238,7 +1239,6 @@ void CNeutrinoApp::saveSetup(const char * fname) //Audio-Player configfile.setInt32( "audioplayer_display", g_settings.audioplayer_display ); configfile.setInt32( "audioplayer_follow", g_settings.audioplayer_follow ); - configfile.setInt32( "audioplayer_screensaver", g_settings.audioplayer_screensaver ); configfile.setInt32( "audioplayer_highprio", g_settings.audioplayer_highprio ); configfile.setInt32( "audioplayer_select_title_by_name", g_settings.audioplayer_select_title_by_name ); configfile.setInt32( "audioplayer_repeat_on", g_settings.audioplayer_repeat_on ); diff --git a/src/system/locals.h b/src/system/locals.h index d428502dc..6f59cf31e 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -200,7 +200,6 @@ typedef enum LOCALE_AUDIOPLAYER_REPEAT_ON, LOCALE_AUDIOPLAYER_REWIND, LOCALE_AUDIOPLAYER_SAVE_PLAYLIST, - LOCALE_AUDIOPLAYER_SCREENSAVER_TIMEOUT, LOCALE_AUDIOPLAYER_SELECT_TITLE_BY_NAME, LOCALE_AUDIOPLAYER_SHOW_PLAYLIST, LOCALE_AUDIOPLAYER_SHUFFLE, @@ -938,7 +937,6 @@ typedef enum LOCALE_MENU_HINT_AUDIOPLAYER_PLAYLIST, LOCALE_MENU_HINT_AUDIOPLAYER_REPEAT, LOCALE_MENU_HINT_AUDIOPLAYER_SC_METADATA, - LOCALE_MENU_HINT_AUDIOPLAYER_SCREENSAVER, LOCALE_MENU_HINT_AUDIOPLAYER_TITLE, LOCALE_MENU_HINT_AUTO_LANG, LOCALE_MENU_HINT_AUTO_SUBS, @@ -1317,6 +1315,7 @@ typedef enum LOCALE_MENU_HINT_SCAN_USEUSALS, LOCALE_MENU_HINT_SCRAMBLED_MESSAGE, LOCALE_MENU_HINT_SCREEN_SETUP, + LOCALE_MENU_HINT_SCREENSAVER_DELAY, LOCALE_MENU_HINT_SCREENSAVER_DIR, LOCALE_MENU_HINT_SCREENSAVER_TIMEOUT, LOCALE_MENU_HINT_SCREENSAVER_SETUP, @@ -2086,6 +2085,7 @@ typedef enum LOCALE_SCANTS_TEST, LOCALE_SCANTS_TRANSPONDERS, LOCALE_SCRAMBLED_CHANNEL, + LOCALE_SCREENSAVER_DELAY, LOCALE_SCREENSAVER_DIR, LOCALE_SCREENSAVER_MENU, LOCALE_SCREENSAVER_TIMEOUT, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index d41f442f0..278b738d5 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -200,7 +200,6 @@ const char * locale_real_names[] = "audioplayer.repeat_on", "audioplayer.rewind", "audioplayer.save_playlist", - "audioplayer.screensaver_timeout", "audioplayer.select_title_by_name", "audioplayer.show_playlist", "audioplayer.shuffle", @@ -938,7 +937,6 @@ const char * locale_real_names[] = "menu.hint_audioplayer_playlist", "menu.hint_audioplayer_repeat", "menu.hint_audioplayer_sc_metadata", - "menu.hint_audioplayer_screensaver", "menu.hint_audioplayer_title", "menu.hint_auto_lang", "menu.hint_auto_subs", @@ -1317,6 +1315,7 @@ const char * locale_real_names[] = "menu.hint_scan_useusals", "menu.hint_scrambled_message", "menu.hint_screen_setup", + "menu.hint_screensaver_delay", "menu.hint_screensaver_dir", "menu.hint_screensaver_timeout", "menu.hint_screensaver_setup", @@ -2086,6 +2085,7 @@ const char * locale_real_names[] = "scants.test", "scants.transponders", "scrambled_channel", + "screensaver.delay", "screensaver.dir", "screensaver.menu", "screensaver.timeout", diff --git a/src/system/settings.h b/src/system/settings.h index 7a9a9c65c..a4ee7196c 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -207,6 +207,7 @@ struct SNeutrinoSettings int easymenu; //screen saver + int screensaver_delay; std::string screensaver_dir; int screensaver_timeout; @@ -656,7 +657,6 @@ struct SNeutrinoSettings //audioplayer int audioplayer_display; int audioplayer_follow; - int audioplayer_screensaver; int audioplayer_highprio; int audioplayer_select_title_by_name; int audioplayer_repeat_on; From b85aa43d87ea0fa32364532592d05384bd27226e Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 29 Dec 2014 22:05:51 +0100 Subject: [PATCH 15/72] - screensaver: allow no screensaver_timeout to show first pic only Thats usefull when you have just one plain black pic in your screensaver directory. So you'll get a blank screen w/o pic changes. --- src/gui/osd_setup.cpp | 2 +- src/gui/screensaver.cpp | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 89e8a1590..0b0e83df4 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -1278,7 +1278,7 @@ void COsdSetup::showOsdScreensaverSetup(CMenuWidget *menu_screensaver) menu_screensaver->addItem(nc); // screensaver timeout - nc = new CMenuOptionNumberChooser(LOCALE_SCREENSAVER_TIMEOUT, &g_settings.screensaver_timeout, true, 0, 60); + nc = new CMenuOptionNumberChooser(LOCALE_SCREENSAVER_TIMEOUT, &g_settings.screensaver_timeout, true, 0, 60, NULL, CRCInput::RC_nokey, NULL, 0, 0, LOCALE_OPTIONS_OFF); nc->setNumberFormat(std::string("%d ") + g_Locale->getText(LOCALE_UNIT_SHORT_SECOND)); nc->setHint("", LOCALE_MENU_HINT_SCREENSAVER_TIMEOUT); menu_screensaver->addItem(nc); diff --git a/src/gui/screensaver.cpp b/src/gui/screensaver.cpp index ebc3827d5..e66dbfbca 100644 --- a/src/gui/screensaver.cpp +++ b/src/gui/screensaver.cpp @@ -121,11 +121,17 @@ void* CScreenSaver::ScreenSaverPrg(void* arg) PScreenSaver->ReadDir(); //TODO kill Screensaver if false PScreenSaver->m_frameBuffer->Clear(); - while(1) + if (g_settings.screensaver_timeout) { - PScreenSaver->PaintPicture(); - sleep(g_settings.screensaver_timeout); + while(1) + { + PScreenSaver->PaintPicture(); + sleep(g_settings.screensaver_timeout); + } } + else + PScreenSaver->PaintPicture(); //just paint first found picture + return 0; } From 4ab6098716652837d931fc34201c732c3afd5968 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 29 Dec 2014 21:59:13 +0100 Subject: [PATCH 16/72] - neutrino: add screensaver to radio-mode This commit maybe need some tests with radiotext and/or other timeouts --- data/locale/deutsch.locale | 2 +- data/locale/english.locale | 2 +- src/neutrino.cpp | 46 ++++++++++++++++++++++++++++++++++++++ src/neutrino.h | 4 ++++ 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index e9479fb6c..8a2a538cd 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1287,7 +1287,7 @@ menu.hint_screen_setup Konfigurieren Sie den Bildschirmbereich für die Menüanz menu.hint_screensaver_delay Legen sie die Zeit (in Minuten) fest, nach der der Bildschirmschoner starten soll menu.hint_screensaver_dir Wählen Sie das Verzeichnis, in dem die Bilder für Ihren Bildschirmschoner gespeichert sind menu.hint_screensaver_timeout Wählen Sie Die Wartezeit bis zum Bilderwechsel des Bildschirmschoners -menu.hint_screensaver_setup Konfigurieren Sie die Optionen des Bildschirmschoners für den Audioplayer +menu.hint_screensaver_setup Konfigurieren Sie die Optionen des Bildschirmschoners für den Audioplayer und den Radio-Modus menu.hint_screenshot_count Wählen Sie, wie viele Screenshots erstellt werden sollen menu.hint_screenshot_cover Während der Wiedergabe von Aufnahmen kann ein Screenshot für die Vorschau im Moviebrowser erstellt werden menu.hint_screenshot_dir Wählen Sie das Verzeichnis zum Speichern der Screenshots diff --git a/data/locale/english.locale b/data/locale/english.locale index 133758382..561965788 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1291,7 +1291,7 @@ menu.hint_screen_setup Configure screen margins menu.hint_screensaver_delay Set the time (in minutes) after which the screensaver has to start menu.hint_screensaver_dir Select directory in which the screensaver has to start menu.hint_screensaver_timeout Select the timeout to change pictures in screensavers -menu.hint_screensaver_setup Configure screensaver options for audioplayer +menu.hint_screensaver_setup Configure screensaver options for audioplayer and radio mode menu.hint_screenshot_count When no GUI on screen, you can save 1-5\nscreenshot serie menu.hint_screenshot_cover ON: When playing record, overwrite single\nscreenshot to show inside MovieBrowser menu.hint_screenshot_dir Select directory to save screenshots diff --git a/src/neutrino.cpp b/src/neutrino.cpp index df40f4add..b013cdc76 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -82,6 +82,7 @@ #include "gui/plugins.h" #include "gui/rc_lock.h" #include "gui/scan_setup.h" +#include "gui/screensaver.h" #include "gui/sleeptimer.h" #include "gui/start_wizard.h" #include "gui/update_ext.h" @@ -2135,6 +2136,21 @@ void CNeutrinoApp::showInfo() StartSubtitles(); } +void CNeutrinoApp::screensaver(bool on) +{ + if (on) + { + m_screensaver = true; + CScreenSaver::getInstance()->Start(); + } + else + { + CScreenSaver::getInstance()->Stop(); + m_screensaver = false; + m_idletime = time(NULL); + } +} + void CNeutrinoApp::RealRun(CMenuWidget &mainMenu) { neutrino_msg_t msg; @@ -2159,12 +2175,42 @@ void CNeutrinoApp::RealRun(CMenuWidget &mainMenu) CLuaServer *luaServer = CLuaServer::getInstance(); + m_idletime = time(NULL); + m_screensaver = false; + while( true ) { luaServer->UnBlock(); g_RCInput->getMsg(&msg, &data, 100, ((g_settings.mode_left_right_key_tv == SNeutrinoSettings::VOLUME) && (g_RemoteControl->subChannels.size() < 1)) ? true : false); // 10 secs.. if (luaServer->Block(msg, data)) continue; + if (mode == mode_radio) { + if ( msg == CRCInput::RC_timeout || msg == NeutrinoMessages::EVT_TIMER) + { + int delay = time(NULL) - m_idletime; + int screensaver_delay = g_settings.screensaver_delay; + if (screensaver_delay !=0 && delay > screensaver_delay*60 && !m_screensaver) + screensaver(true); + } + else + { + m_idletime = time(NULL); + if (m_screensaver) + { + screensaver(false); + + videoDecoder->StopPicture(); + videoDecoder->ShowPicture(DATADIR "/neutrino/icons/radiomode.jpg"); + + if (msg <= CRCInput::RC_MaxRC) { + // ignore first keypress - just quit the screensaver + g_RCInput->clearRCMsg(); + continue; + } + } + } + } + if( ( mode == mode_tv ) || ( mode == mode_radio ) || ( mode == mode_webtv ) ) { if( (msg == NeutrinoMessages::SHOW_EPG) /* || (msg == CRCInput::RC_info) */ ) { InfoClock->enableInfoClock(false); diff --git a/src/neutrino.h b/src/neutrino.h index e34e22f6d..44c06e6a7 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -83,6 +83,9 @@ private: int network_dhcp; int network_automatic_start; + int m_idletime; + bool m_screensaver; + int mode; int lastMode; bool softupdate; @@ -227,6 +230,7 @@ public: void lockPlayBack(bool blank = true); void stopPlayBack(bool lock = false); bool adjustToChannelID(const t_channel_id channel_id); + void screensaver(bool); }; #endif From 4810576268e5a5626c47081251d16a366ae4d755 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Tue, 30 Dec 2014 00:22:21 +0100 Subject: [PATCH 17/72] - infoviewer: align clock bottom to get same pos as channelname --- src/gui/infoviewer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index c27ff1cc3..7f5e588a3 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -248,7 +248,7 @@ void CInfoViewer::initClock() clock->setColorBody(COL_INFOBAR_PLUS_0); clock->setCorner(RADIUS_LARGE, CORNER_TOP_RIGHT); clock->setClockFont(SNeutrinoSettings::FONT_TYPE_INFOBAR_CHANNAME); - clock->setClockAlignment(CC_ALIGN_RIGHT | CC_ALIGN_HOR_CENTER); + clock->setClockAlignment(CC_ALIGN_RIGHT | CC_ALIGN_BOTTOM); clock->refresh(); clock->setPos(BoxEndX - 10 - clock->getWidth(), ChanNameY); From 7c9a158f114bf2d5ec4d2913a579502d72b01ae2 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Tue, 30 Dec 2014 00:53:31 +0100 Subject: [PATCH 18/72] - screensaver: disable clock while screesaver --- src/gui/screensaver.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gui/screensaver.cpp b/src/gui/screensaver.cpp index e66dbfbca..acf61be32 100644 --- a/src/gui/screensaver.cpp +++ b/src/gui/screensaver.cpp @@ -37,6 +37,9 @@ #include "audiomute.h" #include "screensaver.h" +#include +extern CInfoClock *InfoClock; + #include extern cVideo * videoDecoder; @@ -73,6 +76,7 @@ CScreenSaver* CScreenSaver::getInstance() void CScreenSaver::Start() { CAudioMute::getInstance()->enableMuteIcon(false); + InfoClock->enableInfoClock(false); m_viewer->SetScaling((CPictureViewer::ScalingMode)g_settings.picviewer_scaling); m_viewer->SetVisible(g_settings.screen_StartX, g_settings.screen_EndX, g_settings.screen_StartY, g_settings.screen_EndY); @@ -108,6 +112,7 @@ void CScreenSaver::Stop() thrScreenSaver = 0; m_frameBuffer->paintBackground(); //clear entire screen + InfoClock->enableInfoClock(true); CAudioMute::getInstance()->enableMuteIcon(true); } From 47f2b317865d389e97eccd59d719fcf2ef81828c Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 30 Dec 2014 15:03:58 +0300 Subject: [PATCH 19/72] zapit/src/fastscan.cpp: fix pilot param --- src/zapit/src/fastscan.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/zapit/src/fastscan.cpp b/src/zapit/src/fastscan.cpp index 2796305c2..807ed35a0 100644 --- a/src/zapit/src/fastscan.cpp +++ b/src/zapit/src/fastscan.cpp @@ -107,6 +107,7 @@ bool CServiceScan::TestDiseqcConfig(int num) feparams.delsys = diseqc_test[i].delsys; feparams.modulation = diseqc_test[i].modulation; feparams.polarization = diseqc_test[i].polarization; + feparams.pilot = ZPILOT_AUTO; int old_diseqc = satmap[diseqc_test[i].position].diseqc; satmap[diseqc_test[i].position].diseqc = diseqc; From b8e8e46a9806a5103dde5b7b9fb6b615fc1f7e70 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Tue, 30 Dec 2014 13:29:11 +0100 Subject: [PATCH 20/72] streaminfo2.cpp fix possible segfault if audio mode mismatch --- src/gui/streaminfo2.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/gui/streaminfo2.cpp b/src/gui/streaminfo2.cpp index 9a252ef53..029c76046 100644 --- a/src/gui/streaminfo2.cpp +++ b/src/gui/streaminfo2.cpp @@ -556,16 +556,19 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) g_Font[font_info]->RenderString (xpos, ypos, box_width, buf, COL_INFOBAR_TEXT); if(type == AUDIO_FMT_MPEG) { - const char *mpegmodes[4] = { "stereo", "joint_st", "dual_ch", "single_ch" }; - sprintf (buf, "MPEG %s (%d)", mpegmodes[mode], freq); + const int max_mode = 4; + const char *mpegmodes[max_mode] = { "stereo", "joint_st", "dual_ch", "single_ch" }; + sprintf (buf, "MPEG %s (%d)", (mode > max_mode) ?"unk":mpegmodes[mode], freq); } else if (type == AUDIO_FMT_DOLBY_DIGITAL || type == AUDIO_FMT_DD_PLUS) { - const char *ddmodes[8] = { "CH1/CH2", "C", "L/R", "L/C/R", "L/R/S", "L/C/R/S", "L/R/SL/SR", "L/C/R/SL/SR" }; + const int max_mode = 8; + const char *ddmodes[max_mode] = { "CH1/CH2", "C", "L/R", "L/C/R", "L/R/S", "L/C/R/S", "L/R/SL/SR", "L/C/R/SL/SR" }; sprintf (buf, "%s %s (%d)", (type == AUDIO_FMT_DOLBY_DIGITAL) ? "DD" : "DD+", - ddmodes[mode], + (mode > max_mode) ?"unk": ddmodes[mode], freq); } else if (type == AUDIO_FMT_AAC || type == AUDIO_FMT_AAC_PLUS) { - const char *aacmodes[10] = { + const int max_mode = 10; + const char *aacmodes[max_mode] = { "N/S", "Mono", "L/R", @@ -579,7 +582,7 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) }; sprintf (buf, "%s %s (%d)", (type == AUDIO_FMT_AAC) ? "AAC" : "AAC+", - aacmodes[mode], freq); + (mode > max_mode) ?"unk":aacmodes[mode], freq); } else { sprintf (buf, "%s (%d)", g_Locale->getText(LOCALE_STREAMINFO_AUDIOTYPE_UNKNOWN), freq); } From c89e35cbe11d33773afa589d46d2349028f20f5e Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 1 Jan 2015 18:47:09 +0100 Subject: [PATCH 21/72] eitd: reduce memory use . shrink extended text memory size (capacity) to string size --- src/eitd/SIevents.cpp | 26 ++++++++++++++++++++++---- src/eitd/SIevents.hpp | 2 +- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/eitd/SIevents.cpp b/src/eitd/SIevents.cpp index e46fb709a..680e6fadc 100644 --- a/src/eitd/SIevents.cpp +++ b/src/eitd/SIevents.cpp @@ -199,6 +199,18 @@ void SIevent::parse(Event &event) if (start_time && duration) times.insert(SItime(start_time, duration)); const DescriptorList &dlist = *event.getDescriptors(); + + int countExtandetText = 0, appendcheck = 0; + for (DescriptorConstIterator dit = dlist.begin(); dit != dlist.end(); ++dit){ + switch ((*dit)->getTag()) { + case EXTENDED_EVENT_DESCRIPTOR: + countExtandetText++; + break; + default: + break; + } + } + appendcheck = countExtandetText; for (DescriptorConstIterator dit = dlist.begin(); dit != dlist.end(); ++dit) { switch ((*dit)->getTag()) { case SHORT_EVENT_DESCRIPTOR: @@ -227,7 +239,8 @@ void SIevent::parse(Event &event) item.append("\n"); } #endif - appendExtendedText(getLangIndex(lang), stringDVBUTF8(d->getText(), table, tsidonid)); + appendExtendedText(getLangIndex(lang), stringDVBUTF8(d->getText(), table, tsidonid),(appendcheck > countExtandetText),(countExtandetText==1)); + countExtandetText--; break; } case CONTENT_DESCRIPTOR: @@ -556,17 +569,22 @@ void SIevent::appendExtendedText(const std::string &lang, const std::string &tex appendExtendedText(getLangIndex(lang), text, append); } -void SIevent::appendExtendedText(unsigned int lang, const std::string &text, bool append) +void SIevent::appendExtendedText(unsigned int lang, const std::string &text, bool append, bool endappend) { if (CSectionsdClient::LANGUAGE_MODE_OFF == SIlanguage::getMode()) lang = 0; for (std::list::iterator it = langData.begin(); it != langData.end(); ++it) if (it->lang == lang) { - if (append) + if (append){ it->text[SILangData::langExtendedText] += text; - else + if(endappend && it->text[SILangData::langExtendedText].capacity() > it->text[SILangData::langExtendedText].size()){ + it->text[SILangData::langExtendedText].reserve(); + } + } + else{ it->text[SILangData::langExtendedText] = text; + } return; } diff --git a/src/eitd/SIevents.hpp b/src/eitd/SIevents.hpp index 8342ffc28..0031853ce 100644 --- a/src/eitd/SIevents.hpp +++ b/src/eitd/SIevents.hpp @@ -519,7 +519,7 @@ class SIevent // Aus dem Extended Descriptor std::string getExtendedText() const; void appendExtendedText(const std::string &lang, const std::string &text, bool append = true); - void appendExtendedText(unsigned int lang, const std::string &text, bool append = true); + void appendExtendedText(unsigned int lang, const std::string &text, bool append = true, bool endappend = false); void setExtendedText(const std::string &lang, const std::string &text) { appendExtendedText(lang, text, false); } From 8e4af0b619e963a4aa72fc7bc9fddd9df6b6c5d0 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Thu, 1 Jan 2015 19:02:41 +0100 Subject: [PATCH 22/72] eitd: use check empty() instead of size() or length() --- src/eitd/SIevents.cpp | 28 ++++++++++++++-------------- src/eitd/SIlanguage.cpp | 4 ++-- src/eitd/SIservices.hpp | 4 ++-- src/eitd/sectionsd.cpp | 8 ++++---- src/eitd/xmlutil.cpp | 2 +- 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/eitd/SIevents.cpp b/src/eitd/SIevents.cpp index 680e6fadc..7883d22b4 100644 --- a/src/eitd/SIevents.cpp +++ b/src/eitd/SIevents.cpp @@ -85,7 +85,7 @@ unsigned int getCountryIndex(const std::string &country) { unsigned int ix = 0; OpenThreads::ScopedLock m_lock(countryMutex); - if (!countryVector.size()) { + if (countryVector.empty()) { countryVector.push_back("DEU"); // 0 countryVector.push_back("FRA"); // 1 countryVector.push_back("ITA"); // 2 @@ -105,7 +105,7 @@ static std::map componentMap; void SIcomponent::setComponent(const std::string &component_description) { OpenThreads::ScopedLock m_lock(componentMutex); - if (!componentVector.size()) { + if (componentVector.empty()) { componentMap[""] = 0; componentVector.push_back(""); } @@ -483,7 +483,7 @@ char SIevent::getFSK() const std::string SIevent::getName() const { if (CSectionsdClient::LANGUAGE_MODE_OFF == SIlanguage::getMode()) { - if (langData.size()) + if (!langData.empty()) return langData.begin()->text[SILangData::langName]; return ""; } else { @@ -521,7 +521,7 @@ void SIevent::setName(unsigned int lang, const std::string &name) std::string SIevent::getText() const { if (CSectionsdClient::LANGUAGE_MODE_OFF == SIlanguage::getMode()) { - if (langData.size()) + if (!langData.empty()) return langData.begin()->text[SILangData::langText]; return ""; } @@ -555,7 +555,7 @@ void SIevent::setText(unsigned int lang, const std::string &text) std::string SIevent::getExtendedText() const { if (CSectionsdClient::LANGUAGE_MODE_OFF == SIlanguage::getMode()) { - if (langData.size()) + if (!langData.empty()) return langData.begin()->text[SILangData::langExtendedText]; return ""; } @@ -618,33 +618,33 @@ int SIevent::saveXML0(FILE *file) const int SIevent::saveXML2(FILE *file) const { for (std::list::const_iterator i = langData.begin(); i != langData.end(); ++i) { - if (i->text[SILangData::langName].length()) { + if (!i->text[SILangData::langName].empty()) { fprintf(file, "\t\t\tlang].c_str()); saveStringToXMLfile(file, i->text[SILangData::langName].c_str()); fprintf(file, "\"/>\n"); } } for (std::list::const_iterator i = langData.begin(); i != langData.end(); ++i) { - if (i->text[SILangData::langText].length()) { + if (!i->text[SILangData::langText].empty()) { fprintf(file, "\t\t\tlang].c_str()); saveStringToXMLfile(file, i->text[SILangData::langText].c_str()); fprintf(file, "\"/>\n"); } } #ifdef USE_ITEM_DESCRIPTION - if(item.length()) { + if(!item.empty()) { fprintf(file, "\t\t\t\n"); } - if(itemDescription.length()) { + if(!itemDescription.empty()) { fprintf(file, "\t\t\t\n"); } #endif for (std::list::const_iterator i = langData.begin(); i != langData.end(); ++i) { - if (i->text[SILangData::langExtendedText].length()) { + if (!i->text[SILangData::langExtendedText].empty()) { fprintf(file, "\t\t\tlang].c_str()); saveStringToXMLfile(file, i->text[SILangData::langExtendedText].c_str()); fprintf(file, "\"/>\n"); @@ -674,9 +674,9 @@ void SIevent::dump(void) const printf("Service-ID: %hu\n", service_id); printf("Event-ID: %hu\n", eventID); #ifdef USE_ITEM_DESCRIPTION - if(item.length()) + if(!item.empty()) printf("Item: %s\n", item.c_str()); - if(itemDescription.length()) + if(!itemDescription.empty()) printf("Item-Description: %s\n", itemDescription.c_str()); #endif for (std::list::const_iterator it = langData.begin(); it != langData.end(); ++it) { @@ -687,13 +687,13 @@ void SIevent::dump(void) const std::string contentClassification, userClassification; classifications.get(contentClassification, userClassification); - if(contentClassification.length()) { + if(!contentClassification.empty()) { printf("Content classification:"); for(unsigned i=0; i m_lock(langIndexMutex); - if (!langIndex.size()) + if (langIndex.empty()) langIndex.push_back(languageOFF); for (std::vector::iterator it = langIndex.begin(); it != langIndex.end(); ++it, ++ix) if (*it == lang) @@ -101,7 +101,7 @@ void SIlanguage::filter(const std::list& s, SILangData::SILangDataIn } } - if (retval.length() == 0) { + if (retval.empty()) { // return all available languages if (s.begin() != s.end()) { for (std::list::const_iterator it = s.begin() ; diff --git a/src/eitd/SIservices.hpp b/src/eitd/SIservices.hpp index 4d6796c0a..186a58861 100644 --- a/src/eitd/SIservices.hpp +++ b/src/eitd/SIservices.hpp @@ -140,9 +140,9 @@ public: printf("Service-ID: %hu\n", service_id); printf("Service-Typ: %hhu\n", serviceTyp); #if 0 // unused - if(providerName.length()) + if(!providerName.empty()) printf("Provider-Name: %s\n", providerName.c_str()); - if(serviceName.length()) + if(!serviceName.empty()) printf("Service-Name: %s\n", serviceName.c_str()); #endif for_each(nvods.begin(), nvods.end(), printSInvodReference()); diff --git a/src/eitd/sectionsd.cpp b/src/eitd/sectionsd.cpp index 630a38917..3573681b1 100644 --- a/src/eitd/sectionsd.cpp +++ b/src/eitd/sectionsd.cpp @@ -352,12 +352,12 @@ xprintf("addEvent: ch %012" PRIx64 " running %d (%s) got_CN %d\n", evt.get_chann si->second->item = evt.item; #endif //si->second->vps = evt.vps; - if ((evt.getExtendedText().length() > 0) && !evt.times.empty() && + if ((!evt.getExtendedText().empty()) && !evt.times.empty() && (evt.times.begin()->startzeit < zeit + secondsExtendedTextCache)) si->second->setExtendedText(0 /*"OFF"*/,evt.getExtendedText()); - if (evt.getText().length() > 0) + if (!evt.getText().empty()) si->second->setText(0 /*"OFF"*/,evt.getText()); - if (evt.getName().length() > 0) + if (!evt.getName().empty()) si->second->setName(0 /*"OFF"*/,evt.getName()); } else { @@ -2293,7 +2293,7 @@ void CEitManager::getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEve // service Found readLockEvents(); int serviceIDfound = 0; - if (search_text.length()) + if (!search_text.empty()) std::transform(search_text.begin(), search_text.end(), search_text.begin(), tolower); for (MySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey::iterator e = mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.begin(); e != mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.end(); ++e) diff --git a/src/eitd/xmlutil.cpp b/src/eitd/xmlutil.cpp index 1baf735ba..6bd6794f3 100644 --- a/src/eitd/xmlutil.cpp +++ b/src/eitd/xmlutil.cpp @@ -426,7 +426,7 @@ void *insertEventsfromFile(void * data) node = node->xmlNextNode; } - if (contentClassification.size()) { + if (!contentClassification.empty()) { ssize_t off = e.classifications.reserve(2 * contentClassification.size()); if (off > -1) for (unsigned i = 0; i < contentClassification.size(); i++) From 8f40f990fc5ac06a9114572ea1429f94659a6c5b Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 30 Dec 2014 18:00:46 +0300 Subject: [PATCH 23/72] zapit/src/fastscan.cpp,scannit.cpp: more pilot fixes --- src/zapit/src/fastscan.cpp | 2 ++ src/zapit/src/scannit.cpp | 1 + 2 files changed, 3 insertions(+) diff --git a/src/zapit/src/fastscan.cpp b/src/zapit/src/fastscan.cpp index 807ed35a0..c6cf21a8f 100644 --- a/src/zapit/src/fastscan.cpp +++ b/src/zapit/src/fastscan.cpp @@ -163,6 +163,7 @@ void CServiceScan::ReportFastScan(FrontendParameters &feparams, t_satellite_pos bool CServiceScan::FastscanTune(int id) { FrontendParameters feparams; + feparams.pilot = ZPILOT_AUTO; bool res = true; memset(&feparams, 0, sizeof(feparams)); @@ -646,6 +647,7 @@ bool CServiceScan::ParseFnt(unsigned short pid, unsigned short operator_id) original_network_id = (buffer[pos + 2] << 8) | buffer[pos + 3]; transport_descriptors_length = ((buffer[pos + 4] & 0x0F) << 8) | buffer[pos + 5]; FrontendParameters feparams; + feparams.pilot = ZPILOT_AUTO; t_satellite_position satellitePosition = 0; freq_id_t freq = 0; diff --git a/src/zapit/src/scannit.cpp b/src/zapit/src/scannit.cpp index c4420752c..dfa106759 100644 --- a/src/zapit/src/scannit.cpp +++ b/src/zapit/src/scannit.cpp @@ -326,6 +326,7 @@ bool CNit::ParseSatelliteDescriptor(SatelliteDeliverySystemDescriptor * sd, Tran FrontendParameters feparams; memset(&feparams, 0, sizeof(feparams)); feparams.polarization = sd->getPolarization(); + feparams.pilot = ZPILOT_AUTO; switch (modulation_system) { case 0: // DVB-S From 8bac59eb3301395bed90dcef946406a23745a2f0 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 2 Jan 2015 15:14:16 +0300 Subject: [PATCH 24/72] driver/genpsi.cpp: try to prevent buffer overflow --- src/driver/genpsi.cpp | 154 ++++++++++++++++++++++-------------------- 1 file changed, 80 insertions(+), 74 deletions(-) diff --git a/src/driver/genpsi.cpp b/src/driver/genpsi.cpp index f2acc19f7..d27f844f4 100644 --- a/src/driver/genpsi.cpp +++ b/src/driver/genpsi.cpp @@ -24,8 +24,9 @@ #include #include -#define SIZE_TS_PKT 188 -#define OFS_HDR_2 5 +#define SIZE_TS_PKT 188 +#define TS_DATA_LEN 184 +#define OFS_HDR_2 5 #define OFS_PMT_DATA 13 #define OFS_STREAM_TAB 17 #define SIZE_STREAM_TAB_ROW 5 @@ -272,98 +273,103 @@ void CGenPsi::build_pmt(uint8_t* buffer) buffer[0x1c] = 0x11; buffer[0x1d] = 0x01; buffer[0x1e] = 0xfe; - off = 0x1e; + off = 0x1f; // Audio streams - for (int index = 0; index < nba && index<10; index++) + for (int index = 0; index < nba; index++) { - buffer[++off] = (atypes[index]==1)? ES_TYPE_AC3 : ES_TYPE_MPA; - buffer[++off] = apid[index]>>8; - buffer[++off] = apid[index]&0xff; + if ((atypes[index] == 1) && (off >= (TS_DATA_LEN - 17))) + break; + else if (off >= (TS_DATA_LEN - 11)) + break; + + buffer[off++] = (atypes[index]==1)? ES_TYPE_AC3 : ES_TYPE_MPA; + buffer[off++] = apid[index]>>8; + buffer[off++] = apid[index]&0xff; if (atypes[index] == 1)//ES_TYPE_AC3 { - buffer[++off] = 0xf0; - buffer[++off] = 0x0c; // es info length - buffer[++off] = 0x05; - buffer[++off] = 0x04; - buffer[++off] = 0x41; - buffer[++off] = 0x43; - buffer[++off] = 0x2d; - buffer[++off] = 0x33; + buffer[off++] = 0xf0; + buffer[off++] = 0x0c; // es info length + buffer[off++] = 0x05; + buffer[off++] = 0x04; + buffer[off++] = 0x41; + buffer[off++] = 0x43; + buffer[off++] = 0x2d; + buffer[off++] = 0x33; } else { - buffer[++off] = 0xf0; - buffer[++off] = 0x06; // es info length + buffer[off++] = 0xf0; + buffer[off++] = 0x06; // es info length } - buffer[++off] = 0x0a; // iso639 descriptor tag - buffer[++off] = 0x04; // descriptor length - buffer[++off] = apid_lang[index][0]; - buffer[++off] = apid_lang[index][1]; - buffer[++off] = apid_lang[index][2]; - buffer[++off] = 0x00; // audio type + buffer[off++] = 0x0a; // iso639 descriptor tag + buffer[off++] = 0x04; // descriptor length + buffer[off++] = apid_lang[index][0]; + buffer[off++] = apid_lang[index][1]; + buffer[off++] = apid_lang[index][2]; + buffer[off++] = 0x00; // audio type } // eac3 audio - for (int index=0; index>8; - buffer[++off] = eac3_pid[index] & 0xFF; - buffer[++off] = 0xF0; - buffer[++off] = 0x0d; // es info length - buffer[++off] = 0x52; - buffer[++off] = 0x01; - buffer[++off] = 0x5d; - buffer[++off] = 0x0a; // iso639 descriptor tag - buffer[++off] = 0x04; // descriptor length - buffer[++off] = eac3_lang[index][0]; //language code[0] - buffer[++off] = eac3_lang[index][1]; //language code[1] - buffer[++off] = eac3_lang[index][2]; //language code[2] - buffer[++off] = 0x01; - buffer[++off] = 0x7a; //enhanced_AC-3_descriptor - buffer[++off] = 0x02; - buffer[++off] = 0x80; - buffer[++off] = 0xc5; + buffer[off++] = 0x06;//pes private type; + buffer[off++] = 0xE0 | eac3_pid[index]>>8; + buffer[off++] = eac3_pid[index] & 0xFF; + buffer[off++] = 0xF0; + buffer[off++] = 0x0d; // es info length + buffer[off++] = 0x52; + buffer[off++] = 0x01; + buffer[off++] = 0x5d; + buffer[off++] = 0x0a; // iso639 descriptor tag + buffer[off++] = 0x04; // descriptor length + buffer[off++] = eac3_lang[index][0]; //language code[0] + buffer[off++] = eac3_lang[index][1]; //language code[1] + buffer[off++] = eac3_lang[index][2]; //language code[2] + buffer[off++] = 0x01; + buffer[off++] = 0x7a; //enhanced_AC-3_descriptor + buffer[off++] = 0x02; + buffer[off++] = 0x80; + buffer[off++] = 0xc5; } // Subtitle streams - for (int index = 0; index < nsub && index<10; index++) + for (int index = 0; index < nsub && off < (TS_DATA_LEN-15); index++) { - buffer[++off] = 0x06;//pes private type; - buffer[++off] = dvbsubpid[index]>>8; - buffer[++off] = dvbsubpid[index]&0xff; - buffer[++off] = 0xf0; - buffer[++off] = 0x0a; // es info length - buffer[++off] = 0x59; // DVB sub tag - buffer[++off] = 0x08; // descriptor length - buffer[++off] = dvbsublang[index][0]; - buffer[++off] = dvbsublang[index][1]; - buffer[++off] = dvbsublang[index][2]; - buffer[++off] = 0x20; //subtitle_stream.subtitling_type - buffer[++off] = 0x01>>8; //composition_page_id - buffer[++off] = 0x01&0xff; //composition_page_id - buffer[++off] = 0x01>>8; //ancillary_page_id - buffer[++off] = 0x01&0xff; //ancillary_page_id + buffer[off++] = 0x06;//pes private type; + buffer[off++] = dvbsubpid[index]>>8; + buffer[off++] = dvbsubpid[index]&0xff; + buffer[off++] = 0xf0; + buffer[off++] = 0x0a; // es info length + buffer[off++] = 0x59; // DVB sub tag + buffer[off++] = 0x08; // descriptor length + buffer[off++] = dvbsublang[index][0]; + buffer[off++] = dvbsublang[index][1]; + buffer[off++] = dvbsublang[index][2]; + buffer[off++] = 0x20; //subtitle_stream.subtitling_type + buffer[off++] = 0x01>>8; //composition_page_id + buffer[off++] = 0x01&0xff; //composition_page_id + buffer[off++] = 0x01>>8; //ancillary_page_id + buffer[off++] = 0x01&0xff; //ancillary_page_id } // TeleText streams - if(vtxtpid){ - buffer[++off] = 0x06; //teletext stream type; - buffer[++off] = 0xE0 | vtxtpid>>8; - buffer[++off] = vtxtpid&0xff; - buffer[++off] = 0xf0; - buffer[++off] = 0x0A; // ES_info_length - buffer[++off] = 0x52; //DVB-DescriptorTag: 82 (0x52) [= stream_identifier_descriptor] - buffer[++off] = 0x01; // descriptor_length - buffer[++off] = 0x03; //component_tag - buffer[++off] = 0x56; // DVB teletext tag - buffer[++off] = 0x05; // descriptor length - buffer[++off] = vtxtlang[0]; //language code[0] - buffer[++off] = vtxtlang[1]; //language code[1] - buffer[++off] = vtxtlang[2]; //language code[2] - buffer[++off] = (/*descriptor_magazine_number*/ 0x01 & 0x06) | ((/*descriptor_type*/ 0x01 << 3) & 0xF8); - buffer[++off] = 0x00 ; //Teletext_page_number + if(vtxtpid && off < (TS_DATA_LEN-15)) { + buffer[off++] = 0x06; //teletext stream type; + buffer[off++] = 0xE0 | vtxtpid>>8; + buffer[off++] = vtxtpid&0xff; + buffer[off++] = 0xf0; + buffer[off++] = 0x0A; // ES_info_length + buffer[off++] = 0x52; //DVB-DescriptorTag: 82 (0x52) [= stream_identifier_descriptor] + buffer[off++] = 0x01; // descriptor_length + buffer[off++] = 0x03; //component_tag + buffer[off++] = 0x56; // DVB teletext tag + buffer[off++] = 0x05; // descriptor length + buffer[off++] = vtxtlang[0]; //language code[0] + buffer[off++] = vtxtlang[1]; //language code[1] + buffer[off++] = vtxtlang[2]; //language code[2] + buffer[off++] = (/*descriptor_magazine_number*/ 0x01 & 0x06) | ((/*descriptor_type*/ 0x01 << 3) & 0xF8); + buffer[off++] = 0x00 ; //Teletext_page_number } buffer[0x07] = off-3; // update section_length From b1c31fadd167ccde39c1a2b80b593e36c04a61be Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 2 Jan 2015 15:14:43 +0300 Subject: [PATCH 25/72] gui/components/cc_item_infobox.cpp: enable gradient on request --- src/gui/components/cc_item_infobox.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gui/components/cc_item_infobox.cpp b/src/gui/components/cc_item_infobox.cpp index 25ecbe9c4..c197ea45d 100644 --- a/src/gui/components/cc_item_infobox.cpp +++ b/src/gui/components/cc_item_infobox.cpp @@ -113,6 +113,8 @@ void CComponentsInfoBox::paintPicture() pic->setHeight(height-2*fr_thickness); pic->setColorBody(col_body); + if (col_body_gradient) + pic->doPaintBg(false); //paint, but set visibility mode pic->allowPaint(cc_allow_paint); pic->paint(CC_SAVE_SCREEN_NO); @@ -120,6 +122,8 @@ void CComponentsInfoBox::paintPicture() void CComponentsInfoBox::paint(bool do_save_bg) { + col_body_gradient = g_settings.gradiant; + paintInit(do_save_bg); paintPicture(); From bf754a7de9f0502da0fe4c67a7623996a214dc5c Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Fri, 2 Jan 2015 18:58:46 +0100 Subject: [PATCH 26/72] update initial services --- data/initial/bouquets.xml | 2876 ++++++++++++++++---------------- data/initial/services.xml | 3184 ++++++++++++++++++------------------ data/initial/ubouquets.xml | 1558 +++--------------- 3 files changed, 3277 insertions(+), 4341 deletions(-) diff --git a/data/initial/bouquets.xml b/data/initial/bouquets.xml index 16abf6a28..d24044006 100644 --- a/data/initial/bouquets.xml +++ b/data/initial/bouquets.xml @@ -1,1488 +1,1514 @@ - -