diff --git a/acinclude.m4 b/acinclude.m4 index 4df1f9754..4411f17de 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -204,6 +204,9 @@ TUXBOX_APPS_DIRECTORY_ONE(public_httpddir,PUBLIC_HTTPDDIR,localstatedir,/var,/ht TUXBOX_APPS_DIRECTORY_ONE(hosted_httpddir,HOSTED_HTTPDDIR,mntdir,/mnt,/hosted, [--with-hosted_httpddir=PATH ],[where to find the the hosted files]) + +TUXBOX_APPS_DIRECTORY_ONE(flagdir,FLAGDIR,localstatedir,/var,/etc, + [--with-flagdir=PATH ],[where to find the the flagfiles]) ]) dnl automake <= 1.6 needs this specifications @@ -229,6 +232,7 @@ AC_SUBST(ICONSDIR_VAR) AC_SUBST(PRIVATE_HTTPDDIR) AC_SUBST(PUBLIC_HTTPDDIR) AC_SUBST(HOSTED_HTTPDDIR) +AC_SUBST(FLAGDIR) dnl end workaround AC_DEFUN([_TUXBOX_APPS_LIB_CONFIG],[ diff --git a/data/icons/status/ca/Makefile.am b/data/icons/status/ca/Makefile.am index d7db8b6bf..4a487f5c2 100644 --- a/data/icons/status/ca/Makefile.am +++ b/data/icons/status/ca/Makefile.am @@ -30,6 +30,7 @@ install_DATA = \ nagra_green.png \ nagra_white.png \ nagra_yellow.png \ + ncam_green.png \ nds_green.png \ nds_white.png \ nds_yellow.png \ diff --git a/data/icons/status/ca/ncam_green.png b/data/icons/status/ca/ncam_green.png new file mode 100644 index 000000000..8fb938e67 Binary files /dev/null and b/data/icons/status/ca/ncam_green.png differ diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 9fe918891..b474355b8 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -252,6 +252,8 @@ camd_item_gbox_hint GBox - Softcam und Emulator camd_item_gbox_name gbox camd_item_mgcamd_hint MGCamd - Emulator camd_item_mgcamd_name mgcamd +camd_item_ncam_hint NCam - Softcam und Emulator +camd_item_ncam_name ncam camd_item_newcs_hint NewCS - Softcam camd_item_newcs_name newcs camd_item_oscam_hint OSCam - Softcam @@ -385,9 +387,35 @@ cpu.freq_default Standard Frequenz cpu.freq_normal Normale Frequenz cpu.freq_standby Standby Frequenz crossteam.hint_settings_teams Einstellungen sichern und wiederherstellen,\ndie zu teilnehmenden Team-Images kompatibel sind. -crossteam.hint_settings_teams_backup Teamübergreifende Einstellungen sichern -crossteam.hint_settings_teams_help Hilfe zu teamübergreifenden Einstellungen -crossteam.hint_settings_teams_restore Teamübergreifende Einstellungen wiederherstellen +crossteam.hint_settings_teams_backup Team-übergreifende Einstellungen sichern +crossteam.hint_settings_teams_help Hilfe zu den Team-übergreifenden Einstellungen +crossteam.hint_settings_teams_restore Team-übergreifende Einstellungen wiederherstellen +daemon_control Daemon-Steuerung +daemon_item.crond_desc cron Daemon kann zeitgesteuerte Aufgaben ausführen +daemon_item.crond_name crond +daemon_item.djmount_desc UPnP AV Client kann den Inhalt von Media-Servern mounten +daemon_item.djmount_name djmount +daemon_item.dropbear_desc SSH2 Server und Client +daemon_item.dropbear_name Dropbear +daemon_item.emmremind_desc Zeigt eine Änderung der EMM's in den Infoicons an +daemon_item.emmremind_name EMM-Änderungsbenachrichtigung +daemon_item.fcm_desc Zeigt die Anrufliste der FRITZ!Box und noch vieles mehr ... +daemon_item.fcm_name FritzCallMonitor +daemon_item.inadyn_desc DynDNS Client +daemon_item.inadyn_name Inadyn +daemon_item.nfsserver_desc NFS Kernel Server +daemon_item.nfsserver_name NFS-Server +daemon_item.sambaserver_desc Server-Message-Block-Protokoll (SMB) Implementierung +daemon_item.sambaserver_name Samba-Server +daemon_item.tuxcald_desc Kalenderplugin Dienstprogramm +daemon_item.tuxcald_name TuxCal +daemon_item.tuxmaild_desc Mailplugin (IMAP/SMTP) Dienstprogramm +daemon_item.tuxmaild_name TuxMail +daemon_item.ushare_desc A/V und DLNA Medienserver +daemon_item.ushare_name uShare +daemon_item.xupnpd_desc eXtensible UPnP agent - DLNA Medienserver für IPTV +daemon_item.xupnpd_name xupnpd +>>>>>>> date.Apr Apr date.Aug Aug date.Dec Dez @@ -908,7 +936,7 @@ infoicons_flag_name4 Benutzerdefiniert infoicons_flag_name5 Benutzerdefiniert infoicons_flag_name6 Benutzerdefiniert infoicons_flag_name7 Benutzerdefiniert -infoicons_head Infoicons Einstellungen +infoicons_head Infoicons infoicons_infoviewer mit Infoviewer infoicons_modeicon Infoicons infoicons_msg_start Infoicons werden gestartet @@ -1135,7 +1163,7 @@ menu.hint_blank_screen Schaltet den VideoDecoder bis zum nächsten Event (Tasten menu.hint_buildinfo Informationen über Compiler, Compilerflags, Kernel menu.hint_ca_init Konfiguration der CA-Systemhardware, CA-Modul und Kartenschächte menu.hint_cache_txt Startet das Zwischenspeichern des Teletextes nach einem Kanalwechsel -menu.hint_camd Softcam und Emulator Einstellungen\nStart, Stop, Versionsinfo +menu.hint_camd_control Softcams und Emulatoren\nStart, Stop, Versionsinfo menu.hint_camd_reset Aktive Softcam und/oder Emulator neu starten menu.hint_cec_mode CEC-Modus menu.hint_cec_standby CEC-Standby @@ -1170,6 +1198,7 @@ menu.hint_colors Konfigurieren Sie die Menü-Farben menu.hint_colors_shadow Einstellen der Schattenfarbe menu.hint_content_back Ändern Sie die Hintergrundfarbe für den Fensterinhalt menu.hint_content_textcolor Ändern Sie die Textfarbe für den Fensterinhalt +menu.hint_daemon_control An- und Abschalten von System-Diensten menu.hint_dboxinfo Informationen über CPU und Arbeitsspeicher der Box menu.hint_delete_channels Löschen aller Kanäle menu.hint_delete_removed Lösche das Bouquet 'Gelöschte Kanäle' @@ -1419,7 +1448,6 @@ menu.hint_network IP-Adresse, Gateway, DNS, Zeit-Sync, Netzwerk-Freigaben, Diens menu.hint_new_zap_mode Aktiviert Quickzap in der Kanalliste. Nach Betätigen der Mute-Taste wird mit den Hoch/Runter-Tasten direkt umgeschalten menu.hint_next Weiter zum nächsten Menü.\nDie Taste 'Menü' schließt alle Menüs menu.hint_next_brief Weiter zum nächsten Menü -menu.hint_nimenu Konfiguration von Softcams, Plugins, Tools usw. menu.hint_numeric_adjust Bei numerischer Programmwahl die Kanalliste am neu gewählten Programm ausrichten menu.hint_opkg Software-Pakete installieren oder vorhandene aktualisieren menu.hint_opkg_feed_addresses_edit Bearbeiten von Feed-Adressen @@ -1445,7 +1473,7 @@ menu.hint_plugin_type_games Legt fest, ob Spiele im Benutzermenü unter der Rubr menu.hint_plugin_type_lua Legt fest, ob Plugins im Benutzermenü unter der Rubrik 'Plugin-Typen' gezeigt werden sollen menu.hint_plugin_type_scripts Legt fest, ob Skripte im Benutzermenü unter der Rubrik 'Plugin-Typen' gezeigt werden sollen menu.hint_plugin_type_tools Legt fest, ob Werkzeuge im Benutzermenü unter der Rubrik 'Plugin-Typen' gezeigt werden sollen -menu.hint_plugins_control Verwaltung von installierten Plugins und Diensten +menu.hint_plugins_control Plugin-Einstellungen und Verwaltung von installierten Plugins menu.hint_plugins_hdd_dir Auswahl des Verzeichnisses zum Laden der Plugins von einem externen Datenträger menu.hint_plugins_hide Integrierte Plugins oder Plugins in den Benutzermenüs verstecken oder anzeigen menu.hint_power_leds Konfiguriert das Verhalten der LEDs an der Power-Taste @@ -2062,12 +2090,14 @@ mpkey.stop Stopp mpkey.subtitle Untertitel mpkey.time Zeitanzeige netfs.active_onoff Eintrag aktiv +netfs.automount_edit auto.net bearbeiten netfs.automount_head NetFS Einstellungen netfs.automount_intro Einträge für auto.net netfs.automount_intro_mounts NetFS-Mounts bearbeiten netfs.automount_write Einstellungen speichern und auto.net schreiben netfs.automount_write_info auto.net wurde geschrieben netfs.dump Dump +netfs.fstab_edit fstab bearbeiten netfs.fstab_domount NetFS-Verzeichnisse anhängen (mount) netfs.fstab_domount_info '/etc/init.d/fstab start_netfs' wird ausgeführt netfs.fstab_doumount NetFS-Verzeichnisse aushängen (umount) @@ -2095,8 +2125,8 @@ networkmenu.ipaddress IP networkmenu.mount Netzwerkfreigaben bearbeiten networkmenu.nameserver Nameserver networkmenu.netmask Netzmaske -networkmenu.ntpatboot Zeit beim Booten synchr. -networkmenu.ntpenable Zeit per INet synchronisieren +networkmenu.ntpatboot Zeit beim Booten synchronisieren +networkmenu.ntpenable Zeit synchronisieren per networkmenu.ntprefresh NTP/DVB-Aktualisierung networkmenu.ntprefresh_hint1 NTP/DVB-Time-Sync [min] networkmenu.ntprefresh_hint2 braucht Reboot oder EPG-Reset @@ -2141,8 +2171,6 @@ nfs.umounterror Umount-Fehler nfs.username Benutzername nfsmenu.head NFS/CIFS/FTPFS Einstellungen ni NI \o/ -nimenu.head NI-Einstellungen -nimenu.head_special Extra-Einstellungen nvod.percentage (%d%% vorbei) nvod.starting (Beginn in %d min) nvodselector.directormode Bildregie-Modus @@ -2281,32 +2309,8 @@ pinprotection.head PIN-Abfrage pinprotection.wrongcode Geben Sie den Code nocheinmal ein! plugin.hide_no Anzeigen plugin.hide_yes Verstecken -plugin.item_crond_desc cron Daemon kann zeitgesteuerte Aufgaben ausführen -plugin.item_crond_name crond -plugin.item_djmount_desc UPnP AV Client kann den Inhalt von Media-Servern mounten -plugin.item_djmount_name djmount -plugin.item_dropbear_desc SSH2 Server und Client -plugin.item_dropbear_name Dropbear -plugin.item_emmremind_desc Zeigt eine Änderung der EMM's in den Infoicons an -plugin.item_emmremind_name EMM-Änderungsbenachrichtigung -plugin.item_fcm_desc Zeigt die Anrufliste der FRITZ!Box und noch vieles mehr ... -plugin.item_fcm_name FritzCallMonitor -plugin.item_inadyn_desc DynDNS Client -plugin.item_inadyn_name Inadyn -plugin.item_nfsserver_desc NFS Kernel Server -plugin.item_nfsserver_name NFS-Server -plugin.item_sambaserver_desc Server-Message-Block-Protokoll (SMB) Implementierung -plugin.item_sambaserver_name Samba-Server -plugin.item_tuxcald_desc Kalenderplugin -plugin.item_tuxcald_name TuxCal -plugin.item_tuxmaild_desc Mailplugin (IMAP/SMTP) -plugin.item_tuxmaild_name TuxMail -plugin.item_ushare_desc A/V und DLNA Medienserver -plugin.item_ushare_name uShare -plugin.item_xupnpd_desc eXtensible UPnP agent - DLNA Medienserver für IPTV -plugin.item_xupnpd_name xupnpd -plugins.control Plugins und Services verwalten -plugins.hdd_dir Externes Plugin-Verz. +plugins.control Plugins verwalten +plugins.hdd_dir Externes Plugin-Verzeichnis plugins.hide Plugins verstecken oder anzeigen plugins.no_plugin Kein Plugin plugins.result Pluginausgabe @@ -2557,7 +2561,7 @@ settings.teams.backup Sichern settings.teams.backup_failed Sicherung fehlgeschlagen! settings.teams.backup_to Sichern nach settings.teams.help Hilfe -settings.teams.help_text In diesem Menü können Einstellungen gesichert und\nwiederhergestellt werden, die zu folgenden Team-Images\nkompatibel sind:\n \n - BluePeer HD\n - NI CS-Image\n \nGesichert werden:\n \n * Kanallisten\n * Timer und Timer-Einstellungen\n * Netzwerkeinstellungen (LAN und WLAN) +settings.teams.help_text In diesem Menü können Einstellungen\ngesichert und wiederhergestellt werden,\ndie zu folgenden Team-Images kompatibel sind:\n \n - BluePeer HD\n - NI-Image\n \nGesichert werden:\n \n * Kanallisten\n * Timer und Timer-Einstellungen\n * Netzwerkeinstellungen (LAN und WLAN) settings.teams.restore Wiederherstellen settings.teams.restore_warn Team-übergreifende Einstellungen werden ersetzt.\nDie Box wird neu gestartet.\nWeiter? shoutcast.dev_id SHOUTcast Dev ID diff --git a/data/locale/english.locale b/data/locale/english.locale index c582c5a41..c614c05e7 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -252,6 +252,8 @@ camd_item_gbox_hint GBox - Softcam and emulator camd_item_gbox_name gbox camd_item_mgcamd_hint MGCamd - Emulator camd_item_mgcamd_name mgcamd +camd_item_ncam_hint NCam - Softcam and emulator +camd_item_ncam_name ncam camd_item_newcs_hint NewCS - Softcam camd_item_newcs_name newcs camd_item_oscam_hint OSCam - Softcam @@ -388,6 +390,31 @@ crossteam.hint_settings_teams Save and restore settings, which\nare compatible w crossteam.hint_settings_teams_backup Save cross-team settings crossteam.hint_settings_teams_help Help about cross-team settings crossteam.hint_settings_teams_restore Restore cross-team settings +daemon_control Daemon control +daemon_item.crond_desc Cron daemon allows scheduled tasks +daemon_item.crond_name crond +daemon_item.djmount_desc UPnP AV client allows to mount media-servers +daemon_item.djmount_name djmount +daemon_item.dropbear_desc SSH2 server and client +daemon_item.dropbear_name Dropbear +daemon_item.emmremind_desc Show different EMM's in the Infoicons +daemon_item.emmremind_name EMM-Change Notification +daemon_item.fcm_desc Shows FRITZ!Box call list and much more ... +daemon_item.fcm_name FritzCallMonitor +daemon_item.inadyn_desc DynDNS client +daemon_item.inadyn_name Inadyn +daemon_item.nfsserver_desc NFS kernel server +daemon_item.nfsserver_name NFS server +daemon_item.sambaserver_desc Server-Message-Block-Protocol (SMB) implementation +daemon_item.sambaserver_name Samba server +daemon_item.tuxcald_desc Calender plugin daemon +daemon_item.tuxcald_name TuxCal +daemon_item.tuxmaild_desc Mailplugin (IMAP/SMTP) daemon +daemon_item.tuxmaild_name TuxMail +daemon_item.ushare_desc A/V and DLNA Mediaserver +daemon_item.ushare_name uShare +daemon_item.xupnpd_desc eXtensible UPnP agent - DLNA Mediaserver for IPTV +daemon_item.xupnpd_name xupnpd date.Apr Apr date.Aug Aug date.Dec Dec @@ -908,7 +935,7 @@ infoicons_flag_name4 Custom infoicons_flag_name5 Custom infoicons_flag_name6 Custom infoicons_flag_name7 Custom -infoicons_head Infoicons Settings +infoicons_head Infoicons infoicons_infoviewer with Infoviewer infoicons_modeicon Infoicons infoicons_msg_start starting Infoicons @@ -1135,7 +1162,7 @@ menu.hint_blank_screen Turn off VideoDecoder until next event (keypress, timer e menu.hint_buildinfo Information about compilers, compiler flags, kernel menu.hint_ca_init Configuration of CA-system hardware, CA-module and card slots menu.hint_cache_txt Start teletext caching after channel switch -menu.hint_camd Softcam and emulator settings\nStart, stop, version info +menu.hint_camd_control Softcams and emulators\nStart, stop, version info menu.hint_camd_reset Restart the active softcam and/or emulator menu.hint_cec_mode CEC mode menu.hint_cec_standby CEC standby @@ -1170,6 +1197,7 @@ menu.hint_colors Configure GUI colors menu.hint_colors_shadow Setup for shadow color. menu.hint_content_back Change GUI window background color menu.hint_content_textcolor Change GUI window text color +menu.hint_daemon_control Start and stop system-daemons menu.hint_dboxinfo Information about box cpu and storage menu.hint_delete_channels Remove all channels menu.hint_delete_removed Delete the channels in the 'Removed channels' boquet @@ -1419,7 +1447,6 @@ menu.hint_network IP address, gateway, DNS, Time sync\nNetwork shares and servic menu.hint_new_zap_mode Allow channel switch while browsing\n(toggle mode with 'mute' in channel list) menu.hint_next Continue to next menu\nPress menu key to close all menus menu.hint_next_brief Continue to next menu -menu.hint_nimenu Configuration of softcams, plugins, tools etc. menu.hint_numeric_adjust Adjust channel list mode on numeric zap menu.hint_opkg Install or update software packages menu.hint_opkg_feed_addresses_edit Edit feed addresses @@ -1445,7 +1472,7 @@ menu.hint_plugin_type_games Show games in usermenu at selection 'Plugin types' menu.hint_plugin_type_lua Show plugins in usermenu at selection 'Plugin types' menu.hint_plugin_type_scripts Show scripts in usermenu at selection 'Plugin types' menu.hint_plugin_type_tools Show tools in usermenu at selection 'Plugin types' -menu.hint_plugins_control Configuration of installed plugins and services +menu.hint_plugins_control Plugin settings and management of installed plugins menu.hint_plugins_hdd_dir Select directory to load\nplugins from menu.hint_plugins_hide Hide or show integrated plugins or plugins in user menus menu.hint_power_leds Configure power-button LEDs behavior @@ -2062,12 +2089,14 @@ mpkey.stop Stop mpkey.subtitle Subtitles mpkey.time Show time netfs.active_onoff Entry active +netfs.automount_edit Edit auto.net netfs.automount_head NetFS settings netfs.automount_intro /etc/auto.net entries netfs.automount_intro_mounts edit NetFS mounts netfs.automount_write save settings and write auto.net netfs.automount_write_info auto.net written netfs.dump dump +netfs.fstab_edit Edit fstab netfs.fstab_domount mount NetFS directory netfs.fstab_domount_info Running '/etc/init.d/fstab start_netfs' netfs.fstab_doumount unmount NetFS directory @@ -2095,7 +2124,7 @@ networkmenu.ipaddress IP address networkmenu.mount Edit network shares networkmenu.nameserver Name server networkmenu.netmask Netmask -networkmenu.ntpatboot Sync time while booting +networkmenu.ntpatboot Syncronize time at boot networkmenu.ntpenable Syncronisation via networkmenu.ntprefresh NTP/DVB-Refresh networkmenu.ntprefresh_hint1 NTP/DVB-Time-Sync in minutes @@ -2141,8 +2170,6 @@ nfs.umounterror error umounting volume nfs.username username nfsmenu.head NFS/CIFS/FTPFS settings ni NI \o/ -nimenu.head NI-Settings -nimenu.head_special Special settings nvod.percentage (%d%% over) nvod.starting (starting in %d min) nvodselector.directormode Director mode @@ -2281,32 +2308,8 @@ pinprotection.head Enter PIN code pinprotection.wrongcode PIN-Code was wrong! Try again. plugin.hide_no Show plugin.hide_yes Hide -plugin.item_crond_desc Cron daemon allows scheduled tasks -plugin.item_crond_name crond -plugin.item_djmount_desc UPnP AV Client allows to mount media-servers -plugin.item_djmount_name djmount -plugin.item_dropbear_desc SSH2 server und client -plugin.item_dropbear_name Dropbear -plugin.item_emmremind_desc Display different EMM's to the Infoicons -plugin.item_emmremind_name EMM-Change Notification -plugin.item_fcm_desc Shows FRITZ!Box call list and much more ... -plugin.item_fcm_name FritzCallMonitor -plugin.item_inadyn_desc DynDNS client -plugin.item_inadyn_name Inadyn -plugin.item_nfsserver_desc NFS kernel server -plugin.item_nfsserver_name NFS-Server -plugin.item_sambaserver_desc Server-Message-Block-Protokoll (SMB) implementation -plugin.item_sambaserver_name Samba-Server -plugin.item_tuxcald_desc Calender-plugin -plugin.item_tuxcald_name TuxCal -plugin.item_tuxmaild_desc Mailplugin (IMAP/SMTP) -plugin.item_tuxmaild_name TuxMail -plugin.item_ushare_desc A/V and DLNA Mediaserver -plugin.item_ushare_name uShare -plugin.item_xupnpd_desc eXtensible UPnP agent - DLNA Mediaserver for IPTV -plugin.item_xupnpd_name xupnpd -plugins.control Control plugins and services -plugins.hdd_dir Plugin HDD dir. +plugins.control Control plugins +plugins.hdd_dir External plugin directory plugins.hide Hide or show plugins plugins.no_plugin No plugin plugins.result plugin output @@ -2557,7 +2560,7 @@ settings.teams.backup Save settings.teams.backup_failed Backup failed! settings.teams.backup_to Saving to settings.teams.help Help -settings.teams.help_text In this menu, settings can be saved and restored,\nwhich are compatible with these Team-Images:\n \n - BluePeer HD\n - NI CS-Image\n \nSaved will be:\n \n * Channellists\n * Timer and Timer-Settings\n * Network-Settings (LAN and WLAN) +settings.teams.help_text In this menu can settings be saved and restored,\nwhich are compatible with following Team-Images:\n \n - BluePeer HD\n - NI-Image\n \nSaved will be:\n \n * Channellists\n * Timer and timer-settings\n * Network-settings (LAN and WLAN) settings.teams.restore Restore settings.teams.restore_warn This will replace all cross-team settings and reboot\nContinue ? shoutcast.dev_id SHOUTcast Dev ID diff --git a/data/y-web/Y_NI_Camd-control.yhtm b/data/y-web/Y_NI_Camd-control.yhtm index 5d22935c4..be85be64c 100644 --- a/data/y-web/Y_NI_Camd-control.yhtm +++ b/data/y-web/Y_NI_Camd-control.yhtm @@ -2,6 +2,7 @@ {=var-set:x_cs2gbox={=script:Y_NI_Tools is_exec cs2gbox=}=} {=var-set:x_osemu={=script:Y_NI_Tools is_exec osemu=}=} {=var-set:x_oscam={=script:Y_NI_Tools is_exec oscam=}=} +{=var-set:x_ncam={=script:Y_NI_Tools is_exec ncam=}=} {=var-set:x_doscam={=script:Y_NI_Tools is_exec doscam=}=} {=var-set:x_mgcamd={=script:Y_NI_Tools is_exec mgcamd=}=} {=var-set:x_newcs={=script:Y_NI_Tools is_exec newcs=}=} @@ -10,11 +11,13 @@ {=var-set:r_cs2gbox={=script:Y_NI_Tools is_running cs2gbox=}=} {=var-set:r_osemu={=script:Y_NI_Tools is_running osemu=}=} {=var-set:r_oscam={=script:Y_NI_Tools is_running oscam=}=} +{=var-set:r_ncam={=script:Y_NI_Tools is_running ncam=}=} {=var-set:r_doscam={=script:Y_NI_Tools is_running doscam=}=} {=var-set:r_mgcamd={=script:Y_NI_Tools is_running mgcamd=}=} {=var-set:r_newcs={=script:Y_NI_Tools is_running newcs=}=} {=var-set:oscamport={=script:Y_NI_Tools get_oscam_webif_port=}=} +{=var-set:ncamport={=script:Y_NI_Tools get_ncam_webif_port=}=} {=var-set:doscamport={=script:Y_NI_Tools get_doscam_webif_port=}=} {=include-block:Y_NI_Blocks.txt;head=} @@ -312,6 +315,77 @@ input[type="button"], .tools select { + {=var-set:camd=ncam=} + + + {=if-equal:{=var-get:r_{=var-get:camd=}=}~true~ + {=var-get:camd=} + ~ + {=var-get:camd=} + =} + + + {=script:Y_NI_Tools vinfo {=var-get:camd=}=} + + {=if-equal:{=var-get:x_{=var-get:camd=}=}~true~ + {=if-equal:{=var-get:r_{=var-get:camd=}=}~true~ + + + + + + + ~ + + + + + + =} + ~ + + + + + =} + + + + + + + {=var-set:camd=doscam=} diff --git a/data/y-web/languages/Deutsch b/data/y-web/languages/Deutsch index 5ae9f2abc..fdd02bcd2 100644 --- a/data/y-web/languages/Deutsch +++ b/data/y-web/languages/Deutsch @@ -659,6 +659,7 @@ ni.camd-tools.pidinfo=PID-Informationen ni.camd-tools.mgshareinfo=NewCamd Verbindungen ni.camd-tools.cs2gboxinfo=Allgemeine Informationen ni.camd-tools.oscamversion=Allgemeine Informationen +ni.camd-tools.ncamversion=Allgemeine Informationen ni.camd-tools.doscamversion=Allgemeine Informationen ni.pzapit-control=PZapit diff --git a/data/y-web/languages/English b/data/y-web/languages/English index 229aca6e6..d8bc53303 100644 --- a/data/y-web/languages/English +++ b/data/y-web/languages/English @@ -662,6 +662,7 @@ ni.camd-tools.pidinfo=PID-Informations ni.camd-tools.mgshareinfo=NewCamd Lines ni.camd-tools.cs2gboxinfo=Common Informations ni.camd-tools.oscamversion=Common Informations +ni.camd-tools.ncamversion=Common Informations ni.camd-tools.doscamversion=Common Informations ni.pzapit-control=PZapit diff --git a/data/y-web/scripts/Y_NI_Camd-control.sh b/data/y-web/scripts/Y_NI_Camd-control.sh index 4ed92955e..d36c4dc83 100644 --- a/data/y-web/scripts/Y_NI_Camd-control.sh +++ b/data/y-web/scripts/Y_NI_Camd-control.sh @@ -88,6 +88,20 @@ case "$1" in echo "[$BNAME] oscam-reset" /etc/init.d/emu reset oscam >/dev/console ;; + ncam_start) + echo "[$BNAME] ncam-start" + touch /var/etc/.ncam + /etc/init.d/emu start ncam >/dev/console + ;; + ncam_stop) + echo "[$BNAME] ncam-stop" + rm -rf /var/etc/.ncam + /etc/init.d/emu stop ncam >/dev/console + ;; + ncam_reset) + echo "[$BNAME] ncam-reset" + /etc/init.d/emu reset ncam >/dev/console + ;; doscam_start) echo "[$BNAME] doscam-start" touch /var/etc/.doscam diff --git a/data/y-web/scripts/Y_NI_Tools.sh b/data/y-web/scripts/Y_NI_Tools.sh index 35296e119..fb0e30255 100644 --- a/data/y-web/scripts/Y_NI_Tools.sh +++ b/data/y-web/scripts/Y_NI_Tools.sh @@ -258,6 +258,9 @@ case "$action" in oscamstop) %(PRIVATE_HTTPDDIR)/scripts/Y_NI_Camd-control.sh oscam_stop;; oscamstart) %(PRIVATE_HTTPDDIR)/scripts/Y_NI_Camd-control.sh oscam_start;; oscamreset) %(PRIVATE_HTTPDDIR)/scripts/Y_NI_Camd-control.sh oscam_reset;; + ncamstop) %(PRIVATE_HTTPDDIR)/scripts/Y_NI_Camd-control.sh ncam_stop;; + ncamstart) %(PRIVATE_HTTPDDIR)/scripts/Y_NI_Camd-control.sh ncam_start;; + ncamreset) %(PRIVATE_HTTPDDIR)/scripts/Y_NI_Camd-control.sh ncam_reset;; doscamstop) %(PRIVATE_HTTPDDIR)/scripts/Y_NI_Camd-control.sh doscam_stop;; doscamstart) %(PRIVATE_HTTPDDIR)/scripts/Y_NI_Camd-control.sh doscam_start;; doscamreset) %(PRIVATE_HTTPDDIR)/scripts/Y_NI_Camd-control.sh doscam_reset;; @@ -290,6 +293,7 @@ case "$action" in ecminfo) file2msg /tmp/ecm.info "ecm-info";; pidinfo) file2msg /tmp/pid.info "pid-info";; oscamversion) file2msg /tmp/.oscam/oscam.version "oscam-info";; + ncamversion) file2msg /tmp/.ncam/ncam.version "ncam-info";; doscamversion) file2msg /tmp/.doscam/doscam.version "doscam-info";; get_oscam_webif_port) @@ -300,6 +304,14 @@ case "$action" in printf "%s" ${_port:-8080} ;; + get_ncam_webif_port) + if [ -e %(CONFIGDIR)/ncam.conf ]; then + _port=$(grep -m 1 -i "^[:space:]*httpport" %(CONFIGDIR)/ncam.conf | cut -d'=' -f2) + _port=$(echo $_port | dos2unix -u) + fi + printf "%s" ${_port:-8181} + ;; + get_doscam_webif_port) if [ -e %(CONFIGDIR)/doscam.cfg ]; then _port=$(grep -m 1 -i "^[:space:]*httpport" %(CONFIGDIR)/doscam.cfg | cut -d'=' -f2) diff --git a/src/global.h b/src/global.h index fadfa39cf..b7f06daaf 100644 --- a/src/global.h +++ b/src/global.h @@ -53,8 +53,6 @@ #define LOGODIR ICONSDIR "/logo" #define LOGODIR_VAR ICONSDIR_VAR "/logo" -#define FLAGDIR "/var/etc" //NI - NEUTRINO_CPP SNeutrinoSettings g_settings; NEUTRINO_CPP SglobalInfo g_info; diff --git a/src/gui/Makefile.am b/src/gui/Makefile.am index 5b7edcfe7..e8e307320 100644 --- a/src/gui/Makefile.am +++ b/src/gui/Makefile.am @@ -54,6 +54,7 @@ libneutrino_gui_a_SOURCES = \ buildinfo.cpp \ channellist.cpp \ cec_setup.cpp \ + daemon_control.cpp \ dboxinfo.cpp \ epgplus.cpp \ epgview.cpp \ @@ -76,7 +77,6 @@ libneutrino_gui_a_SOURCES = \ network_service.cpp \ network_setup.cpp \ nfs.cpp \ - ni_menu.cpp \ opkg_manager.cpp \ osd_helpers.cpp \ osd_progressbar_setup.cpp \ diff --git a/src/gui/daemon_control.cpp b/src/gui/daemon_control.cpp new file mode 100644 index 000000000..8b58f8272 --- /dev/null +++ b/src/gui/daemon_control.cpp @@ -0,0 +1,227 @@ +/* + daemon_control + + (C) 2017 NI-Team + + 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 . +*/ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include + +#include +#include +#include + +#include + +CDaemonControlMenu::CDaemonControlMenu() +{ + width = 40; +} + +CDaemonControlMenu::~CDaemonControlMenu() +{ +} + +int CDaemonControlMenu::exec(CMenuTarget* parent, const std::string & /*actionKey*/) +{ + if (parent) + parent->hide(); + + return show(); +} + +typedef struct daemons_data_t +{ + neutrino_locale_t name; + neutrino_locale_t desc; + const char * icon; + const char * flag; + int daemon_exist; // currently unused + int flag_exist; +} +daemons_data_struct; + +daemons_data_t daemons_data[]= +{ + {LOCALE_DAEMON_ITEM_FCM_NAME, LOCALE_DAEMON_ITEM_FCM_DESC, NEUTRINO_ICON_HINT_FCM, "fritzcallmonitor", 0 ,0}, + {LOCALE_DAEMON_ITEM_NFSSERVER_NAME, LOCALE_DAEMON_ITEM_NFSSERVER_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "nfsd", 0 ,0}, + {LOCALE_DAEMON_ITEM_SAMBASERVER_NAME, LOCALE_DAEMON_ITEM_SAMBASERVER_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "samba", 0 ,0}, + {LOCALE_DAEMON_ITEM_TUXCALD_NAME, LOCALE_DAEMON_ITEM_TUXCALD_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "tuxcald", 0 ,0}, + {LOCALE_DAEMON_ITEM_TUXMAILD_NAME, LOCALE_DAEMON_ITEM_TUXMAILD_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "tuxmaild", 0 ,0}, + {LOCALE_DAEMON_ITEM_EMMREMIND_NAME, LOCALE_DAEMON_ITEM_EMMREMIND_DESC, NEUTRINO_ICON_HINT_EMMRD, "emmrd", 0 ,0}, + {LOCALE_DAEMON_ITEM_INADYN_NAME, LOCALE_DAEMON_ITEM_INADYN_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "inadyn", 0 ,0}, + {LOCALE_DAEMON_ITEM_DROPBEAR_NAME, LOCALE_DAEMON_ITEM_DROPBEAR_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "dropbear", 0 ,0}, + {LOCALE_DAEMON_ITEM_DJMOUNT_NAME, LOCALE_DAEMON_ITEM_DJMOUNT_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "djmount", 0 ,0}, + {LOCALE_DAEMON_ITEM_USHARE_NAME, LOCALE_DAEMON_ITEM_USHARE_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "ushare", 0 ,0}, + {LOCALE_DAEMON_ITEM_XUPNPD_NAME, LOCALE_DAEMON_ITEM_XUPNPD_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "xupnpd", 0 ,0}, + {LOCALE_DAEMON_ITEM_CROND_NAME, LOCALE_DAEMON_ITEM_CROND_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "crond", 0 ,0} +}; +#define DAEMONS_COUNT (sizeof(daemons_data)/sizeof(struct daemons_data_t)) + +int CDaemonControlMenu::show() +{ + int daemon_shortcut = 0; + + std::ostringstream buf; + + CMenuWidget* daemonControlMenu = new CMenuWidget(LOCALE_DAEMON_CONTROL, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_PLUGINS_HIDE); + daemonControlMenu->addIntroItems(); + + CMenuOptionChooser *mc; + for (unsigned int i = 0; i < DAEMONS_COUNT; i++) + { + buf.str(""); + buf << FLAGDIR << "/." << daemons_data[i].flag; + const char *flagfile = buf.str().c_str(); + + daemons_data[i].flag_exist = file_exists(flagfile); + + CFlagFileNotifier * flagFileNotifier = new CFlagFileNotifier(daemons_data[i].flag); + + mc = new CMenuOptionChooser(daemons_data[i].name, &daemons_data[i].flag_exist, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, flagFileNotifier, CRCInput::convertDigitToKey(daemon_shortcut++)); + mc->setHint(daemons_data[i].icon, daemons_data[i].desc); + daemonControlMenu->addItem(mc); + } + + int res = daemonControlMenu->exec(NULL,""); + daemonControlMenu->hide(); + return res; +} + +// ---------------------------------------------------------------------------- + +CCamdControlMenu::CCamdControlMenu() +{ + width = 40; +} + +CCamdControlMenu::~CCamdControlMenu() +{ +} + +int CCamdControlMenu::exec(CMenuTarget* parent, const std::string & /*actionKey*/) +{ + if (parent) + parent->hide(); + + return show(); +} + +typedef struct camds_data_t +{ + neutrino_locale_t name; + neutrino_locale_t desc; + const char * camd_name; + const char * camd_file; + int camd_exist; + int camd_runs; +} +camds_data_struct; + +camds_data_t camds_data[]= +{ + {LOCALE_CAMD_ITEM_MGCAMD_NAME, LOCALE_CAMD_ITEM_MGCAMD_HINT, "MGCAMD", "mgcamd", 0, 0}, + {LOCALE_CAMD_ITEM_DOSCAM_NAME, LOCALE_CAMD_ITEM_DOSCAM_HINT, "DOSCAM", "doscam", 0, 0}, + {LOCALE_CAMD_ITEM_NCAM_NAME, LOCALE_CAMD_ITEM_NCAM_HINT, "NCAM", "ncam", 0, 0}, + {LOCALE_CAMD_ITEM_OSCAM_NAME, LOCALE_CAMD_ITEM_OSCAM_HINT, "OSCAM", "oscam", 0, 0}, + {LOCALE_CAMD_ITEM_OSEMU_NAME, LOCALE_CAMD_ITEM_OSEMU_HINT, "OSEMU", "osemu", 0, 0}, + {LOCALE_CAMD_ITEM_NEWCS_NAME, LOCALE_CAMD_ITEM_NEWCS_HINT, "NEWCS", "newcs", 0, 0}, + {LOCALE_CAMD_ITEM_GBOX_NAME, LOCALE_CAMD_ITEM_GBOX_HINT, "GBOX.NET", "gbox", 0, 0}, + {LOCALE_CAMD_ITEM_CS2GBOX_NAME, LOCALE_CAMD_ITEM_CS2GBOX_HINT, "CS2GBOX", "cs2gbox", 0, 0} +}; +#define CAMDS_COUNT (sizeof(camds_data)/sizeof(struct camds_data_t)) + +int CCamdControlMenu::show() +{ + int camd_shortcut = 0; + + std::ostringstream buf; + char *buffer; + ssize_t read; + size_t len; + FILE *fh; + + CMenuWidget* camdControlMenu = new CMenuWidget(LOCALE_CAMD_CONTROL, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_CAMD_CONTROL); + camdControlMenu->addIntroItems(); + + // camd reset + CMenuForwarder *mf = new CMenuForwarder(LOCALE_CAMD_RESET, true, NULL, CNeutrinoApp::getInstance(), "camd_reset", CRCInput::RC_red); + mf->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_CAMD_RESET); + camdControlMenu->addItem(mf); + + camdControlMenu->addItem(GenericMenuSeparatorLine); + + CMenuOptionChooser *mc; + for (unsigned int i = 0; i < CAMDS_COUNT; i++) + { + std::string vinfo = ""; + + buf.str(""); + buf << "/var/bin/" << camds_data[i].camd_file; + + camds_data[i].camd_exist = file_exists(buf.str().c_str()); + + if (camds_data[i].camd_exist) + { + buf.str(""); + buf << "vinfo " << camds_data[i].camd_name << " /var/bin/" << camds_data[i].camd_file; + + buffer = NULL; + if ((fh = popen(buf.str().c_str(), "r"))) + { + while ((read = getline(&buffer, &len, fh)) != -1) + vinfo += buffer; + pclose(fh); + if (buffer) + free(buffer); + } + else + printf("[vinfo] popen error\n" ); + } + + if (getpidof(camds_data[i].camd_file)) + camds_data[i].camd_runs = 1; + else + camds_data[i].camd_runs = 0; + + //remove linebreaks from vinfo output + std::string::size_type spos = vinfo.find_first_of("\r\n"); + while (spos != std::string::npos) + { + vinfo.replace(spos, 1, " "); + spos = vinfo.find_first_of("\r\n"); + } + std::string hint(g_Locale->getText(camds_data[i].desc)); + hint.append("\nvinfo: " + vinfo); + + CFlagFileNotifier * flagFileNotifier = new CFlagFileNotifier(camds_data[i].camd_file); + + mc = new CMenuOptionChooser(camds_data[i].name, &camds_data[i].camd_runs, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, camds_data[i].camd_exist, flagFileNotifier, CRCInput::convertDigitToKey(camd_shortcut++)); + mc->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, hint); + camdControlMenu->addItem(mc); + } + + int res = camdControlMenu->exec(NULL,""); + camdControlMenu->hide(); + return res; +} diff --git a/src/gui/daemon_control.h b/src/gui/daemon_control.h new file mode 100644 index 000000000..9f218a006 --- /dev/null +++ b/src/gui/daemon_control.h @@ -0,0 +1,57 @@ +/* + daemon_control + + (C) 2017 NI-Team + + 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 __daemon_control__ +#define __daemon_control__ + +#include + +class CDaemonControlMenu : public CMenuTarget +{ + private: + int show(); + + protected: + int width; + + public: + CDaemonControlMenu(); + ~CDaemonControlMenu(); + int exec(CMenuTarget* parent, const std::string & actionKey); +}; + +// ---------------------------------------------------------------------------- + +class CCamdControlMenu : public CMenuTarget +{ + private: + int show(); + + protected: + int width; + + public: + CCamdControlMenu(); + ~CCamdControlMenu(); + int exec(CMenuTarget* parent, const std::string & actionKey); +}; + +#endif diff --git a/src/gui/infoicons_setup.cpp b/src/gui/infoicons_setup.cpp index e6f35e904..f66aaf716 100644 --- a/src/gui/infoicons_setup.cpp +++ b/src/gui/infoicons_setup.cpp @@ -147,8 +147,8 @@ int CInfoIconsSetup::menu() int shortcut_delflag = 0; int shortcut_flagname = 0; - CMenuWidget* infoiconsMenu = new CMenuWidget(LOCALE_INFOICONS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_INFOICONS); - infoiconsMenu->addIntroItems(); + CMenuWidget* infoiconsMenu = new CMenuWidget(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_INFOICONS); + infoiconsMenu->addIntroItems(LOCALE_INFOICONS_HEAD); //FIXME if Iconbar is active, set selected from LOCALE_INFOICONS_SKIN to LOCALE_INFOICONS_MODEICON if(g_settings.mode_icons && (infoiconsMenu->getSelected() == 4)) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index 0cd5cb983..0e3f994af 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -1030,8 +1030,8 @@ void CInfoViewerBB::paint_cam_icons() std::ostringstream buf; int emu_pic_startx = g_InfoViewer->ChanInfoX + (g_settings.infobar_casystem_frame ? 20 : 10); int py = g_InfoViewer->BoxEndY + (g_settings.infobar_casystem_frame ? 4 : 2); - const char *icon_name[] = {"mgcamd","doscam","oscam","osemu","newcs","gbox"}; - static int icon_space[] = {10,10,10,10,10,10}; + const char *icon_name[] = {"mgcamd","doscam","ncam","oscam","osemu","newcs","gbox"}; + static int icon_space[] = {10,10,10,10,10,10,10}; int icon_sizeH = 0; int icon_sizeW = 0; bool useCI = CCamManager::getInstance()->getUseCI(); diff --git a/src/gui/lcd4l_setup.cpp b/src/gui/lcd4l_setup.cpp index c7fcaa614..c8c4f847d 100644 --- a/src/gui/lcd4l_setup.cpp +++ b/src/gui/lcd4l_setup.cpp @@ -127,8 +127,8 @@ int CLCD4lSetup::show() int temp_lcd4l_skin = g_settings.lcd4l_skin; // lcd4l setup - CMenuWidget* lcd4lSetup = new CMenuWidget(LOCALE_LCD4L_SUPPORT, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_LCD4L_SETUP); - lcd4lSetup->addIntroItems(); + CMenuWidget* lcd4lSetup = new CMenuWidget(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_LCD4L_SETUP); + lcd4lSetup->addIntroItems(LOCALE_LCD4L_SUPPORT); mc = new CMenuOptionChooser(LOCALE_LCD4L_SUPPORT, &g_settings.lcd4l_support, LCD4L_SUPPORT_OPTIONS, LCD4L_SUPPORT_OPTION_COUNT, true, this, CRCInput::RC_red); mc->setHint(NEUTRINO_ICON_HINT_LCD4L, LOCALE_MENU_HINT_LCD4L_SUPPORT); diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index 14a4384d8..8d9601719 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -39,8 +39,11 @@ #include #include #include +#include #include +#include #include +#include #include #include @@ -143,6 +146,10 @@ int CMiscMenue::exec(CMenuTarget* parent, const std::string &actionKey) { return showMiscSettingsMenuOnlineServices(); } + else if(actionKey == "plugins") + { + return showMiscSettingsMenuPlugins(); + } else if(actionKey == "epg_read_now") { printf("Reading epg cache from %s....\n", g_settings.epg_dir.c_str()); @@ -304,6 +311,23 @@ int CMiscMenue::showMiscSettingsMenu() misc_menue.addItem( new CMenuForwarder("CPU", true, NULL, &misc_menue_cpu, NULL, CRCInput::RC_5)); #endif /*CPU_FREQ*/ + // Infoicons Setup + CInfoIconsSetup infoicons_setup; + mf = new CMenuForwarder(LOCALE_INFOICONS_HEAD, true, NULL, &infoicons_setup, NULL, CRCInput::RC_6); + mf->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_INFOICONS_HEAD); + misc_menue.addItem(mf); + + // LCD4Linux Setup + CLCD4lSetup lcd4lSetup; + mf = new CMenuForwarder(LOCALE_LCD4L_SUPPORT, true, NULL, &lcd4lSetup, NULL, CRCInput::RC_7); + mf->setHint(NEUTRINO_ICON_HINT_LCD4L, LOCALE_MENU_HINT_LCD4L_SUPPORT); + misc_menue.addItem(mf); + + // plugins + mf = new CMenuForwarder(LOCALE_PLUGINS_CONTROL, true, NULL, this, "plugins", CRCInput::RC_8); + mf->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_PLUGINS_CONTROL); + misc_menue.addItem(mf); + int res = misc_menue.exec(NULL, ""); delete fanNotifier; @@ -340,16 +364,6 @@ void CMiscMenue::showMiscSettingsMenuGeneral(CMenuWidget *ms_general) ms_general->addItem(mn); } - ms_general->addItem(GenericMenuSeparatorLine); - - CMenuForwarder * mf = new CMenuForwarder(LOCALE_PLUGINS_HDD_DIR, true, g_settings.plugin_hdd_dir, this, "plugin_dir"); - mf->setHint("", LOCALE_MENU_HINT_PLUGINS_HDD_DIR); - ms_general->addItem(mf); - - mf = new CMenuForwarder(LOCALE_MPKEY_PLUGIN, true, g_settings.movieplayer_plugin, this, "movieplayer_plugin"); - mf->setHint("", LOCALE_MENU_HINT_MOVIEPLAYER_PLUGIN); - ms_general->addItem(mf); - //set debug level ms_general->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_DEBUG)); CMenuOptionChooser * md = new CMenuOptionChooser(LOCALE_DEBUG_LEVEL, &debug, DEBUG_MODE_OPTIONS, DEBUG_MODES, true); @@ -617,6 +631,32 @@ int CMiscMenue::showMiscSettingsMenuOnlineServices() return res; } +// plugins +int CMiscMenue::showMiscSettingsMenuPlugins() +{ + CMenuWidget *ms_plugins = new CMenuWidget(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_MISCSETUP_PLUGINS); + ms_plugins->addIntroItems(LOCALE_PLUGINS_CONTROL); + + CMenuForwarder * mf = new CMenuForwarder(LOCALE_PLUGINS_HDD_DIR, true, g_settings.plugin_hdd_dir, this, "plugin_dir"); + mf->setHint("", LOCALE_MENU_HINT_PLUGINS_HDD_DIR); + ms_plugins->addItem(mf); + + mf = new CMenuForwarder(LOCALE_MPKEY_PLUGIN, true, g_settings.movieplayer_plugin, this, "movieplayer_plugin"); + mf->setHint("", LOCALE_MENU_HINT_MOVIEPLAYER_PLUGIN); + ms_plugins->addItem(mf); + + ms_plugins->addItem(GenericMenuSeparatorLine); + + CPluginsHideMenu pluginsHideMenu; + mf = new CMenuForwarder(LOCALE_PLUGINS_HIDE, true, NULL, &pluginsHideMenu, NULL, CRCInput::RC_red); + mf->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_PLUGINS_HIDE); + ms_plugins->addItem(mf); + + int res = ms_plugins->exec(NULL, ""); + delete ms_plugins; + return res; +} + #ifdef CPU_FREQ //CPU void CMiscMenue::showMiscSettingsMenuCPUFreq(CMenuWidget *ms_cpu) diff --git a/src/gui/miscsettings_menu.h b/src/gui/miscsettings_menu.h index 61e01b561..f96f1ae59 100644 --- a/src/gui/miscsettings_menu.h +++ b/src/gui/miscsettings_menu.h @@ -69,6 +69,7 @@ class CMiscMenue : public CMenuTarget, CChangeObserver int showMiscSettingsMenuEnergy(); int showMiscSettingsMenuChanlist(); int showMiscSettingsMenuOnlineServices(); + int showMiscSettingsMenuPlugins(); #ifdef CPU_FREQ void showMiscSettingsMenuCPUFreq(CMenuWidget *ms_cpu); #endif /*CPU_FREQ*/ diff --git a/src/gui/netfs_setup.cpp b/src/gui/netfs_setup.cpp index 830e7c410..8826108e0 100644 --- a/src/gui/netfs_setup.cpp +++ b/src/gui/netfs_setup.cpp @@ -54,7 +54,6 @@ CNETFSMountGui::CNETFSMountGui() // FIXME #warning move probing from exec() to fsmounter m_nfs_sup = CFSMounter::FS_UNPROBED; m_cifs_sup = CFSMounter::FS_UNPROBED; - m_lufs_sup = CFSMounter::FS_UNPROBED; width = 50; @@ -77,7 +76,6 @@ std::string CNETFSMountGui::getEntryString(int mt, int i) switch(g_settings.netfs[mt][i].type) { case CFSMounter::NFS: res = "NFS " + g_settings.netfs[mt][i].ip + ":"; break; case CFSMounter::CIFS: res = "CIFS //" + g_settings.netfs[mt][i].ip + "/"; break; - case CFSMounter::LUFS: res = "FTPS " + g_settings.netfs[mt][i].ip + "/"; break; } if (g_settings.netfs[mt][i].dir.empty() || g_settings.netfs[mt][i].local_dir.empty()) return ""; @@ -362,10 +360,7 @@ int CNETFSMountGui::exec( CMenuTarget* parent, const std::string & actionKey ) if (m_cifs_sup == CFSMounter::FS_UNPROBED) m_cifs_sup = CFSMounter::fsSupported(CFSMounter::CIFS); - if (m_lufs_sup == CFSMounter::FS_UNPROBED) - m_lufs_sup = CFSMounter::fsSupported(CFSMounter::LUFS); - - printf("SUPPORT: NFS: %d, CIFS: %d, LUFS: %d\n", m_nfs_sup, m_cifs_sup, m_lufs_sup); + printf("SUPPORT: NFS: %d, CIFS: %d\n", m_nfs_sup, m_cifs_sup); if (actionKey.empty() || actionKey.substr(0,4)=="menu") { @@ -478,7 +473,7 @@ int CNETFSMountGui::exec( CMenuTarget* parent, const std::string & actionKey ) int CNETFSMountGui::menu(int mt) { - std::string hint = SNeutrinoSettings::FSTAB ? g_Locale->getText(LOCALE_MENU_HINT_NETFS_FSTAB_WRITE) : g_Locale->getText(LOCALE_MENU_HINT_NETFS_AUTOMOUNT_WRITE); + std::string hint = (mt == SNeutrinoSettings::FSTAB) ? g_Locale->getText(LOCALE_MENU_HINT_NETFS_FSTAB_WRITE) : g_Locale->getText(LOCALE_MENU_HINT_NETFS_AUTOMOUNT_WRITE); std::string txt; CMenuWidget mountMenuW(mt == SNeutrinoSettings::FSTAB ? LOCALE_NETFS_FSTAB_HEAD : LOCALE_NETFS_AUTOMOUNT_HEAD, NEUTRINO_ICON_NETWORK, width, mt == SNeutrinoSettings::FSTAB ? MN_WIDGET_ID_NETFS_FSTAB : MN_WIDGET_ID_NETFS_AUTOMOUNT); @@ -550,8 +545,7 @@ int CNETFSMountGui::menu(int mt) const CMenuOptionChooser::keyval NFS_TYPE_OPTIONS[] = { { CFSMounter::NFS , LOCALE_NFS_TYPE_NFS }, - { CFSMounter::CIFS, LOCALE_NFS_TYPE_CIFS } /*, - { CFSMounter::LUFS, LOCALE_NFS_TYPE_LUFS } */ + { CFSMounter::CIFS, LOCALE_NFS_TYPE_CIFS } }; #define NFS_TYPE_OPTION_COUNT (sizeof(NFS_TYPE_OPTIONS)/sizeof(CMenuOptionChooser::keyval)) diff --git a/src/gui/netfs_setup.h b/src/gui/netfs_setup.h index e45c1ee53..948379c64 100644 --- a/src/gui/netfs_setup.h +++ b/src/gui/netfs_setup.h @@ -44,7 +44,6 @@ class CNETFSMountGui : public CMenuTarget CFSMounter::FS_Support m_nfs_sup; CFSMounter::FS_Support m_cifs_sup; - CFSMounter::FS_Support m_lufs_sup; int vinit(int mt); std::string checkVarPath(const std::string &file); /// returns path for persistent var partitions diff --git a/src/gui/network_setup.cpp b/src/gui/network_setup.cpp index bca1e993c..e5e60bdc3 100644 --- a/src/gui/network_setup.cpp +++ b/src/gui/network_setup.cpp @@ -46,6 +46,7 @@ #include #include +#include #include #include @@ -416,20 +417,20 @@ void CNetworkSetup::showNetworkNTPSetup(CMenuWidget *menu_ntp) CStringInput * networkSettings_NtpRefresh = new CStringInput(LOCALE_NETWORKMENU_NTPREFRESH, &g_settings.network_ntprefresh, 3,LOCALE_NETWORKMENU_NTPREFRESH_HINT1, LOCALE_NETWORKMENU_NTPREFRESH_HINT2 , "0123456789 ", sectionsdConfigNotifier); CMenuOptionChooser *ntp1 = new CMenuOptionChooser(LOCALE_NETWORKMENU_NTPENABLE, &g_settings.network_ntpenable, OPTIONS_NTPENABLE_OPTIONS, OPTIONS_NTPENABLE_OPTION_COUNT, true, sectionsdConfigNotifier); + CMenuOptionChooser *ntp9 = new CMenuOptionChooser(LOCALE_NETWORKMENU_NTPATBOOT, &g_settings.network_ntpatboot, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); //NI CMenuForwarder *ntp2 = new CMenuDForwarder( LOCALE_NETWORKMENU_NTPSERVER, true , g_settings.network_ntpserver, networkSettings_NtpServer ); CMenuForwarder *ntp3 = new CMenuDForwarder( LOCALE_NETWORKMENU_NTPREFRESH, true , g_settings.network_ntprefresh, networkSettings_NtpRefresh ); - CMenuOptionChooser *ntp9 = new CMenuOptionChooser(LOCALE_NETWORKMENU_NTPATBOOT, &g_settings.network_ntpatboot, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); //NI ntp1->setHint("", LOCALE_MENU_HINT_NET_NTPENABLE); + ntp9->setHint("", LOCALE_MENU_HINT_NET_NTPATBOOT); //NI ntp2->setHint("", LOCALE_MENU_HINT_NET_NTPSERVER); ntp3->setHint("", LOCALE_MENU_HINT_NET_NTPREFRESH); - ntp9->setHint("", LOCALE_MENU_HINT_NET_NTPATBOOT); //NI menu_ntp->addIntroItems(LOCALE_NETWORKMENU_NTPTITLE); menu_ntp->addItem( ntp1); + menu_ntp->addItem( ntp9); //NI menu_ntp->addItem( ntp2); menu_ntp->addItem( ntp3); - menu_ntp->addItem( ntp9); //NI } #ifdef ENABLE_GUI_MOUNT @@ -442,6 +443,20 @@ void CNetworkSetup::showNetworkNFSMounts(CMenuWidget *menu_nfs) mf = new CMenuDForwarder(LOCALE_NFS_UMOUNT, true, NULL, new CNFSUmountGui(), NULL, CRCInput::RC_green); mf->setHint("", LOCALE_MENU_HINT_NET_NFS_UMOUNT); menu_nfs->addItem(mf); + + menu_nfs->addItem(GenericMenuSeparatorLine); + + CNETFSMountGui *netfsMountGui = new CNETFSMountGui(); + const char *used_fstab = netfsMountGui->fstabPath.c_str(); + const char *used_autonet = netfsMountGui->autoPath.c_str(); + + CMenuForwarder *fstab = new CMenuForwarder(LOCALE_NETFS_FSTAB_EDIT, true, used_fstab, netfsMountGui, "menu fstab", CRCInput::RC_yellow); + fstab->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_NETFS_MENU_MAIN_FSTAB); + menu_nfs->addItem(fstab); + + CMenuForwarder *automount = new CMenuForwarder(LOCALE_NETFS_AUTOMOUNT_EDIT, true, used_autonet, netfsMountGui, "menu automount", CRCInput::RC_blue); + automount->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_NETFS_MENU_MAIN_AUTOMOUNT); + menu_nfs->addItem(automount); } #endif diff --git a/src/gui/ni_menu.cpp b/src/gui/ni_menu.cpp deleted file mode 100644 index 43aaa0cf6..000000000 --- a/src/gui/ni_menu.cpp +++ /dev/null @@ -1,469 +0,0 @@ -/* - ni_menu - - (C) 2009-2016 NG-Team - (C) 2016 NI-Team - - 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, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -#ifdef HAVE_CONFIG_H -#include -#endif -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - -#include - -typedef struct emu_menu_data_t -{ - neutrino_locale_t name; - neutrino_locale_t hint; - const char * cam_name; - const char * cam_file; - int cam_exist; - int flag_exist; -} emu_menu_data_struct; - -emu_menu_data_t emu_menu[]= -{ - {LOCALE_CAMD_ITEM_MGCAMD_NAME, LOCALE_CAMD_ITEM_MGCAMD_HINT, "MGCAMD", "mgcamd", 0, 0}, - {LOCALE_CAMD_ITEM_DOSCAM_NAME, LOCALE_CAMD_ITEM_DOSCAM_HINT, "DOSCAM", "doscam", 0, 0}, - {LOCALE_CAMD_ITEM_OSCAM_NAME, LOCALE_CAMD_ITEM_OSCAM_HINT, "OSCAM", "oscam", 0, 0}, - {LOCALE_CAMD_ITEM_OSEMU_NAME, LOCALE_CAMD_ITEM_OSEMU_HINT, "OSEMU", "osemu", 0, 0}, - {LOCALE_CAMD_ITEM_NEWCS_NAME, LOCALE_CAMD_ITEM_NEWCS_HINT, "NEWCS", "newcs", 0, 0}, - {LOCALE_CAMD_ITEM_GBOX_NAME, LOCALE_CAMD_ITEM_GBOX_HINT, "GBOX.NET", "gbox", 0, 0}, - {LOCALE_CAMD_ITEM_CS2GBOX_NAME, LOCALE_CAMD_ITEM_CS2GBOX_HINT, "CS2GBOX", "cs2gbox", 0, 0} -}; -#define MAXEMU (sizeof(emu_menu)/sizeof(struct emu_menu_data_t)) - -typedef struct plugin_menu_data_t -{ - neutrino_locale_t name; - neutrino_locale_t desc; - const char * icon; - const char * flag; - int plugin_exist; - int flag_exist; -} plugin_menu_data_struct; - -plugin_menu_data_t plugin_menu[]= -{ - {LOCALE_PLUGIN_ITEM_FCM_NAME, LOCALE_PLUGIN_ITEM_FCM_DESC, NEUTRINO_ICON_HINT_FCM, "fritzcallmonitor", 0, 0}, - {LOCALE_PLUGIN_ITEM_NFSSERVER_NAME, LOCALE_PLUGIN_ITEM_NFSSERVER_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "nfsd", 0, 0}, - {LOCALE_PLUGIN_ITEM_SAMBASERVER_NAME, LOCALE_PLUGIN_ITEM_SAMBASERVER_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "samba", 0, 0}, - {LOCALE_PLUGIN_ITEM_TUXCALD_NAME, LOCALE_PLUGIN_ITEM_TUXCALD_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "tuxcald", 0, 0}, - {LOCALE_PLUGIN_ITEM_TUXMAILD_NAME, LOCALE_PLUGIN_ITEM_TUXMAILD_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "tuxmaild", 0, 0}, - {LOCALE_PLUGIN_ITEM_EMMREMIND_NAME, LOCALE_PLUGIN_ITEM_EMMREMIND_DESC, NEUTRINO_ICON_HINT_EMMRD, "emmrd", 0, 0}, - {LOCALE_PLUGIN_ITEM_INADYN_NAME, LOCALE_PLUGIN_ITEM_INADYN_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "inadyn", 0, 0}, - {LOCALE_PLUGIN_ITEM_DROPBEAR_NAME, LOCALE_PLUGIN_ITEM_DROPBEAR_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "dropbear", 0, 0}, - {LOCALE_PLUGIN_ITEM_DJMOUNT_NAME, LOCALE_PLUGIN_ITEM_DJMOUNT_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "djmount", 0, 0}, - {LOCALE_PLUGIN_ITEM_USHARE_NAME, LOCALE_PLUGIN_ITEM_USHARE_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "ushare", 0, 0}, - {LOCALE_PLUGIN_ITEM_XUPNPD_NAME, LOCALE_PLUGIN_ITEM_XUPNPD_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "xupnpd", 0, 0}, - {LOCALE_PLUGIN_ITEM_CROND_NAME, LOCALE_PLUGIN_ITEM_CROND_DESC, NEUTRINO_ICON_HINT_IMAGELOGO, "crond", 0, 0} -}; -#define MAXPLUGIN (sizeof(plugin_menu)/sizeof(struct plugin_menu_data_t)) - -CNIMenu::CNIMenu() -{ - width = 40; -} - -CNIMenu::~CNIMenu() -{ -} - -CNIMenu* CNIMenu::getInstance() -{ - static CNIMenu* NIMenu = NULL; - if (!NIMenu) - NIMenu = new CNIMenu(); - return NIMenu; -} - -int CNIMenu::exec(CMenuTarget* parent, const std::string &actionkey) -{ - printf("CNIMenu::exec: actionkey %s\n", actionkey.c_str()); - int res = menu_return::RETURN_REPAINT; - char *buffer; - ssize_t read; - size_t len; - FILE *fh; - std::ostringstream buf; - - if (parent) - parent->hide(); - - if (actionkey == "camd_reset") - { - CHintBox hintbox(LOCALE_CAMD_CONTROL, g_Locale->getText(LOCALE_CAMD_MSG_RESET)); - hintbox.paint(); - - buf.str(""); - buf << EMU_START_SCRIPT << " restart"; - - printf("[ni_menu.cpp] executing %s\n", buf.str().c_str()); - if (my_system(2, EMU_START_SCRIPT, "restart") != 0) - printf("[ni_menu.cpp] executing %s failed\n", buf.str().c_str()); - sleep(1); - - hintbox.hide(); - - return menu_return::RETURN_EXIT_ALL; - } - else if(actionkey == "savesettings") - { - CHintBox hintbox(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_MAINSETTINGS_SAVESETTINGSNOW_HINT)); - hintbox.paint(); - - CNeutrinoApp::getInstance()->saveSetup(NEUTRINO_SETTINGS_FILE); - - hintbox.hide(); - - return res; - } - else if(actionkey == "ecmInfo") - { - buffer=NULL; - CFileHelpers fhlp; - if (fhlp.copyFile("/tmp/ecm.info", "/tmp/ecm.info.tmp", 0644)) - { - if ((fh = fopen("/tmp/ecm.info.tmp", "r"))) - { - std::string str = ""; - while ((read = getline(&buffer, &len, fh)) != -1) - { - str += buffer; - } - fclose(fh); - remove("/tmp/ecm.info.tmp"); - if(buffer) - free(buffer); - ShowHint(LOCALE_ECMINFO, str.c_str(), 450, 20); - } - } - else - ShowHint(LOCALE_ECMINFO, LOCALE_ECMINFO_NULL, 450, 20); - - return menu_return::RETURN_EXIT_ALL; - } - - res = show(); - - return res; -} - -#if 0 -bool CNIMenu::changeNotify(const neutrino_locale_t OptionName, void * /*data*/) -{ -#if 0 - int val = 0; - - if (data) - val = (*(int *)data); -#endif - return false; -} -#endif - -bool CNITouchFileNotifier::changeNotify(const neutrino_locale_t, void * data) -{ - std::ostringstream buf; - - buf << FLAGDIR << "/." << filename; - std::string flag = buf.str(); - - if ((*(int *)data) != 0) - { - FILE * fd = fopen(flag.c_str(), "w"); - if (fd) - { - fclose(fd); - if (strstr(filename, "scart_osd_fix")) - { - //change to scart-osd-fix values - g_settings.screen_StartX_crt_0 = 29; - g_settings.screen_StartY_crt_0 = 43; - g_settings.screen_EndX_crt_0 = 693; - g_settings.screen_EndY_crt_0 = 535; - g_settings.screen_preset = 0; - - //set values - g_settings.screen_StartX = g_settings.screen_preset ? g_settings.screen_StartX_lcd_0 : g_settings.screen_StartX_crt_0; - g_settings.screen_StartY = g_settings.screen_preset ? g_settings.screen_StartY_lcd_0 : g_settings.screen_StartY_crt_0; - g_settings.screen_EndX = g_settings.screen_preset ? g_settings.screen_EndX_lcd_0 : g_settings.screen_EndX_crt_0; - g_settings.screen_EndY = g_settings.screen_preset ? g_settings.screen_EndY_lcd_0 : g_settings.screen_EndY_crt_0; - - CFrameBuffer::getInstance()->Clear(); - - g_settings.font_scaling_x = 100; - g_settings.font_scaling_y = 100; - } - else if (strstr(filename, "mgcamd") || - strstr(filename, "newcs") || - strstr(filename, "osemu") || - strstr(filename, "doscam") || - strstr(filename, "oscam") || - strstr(filename, "cs2gbox") || - strstr(filename, "gbox")) - { - CHintBox hintbox(LOCALE_CAMD_CONTROL, g_Locale->getText(LOCALE_CAMD_MSG_START)); - hintbox.paint(); - - buf.str(""); - buf << EMU_START_SCRIPT << " start " << filename; - - printf("[ni_menu.cpp] executing %s\n", buf.str().c_str()); - if (my_system(3, EMU_START_SCRIPT, "start", filename) != 0) - printf("[ni_menu.cpp] executing %s failed\n", buf.str().c_str()); - sleep(1); - - hintbox.hide(); - } - else - { - buf.str(""); - buf << "service " << filename << " start"; - printf("[ni_menu.cpp] executing %s\n", buf.str().c_str()); - - if (my_system(3, "service", filename, "start") != 0) - printf("[ni_menu.cpp] executing %s failed\n", buf.str().c_str()); - } - } - } - else - { - buf.str(""); - if (strstr(filename, "scart_osd_fix")) - { - //reset to defaults - g_settings.screen_StartX_crt_0 = 60; - g_settings.screen_StartY_crt_0 = 20; - g_settings.screen_EndX_crt_0 = 1220; - g_settings.screen_EndY_crt_0 = 560; - - //set values - g_settings.screen_StartX = g_settings.screen_preset ? g_settings.screen_StartX_lcd_0 : g_settings.screen_StartX_crt_0; - g_settings.screen_StartY = g_settings.screen_preset ? g_settings.screen_StartY_lcd_0 : g_settings.screen_StartY_crt_0; - g_settings.screen_EndX = g_settings.screen_preset ? g_settings.screen_EndX_lcd_0 : g_settings.screen_EndX_crt_0; - g_settings.screen_EndY = g_settings.screen_preset ? g_settings.screen_EndY_lcd_0 : g_settings.screen_EndY_crt_0; - - CFrameBuffer::getInstance()->Clear(); - - g_settings.font_scaling_x = 105; - g_settings.font_scaling_y = 105; - } - else if (strstr(filename, "mgcamd") || - strstr(filename, "newcs") || - strstr(filename, "osemu") || - strstr(filename, "doscam") || - strstr(filename, "oscam") || - strstr(filename, "cs2gbox") || - strstr(filename, "gbox")) - { - CHintBox hintbox(LOCALE_CAMD_CONTROL, g_Locale->getText(LOCALE_CAMD_MSG_STOP)); - hintbox.paint(); - - buf << EMU_START_SCRIPT << " stop " << filename; - printf("[ni_menu.cpp] executing %s\n", buf.str().c_str()); - if (my_system(3, EMU_START_SCRIPT, "stop", filename) != 0) - printf("[ni_menu.cpp] executing %s failed\n", buf.str().c_str()); - sleep(1); - - hintbox.hide(); - } - else - { - buf << "service " << filename << " stop"; - printf("[ni_menu.cpp] executing %s\n", buf.str().c_str()); - - if (my_system(3, "service", filename, "stop") != 0) - printf("[ni_menu.cpp] executing %s failed\n", buf.str().c_str()); - } - remove(flag.c_str()); - } - return menu_return::RETURN_REPAINT; -} - -int CNIMenu::show() -{ - int shortcut = 1; - int cam_shortcut = 1; - int plugin_shortcut = 0; - - std::ostringstream buf; - char *buffer; - ssize_t read; - size_t len; - FILE *fh; - - CMenuWidget* ni_menu = new CMenuWidget(LOCALE_NIMENU_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_NI_MENU); - ni_menu->addIntroItems(); - - //apply settings - mf = new CMenuForwarder(LOCALE_MAINSETTINGS_SAVESETTINGSNOW, true, NULL, this, "savesettings", CRCInput::RC_red); - mf->setHint(NEUTRINO_ICON_HINT_SAVE_SETTINGS, LOCALE_MENU_HINT_SAVE_SETTINGS); - ni_menu->addItem(mf); - - // --- camd settings --- - ni_menu->addItem(new CMenuSeparator(CMenuSeparator::ALIGN_CENTER | CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_CAMD_CONTROL)); - - // camd reset - mf = new CMenuForwarder(LOCALE_CAMD_RESET, true, NULL, this, "camd_reset", CRCInput::convertDigitToKey(shortcut++)); - mf->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_CAMD_RESET); - ni_menu->addItem(mf); - - // camd settings - CMenuWidget* emuMenu = new CMenuWidget(LOCALE_CAMD_CONTROL, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_CAMD_CONTROL); - emuMenu->addIntroItems(); - - for (unsigned int i = 0; i < MAXEMU; i++) - { - std::string vinfo = ""; - - buf.str(""); - buf << "/var/bin/" << emu_menu[i].cam_file; - - emu_menu[i].cam_exist = file_exists(buf.str().c_str()); - - if (emu_menu[i].cam_exist) - { - buf.str(""); - buf << "vinfo " << emu_menu[i].cam_name << " /var/bin/" << emu_menu[i].cam_file; - - buffer=NULL; - if ((fh = popen(buf.str().c_str(), "r"))) - { - while ((read = getline(&buffer, &len, fh)) != -1) - vinfo += buffer; - pclose(fh); - if (buffer) - free(buffer); - } - else - printf("[vinfo] popen error\n" ); - } - - if (getpidof(emu_menu[i].cam_file)) - emu_menu[i].flag_exist = 1; - else - emu_menu[i].flag_exist = 0; - - //remove linebreaks from vinfo output - std::string::size_type spos = vinfo.find_first_of("\r\n"); - while (spos != std::string::npos) - { - vinfo.replace(spos, 1, " "); - spos = vinfo.find_first_of("\r\n"); - } - - - std::string hint(g_Locale->getText(emu_menu[i].hint)); - hint.append("\nvinfo: " + vinfo); - - mc = new CMenuOptionChooser(emu_menu[i].name, &emu_menu[i].flag_exist, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, emu_menu[i].cam_exist, new CNITouchFileNotifier(emu_menu[i].cam_file), CRCInput::convertDigitToKey(cam_shortcut++)); - mc->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, hint); - emuMenu->addItem(mc); - } - - mf = new CMenuForwarder(LOCALE_CAMD_CONTROL, true, NULL, emuMenu, "", CRCInput::convertDigitToKey(shortcut++)); - mf->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_CAMD); - ni_menu->addItem(mf); - - // --- Special settings --- - ni_menu->addItem(new CMenuSeparator(CMenuSeparator::ALIGN_CENTER | CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_NIMENU_HEAD_SPECIAL)); - - // Infoicons Setup - CInfoIconsSetup infoicons_setup; - mf = new CMenuForwarder(LOCALE_INFOICONS_HEAD, true, NULL, &infoicons_setup, NULL, CRCInput::convertDigitToKey(shortcut++)); - mf->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_INFOICONS_HEAD); - ni_menu->addItem(mf); - - // NetFS Setup - CNETFSSetup netfs_setup; - mf = new CMenuForwarder(LOCALE_NETFS_MENU_MAIN_HEAD, true, NULL, &netfs_setup, NULL, CRCInput::convertDigitToKey(shortcut++)); - mf->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_NETFS_MENU_MAIN_HEAD); - ni_menu->addItem(mf); - - // Plugin Menu - CMenuWidget* pluginMenu = new CMenuWidget(LOCALE_PLUGINS_CONTROL, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_PLUGINS_CONTROL); - pluginMenu->addIntroItems(); - - // Plugins for usermenu - CPluginsHideMenu pluginsHideMenu; - mf = new CMenuForwarder(LOCALE_PLUGINS_HIDE, true, NULL, &pluginsHideMenu, NULL, CRCInput::RC_blue); - mf->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_PLUGINS_HIDE); - pluginMenu->addItem(mf); - pluginMenu->addItem(GenericMenuSeparatorLine); - - // Plugin service - for (unsigned int i = 0; i < MAXPLUGIN; i++) - { - buf.str(""); - buf << "/var/etc/." << plugin_menu[i].flag; - - plugin_menu[i].flag_exist=file_exists(buf.str().c_str()); - CNITouchFileNotifier * pluginFileNotifier = new CNITouchFileNotifier(plugin_menu[i].flag); - - mc = new CMenuOptionChooser(plugin_menu[i].name, &plugin_menu[i].flag_exist, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, pluginFileNotifier, CRCInput::convertDigitToKey(plugin_shortcut++)); - mc->setHint(plugin_menu[i].icon, plugin_menu[i].desc); - pluginMenu->addItem(mc); - } - - mf = new CMenuForwarder(LOCALE_PLUGINS_CONTROL, true, NULL, pluginMenu, "", CRCInput::convertDigitToKey(shortcut++)); - mf->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_PLUGINS_CONTROL); - ni_menu->addItem(mf); - - CLCD4lSetup lcd4lSetup; - mf = new CMenuForwarder(LOCALE_LCD4L_SUPPORT, true, NULL, &lcd4lSetup, "", CRCInput::convertDigitToKey(shortcut++)); - mf->setHint(NEUTRINO_ICON_HINT_LCD4L, LOCALE_MENU_HINT_LCD4L_SUPPORT); - ni_menu->addItem(mf); - - //add PLUGIN_INTEGRATION_NI_MENU plugins - ni_menu->integratePlugins(PLUGIN_INTEGRATION_NI_MENU, shortcut); - - int res = ni_menu->exec(NULL, ""); - - ni_menu->hide(); - delete ni_menu; - delete emuMenu; - delete pluginMenu; - - return res; -} diff --git a/src/gui/ni_menu.h b/src/gui/ni_menu.h deleted file mode 100644 index c010dbca0..000000000 --- a/src/gui/ni_menu.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - ni_menu - - (C) 2009-2016 NG-Team - (C) 2016 NI-Team - - 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, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -#ifndef __ni_menu__ -#define __ni_menu__ - -#include - -#define SCRIPT_DIR "/etc/init.d/" -#define EMU_DIR "/var/bin/" -#define EMU_START_SCRIPT SCRIPT_DIR "emu" - -using namespace std; - -class CNITouchFileNotifier : public CChangeObserver -{ - const char * filename; - public: - inline CNITouchFileNotifier(const char * file_name) { filename = file_name; }; - bool changeNotify(const neutrino_locale_t, void * data); -}; - -class CNIMenu : public CMenuTarget, CChangeObserver -{ - private: - CMenuOptionChooser *mc; - CMenuForwarder * mf; - - int width; - int show(); - - public: - CNIMenu(); - ~CNIMenu(); - static CNIMenu* getInstance(); - int exec(CMenuTarget* parent, const std::string &actionkey); -#if 0 - virtual bool changeNotify(const neutrino_locale_t OptionName, void * /*data*/); -#endif -}; - -#endif diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 7500627cf..eec666a01 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -51,7 +51,6 @@ #include #include #include -#include //NI #include #include #include @@ -65,6 +64,7 @@ #include #include #include +#include #include "cs_api.h" extern CRemoteControl * g_RemoteControl; @@ -703,7 +703,7 @@ int COsdSetup::showOsdSetup() if (file_exists("/var/etc/.scart_osd_fix")) scart_osd_fix_exist = 1; - CNITouchFileNotifier * scartFileNotifier = new CNITouchFileNotifier("scart_osd_fix"); + CFlagFileNotifier * scartFileNotifier = new CFlagFileNotifier("scart_osd_fix"); mc = new CMenuOptionChooser(LOCALE_SCART_OSD_FIX, &scart_osd_fix_exist, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, !g_settings.screen_preset, scartFileNotifier); mc->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_SCART_OSD_FIX); osd_menu->addItem(mc); diff --git a/src/gui/settings_manager_teams.cpp b/src/gui/settings_manager_teams.cpp index e1a033b2c..45c4122f0 100644 --- a/src/gui/settings_manager_teams.cpp +++ b/src/gui/settings_manager_teams.cpp @@ -4,7 +4,7 @@ Copyright (C) 2011 'defans' Homepage: http://www.bluepeercrew.us/ - Copyright (C) 2011 'vanhofen' + Copyright (C) 2017 'vanhofen' Homepage: http://www.neutrino-images.de/ License: GPL @@ -37,7 +37,6 @@ #include "gui/widget/hintbox.h" #include "gui/widget/msgbox.h" -#include "gui/widget/stringinput.h" #include #include @@ -51,8 +50,7 @@ #define SYSCALLBACKUP "tar -cz -f" #define SYSCALLRESTORE "cd /; tar -xz -f" -#define OBJECT_COUNT 6 -const char * object[OBJECT_COUNT] = +const char * object[] = { CONFIGDIR "/cables.xml", CONFIGDIR "/satellites.xml", @@ -61,8 +59,7 @@ const char * object[OBJECT_COUNT] = "/etc/network/interfaces", "/etc/wpa_supplicant.conf" }; - -//int CSettingsManagerTeams::selected = -1; // remember location in old style +const int OBJECT_COUNT = sizeof(object) / sizeof(object[0]); CSettingsManagerTeams::CSettingsManagerTeams() { @@ -105,14 +102,12 @@ int CSettingsManagerTeams::showMenu() //printf("[neutrino] CSettingsManagerTeams call %s...\n", __FUNCTION__); CMenuWidget * teamset = new CMenuWidget(LOCALE_SETTINGS_TEAMS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_TEAMS_SETTINGS); -// CMenuWidget * teamset = new CMenuWidget(LOCALE_SETTINGS_TEAMS, NEUTRINO_ICON_SETTINGS, width); -// teamset->setSelected(selected); teamset->addIntroItems(); CMenuForwarder * mf; - mf = new CMenuForwarder(LOCALE_SETTINGS_TEAMS_HELP, true, NULL, this, "help", CRCInput::RC_help, NEUTRINO_ICON_BUTTON_HELP_SMALL); //ToDo? + mf = new CMenuForwarder(LOCALE_SETTINGS_TEAMS_HELP, true, NULL, this, "help"); mf->setHint("", LOCALE_CROSSTEAM_HINT_SETTINGS_TEAMS_HELP); teamset->addItem(mf); @@ -128,7 +123,6 @@ int CSettingsManagerTeams::showMenu() int res = teamset->exec(NULL, ""); teamset->hide(); -// selected = teamset->getSelected(); delete teamset; return res; @@ -136,7 +130,8 @@ int CSettingsManagerTeams::showMenu() void CSettingsManagerTeams::showHelp() { - ShowMsg(LOCALE_SETTINGS_TEAMS_HELP, g_Locale->getText(LOCALE_SETTINGS_TEAMS_HELP_TEXT), CMsgBox::mbrBack, CMsgBox::mbBack, NEUTRINO_ICON_INFO); // UTF-8 + ShowMsg(LOCALE_SETTINGS_TEAMS_HELP, LOCALE_SETTINGS_TEAMS_HELP_TEXT, CMsgBox::mbrBack, CMsgBox::mbBack, NEUTRINO_ICON_INFO, + MSGBOX_MIN_WIDTH, NO_TIMEOUT, false, (CMsgBox::AUTO_WIDTH | CMsgBox::AUTO_HIGH)); return; } @@ -204,10 +199,6 @@ void CSettingsManagerTeams::doRestore() void CSettingsManagerTeams::doReboot() { - FILE *f = fopen("/tmp/.reboot", "w"); - fclose(f); - // we need a public ExitRun() in src/neutrino.h - CNeutrinoApp::getInstance()->ExitRun(true); - unlink("/tmp/.reboot"); + CNeutrinoApp::getInstance()->exec(NULL, "reboot"); return; } diff --git a/src/gui/settings_manager_teams.h b/src/gui/settings_manager_teams.h index 1d1a8e621..6cc17b863 100644 --- a/src/gui/settings_manager_teams.h +++ b/src/gui/settings_manager_teams.h @@ -37,7 +37,6 @@ class CSettingsManagerTeams : public CMenuTarget { private: int width; -// static int selected; int showMenu(); void showHelp(); diff --git a/src/gui/user_menue.cpp b/src/gui/user_menue.cpp index 51d3547b2..d91130830 100644 --- a/src/gui/user_menue.cpp +++ b/src/gui/user_menue.cpp @@ -96,7 +96,6 @@ extern CCAMMenuHandler * g_CamHandler; #include //NI -#include #include #include @@ -168,7 +167,6 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) // define classes CSubChannelSelectMenu subchanselect; CNeutrinoApp * neutrino = CNeutrinoApp::getInstance(); - CNIMenu *ni_menu = CNIMenu::getInstance(); //NI std::string txt = g_settings.usermenu[button]->title; if (button < COL_BUTTONMAX && txt.empty()) @@ -418,7 +416,7 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) case SNeutrinoSettings::ITEM_ECMINFO: { keyhelper.get(&key,&icon); - menu_item = new CMenuForwarder(LOCALE_ECMINFO_SHOW, file_size("/tmp/ecm.info"), NULL, ni_menu, "ecmInfo", key, icon); + menu_item = new CMenuForwarder(LOCALE_ECMINFO_SHOW, file_size("/tmp/ecm.info"), NULL, neutrino, "ecmInfo", key, icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; } @@ -426,7 +424,7 @@ bool CUserMenu::showUserMenu(neutrino_msg_t msg) case SNeutrinoSettings::ITEM_CAMD_RESET: { keyhelper.get(&key,&icon); - menu_item = new CMenuForwarder(LOCALE_CAMD_RESET, true, NULL, ni_menu, "camd_reset", key, icon); + menu_item = new CMenuForwarder(LOCALE_CAMD_RESET, true, NULL, neutrino, "camd_reset", key, icon); // FIXME menu_item->setHint("", NONEXISTANT_LOCALE); break; } diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 8ff889706..94b7a00e2 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -284,7 +284,7 @@ void CMenuItem::paintItemCaption(const bool select_mode, const char * right_text } if (*right_text) { stringstartposOption -= (icon_w == 0 ? 0 : icon_w + icon_frame_w); - g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(stringstartposOption, y+item_height - desc_height, dx- (stringstartposOption- x), right_text, item_color); + g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(stringstartposOption, y+item_height - desc_height, dx - stringstartposOption + x - OFFSET_INNER_MID, right_text, item_color); } } if (desc_text && *desc_text) diff --git a/src/gui/zapit_setup.cpp b/src/gui/zapit_setup.cpp index f4029afc2..dee9dbc89 100644 --- a/src/gui/zapit_setup.cpp +++ b/src/gui/zapit_setup.cpp @@ -60,8 +60,8 @@ int CZapitSetup::exec(CMenuTarget* parent, const std::string &/*actionKey*/) int CZapitSetup::showMenu() { //menue init - CMenuWidget *zapit = new CMenuWidget(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_ZAPIT); - zapit->addIntroItems(LOCALE_ZAPITSETUP_INFO); + CMenuWidget *zapit = new CMenuWidget(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_ZAPIT); + zapit->addIntroItems(LOCALE_ZAPITSETUP_HEAD); COnOffNotifier* miscZapitNotifier = new COnOffNotifier(1); //zapit CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_ZAPITSETUP_LAST_USE, &g_settings.uselastchannel, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, miscZapitNotifier, CRCInput::RC_red); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index ae967c1c0..700a71f7a 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -4646,6 +4646,49 @@ int CNeutrinoApp::exec(CMenuTarget* parent, const std::string & actionKey) hintBox->hide(); delete hintBox; } + else if (actionKey == "camd_reset") + { + CHintBox hintbox(LOCALE_CAMD_CONTROL, LOCALE_CAMD_MSG_RESET); + hintbox.paint(); + + printf("[neutrino.cpp] executing \"service emu restart\"\n"); + if (my_system(3, "service", "emu", "restart") != 0) + printf("[neutrino.cpp] executing failed\n"); + sleep(1); + + hintbox.hide(); + + return menu_return::RETURN_EXIT_ALL; + } + else if (actionKey == "ecmInfo") + { + char *buffer = NULL; + ssize_t read; + size_t len; + FILE *fh; + + CFileHelpers fhlp; + if (fhlp.copyFile("/tmp/ecm.info", "/tmp/ecm.info.tmp", 0644)) + { + if ((fh = fopen("/tmp/ecm.info.tmp", "r"))) + { + std::string str = ""; + while ((read = getline(&buffer, &len, fh)) != -1) + { + str += buffer; + } + fclose(fh); + remove("/tmp/ecm.info.tmp"); + if(buffer) + free(buffer); + ShowHint(LOCALE_ECMINFO, str.c_str(), 450, 20); + } + } + else + ShowHint(LOCALE_ECMINFO, LOCALE_ECMINFO_NULL, 450, 20); + + return menu_return::RETURN_EXIT_ALL; + } else if(actionKey=="nkplayback" || actionKey=="ytplayback" || actionKey=="tsmoviebrowser" || actionKey=="fileplayback") { frameBuffer->Clear(); if(mode == NeutrinoMessages::mode_radio ) diff --git a/src/neutrino.h b/src/neutrino.h index 504f8d8fa..92b1d6605 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -122,7 +122,7 @@ private: void standbyMode( bool bOnOff, bool fromDeepStandby = false ); void getAnnounceEpgName(CTimerd::RecordingInfo * eventinfo, std::string &name); - //NI void ExitRun(int can_shutdown = 0); + void ExitRun(int can_shutdown = 0); void RealRun(); void InitZapper(); void InitTimerdClient(); @@ -163,7 +163,6 @@ public: CUserMenu usermenu; - void ExitRun(int can_shutdown = 0); //NI cross-team settings void saveSetup(const char * fname); int loadSetup(const char * fname); void setScreenSettings(); diff --git a/src/neutrino_menue.cpp b/src/neutrino_menue.cpp index 1ee99b49b..23019d9ac 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -40,6 +40,7 @@ #include "gui/audio_select.h" #include "gui/bedit/bouqueteditor_bouquets.h" #include "gui/bouquetlist.h" +#include #include "gui/cam_menu.h" #include "gui/dboxinfo.h" #include "gui/epgplus.h" @@ -76,8 +77,6 @@ #include "driver/record.h" #include "driver/display.h" -#include "gui/ni_menu.h" //NI - extern CPlugins * g_Plugins; extern CRemoteControl * g_RemoteControl; extern CCAMMenuHandler * g_CamHandler; @@ -220,13 +219,6 @@ void CNeutrinoApp::InitMenuMain() #endif } - //NI-Menu section*********************************************************************************************** - personalize.addSeparator(MENU_MAIN); - - CMenuForwarder *ni_menu = new CMenuForwarder(LOCALE_NIMENU_HEAD, true, NULL, new CNIMenu(), NULL, CRCInput::RC_0, NEUTRINO_ICON_BUTTON_0); - ni_menu->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_NIMENU); - personalize.addItem(MENU_MAIN, ni_menu, &g_settings.personalize[SNeutrinoSettings::P_MAIN_NI_MENU], false, CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION); - //separator personalize.addSeparator(MENU_MAIN); @@ -545,6 +537,13 @@ void CNeutrinoApp::InitMenuService() //separator personalize.addSeparator(MENU_SERVICE); + mf = new CMenuForwarder(LOCALE_DAEMON_CONTROL, true, NULL, new CDaemonControlMenu(), NULL); + mf->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_DAEMON_CONTROL); + personalize.addItem(MENU_SERVICE, mf, &g_settings.personalize[SNeutrinoSettings::P_MSER_DAEMON_CONTROL]); + + mf = new CMenuForwarder(LOCALE_CAMD_CONTROL, true, NULL, new CCamdControlMenu(), NULL); + mf->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_CAMD_CONTROL); + personalize.addItem(MENU_SERVICE, mf, &g_settings.personalize[SNeutrinoSettings::P_MSER_CAMD_CONTROL]); if (!g_settings.easymenu) { personalize.addSeparator(MENU_SERVICE); diff --git a/src/neutrino_menue.h b/src/neutrino_menue.h index 4277b3f32..a0e33de60 100644 --- a/src/neutrino_menue.h +++ b/src/neutrino_menue.h @@ -120,6 +120,7 @@ enum MN_WIDGET_ID MN_WIDGET_ID_MISCSETUP_FILEBROWSER, MN_WIDGET_ID_MISCSETUP_CHANNELLIST, MN_WIDGET_ID_MISCSETUP_ONLINESERVICES, + MN_WIDGET_ID_MISCSETUP_PLUGINS, //media menu MN_WIDGET_ID_MEDIA, @@ -160,7 +161,6 @@ enum MN_WIDGET_ID MN_WIDGET_ID_USERMENU_BLUE, //NI - MN_WIDGET_ID_NI_MENU, MN_WIDGET_ID_NETFS_MAIN, MN_WIDGET_ID_NETFS_AUTOMOUNT, MN_WIDGET_ID_NETFS_FSTAB, diff --git a/src/plugin.h b/src/plugin.h index 1e1bb4d14..c1b99a1b1 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -22,8 +22,7 @@ enum PLUGIN_INTEGRATION_MULTIMEDIA = 2, PLUGIN_INTEGRATION_SETTING = 3, PLUGIN_INTEGRATION_SERVICE = 4, - PLUGIN_INTEGRATION_INFORMATION = 5, - PLUGIN_INTEGRATION_NI_MENU = 10 + PLUGIN_INTEGRATION_INFORMATION = 5 }; #endif // __plugin_h__ diff --git a/src/system/locals.h b/src/system/locals.h index 2c4640ad6..91e701bf7 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -279,6 +279,8 @@ typedef enum LOCALE_CAMD_ITEM_GBOX_NAME, LOCALE_CAMD_ITEM_MGCAMD_HINT, LOCALE_CAMD_ITEM_MGCAMD_NAME, + LOCALE_CAMD_ITEM_NCAM_HINT, + LOCALE_CAMD_ITEM_NCAM_NAME, LOCALE_CAMD_ITEM_NEWCS_HINT, LOCALE_CAMD_ITEM_NEWCS_NAME, LOCALE_CAMD_ITEM_OSCAM_HINT, @@ -415,6 +417,31 @@ typedef enum LOCALE_CROSSTEAM_HINT_SETTINGS_TEAMS_BACKUP, LOCALE_CROSSTEAM_HINT_SETTINGS_TEAMS_HELP, LOCALE_CROSSTEAM_HINT_SETTINGS_TEAMS_RESTORE, + LOCALE_DAEMON_CONTROL, + LOCALE_DAEMON_ITEM_CROND_DESC, + LOCALE_DAEMON_ITEM_CROND_NAME, + LOCALE_DAEMON_ITEM_DJMOUNT_DESC, + LOCALE_DAEMON_ITEM_DJMOUNT_NAME, + LOCALE_DAEMON_ITEM_DROPBEAR_DESC, + LOCALE_DAEMON_ITEM_DROPBEAR_NAME, + LOCALE_DAEMON_ITEM_EMMREMIND_DESC, + LOCALE_DAEMON_ITEM_EMMREMIND_NAME, + LOCALE_DAEMON_ITEM_FCM_DESC, + LOCALE_DAEMON_ITEM_FCM_NAME, + LOCALE_DAEMON_ITEM_INADYN_DESC, + LOCALE_DAEMON_ITEM_INADYN_NAME, + LOCALE_DAEMON_ITEM_NFSSERVER_DESC, + LOCALE_DAEMON_ITEM_NFSSERVER_NAME, + LOCALE_DAEMON_ITEM_SAMBASERVER_DESC, + LOCALE_DAEMON_ITEM_SAMBASERVER_NAME, + LOCALE_DAEMON_ITEM_TUXCALD_DESC, + LOCALE_DAEMON_ITEM_TUXCALD_NAME, + LOCALE_DAEMON_ITEM_TUXMAILD_DESC, + LOCALE_DAEMON_ITEM_TUXMAILD_NAME, + LOCALE_DAEMON_ITEM_USHARE_DESC, + LOCALE_DAEMON_ITEM_USHARE_NAME, + LOCALE_DAEMON_ITEM_XUPNPD_DESC, + LOCALE_DAEMON_ITEM_XUPNPD_NAME, LOCALE_DATE_APR, LOCALE_DATE_AUG, LOCALE_DATE_DEC, @@ -1162,7 +1189,7 @@ typedef enum LOCALE_MENU_HINT_BUILDINFO, LOCALE_MENU_HINT_CA_INIT, LOCALE_MENU_HINT_CACHE_TXT, - LOCALE_MENU_HINT_CAMD, + LOCALE_MENU_HINT_CAMD_CONTROL, LOCALE_MENU_HINT_CAMD_RESET, LOCALE_MENU_HINT_CEC_MODE, LOCALE_MENU_HINT_CEC_STANDBY, @@ -1197,6 +1224,7 @@ typedef enum LOCALE_MENU_HINT_COLORS_SHADOW, LOCALE_MENU_HINT_CONTENT_BACK, LOCALE_MENU_HINT_CONTENT_TEXTCOLOR, + LOCALE_MENU_HINT_DAEMON_CONTROL, LOCALE_MENU_HINT_DBOXINFO, LOCALE_MENU_HINT_DELETE_CHANNELS, LOCALE_MENU_HINT_DELETE_REMOVED, @@ -1446,7 +1474,6 @@ typedef enum LOCALE_MENU_HINT_NEW_ZAP_MODE, LOCALE_MENU_HINT_NEXT, LOCALE_MENU_HINT_NEXT_BRIEF, - LOCALE_MENU_HINT_NIMENU, LOCALE_MENU_HINT_NUMERIC_ADJUST, LOCALE_MENU_HINT_OPKG, LOCALE_MENU_HINT_OPKG_FEED_ADDRESSES_EDIT, @@ -2089,12 +2116,14 @@ typedef enum LOCALE_MPKEY_SUBTITLE, LOCALE_MPKEY_TIME, LOCALE_NETFS_ACTIVE_ONOFF, + LOCALE_NETFS_AUTOMOUNT_EDIT, LOCALE_NETFS_AUTOMOUNT_HEAD, LOCALE_NETFS_AUTOMOUNT_INTRO, LOCALE_NETFS_AUTOMOUNT_INTRO_MOUNTS, LOCALE_NETFS_AUTOMOUNT_WRITE, LOCALE_NETFS_AUTOMOUNT_WRITE_INFO, LOCALE_NETFS_DUMP, + LOCALE_NETFS_FSTAB_EDIT, LOCALE_NETFS_FSTAB_DOMOUNT, LOCALE_NETFS_FSTAB_DOMOUNT_INFO, LOCALE_NETFS_FSTAB_DOUMOUNT, @@ -2168,8 +2197,6 @@ typedef enum LOCALE_NFS_USERNAME, LOCALE_NFSMENU_HEAD, LOCALE_NI, - LOCALE_NIMENU_HEAD, - LOCALE_NIMENU_HEAD_SPECIAL, LOCALE_NVOD_PERCENTAGE, LOCALE_NVOD_STARTING, LOCALE_NVODSELECTOR_DIRECTORMODE, @@ -2308,30 +2335,6 @@ typedef enum LOCALE_PINPROTECTION_WRONGCODE, LOCALE_PLUGIN_HIDE_NO, LOCALE_PLUGIN_HIDE_YES, - LOCALE_PLUGIN_ITEM_CROND_DESC, - LOCALE_PLUGIN_ITEM_CROND_NAME, - LOCALE_PLUGIN_ITEM_DJMOUNT_DESC, - LOCALE_PLUGIN_ITEM_DJMOUNT_NAME, - LOCALE_PLUGIN_ITEM_DROPBEAR_DESC, - LOCALE_PLUGIN_ITEM_DROPBEAR_NAME, - LOCALE_PLUGIN_ITEM_EMMREMIND_DESC, - LOCALE_PLUGIN_ITEM_EMMREMIND_NAME, - LOCALE_PLUGIN_ITEM_FCM_DESC, - LOCALE_PLUGIN_ITEM_FCM_NAME, - LOCALE_PLUGIN_ITEM_INADYN_DESC, - LOCALE_PLUGIN_ITEM_INADYN_NAME, - LOCALE_PLUGIN_ITEM_NFSSERVER_DESC, - LOCALE_PLUGIN_ITEM_NFSSERVER_NAME, - LOCALE_PLUGIN_ITEM_SAMBASERVER_DESC, - LOCALE_PLUGIN_ITEM_SAMBASERVER_NAME, - LOCALE_PLUGIN_ITEM_TUXCALD_DESC, - LOCALE_PLUGIN_ITEM_TUXCALD_NAME, - LOCALE_PLUGIN_ITEM_TUXMAILD_DESC, - LOCALE_PLUGIN_ITEM_TUXMAILD_NAME, - LOCALE_PLUGIN_ITEM_USHARE_DESC, - LOCALE_PLUGIN_ITEM_USHARE_NAME, - LOCALE_PLUGIN_ITEM_XUPNPD_DESC, - LOCALE_PLUGIN_ITEM_XUPNPD_NAME, LOCALE_PLUGINS_CONTROL, LOCALE_PLUGINS_HDD_DIR, LOCALE_PLUGINS_HIDE, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index c4da6bd05..ad2faa2bf 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -279,6 +279,8 @@ const char * locale_real_names[] = "camd_item_gbox_name", "camd_item_mgcamd_hint", "camd_item_mgcamd_name", + "camd_item_ncam_hint", + "camd_item_ncam_name", "camd_item_newcs_hint", "camd_item_newcs_name", "camd_item_oscam_hint", @@ -415,6 +417,31 @@ const char * locale_real_names[] = "crossteam.hint_settings_teams_backup", "crossteam.hint_settings_teams_help", "crossteam.hint_settings_teams_restore", + "daemon_control", + "daemon_item.crond_desc", + "daemon_item.crond_name", + "daemon_item.djmount_desc", + "daemon_item.djmount_name", + "daemon_item.dropbear_desc", + "daemon_item.dropbear_name", + "daemon_item.emmremind_desc", + "daemon_item.emmremind_name", + "daemon_item.fcm_desc", + "daemon_item.fcm_name", + "daemon_item.inadyn_desc", + "daemon_item.inadyn_name", + "daemon_item.nfsserver_desc", + "daemon_item.nfsserver_name", + "daemon_item.sambaserver_desc", + "daemon_item.sambaserver_name", + "daemon_item.tuxcald_desc", + "daemon_item.tuxcald_name", + "daemon_item.tuxmaild_desc", + "daemon_item.tuxmaild_name", + "daemon_item.ushare_desc", + "daemon_item.ushare_name", + "daemon_item.xupnpd_desc", + "daemon_item.xupnpd_name", "date.Apr", "date.Aug", "date.Dec", @@ -1162,7 +1189,7 @@ const char * locale_real_names[] = "menu.hint_buildinfo", "menu.hint_ca_init", "menu.hint_cache_txt", - "menu.hint_camd", + "menu.hint_camd_control", "menu.hint_camd_reset", "menu.hint_cec_mode", "menu.hint_cec_standby", @@ -1197,6 +1224,7 @@ const char * locale_real_names[] = "menu.hint_colors_shadow", "menu.hint_content_back", "menu.hint_content_textcolor", + "menu.hint_daemon_control", "menu.hint_dboxinfo", "menu.hint_delete_channels", "menu.hint_delete_removed", @@ -1446,7 +1474,6 @@ const char * locale_real_names[] = "menu.hint_new_zap_mode", "menu.hint_next", "menu.hint_next_brief", - "menu.hint_nimenu", "menu.hint_numeric_adjust", "menu.hint_opkg", "menu.hint_opkg_feed_addresses_edit", @@ -2089,12 +2116,14 @@ const char * locale_real_names[] = "mpkey.subtitle", "mpkey.time", "netfs.active_onoff", + "netfs.automount_edit", "netfs.automount_head", "netfs.automount_intro", "netfs.automount_intro_mounts", "netfs.automount_write", "netfs.automount_write_info", "netfs.dump", + "netfs.fstab_edit", "netfs.fstab_domount", "netfs.fstab_domount_info", "netfs.fstab_doumount", @@ -2168,8 +2197,6 @@ const char * locale_real_names[] = "nfs.username", "nfsmenu.head", "ni", - "nimenu.head", - "nimenu.head_special", "nvod.percentage", "nvod.starting", "nvodselector.directormode", @@ -2308,30 +2335,6 @@ const char * locale_real_names[] = "pinprotection.wrongcode", "plugin.hide_no", "plugin.hide_yes", - "plugin.item_crond_desc", - "plugin.item_crond_name", - "plugin.item_djmount_desc", - "plugin.item_djmount_name", - "plugin.item_dropbear_desc", - "plugin.item_dropbear_name", - "plugin.item_emmremind_desc", - "plugin.item_emmremind_name", - "plugin.item_fcm_desc", - "plugin.item_fcm_name", - "plugin.item_inadyn_desc", - "plugin.item_inadyn_name", - "plugin.item_nfsserver_desc", - "plugin.item_nfsserver_name", - "plugin.item_sambaserver_desc", - "plugin.item_sambaserver_name", - "plugin.item_tuxcald_desc", - "plugin.item_tuxcald_name", - "plugin.item_tuxmaild_desc", - "plugin.item_tuxmaild_name", - "plugin.item_ushare_desc", - "plugin.item_ushare_name", - "plugin.item_xupnpd_desc", - "plugin.item_xupnpd_name", "plugins.control", "plugins.hdd_dir", "plugins.hide", diff --git a/src/system/setting_helpers.cpp b/src/system/setting_helpers.cpp index 1ff4a98e2..aafea2794 100644 --- a/src/system/setting_helpers.cpp +++ b/src/system/setting_helpers.cpp @@ -141,6 +141,117 @@ bool CTouchFileNotifier::changeNotify(const neutrino_locale_t, void * data) return true; } +bool CFlagFileNotifier::changeNotify(const neutrino_locale_t, void * data) +{ + std::ostringstream buf; + buf << FLAGDIR << "/." << filename; + + const char *flagfile = buf.str().c_str(); + + if ((*(int *)data) != 0) + { + FILE * fd = fopen(flagfile, "w"); + if (fd) + { + fclose(fd); + if (strstr(filename, "scart_osd_fix")) + { + //change to scart-osd-fix values + g_settings.screen_StartX_crt_0 = 29; + g_settings.screen_StartY_crt_0 = 43; + g_settings.screen_EndX_crt_0 = 693; + g_settings.screen_EndY_crt_0 = 535; + g_settings.screen_preset = 0; + + //set values + g_settings.screen_StartX = g_settings.screen_preset ? g_settings.screen_StartX_lcd_0 : g_settings.screen_StartX_crt_0; + g_settings.screen_StartY = g_settings.screen_preset ? g_settings.screen_StartY_lcd_0 : g_settings.screen_StartY_crt_0; + g_settings.screen_EndX = g_settings.screen_preset ? g_settings.screen_EndX_lcd_0 : g_settings.screen_EndX_crt_0; + g_settings.screen_EndY = g_settings.screen_preset ? g_settings.screen_EndY_lcd_0 : g_settings.screen_EndY_crt_0; + + CFrameBuffer::getInstance()->Clear(); + + g_settings.font_scaling_x = 100; + g_settings.font_scaling_y = 100; + } + else if (strstr(filename, "mgcamd") || + strstr(filename, "newcs") || + strstr(filename, "osemu") || + strstr(filename, "doscam") || + strstr(filename, "ncam") || + strstr(filename, "oscam") || + strstr(filename, "cs2gbox") || + strstr(filename, "gbox")) + { + CHintBox hintbox(LOCALE_CAMD_CONTROL, g_Locale->getText(LOCALE_CAMD_MSG_START)); + hintbox.paint(); + + printf("[CFlagFileNotifier] executing \"service emu start %s\"\n", filename); + if (my_system(4, "service", "emu", "start", filename) != 0) + printf("[CFlagFileNotifier] executing failed\n"); + sleep(1); + + hintbox.hide(); + } + else + { + printf("[CFlagFileNotifier] executing \"service %s start\"\n", filename); + if (my_system(3, "service", filename, "start") != 0) + printf("[CFlagFileNotifier] executing failed\n"); + } + } + } + else + { + if (strstr(filename, "scart_osd_fix")) + { + //reset to defaults + g_settings.screen_StartX_crt_0 = 60; + g_settings.screen_StartY_crt_0 = 20; + g_settings.screen_EndX_crt_0 = 1220; + g_settings.screen_EndY_crt_0 = 560; + + //set values + g_settings.screen_StartX = g_settings.screen_preset ? g_settings.screen_StartX_lcd_0 : g_settings.screen_StartX_crt_0; + g_settings.screen_StartY = g_settings.screen_preset ? g_settings.screen_StartY_lcd_0 : g_settings.screen_StartY_crt_0; + g_settings.screen_EndX = g_settings.screen_preset ? g_settings.screen_EndX_lcd_0 : g_settings.screen_EndX_crt_0; + g_settings.screen_EndY = g_settings.screen_preset ? g_settings.screen_EndY_lcd_0 : g_settings.screen_EndY_crt_0; + + CFrameBuffer::getInstance()->Clear(); + + g_settings.font_scaling_x = 105; + g_settings.font_scaling_y = 105; + } + else if (strstr(filename, "mgcamd") || + strstr(filename, "newcs") || + strstr(filename, "osemu") || + strstr(filename, "doscam") || + strstr(filename, "ncam") || + strstr(filename, "oscam") || + strstr(filename, "cs2gbox") || + strstr(filename, "gbox")) + { + CHintBox hintbox(LOCALE_CAMD_CONTROL, g_Locale->getText(LOCALE_CAMD_MSG_STOP)); + hintbox.paint(); + + printf("[CFlagFileNotifier] executing \"service emu stop %s\"\n", filename); + if (my_system(4, "service", "emu", "stop", filename) != 0) + printf("[CFlagFileNotifier] executing failed\n"); + sleep(1); + + hintbox.hide(); + } + else + { + printf("[CFlagFileNotifier] executing \"service %s stop\"\n", filename); + if (my_system(3, "service", filename, "stop") != 0) + printf("[CFlagFileNotifier] executing failed\n"); + } + remove(flagfile); + } + return menu_return::RETURN_REPAINT; +} + void CColorSetupNotifier::setPalette() { CFrameBuffer *frameBuffer = CFrameBuffer::getInstance(); diff --git a/src/system/setting_helpers.h b/src/system/setting_helpers.h index 90134d5e5..c48e9140e 100644 --- a/src/system/setting_helpers.h +++ b/src/system/setting_helpers.h @@ -82,6 +82,14 @@ class CTouchFileNotifier : public CChangeObserver bool changeNotify(const neutrino_locale_t, void * data); }; +class CFlagFileNotifier : public CChangeObserver +{ + const char * filename; + public: + inline CFlagFileNotifier(const char * _filename) { filename = _filename; }; + bool changeNotify(const neutrino_locale_t, void * data); +}; + class CColorSetupNotifier : public CChangeObserver { public: diff --git a/src/system/settings.cpp b/src/system/settings.cpp index e140334a4..2f1caeeec 100644 --- a/src/system/settings.cpp +++ b/src/system/settings.cpp @@ -50,7 +50,6 @@ const struct personalize_settings_t personalize_settings[SNeutrinoSettings::P_SE {"personalize_tools" , CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE}, {"personalize_scripts" , CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE}, {"personalize_lua" , CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE}, - {"personalize_ni_menu" , CPersonalizeGui::PERSONALIZE_PROTECT_MODE_NOT_PROTECTED}, //NI {"personalize_settings" , CPersonalizeGui::PERSONALIZE_PROTECT_MODE_NOT_PROTECTED}, {"personalize_service" , CPersonalizeGui::PERSONALIZE_PROTECT_MODE_NOT_PROTECTED}, {"personalize_sleeptimer" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE}, @@ -82,6 +81,8 @@ const struct personalize_settings_t personalize_settings[SNeutrinoSettings::P_SE {"personalize_reload_channels" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE}, {"personalize_bouquet_edit" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE}, {"personalize_reset_channels" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE}, + {"personalize_daemon_control" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE}, + {"personalize_camd_control" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE}, {"personalize_restart" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE}, {"personalize_restart_tuner" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE}, //NI {"personalize_reload_plugins" , CPersonalizeGui::PERSONALIZE_MODE_VISIBLE}, diff --git a/src/system/settings.h b/src/system/settings.h index b05b211a4..fa585ca3a 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -350,7 +350,6 @@ struct SNeutrinoSettings P_MAIN_TOOLS, P_MAIN_SCRIPTS, P_MAIN_LUA, - P_MAIN_NI_MENU, //NI P_MAIN_SETTINGS, P_MAIN_SERVICE, P_MAIN_SLEEPTIMER, @@ -382,6 +381,8 @@ struct SNeutrinoSettings P_MSER_RELOAD_CHANNELS, P_MSER_BOUQUET_EDIT, P_MSER_RESET_CHANNELS, + P_MSER_DAEMON_CONTROL, + P_MSER_CAMD_CONTROL, P_MSER_RESTART, P_MSER_RESTART_TUNER, //NI P_MSER_RELOAD_PLUGINS,