Files
neutrino/src/system/settings.h
micha-bbg 469d06a95a Switchover remote control standard / neo1
- Disable virtual zap when Neo1 remote control
- OSD setup (remote control) optimized.


git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@1772 e54a6e83-5905-42d5-8d5c-058d10e6a962
2011-10-23 14:56:54 +00:00

623 lines
15 KiB
C++

/*
Neutrino-GUI - DBoxII-Project
Copyright (C) 2001 Steffen Hehn 'McClean'
Homepage: http://dbox.cyberphoria.org/
Kommentar:
Diese GUI wurde von Grund auf neu programmiert und sollte nun vom
Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert
auf der Client-Server Idee, diese GUI ist also von der direkten DBox-
Steuerung getrennt. Diese wird dann von Daemons uebernommen.
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 __settings__
#define __settings__
#include <system/localize.h>
#include <configfile.h>
#include <zapit/client/zapitclient.h>
#include <string>
#define VIDEOMENU_VIDEOMODE_OPTION_COUNT 12
struct SNeutrinoSettings
{
//video
int video_Format;
int video_Mode;
int analog_mode1;
int analog_mode2;
int video_43mode;
char current_volume;
int current_volume_step;
int channel_mode;
int channel_mode_radio;
//misc
int shutdown_real;
int shutdown_real_rcdelay;
char shutdown_count[4];
char shutdown_min[4];
char record_safety_time_before[3];
char record_safety_time_after[3];
int zapto_pre_time;
int infobar_sat_display;
int infobar_subchan_disp_pos;
int misc_spts;
int fan_speed;
int infobar_show;
int show_infomenu;
int infobar_show_channellogo;
int progressbar_color;
int casystem_display;
int scrambled_message;
int volume_pos;
int show_mute_icon;
int menu_pos;
int infobar_show_var_hdd;
int infobar_show_res;
//audio
int audio_AnalogMode;
int audio_DolbyDigital;
int audio_avs_Control;
int auto_lang;
int auto_subs;
char audio_PCMOffset[3];
int srs_enable;
int srs_algo;
int srs_ref_volume;
int srs_nmgr_enable;
int hdmi_dd;
int spdif_dd;
int analog_out;
//video
int video_dbdr;
int hdmi_cec_mode;
int hdmi_cec_view_on;
int hdmi_cec_standby;
int enabled_video_modes[VIDEOMENU_VIDEOMODE_OPTION_COUNT];
int cpufreq;
int standby_cpufreq;
int make_hd_list;
int avsync;
int clockrec;
int rounded_corners;
int ci_standby_reset;
int radiotext_enable;
//vcr
int vcr_AutoSwitch;
//language
char language[25];
char timezone[150];
char pref_lang[3][30];
char pref_subs[3][30];
// EPG
int epg_save;
std::string epg_cache;
std::string epg_old_events;
std::string epg_max_events;
std::string epg_extendedcache;
std::string epg_dir;
//network
std::string network_ntpserver;
std::string network_ntprefresh;
int network_ntpenable;
char ifname[10];
//timing
enum TIMING_SETTINGS {
TIMING_MENU = 0,
TIMING_CHANLIST = 1,
TIMING_EPG = 2,
TIMING_INFOBAR = 3,
TIMING_INFOBAR_RADIO = 4,
TIMING_INFOBAR_MOVIE = 5,
// TIMING_VOLUMEBAR,
TIMING_FILEBROWSER = 6,
TIMING_NUMERICZAP = 7,
TIMING_SETTING_COUNT
};
int timing [TIMING_SETTING_COUNT] ;
char timing_string[TIMING_SETTING_COUNT][4];
//widget settings
int widget_fade;
//colors
unsigned char gtx_alpha1;
unsigned char gtx_alpha2;
unsigned char menu_Head_alpha;
unsigned char menu_Head_red;
unsigned char menu_Head_green;
unsigned char menu_Head_blue;
unsigned char menu_Head_Text_alpha;
unsigned char menu_Head_Text_red;
unsigned char menu_Head_Text_green;
unsigned char menu_Head_Text_blue;
unsigned char menu_Content_alpha;
unsigned char menu_Content_red;
unsigned char menu_Content_green;
unsigned char menu_Content_blue;
unsigned char menu_Content_Text_alpha;
unsigned char menu_Content_Text_red;
unsigned char menu_Content_Text_green;
unsigned char menu_Content_Text_blue;
unsigned char menu_Content_Selected_alpha;
unsigned char menu_Content_Selected_red;
unsigned char menu_Content_Selected_green;
unsigned char menu_Content_Selected_blue;
unsigned char menu_Content_Selected_Text_alpha;
unsigned char menu_Content_Selected_Text_red;
unsigned char menu_Content_Selected_Text_green;
unsigned char menu_Content_Selected_Text_blue;
unsigned char menu_Content_inactive_alpha;
unsigned char menu_Content_inactive_red;
unsigned char menu_Content_inactive_green;
unsigned char menu_Content_inactive_blue;
unsigned char menu_Content_inactive_Text_alpha;
unsigned char menu_Content_inactive_Text_red;
unsigned char menu_Content_inactive_Text_green;
unsigned char menu_Content_inactive_Text_blue;
unsigned char infobar_alpha;
unsigned char infobar_red;
unsigned char infobar_green;
unsigned char infobar_blue;
unsigned char infobar_Text_alpha;
unsigned char infobar_Text_red;
unsigned char infobar_Text_green;
unsigned char infobar_Text_blue;
unsigned char colored_events_alpha;
unsigned char colored_events_red;
unsigned char colored_events_green;
unsigned char colored_events_blue;
int colored_events;
//network
#define NETWORK_NFS_NR_OF_ENTRIES 8
std::string network_nfs_ip[NETWORK_NFS_NR_OF_ENTRIES];
char network_nfs_mac[NETWORK_NFS_NR_OF_ENTRIES][31];
char network_nfs_local_dir[NETWORK_NFS_NR_OF_ENTRIES][100];
char network_nfs_dir[NETWORK_NFS_NR_OF_ENTRIES][100];
int network_nfs_automount[NETWORK_NFS_NR_OF_ENTRIES];
char network_nfs_mount_options1[NETWORK_NFS_NR_OF_ENTRIES][31];
char network_nfs_mount_options2[NETWORK_NFS_NR_OF_ENTRIES][31];
int network_nfs_type[NETWORK_NFS_NR_OF_ENTRIES];
char network_nfs_username[NETWORK_NFS_NR_OF_ENTRIES][31];
char network_nfs_password[NETWORK_NFS_NR_OF_ENTRIES][31];
char network_nfs_audioplayerdir[100];
char network_nfs_picturedir[100];
char network_nfs_moviedir[100];
char network_nfs_recordingdir[100];
char timeshiftdir[100];
//recording
int recording_type;
int recording_stopplayback;
int recording_stopsectionsd;
std::string recording_server_ip;
char recording_server_port[10];
int recording_server_wakeup;
char recording_server_mac[31];
int recording_vcr_no_scart;
char recording_splitsize[10];
int recording_use_o_sync;
int recording_use_fdatasync;
unsigned char recording_audio_pids_default;
int recording_audio_pids_std;
int recording_audio_pids_alt;
int recording_audio_pids_ac3;
int recording_stream_vtxt_pid;
int recording_stream_pmt_pid;
char recording_ringbuffers[10];
int recording_choose_direct_rec_dir;
int recording_epg_for_filename;
int recording_save_in_channeldir;
int recording_in_spts_mode;
int recording_zap_on_announce;
int shutdown_timer_record_type;
int filesystem_is_utf8;
// default plugin for ts-movieplayer (red button)
std::string movieplayer_plugin;
std::string onekey_plugin;
std::string plugin_hdd_dir;
std::string logo_hdd_dir;
//key configuration
int key_tvradio_mode;
int key_channelList_pageup;
int key_channelList_pagedown;
int key_channelList_cancel;
int key_channelList_sort;
int key_channelList_addrecord;
int key_channelList_addremind;
int key_quickzap_up;
int key_quickzap_down;
int key_bouquet_up;
int key_bouquet_down;
int key_subchannel_up;
int key_subchannel_down;
int key_zaphistory;
int key_lastchannel;
int key_list_start;
int key_list_end;
int key_power_off;
int menu_left_exit;
int audio_run_player;
int key_click;
int timeshift_pause;
int auto_timeshift;
int temp_timeshift;
int auto_delete;
int record_hours;
int mpkey_rewind;
int mpkey_forward;
int mpkey_pause;
int mpkey_stop;
int mpkey_play;
int mpkey_audio;
int mpkey_time;
int mpkey_bookmark;
int mpkey_plugin;
int key_timeshift;
int key_plugin;
int rf_subcarrier;
int rf_soundenable;
int rf_channel;
int rf_finetune;
int rf_standby;
int key_unlock;
int cacheTXT;
int minimode;
int mode_clock;
int virtual_zap_mode;
int spectrum;
int pip_width;
int pip_height;
int pip_x;
int pip_y;
int bigFonts;
int big_windows;
int channellist_epgtext_align_right;
int channellist_extended;
int channellist_foot;
char repeat_blocker[4];
char repeat_genericblocker[4];
int remote_control_hardware;
int audiochannel_up_down_enable;
//screen configuration
int screen_StartX;
int screen_StartY;
int screen_EndX;
int screen_EndY;
int screen_StartX_crt;
int screen_StartY_crt;
int screen_EndX_crt;
int screen_EndY_crt;
int screen_StartX_lcd;
int screen_StartY_lcd;
int screen_EndX_lcd;
int screen_EndY_lcd;
int screen_preset;
int screen_width;
int screen_height;
int screen_xres;
int screen_yres;
//Software-update
int softupdate_mode;
char softupdate_url_file[31];
char softupdate_proxyserver[31];
char softupdate_proxyusername[31];
char softupdate_proxypassword[31];
//BouquetHandling
int bouquetlist_mode;
// parentallock
int parentallock_prompt;
int parentallock_lockage;
char parentallock_pincode[5];
// Font sizes
#define FONT_TYPE_COUNT 22
enum FONT_TYPES {
FONT_TYPE_MENU = 0,
FONT_TYPE_MENU_TITLE = 1,
FONT_TYPE_MENU_INFO = 2,
FONT_TYPE_EPG_TITLE = 3,
FONT_TYPE_EPG_INFO1 = 4,
FONT_TYPE_EPG_INFO2 = 5,
FONT_TYPE_EPG_DATE = 6,
FONT_TYPE_EVENTLIST_TITLE = 7,
FONT_TYPE_EVENTLIST_ITEMLARGE = 8,
FONT_TYPE_EVENTLIST_ITEMSMALL = 9,
FONT_TYPE_EVENTLIST_DATETIME = 10,
FONT_TYPE_GAMELIST_ITEMLARGE = 11,
FONT_TYPE_GAMELIST_ITEMSMALL = 12,
FONT_TYPE_CHANNELLIST = 13,
FONT_TYPE_CHANNELLIST_DESCR = 14,
FONT_TYPE_CHANNELLIST_NUMBER = 15,
FONT_TYPE_CHANNEL_NUM_ZAP = 16,
FONT_TYPE_INFOBAR_NUMBER = 17,
FONT_TYPE_INFOBAR_CHANNAME = 18,
FONT_TYPE_INFOBAR_INFO = 19,
FONT_TYPE_INFOBAR_SMALL = 20,
FONT_TYPE_FILEBROWSER_ITEM = 21
};
// lcdd
enum LCD_SETTINGS {
LCD_BRIGHTNESS = 0,
LCD_STANDBY_BRIGHTNESS ,
LCD_CONTRAST ,
LCD_POWER ,
LCD_INVERSE ,
LCD_SHOW_VOLUME ,
LCD_AUTODIMM ,
LCD_DEEPSTANDBY_BRIGHTNESS,
#if HAVE_TRIPLEDRAGON
LCD_EPGMODE ,
#endif
LCD_SETTING_COUNT
};
int lcd_setting[LCD_SETTING_COUNT];
int lcd_info_line;
char lcd_setting_dim_time[4];
int lcd_setting_dim_brightness;
int led_tv_mode;
int led_standby_mode;
int led_deep_mode;
int led_rec_mode;
int led_blink;
#define FILESYSTEM_ENCODING_TO_UTF8(a) (g_settings.filesystem_is_utf8 ? (a) : ZapitTools::Latin1_to_UTF8(a).c_str())
#define UTF8_TO_FILESYSTEM_ENCODING(a) (g_settings.filesystem_is_utf8 ? (a) : ZapitTools::UTF8_to_Latin1(a).c_str())
#define FILESYSTEM_ENCODING_TO_UTF8_STRING(a) (g_settings.filesystem_is_utf8 ? (a) : Latin1_to_UTF8(a))
#if 0
#define MISC_SETTING_FILES_COUNT 7
#else
#define MISC_SETTING_FILES_COUNT 4
#endif
// #define MISC_SETTING_SPTS_MODE 0
int misc_option[MISC_SETTING_FILES_COUNT];
// pictureviewer
char picviewer_slide_time[3];
int picviewer_scaling;
std::string picviewer_decode_server_ip;
char picviewer_decode_server_port[6];
//audioplayer
int audioplayer_display;
int audioplayer_follow;
char audioplayer_screensaver[3];
int audioplayer_highprio;
int audioplayer_select_title_by_name;
int audioplayer_repeat_on;
int audioplayer_show_playlist;
int audioplayer_enable_sc_metadata;
std::string shoutcast_dev_id;
//Filebrowser
int filebrowser_showrights;
int filebrowser_sortmethod;
int filebrowser_denydirectoryleave;
//zapit setup
std::string StartChannelTV;
std::string StartChannelRadio;
t_channel_id startchanneltv_id;
t_channel_id startchannelradio_id;
int startchanneltv_nr;
int startchannelradio_nr;
int uselastchannel;
//uboot
int uboot_lcd_inverse;
int uboot_lcd_contrast;
int uboot_console;
int uboot_console_bak;
int power_standby;
int emlog;
int rotor_swap;
int ts_mode;
int hw_sect;
int hdd_sleep;
int hdd_noise;
int hdd_fs;
int logo_num;
int zap_cycle;
int sms_channel;
char font_file[100];
char ttx_font_file[100];
char update_dir[100];
// USERMENU
typedef enum
{
BUTTON_RED = 0, // Do not change ordering of members, add new item just before BUTTON_MAX!!!
BUTTON_GREEN = 1,
BUTTON_YELLOW = 2,
BUTTON_BLUE = 3,
BUTTON_MAX // MUST be always the last in the list
} USER_BUTTON;
typedef enum
{
ITEM_NONE = 0, // Do not change ordering of members, add new item just before ITEM_MAX!!!
ITEM_BAR = 1,
ITEM_EPG_LIST = 2,
ITEM_EPG_SUPER = 3,
ITEM_EPG_INFO = 4,
ITEM_EPG_MISC = 5,
ITEM_AUDIO_SELECT = 6,
ITEM_SUBCHANNEL = 7,
ITEM_RECORD = 8,
ITEM_MOVIEPLAYER_MB = 9,
ITEM_TIMERLIST = 10,
ITEM_FAVORITS = 12,
ITEM_VTXT = 11,
ITEM_TECHINFO = 13,
ITEM_REMOTE = 14,
ITEM_PLUGIN = 15,
ITEM_IMAGEINFO,
ITEM_BOXINFO,
ITEM_CAM,
#if 0
ITEM_MOVIEPLAYER_TS,
ITEM_RESTART_CAMD,
#endif
ITEM_MAX // MUST be always the last in the list
} USER_ITEM;
std::string usermenu_text[BUTTON_MAX];
int usermenu[BUTTON_MAX][ITEM_MAX]; // (USER_ITEM) [button][position in Menue] = feature item
};
/* some default Values */
typedef struct time_settings_t
{
const int default_timing;
const neutrino_locale_t name;
} time_settings_struct_t;
const time_settings_struct_t timing_setting[SNeutrinoSettings::TIMING_SETTING_COUNT] =
{
{ 0, LOCALE_TIMING_MENU },
{ 60, LOCALE_TIMING_CHANLIST },
{ 240, LOCALE_TIMING_EPG },
{ 6, LOCALE_TIMING_INFOBAR },
{ 0, LOCALE_TIMING_INFOBAR_RADIO },
{ 6, LOCALE_TIMING_INFOBAR_MOVIEPLAYER},
// { 3, LOCALE_TIMING_VOLUMEBAR },
{ 60, LOCALE_TIMING_FILEBROWSER },
{ 3, LOCALE_TIMING_NUMERICZAP }
};
// lcdd
#define DEFAULT_VFD_BRIGHTNESS 15
#define DEFAULT_VFD_STANDBYBRIGHTNESS 5
#define DEFAULT_LCD_BRIGHTNESS 0xff
#define DEFAULT_LCD_STANDBYBRIGHTNESS 0xaa
#define DEFAULT_LCD_CONTRAST 0x0F
#define DEFAULT_LCD_POWER 0x01
#define DEFAULT_LCD_INVERSE 0x00
#define DEFAULT_LCD_AUTODIMM 0x00
#define DEFAULT_LCD_SHOW_VOLUME 0x01
#define CORNER_RADIUS_LARGE 11
#define CORNER_RADIUS_MID 7
#define CORNER_RADIUS_SMALL 5
#define CORNER_RADIUS_MIN 3
#define RADIUS_LARGE (g_settings.rounded_corners ? CORNER_RADIUS_LARGE : 0)
#define RADIUS_MID (g_settings.rounded_corners ? CORNER_RADIUS_MID : 0)
#define RADIUS_SMALL (g_settings.rounded_corners ? CORNER_RADIUS_SMALL : 0)
#define RADIUS_MIN (g_settings.rounded_corners ? CORNER_RADIUS_MIN : 0)
// shadow
#define SHADOW_OFFSET 6
/* end default values */
struct SglobalInfo
{
unsigned char box_Type;
delivery_system_t delivery_system;
bool has_fan;
};
const int RECORDING_OFF = 0;
const int RECORDING_SERVER = 1;
const int RECORDING_VCR = 2;
const int RECORDING_FILE = 3;
const int PARENTALLOCK_PROMPT_NEVER = 0;
const int PARENTALLOCK_PROMPT_ONSTART = 1;
const int PARENTALLOCK_PROMPT_CHANGETOLOCKED = 2;
const int PARENTALLOCK_PROMPT_ONSIGNAL = 3;
class CScanSettings
{
public:
CConfigFile configfile;
int bouquetMode;
int scanType;
int diseqcMode;
uint32_t diseqcRepeat;
char satNameNoDiseqc[50];
delivery_system_t delivery_system;
int scanSectionsd;
int scan_mode;
int scan_fta_flag;
int TP_fec;
int TP_pol;
int TP_mod;
char TP_freq[10];
char TP_rate[9];
int fast_type;
int fast_op;
CScanSettings();
void useDefaults(const delivery_system_t _delivery_system);
bool loadSettings(const char * const fileName, const delivery_system_t _delivery_system);
bool saveSettings(const char * const fileName);
};
#endif