diff --git a/intl/msg_hash_ar.h b/intl/msg_hash_ar.h index ed73f788e3..5cba2d2c11 100644 --- a/intl/msg_hash_ar.h +++ b/intl/msg_hash_ar.h @@ -3213,6 +3213,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Add to mixer") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filter by current core") MSG_HASH( diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h index 45415ed131..8031484130 100644 --- a/intl/msg_hash_chs.h +++ b/intl/msg_hash_chs.h @@ -3035,6 +3035,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Add to mixer") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filter by current core") MSG_HASH( diff --git a/intl/msg_hash_cht.h b/intl/msg_hash_cht.h index 4067105ba8..0bc577d065 100644 --- a/intl/msg_hash_cht.h +++ b/intl/msg_hash_cht.h @@ -3027,6 +3027,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Add to mixer") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filter by current core") MSG_HASH( diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h index aac652585d..89e39056ff 100644 --- a/intl/msg_hash_de.h +++ b/intl/msg_hash_de.h @@ -3117,6 +3117,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "zum Mixer hinzufügen") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Nach aktuellem Core filtern") MSG_HASH( diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index b8dec1b330..30a56b9fef 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -2900,6 +2900,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Add to mixer") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filter by current core") MSG_HASH( diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index d18d36c6c3..3763e1d3bd 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -5397,6 +5397,8 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Agregar al mezclador y colección" ) +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH( MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filtrar por núcleo actual" diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index ea5b36622b..452759c578 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -3065,6 +3065,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Ajouter au mixeur") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filter by current core") MSG_HASH( diff --git a/intl/msg_hash_it.h b/intl/msg_hash_it.h index 436a760a76..80142cb248 100644 --- a/intl/msg_hash_it.h +++ b/intl/msg_hash_it.h @@ -3117,6 +3117,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Aggiungi al mixer") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filtra per core corrente") MSG_HASH( diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index 0086b41c83..2928ce7d0e 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -3125,6 +3125,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "ミキサーに追加") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "現在のコアで絞り込み") MSG_HASH( diff --git a/intl/msg_hash_ko.h b/intl/msg_hash_ko.h index db02482405..7202484933 100644 --- a/intl/msg_hash_ko.h +++ b/intl/msg_hash_ko.h @@ -3026,6 +3026,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Add to mixer") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filter by current core") MSG_HASH( diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 59bc37c7b3..2c043d3ea1 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -1377,6 +1377,8 @@ MSG_HASH(MENU_ENUM_LABEL_ADD_TO_MIXER_AND_PLAY, "audio_add_to_mixer_and_play") MSG_HASH(MENU_ENUM_LABEL_ADD_TO_MIXER_AND_COLLECTION, "audio_add_to_mixer_and_collection") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "audio_add_to_mixer_and_collection_and_play") MSG_HASH(MENU_ENUM_LABEL_FILTER_BY_CURRENT_CORE, "filter_by_current_Core") MSG_HASH(MENU_ENUM_LABEL_AUDIO_MIXER_VOLUME, diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index 7c3a46e483..819d93bd2a 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -2902,6 +2902,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Aan audio mixer toevoegen en afspelen") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Aan audio mixer toevoegen") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filter by current core") MSG_HASH( diff --git a/intl/msg_hash_pl.h b/intl/msg_hash_pl.h index 792fbc5e3f..c6f08493ad 100644 --- a/intl/msg_hash_pl.h +++ b/intl/msg_hash_pl.h @@ -3223,6 +3223,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Dodaj do miksera") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filtruj według bieżącego rdzenia") MSG_HASH( diff --git a/intl/msg_hash_pt_br.h b/intl/msg_hash_pt_br.h index c2bf91bb16..28d378aebe 100644 --- a/intl/msg_hash_pt_br.h +++ b/intl/msg_hash_pt_br.h @@ -3266,6 +3266,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Adicionar ao mixer") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filtrar por núcleo atual") MSG_HASH( diff --git a/intl/msg_hash_pt_pt.h b/intl/msg_hash_pt_pt.h index eb4eb9e974..86d538e0ae 100644 --- a/intl/msg_hash_pt_pt.h +++ b/intl/msg_hash_pt_pt.h @@ -3000,6 +3000,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Adicionar ao misturador e à coleção") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filtrar pelo núcleo atual") MSG_HASH( diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index 013e1517e6..d78270f759 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -3078,6 +3078,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Добавить в микшер") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Фильтрировать по текущему ядру") MSG_HASH( diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 07612497e1..c4a961efbe 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -3266,6 +3266,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Add to mixer") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filter by current core") MSG_HASH( diff --git a/intl/msg_hash_vn.h b/intl/msg_hash_vn.h index 29ce93725d..dac738d2ce 100644 --- a/intl/msg_hash_vn.h +++ b/intl/msg_hash_vn.h @@ -3063,6 +3063,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY, "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION, "Add to mixer") +MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + "Add to mixer and play") MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filter by current core") MSG_HASH( diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index c232025db6..1ed4abc678 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -1895,6 +1895,34 @@ static int action_ok_audio_add_to_mixer_and_collection(const char *path, combined_path[0] = '\0'; + if (!menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu)) + return menu_cbs_exit(); + + fill_pathname_join(combined_path, menu->scratch2_buf, + menu->scratch_buf, sizeof(combined_path)); + + command_playlist_push_write( + g_defaults.music_history, + combined_path, + NULL, + "builtin", + "musicplayer"); + + if (filestream_exists(combined_path)) + task_push_audio_mixer_load(combined_path, + NULL, NULL); + + return 0; +} + +static int action_ok_audio_add_to_mixer_and_collection_and_play(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + char combined_path[PATH_MAX_LENGTH]; + menu_handle_t *menu = NULL; + + combined_path[0] = '\0'; + if (!menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu)) return menu_cbs_exit(); @@ -4159,6 +4187,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_ADD_TO_MIXER_AND_COLLECTION: BIND_ACTION_OK(cbs, action_ok_audio_add_to_mixer_and_collection); break; + case MENU_ENUM_LABEL_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY: + BIND_ACTION_OK(cbs, action_ok_audio_add_to_mixer_and_collection_and_play); + break; case MENU_ENUM_LABEL_ADD_TO_MIXER: BIND_ACTION_OK(cbs, action_ok_audio_add_to_mixer); break; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 6b9c1ce9c7..940584e620 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4244,12 +4244,20 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); if (audio_driver_mixer_extension_supported(ext)) + { menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION), msg_hash_to_str(MENU_ENUM_LABEL_ADD_TO_MIXER_AND_COLLECTION), MENU_ENUM_LABEL_ADD_TO_MIXER_AND_COLLECTION, FILE_TYPE_PLAYLIST_ENTRY, 0, 0); + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY), + msg_hash_to_str(MENU_ENUM_LABEL_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY), + MENU_ENUM_LABEL_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY, + FILE_TYPE_PLAYLIST_ENTRY, 0, 0); + } + #ifdef HAVE_FFMPEG if (settings->bools.multimedia_builtin_mediaplayer_enable) menu_entries_append_enum(info->list, diff --git a/msg_hash.h b/msg_hash.h index a9d5adec5c..5abe4c2aa9 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -414,6 +414,7 @@ enum msg_hash_enums MENU_LABEL(ADD_TO_MIXER), MENU_LABEL(ADD_TO_MIXER_AND_PLAY), MENU_LABEL(ADD_TO_MIXER_AND_COLLECTION), + MENU_LABEL(ADD_TO_MIXER_AND_COLLECTION_AND_PLAY), MENU_ENUM_LABEL_MENU_TOGGLE, MENU_LABEL(FILTER_BY_CURRENT_CORE),