diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 0d1ab625b..38651925f 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1774,6 +1774,10 @@ videomenu.analog_sd_rgb_cinch RGB -> Cinch (SD) videomenu.analog_sd_rgb_scart RGB -> Scart (SD) videomenu.analog_sd_yprpb_cinch YPbPr -> Cinch (SD) videomenu.analog_sd_yprpb_scart YPbPr -> Scart (SD) +videomenu.analog_hd_rgb RGB (HD) +videomenu.analog_hd_yprpb YPbPr(HD) +videomenu.analog_sd_rgb RGB (SD) +videomenu.analog_sd_yprpb YPbPr (SD) videomenu.auto Automatisch videomenu.brightness Helligkeit videomenu.cinch Cinch diff --git a/data/locale/english.locale b/data/locale/english.locale index 48bad20a2..f6d2c6811 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1774,6 +1774,10 @@ videomenu.analog_sd_rgb_cinch RGB on cinch (SD) videomenu.analog_sd_rgb_scart RGB on scart (SD) videomenu.analog_sd_yprpb_cinch YPbPr on cinch (SD) videomenu.analog_sd_yprpb_scart YPbPr on scart (SD) +videomenu.analog_hd_rgb RGB (HD) +videomenu.analog_hd_yprpb YPbPr(HD) +videomenu.analog_sd_rgb RGB (SD) +videomenu.analog_sd_yprpb YPbPr (SD) videomenu.auto Auto videomenu.brightness Brightness videomenu.cinch Cinch diff --git a/lib/libcoolstream/video_cs.h b/lib/libcoolstream/video_cs.h index 2b8a8f034..52946dd0c 100644 --- a/lib/libcoolstream/video_cs.h +++ b/lib/libcoolstream/video_cs.h @@ -22,17 +22,21 @@ #endif typedef enum { - ANALOG_SD_RGB_CINCH = 0x00, - ANALOG_SD_YPRPB_CINCH, - ANALOG_HD_RGB_CINCH, - ANALOG_HD_YPRPB_CINCH, - ANALOG_SD_RGB_SCART = 0x10, - ANALOG_SD_YPRPB_SCART, - ANALOG_HD_RGB_SCART, - ANALOG_HD_YPRPB_SCART, - ANALOG_SCART_MASK = 0x10 + // Video modes + ANALOG_xD_CVBS = (1 << 0), // Turns off fastblank on SCART + ANALOG_SD_RGB = (1 << 1), // Output SD in RGB format + ANALOG_SD_YPRPB = (1 << 2), // Output SD in YPbPr format (component) + ANALOG_HD_RGB = (1 << 3), // Output HD in RGB format + ANALOG_HD_YPRPB = (1 << 4), // Output HD in YPbPr format (component) + // Output types + ANALOG_xD_SCART = (1 << 8), // Output is SCART + ANALOG_xD_CINCH = (1 << 9), // Output is Cinch + ANALOG_xD_BOTH = (3 << 8), // Output cannot individually control scart, cinch outputs + // due to limited amount of DACs (ie TANK, Trinity) } analog_mode_t; +#define ANALOG_MODE(conn, def, sys) (ANALOG_##def##_##sys | ANALOG_xD_##conn) + typedef enum { VIDEO_FORMAT_MPEG2 = 0, @@ -185,7 +189,6 @@ private: public: /* constructor & destructor */ cVideo(int mode, void * hChannel, void * hBuffer); - ~cVideo(void); void * GetVPP(void); diff --git a/src/gui/videosettings.cpp b/src/gui/videosettings.cpp index f59e02752..46cf044ff 100644 --- a/src/gui/videosettings.cpp +++ b/src/gui/videosettings.cpp @@ -107,23 +107,34 @@ const CMenuOptionChooser::keyval VIDEOMENU_43MODE_OPTIONS[VIDEOMENU_43MODE_OPTIO #define VIDEOMENU_VIDEOSIGNAL_HD1_OPTION_COUNT 8 const CMenuOptionChooser::keyval VIDEOMENU_VIDEOSIGNAL_HD1_OPTIONS[VIDEOMENU_VIDEOSIGNAL_HD1_OPTION_COUNT] = { - { ANALOG_SD_RGB_SCART, LOCALE_VIDEOMENU_ANALOG_SD_RGB_SCART }, /* composite + RGB (for both SCART and Cinch) */ - { ANALOG_SD_RGB_CINCH, LOCALE_VIDEOMENU_ANALOG_SD_RGB_CINCH }, /* composite + RGB (for both SCART and Cinch) */ - { ANALOG_SD_YPRPB_SCART, LOCALE_VIDEOMENU_ANALOG_SD_YPRPB_SCART }, /* YPbPr SCART (with wrongly connected Cinch) */ - { ANALOG_SD_YPRPB_CINCH, LOCALE_VIDEOMENU_ANALOG_SD_YPRPB_CINCH }, /* YPbPr Cinch (with wrongly connected SCART) */ - { ANALOG_HD_RGB_SCART, LOCALE_VIDEOMENU_ANALOG_HD_RGB_SCART }, - { ANALOG_HD_RGB_CINCH, LOCALE_VIDEOMENU_ANALOG_HD_RGB_CINCH }, - { ANALOG_HD_YPRPB_SCART, LOCALE_VIDEOMENU_ANALOG_HD_YPRPB_SCART }, - { ANALOG_HD_YPRPB_CINCH, LOCALE_VIDEOMENU_ANALOG_HD_YPRPB_CINCH } + { ANALOG_MODE(SCART,SD,RGB ), LOCALE_VIDEOMENU_ANALOG_SD_RGB_SCART }, /* composite + RGB (for both SCART and Cinch) */ + { ANALOG_MODE(CINCH,SD,RGB ), LOCALE_VIDEOMENU_ANALOG_SD_RGB_CINCH }, /* composite + RGB (for both SCART and Cinch) */ + { ANALOG_MODE(SCART,SD,YPRPB), LOCALE_VIDEOMENU_ANALOG_SD_YPRPB_SCART }, /* YPbPr SCART (with wrongly connected Cinch) */ + { ANALOG_MODE(CINCH,SD,YPRPB), LOCALE_VIDEOMENU_ANALOG_SD_YPRPB_CINCH }, /* YPbPr Cinch (with wrongly connected SCART) */ + { ANALOG_MODE(SCART,HD,RGB ), LOCALE_VIDEOMENU_ANALOG_HD_RGB_SCART }, + { ANALOG_MODE(CINCH,HD,RGB ), LOCALE_VIDEOMENU_ANALOG_HD_RGB_CINCH }, + { ANALOG_MODE(SCART,HD,YPRPB), LOCALE_VIDEOMENU_ANALOG_HD_YPRPB_SCART }, + { ANALOG_MODE(CINCH,HD,YPRPB), LOCALE_VIDEOMENU_ANALOG_HD_YPRPB_CINCH } }; +#ifdef ISAPOLLO +#define VIDEOMENU_VIDEOSIGNAL_TANK_OPTION_COUNT 4 +const CMenuOptionChooser::keyval VIDEOMENU_VIDEOSIGNAL_TANK_OPTIONS[VIDEOMENU_VIDEOSIGNAL_TANK_OPTION_COUNT] = +{ + { ANALOG_MODE(BOTH ,SD,RGB ), LOCALE_VIDEOMENU_ANALOG_SD_RGB }, /* Scart and Cinch */ + { ANALOG_MODE(BOTH ,SD,YPRPB), LOCALE_VIDEOMENU_ANALOG_SD_YPRPB }, /* */ + { ANALOG_MODE(BOTH ,HD,RGB ), LOCALE_VIDEOMENU_ANALOG_HD_RGB }, /* */ + { ANALOG_MODE(BOTH ,HD,YPRPB), LOCALE_VIDEOMENU_ANALOG_HD_YPRPB }, /* */ +}; +#endif + #define VIDEOMENU_VIDEOSIGNAL_HD1PLUS_SCART_OPTION_COUNT 4 const CMenuOptionChooser::keyval VIDEOMENU_VIDEOSIGNAL_HD1PLUS_SCART_OPTIONS[VIDEOMENU_VIDEOSIGNAL_HD1PLUS_SCART_OPTION_COUNT] = { - { ANALOG_SD_RGB_SCART, LOCALE_VIDEOMENU_ANALOG_SD_RGB_SCART }, /* composite + RGB */ - { ANALOG_SD_YPRPB_SCART, LOCALE_VIDEOMENU_ANALOG_SD_YPRPB_SCART }, /* YPbPr SCART */ - { ANALOG_HD_RGB_SCART, LOCALE_VIDEOMENU_ANALOG_HD_RGB_SCART }, - { ANALOG_HD_YPRPB_SCART, LOCALE_VIDEOMENU_ANALOG_HD_YPRPB_SCART }, + { ANALOG_MODE(SCART,SD,RGB ), LOCALE_VIDEOMENU_ANALOG_SD_RGB_SCART }, /* composite + RGB */ + { ANALOG_MODE(SCART,SD,YPRPB), LOCALE_VIDEOMENU_ANALOG_SD_YPRPB_SCART }, /* YPbPr SCART */ + { ANALOG_MODE(SCART,HD,RGB ), LOCALE_VIDEOMENU_ANALOG_HD_RGB_SCART }, + { ANALOG_MODE(SCART,HD,YPRPB), LOCALE_VIDEOMENU_ANALOG_HD_YPRPB_SCART }, }; // #define VIDEOMENU_VCRSIGNAL_OPTION_COUNT 2 @@ -136,10 +147,10 @@ const CMenuOptionChooser::keyval VIDEOMENU_VIDEOSIGNAL_HD1PLUS_SCART_OPTIONS[VID #define VIDEOMENU_VIDEOSIGNAL_HD1PLUS_CINCH_OPTION_COUNT 4 const CMenuOptionChooser::keyval VIDEOMENU_VIDEOSIGNAL_HD1PLUS_CINCH_OPTIONS[VIDEOMENU_VIDEOSIGNAL_HD1PLUS_CINCH_OPTION_COUNT] = { - { ANALOG_SD_RGB_CINCH, LOCALE_VIDEOMENU_ANALOG_SD_RGB_CINCH }, /* composite + RGB (for both SCART and Cinch) */ - { ANALOG_SD_YPRPB_CINCH, LOCALE_VIDEOMENU_ANALOG_SD_YPRPB_CINCH }, /* YPbPr Cinch (with wrongly connected SCART) */ - { ANALOG_HD_RGB_CINCH, LOCALE_VIDEOMENU_ANALOG_HD_RGB_CINCH }, - { ANALOG_HD_YPRPB_CINCH, LOCALE_VIDEOMENU_ANALOG_HD_YPRPB_CINCH } + { ANALOG_MODE(CINCH,SD,RGB ), LOCALE_VIDEOMENU_ANALOG_SD_RGB_CINCH }, /* composite + RGB (for both SCART and Cinch) */ + { ANALOG_MODE(CINCH,SD,YPRPB), LOCALE_VIDEOMENU_ANALOG_SD_YPRPB_CINCH }, /* YPbPr Cinch (with wrongly connected SCART) */ + { ANALOG_MODE(CINCH,HD,RGB ), LOCALE_VIDEOMENU_ANALOG_HD_RGB_CINCH }, + { ANALOG_MODE(CINCH,HD,YPRPB), LOCALE_VIDEOMENU_ANALOG_HD_YPRPB_CINCH } }; /* numbers corresponding to video.cpp from zapit */ @@ -188,7 +199,7 @@ int CVideoSettings::showVideoSetup() CMenuOptionChooser * vs_analg_ch = NULL; CMenuOptionChooser * vs_scart_ch = NULL; CMenuOptionChooser * vs_chinch_ch = NULL; - if (system_rev == 0x06) + if (system_rev == 0x06 || system_rev == 0x09) { vs_analg_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_ANALOG_MODE, &g_settings.analog_mode1, VIDEOMENU_VIDEOSIGNAL_HD1_OPTIONS, VIDEOMENU_VIDEOSIGNAL_HD1_OPTION_COUNT, true, this); vs_analg_ch->setHint("", LOCALE_MENU_HINT_VIDEO_ANALOG_MODE); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 83c0bd580..f40696257 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -294,8 +294,8 @@ int CNeutrinoApp::loadSetup(const char * fname) } // video g_settings.video_Mode = configfile.getInt32("video_Mode", VIDEO_STD_1080I50); // VIDEO_STD_720P50 - g_settings.analog_mode1 = configfile.getInt32("analog_mode1", (int)ANALOG_SD_RGB_SCART); // default RGB - g_settings.analog_mode2 = configfile.getInt32("analog_mode2", (int)ANALOG_SD_YPRPB_CINCH); // default YPBPR + g_settings.analog_mode1 = configfile.getInt32("analog_mode1", (int)ANALOG_MODE(SCART,SD,RGB)); // default RGB + g_settings.analog_mode2 = configfile.getInt32("analog_mode2", (int)ANALOG_MODE(CINCH,SD,YPRPB)); // default YPBPR g_settings.hdmi_cec_mode = configfile.getInt32("hdmi_cec_mode", 0); // default off g_settings.hdmi_cec_view_on = configfile.getInt32("hdmi_cec_view_on", 0); // default off g_settings.hdmi_cec_standby = configfile.getInt32("hdmi_cec_standby", 0); // default off diff --git a/src/system/locals.h b/src/system/locals.h index 73aeb3603..b929a9b7a 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1801,6 +1801,10 @@ typedef enum LOCALE_VIDEOMENU_ANALOG_SD_RGB_SCART, LOCALE_VIDEOMENU_ANALOG_SD_YPRPB_CINCH, LOCALE_VIDEOMENU_ANALOG_SD_YPRPB_SCART, + LOCALE_VIDEOMENU_ANALOG_HD_RGB, + LOCALE_VIDEOMENU_ANALOG_HD_YPRPB, + LOCALE_VIDEOMENU_ANALOG_SD_RGB, + LOCALE_VIDEOMENU_ANALOG_SD_YPRPB, LOCALE_VIDEOMENU_AUTO, LOCALE_VIDEOMENU_BRIGHTNESS, LOCALE_VIDEOMENU_CINCH, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index ede893246..e2ea8e0db 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1801,6 +1801,10 @@ const char * locale_real_names[] = "videomenu.analog_sd_rgb_scart", "videomenu.analog_sd_yprpb_cinch", "videomenu.analog_sd_yprpb_scart", + "videomenu.analog_hd_rgb", + "videomenu.analog_hd_yprpb", + "videomenu.analog_sd_rgb", + "videomenu.analog_sd_yprpb", "videomenu.auto", "videomenu.brightness", "videomenu.cinch",