Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 1 | /*************************************************************************** |
| 2 | * __________ __ ___. |
| 3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ |
| 4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / |
| 5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
| 6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
| 7 | * \/ \/ \/ \/ \/ |
| 8 | * $Id$ |
| 9 | * |
| 10 | * Copyright (C) 2002 by wavey@wavey.org |
| 11 | * |
| 12 | * All files in this archive are subject to the GNU General Public License. |
| 13 | * See the file COPYING in the source tree root for full license agreement. |
| 14 | * |
| 15 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
| 16 | * KIND, either express or implied. |
| 17 | * |
| 18 | ****************************************************************************/ |
| 19 | |
| 20 | #ifndef __SETTINGS_H__ |
| 21 | #define __SETTINGS_H__ |
| 22 | |
| 23 | #include <stdbool.h> |
Hardeep Sidhu | e9d4058 | 2003-07-15 02:34:10 +0000 | [diff] [blame] | 24 | #include "config.h" |
Björn Stenberg | 6224cdb | 2002-08-16 14:41:47 +0000 | [diff] [blame] | 25 | #include "file.h" |
Miika Pekkarinen | ab78b04 | 2005-10-07 17:38:05 +0000 | [diff] [blame] | 26 | #include "dircache.h" |
Linus Nielsen Feltzing | 7ddf0d6 | 2004-04-20 10:23:57 +0000 | [diff] [blame] | 27 | #include "timefuncs.h" |
Linus Nielsen Feltzing | 0ad617c | 2005-08-21 23:01:12 +0000 | [diff] [blame] | 28 | #include "abrepeat.h" |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 29 | |
Björn Stenberg | 26964fd | 2002-09-01 19:50:45 +0000 | [diff] [blame] | 30 | #define ROCKBOX_DIR "/.rockbox" |
Linus Nielsen Feltzing | d887c17 | 2005-09-01 08:14:09 +0000 | [diff] [blame] | 31 | #define ROCKBOX_DIR_LEN 9 |
Daniel Stenberg | 0f68958 | 2004-01-08 12:40:25 +0000 | [diff] [blame] | 32 | #define FONT_DIR "/fonts" |
| 33 | #define LANG_DIR "/langs" |
Daniel Stenberg | 0b4576c | 2005-11-12 21:48:06 +0000 | [diff] [blame] | 34 | #define WPS_DIR ROCKBOX_DIR "/wps" |
Christi Scarborough | 32a43e2 | 2005-11-18 15:33:05 +0000 | [diff] [blame] | 35 | #define THEME_DIR ROCKBOX_DIR "/themes" |
Björn Stenberg | de5477c | 2003-09-29 21:26:53 +0000 | [diff] [blame] | 36 | #define PLUGIN_DIR ROCKBOX_DIR"/rocks" |
Linus Nielsen Feltzing | ef7293f | 2004-01-21 14:58:40 +0000 | [diff] [blame] | 37 | #define REC_BASE_DIR "/recordings" |
Björn Stenberg | 26964fd | 2002-09-01 19:50:45 +0000 | [diff] [blame] | 38 | |
Björn Stenberg | dea3122 | 2002-10-08 15:42:40 +0000 | [diff] [blame] | 39 | #define MAX_FILENAME 20 |
| 40 | |
Björn Stenberg | 6c33c51 | 2004-09-19 21:58:37 +0000 | [diff] [blame] | 41 | /* button definitions */ |
Daniel Stenberg | 1753e98 | 2005-06-18 21:38:05 +0000 | [diff] [blame] | 42 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ |
| 43 | (CONFIG_KEYPAD == IRIVER_H300_PAD) |
Linus Nielsen Feltzing | e68ccbd | 2004-11-19 10:54:59 +0000 | [diff] [blame] | 44 | #define SETTINGS_INC BUTTON_UP |
| 45 | #define SETTINGS_DEC BUTTON_DOWN |
| 46 | #define SETTINGS_OK BUTTON_SELECT |
| 47 | #define SETTINGS_OK2 BUTTON_LEFT |
| 48 | #define SETTINGS_CANCEL BUTTON_OFF |
Jens Arnold | 9ed26cb | 2005-06-18 08:41:16 +0000 | [diff] [blame] | 49 | #define SETTINGS_CANCEL2 BUTTON_MODE |
Linus Nielsen Feltzing | e68ccbd | 2004-11-19 10:54:59 +0000 | [diff] [blame] | 50 | |
| 51 | #elif CONFIG_KEYPAD == RECORDER_PAD |
Björn Stenberg | 6c33c51 | 2004-09-19 21:58:37 +0000 | [diff] [blame] | 52 | #define SETTINGS_INC BUTTON_UP |
| 53 | #define SETTINGS_DEC BUTTON_DOWN |
Björn Stenberg | ff4b21d | 2004-10-04 23:08:41 +0000 | [diff] [blame] | 54 | #define SETTINGS_OK BUTTON_PLAY |
| 55 | #define SETTINGS_OK2 BUTTON_LEFT |
| 56 | #define SETTINGS_CANCEL BUTTON_OFF |
| 57 | #define SETTINGS_CANCEL2 BUTTON_F1 |
Björn Stenberg | 6c33c51 | 2004-09-19 21:58:37 +0000 | [diff] [blame] | 58 | |
Jörg Hohensohn | 593cc00 | 2004-09-28 22:13:26 +0000 | [diff] [blame] | 59 | #elif CONFIG_KEYPAD == PLAYER_PAD |
Björn Stenberg | 6c33c51 | 2004-09-19 21:58:37 +0000 | [diff] [blame] | 60 | #define SETTINGS_INC BUTTON_RIGHT |
| 61 | #define SETTINGS_DEC BUTTON_LEFT |
Björn Stenberg | ff4b21d | 2004-10-04 23:08:41 +0000 | [diff] [blame] | 62 | #define SETTINGS_OK BUTTON_PLAY |
| 63 | #define SETTINGS_CANCEL BUTTON_STOP |
| 64 | #define SETTINGS_CANCEL2 BUTTON_MENU |
Björn Stenberg | 6c33c51 | 2004-09-19 21:58:37 +0000 | [diff] [blame] | 65 | |
Jörg Hohensohn | 593cc00 | 2004-09-28 22:13:26 +0000 | [diff] [blame] | 66 | #elif CONFIG_KEYPAD == ONDIO_PAD |
Jens Arnold | 4dab0d2 | 2004-10-24 21:45:37 +0000 | [diff] [blame] | 67 | #define SETTINGS_INC BUTTON_UP |
| 68 | #define SETTINGS_DEC BUTTON_DOWN |
| 69 | #define SETTINGS_OK BUTTON_RIGHT |
| 70 | #define SETTINGS_OK2 BUTTON_LEFT |
| 71 | #define SETTINGS_CANCEL BUTTON_MENU |
| 72 | #define SETTINGS_CANCEL2 BUTTON_OFF |
Björn Stenberg | 6c33c51 | 2004-09-19 21:58:37 +0000 | [diff] [blame] | 73 | |
Jens Arnold | 259e354 | 2005-01-23 01:01:14 +0000 | [diff] [blame] | 74 | #elif CONFIG_KEYPAD == GMINI100_PAD |
| 75 | #define SETTINGS_INC BUTTON_UP |
| 76 | #define SETTINGS_DEC BUTTON_DOWN |
| 77 | #define SETTINGS_OK BUTTON_PLAY |
| 78 | #define SETTINGS_OK2 BUTTON_LEFT |
| 79 | #define SETTINGS_CANCEL BUTTON_OFF |
| 80 | #define SETTINGS_CANCEL2 BUTTON_MENU |
| 81 | |
Dave Chapman | fe77240 | 2005-11-19 03:19:12 +0000 | [diff] [blame] | 82 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ |
| 83 | (CONFIG_KEYPAD == IPOD_NANO_PAD) |
| 84 | #define SETTINGS_INC BUTTON_SCROLL_FWD |
| 85 | #define SETTINGS_DEC BUTTON_SCROLL_BACK |
| 86 | #define SETTINGS_OK BUTTON_SELECT |
Dave Chapman | 64e5239 | 2005-11-12 16:07:17 +0000 | [diff] [blame] | 87 | #define SETTINGS_CANCEL BUTTON_MENU |
| 88 | |
Björn Stenberg | 6c33c51 | 2004-09-19 21:58:37 +0000 | [diff] [blame] | 89 | #endif |
| 90 | |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 91 | /* data structures */ |
| 92 | |
Björn Stenberg | a108ec2 | 2004-01-14 00:13:04 +0000 | [diff] [blame] | 93 | #define BOOKMARK_NO 0 |
| 94 | #define BOOKMARK_YES 1 |
| 95 | #define BOOKMARK_ASK 2 |
| 96 | #define BOOKMARK_UNIQUE_ONLY 2 |
| 97 | #define BOOKMARK_RECENT_ONLY_YES 3 |
| 98 | #define BOOKMARK_RECENT_ONLY_ASK 4 |
Eric Linenberg | 7eb2711 | 2002-09-04 03:38:37 +0000 | [diff] [blame] | 99 | #define FF_REWIND_1000 0 |
| 100 | #define FF_REWIND_2000 1 |
| 101 | #define FF_REWIND_3000 2 |
| 102 | #define FF_REWIND_4000 3 |
| 103 | #define FF_REWIND_5000 4 |
| 104 | #define FF_REWIND_6000 5 |
| 105 | #define FF_REWIND_8000 6 |
| 106 | #define FF_REWIND_10000 7 |
| 107 | #define FF_REWIND_15000 8 |
| 108 | #define FF_REWIND_20000 9 |
| 109 | #define FF_REWIND_25000 10 |
| 110 | #define FF_REWIND_30000 11 |
| 111 | #define FF_REWIND_45000 12 |
| 112 | #define FF_REWIND_60000 13 |
| 113 | |
Linus Nielsen Feltzing | 68482bb | 2005-04-04 09:12:12 +0000 | [diff] [blame] | 114 | #define TRIG_MODE_OFF 0 |
| 115 | #define TRIG_MODE_NOREARM 1 |
| 116 | #define TRIG_MODE_REARM 2 |
| 117 | |
| 118 | #define TRIG_DURATION_COUNT 13 |
Linus Nielsen Feltzing | b3e49e2 | 2005-08-18 07:02:03 +0000 | [diff] [blame] | 119 | extern const char * const trig_durations[TRIG_DURATION_COUNT]; |
Björn Stenberg | de5477c | 2003-09-29 21:26:53 +0000 | [diff] [blame] | 120 | |
Miika Pekkarinen | e7461b3 | 2005-11-06 16:40:20 +0000 | [diff] [blame] | 121 | #define CROSSFADE_ENABLE_SHUFFLE 1 |
| 122 | #define CROSSFADE_ENABLE_ALWAYS 2 |
Miika Pekkarinen | 90161c9 | 2005-07-22 16:46:27 +0000 | [diff] [blame] | 123 | |
Jörg Hohensohn | b1403ee | 2004-07-23 23:01:20 +0000 | [diff] [blame] | 124 | /* These define "virtual pointers", which could either be a literal string, |
| 125 | or a mean a string ID if the pointer is in a certain range. |
| 126 | This helps to save space for menus and options. */ |
| 127 | |
| 128 | #define VIRT_SIZE 0xFFFF /* more than enough for our string ID range */ |
| 129 | #ifdef SIMULATOR |
| 130 | /* a space which is defined in stubs.c */ |
Jens Arnold | abe77a1 | 2004-08-01 21:50:57 +0000 | [diff] [blame] | 131 | extern unsigned char vp_dummy[VIRT_SIZE]; |
Jörg Hohensohn | b1403ee | 2004-07-23 23:01:20 +0000 | [diff] [blame] | 132 | #define VIRT_PTR vp_dummy |
| 133 | #else |
| 134 | /* a location where we won't store strings, 0 is the fastest */ |
| 135 | #define VIRT_PTR ((unsigned char*)0) |
| 136 | #endif |
| 137 | |
| 138 | /* form a "virtual pointer" out of a language ID */ |
| 139 | #define ID2P(id) (VIRT_PTR + id) |
| 140 | |
| 141 | /* resolve a pointer which could be a virtualized ID or a literal */ |
Daniel Stenberg | f981ea9 | 2005-12-05 22:44:42 +0000 | [diff] [blame] | 142 | #define P2STR(p) (char *)((p>=VIRT_PTR && p<=VIRT_PTR+VIRT_SIZE) ? str(p-VIRT_PTR) : p) |
Jörg Hohensohn | b1403ee | 2004-07-23 23:01:20 +0000 | [diff] [blame] | 143 | |
| 144 | /* get the string ID from a virtual pointer, -1 if not virtual */ |
| 145 | #define P2ID(p) ((p>=VIRT_PTR && p<=VIRT_PTR+VIRT_SIZE) ? p-VIRT_PTR : -1) |
| 146 | |
| 147 | |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 148 | struct user_settings |
| 149 | { |
| 150 | /* audio settings */ |
| 151 | |
| 152 | int volume; /* audio output volume: 0-100 0=off 100=max */ |
| 153 | int balance; /* stereo balance: 0-100 0=left 50=bal 100=right */ |
| 154 | int bass; /* bass eq: 0-100 0=off 100=max */ |
| 155 | int treble; /* treble eq: 0-100 0=low 100=high */ |
| 156 | int loudness; /* loudness eq: 0-100 0=off 100=max */ |
Linus Nielsen Feltzing | 94da3b5 | 2004-06-22 12:37:42 +0000 | [diff] [blame] | 157 | int avc; /* auto volume correct: 0=off, 1=20ms, 2=2s 3=4s 4=8s */ |
Jens Arnold | 76b257f | 2005-01-12 00:24:15 +0000 | [diff] [blame] | 158 | int channel_config; /* Stereo, Mono, Custom, Mono left, Mono right, Karaoke */ |
| 159 | int stereo_width; /* 0-255% */ |
Anton Oleynikov | 2654d91 | 2005-12-04 14:33:10 +0000 | [diff] [blame] | 160 | #ifdef HAVE_UDA1380 |
| 161 | int sound_scaling; /* Off, Volume, Bass, Current metric */ |
| 162 | #endif |
Linus Nielsen Feltzing | 7bade1a | 2004-07-06 12:17:14 +0000 | [diff] [blame] | 163 | int mdb_strength; /* 0-127dB */ |
| 164 | int mdb_harmonics; /* 0-100% */ |
| 165 | int mdb_center; /* 20-300Hz */ |
| 166 | int mdb_shape; /* 50-300Hz */ |
| 167 | bool mdb_enable; /* true/false */ |
| 168 | bool superbass; /* true/false */ |
Linus Nielsen Feltzing | afe0da9 | 2002-11-10 23:18:33 +0000 | [diff] [blame] | 169 | |
Jens Arnold | d6c0545 | 2005-08-29 21:15:27 +0000 | [diff] [blame] | 170 | #if CONFIG_CODEC == SWCODEC |
Miika Pekkarinen | e7461b3 | 2005-11-06 16:40:20 +0000 | [diff] [blame] | 171 | int crossfade; /* Enable crossfade (0=off,1=shuffle,2=always) */ |
| 172 | int crossfade_fade_in_delay; /* Fade in delay (0-15s) */ |
| 173 | int crossfade_fade_out_delay; /* Fade out delay (0-15s) */ |
| 174 | int crossfade_fade_in_duration; /* Fade in duration (0-15s) */ |
| 175 | int crossfade_fade_out_duration; /* Fade out duration (0-15s) */ |
| 176 | int crossfade_fade_out_mixmode; /* Fade out mode (0=crossfade,1=mix) */ |
Linus Nielsen Feltzing | 6271b2b | 2005-06-09 09:47:00 +0000 | [diff] [blame] | 177 | #endif |
| 178 | |
Linus Nielsen Feltzing | afe0da9 | 2002-11-10 23:18:33 +0000 | [diff] [blame] | 179 | int rec_quality; /* 0-7 */ |
| 180 | int rec_source; /* 0=mic, 1=line, 2=S/PDIF */ |
| 181 | int rec_frequency; /* 0 = 44.1kHz |
| 182 | 1 = 48kHz |
| 183 | 2 = 32kHz |
| 184 | 3 = 22.05kHz |
| 185 | 4 = 24kHz |
| 186 | 5 = 16kHz */ |
| 187 | int rec_channels; /* 0=Stereo, 1=Mono */ |
| 188 | int rec_mic_gain; /* 0-15 */ |
| 189 | int rec_left_gain; /* 0-15 */ |
| 190 | int rec_right_gain; /* 0-15 */ |
Andy | e6e5496 | 2005-11-12 04:00:56 +0000 | [diff] [blame] | 191 | #ifdef HAVE_UDA1380 |
| 192 | int rec_adc_left_gain; /* -128 .. 48 */ |
| 193 | int rec_adc_right_gain; /* -128 .. 48 */ |
| 194 | #endif |
Linus Nielsen Feltzing | 478da62 | 2003-04-20 22:00:30 +0000 | [diff] [blame] | 195 | bool rec_editable; /* true means that the bit reservoir is off */ |
Björn Stenberg | 56f771e | 2003-06-04 13:48:50 +0000 | [diff] [blame] | 196 | |
| 197 | /* note: timesplit setting is not saved */ |
Björn Stenberg | cd82560 | 2003-06-10 19:24:51 +0000 | [diff] [blame] | 198 | int rec_timesplit; /* 0 = off, |
| 199 | 1 = 00:05, 2 = 00:10, 3 = 00:15, 4 = 00:30 |
| 200 | 5 = 01:00, 6 = 02:00, 7 = 04:00, 8 = 06:00 |
| 201 | 9 = 08:00, 10= 10:00, 11= 12:00, 12= 18:00, |
| 202 | 13= 24:00 */ |
Linus Nielsen Feltzing | 74976c1 | 2003-12-31 03:13:29 +0000 | [diff] [blame] | 203 | |
| 204 | int rec_prerecord_time; /* In seconds, 0-30, 0 means OFF */ |
Linus Nielsen Feltzing | ef7293f | 2004-01-21 14:58:40 +0000 | [diff] [blame] | 205 | int rec_directory; /* 0=base dir, 1=current dir */ |
Christi Scarborough | 8a8bd91 | 2005-02-04 10:37:21 +0000 | [diff] [blame] | 206 | bool rec_startup; /* true means start Rockbox in recording screen */ |
Linus Nielsen Feltzing | d731cdd | 2002-07-25 15:55:22 +0000 | [diff] [blame] | 207 | |
Linus Nielsen Feltzing | 68482bb | 2005-04-04 09:12:12 +0000 | [diff] [blame] | 208 | int rec_start_thres; /* negative: db, positive: % range -87 .. 100 */ |
| 209 | int rec_start_duration; /* index of trig_durations */ |
| 210 | int rec_stop_thres; /* negative: db, positive: % */ |
| 211 | int rec_stop_postrec; /* negative: db, positive: % range -87 .. 100 */ |
| 212 | int rec_stop_gap; /* index of trig_durations */ |
| 213 | int rec_trigger_mode; /* see TRIG_MODE_XXX constants */ |
| 214 | |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 215 | /* device settings */ |
| 216 | |
Björn Stenberg | b107920 | 2003-02-27 14:22:30 +0000 | [diff] [blame] | 217 | int contrast; /* lcd contrast: 0-63 0=low 63=high */ |
| 218 | bool invert; /* invert display */ |
Linus Nielsen Feltzing | 6c2af7c | 2005-09-01 08:04:37 +0000 | [diff] [blame] | 219 | bool invert_cursor; /* invert the current file in dir browser and menu |
| 220 | instead of using the default cursor */ |
Jörg Hohensohn | a5e1d06 | 2003-12-20 10:00:37 +0000 | [diff] [blame] | 221 | bool flip_display; /* turn display (and button layout) by 180 degrees */ |
Linus Nielsen Feltzing | 083a6db | 2002-09-23 11:42:48 +0000 | [diff] [blame] | 222 | int poweroff; /* power off timer */ |
Linus Nielsen Feltzing | afe0da9 | 2002-11-10 23:18:33 +0000 | [diff] [blame] | 223 | int backlight_timeout; /* backlight off timeout: 0-18 0=never, |
| 224 | 1=always, |
| 225 | then according to timeout_values[] */ |
Jens Arnold | a6d409d | 2005-11-23 20:12:33 +0000 | [diff] [blame] | 226 | int backlight_timeout_plugged; |
Daniel Stenberg | 6b569d3 | 2005-11-14 23:37:19 +0000 | [diff] [blame] | 227 | #if CONFIG_BACKLIGHT == BL_IRIVER_H100 |
Jens Arnold | 61b9d34 | 2005-06-20 17:03:09 +0000 | [diff] [blame] | 228 | int backlight_fade_in; /* backlight fade in timing: 0..3 */ |
| 229 | int backlight_fade_out; /* backlight fade in timing: 0..7 */ |
| 230 | #endif |
Uwe Freese | 0bf70e6 | 2002-12-16 22:58:48 +0000 | [diff] [blame] | 231 | int battery_capacity; /* in mAh */ |
Jens Arnold | 91846a1 | 2005-01-30 16:25:46 +0000 | [diff] [blame] | 232 | int battery_type; /* for units which can take multiple types (Ondio). */ |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 233 | |
Linus Nielsen Feltzing | 8782bc8 | 2005-07-01 09:42:39 +0000 | [diff] [blame] | 234 | #ifdef HAVE_SPDIF_POWER |
| 235 | bool spdif_enable; /* S/PDIF power on/off */ |
| 236 | #endif |
Jens Arnold | ec9b202 | 2005-09-10 12:28:16 +0000 | [diff] [blame] | 237 | |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 238 | /* resume settings */ |
| 239 | |
Christi Scarborough | 9e8918b | 2005-06-29 12:23:09 +0000 | [diff] [blame] | 240 | bool resume; /* resume option: 0=off, 1=on */ |
Björn Stenberg | a108ec2 | 2004-01-14 00:13:04 +0000 | [diff] [blame] | 241 | int resume_index; /* index in playlist (-1 for no active resume) */ |
| 242 | int resume_first_index; /* index of first track in playlist */ |
Jens Arnold | ec9b202 | 2005-09-10 12:28:16 +0000 | [diff] [blame] | 243 | unsigned long resume_offset; /* byte offset in mp3 file */ |
Hardeep Sidhu | 58bafee | 2003-12-09 08:18:03 +0000 | [diff] [blame] | 244 | int resume_seed; /* shuffle seed (-1=no resume shuffle 0=sorted |
Björn Stenberg | a4f39a6 | 2004-05-21 20:36:48 +0000 | [diff] [blame] | 245 | >0=shuffled) */ |
Björn Stenberg | c78e1b0 | 2003-01-09 00:55:00 +0000 | [diff] [blame] | 246 | |
Björn Stenberg | dea3122 | 2002-10-08 15:42:40 +0000 | [diff] [blame] | 247 | unsigned char font_file[MAX_FILENAME+1]; /* last font */ |
| 248 | unsigned char wps_file[MAX_FILENAME+1]; /* last wps */ |
| 249 | unsigned char lang_file[MAX_FILENAME+1]; /* last language */ |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 250 | |
| 251 | /* misc options */ |
| 252 | |
Linus Nielsen Feltzing | 0ad617c | 2005-08-21 23:01:12 +0000 | [diff] [blame] | 253 | int repeat_mode; /* 0=off 1=repeat all 2=repeat one 3=shuffle 4=ab */ |
Björn Stenberg | fc53fd7 | 2005-01-17 11:37:36 +0000 | [diff] [blame] | 254 | int dirfilter; /* 0=display all, 1=only supported, 2=only music, |
| 255 | 3=dirs+playlists, 4=ID3 database */ |
Linus Nielsen Feltzing | c132c48 | 2002-07-22 16:39:17 +0000 | [diff] [blame] | 256 | bool sort_case; /* dir sort order: 0=case insensitive, 1=sensitive */ |
Robert Hak | 5a9e892 | 2002-10-26 05:26:23 +0000 | [diff] [blame] | 257 | int volume_type; /* how volume is displayed: 0=graphic, 1=percent */ |
Jens Arnold | 9d42e2b | 2005-01-30 13:48:44 +0000 | [diff] [blame] | 258 | int battery_display; /* how battery is displayed: 0=graphic, 1=percent */ |
Markus Braun | 22a7a2d | 2002-10-14 12:50:20 +0000 | [diff] [blame] | 259 | int timeformat; /* time format: 0=24 hour clock, 1=12 hour clock */ |
Eric Linenberg | 90ca5cf | 2002-09-05 04:47:24 +0000 | [diff] [blame] | 260 | int scroll_speed; /* long texts scrolling speed: 1-30 */ |
Björn Stenberg | 60b356e | 2002-06-27 01:08:11 +0000 | [diff] [blame] | 261 | bool playlist_shuffle; |
Linus Nielsen Feltzing | 78ea93d | 2002-09-18 10:12:16 +0000 | [diff] [blame] | 262 | bool play_selected; /* Plays selected file even in shuffle mode */ |
Eric Linenberg | 7eb2711 | 2002-09-04 03:38:37 +0000 | [diff] [blame] | 263 | int ff_rewind_min_step; /* FF/Rewind minimum step size */ |
Eric Linenberg | 6524076 | 2002-08-28 19:34:07 +0000 | [diff] [blame] | 264 | int ff_rewind_accel; /* FF/Rewind acceleration (in seconds per doubling) */ |
Björn Stenberg | 457b8a0 | 2002-08-26 13:21:14 +0000 | [diff] [blame] | 265 | int disk_spindown; /* time until disk spindown, in seconds (0=off) */ |
Björn Stenberg | 2b77b4f | 2002-11-28 22:46:19 +0000 | [diff] [blame] | 266 | bool disk_poweroff; /* whether to cut disk power after spindown or not */ |
Linus Nielsen Feltzing | b8ff5f8 | 2002-12-05 13:09:51 +0000 | [diff] [blame] | 267 | int buffer_margin; /* MP3 buffer watermark margin, in seconds */ |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 268 | |
Linus Nielsen Feltzing | bb572c4 | 2002-09-27 09:31:31 +0000 | [diff] [blame] | 269 | int peak_meter_release; /* units per read out */ |
| 270 | int peak_meter_hold; /* hold time for peak meter in 1/100 s */ |
| 271 | int peak_meter_clip_hold; /* hold time for clips */ |
Linus Nielsen Feltzing | fd0cc3b | 2002-10-29 12:09:15 +0000 | [diff] [blame] | 272 | bool peak_meter_dbfs; /* show linear or dbfs values */ |
Björn Stenberg | 9c16e12 | 2003-02-14 14:14:55 +0000 | [diff] [blame] | 273 | int peak_meter_min; /* range minimum */ |
| 274 | int peak_meter_max; /* range maximum */ |
Björn Stenberg | b1c429e | 2003-10-17 14:49:00 +0000 | [diff] [blame] | 275 | bool car_adapter_mode; /* 0=off 1=on */ |
Linus Nielsen Feltzing | bb572c4 | 2002-09-27 09:31:31 +0000 | [diff] [blame] | 276 | |
Markus Braun | de8fbf0 | 2002-08-07 10:35:26 +0000 | [diff] [blame] | 277 | /* show status bar */ |
| 278 | bool statusbar; /* 0=hide, 1=show */ |
Daniel Stenberg | 053d904 | 2002-08-22 15:47:30 +0000 | [diff] [blame] | 279 | |
Linus Nielsen Feltzing | 77936e6 | 2004-03-16 13:44:56 +0000 | [diff] [blame] | 280 | /* show button bar */ |
| 281 | bool buttonbar; /* 0=hide, 1=show */ |
| 282 | |
Markus Braun | 000c2db | 2002-08-30 13:49:32 +0000 | [diff] [blame] | 283 | /* show scroll bar */ |
| 284 | bool scrollbar; /* 0=hide, 1=show */ |
| 285 | |
Eric Linenberg | ecca123 | 2002-09-09 14:25:39 +0000 | [diff] [blame] | 286 | /* goto current song when exiting WPS */ |
| 287 | bool browse_current; /* 1=goto current song, |
| 288 | 0=goto previous location */ |
| 289 | |
Björn Stenberg | ae22de2 | 2002-12-02 16:07:56 +0000 | [diff] [blame] | 290 | int runtime; /* current runtime since last charge */ |
| 291 | int topruntime; /* top known runtime */ |
Björn Stenberg | a2e98c1 | 2002-12-12 15:20:37 +0000 | [diff] [blame] | 292 | |
| 293 | int bidir_limit; /* bidir scroll length limit */ |
| 294 | int scroll_delay; /* delay (in 1/10s) before starting scroll */ |
| 295 | int scroll_step; /* pixels to advance per update */ |
Björn Stenberg | a108ec2 | 2004-01-14 00:13:04 +0000 | [diff] [blame] | 296 | |
| 297 | /* auto bookmark settings */ |
| 298 | int autoloadbookmark; /* auto load option: 0=off, 1=ask, 2=on */ |
| 299 | int autocreatebookmark; /* auto create option: 0=off, 1=ask, 2=on */ |
| 300 | int usemrb; /* use MRB list: 0=No, 1=Yes*/ |
Kjell Ericson | 53f156a | 2003-05-22 06:42:14 +0000 | [diff] [blame] | 301 | #ifdef HAVE_LCD_CHARCELLS |
| 302 | int jump_scroll; /* Fast jump when scrolling */ |
Kjell Ericson | 6143eeb | 2003-05-27 12:54:11 +0000 | [diff] [blame] | 303 | int jump_scroll_delay; /* Delay between jump scroll screens */ |
Kjell Ericson | 53f156a | 2003-05-22 06:42:14 +0000 | [diff] [blame] | 304 | #endif |
Björn Stenberg | e2628d9 | 2003-02-14 15:54:52 +0000 | [diff] [blame] | 305 | bool fade_on_stop; /* fade on pause/unpause/stop */ |
Björn Stenberg | 8658752 | 2003-04-23 09:17:34 +0000 | [diff] [blame] | 306 | bool caption_backlight; /* turn on backlight at end and start of track */ |
Linus Nielsen Feltzing | 20d031f | 2003-05-09 16:01:21 +0000 | [diff] [blame] | 307 | |
Jörg Hohensohn | 593cc00 | 2004-09-28 22:13:26 +0000 | [diff] [blame] | 308 | #ifdef CONFIG_TUNER |
Linus Nielsen Feltzing | 20d031f | 2003-05-09 16:01:21 +0000 | [diff] [blame] | 309 | int fm_freq_step; /* Frequency step for manual tuning, in kHz */ |
| 310 | bool fm_force_mono; /* Forces Mono mode if true */ |
| 311 | bool fm_full_range; /* Enables full 10MHz-160MHz range if true, else |
| 312 | only 88MHz-108MHz */ |
Linus Nielsen Feltzing | 3e92dbe | 2004-07-12 13:28:44 +0000 | [diff] [blame] | 313 | int last_frequency; /* Last frequency for resuming, in FREQ_STEP units, |
| 314 | relative to MIN_FREQ */ |
Linus Nielsen Feltzing | 20d031f | 2003-05-09 16:01:21 +0000 | [diff] [blame] | 315 | #endif |
| 316 | |
| 317 | int max_files_in_dir; /* Max entries in directory (file browser) */ |
| 318 | int max_files_in_playlist; /* Max entries in playlist */ |
Björn Stenberg | d1a6fa1 | 2003-06-05 09:38:26 +0000 | [diff] [blame] | 319 | bool show_icons; /* 0=hide 1=show */ |
Hardeep Sidhu | 11e7ad5 | 2003-07-02 15:54:44 +0000 | [diff] [blame] | 320 | int recursive_dir_insert; /* should directories be inserted recursively */ |
Linus Nielsen Feltzing | c22b411 | 2003-11-03 23:36:36 +0000 | [diff] [blame] | 321 | |
| 322 | bool line_in; /* false=off, true=active */ |
Hardeep Sidhu | 107ebc5 | 2004-01-26 17:05:21 +0000 | [diff] [blame] | 323 | |
Linus Nielsen Feltzing | 4cdcbb9 | 2004-07-27 19:20:51 +0000 | [diff] [blame] | 324 | bool id3_v1_first; /* true = ID3V1 has prio over ID3V2 tag */ |
| 325 | |
Hardeep Sidhu | 107ebc5 | 2004-01-26 17:05:21 +0000 | [diff] [blame] | 326 | /* playlist viewer settings */ |
| 327 | bool playlist_viewer_icons; /* display icons on viewer */ |
| 328 | bool playlist_viewer_indices; /* display playlist indices on viewer */ |
| 329 | int playlist_viewer_track_display; /* how to display tracks in viewer */ |
Jörg Hohensohn | 3aa99e1 | 2004-03-27 00:11:01 +0000 | [diff] [blame] | 330 | |
| 331 | /* voice UI settings */ |
| 332 | bool talk_menu; /* enable voice UI */ |
| 333 | int talk_dir; /* talkbox mode: 0=off 1=number 2=clip@enter 3=clip@hover */ |
| 334 | int talk_file; /* voice filename mode: 0=off, 1=number, other t.b.d. */ |
Jörg Hohensohn | 5c8a2f5 | 2004-06-22 09:16:44 +0000 | [diff] [blame] | 335 | |
| 336 | /* file browser sorting */ |
| 337 | int sort_file; /* 0=alpha, 1=date, 2=date (new first), 3=type */ |
| 338 | int sort_dir; /* 0=alpha, 1=date (old first), 2=date (new first) */ |
Christian Gmeiner | 7c1879b | 2005-04-15 12:08:49 +0000 | [diff] [blame] | 339 | |
| 340 | #ifdef HAVE_REMOTE_LCD |
Christi Scarborough | be78945 | 2005-07-05 22:27:54 +0000 | [diff] [blame] | 341 | /* remote lcd */ |
Christian Gmeiner | 7c1879b | 2005-04-15 12:08:49 +0000 | [diff] [blame] | 342 | int remote_contrast; /* lcd contrast: 0-63 0=low 63=high */ |
| 343 | bool remote_invert; /* invert display */ |
| 344 | bool remote_flip_display; /* turn display (and button layout) by 180 degrees */ |
| 345 | int remote_backlight_timeout; /* backlight off timeout: 0-18 0=never, |
| 346 | 1=always, |
| 347 | then according to timeout_values[] */ |
Jens Arnold | a6d409d | 2005-11-23 20:12:33 +0000 | [diff] [blame] | 348 | int remote_backlight_timeout_plugged; |
Jens Arnold | b51f7df | 2005-11-21 23:55:39 +0000 | [diff] [blame] | 349 | bool remote_caption_backlight; /* turn on backlight at end and start of track */ |
| 350 | #ifdef HAVE_REMOTE_LCD_TICKING |
Miika Pekkarinen | 05fdb1a | 2005-11-19 07:58:20 +0000 | [diff] [blame] | 351 | bool remote_reduce_ticking; /* 0=normal operation, |
| 352 | 1=EMI reduce on with cost more CPU. */ |
Christian Gmeiner | 7c1879b | 2005-04-15 12:08:49 +0000 | [diff] [blame] | 353 | #endif |
Miika Pekkarinen | 93d8ca5 | 2005-11-19 09:26:02 +0000 | [diff] [blame] | 354 | #endif |
Christian Gmeiner | 7c1879b | 2005-04-15 12:08:49 +0000 | [diff] [blame] | 355 | |
Hardeep Sidhu | 71d2281 | 2005-07-01 11:25:16 +0000 | [diff] [blame] | 356 | bool next_folder; /* move to next folder */ |
Jens Arnold | 8102f3d | 2005-07-02 10:50:42 +0000 | [diff] [blame] | 357 | bool runtimedb; /* runtime database active? */ |
Magnus Holmgren | 4a53787 | 2005-07-24 15:32:28 +0000 | [diff] [blame] | 358 | |
Jens Arnold | d6c0545 | 2005-08-29 21:15:27 +0000 | [diff] [blame] | 359 | #if CONFIG_CODEC == SWCODEC |
Magnus Holmgren | 4a53787 | 2005-07-24 15:32:28 +0000 | [diff] [blame] | 360 | bool replaygain; /* enable replaygain */ |
Magnus Holmgren | 4a53787 | 2005-07-24 15:32:28 +0000 | [diff] [blame] | 361 | bool replaygain_noclip; /* scale to prevent clips */ |
Magnus Holmgren | 4b711c2 | 2005-09-24 15:22:48 +0000 | [diff] [blame] | 362 | int replaygain_type; /* 0=track gain, 1=album gain, 2=track gain if |
| 363 | shuffle is on, album gain otherwise */ |
Magnus Holmgren | 5a8eac1 | 2005-08-11 18:56:20 +0000 | [diff] [blame] | 364 | int replaygain_preamp; /* scale replaygained tracks by this */ |
Miika Pekkarinen | 9d7fd18 | 2005-08-20 21:17:41 +0000 | [diff] [blame] | 365 | int beep; /* system beep volume when changing tracks etc. */ |
Marcoen Hirschberg | e13fad3 | 2005-11-14 21:56:56 +0000 | [diff] [blame] | 366 | bool crossfeed; /* enable crossfeed */ |
Magnus Holmgren | 4a53787 | 2005-07-24 15:32:28 +0000 | [diff] [blame] | 367 | #endif |
Miika Pekkarinen | ab78b04 | 2005-10-07 17:38:05 +0000 | [diff] [blame] | 368 | #ifdef HAVE_DIRCACHE |
| 369 | bool dircache; /* enable directory cache */ |
| 370 | int dircache_size; /* directory cache structure last size, 22 bits */ |
| 371 | #endif |
Marcoen Hirschberg | b0fee17 | 2005-12-06 13:27:15 +0000 | [diff] [blame^] | 372 | int default_codepage; /* set default codepage for tag conversion */ |
Christi Scarborough | 4c0b83f | 2005-11-17 20:14:59 +0000 | [diff] [blame] | 373 | #ifdef HAVE_REMOTE_LCD |
| 374 | unsigned char rwps_file[MAX_FILENAME+1]; /* last remote-wps */ |
| 375 | #endif |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 376 | }; |
| 377 | |
Björn Stenberg | 26712d5 | 2003-06-05 11:11:10 +0000 | [diff] [blame] | 378 | enum optiontype { INT, BOOL }; |
| 379 | |
Jörg Hohensohn | 42ffbf9 | 2004-03-15 08:27:51 +0000 | [diff] [blame] | 380 | struct opt_items { |
Jens Arnold | abe77a1 | 2004-08-01 21:50:57 +0000 | [diff] [blame] | 381 | unsigned const char* string; |
Jean-Philippe Bernardy | 45e0de3 | 2005-02-12 11:26:36 +0000 | [diff] [blame] | 382 | long voice_id; |
Jörg Hohensohn | 42ffbf9 | 2004-03-15 08:27:51 +0000 | [diff] [blame] | 383 | }; |
| 384 | |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 385 | /* prototypes */ |
| 386 | |
Jens Arnold | c12e87d | 2004-09-28 18:09:10 +0000 | [diff] [blame] | 387 | void settings_calc_config_sector(void); |
Björn Stenberg | 6b25f79 | 2002-07-15 11:02:12 +0000 | [diff] [blame] | 388 | int settings_save(void); |
Jörg Hohensohn | 6ff6d21 | 2004-06-19 15:50:02 +0000 | [diff] [blame] | 389 | void settings_load(int which); |
Björn Stenberg | 6b25f79 | 2002-07-15 11:02:12 +0000 | [diff] [blame] | 390 | void settings_reset(void); |
Linus Nielsen Feltzing | 7bade1a | 2004-07-06 12:17:14 +0000 | [diff] [blame] | 391 | void sound_settings_apply(void); |
Linus Nielsen Feltzing | 40ffbb1 | 2002-10-03 09:31:01 +0000 | [diff] [blame] | 392 | void settings_apply(void); |
Linus Nielsen Feltzing | fd0cc3b | 2002-10-29 12:09:15 +0000 | [diff] [blame] | 393 | void settings_apply_pm_range(void); |
Björn Stenberg | 6b25f79 | 2002-07-15 11:02:12 +0000 | [diff] [blame] | 394 | void settings_display(void); |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 395 | |
Jens Arnold | 8fb3361 | 2004-08-18 01:09:31 +0000 | [diff] [blame] | 396 | bool settings_load_config(const char* file); |
Björn Stenberg | c5aaab4 | 2003-03-10 16:31:02 +0000 | [diff] [blame] | 397 | bool settings_save_config(void); |
Jens Arnold | 8fb3361 | 2004-08-18 01:09:31 +0000 | [diff] [blame] | 398 | bool set_bool_options(const char* string, bool* variable, |
| 399 | const char* yes_str, int yes_voice, |
| 400 | const char* no_str, int no_voice, |
Jörg Hohensohn | 42ffbf9 | 2004-03-15 08:27:51 +0000 | [diff] [blame] | 401 | void (*function)(bool)); |
Justin Heiner | e4a2761 | 2002-09-05 01:20:10 +0000 | [diff] [blame] | 402 | |
Jens Arnold | 8fb3361 | 2004-08-18 01:09:31 +0000 | [diff] [blame] | 403 | bool set_bool(const char* string, bool* variable ); |
| 404 | bool set_option(const char* string, void* variable, enum optiontype type, |
Jörg Hohensohn | b1403ee | 2004-07-23 23:01:20 +0000 | [diff] [blame] | 405 | const struct opt_items* options, int numoptions, void (*function)(int)); |
Daniel Stenberg | f981ea9 | 2005-12-05 22:44:42 +0000 | [diff] [blame] | 406 | bool set_int(const unsigned char* string, const char* unit, int voice_unit, |
| 407 | int* variable, |
Magnus Holmgren | 5a8eac1 | 2005-08-11 18:56:20 +0000 | [diff] [blame] | 408 | void (*function)(int), int step, int min, int max, |
| 409 | void (*formatter)(char*, int, int, const char*) ); |
Jens Arnold | 8fb3361 | 2004-08-18 01:09:31 +0000 | [diff] [blame] | 410 | bool set_time_screen(const char* string, struct tm *tm); |
Björn Stenberg | a108ec2 | 2004-01-14 00:13:04 +0000 | [diff] [blame] | 411 | int read_line(int fd, char* buffer, int buffer_size); |
Björn Stenberg | bda4ec1 | 2003-02-17 09:53:11 +0000 | [diff] [blame] | 412 | void set_file(char* filename, char* setting, int maxlen); |
Björn Stenberg | 60b356e | 2002-06-27 01:08:11 +0000 | [diff] [blame] | 413 | |
Linus Nielsen Feltzing | aaa99e7 | 2003-11-20 00:33:43 +0000 | [diff] [blame] | 414 | unsigned int rec_timesplit_seconds(void); |
Linus Nielsen Feltzing | 68482bb | 2005-04-04 09:12:12 +0000 | [diff] [blame] | 415 | void settings_apply_trigger(void); |
Linus Nielsen Feltzing | aaa99e7 | 2003-11-20 00:33:43 +0000 | [diff] [blame] | 416 | |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 417 | /* global settings */ |
| 418 | extern struct user_settings global_settings; |
Heikki Hannikainen | 4b0e8b0 | 2002-08-30 13:24:03 +0000 | [diff] [blame] | 419 | /* name of directory where configuration, fonts and other data |
| 420 | * files are stored */ |
Björn Stenberg | fb06748 | 2003-10-17 13:54:48 +0000 | [diff] [blame] | 421 | extern long lasttime; |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 422 | |
Linus Nielsen Feltzing | ef7293f | 2004-01-21 14:58:40 +0000 | [diff] [blame] | 423 | /* Recording base directory */ |
Jens Arnold | abe77a1 | 2004-08-01 21:50:57 +0000 | [diff] [blame] | 424 | extern const char rec_base_directory[]; |
Linus Nielsen Feltzing | ef7293f | 2004-01-21 14:58:40 +0000 | [diff] [blame] | 425 | |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 426 | /* system defines */ |
| 427 | |
Linus Nielsen Feltzing | 638184f | 2002-08-13 11:10:11 +0000 | [diff] [blame] | 428 | #ifdef HAVE_LCD_CHARCELLS |
Björn Stenberg | cd7691d | 2002-08-13 17:16:09 +0000 | [diff] [blame] | 429 | #define MAX_CONTRAST_SETTING 31 |
Björn Stenberg | 677c5cc | 2002-08-13 16:00:10 +0000 | [diff] [blame] | 430 | #define DEFAULT_CONTRAST_SETTING 30 |
Linus Nielsen Feltzing | 638184f | 2002-08-13 11:10:11 +0000 | [diff] [blame] | 431 | #else |
Björn Stenberg | cd7691d | 2002-08-13 17:16:09 +0000 | [diff] [blame] | 432 | #define MAX_CONTRAST_SETTING 63 |
Eric Linenberg | 1ff2543 | 2002-09-04 04:25:20 +0000 | [diff] [blame] | 433 | #define DEFAULT_CONTRAST_SETTING 38 |
Linus Nielsen Feltzing | 638184f | 2002-08-13 11:10:11 +0000 | [diff] [blame] | 434 | #endif |
Björn Stenberg | cd7691d | 2002-08-13 17:16:09 +0000 | [diff] [blame] | 435 | #define MIN_CONTRAST_SETTING 5 |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 436 | |
Jörg Hohensohn | 6ff6d21 | 2004-06-19 15:50:02 +0000 | [diff] [blame] | 437 | /* argument bits for settings_load() */ |
| 438 | #define SETTINGS_RTC 1 /* only the settings from the RTC nonvolatile RAM */ |
| 439 | #define SETTINGS_HD 2 /* only the settings fron the disk sector */ |
| 440 | #define SETTINGS_ALL 3 /* both */ |
| 441 | |
Björn Stenberg | a6d0abb | 2002-10-04 08:48:20 +0000 | [diff] [blame] | 442 | /* repeat mode options */ |
Linus Nielsen Feltzing | 0ad617c | 2005-08-21 23:01:12 +0000 | [diff] [blame] | 443 | enum |
| 444 | { |
| 445 | REPEAT_OFF, |
| 446 | REPEAT_ALL, |
| 447 | REPEAT_ONE, |
| 448 | REPEAT_SHUFFLE, |
| 449 | #ifdef AB_REPEAT_ENABLE |
| 450 | REPEAT_AB, |
| 451 | #endif |
| 452 | NUM_REPEAT_MODES |
| 453 | }; |
Björn Stenberg | a6d0abb | 2002-10-04 08:48:20 +0000 | [diff] [blame] | 454 | |
Björn Stenberg | a7dcf91 | 2002-09-24 19:12:09 +0000 | [diff] [blame] | 455 | /* dir filter options */ |
Björn Stenberg | de5477c | 2003-09-29 21:26:53 +0000 | [diff] [blame] | 456 | /* Note: Any new filter modes need to be added before NUM_FILTER_MODES. |
| 457 | * Any new rockbox browse filter modes (accessible through the menu) |
| 458 | * must be added after NUM_FILTER_MODES. */ |
Björn Stenberg | fc53fd7 | 2005-01-17 11:37:36 +0000 | [diff] [blame] | 459 | enum { SHOW_ALL, SHOW_SUPPORTED, SHOW_MUSIC, SHOW_PLAYLIST, SHOW_ID3DB, |
| 460 | NUM_FILTER_MODES, |
Christi Scarborough | 4c0b83f | 2005-11-17 20:14:59 +0000 | [diff] [blame] | 461 | SHOW_WPS, SHOW_RWPS, SHOW_CFG, SHOW_LNG, SHOW_MOD, SHOW_FONT, SHOW_PLUGINS}; |
Björn Stenberg | a7dcf91 | 2002-09-24 19:12:09 +0000 | [diff] [blame] | 462 | |
Hardeep Sidhu | 11e7ad5 | 2003-07-02 15:54:44 +0000 | [diff] [blame] | 463 | /* recursive dir insert options */ |
| 464 | enum { RECURSE_OFF, RECURSE_ON, RECURSE_ASK }; |
| 465 | |
Magnus Holmgren | 4b711c2 | 2005-09-24 15:22:48 +0000 | [diff] [blame] | 466 | /* replaygain types */ |
| 467 | enum { REPLAYGAIN_TRACK = 0, REPLAYGAIN_ALBUM, REPLAYGAIN_SHUFFLE }; |
| 468 | |
Björn Stenberg | f80d8a70 | 2002-06-27 00:20:00 +0000 | [diff] [blame] | 469 | #endif /* __SETTINGS_H__ */ |