const struct settings_list settings[] = { {0x1000|1|0x8|0x4000000, &global_settings.volume, LANG_VOLUME, {.int_ = 0},"volume",((void *)0), {.sound_setting=(struct sound_setting[]){{SOUND_VOLUME}}} }, {0|1|0x8|0x4000000, &global_settings.balance, LANG_BALANCE, {.int_ = 0},"balance",((void *)0), {.sound_setting=(struct sound_setting[]){{SOUND_BALANCE}}} }, {0x1000|1|0x8|0x4000000, &global_settings.bass, LANG_BASS, {.int_ = 0},"bass",((void *)0), {.sound_setting=(struct sound_setting[]){{SOUND_BASS}}} }, {0x1000|1|0x8|0x4000000, &global_settings.treble, LANG_TREBLE, {.int_ = 0},"treble",((void *)0), {.sound_setting=(struct sound_setting[]){{SOUND_TREBLE}}} }, {0x4000000|0x100|1, &global_settings.channel_config, LANG_CHANNEL_CONFIGURATION, {.int_ = 0}, "channels", "stereo,mono,custom,mono left,mono right,karaoke", {.choice_setting = (struct choice_setting[]){ {sound_set_channels, 6, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_CHANNEL_STEREO), (((unsigned char*)0) + LANG_CHANNEL_MONO), (((unsigned char*)0) + LANG_CHANNEL_CUSTOM), (((unsigned char*)0) + LANG_CHANNEL_LEFT), (((unsigned char*)0) + LANG_CHANNEL_RIGHT), (((unsigned char*)0) + LANG_CHANNEL_KARAOKE)}}}}}}, {0x4000000|1|0x8|0x4000000, &global_settings.stereo_width, LANG_STEREO_WIDTH, {.int_ = 0},"stereo_width",((void *)0), {.sound_setting=(struct sound_setting[]){{SOUND_STEREO_WIDTH}}} }, {0|(3|0x10), &global_settings.playlist_shuffle, LANG_SHUFFLE, {.bool_ = 0},"shuffle",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {(4<<17)|1, &global_status.resume_index,-1, {.int_ = -1}, ((void *)0), ((void *)0), {.RESERVED=((void *)0)}}, {(4<<17)|1, &global_status.resume_first_index,-1, {.int_ = 0}, ((void *)0), ((void *)0), {.RESERVED=((void *)0)}}, {(4<<17)|1, &global_status.resume_offset,-1, {.int_ = -1}, ((void *)0), ((void *)0), {.RESERVED=((void *)0)}}, {(4<<17)|1, &global_status.resume_seed,-1, {.int_ = -1}, ((void *)0), ((void *)0), {.RESERVED=((void *)0)}}, {0|0x100|1, &global_settings.repeat_mode, LANG_REPEAT, {.int_ = REPEAT_ALL}, "repeat", "off,all,one,shuffle" ",ab", {.choice_setting = (struct choice_setting[]){ {((void *)0), 5, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_OFF), (((unsigned char*)0) + LANG_ALL), (((unsigned char*)0) + LANG_REPEAT_ONE), (((unsigned char*)0) + LANG_SHUFFLE) ,(((unsigned char*)0) + LANG_REPEAT_AB)}}}}}}, {0x4000|0x2000|1, &global_settings.backlight_timeout, LANG_BACKLIGHT, {.int_ = 5}, "backlight timeout", off_on, {.table_setting = (struct table_setting[]) { {backlight_set_timeout, backlight_formatter, backlight_getlang, UNIT_SEC, 20, (const int[]){-1,0,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,120}}}}}, {0x4000|0x2000|1, &global_settings.backlight_timeout_plugged, LANG_BACKLIGHT_ON_WHEN_CHARGING, {.int_ = 10}, "backlight timeout plugged", off_on, {.table_setting = (struct table_setting[]) { {backlight_set_timeout_plugged, backlight_formatter, backlight_getlang, UNIT_SEC, 20, (const int[]){-1,0,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,120}}}}}, {0|(3|0x10), &global_settings.invert, LANG_INVERT, {.bool_ = 0},"invert",off_on, {.bool_setting=(struct bool_setting[]){{lcd_set_invert_display,LANG_INVERT_LCD_INVERSE,LANG_NORMAL}}} }, {0|(3|0x10), &global_settings.flip_display, LANG_FLIP_DISPLAY, {.bool_ = 0},"flip display",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x0400|0x0800000|0x100|1, &global_settings.cursor_style, LANG_INVERT_CURSOR, {.int_ = 1}, "selector type", "pointer,bar (inverse),bar (color),bar (gradient)", {.choice_setting = (struct choice_setting[]){ {((void *)0), 4, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_INVERT_CURSOR_POINTER), (((unsigned char*)0) + LANG_INVERT_CURSOR_BAR), (((unsigned char*)0) + LANG_INVERT_CURSOR_COLOR), (((unsigned char*)0) + LANG_INVERT_CURSOR_GRADIENT)}}}}}}, {0x0800000|0x0400|(3|0x10), &global_settings.statusbar, LANG_STATUS_BAR, {.bool_ = 1},"statusbar",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|(3|0x10), &global_settings.scrollbar, LANG_SCROLL_BAR, {.bool_ = 1},"scrollbar",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|0x100|1, &global_settings.volume_type, LANG_VOLUME_DISPLAY, {.int_ = 0}, "volume display", graphic_numeric, {.choice_setting = (struct choice_setting[]){ {((void *)0), 2, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_DISPLAY_GRAPHIC), (((unsigned char*)0) + LANG_DISPLAY_NUMERIC)}}}}}}, {0|0x100|1, &global_settings.battery_display, LANG_BATTERY_DISPLAY, {.int_ = 0}, "battery display", graphic_numeric, {.choice_setting = (struct choice_setting[]){ {((void *)0), 2, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_DISPLAY_GRAPHIC), (((unsigned char*)0) + LANG_DISPLAY_NUMERIC)}}}}}}, {0|0x100|1, &global_settings.timeformat, LANG_TIMEFORMAT, {.int_ = 0}, "time format", "24hour,12hour", {.choice_setting = (struct choice_setting[]){ {((void *)0), 2, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_24_HOUR_CLOCK), (((unsigned char*)0) + LANG_12_HOUR_CLOCK)}}}}}}, {0|(3|0x10), &global_settings.show_icons, LANG_SHOW_ICONS, {.bool_ = 1},"show icons",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x4000|0x2000|1, &global_settings.poweroff, LANG_POWEROFF_IDLE, {.int_ = 10}, "idle poweroff", "off", {.table_setting = (struct table_setting[]) { {set_poweroff_timeout, formatter_unit_0_is_off, getlang_unit_0_is_off, UNIT_MIN, 15, (const int[]){0,1,2,3,4,5,6,7,8,9,10,15,30,45,60}}}}}, {(4<<17)|1, &global_status.runtime,-1, {.int_ = 0}, ((void *)0), ((void *)0), {.RESERVED=((void *)0)}}, {(4<<17)|1, &global_status.topruntime,-1, {.int_ = 0}, ((void *)0), ((void *)0), {.RESERVED=((void *)0)}}, {0|0x80|1, &global_settings.max_files_in_playlist, LANG_MAX_FILES_IN_PLAYLIST, {.int_ = 400}, "max files in playlist", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_INT, 1000, 32000, 1000, ((void *)0), ((void *)0)}}}}, {0|0x80|1, &global_settings.max_files_in_dir, LANG_MAX_FILES_IN_DIR, {.int_ = 200}, "max files in dir", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_INT, 50, 10000, 50, ((void *)0), ((void *)0)}}}}, {(1<<17)|(3|0x10), &global_settings.car_adapter_mode, LANG_CAR_ADAPTER_MODE, {.bool_ = 0},"car adapter mode",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|(3|0x10), &global_settings.fm_force_mono, LANG_FM_MONO_MODE, {.bool_ = 0},"force fm mono",off_on, {.bool_setting=(struct bool_setting[]) {{toggle_mono_mode,LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {(4<<17)|1, &global_status.last_frequency,-1, {.int_ = 0}, ((void *)0), ((void *)0), {.RESERVED=((void *)0)}}, {0|(3|0x10), &global_settings.bl_filter_first_keypress, LANG_BACKLIGHT_FILTER_FIRST_KEYPRESS, {.bool_ = 0},"backlight filters first keypress",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|(3|0x10), &global_settings.caption_backlight, LANG_CAPTION_BACKLIGHT, {.bool_ = 0},"caption backlight",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x1000|0x80|1, &global_settings.brightness, LANG_BRIGHTNESS, {.int_ = 6}, "brightness", ((void *)0), {.int_setting = (struct int_setting[]){ {backlight_set_brightness, UNIT_INT, 1, 12, 1, ((void *)0), ((void *)0)}}}}, {0x800|0x80|1, &global_settings.scroll_speed, LANG_SCROLL_SPEED, {.int_ = 9}, "scroll speed", ((void *)0), {.int_setting = (struct int_setting[]){ {lcd_scroll_speed, UNIT_INT, 0, 15, 1, ((void *)0), ((void *)0)}}}}, {0x800|0x80|1, &global_settings.scroll_delay, LANG_SCROLL_DELAY, {.int_ = 1000}, "scroll delay", ((void *)0), {.int_setting = (struct int_setting[]){ {lcd_scroll_delay, UNIT_MS, 0, 2500, 100, ((void *)0), ((void *)0)}}}} , {0|0x80|1, &global_settings.bidir_limit, LANG_BIDIR_SCROLL, {.int_ = 50}, "bidir limit", ((void *)0), {.int_setting = (struct int_setting[]){ {lcd_bidir_scroll, UNIT_PERCENT, 0, 200, 25, ((void *)0), ((void *)0)}}}}, {0|(3|0x10), &global_settings.offset_out_of_view, LANG_SCREEN_SCROLL_VIEW, {.bool_ = 0},"Screen Scrolls Out Of View",off_on, {.bool_setting=(struct bool_setting[]) {{gui_list_screen_scroll_out_of_view,LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x800|0x80|1, &global_settings.scroll_step, LANG_SCROLL_STEP, {.int_ = 6}, "scroll step", ((void *)0), {.int_setting = (struct int_setting[]){ {lcd_scroll_step, UNIT_PIXEL, 1, 176, 1, ((void *)0), ((void *)0)}}}}, {0x800|0x80|1, &global_settings.screen_scroll_step, LANG_SCREEN_SCROLL_STEP, {.int_ = 16}, "screen scroll step", ((void *)0), {.int_setting = (struct int_setting[]){ {gui_list_screen_scroll_step, UNIT_PIXEL, 1, 176, 1, ((void *)0), ((void *)0)}}}}, {0|(3|0x10), &global_settings.scroll_paginated, LANG_SCROLL_PAGINATED, {.bool_ = 0},"scroll paginated",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {1|0x20|0x0800000 ,&global_settings.fg_color,-1,{.int_ = ( ((((0)) >> 3) << 11) | ((((0)) >> 2) << 5) | (((0)) >> 3) )}, "foreground color",((void *)0),{.RESERVED=((void *)0)}}, {1|0x20|0x0800000 ,&global_settings.bg_color,-1,{.int_ = ( ((((182)) >> 3) << 11) | ((((198)) >> 2) << 5) | (((229)) >> 3) )}, "background color",((void *)0),{.RESERVED=((void *)0)}}, {1|0x20|0x0800000 ,&global_settings.lss_color,-1,{.int_ = ( ((((255)) >> 3) << 11) | ((((255)) >> 2) << 5) | (((255)) >> 3) )}, "line selector start color",((void *)0),{.RESERVED=((void *)0)}}, {1|0x20|0x0800000 ,&global_settings.lse_color,-1,{.int_ = ( ((((182)) >> 3) << 11) | ((((198)) >> 2) << 5) | (((229)) >> 3) )}, "line selector end color",((void *)0),{.RESERVED=((void *)0)}}, {1|0x20|0x0800000 ,&global_settings.lst_color,-1,{.int_ = ( ((((0)) >> 3) << 11) | ((((0)) >> 2) << 5) | (((0)) >> 3) )}, "line selector text color",((void *)0),{.RESERVED=((void *)0)}}, {0|(3|0x10), &global_settings.play_selected, LANG_PLAY_SELECTED, {.bool_ = 1},"play selected",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|(3|0x10), &global_settings.party_mode, LANG_PARTY_MODE, {.bool_ = 0},"party mode",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|(3|0x10), &global_settings.fade_on_stop, LANG_FADE_ON_STOP, {.bool_ = 1},"volume fade",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x4000|0x2000|1, &global_settings.ff_rewind_min_step, LANG_FFRW_STEP, {.int_ = 1}, "scan min step", ((void *)0), {.table_setting = (struct table_setting[]) { {((void *)0), ((void *)0), ((void *)0), UNIT_SEC, 14, (const int[]){1,2,3,4,5,6,8,10,15,20,25,30,45,60}}}}}, {0|0x80|1, &global_settings.ff_rewind_accel, LANG_FFRW_ACCEL, {.int_ = 3}, "scan accel", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_SEC, 16, 0, -1, scanaccel_formatter, getlang_unit_0_is_off}}}}, {0|0x100|1, &global_settings.dirfilter, LANG_FILTER, {.int_ = SHOW_SUPPORTED}, "show files", "all,supported,music,playlists", {.choice_setting = (struct choice_setting[]){ {((void *)0), 4, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_ALL), (((unsigned char*)0) + LANG_FILTER_SUPPORTED), (((unsigned char*)0) + LANG_FILTER_MUSIC), (((unsigned char*)0) + LANG_PLAYLISTS)}}}}}}, {0|(3|0x10), &global_settings.sort_case, LANG_SORT_CASE, {.bool_ = 0},"sort case",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|0x100|1, &global_settings.show_filename_ext, LANG_SHOW_FILENAME_EXT, {.int_ = 3}, "show filename exts", "off,on,unknown,view_all", {.choice_setting = (struct choice_setting[]){ {((void *)0), 4, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_OFF), (((unsigned char*)0) + LANG_ON), (((unsigned char*)0) + LANG_UNKNOWN_TYPES), (((unsigned char*)0) + LANG_EXT_ONLY_VIEW_ALL)}}}}}}, {0|(3|0x10), &global_settings.browse_current, LANG_FOLLOW, {.bool_ = 0},"follow playlist",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|(3|0x10), &global_settings.playlist_viewer_icons, LANG_SHOW_ICONS, {.bool_ = 1},"playlist viewer icons",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|(3|0x10), &global_settings.playlist_viewer_indices, LANG_SHOW_INDICES, {.bool_ = 1},"playlist viewer indices",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|0x100|1, &global_settings.playlist_viewer_track_display, LANG_TRACK_DISPLAY, {.int_ = 0}, "playlist viewer track display", "track name,full path", {.choice_setting = (struct choice_setting[]){ {((void *)0), 2, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_DISPLAY_TRACK_NAME_ONLY), (((unsigned char*)0) + LANG_DISPLAY_FULL_PATH)}}}}}}, {0|0x100|1, &global_settings.recursive_dir_insert, LANG_RECURSE_DIRECTORY, {.int_ = RECURSE_ON}, "recursive directory insert", off_on_ask, {.choice_setting = (struct choice_setting[]){ {((void *)0), 3, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_OFF), (((unsigned char*)0) + LANG_ON), (((unsigned char*)0) + LANG_ASK)}}}}}}, {0|0x100|1, &global_settings.autocreatebookmark, LANG_BOOKMARK_SETTINGS_AUTOCREATE, {.int_ = 0}, "autocreate bookmarks", "off,on,ask,recent only - on,recent only - ask", {.choice_setting = (struct choice_setting[]){ {((void *)0), 5, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_SET_BOOL_NO), (((unsigned char*)0) + LANG_SET_BOOL_YES), (((unsigned char*)0) + LANG_ASK), (((unsigned char*)0) + LANG_BOOKMARK_SETTINGS_RECENT_ONLY_YES), (((unsigned char*)0) + LANG_BOOKMARK_SETTINGS_RECENT_ONLY_ASK)}}}}}}, {0|0x100|1, &global_settings.autoloadbookmark, LANG_BOOKMARK_SETTINGS_AUTOLOAD, {.int_ = 0}, "autoload bookmarks", off_on_ask, {.choice_setting = (struct choice_setting[]){ {((void *)0), 3, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_SET_BOOL_NO), (((unsigned char*)0) + LANG_SET_BOOL_YES), (((unsigned char*)0) + LANG_ASK)}}}}}}, {0|0x100|1, &global_settings.usemrb, LANG_BOOKMARK_SETTINGS_MAINTAIN_RECENT_BOOKMARKS, {.int_ = 0}, "use most-recent-bookmarks", "off,on,unique only", {.choice_setting = (struct choice_setting[]){ {((void *)0), 3, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_SET_BOOL_NO), (((unsigned char*)0) + LANG_SET_BOOL_YES), (((unsigned char*)0) + LANG_BOOKMARK_SETTINGS_UNIQUE_ONLY)}}}}}}, {0|0x100|1|0x200, &global_settings.peak_meter_clip_hold, LANG_PM_CLIP_HOLD, {.int_ = 16}, "peak meter clip hold", "on,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,2min" ",3min,5min,10min,20min,45min,90min", {.choice_setting = (struct choice_setting[]){ {peak_meter_set_clip_hold, 25, {.talks = (const int[]){LANG_PM_ETERNAL, (((long)(UNIT_SEC))<<(32-5) | ((1) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((2) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((3) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((4) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((5) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((6) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((7) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((8) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((9) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((10) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((15) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((20) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((25) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((30) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((45) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((60) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((90) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((2) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((3) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((5) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((10) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((20) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((45) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((90) & ~(-1L<<(32-5))))}}}}}}, {0|0x100|1|0x200, &global_settings.peak_meter_hold, LANG_PM_PEAK_HOLD, {.int_ = 3}, "peak meter hold", "off,200ms,300ms,500ms,1,2,3,4,5,6,7,8,9,10,15,20,30,1min", {.choice_setting = (struct choice_setting[]){ {((void *)0), 18, {.talks = (const int[]){LANG_OFF, (((long)(UNIT_MS))<<(32-5) | ((200) & ~(-1L<<(32-5)))), (((long)(UNIT_MS))<<(32-5) | ((300) & ~(-1L<<(32-5)))), (((long)(UNIT_MS))<<(32-5) | ((500) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((1) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((2) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((3) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((4) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((5) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((6) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((7) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((8) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((9) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((10) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((15) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((20) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((30) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((60) & ~(-1L<<(32-5))))}}}}}}, {0|0x80|1, &global_settings.peak_meter_release, LANG_PM_RELEASE, {.int_ = 8}, "peak meter release", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_PM_TICK, 1, 0x7e, 1, ((void *)0), ((void *)0)}}}}, {0|(3|0x10), &global_settings.peak_meter_dbfs, LANG_PM_DBFS, {.bool_ = 1},"peak meter dbfs",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {1,&global_settings.peak_meter_min,LANG_PM_MIN,{.int_ = 60},"peak meter min",((void *)0),{.RESERVED=((void *)0)}}, {1,&global_settings.peak_meter_max,LANG_PM_MAX,{.int_ = 0},"peak meter max",((void *)0),{.RESERVED=((void *)0)}}, {0|(3|0x10), &global_settings.peak_meter_clipcounter, LANG_PM_CLIPCOUNTER, {.bool_ = 0},"peak meter clipcounter",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x0400|(3|0x10), &global_settings.talk_menu, LANG_VOICE_MENU, {.bool_ = 1},"talk menu",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|0x100|1, &global_settings.talk_dir, LANG_VOICE_DIR, {.int_ = 0}, "talk dir", off_number_spell, {.choice_setting = (struct choice_setting[]){ {((void *)0), 3, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_OFF), (((unsigned char*)0) + LANG_VOICE_NUMBER), (((unsigned char*)0) + LANG_VOICE_SPELL)}}}}}}, {0x0400|(3|0x10), &global_settings.talk_dir_clip, LANG_VOICE_DIR_TALK, {.bool_ = 0},"talk dir clip",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|0x100|1, &global_settings.talk_file, LANG_VOICE_FILE, {.int_ = 0}, "talk file", off_number_spell, {.choice_setting = (struct choice_setting[]){ {((void *)0), 3, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_OFF), (((unsigned char*)0) + LANG_VOICE_NUMBER), (((unsigned char*)0) + LANG_VOICE_SPELL)}}}}}}, {0x0400|(3|0x10), &global_settings.talk_file_clip, LANG_VOICE_FILE_TALK, {.bool_ = 0},"talk file clip",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x0400|(3|0x10), &global_settings.talk_filetype, LANG_VOICE_FILETYPE, {.bool_ = 0},"talk filetype",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x0400|(3|0x10), &global_settings.talk_battery_level, LANG_TALK_BATTERY_LEVEL, {.bool_ = 0},"Announce Battery Level",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|0x100|1, &global_settings.sort_file, LANG_SORT_FILE, {.int_ = 0}, "sort files", "alpha,oldest,newest,type", {.choice_setting = (struct choice_setting[]){ {((void *)0), 4, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_SORT_ALPHA), (((unsigned char*)0) + LANG_SORT_DATE), (((unsigned char*)0) + LANG_SORT_DATE_REVERSE) , (((unsigned char*)0) + LANG_SORT_TYPE)}}}}}}, {0|0x100|1, &global_settings.sort_dir, LANG_SORT_DIR, {.int_ = 0}, "sort dirs", "alpha,oldest,newest", {.choice_setting = (struct choice_setting[]){ {((void *)0), 3, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_SORT_ALPHA), (((unsigned char*)0) + LANG_SORT_DATE), (((unsigned char*)0) + LANG_SORT_DATE_REVERSE)}}}}}}, {0x1000000|0x100|1|0x200, &global_settings.rec_timesplit, LANG_SPLIT_TIME, {.int_ = 0}, "rec timesplit", "off,00:05,00:10,00:15,00:30,01:00,01:14,01:20,02:00," "04:00,06:00,08:00,10:00,12:00,18:00,24:00", {.choice_setting = (struct choice_setting[]){ {((void *)0), 16, {.talks = (const int[]){LANG_OFF, (((long)(UNIT_MIN))<<(32-5) | ((5) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((10) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((15) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((30) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((60) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((74) & ~(-1L<<(32-5)))), (((long)(UNIT_MIN))<<(32-5) | ((80) & ~(-1L<<(32-5)))), (((long)(UNIT_HOUR))<<(32-5) | ((2) & ~(-1L<<(32-5)))), (((long)(UNIT_HOUR))<<(32-5) | ((4) & ~(-1L<<(32-5)))), (((long)(UNIT_HOUR))<<(32-5) | ((6) & ~(-1L<<(32-5)))), (((long)(UNIT_HOUR))<<(32-5) | ((8) & ~(-1L<<(32-5)))), (((long)(UNIT_HOUR))<<(32-5) | ((10) & ~(-1L<<(32-5)))), (((long)(UNIT_HOUR))<<(32-5) | ((12) & ~(-1L<<(32-5)))), (((long)(UNIT_HOUR))<<(32-5) | ((18) & ~(-1L<<(32-5)))), (((long)(UNIT_HOUR))<<(32-5) | ((20) & ~(-1L<<(32-5)))), (((long)(UNIT_HOUR))<<(32-5) | ((24) & ~(-1L<<(32-5))))}}}}}}, {0x1000000|0x100|1|0x200, &global_settings.rec_sizesplit, LANG_SPLIT_SIZE, {.int_ = 0}, "rec sizesplit", "off,5MB,10MB,15MB,32MB,64MB,75MB,100MB,128MB," "256MB,512MB,650MB,700MB,1GB,1.5GB,1.75GB", {.choice_setting = (struct choice_setting[]){ {((void *)0), 16, {.talks = (const int[]){LANG_OFF, (((long)(UNIT_MB))<<(32-5) | ((5) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((10) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((15) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((32) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((64) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((75) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((100) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((128) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((256) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((512) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((650) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((700) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((1024) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((1536) & ~(-1L<<(32-5)))), (((long)(UNIT_MB))<<(32-5) | ((1792) & ~(-1L<<(32-5))))}}}}}}, {1|0x1000000, &global_settings.rec_channels, LANG_CHANNELS, {.int_ = 0}, "rec channels","stereo,mono",{.RESERVED=((void *)0)}}, {0x1000000|0x100|1, &global_settings.rec_split_type, LANG_SPLIT_TYPE, {.int_ = 0}, "rec split type", "Split,Stop", {.choice_setting = (struct choice_setting[]){ {((void *)0), 2, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_START_NEW_FILE), (((unsigned char*)0) + LANG_STOP_RECORDING)}}}}}}, {0x1000000|0x100|1, &global_settings.rec_split_method, LANG_SPLIT_MEASURE, {.int_ = 0}, "rec split method", "Time,Filesize", {.choice_setting = (struct choice_setting[]){ {((void *)0), 2, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_TIME), (((unsigned char*)0) + LANG_REC_SIZE)}}}}}}, {1|0x1000000, &global_settings.rec_source, LANG_RECORDING_SOURCE, {.int_ = 0}, "rec source", &",mic" ",fmradio"[1] ,{.RESERVED=((void *)0)}}, {0x1000000|0x80|1, &global_settings.rec_prerecord_time, LANG_RECORD_PRERECORD_TIME, {.int_ = 0}, "prerecording time", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_SEC, 0, 30, 1, formatter_unit_0_is_off, getlang_unit_0_is_off}}}}, {0x1000000|5, &global_settings.rec_directory,-1, {.charptr = "/"},"rec path",((void *)0), {.filename_setting= (struct filename_setting[]){{((void *)0),((void *)0),32 +1}}} }, {0x1000000|0x100|1, &global_settings.cliplight, LANG_CLIP_LIGHT, {.int_ = 0}, "cliplight", "off,main,both,remote", {.choice_setting = (struct choice_setting[]){ {((void *)0), 2, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_OFF), (((unsigned char*)0) + LANG_ON)}}}}}}, {1|0x1000000,&global_settings.rec_mic_gain, LANG_GAIN,{.int_ = 23}, "rec mic gain",((void *)0),{.RESERVED=((void *)0)}}, {1|0x1000000,&global_settings.rec_left_gain, LANG_RECORDING_LEFT,{.int_ = 23}, "rec left gain",((void *)0),{.RESERVED=((void *)0)}}, {1|0x1000000,&global_settings.rec_right_gain,LANG_RECORDING_RIGHT, {.int_ = 23}, "rec right gain",((void *)0),{.RESERVED=((void *)0)}}, {1|0x1000000,&global_settings.rec_frequency, LANG_RECORDING_FREQUENCY,{.int_ = REC_FREQ_22}, "rec frequency",& ",22" [1],{.RESERVED=((void *)0)}}, {1|0x1000000,&global_settings.rec_format, LANG_RECORDING_FORMAT,{.int_ = REC_FORMAT_DEFAULT}, "rec format","wave,aiff,wvpk,mpa3",{.RESERVED=((void *)0)}}, {1|0x1000000, &global_settings.mp3_enc_config.bitrate,-1, {.int_ = 11}, "mp3_enc bitrate","8,16,24,32,40,48,56,64,80,96," "112,128,144,160,192,224,256,320",{.RESERVED=((void *)0)}}, {1|0x1000000,&global_settings.rec_start_thres, LANG_RECORD_START_THRESHOLD, {.int_ = -35}, "trigger start threshold",((void *)0),{.RESERVED=((void *)0)}}, {1|0x1000000,&global_settings.rec_stop_thres, LANG_RECORD_STOP_THRESHOLD,{.int_ = -45}, "trigger stop threshold",((void *)0),{.RESERVED=((void *)0)}}, {1|0x1000000,&global_settings.rec_start_duration, LANG_MIN_DURATION,{.int_ = 0}, "trigger start duration",trig_durations_conf,{.RESERVED=((void *)0)}}, {1|0x1000000,&global_settings.rec_stop_postrec, LANG_MIN_DURATION,{.int_ = 2}, "trigger stop postrec",trig_durations_conf,{.RESERVED=((void *)0)}}, {1|0x1000000,&global_settings.rec_stop_gap, LANG_RECORD_STOP_GAP,{.int_ = 1}, "trigger min gap",trig_durations_conf,{.RESERVED=((void *)0)}}, {1|0x1000000,&global_settings.rec_trigger_mode, LANG_RECORD_TRIGGER,{.int_ = 0}, "trigger mode","off,once,repeat",{.RESERVED=((void *)0)}}, {0|0x100|1, &global_settings.next_folder, LANG_NEXT_FOLDER, {.int_ = 0}, "folder navigation", "off,on,random", {.choice_setting = (struct choice_setting[]){ {((void *)0), 3, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_SET_BOOL_NO), (((unsigned char*)0) + LANG_SET_BOOL_YES), (((unsigned char*)0) + LANG_RANDOM)}}}}}}, {0|(3|0x10), &global_settings.runtimedb, LANG_RUNTIMEDB_ACTIVE, {.bool_ = 0},"gather runtime data",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x4000000|(3|0x10), &global_settings.replaygain, LANG_REPLAYGAIN_ENABLE, {.bool_ = 0},"replaygain",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x4000000|0x100|1, &global_settings.replaygain_type, LANG_REPLAYGAIN_MODE, {.int_ = REPLAYGAIN_ALBUM}, "replaygain type", "track,album,track shuffle", {.choice_setting = (struct choice_setting[]){ {((void *)0), 3, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_TRACK_GAIN), (((unsigned char*)0) + LANG_ALBUM_GAIN), (((unsigned char*)0) + LANG_SHUFFLE_GAIN)}}}}}}, {0x4000000|(3|0x10), &global_settings.replaygain_noclip, LANG_REPLAYGAIN_NOCLIP, {.bool_ = 0},"replaygain noclip",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x4000000|0x80|1|0x1000, &global_settings.replaygain_preamp, LANG_REPLAYGAIN_PREAMP, {.int_ = 0}, "replaygain preamp", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_DB, -120, 120, 5, db_format, ((void *)0)}}}}, {0|0x100|1, &global_settings.beep, LANG_BEEP, {.int_ = 0}, "beep", "off,weak,moderate,strong", {.choice_setting = (struct choice_setting[]){ {((void *)0), 4, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_OFF), (((unsigned char*)0) + LANG_WEAK), (((unsigned char*)0) + LANG_MODERATE), (((unsigned char*)0) + LANG_STRONG)}}}}}}, {0x4000000|0x100|1, &global_settings.crossfade, LANG_CROSSFADE_ENABLE, {.int_ = 0}, "crossfade", "off,shuffle,track skip,shuffle and track skip,always", {.choice_setting = (struct choice_setting[]){ {((void *)0), 5, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_OFF), (((unsigned char*)0) + LANG_SHUFFLE), (((unsigned char*)0) + LANG_TRACKSKIP), (((unsigned char*)0) + LANG_SHUFFLE_TRACKSKIP), (((unsigned char*)0) + LANG_ALWAYS)}}}}}}, {0x4000000|0x80|1, &global_settings.crossfade_fade_in_delay, LANG_CROSSFADE_FADE_IN_DELAY, {.int_ = 0}, "crossfade fade in delay", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_SEC, 0, 7, 1, ((void *)0), ((void *)0)}}}}, {0x4000000|0x80|1, &global_settings.crossfade_fade_out_delay, LANG_CROSSFADE_FADE_OUT_DELAY, {.int_ = 0}, "crossfade fade out delay", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_SEC, 0, 7, 1, ((void *)0), ((void *)0)}}}}, {0x4000000|0x80|1, &global_settings.crossfade_fade_in_duration, LANG_CROSSFADE_FADE_IN_DURATION, {.int_ = 2}, "crossfade fade in duration", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_SEC, 0, 15, 1, ((void *)0), ((void *)0)}}}}, {0x4000000|0x80|1, &global_settings.crossfade_fade_out_duration, LANG_CROSSFADE_FADE_OUT_DURATION, {.int_ = 2}, "crossfade fade out duration", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_SEC, 0, 15, 1, ((void *)0), ((void *)0)}}}}, {0x4000000|0x100|1, &global_settings.crossfade_fade_out_mixmode, LANG_CROSSFADE_FADE_OUT_MODE, {.int_ = 0}, "crossfade fade out mode", "crossfade,mix", {.choice_setting = (struct choice_setting[]){ {((void *)0), 2, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_CROSSFADE), (((unsigned char*)0) + LANG_MIX)}}}}}}, {0x4000000|(3|0x10), &global_settings.crossfeed, LANG_CROSSFEED, {.bool_ = 0},"crossfeed",off_on, {.bool_setting=(struct bool_setting[]) {{dsp_set_crossfeed,LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x4000000|0x80|1|0x1000, &global_settings.crossfeed_direct_gain, LANG_CROSSFEED_DIRECT_GAIN, {.int_ = -15}, "crossfeed direct gain", ((void *)0), {.int_setting = (struct int_setting[]){ {dsp_set_crossfeed_direct_gain, UNIT_DB, -60, 0, 5, db_format, ((void *)0)}}}}, {0x4000000|0x80|1|0x1000, &global_settings.crossfeed_cross_gain, LANG_CROSSFEED_CROSS_GAIN, {.int_ = -60}, "crossfeed cross gain", ((void *)0), {.int_setting = (struct int_setting[]){ {crossfeed_cross_set, UNIT_DB, -120, -30, 5, db_format, ((void *)0)}}}}, {0x4000000|0x80|1|0x1000, &global_settings.crossfeed_hf_attenuation, LANG_CROSSFEED_HF_ATTENUATION, {.int_ = -160}, "crossfeed hf attenuation", ((void *)0), {.int_setting = (struct int_setting[]){ {crossfeed_cross_set, UNIT_DB, -240, -60, 5, db_format, ((void *)0)}}}}, {0x4000000|0x80|1|0x1000, &global_settings.crossfeed_hf_cutoff, LANG_CROSSFEED_HF_CUTOFF, {.int_ = 700}, "crossfeed hf cutoff", ((void *)0), {.int_setting = (struct int_setting[]){ {crossfeed_cross_set, UNIT_HERTZ, 500, 2000, 100, ((void *)0), ((void *)0)}}}}, {0x2000000|(3|0x10), &global_settings.eq_enabled, LANG_EQUALIZER_ENABLED, {.bool_ = 0},"eq enabled",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0x2000000|0x80|1|0x1000, &global_settings.eq_precut, LANG_EQUALIZER_PRECUT, {.int_ = 0}, "eq precut", ((void *)0), {.int_setting = (struct int_setting[]){ {dsp_set_eq_precut, UNIT_DB, 0, 240, 5, eq_precut_format, ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band0_cutoff, LANG_EQUALIZER_BAND_CUTOFF, {.int_ = 60}, "eq band 0 cutoff", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_HERTZ, 20, 22040, 10, ((void *)0), ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band1_cutoff, LANG_EQUALIZER_BAND_CENTER, {.int_ = 200}, "eq band 1 cutoff", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_HERTZ, 20, 22040, 10, ((void *)0), ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band2_cutoff, LANG_EQUALIZER_BAND_CENTER, {.int_ = 800}, "eq band 2 cutoff", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_HERTZ, 20, 22040, 10, ((void *)0), ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band3_cutoff, LANG_EQUALIZER_BAND_CENTER, {.int_ = 4000}, "eq band 3 cutoff", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_HERTZ, 20, 22040, 10, ((void *)0), ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band4_cutoff, LANG_EQUALIZER_BAND_CUTOFF, {.int_ = 12000}, "eq band 4 cutoff", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_HERTZ, 20, 22040, 10, ((void *)0), ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band0_q, LANG_EQUALIZER_BAND_Q, {.int_ = 7}, "eq band 0 q", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_INT, 5, 64, 1, eq_q_format, ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band1_q, LANG_EQUALIZER_BAND_Q, {.int_ = 10}, "eq band 1 q", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_INT, 5, 64, 1, eq_q_format, ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band2_q, LANG_EQUALIZER_BAND_Q, {.int_ = 10}, "eq band 2 q", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_INT, 5, 64, 1, eq_q_format, ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band3_q, LANG_EQUALIZER_BAND_Q, {.int_ = 10}, "eq band 3 q", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_INT, 5, 64, 1, eq_q_format, ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band4_q, LANG_EQUALIZER_BAND_Q, {.int_ = 7}, "eq band 4 q", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_INT, 5, 64, 1, eq_q_format, ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band0_gain, LANG_GAIN, {.int_ = 0}, "eq band 0 gain", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_DB, (-240), 240, 5, db_format, ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band1_gain, LANG_GAIN, {.int_ = 0}, "eq band 1 gain", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_DB, (-240), 240, 5, db_format, ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band2_gain, LANG_GAIN, {.int_ = 0}, "eq band 2 gain", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_DB, (-240), 240, 5, db_format, ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band3_gain, LANG_GAIN, {.int_ = 0}, "eq band 3 gain", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_DB, (-240), 240, 5, db_format, ((void *)0)}}}}, {0x2000000|0x80|1|0x1000, &global_settings.eq_band4_gain, LANG_GAIN, {.int_ = 0}, "eq band 4 gain", ((void *)0), {.int_setting = (struct int_setting[]){ {((void *)0), UNIT_DB, (-240), 240, 5, db_format, ((void *)0)}}}}, {0x4000000|(3|0x10), &global_settings.dithering_enabled, LANG_DITHERING, {.bool_ = 0},"dithering enabled",off_on, {.bool_setting=(struct bool_setting[]) {{dsp_dither_enable,LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|(3|0x10), &global_settings.tagcache_autoupdate, LANG_TAGCACHE_AUTOUPDATE, {.bool_ = 0},"tagcache_autoupdate",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|0x100|1, &global_settings.default_codepage, LANG_DEFAULT_CODEPAGE, {.int_ = 0}, "default codepage", "iso8859-1,iso8859-7,iso8859-8,cp1251,iso8859-11,cp1256," "iso8859-9,iso8859-2,cp1250,sjis,gb2312,ksx1001,big5,utf-8", {.choice_setting = (struct choice_setting[]){ {set_codepage, 14, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_CODEPAGE_LATIN1), (((unsigned char*)0) + LANG_CODEPAGE_GREEK), (((unsigned char*)0) + LANG_CODEPAGE_HEBREW), (((unsigned char*)0) + LANG_CODEPAGE_CYRILLIC), (((unsigned char*)0) + LANG_CODEPAGE_THAI), (((unsigned char*)0) + LANG_CODEPAGE_ARABIC), (((unsigned char*)0) + LANG_CODEPAGE_TURKISH), (((unsigned char*)0) + LANG_CODEPAGE_LATIN_EXTENDED), (((unsigned char*)0) + LANG_CODEPAGE_CENTRAL_EUROPEAN), (((unsigned char*)0) + LANG_CODEPAGE_JAPANESE), (((unsigned char*)0) + LANG_CODEPAGE_SIMPLIFIED), (((unsigned char*)0) + LANG_CODEPAGE_KOREAN), (((unsigned char*)0) + LANG_CODEPAGE_TRADITIONAL), (((unsigned char*)0) + LANG_CODEPAGE_UTF8)}}}}}}, {0|(3|0x10), &global_settings.warnon_erase_dynplaylist, LANG_WARN_ERASEDYNPLAYLIST_MENU, {.bool_ = 0},"warn when erasing dynamic playlist",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|0x100|1|0x200, &global_settings.lcd_sleep_after_backlight_off, LANG_LCD_SLEEP_AFTER_BACKLIGHT_OFF, {.int_ = 3}, "lcd sleep after backlight off", "always,never,5,10,15,20,30,45,60,90", {.choice_setting = (struct choice_setting[]){ {lcd_set_sleep_after_backlight_off, 10, {.talks = (const int[]){LANG_ALWAYS, LANG_NEVER, (((long)(UNIT_SEC))<<(32-5) | ((5) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((10) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((15) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((20) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((30) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((45) & ~(-1L<<(32-5)))),(((long)(UNIT_SEC))<<(32-5) | ((60) & ~(-1L<<(32-5)))), (((long)(UNIT_SEC))<<(32-5) | ((90) & ~(-1L<<(32-5))))}}}}}}, {0|(3|0x10), &global_settings.hold_lr_for_scroll_in_list, -1, {.bool_ = 1},"hold_lr_for_scroll_in_list",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|0x100|1, &global_settings.show_path_in_browser, LANG_SHOW_PATH, {.int_ = SHOW_PATH_OFF}, "show path in browser", "off,current directory,full path", {.choice_setting = (struct choice_setting[]){ {((void *)0), 3, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_OFF), (((unsigned char*)0) + LANG_SHOW_PATH_CURRENT), (((unsigned char*)0) + LANG_DISPLAY_FULL_PATH)}}}}}}, {0|0x100|1, &global_settings.fm_region, LANG_FM_REGION, {.int_ = 0}, "fm_region", "eu,us,jp,kr", {.choice_setting = (struct choice_setting[]){ {set_radio_region, 4, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_FM_EUROPE), (((unsigned char*)0) + LANG_FM_US), (((unsigned char*)0) + LANG_FM_JAPAN), (((unsigned char*)0) + LANG_FM_KOREA)}}}}}}, {0|(3|0x10), &global_settings.audioscrobbler, LANG_AUDIOSCROBBLER, {.bool_ = 0},"Last.fm Logging",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {1|0x1000000,&global_settings.rec_trigger_type, LANG_RECORD_TRIGGER_TYPE, {.int_ = 0},"trigger type","stop,pause,nf stp",{.RESERVED=((void *)0)}}, {0|5, &global_settings.fmr_file,-1, {.charptr = ""},"fmr",((void *)0), {.filename_setting= (struct filename_setting[]){{"/.rockbox" "/fmpresets" "/",".fmr",32 +1}}} }, {0x0800000|5, &global_settings.font_file,-1, {.charptr = ""},"font",((void *)0), {.filename_setting= (struct filename_setting[]){{"/.rockbox" "/fonts" "/",".fnt",32 +1}}} }, {0x0800000|5, &global_settings.wps_file,-1, {.charptr = ""},"wps",((void *)0), {.filename_setting= (struct filename_setting[]){{"/.rockbox" "/wps" "/",".wps",32 +1}}} }, {0|5, &global_settings.lang_file,-1, {.charptr = ""},"lang",((void *)0), {.filename_setting= (struct filename_setting[]){{"/.rockbox" "/langs" "/",".lng",32 +1}}} }, {0x0800000|5, &global_settings.backdrop_file,-1, {.charptr = ""},"backdrop",((void *)0), {.filename_setting= (struct filename_setting[]){{"/.rockbox" "/backdrops" "/",".bmp",32 +1}}} }, {0|5, &global_settings.kbd_file,-1, {.charptr = ""},"kbd",((void *)0), {.filename_setting= (struct filename_setting[]){{"/.rockbox" "/",".kbd",32 +1}}} }, {0|(3|0x10), &global_settings.usb_charging, LANG_USB_CHARGING, {.bool_ = 0},"usb charging",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|(3|0x10), &global_settings.cuesheet, LANG_CUESHEET_ENABLE, {.bool_ = 0},"cuesheet support",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|0x100|1, &global_settings.start_in_screen, LANG_START_SCREEN, {.int_ = 1}, "start in screen", "previous,root,files,db,wps,menu," "recording," "radio," "bookmarks", {.choice_setting = (struct choice_setting[]){ {((void *)0), 9, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_PREVIOUS_SCREEN), (((unsigned char*)0) + LANG_MAIN_MENU), (((unsigned char*)0) + LANG_DIR_BROWSER), (((unsigned char*)0) + LANG_TAGCACHE), (((unsigned char*)0) + LANG_RESUME_PLAYBACK), (((unsigned char*)0) + LANG_SETTINGS), (((unsigned char*)0) + LANG_RECORDING), (((unsigned char*)0) + LANG_FM_RADIO), (((unsigned char*)0) + LANG_BOOKMARK_MENU_RECENT_BOOKMARKS)}}}}}}, {(1<<17)|1, &global_status.last_screen,-1, {.int_ = -1}, ((void *)0), ((void *)0), {.RESERVED=((void *)0)}}, {0x0800000|5, &global_settings.icon_file,-1, {.charptr = ""},"iconset",((void *)0), {.filename_setting= (struct filename_setting[]){{"/.rockbox" "/icons" "/",".bmp",32 +1}}} }, {0x0800000|5, &global_settings.viewers_icon_file,-1, {.charptr = ""},"viewers iconset",((void *)0), {.filename_setting= (struct filename_setting[]){{"/.rockbox" "/icons" "/",".bmp",32 +1}}} }, {0x0800000|5, &global_settings.colors_file,-1, {.charptr = ""},"filetype colours",((void *)0), {.filename_setting= (struct filename_setting[]){{"/.rockbox" "/themes" "/",".colours",32 +1}}} }, {0x4000|0x2000|1, &global_settings.buttonlight_timeout, LANG_BUTTONLIGHT_TIMEOUT, {.int_ = 5}, "button light timeout", off_on, {.table_setting = (struct table_setting[]) { {buttonlight_set_timeout, backlight_formatter, backlight_getlang, UNIT_SEC, 20, (const int[]){-1,0,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,120}}}}}, {0|1, &global_status.statusbar_forced,-1, {.int_ = 0}, ((void *)0), ((void *)0), {.RESERVED=((void *)0)}}, {0|0x100|1, &global_settings.keyclick, LANG_KEYCLICK, {.int_ = 0}, "keyclick", "off,weak,moderate,strong", {.choice_setting = (struct choice_setting[]){ {((void *)0), 4, {.desc = (const unsigned char*[]){(((unsigned char*)0) + LANG_OFF), (((unsigned char*)0) + LANG_WEAK), (((unsigned char*)0) + LANG_MODERATE), (((unsigned char*)0) + LANG_STRONG)}}}}}}, {0|(3|0x10), &global_settings.keyclick_repeats, LANG_KEYCLICK_REPEATS, {.bool_ = 0},"keyclick repeats",off_on, {.bool_setting=(struct bool_setting[]) {{((void *)0),LANG_SET_BOOL_YES,LANG_SET_BOOL_NO}}} }, {0|5, &global_settings.playlist_catalog_dir,-1, {.charptr = "/Playlists"},"playlist catalog directory",((void *)0), {.filename_setting= (struct filename_setting[]){{((void *)0),((void *)0),32 +1}}} }, {0|5, &global_settings.quickscreen_left,-1, {.charptr = "shuffle"},"quickscreen left",((void *)0), {.filename_setting= (struct filename_setting[]){{((void *)0),((void *)0),32 +1}}} }, {0|5, &global_settings.quickscreen_right,-1, {.charptr = "repeat"},"quickscreen right",((void *)0), {.filename_setting= (struct filename_setting[]){{((void *)0),((void *)0),32 +1}}} }, {0|5, &global_settings.quickscreen_top,-1, {.charptr = ""},"quickscreen top",((void *)0), {.filename_setting= (struct filename_setting[]){{((void *)0),((void *)0),32 +1}}} }, {0|5, &global_settings.quickscreen_bottom,-1, {.charptr = "show files"},"quickscreen bottom",((void *)0), {.filename_setting= (struct filename_setting[]){{((void *)0),((void *)0),32 +1}}} }, }; const int nb_settings = sizeof(settings)/sizeof(*settings); const struct settings_list* get_settings(int *count) { *count = nb_settings; return settings; }