diff --git a/intl/msg_hash_ar.h b/intl/msg_hash_ar.h index e01039a709..3a98e80425 100644 --- a/intl/msg_hash_ar.h +++ b/intl/msg_hash_ar.h @@ -6909,6 +6909,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (مركز)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (مركز)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "ايقاف" diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h index bb59d2aede..bea65a0faf 100644 --- a/intl/msg_hash_chs.h +++ b/intl/msg_hash_chs.h @@ -7065,6 +7065,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (居中)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (居中)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "关" diff --git a/intl/msg_hash_el.h b/intl/msg_hash_el.h index 98b6b73196..a1809ff9ab 100644 --- a/intl/msg_hash_el.h +++ b/intl/msg_hash_el.h @@ -4089,6 +4089,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (Στο Κέντρο)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (Στο Κέντρο)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_INTEGER, "Ακέραια Κλίμακα" diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index 846d757411..c0f238e650 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -7301,6 +7301,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (centrada)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (centrada)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "No" diff --git a/intl/msg_hash_fi.h b/intl/msg_hash_fi.h index 4f7e4d9c3c..fd50a10a30 100644 --- a/intl/msg_hash_fi.h +++ b/intl/msg_hash_fi.h @@ -4229,6 +4229,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (keskitetty)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (keskitetty)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "POIS" diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index 97091be115..d5268e9821 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -7317,6 +7317,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (Centré)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (Centré)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "Désactivé" diff --git a/intl/msg_hash_it.h b/intl/msg_hash_it.h index 89b707c9f5..0513edc1f0 100644 --- a/intl/msg_hash_it.h +++ b/intl/msg_hash_it.h @@ -7249,6 +7249,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (Centrato)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (Centrato)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_FIT_SCREEN, "Adatta Schermo" diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index e1eb903e51..be9f82cc99 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -6661,6 +6661,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (中央)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (中央)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "オフ" diff --git a/intl/msg_hash_ko.h b/intl/msg_hash_ko.h index 72bf7f9336..b6c2ff8ad2 100644 --- a/intl/msg_hash_ko.h +++ b/intl/msg_hash_ko.h @@ -7317,6 +7317,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (가운데 맞춤)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (가운데 맞춤)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "끄기" diff --git a/intl/msg_hash_pl.h b/intl/msg_hash_pl.h index 0f8616a43a..2b7a3854cb 100644 --- a/intl/msg_hash_pl.h +++ b/intl/msg_hash_pl.h @@ -6353,6 +6353,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (wyśrodkowany)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (wyśrodkowany)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "WYŁĄCZONE" diff --git a/intl/msg_hash_pt_br.h b/intl/msg_hash_pt_br.h index 4f1f5b9ad9..07867c0800 100644 --- a/intl/msg_hash_pt_br.h +++ b/intl/msg_hash_pt_br.h @@ -7249,6 +7249,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (centralizado)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (centralizado)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "DESLIGADO" diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index bbf7d97d59..164d4cead8 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -7449,6 +7449,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (Центрировано)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (Центрировано)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "ВЫКЛ" diff --git a/intl/msg_hash_tr.h b/intl/msg_hash_tr.h index 01385da828..538f8dcd66 100644 --- a/intl/msg_hash_tr.h +++ b/intl/msg_hash_tr.h @@ -7361,6 +7361,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (Ortalanmış)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (Ortalanmış)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "KAPALI" diff --git a/intl/msg_hash_uk.h b/intl/msg_hash_uk.h index f126e43440..4768f339ab 100644 --- a/intl/msg_hash_uk.h +++ b/intl/msg_hash_uk.h @@ -4105,6 +4105,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (центровано)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (центровано)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "ВИМК" diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index a70f3b63dc..7cb1eec75f 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -7993,6 +7993,14 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, "16:10 (Centered)" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2, + "3:2" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, + "3:2 (Centered)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, "OFF" diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index 97c555993c..d4dbf9c591 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -2316,6 +2316,10 @@ static void load_custom_theme(rgui_t *rgui, rgui_theme_t *theme_colors, const ch case RGUI_ASPECT_RATIO_16_10_CENTRE: wallpaper_key = "rgui_wallpaper_16_10"; break; + case RGUI_ASPECT_RATIO_3_2: + case RGUI_ASPECT_RATIO_3_2_CENTRE: + wallpaper_key = "rgui_wallpaper_3_2"; + break; default: /* 4:3 */ wallpaper_key = "rgui_wallpaper"; @@ -4450,6 +4454,28 @@ static bool rgui_set_aspect_ratio(rgui_t *rgui, bool delay_update) ( 4.0f / 3.0f) * (float)rgui_frame_buf.height); } break; + case RGUI_ASPECT_RATIO_3_2: + if (rgui_frame_buf.height == 240) + rgui_frame_buf.width = 360; + else + rgui_frame_buf.width = RGUI_ROUND_FB_WIDTH( + (3.0f / 2.0f) * (float)rgui_frame_buf.height); + base_term_width = rgui_frame_buf.width; + break; + case RGUI_ASPECT_RATIO_3_2_CENTRE: + if (rgui_frame_buf.height == 240) + { + rgui_frame_buf.width = 360; + base_term_width = 320; + } + else + { + rgui_frame_buf.width = RGUI_ROUND_FB_WIDTH( + (3.0f / 2.0f) * (float)rgui_frame_buf.height); + base_term_width = RGUI_ROUND_FB_WIDTH( + ( 4.0f / 3.0f) * (float)rgui_frame_buf.height); + } + break; default: /* 4:3 */ if (rgui_frame_buf.height == 240) @@ -4509,6 +4535,19 @@ static bool rgui_set_aspect_ratio(rgui_t *rgui, bool delay_update) base_term_width = (base_term_width < RGUI_MIN_FB_WIDTH) ? RGUI_MIN_FB_WIDTH : base_term_width; break; + case RGUI_ASPECT_RATIO_3_2: + rgui_frame_buf.height = (unsigned)( + (3.0f / 2.0f) * (float)rgui_frame_buf.width); + base_term_width = rgui_frame_buf.width; + break; + case RGUI_ASPECT_RATIO_3_2_CENTRE: + rgui_frame_buf.height = (unsigned)( + (3.0f / 2.0f) * (float)rgui_frame_buf.width); + base_term_width = RGUI_ROUND_FB_WIDTH( + ( 4.0f / 3.0f) * (float)rgui_frame_buf.height); + base_term_width = (base_term_width < RGUI_MIN_FB_WIDTH) ? + RGUI_MIN_FB_WIDTH : base_term_width; + break; default: /* 4:3 */ rgui_frame_buf.height = (unsigned)( @@ -5503,6 +5542,10 @@ static void rgui_frame(void *data, video_frame_info_t *video_info) case RGUI_ASPECT_RATIO_16_10_CENTRE: default_fb_width = 384; break; + case RGUI_ASPECT_RATIO_3_2: + case RGUI_ASPECT_RATIO_3_2_CENTRE: + default_fb_width = 360; + break; default: /* 4:3 */ default_fb_width = 320; diff --git a/menu/menu_defines.h b/menu/menu_defines.h index d18b64a08f..6fcbd3b3b9 100644 --- a/menu/menu_defines.h +++ b/menu/menu_defines.h @@ -319,6 +319,8 @@ enum rgui_aspect_ratio RGUI_ASPECT_RATIO_16_9_CENTRE, RGUI_ASPECT_RATIO_16_10, RGUI_ASPECT_RATIO_16_10_CENTRE, + RGUI_ASPECT_RATIO_3_2, + RGUI_ASPECT_RATIO_3_2_CENTRE, RGUI_ASPECT_RATIO_LAST }; diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 84c44dd705..4a07c5770e 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -3812,6 +3812,18 @@ static void setting_get_string_representation_uint_rgui_aspect_ratio( MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE), len); break; + case RGUI_ASPECT_RATIO_3_2: + strlcpy(s, + msg_hash_to_str( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2), + len); + break; + case RGUI_ASPECT_RATIO_3_2_CENTRE: + strlcpy(s, + msg_hash_to_str( + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE), + len); + break; } } diff --git a/msg_hash.h b/msg_hash.h index 49cd2b122d..ec0806cdc6 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -2579,6 +2579,8 @@ enum msg_hash_enums MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_9_CENTRE, MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10, MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE, + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2, + MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_3_2_CENTRE, MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE, MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_FIT_SCREEN,