Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

menus move functions with parameters to their own type

left the union with function(void) and function_w_param(param)
as a few areas might still need to use both (onplay.c)

there might be a few I missed yet..

Change-Id: I593a6875301923e19ba04ad1b0f3173dc9ebdf1f

+173 -138
+2 -2
apps/enc_config.c
··· 193 193 } /* mp3_enc_bitrate */ 194 194 195 195 /* mp3_enc configuration menu */ 196 - MENUITEM_FUNCTION(mp3_bitrate, MENU_FUNC_USEPARAM, ID2P(LANG_BITRATE), 196 + MENUITEM_FUNCTION_W_PARAM(mp3_bitrate, 0, ID2P(LANG_BITRATE), 197 197 mp3_enc_bitrate, 198 198 &menu_callback_data, enc_menuitem_callback, Icon_NOICON); 199 199 MAKE_MENU( mp3_enc_menu, ID2P(LANG_ENCODER_SETTINGS), ··· 286 286 { 287 287 (void)this_list; 288 288 struct menucallback_data *data = 289 - (struct menucallback_data*)this_item->function->param; 289 + (struct menucallback_data*)this_item->function_param->param; 290 290 291 291 if (action == ACTION_EXIT_MENUITEM) 292 292 {
+8 -3
apps/menu.c
··· 644 644 init_menu_lists(menu, &lists, 0, true, vps); 645 645 } 646 646 break; 647 + case MT_FUNCTION_CALL_W_PARAM: 647 648 case MT_FUNCTION_CALL: 648 649 { 649 650 int return_value; 650 - if (temp->flags&MENU_FUNC_USEPARAM) 651 - return_value = temp->function->function_w_param( 652 - temp->function->param); 651 + if (type == MT_FUNCTION_CALL_W_PARAM) 652 + { 653 + return_value = temp->function_param->function_w_param( 654 + temp->function_param->param); 655 + } 653 656 else 657 + { 654 658 return_value = temp->function->function(); 659 + } 655 660 if (!(menu->flags&MENU_EXITAFTERTHISMENU) || 656 661 (temp->flags&MENU_EXITAFTERTHISMENU)) 657 662 {
+41 -11
apps/menu.h
··· 37 37 text for the setting title, 38 38 ID2P() or "literal" for the str param */ 39 39 MT_FUNCTION_CALL, /* call a function from the menus */ 40 + MT_FUNCTION_CALL_W_PARAM, /* call a function from the menus */ 40 41 MT_RETURN_ID, /* returns the position of the selected item (starting at 0)*/ 41 42 MT_RETURN_VALUE, /* returns a value associated with an item */ 42 43 }; 43 44 #define MENU_TYPE_MASK 0xF /* MT_* type */ 44 45 45 - struct menu_func { 46 + struct menu_func_param { 46 47 union { 47 48 int (*function_w_param)(void* param); /* intptr_t instead of void* 48 49 for 64bit systems */ 49 50 int (*function)(void); 50 51 }; 51 52 void *param; /* passed to function_w_param */ 53 + }; 54 + 55 + struct menu_func { 56 + int (*function)(void); 52 57 }; 53 58 54 59 /* these next two are mutually exclusive */ ··· 75 80 void *variable; /* used with MT_SETTING, 76 81 must be in the settings_list.c list */ 77 82 const struct menu_func *function; /* MT_FUNCTION_* */ 83 + const struct menu_func_param *function_param; /* MT_FUNCTION_*_W_PARAM */ 78 84 const char **strings; /* used with MT_RETURN_ID */ 79 85 int value; /* MT_RETURN_VALUE */ 80 86 }; ··· 185 191 { MT_RETURN_VALUE|MENU_DYNAMIC_DESC, { .value = val}, \ 186 192 {.menu_get_name_and_icon = & name##_}}; 187 193 188 - /* Use this to put a function call into the menu. 194 + /* Use this to put a function call expecting no arguments into the menu. 189 195 When the user selects this item the function will be run, 190 196 if MENU_FUNC_CHECK_RETVAL is set, the return value 191 - will be checked, returning 1 will exit do_menu(); 192 - if MENU_FUNC_USEPARAM is set, param will be passed to the function */ 193 - #define MENUITEM_FUNCTION(name, flags, str, func, param, \ 197 + will be checked, returning 1 will exit do_menu(); */ 198 + #define MENUITEM_FUNCTION(name, flags, str, func, reserved, \ 194 199 callback, icon) \ 195 200 static const struct menu_callback_with_desc name##_ = {callback,str,icon}; \ 196 - static const struct menu_func name##__ = {{(void*)func}, param}; \ 201 + static const struct menu_func name##__ = {(void*)func}; \ 197 202 /* should be const, but recording_settings wont let us do that */ \ 198 203 const struct menu_item_ex name = \ 199 204 { MT_FUNCTION_CALL|MENU_HAS_DESC|flags, \ 200 205 { .function = & name##__}, {.callback_and_desc = & name##_}}; 201 - 206 + 202 207 /* As above, except the text is dynamic */ 203 - #define MENUITEM_FUNCTION_DYNTEXT(name, flags, func, param, \ 208 + #define MENUITEM_FUNCTION_DYNTEXT(name, flags, func, reserved, \ 204 209 text_callback, voice_callback, \ 205 210 text_cb_data, callback, icon) \ 206 211 static const struct menu_get_name_and_icon name##_ \ 207 212 = {callback,text_callback,voice_callback,text_cb_data,icon}; \ 208 - static const struct menu_func name##__ = {{(void*)func}, param}; \ 209 - const struct menu_item_ex name = \ 210 - { MT_FUNCTION_CALL|MENU_DYNAMIC_DESC|flags, \ 213 + static const struct menu_func name##__ = {(void*)func}; \ 214 + const struct menu_item_ex name = \ 215 + { MT_FUNCTION_CALL|MENU_DYNAMIC_DESC|flags, \ 211 216 { .function = & name##__}, {.menu_get_name_and_icon = & name##_}}; 217 + 218 + /* Use this to put a function call into the menu. 219 + When the user selects this item the function will be run, 220 + if MENU_FUNC_CHECK_RETVAL is set, the return value 221 + will be checked, returning 1 will exit do_menu(); 222 + param will be passed to the function */ 223 + #define MENUITEM_FUNCTION_W_PARAM(name, flags, str, func, param, \ 224 + callback, icon) \ 225 + static const struct menu_callback_with_desc name##_ = {callback,str,icon}; \ 226 + static const struct menu_func_param name##__ = {{(void*)func}, param}; \ 227 + /* should be const, but recording_settings wont let us do that */ \ 228 + const struct menu_item_ex name = \ 229 + { MT_FUNCTION_CALL_W_PARAM|MENU_HAS_DESC|MENU_FUNC_USEPARAM|flags, \ 230 + { .function_param = & name##__}, {.callback_and_desc = & name##_}}; 231 + 232 + /* As above, except the text is dynamic */ 233 + #define MENUITEM_FUNCTION_DYNTEXT_W_PARAM(name, flags, func, param, \ 234 + text_callback, voice_callback, \ 235 + text_cb_data, callback, icon) \ 236 + static const struct menu_get_name_and_icon name##_ \ 237 + = {callback,text_callback,voice_callback,text_cb_data,icon}; \ 238 + static const struct menu_func_param name##__ = {{(void*)func}, param}; \ 239 + const struct menu_item_ex name = \ 240 + { MT_FUNCTION_CALL_W_PARAM|MENU_DYNAMIC_DESC|flags, \ 241 + { .function_param = & name##__}, {.menu_get_name_and_icon = & name##_}}; 212 242 213 243 /* Use this to actually create a menu. the ... argument is a list of pointers 214 244 to any of the above macro'd variables.
+78 -78
apps/menus/audiohw_eq_menu.c
··· 80 80 return 0; 81 81 } 82 82 83 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band1_gain, MENU_FUNC_USEPARAM, 84 - hw_eq_do_band_setting, 85 - HW_EQ_IDX(AUDIOHW_EQ_BAND1, AUDIOHW_EQ_GAIN), 86 - hw_eq_get_name, hw_eq_speak_item, 87 - HW_EQ_IDX(AUDIOHW_EQ_BAND1, AUDIOHW_EQ_GAIN), 88 - NULL, Icon_Menu_setting); 83 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band1_gain, 0, 84 + hw_eq_do_band_setting, 85 + HW_EQ_IDX(AUDIOHW_EQ_BAND1, AUDIOHW_EQ_GAIN), 86 + hw_eq_get_name, hw_eq_speak_item, 87 + HW_EQ_IDX(AUDIOHW_EQ_BAND1, AUDIOHW_EQ_GAIN), 88 + NULL, Icon_Menu_setting); 89 89 #ifdef AUDIOHW_HAVE_EQ_BAND1_FREQUENCY 90 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band1_frequency, MENU_FUNC_USEPARAM, 91 - hw_eq_do_band_setting, 92 - HW_EQ_IDX(AUDIOHW_EQ_BAND1, AUDIOHW_EQ_FREQUENCY), 93 - hw_eq_get_name, hw_eq_speak_item, 94 - HW_EQ_IDX(AUDIOHW_EQ_BAND1, AUDIOHW_EQ_FREQUENCY), 95 - NULL, Icon_NOICON); 90 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band1_frequency, 0, 91 + hw_eq_do_band_setting, 92 + HW_EQ_IDX(AUDIOHW_EQ_BAND1, AUDIOHW_EQ_FREQUENCY), 93 + hw_eq_get_name, hw_eq_speak_item, 94 + HW_EQ_IDX(AUDIOHW_EQ_BAND1, AUDIOHW_EQ_FREQUENCY), 95 + NULL, Icon_NOICON); 96 96 #endif 97 97 #ifdef AUDIOHW_HAVE_EQ_BAND2 98 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band2_gain, MENU_FUNC_USEPARAM, 99 - hw_eq_do_band_setting, 100 - HW_EQ_IDX(AUDIOHW_EQ_BAND2, AUDIOHW_EQ_GAIN), 101 - hw_eq_get_name, hw_eq_speak_item, 102 - HW_EQ_IDX(AUDIOHW_EQ_BAND2, AUDIOHW_EQ_GAIN), 103 - NULL, Icon_Menu_setting); 98 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band2_gain, 0, 99 + hw_eq_do_band_setting, 100 + HW_EQ_IDX(AUDIOHW_EQ_BAND2, AUDIOHW_EQ_GAIN), 101 + hw_eq_get_name, hw_eq_speak_item, 102 + HW_EQ_IDX(AUDIOHW_EQ_BAND2, AUDIOHW_EQ_GAIN), 103 + NULL, Icon_Menu_setting); 104 104 #ifdef AUDIOHW_HAVE_EQ_BAND2_FREQUENCY 105 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band2_frequency, MENU_FUNC_USEPARAM, 106 - hw_eq_do_band_setting, 107 - HW_EQ_IDX(AUDIOHW_EQ_BAND2, AUDIOHW_EQ_FREQUENCY), 108 - hw_eq_get_name, hw_eq_speak_item, 109 - HW_EQ_IDX(AUDIOHW_EQ_BAND2, AUDIOHW_EQ_FREQUENCY), 110 - NULL, Icon_NOICON); 105 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band2_frequency, 0, 106 + hw_eq_do_band_setting, 107 + HW_EQ_IDX(AUDIOHW_EQ_BAND2, AUDIOHW_EQ_FREQUENCY), 108 + hw_eq_get_name, hw_eq_speak_item, 109 + HW_EQ_IDX(AUDIOHW_EQ_BAND2, AUDIOHW_EQ_FREQUENCY), 110 + NULL, Icon_NOICON); 111 111 #endif 112 112 #ifdef AUDIOHW_HAVE_EQ_BAND2_WIDTH 113 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band2_width, MENU_FUNC_USEPARAM, 114 - hw_eq_do_band_setting, 115 - HW_EQ_IDX(AUDIOHW_EQ_BAND2, AUDIOHW_EQ_WIDTH), 116 - hw_eq_get_name, hw_eq_speak_item, 117 - HW_EQ_IDX(AUDIOHW_EQ_BAND2, AUDIOHW_EQ_WIDTH), 118 - NULL, Icon_NOICON); 113 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band2_width, 0, 114 + hw_eq_do_band_setting, 115 + HW_EQ_IDX(AUDIOHW_EQ_BAND2, AUDIOHW_EQ_WIDTH), 116 + hw_eq_get_name, hw_eq_speak_item, 117 + HW_EQ_IDX(AUDIOHW_EQ_BAND2, AUDIOHW_EQ_WIDTH), 118 + NULL, Icon_NOICON); 119 119 #endif 120 120 #endif /* AUDIOHW_HAVE_EQ_BAND2 */ 121 121 #ifdef AUDIOHW_HAVE_EQ_BAND3 122 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band3_gain, MENU_FUNC_USEPARAM, 123 - hw_eq_do_band_setting, 124 - HW_EQ_IDX(AUDIOHW_EQ_BAND3, AUDIOHW_EQ_GAIN), 125 - hw_eq_get_name, hw_eq_speak_item, 126 - HW_EQ_IDX(AUDIOHW_EQ_BAND3, AUDIOHW_EQ_GAIN), 127 - NULL, Icon_Menu_setting); 122 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band3_gain, 0, 123 + hw_eq_do_band_setting, 124 + HW_EQ_IDX(AUDIOHW_EQ_BAND3, AUDIOHW_EQ_GAIN), 125 + hw_eq_get_name, hw_eq_speak_item, 126 + HW_EQ_IDX(AUDIOHW_EQ_BAND3, AUDIOHW_EQ_GAIN), 127 + NULL, Icon_Menu_setting); 128 128 #ifdef AUDIOHW_HAVE_EQ_BAND3_FREQUENCY 129 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band3_frequency, MENU_FUNC_USEPARAM, 130 - hw_eq_do_band_setting, 131 - HW_EQ_IDX(AUDIOHW_EQ_BAND3, AUDIOHW_EQ_FREQUENCY), 132 - hw_eq_get_name, hw_eq_speak_item, 133 - HW_EQ_IDX(AUDIOHW_EQ_BAND3, AUDIOHW_EQ_FREQUENCY), 134 - NULL, Icon_NOICON); 129 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band3_frequency, 0, 130 + hw_eq_do_band_setting, 131 + HW_EQ_IDX(AUDIOHW_EQ_BAND3, AUDIOHW_EQ_FREQUENCY), 132 + hw_eq_get_name, hw_eq_speak_item, 133 + HW_EQ_IDX(AUDIOHW_EQ_BAND3, AUDIOHW_EQ_FREQUENCY), 134 + NULL, Icon_NOICON); 135 135 #endif 136 136 #ifdef AUDIOHW_HAVE_EQ_BAND3_WIDTH 137 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band3_width, MENU_FUNC_USEPARAM, 138 - hw_eq_do_band_setting, 139 - HW_EQ_IDX(AUDIOHW_EQ_BAND3, AUDIOHW_EQ_WIDTH), 140 - hw_eq_get_name, hw_eq_speak_item, 141 - HW_EQ_IDX(AUDIOHW_EQ_BAND3, AUDIOHW_EQ_WIDTH), 142 - NULL, Icon_NOICON); 137 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band3_width, 0, 138 + hw_eq_do_band_setting, 139 + HW_EQ_IDX(AUDIOHW_EQ_BAND3, AUDIOHW_EQ_WIDTH), 140 + hw_eq_get_name, hw_eq_speak_item, 141 + HW_EQ_IDX(AUDIOHW_EQ_BAND3, AUDIOHW_EQ_WIDTH), 142 + NULL, Icon_NOICON); 143 143 #endif 144 144 #endif /* AUDIOHW_HAVE_EQ_BAND3 */ 145 145 #ifdef AUDIOHW_HAVE_EQ_BAND4 146 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band4_gain, MENU_FUNC_USEPARAM, 147 - hw_eq_do_band_setting, 148 - HW_EQ_IDX(AUDIOHW_EQ_BAND4, AUDIOHW_EQ_GAIN), 149 - hw_eq_get_name, hw_eq_speak_item, 150 - HW_EQ_IDX(AUDIOHW_EQ_BAND4, AUDIOHW_EQ_GAIN), 151 - NULL, Icon_Menu_setting); 146 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band4_gain, 0, 147 + hw_eq_do_band_setting, 148 + HW_EQ_IDX(AUDIOHW_EQ_BAND4, AUDIOHW_EQ_GAIN), 149 + hw_eq_get_name, hw_eq_speak_item, 150 + HW_EQ_IDX(AUDIOHW_EQ_BAND4, AUDIOHW_EQ_GAIN), 151 + NULL, Icon_Menu_setting); 152 152 #ifdef AUDIOHW_HAVE_EQ_BAND4_FREQUENCY 153 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band4_frequency, MENU_FUNC_USEPARAM, 154 - hw_eq_do_band_setting, 155 - HW_EQ_IDX(AUDIOHW_EQ_BAND4, AUDIOHW_EQ_FREQUENCY), 156 - hw_eq_get_name, hw_eq_speak_item, 157 - HW_EQ_IDX(AUDIOHW_EQ_BAND4, AUDIOHW_EQ_FREQUENCY), 158 - NULL, Icon_NOICON); 153 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band4_frequency, 0, 154 + hw_eq_do_band_setting, 155 + HW_EQ_IDX(AUDIOHW_EQ_BAND4, AUDIOHW_EQ_FREQUENCY), 156 + hw_eq_get_name, hw_eq_speak_item, 157 + HW_EQ_IDX(AUDIOHW_EQ_BAND4, AUDIOHW_EQ_FREQUENCY), 158 + NULL, Icon_NOICON); 159 159 #endif 160 160 #ifdef AUDIOHW_HAVE_EQ_BAND4_WIDTH 161 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band4_width, MENU_FUNC_USEPARAM, 162 - hw_eq_do_band_setting, 163 - HW_EQ_IDX(AUDIOHW_EQ_BAND4, AUDIOHW_EQ_WIDTH), 164 - hw_eq_get_name, hw_eq_speak_item, 165 - HW_EQ_IDX(AUDIOHW_EQ_BAND4, AUDIOHW_EQ_WIDTH), 166 - NULL, Icon_NOICON); 161 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band4_width, 0, 162 + hw_eq_do_band_setting, 163 + HW_EQ_IDX(AUDIOHW_EQ_BAND4, AUDIOHW_EQ_WIDTH), 164 + hw_eq_get_name, hw_eq_speak_item, 165 + HW_EQ_IDX(AUDIOHW_EQ_BAND4, AUDIOHW_EQ_WIDTH), 166 + NULL, Icon_NOICON); 167 167 #endif 168 168 #endif /* AUDIOHW_HAVE_EQ_BAND4 */ 169 169 #ifdef AUDIOHW_HAVE_EQ_BAND5 170 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band5_gain, MENU_FUNC_USEPARAM, 171 - hw_eq_do_band_setting, 172 - HW_EQ_IDX(AUDIOHW_EQ_BAND5, AUDIOHW_EQ_GAIN), 173 - hw_eq_get_name, hw_eq_speak_item, 174 - HW_EQ_IDX(AUDIOHW_EQ_BAND5, AUDIOHW_EQ_GAIN), 175 - NULL, Icon_Menu_setting); 170 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band5_gain, 0, 171 + hw_eq_do_band_setting, 172 + HW_EQ_IDX(AUDIOHW_EQ_BAND5, AUDIOHW_EQ_GAIN), 173 + hw_eq_get_name, hw_eq_speak_item, 174 + HW_EQ_IDX(AUDIOHW_EQ_BAND5, AUDIOHW_EQ_GAIN), 175 + NULL, Icon_Menu_setting); 176 176 #ifdef AUDIOHW_HAVE_EQ_BAND5_FREQUENCY 177 - MENUITEM_FUNCTION_DYNTEXT(hw_eq_band5_frequency, MENU_FUNC_USEPARAM, 178 - hw_eq_do_band_setting, 179 - HW_EQ_IDX(AUDIOHW_EQ_BAND5, AUDIOHW_EQ_FREQUENCY), 180 - hw_eq_get_name, hw_eq_speak_item, 181 - HW_EQ_IDX(AUDIOHW_EQ_BAND5, AUDIOHW_EQ_FREQUENCY), 182 - NULL, Icon_NOICON); 177 + MENUITEM_FUNCTION_DYNTEXT_W_PARAM(hw_eq_band5_frequency, 0, 178 + hw_eq_do_band_setting, 179 + HW_EQ_IDX(AUDIOHW_EQ_BAND5, AUDIOHW_EQ_FREQUENCY), 180 + hw_eq_get_name, hw_eq_speak_item, 181 + HW_EQ_IDX(AUDIOHW_EQ_BAND5, AUDIOHW_EQ_FREQUENCY), 182 + NULL, Icon_NOICON); 183 183 #endif 184 184 #endif /* AUDIOHW_HAVE_EQ_BAND5 */ 185 185
+1 -1
apps/menus/eq_menu.c
··· 787 787 Icon_EQ); 788 788 MENUITEM_FUNCTION(eq_save, 0, ID2P(LANG_EQUALIZER_SAVE), 789 789 eq_save_preset, NULL, NULL, Icon_NOICON); 790 - MENUITEM_FUNCTION(eq_browse, MENU_FUNC_USEPARAM, ID2P(LANG_EQUALIZER_BROWSE), 790 + MENUITEM_FUNCTION_W_PARAM(eq_browse, 0, ID2P(LANG_EQUALIZER_BROWSE), 791 791 browse_folder, (void*)&eqs, lowlatency_callback, 792 792 Icon_NOICON); 793 793
+4 -4
apps/menus/main_menu.c
··· 90 90 return settings_save_config((intptr_t)param); 91 91 } 92 92 93 - MENUITEM_FUNCTION(browse_configs, MENU_FUNC_USEPARAM, ID2P(LANG_CUSTOM_CFG), 93 + MENUITEM_FUNCTION_W_PARAM(browse_configs, 0, ID2P(LANG_CUSTOM_CFG), 94 94 browse_folder, (void*)&config, NULL, Icon_NOICON); 95 - MENUITEM_FUNCTION(save_settings_item, MENU_FUNC_USEPARAM, ID2P(LANG_SAVE_SETTINGS), 95 + MENUITEM_FUNCTION_W_PARAM(save_settings_item, 0, ID2P(LANG_SAVE_SETTINGS), 96 96 write_settings_file, (void*)SETTINGS_SAVE_ALL, NULL, Icon_NOICON); 97 - MENUITEM_FUNCTION(save_theme_item, MENU_FUNC_USEPARAM, ID2P(LANG_SAVE_THEME), 97 + MENUITEM_FUNCTION_W_PARAM(save_theme_item, 0, ID2P(LANG_SAVE_THEME), 98 98 write_settings_file, (void*)SETTINGS_SAVE_THEME, NULL, Icon_NOICON); 99 - MENUITEM_FUNCTION(save_sound_item, MENU_FUNC_USEPARAM, ID2P(LANG_SAVE_SOUND), 99 + MENUITEM_FUNCTION_W_PARAM(save_sound_item, 0, ID2P(LANG_SAVE_SOUND), 100 100 write_settings_file, (void*)SETTINGS_SAVE_SOUND, NULL, Icon_NOICON); 101 101 MENUITEM_FUNCTION(reset_settings_item, 0, ID2P(LANG_RESET), 102 102 reset_settings, NULL, NULL, Icon_NOICON);
+1 -1
apps/menus/playlist_menu.c
··· 147 147 MENUITEM_FUNCTION(view_cur_playlist, 0, 148 148 ID2P(LANG_VIEW_DYNAMIC_PLAYLIST), 149 149 playlist_view_, NULL, NULL, Icon_NOICON); 150 - MENUITEM_FUNCTION(save_playlist, MENU_FUNC_USEPARAM, ID2P(LANG_SAVE_DYNAMIC_PLAYLIST), 150 + MENUITEM_FUNCTION_W_PARAM(save_playlist, 0, ID2P(LANG_SAVE_DYNAMIC_PLAYLIST), 151 151 save_playlist_screen, NULL, NULL, Icon_NOICON); 152 152 MENUITEM_SETTING(recursive_dir_insert, &global_settings.recursive_dir_insert, NULL); 153 153 static int clear_catalog_directory(void)
+1 -1
apps/menus/radio_menu.c
··· 126 126 NULL, NULL, Icon_NOICON); 127 127 #endif 128 128 129 - MENUITEM_FUNCTION(scan_presets_item, MENU_FUNC_USEPARAM, 129 + MENUITEM_FUNCTION_W_PARAM(scan_presets_item, 0, 130 130 ID2P(LANG_FM_SCAN_PRESETS), 131 131 presets_scan, NULL, NULL, Icon_NOICON); 132 132
+2 -2
apps/menus/recording_menu.c
··· 575 575 rectrigger, NULL, NULL, Icon_Menu_setting); 576 576 577 577 static struct browse_folder_info rec_config_browse = {RECPRESETS_DIR, SHOW_CFG}; 578 - MENUITEM_FUNCTION(browse_recconfigs, MENU_FUNC_USEPARAM, ID2P(LANG_CUSTOM_CFG), 578 + MENUITEM_FUNCTION_W_PARAM(browse_recconfigs, 0, ID2P(LANG_CUSTOM_CFG), 579 579 browse_folder, (void*)&rec_config_browse, NULL, Icon_Config); 580 580 static int write_settings_file(void) 581 581 { ··· 614 614 return retval; 615 615 }; 616 616 617 - MENUITEM_FUNCTION(recording_settings, MENU_FUNC_USEPARAM, ID2P(LANG_RECORDING_SETTINGS), 617 + MENUITEM_FUNCTION_W_PARAM(recording_settings, 0, ID2P(LANG_RECORDING_SETTINGS), 618 618 recording_menu, 0, NULL, Icon_Recording);
+1 -1
apps/menus/settings_menu.c
··· 784 784 785 785 static struct browse_folder_info langs = { LANG_DIR, SHOW_LNG }; 786 786 787 - MENUITEM_FUNCTION(browse_langs, MENU_FUNC_USEPARAM, ID2P(LANG_LANGUAGE), 787 + MENUITEM_FUNCTION_W_PARAM(browse_langs, 0, ID2P(LANG_LANGUAGE), 788 788 browse_folder, (void*)&langs, NULL, Icon_Language); 789 789 790 790 MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0,
+14 -14
apps/menus/theme_menu.c
··· 129 129 settings_apply_skins(); 130 130 return 0; 131 131 } 132 - MENUITEM_FUNCTION(set_bg_col, MENU_FUNC_USEPARAM, ID2P(LANG_BACKGROUND_COLOR), 132 + MENUITEM_FUNCTION_W_PARAM(set_bg_col, 0, ID2P(LANG_BACKGROUND_COLOR), 133 133 set_color_func, (void*)COLOR_BG, NULL, Icon_NOICON); 134 - MENUITEM_FUNCTION(set_fg_col, MENU_FUNC_USEPARAM, ID2P(LANG_FOREGROUND_COLOR), 134 + MENUITEM_FUNCTION_W_PARAM(set_fg_col, 0, ID2P(LANG_FOREGROUND_COLOR), 135 135 set_color_func, (void*)COLOR_FG, NULL, Icon_NOICON); 136 - MENUITEM_FUNCTION(set_lss_col, MENU_FUNC_USEPARAM, ID2P(LANG_SELECTOR_START_COLOR), 136 + MENUITEM_FUNCTION_W_PARAM(set_lss_col, 0, ID2P(LANG_SELECTOR_START_COLOR), 137 137 set_color_func, (void*)COLOR_LSS, NULL, Icon_NOICON); 138 - MENUITEM_FUNCTION(set_lse_col, MENU_FUNC_USEPARAM, ID2P(LANG_SELECTOR_END_COLOR), 138 + MENUITEM_FUNCTION_W_PARAM(set_lse_col, 0, ID2P(LANG_SELECTOR_END_COLOR), 139 139 set_color_func, (void*)COLOR_LSE, NULL, Icon_NOICON); 140 - MENUITEM_FUNCTION(set_lst_col, MENU_FUNC_USEPARAM, ID2P(LANG_SELECTOR_TEXT_COLOR), 140 + MENUITEM_FUNCTION_W_PARAM(set_lst_col, 0, ID2P(LANG_SELECTOR_TEXT_COLOR), 141 141 set_color_func, (void*)COLOR_LST, NULL, Icon_NOICON); 142 - MENUITEM_FUNCTION(set_sep_col, MENU_FUNC_USEPARAM, ID2P(LANG_LIST_SEPARATOR_COLOR), 142 + MENUITEM_FUNCTION_W_PARAM(set_sep_col, 0, ID2P(LANG_LIST_SEPARATOR_COLOR), 143 143 set_color_func, (void*)COLOR_SEP, NULL, Icon_NOICON); 144 144 MENUITEM_FUNCTION(reset_colors, 0, ID2P(LANG_RESET_COLORS), 145 145 reset_color, NULL, NULL, Icon_NOICON); ··· 323 323 return rockbox_browse(&browse); 324 324 } 325 325 326 - MENUITEM_FUNCTION(browse_fonts, MENU_FUNC_USEPARAM, 326 + MENUITEM_FUNCTION_W_PARAM(browse_fonts, 0, 327 327 ID2P(LANG_CUSTOM_FONT), 328 328 browse_folder, (void*)&fonts, NULL, Icon_Font); 329 329 330 - MENUITEM_FUNCTION(browse_sbs, MENU_FUNC_USEPARAM, 330 + MENUITEM_FUNCTION_W_PARAM(browse_sbs, 0, 331 331 ID2P(LANG_BASE_SKIN), 332 332 browse_folder, (void*)&sbs, NULL, Icon_Wps); 333 333 #if CONFIG_TUNER 334 - MENUITEM_FUNCTION(browse_fms, MENU_FUNC_USEPARAM, 334 + MENUITEM_FUNCTION_W_PARAM(browse_fms, 0, 335 335 ID2P(LANG_RADIOSCREEN), 336 336 browse_folder, (void*)&fms, NULL, Icon_Wps); 337 337 #endif 338 - MENUITEM_FUNCTION(browse_wps, MENU_FUNC_USEPARAM, 338 + MENUITEM_FUNCTION_W_PARAM(browse_wps, 0, 339 339 ID2P(LANG_WHILE_PLAYING), 340 340 browse_folder, (void*)&wps, NULL, Icon_Wps); 341 341 #ifdef HAVE_REMOTE_LCD 342 - MENUITEM_FUNCTION(browse_rwps, MENU_FUNC_USEPARAM, 342 + MENUITEM_FUNCTION_W_PARAM(browse_rwps, 0, 343 343 ID2P(LANG_REMOTE_WHILE_PLAYING), 344 344 browse_folder, (void*)&rwps, NULL, Icon_Wps); 345 - MENUITEM_FUNCTION(browse_rsbs, MENU_FUNC_USEPARAM, 345 + MENUITEM_FUNCTION_W_PARAM(browse_rsbs, 0, 346 346 ID2P(LANG_REMOTE_BASE_SKIN), 347 347 browse_folder, (void*)&rsbs, NULL, Icon_Wps); 348 348 #if CONFIG_TUNER 349 - MENUITEM_FUNCTION(browse_rfms, MENU_FUNC_USEPARAM, 349 + MENUITEM_FUNCTION_W_PARAM(browse_rfms, 0, 350 350 ID2P(LANG_REMOTE_RADIOSCREEN), 351 351 browse_folder, (void*)&rfms, NULL, Icon_Wps); 352 352 #endif ··· 373 373 } 374 374 375 375 MENUITEM_SETTING(show_icons, &global_settings.show_icons, showicons_callback); 376 - MENUITEM_FUNCTION(browse_themes, MENU_FUNC_USEPARAM, 376 + MENUITEM_FUNCTION_W_PARAM(browse_themes, 0, 377 377 ID2P(LANG_CUSTOM_THEME), 378 378 browse_folder, (void*)&themes, NULL, Icon_Config); 379 379 MENUITEM_SETTING(cursor_style, &global_settings.cursor_style, NULL);
+19 -19
apps/onplay.c
··· 626 626 struct gui_synclist *this_list); 627 627 628 628 /* insert items */ 629 - MENUITEM_FUNCTION(i_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_INSERT), 629 + MENUITEM_FUNCTION_W_PARAM(i_pl_item, 0, ID2P(LANG_INSERT), 630 630 add_to_playlist, &addtopl_insert, 631 631 treeplaylist_callback, Icon_Playlist); 632 - MENUITEM_FUNCTION(i_first_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_INSERT_FIRST), 632 + MENUITEM_FUNCTION_W_PARAM(i_first_pl_item, 0, ID2P(LANG_INSERT_FIRST), 633 633 add_to_playlist, &addtopl_insert_first, 634 634 treeplaylist_callback, Icon_Playlist); 635 - MENUITEM_FUNCTION(i_last_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_INSERT_LAST), 635 + MENUITEM_FUNCTION_W_PARAM(i_last_pl_item, 0, ID2P(LANG_INSERT_LAST), 636 636 add_to_playlist, &addtopl_insert_last, 637 637 treeplaylist_callback, Icon_Playlist); 638 - MENUITEM_FUNCTION(i_shuf_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_INSERT_SHUFFLED), 638 + MENUITEM_FUNCTION_W_PARAM(i_shuf_pl_item, 0, ID2P(LANG_INSERT_SHUFFLED), 639 639 add_to_playlist, &addtopl_insert_shuf, 640 640 treeplaylist_callback, Icon_Playlist); 641 - MENUITEM_FUNCTION(i_last_shuf_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_INSERT_LAST_SHUFFLED), 641 + MENUITEM_FUNCTION_W_PARAM(i_last_shuf_pl_item, 0, ID2P(LANG_INSERT_LAST_SHUFFLED), 642 642 add_to_playlist, &addtopl_insert_last_shuf, 643 643 treeplaylist_callback, Icon_Playlist); 644 644 /* queue items */ 645 - MENUITEM_FUNCTION(q_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE), 645 + MENUITEM_FUNCTION_W_PARAM(q_pl_item, 0, ID2P(LANG_QUEUE), 646 646 add_to_playlist, &addtopl_queue, 647 647 treeplaylist_callback, Icon_Playlist); 648 - MENUITEM_FUNCTION(q_first_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE_FIRST), 648 + MENUITEM_FUNCTION_W_PARAM(q_first_pl_item, 0, ID2P(LANG_QUEUE_FIRST), 649 649 add_to_playlist, &addtopl_queue_first, 650 650 treeplaylist_callback, Icon_Playlist); 651 - MENUITEM_FUNCTION(q_last_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE_LAST), 651 + MENUITEM_FUNCTION_W_PARAM(q_last_pl_item, 0, ID2P(LANG_QUEUE_LAST), 652 652 add_to_playlist, &addtopl_queue_last, 653 653 treeplaylist_callback, Icon_Playlist); 654 - MENUITEM_FUNCTION(q_shuf_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE_SHUFFLED), 654 + MENUITEM_FUNCTION_W_PARAM(q_shuf_pl_item, 0, ID2P(LANG_QUEUE_SHUFFLED), 655 655 add_to_playlist, &addtopl_queue_shuf, 656 656 treeplaylist_callback, Icon_Playlist); 657 - MENUITEM_FUNCTION(q_last_shuf_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE_LAST_SHUFFLED), 657 + MENUITEM_FUNCTION_W_PARAM(q_last_shuf_pl_item, 0, ID2P(LANG_QUEUE_LAST_SHUFFLED), 658 658 add_to_playlist, &addtopl_queue_last_shuf, 659 659 treeplaylist_callback, Icon_Playlist); 660 660 ··· 668 668 &q_last_shuf_pl_item); 669 669 670 670 /* replace playlist */ 671 - MENUITEM_FUNCTION(replace_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_PLAY), 671 + MENUITEM_FUNCTION_W_PARAM(replace_pl_item, 0, ID2P(LANG_PLAY), 672 672 add_to_playlist, &addtopl_replace, 673 673 treeplaylist_callback, Icon_Playlist); 674 674 675 - MENUITEM_FUNCTION(replace_shuf_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_PLAY_SHUFFLED), 675 + MENUITEM_FUNCTION_W_PARAM(replace_shuf_pl_item, 0, ID2P(LANG_PLAY_SHUFFLED), 676 676 add_to_playlist, &addtopl_replace_shuffled, 677 677 treeplaylist_callback, Icon_Playlist); 678 678 ··· 726 726 if (!(audio_status() & AUDIO_STATUS_PLAY)) 727 727 return ACTION_EXIT_MENUITEM; 728 728 } 729 - else if ((this_item->flags & MENU_TYPE_MASK) == MT_FUNCTION_CALL && 730 - this_item->function->function_w_param == add_to_playlist) 729 + else if ((this_item->flags & MENU_TYPE_MASK) == MT_FUNCTION_CALL_W_PARAM && 730 + this_item->function_param->function_w_param == add_to_playlist) 731 731 { 732 - struct add_to_pl_param *param = this_item->function->param; 732 + struct add_to_pl_param *param = this_item->function_param->param; 733 733 734 734 if (param->queue) 735 735 { ··· 1580 1580 1581 1581 MENUITEM_FUNCTION(list_viewers_item, 0, ID2P(LANG_ONPLAY_OPEN_WITH), 1582 1582 list_viewers, NULL, clipboard_callback, Icon_NOICON); 1583 - MENUITEM_FUNCTION(properties_item, MENU_FUNC_USEPARAM, ID2P(LANG_PROPERTIES), 1583 + MENUITEM_FUNCTION_W_PARAM(properties_item, 0, ID2P(LANG_PROPERTIES), 1584 1584 onplay_load_plugin, (void *)"properties", 1585 1585 clipboard_callback, Icon_NOICON); 1586 - MENUITEM_FUNCTION(track_info_item, MENU_FUNC_USEPARAM, ID2P(LANG_MENU_SHOW_ID3_INFO), 1586 + MENUITEM_FUNCTION_W_PARAM(track_info_item, 0, ID2P(LANG_MENU_SHOW_ID3_INFO), 1587 1587 onplay_load_plugin, (void *)"properties", 1588 1588 clipboard_callback, Icon_NOICON); 1589 1589 #ifdef HAVE_TAGCACHE 1590 - MENUITEM_FUNCTION(pictureflow_item, MENU_FUNC_USEPARAM, ID2P(LANG_ONPLAY_PICTUREFLOW), 1590 + MENUITEM_FUNCTION_W_PARAM(pictureflow_item, 0, ID2P(LANG_ONPLAY_PICTUREFLOW), 1591 1591 onplay_load_plugin, (void *)"pictureflow", 1592 1592 clipboard_callback, Icon_NOICON); 1593 1593 #endif ··· 1938 1938 const struct hotkey_assignment *this_item = get_hotkey(action); 1939 1939 1940 1940 /* run the associated function (with optional param), if any */ 1941 - const struct menu_func func = this_item->func; 1941 + const struct menu_func_param func = this_item->func; 1942 1942 1943 1943 int func_return = ONPLAY_RELOAD_DIR; 1944 1944 if (func.function != NULL)
+1 -1
apps/onplay.h
··· 66 66 struct hotkey_assignment { 67 67 int action; /* hotkey_action */ 68 68 int lang_id; /* Language ID */ 69 - struct menu_func func; /* Function to run if this entry is selected */ 69 + struct menu_func_param func; /* Function to run if this entry is selected */ 70 70 int16_t return_code; /* What to return after the function is run. */ 71 71 uint16_t flags; /* Flags what context, display options */ 72 72 }; /* (Pick ONPLAY_FUNC_RETURN to use function's return value) */