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=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,
|