From 7ba7bc3a1d22d70fe2ecd9380804df7b766d3643 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 26 Sep 2018 00:55:17 +0200 Subject: [PATCH] Add recording options at radius' request --- intl/msg_hash_ar.h | 16 ++++++ intl/msg_hash_chs.h | 16 ++++++ intl/msg_hash_cht.h | 16 ++++++ intl/msg_hash_de.h | 16 ++++++ intl/msg_hash_eo.h | 16 ++++++ intl/msg_hash_es.h | 16 ++++++ intl/msg_hash_fr.h | 16 ++++++ intl/msg_hash_it.h | 16 ++++++ intl/msg_hash_ja.h | 16 ++++++ intl/msg_hash_ko.h | 16 ++++++ intl/msg_hash_lbl.h | 8 +++ intl/msg_hash_nl.h | 20 ++++++- intl/msg_hash_pl.h | 16 ++++++ intl/msg_hash_pt_br.h | 16 ++++++ intl/msg_hash_pt_pt.h | 16 ++++++ intl/msg_hash_ru.h | 16 ++++++ intl/msg_hash_us.h | 16 ++++++ intl/msg_hash_vn.h | 16 ++++++ menu/menu_displaylist.c | 16 ++++++ menu/menu_setting.c | 115 ++++++++++++++++++++++++++++++++++++++++ msg_hash.h | 4 ++ 21 files changed, 417 insertions(+), 2 deletions(-) diff --git a/intl/msg_hash_ar.h b/intl/msg_hash_ar.h index 3637d73f59..a74f8553ab 100644 --- a/intl/msg_hash_ar.h +++ b/intl/msg_hash_ar.h @@ -3623,3 +3623,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, "Streaming toggle" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h index 4a896b5cd0..c87c2743a0 100644 --- a/intl/msg_hash_chs.h +++ b/intl/msg_hash_chs.h @@ -3407,3 +3407,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, "Streaming toggle" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_cht.h b/intl/msg_hash_cht.h index 24b4208ee0..38087ed8bd 100644 --- a/intl/msg_hash_cht.h +++ b/intl/msg_hash_cht.h @@ -3399,3 +3399,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, "Streaming toggle" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h index f09463e65e..88594fc318 100644 --- a/intl/msg_hash_de.h +++ b/intl/msg_hash_de.h @@ -3509,3 +3509,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, "Streaming toggle" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index 8195b68ea2..719d9d8d4c 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -3274,3 +3274,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, "Streaming toggle" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index c1ce876b20..85d429f23c 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -7529,3 +7529,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, "Streaming toggle" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index 3235d8b0c7..597f115585 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -3433,3 +3433,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, "Streaming toggle" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_it.h b/intl/msg_hash_it.h index 6e7acd9573..80b507fc3c 100644 --- a/intl/msg_hash_it.h +++ b/intl/msg_hash_it.h @@ -3493,3 +3493,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, "Streaming toggle" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index 2c8fef8385..4c4d8e2c7a 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -3896,3 +3896,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, "ストリーミングに切り替え" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_ko.h b/intl/msg_hash_ko.h index 6ff9ba24db..58df079663 100644 --- a/intl/msg_hash_ko.h +++ b/intl/msg_hash_ko.h @@ -3394,3 +3394,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, "Streaming toggle" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index e48254fbdd..a4a2c5a3e4 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -1679,3 +1679,11 @@ MSG_HASH(MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION_USE_CUSTOM_REFRESH_RATE, "crt_switch_resolution_use_custom_refresh_rate") MSG_HASH(MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION_OUTPUT_DISPLAY_ID, "crt_switch_resolution_output_display_id") +MSG_HASH(MENU_ENUM_LABEL_VIDEO_RECORD_QUALITY, + "video_record_quality") +MSG_HASH(MENU_ENUM_LABEL_VIDEO_STREAM_QUALITY, + "video_stream_quality") +MSG_HASH(MENU_ENUM_LABEL_STREAMING_URL, + "streaming_url") +MSG_HASH(MENU_ENUM_LABEL_UDP_STREAM_PORT, + "udp_stream_port") diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index 467fda8d66..235bd5be1e 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -3262,9 +3262,25 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QUICK_MENU_STOP_STREAMING, - "Stop Streaming" + "Stop Streamen" ) MSG_HASH( MENU_ENUM_SUBLABEL_QUICK_MENU_STOP_STREAMING, - "Stops streaming." + "Stop met streamen." + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Opname Kwaliteit" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Kwaliteit" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Poort" ) diff --git a/intl/msg_hash_pl.h b/intl/msg_hash_pl.h index 720546a4e6..71a903dd96 100644 --- a/intl/msg_hash_pl.h +++ b/intl/msg_hash_pl.h @@ -3696,3 +3696,19 @@ MSG_HASH( MENU_ENUM_SUBLABEL_QUICK_MENU_STOP_STREAMING, "Zatrzymuje przesyłanie transmisji." ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_pt_br.h b/intl/msg_hash_pt_br.h index 45a3dc9b37..ab18f6e349 100644 --- a/intl/msg_hash_pt_br.h +++ b/intl/msg_hash_pt_br.h @@ -7512,3 +7512,19 @@ MSG_HASH( MENU_ENUM_SUBLABEL_QUICK_MENU_STOP_STREAMING, "Stops streaming." ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_pt_pt.h b/intl/msg_hash_pt_pt.h index 33d9c76954..1a168d0a9e 100644 --- a/intl/msg_hash_pt_pt.h +++ b/intl/msg_hash_pt_pt.h @@ -3360,3 +3360,19 @@ MSG_HASH( MENU_ENUM_SUBLABEL_QUICK_MENU_STOP_STREAMING, "Stops streaming." ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index 72d03d008c..5972d53397 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -3563,3 +3563,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, "Streaming toggle" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 215d584580..2820412ee8 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -7550,3 +7550,19 @@ MSG_HASH( MSG_CHEEVOS_HARDCORE_MODE_DISABLED, "A savestate was loaded, Achievements Hardcore Mode disabled for the current session. Restart to enable hardcore mode." ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/intl/msg_hash_vn.h b/intl/msg_hash_vn.h index d04fb41909..99aa5ba5ac 100644 --- a/intl/msg_hash_vn.h +++ b/intl/msg_hash_vn.h @@ -3431,3 +3431,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, "Streaming toggle" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + "Record Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + "Stream Quality" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "Streaming URL" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + "UDP Stream Port" + ) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index f3c3d4b62b..cccd8c0fa7 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -7070,6 +7070,22 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) MENU_ENUM_LABEL_RECORD_USE_OUTPUT_DIRECTORY, PARSE_ONLY_BOOL, false) == 0) count++; + if (menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_UDP_STREAM_PORT, + PARSE_ONLY_UINT, false) == 0) + count++; + if (menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_VIDEO_RECORD_QUALITY, + PARSE_ONLY_UINT, false) == 0) + count++; + if (menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_VIDEO_STREAM_QUALITY, + PARSE_ONLY_UINT, false) == 0) + count++; + if (menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_STREAMING_URL, + PARSE_ONLY_STRING, false) == 0) + count++; if (menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_VIDEO_GPU_RECORD, PARSE_ONLY_BOOL, false) == 0) diff --git a/menu/menu_setting.c b/menu/menu_setting.c index d81b22c303..bf2c295864 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -175,6 +175,59 @@ static int setting_action_ok_uint(void *data, bool wraparound) return 0; } +static void setting_get_string_representation_video_stream_quality(void *data, + char *s, size_t len) +{ + rarch_setting_t *setting = (rarch_setting_t*)data; + if (!setting) + return; + + /* TODO/FIXME - localize this */ + switch (*setting->value.target.unsigned_integer) + { + case 5: + strlcpy(s, "Custom", len); + break; + case 6: + strlcpy(s, "Low", len); + break; + case 7: + strlcpy(s, "Medium", len); + break; + case 8: + strlcpy(s, "High", len); + break; + } +} + +static void setting_get_string_representation_video_record_quality(void *data, + char *s, size_t len) +{ + rarch_setting_t *setting = (rarch_setting_t*)data; + if (!setting) + return; + + /* TODO/FIXME - localize this */ + switch (*setting->value.target.unsigned_integer) + { + case 0: + strlcpy(s, "Custom", len); + break; + case 1: + strlcpy(s, "Low", len); + break; + case 2: + strlcpy(s, "Medium", len); + break; + case 3: + strlcpy(s, "High", len); + break; + case 4: + strlcpy(s, "Lossless", len); + break; + } +} + static void setting_get_string_representation_video_filter(void *data, char *s, size_t len) { @@ -6114,6 +6167,68 @@ static bool setting_append_list( general_read_handler); menu_settings_list_current_add_values(list, list_info, "cfg"); + CONFIG_UINT( + list, list_info, + &settings->uints.video_stream_port, + MENU_ENUM_LABEL_UDP_STREAM_PORT, + MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, + 1, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + (*list)[list_info->index - 1].offset_by = 1; + menu_settings_list_current_add_range(list, list_info, 1, 65536, 1, true, true); + + CONFIG_UINT( + list, list_info, + &settings->uints.video_record_quality, + MENU_ENUM_LABEL_VIDEO_RECORD_QUALITY, + MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, + 1, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + (*list)[list_info->index - 1].get_string_representation = + &setting_get_string_representation_video_record_quality; + menu_settings_list_current_add_range(list, list_info, 0, 4, 1, true, true); + + CONFIG_UINT( + list, list_info, + &settings->uints.video_stream_quality, + MENU_ENUM_LABEL_VIDEO_STREAM_QUALITY, + MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, + 1, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + (*list)[list_info->index - 1].get_string_representation = + &setting_get_string_representation_video_stream_quality; + (*list)[list_info->index - 1].offset_by = 5; + menu_settings_list_current_add_range(list, list_info, 5, 8, 1, true, true); + + CONFIG_STRING( + list, list_info, + settings->paths.path_stream_url, + sizeof(settings->paths.path_stream_url), + MENU_ENUM_LABEL_STREAMING_URL, + MENU_ENUM_LABEL_VALUE_STREAMING_URL, + "", + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + settings_data_list_current_add_flags(list, list_info, SD_FLAG_ALLOW_INPUT); + CONFIG_DIR( list, list_info, global->record.output_dir, diff --git a/msg_hash.h b/msg_hash.h index 30038dc55a..173ba10965 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -415,6 +415,10 @@ enum msg_hash_enums MSG_RUNAHEAD_FAILED_TO_SAVE_STATE, MSG_RUNAHEAD_FAILED_TO_LOAD_STATE, MSG_RUNAHEAD_FAILED_TO_CREATE_SECONDARY_INSTANCE, + MENU_LABEL(VIDEO_RECORD_QUALITY), + MENU_LABEL(VIDEO_STREAM_QUALITY), + MENU_LABEL(STREAMING_URL), + MENU_LABEL(UDP_STREAM_PORT), MENU_LABEL(ADD_TO_MIXER), MENU_LABEL(ADD_TO_MIXER_AND_PLAY), MENU_LABEL(ADD_TO_MIXER_AND_COLLECTION),