diff --git a/configuration.c b/configuration.c index 21057d5a2a..d4adfb01b5 100644 --- a/configuration.c +++ b/configuration.c @@ -1250,6 +1250,12 @@ static struct config_path_setting *populate_settings_path(settings_t *settings, #ifdef HAVE_OVERLAY SETTING_PATH("input_overlay", settings->paths.path_overlay, false, NULL, true); +#endif +#ifdef HAVE_VIDEO_LAYOUT + SETTING_PATH("video_layout_path", + settings->paths.path_video_layout, false, NULL, true); + SETTING_PATH("video_layout_directory", + settings->paths.directory_video_layout, true, NULL, true); #endif SETTING_PATH("video_record_config", settings->paths.path_record_config, false, NULL, true); @@ -1307,6 +1313,10 @@ static struct config_path_setting *populate_settings_path(settings_t *settings, SETTING_PATH("overlay_directory", settings->paths.directory_overlay, true, NULL, true); #endif +#ifdef HAVE_VIDEO_LAYOUT + SETTING_PATH("video_layout_directory", + settings->paths.directory_video_layout, true, NULL, true); +#endif #ifndef HAVE_DYNAMIC SETTING_PATH("libretro_path", path_get_ptr(RARCH_PATH_CORE), false, NULL, false); @@ -1503,6 +1513,9 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings, SETTING_BOOL("menu_show_latency", &settings->bools.menu_show_latency, true, true, false); SETTING_BOOL("menu_show_rewind", &settings->bools.menu_show_rewind, true, true, false); SETTING_BOOL("menu_show_overlays", &settings->bools.menu_show_overlays, true, true, false); +#ifdef HAVE_VIDEO_LAYOUT + SETTING_BOOL("menu_show_video_layout", &settings->bools.menu_show_video_layout, true, true, false); +#endif SETTING_BOOL("menu_show_help", &settings->bools.menu_show_help, true, menu_show_help, false); SETTING_BOOL("menu_show_quit_retroarch", &settings->bools.menu_show_quit_retroarch, true, menu_show_quit_retroarch, false); SETTING_BOOL("menu_show_reboot", &settings->bools.menu_show_reboot, true, menu_show_reboot, false); @@ -1552,6 +1565,9 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings, SETTING_BOOL("input_overlay_show_physical_inputs", &settings->bools.input_overlay_show_physical_inputs, true, false, false); SETTING_BOOL("input_overlay_hide_in_menu", &settings->bools.input_overlay_hide_in_menu, true, overlay_hide_in_menu, false); #endif +#ifdef HAVE_VIDEO_LAYOUT + SETTING_BOOL("video_layout_enable", &settings->bools.video_layout_enable, true, true, false); +#endif #ifdef HAVE_COMMAND SETTING_BOOL("network_cmd_enable", &settings->bools.network_cmd_enable, true, network_cmd_enable, false); SETTING_BOOL("stdin_cmd_enable", &settings->bools.stdin_cmd_enable, true, stdin_cmd_enable, false); @@ -1701,6 +1717,9 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings, SETTING_UINT("video_fullscreen_x", &settings->uints.video_fullscreen_x, true, fullscreen_x, false); SETTING_UINT("video_fullscreen_y", &settings->uints.video_fullscreen_y, true, fullscreen_y, false); SETTING_UINT("video_window_opacity", &settings->uints.video_window_opacity, true, window_opacity, false); +#ifdef HAVE_VIDEO_LAYOUT + SETTING_UINT("video_layout_selected_view", &settings->uints.video_layout_selected_view, true, 0, false); +#endif #ifdef HAVE_COMMAND SETTING_UINT("network_cmd_port", &settings->uints.network_cmd_port, true, network_cmd_port, false); #endif @@ -2150,6 +2169,9 @@ void config_set_defaults(void) *settings->paths.path_rgui_theme_preset = '\0'; *settings->paths.path_content_database = '\0'; *settings->paths.path_overlay = '\0'; +#ifdef HAVE_VIDEO_LAYOUT + *settings->paths.path_video_layout = '\0'; +#endif *settings->paths.path_record_config = '\0'; *settings->paths.path_stream_config = '\0'; *settings->paths.path_stream_url = '\0'; @@ -2246,6 +2268,14 @@ void config_set_defaults(void) #endif } #endif +#ifdef HAVE_VIDEO_LAYOUT + if (!string_is_empty(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])) + { + fill_pathname_expand_special(settings->paths.directory_video_layout, + g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], + sizeof(settings->paths.directory_video_layout)); + } +#endif #ifdef HAVE_MENU if (!string_is_empty(g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG])) @@ -3005,6 +3035,10 @@ static bool config_load_file(const char *path, settings_t *settings) #ifdef HAVE_OVERLAY if (string_is_equal(settings->paths.directory_overlay, "default")) *settings->paths.directory_overlay = '\0'; +#endif +#ifdef HAVE_VIDEO_LAYOUT + if (string_is_equal(settings->paths.directory_video_layout, "default")) + *settings->paths.directory_video_layout = '\0'; #endif if (string_is_equal(settings->paths.directory_system, "default")) *settings->paths.directory_system = '\0'; diff --git a/configuration.h b/configuration.h index d595e10412..a42b9a7ed0 100644 --- a/configuration.h +++ b/configuration.h @@ -106,6 +106,9 @@ typedef struct settings bool video_memory_show; bool video_msg_bgcolor_enable; bool video_3ds_lcd_bottom; +#ifdef HAVE_VIDEO_LAYOUT + bool video_layout_enable; +#endif /* Audio */ bool audio_enable; @@ -168,6 +171,9 @@ typedef struct settings bool menu_show_latency; bool menu_show_rewind; bool menu_show_overlays; +#ifdef HAVE_VIDEO_LAYOUT + bool menu_show_video_layout; +#endif bool menu_materialui_icons_enable; bool menu_rgui_background_filler_thickness_enable; bool menu_rgui_border_filler_thickness_enable; @@ -437,6 +443,9 @@ typedef struct settings unsigned video_record_scale_factor; unsigned video_stream_scale_factor; unsigned video_3ds_display_mode; +#ifdef HAVE_VIDEO_LAYOUT + unsigned video_layout_selected_view; +#endif unsigned menu_timedate_style; unsigned menu_thumbnails; @@ -568,6 +577,9 @@ typedef struct settings char path_cheat_database[PATH_MAX_LENGTH]; char path_content_database[PATH_MAX_LENGTH]; char path_overlay[PATH_MAX_LENGTH]; +#ifdef HAVE_VIDEO_LAYOUT + char path_video_layout[PATH_MAX_LENGTH]; +#endif char path_record_config[PATH_MAX_LENGTH]; char path_stream_config[PATH_MAX_LENGTH]; char path_stream_url[8192]; @@ -596,6 +608,9 @@ typedef struct settings char directory_cursor[PATH_MAX_LENGTH]; char directory_input_remapping[PATH_MAX_LENGTH]; char directory_overlay[PATH_MAX_LENGTH]; +#ifdef HAVE_VIDEO_LAYOUT + char directory_video_layout[PATH_MAX_LENGTH]; +#endif char directory_resampler[PATH_MAX_LENGTH]; char directory_screenshot[PATH_MAX_LENGTH]; char directory_system[PATH_MAX_LENGTH]; diff --git a/defaults.h b/defaults.h index 63e962c31a..b7f55962bf 100644 --- a/defaults.h +++ b/defaults.h @@ -38,6 +38,9 @@ enum default_dirs DEFAULT_DIR_CORE, DEFAULT_DIR_CORE_INFO, DEFAULT_DIR_OVERLAY, +#ifdef HAVE_VIDEO_LAYOUT + DEFAULT_DIR_VIDEO_LAYOUT, +#endif DEFAULT_DIR_PORT, DEFAULT_DIR_SHADER, DEFAULT_DIR_SAVESTATE, diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 5fbe53ca9d..fc7478b3a8 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -387,6 +387,9 @@ static void frontend_darwin_get_environment_settings(int *argc, char *argv[], #endif fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], home_dir_buf, "info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], home_dir_buf, "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], home_dir_buf, "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], home_dir_buf, "autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS], home_dir_buf, "downloads", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], home_dir_buf, "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS])); @@ -426,6 +429,9 @@ static void frontend_darwin_get_environment_settings(int *argc, char *argv[], fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], bundle_path_buf, "Contents/Resources/cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], bundle_path_buf, "Contents/Resources/info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], bundle_path_buf, "Contents/Resources/overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], bundle_path_buf, "Contents/Resources/layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], bundle_path_buf, "Contents/Resources/autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], bundle_path_buf, "Contents/Resources/assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_DATABASE], bundle_path_buf, "Contents/Resources/database/rdb", sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE])); diff --git a/frontend/drivers/platform_emscripten.c b/frontend/drivers/platform_emscripten.c index 8cfcce53dd..e8e11e3df0 100644 --- a/frontend/drivers/platform_emscripten.c +++ b/frontend/drivers/platform_emscripten.c @@ -172,6 +172,10 @@ static void frontend_emscripten_get_env(int *argc, char *argv[], "bundle/info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], base_path, "bundle/overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], base_path, + "bundle/layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SHADER], base_path, "bundle/shaders", sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER])); diff --git a/frontend/drivers/platform_gx.c b/frontend/drivers/platform_gx.c index b5cad2e5f5..d0a8cd2008 100644 --- a/frontend/drivers/platform_gx.c +++ b/frontend/drivers/platform_gx.c @@ -221,6 +221,10 @@ static void frontend_gx_get_environment_settings( sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], g_defaults.dirs[DEFAULT_DIR_CORE], "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], g_defaults.dirs[DEFAULT_DIR_CORE], + "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif fill_pathname_join(g_defaults.path.config, g_defaults.dirs[DEFAULT_DIR_PORT], "retroarch.cfg", sizeof(g_defaults.path.config)); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SYSTEM], g_defaults.dirs[DEFAULT_DIR_PORT], diff --git a/frontend/drivers/platform_orbis.c b/frontend/drivers/platform_orbis.c index cb2e64fe8f..dc7c5ea0ca 100644 --- a/frontend/drivers/platform_orbis.c +++ b/frontend/drivers/platform_orbis.c @@ -167,6 +167,10 @@ static void frontend_orbis_get_environment_settings(int *argc, char *argv[], "temp", sizeof(g_defaults.dirs[DEFAULT_DIR_CACHE])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], user_path, "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], user_path, + "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS], user_path, "thumbnails", sizeof(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_LOGS], user_path, diff --git a/frontend/drivers/platform_ps3.c b/frontend/drivers/platform_ps3.c index b93cb896ac..38c114b196 100644 --- a/frontend/drivers/platform_ps3.c +++ b/frontend/drivers/platform_ps3.c @@ -242,6 +242,11 @@ static void frontend_ps3_get_environment_settings(int *argc, char *argv[], fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], g_defaults.dirs[DEFAULT_DIR_CORE], "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], + g_defaults.dirs[DEFAULT_DIR_CORE], + "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], g_defaults.dirs[DEFAULT_DIR_CORE], "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS])); diff --git a/frontend/drivers/platform_psp.c b/frontend/drivers/platform_psp.c index 3832f7fcf3..657362ded9 100644 --- a/frontend/drivers/platform_psp.c +++ b/frontend/drivers/platform_psp.c @@ -145,6 +145,10 @@ static void frontend_psp_get_environment_settings(int *argc, char *argv[], "temp", sizeof(g_defaults.dirs[DEFAULT_DIR_CACHE])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], user_path, "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], user_path, + "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS], user_path, "thumbnails", sizeof(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_LOGS], user_path, diff --git a/frontend/drivers/platform_qnx.c b/frontend/drivers/platform_qnx.c index 30cb376523..64da613366 100644 --- a/frontend/drivers/platform_qnx.c +++ b/frontend/drivers/platform_qnx.c @@ -98,6 +98,10 @@ static void frontend_qnx_get_environment_settings(int *argc, char *argv[], "info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], data_path, "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], data_path, + "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SHADERS], data_path, "shaders", sizeof(g_defaults.dirs[DEFAULT_DIR_SHADERS])); diff --git a/frontend/drivers/platform_switch.c b/frontend/drivers/platform_switch.c index d2ec632361..daaf40cffc 100644 --- a/frontend/drivers/platform_switch.c +++ b/frontend/drivers/platform_switch.c @@ -229,6 +229,11 @@ static void frontend_switch_get_environment_settings(int *argc, char *argv[], vo fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], g_defaults.dirs[DEFAULT_DIR_PORT], "overlay", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], g_defaults.dirs[DEFAULT_DIR_PORT], + "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS], g_defaults.dirs[DEFAULT_DIR_PORT], "downloads", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS])); diff --git a/frontend/drivers/platform_unix.c b/frontend/drivers/platform_unix.c index 9b06096feb..49f4e30597 100644 --- a/frontend/drivers/platform_unix.c +++ b/frontend/drivers/platform_unix.c @@ -1570,6 +1570,10 @@ static void frontend_unix_get_env(int *argc, "shaders", sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], app_dir, "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], app_dir, + "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], app_dir, "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], @@ -1916,6 +1920,10 @@ static void frontend_unix_get_env(int *argc, "cheats", sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], base_path, "overlay", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], base_path, + "layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS], base_path, "downloads", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SCREENSHOT], base_path, diff --git a/frontend/drivers/platform_uwp.c b/frontend/drivers/platform_uwp.c index 6875109afc..3566f78d18 100644 --- a/frontend/drivers/platform_uwp.c +++ b/frontend/drivers/platform_uwp.c @@ -353,6 +353,10 @@ static void frontend_uwp_environment_get(int *argc, char *argv[], "~\\thumbnails", sizeof(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS])); fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_OVERLAY], "~\\overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], + "~\\layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif /* This one is an exception: cores have to be loaded from * the install directory, * since this is the only place UWP apps can take .dlls from */ diff --git a/frontend/drivers/platform_win32.c b/frontend/drivers/platform_win32.c index 3882c19261..ab7acb7cea 100644 --- a/frontend/drivers/platform_win32.c +++ b/frontend/drivers/platform_win32.c @@ -447,6 +447,10 @@ static void frontend_win32_environment_get(int *argc, char *argv[], ":\\thumbnails", sizeof(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS])); fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_OVERLAY], ":\\overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], + ":\\layouts", sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_CORE], ":\\cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE])); fill_pathname_expand_special(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], diff --git a/frontend/drivers/platform_xdk.c b/frontend/drivers/platform_xdk.c index a638ebe1f5..20777cdfa3 100644 --- a/frontend/drivers/platform_xdk.c +++ b/frontend/drivers/platform_xdk.c @@ -123,6 +123,12 @@ static void frontend_xdk_get_environment_settings(int *argc, char *argv[], g_defaults.dirs[DEFAULT_DIR_CORE], "overlays", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); +#ifdef HAVE_VIDEO_LAYOUT + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT], + g_defaults.dirs[DEFAULT_DIR_CORE], + "layouts", + sizeof(g_defaults.dirs[DEFAULT_DIR_VIDEO_LAYOUT])); +#endif fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], g_defaults.dirs[DEFAULT_DIR_CORE], "media", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS]));