aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/setting.h
blob: 2d8d163938ed29b83d7c7923d0d0d05bac713d9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
/* config.h - 2000/06/21 */
/*
 *  EasyTAG - Tag editor for MP3 and Ogg Vorbis files
 *  Copyright (C) 2000-2003  Jerome Couderc <easytag@gmail.com>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */


#ifndef __CONFIG_H__
#define __CONFIG_H__

#include <gtk/gtk.h>

/***************
 * Declaration *
 ***************/

typedef enum
{
    CV_TYPE_STRING=0,
    CV_TYPE_INT,
    CV_TYPE_BOOL
} Config_Variable_Type;


typedef struct _tConfigVariable tConfigVariable;
struct _tConfigVariable
{
    char *name;                 /* Variable name written in config file */
    Config_Variable_Type type;  /* Variable type: Integer, Alphabetic, ... */
    void *pointer;              /* Pointer to our variable */
};


/*
 * Config varariables
 */
/* Common */
gint    LOAD_ON_STARTUP;
gchar  *DEFAULT_PATH_TO_MP3;
gint    BROWSER_LINE_STYLE;
gint    BROWSER_EXPANDER_STYLE;
gint    BROWSE_SUBDIR;
gint    BROWSE_HIDDEN_DIR;
gint    OPEN_SELECTED_BROWSER_NODE;

/* Misc */
// User Interface
gint    SET_MAIN_WINDOW_POSITION;
gint    MAIN_WINDOW_X;
gint    MAIN_WINDOW_Y;
gint    MAIN_WINDOW_HEIGHT;
gint    MAIN_WINDOW_WIDTH;
gint    PANE_HANDLE_POSITION1;
gint    PANE_HANDLE_POSITION2;
gint    PANE_HANDLE_POSITION3;
gint    PANE_HANDLE_POSITION4;
gint    SHOW_HEADER_INFO;

gint    CHANGED_FILES_DISPLAYED_TO_RED;
gint    CHANGED_FILES_DISPLAYED_TO_BOLD;

gint    SORTING_FILE_MODE;
gint    SORTING_FILE_CASE_SENSITIVE;

gint    MESSAGE_BOX_POSITION_NONE;
gint    MESSAGE_BOX_POSITION_CENTER;
gint    MESSAGE_BOX_POSITION_MOUSE;
gint    MESSAGE_BOX_POSITION_CENTER_ON_PARENT;

gchar  *AUDIO_FILE_PLAYER;

/* File Settings */
gint    REPLACE_ILLEGAL_CHARACTERS_IN_FILENAME;
gint    FILENAME_EXTENSION_LOWER_CASE;
gint    FILENAME_EXTENSION_UPPER_CASE;
gint    FILENAME_EXTENSION_NO_CHANGE;
gint    PRESERVE_MODIFICATION_TIME;
gint    UPDATE_PARENT_DIRECTORY_MODIFICATION_TIME;

gint    FILENAME_CHARACTER_SET_OTHER;
gint    FILENAME_CHARACTER_SET_APPROXIMATE;
gint    FILENAME_CHARACTER_SET_DISCARD;

/* Tag Settings */
gint    WRITE_ID3_TAGS_IN_FLAC_FILE;
gint    STRIP_TAG_WHEN_EMPTY_FIELDS;
gint    CONVERT_OLD_ID3V2_TAG_VERSION;

gint    FILE_WRITING_ID3V2_VERSION_4;
gint    USE_NON_STANDARD_ID3_READING_CHARACTER_SET;
gchar  *FILE_READING_ID3V1V2_CHARACTER_SET;

gint    FILE_WRITING_ID3V2_WRITE_TAG;
gint    FILE_WRITING_ID3V2_USE_CRC32;
gint    FILE_WRITING_ID3V2_USE_COMPRESSION;
gint    FILE_WRITING_ID3V2_USE_UNICODE_CHARACTER_SET;
gchar  *FILE_WRITING_ID3V2_UNICODE_CHARACTER_SET;
gchar  *FILE_WRITING_ID3V2_NO_UNICODE_CHARACTER_SET;
gint    FILE_WRITING_ID3V2_ICONV_OPTIONS_NO;
gint    FILE_WRITING_ID3V2_ICONV_OPTIONS_TRANSLIT;
gint    FILE_WRITING_ID3V2_ICONV_OPTIONS_IGNORE;

gint    FILE_WRITING_ID3V1_WRITE_TAG;
gchar  *FILE_WRITING_ID3V1_CHARACTER_SET;
gint    FILE_WRITING_ID3V1_ICONV_OPTIONS_NO;
gint    FILE_WRITING_ID3V1_ICONV_OPTIONS_TRANSLIT;
gint    FILE_WRITING_ID3V1_ICONV_OPTIONS_IGNORE;

gint    DATE_AUTO_COMPLETION;
gint    NUMBER_TRACK_FORMATED;
gint    NUMBER_TRACK_FORMATED_SPIN_BUTTON;
gint    OGG_TAG_WRITE_XMMS_COMMENT;
gint    SET_FOCUS_TO_SAME_TAG_FIELD;
gint    SET_FOCUS_TO_FIRST_TAG_FIELD;
gint    LOG_MAX_LINES;
gint    SHOW_LOG_VIEW;


/* Scanner */
gint    SCANNER_TYPE;
gint    SCAN_MASK_EDITOR_BUTTON;
gint    SCAN_LEGEND_BUTTON;
gint    FTS_CONVERT_UNDERSCORE_AND_P20_INTO_SPACE;
gint    FTS_CONVERT_SPACE_INTO_UNDERSCORE;
gint    RFS_CONVERT_UNDERSCORE_AND_P20_INTO_SPACE;
gint    RFS_CONVERT_SPACE_INTO_UNDERSCORE;
gint    PFS_DONT_UPPER_SOME_WORDS;
gint    OVERWRITE_TAG_FIELD;
gint    SET_DEFAULT_COMMENT;
gchar  *DEFAULT_COMMENT;
gint    SET_CRC32_COMMENT;
gint    OPEN_SCANNER_WINDOW_ON_STARTUP;
gint    SCANNER_WINDOW_ON_TOP;
gint    SET_SCANNER_WINDOW_POSITION;
gint    SCANNER_WINDOW_X;
gint    SCANNER_WINDOW_Y;

/* Confirmation */
gint    CONFIRM_BEFORE_EXIT;
gint    CONFIRM_WRITE_TAG;
gint    CONFIRM_RENAME_FILE;
gint    CONFIRM_WRITE_PLAYLIST;
gint    CONFIRM_DELETE_FILE;

/* Scanner window */
gint    PROCESS_FILENAME_FIELD;
gint    PROCESS_TITLE_FIELD;
gint    PROCESS_ARTIST_FIELD;
gint    PROCESS_ALBUM_ARTIST_FIELD;
gint    PROCESS_ALBUM_FIELD;
gint    PROCESS_GENRE_FIELD;
gint    PROCESS_COMMENT_FIELD;
gint    PROCESS_COMPOSER_FIELD;
gint    PROCESS_ORIG_ARTIST_FIELD;
gint    PROCESS_COPYRIGHT_FIELD;
gint    PROCESS_URL_FIELD;
gint    PROCESS_ENCODED_BY_FIELD;
gchar  *PROCESS_FIELDS_CONVERT_FROM;
gchar  *PROCESS_FIELDS_CONVERT_TO;
gint    PF_CONVERT_INTO_SPACE;
gint    PF_CONVERT_SPACE;
gint    PF_CONVERT;
gint    PF_CONVERT_ALL_UPPERCASE;
gint    PF_CONVERT_ALL_DOWNCASE;
gint    PF_CONVERT_FIRST_LETTER_UPPERCASE;
gint    PF_CONVERT_FIRST_LETTERS_UPPERCASE;
gint    PF_DETECT_ROMAN_NUMERALS;
gint    PF_REMOVE_SPACE;
gint    PF_INSERT_SPACE;
gint    PF_ONLY_ONE_SPACE;

/* Playlist window */
gchar  *PLAYLIST_NAME;
gint    PLAYLIST_USE_MASK_NAME;
gint    PLAYLIST_USE_DIR_NAME;
gint    PLAYLIST_ONLY_SELECTED_FILES;
gint    PLAYLIST_FULL_PATH;
gint    PLAYLIST_RELATIVE_PATH;
gint    PLAYLIST_CREATE_IN_PARENT_DIR;
gint    PLAYLIST_USE_DOS_SEPARATOR;
gint    PLAYLIST_CONTENT_NONE;
gint    PLAYLIST_CONTENT_FILENAME;
gint    PLAYLIST_CONTENT_MASK;
gchar  *PLAYLIST_CONTENT_MASK_VALUE;

gint    PLAYLIST_WINDOW_X;
gint    PLAYLIST_WINDOW_Y;
gint    PLAYLIST_WINDOW_WIDTH;
gint    PLAYLIST_WINDOW_HEIGHT;

/* "Load filenames from txt" window */
gint    LOAD_FILE_RUN_SCANNER;

gint    LOAD_FILE_WINDOW_X;
gint    LOAD_FILE_WINDOW_Y;
gint    LOAD_FILE_WINDOW_WIDTH;
gint    LOAD_FILE_WINDOW_HEIGHT;

/* CDDB in preferences window */
gchar  *CDDB_SERVER_NAME_AUTOMATIC_SEARCH;
gint    CDDB_SERVER_PORT_AUTOMATIC_SEARCH;
gchar  *CDDB_SERVER_CGI_PATH_AUTOMATIC_SEARCH;
gchar  *CDDB_SERVER_NAME_AUTOMATIC_SEARCH2;
gint    CDDB_SERVER_PORT_AUTOMATIC_SEARCH2;
gchar  *CDDB_SERVER_CGI_PATH_AUTOMATIC_SEARCH2;
gchar  *CDDB_SERVER_NAME_MANUAL_SEARCH;
gint    CDDB_SERVER_PORT_MANUAL_SEARCH;
gchar  *CDDB_SERVER_CGI_PATH_MANUAL_SEARCH;
gchar  *CDDB_LOCAL_PATH;
gint    CDDB_USE_PROXY;
gchar  *CDDB_PROXY_NAME;
gint    CDDB_PROXY_PORT;
gchar  *CDDB_PROXY_USER_NAME;
gchar  *CDDB_PROXY_USER_PASSWORD;

gint    SET_CDDB_WINDOW_POSITION;
gint    CDDB_WINDOW_X;
gint    CDDB_WINDOW_Y;
gint    CDDB_WINDOW_HEIGHT;
gint    CDDB_WINDOW_WIDTH;
gint    CDDB_PANE_HANDLE_POSITION;

gint    CDDB_FOLLOW_FILE;
gint    CDDB_USE_DLM;
gint    CDDB_USE_LOCAL_ACCESS;

/* CDDB window */
gint    CDDB_SEARCH_IN_ALL_FIELDS;
gint    CDDB_SEARCH_IN_ARTIST_FIELD;
gint    CDDB_SEARCH_IN_TITLE_FIELD;
gint    CDDB_SEARCH_IN_TRACK_NAME_FIELD;
gint    CDDB_SEARCH_IN_OTHER_FIELD;

gint    CDDB_SHOW_CATEGORIES;

gint    CDDB_SEARCH_IN_ALL_CATEGORIES;
gint    CDDB_SEARCH_IN_BLUES_CATEGORY;
gint    CDDB_SEARCH_IN_CLASSICAL_CATEGORY;
gint    CDDB_SEARCH_IN_COUNTRY_CATEGORY;
gint    CDDB_SEARCH_IN_FOLK_CATEGORY;
gint    CDDB_SEARCH_IN_JAZZ_CATEGORY;
gint    CDDB_SEARCH_IN_MISC_CATEGORY;
gint    CDDB_SEARCH_IN_NEWAGE_CATEGORY;
gint    CDDB_SEARCH_IN_REGGAE_CATEGORY;
gint    CDDB_SEARCH_IN_ROCK_CATEGORY;
gint    CDDB_SEARCH_IN_SOUNDTRACK_CATEGORY;

gint    CDDB_SET_TO_ALL_FIELDS;
gint    CDDB_SET_TO_TITLE;
gint    CDDB_SET_TO_ARTIST;
gint    CDDB_SET_TO_ALBUM;
gint    CDDB_SET_TO_YEAR;
gint    CDDB_SET_TO_TRACK;
gint    CDDB_SET_TO_TRACK_TOTAL;
gint    CDDB_SET_TO_GENRE;
gint    CDDB_SET_TO_FILE_NAME;

gint    CDDB_RUN_SCANNER;

/* Search Window */
gint    SET_SEARCH_WINDOW_POSITION;
gint    SEARCH_WINDOW_X;
gint    SEARCH_WINDOW_Y;
gint    SEARCH_WINDOW_HEIGHT;
gint    SEARCH_WINDOW_WIDTH;
gint    SEARCH_IN_FILENAME;
gint    SEARCH_IN_TAG;
gint    SEARCH_CASE_SENSITIVE;

/* Default mask */
gchar  *SCAN_TAG_DEFAULT_MASK;
gchar  *RENAME_FILE_DEFAULT_MASK;
gchar  *RENAME_DIRECTORY_DEFAULT_MASK;
gint    RENAME_DIRECTORY_WITH_MASK;


/* Other parameters */
gint    OPTIONS_NOTEBOOK_PAGE;
gint    OPTIONS_WINDOW_HEIGHT;
gint    OPTIONS_WINDOW_WIDTH;



/**************
 * Prototypes *
 **************/

void Init_Config_Variables (void);
void Read_Config           (void);
void Display_Config        (void);

void Apply_Changes_Of_Preferences_Window (void);
void Apply_Changes_Of_UI                 (void);
void Save_Changes_Of_Preferences_Window  (void);
void Save_Changes_Of_UI                  (void);
void Save_Config_To_File                 (void);

gboolean Create_Easytag_Directory (void);
gboolean Setting_Create_Files     (void);


/* MasksList */
void Load_Scan_Tag_Masks_List (GtkListStore *liststore, gint colnum, gchar **fallback);
void Save_Scan_Tag_Masks_List (GtkListStore *liststore, gint colnum);

/* RenameFileMasksList */
void Load_Rename_File_Masks_List (GtkListStore *liststore, gint colnum, gchar **fallback);
void Save_Rename_File_Masks_List (GtkListStore *liststore, gint colnum);

/* RenameDirectoryMasksList 'RenameDirectoryMaskCombo' combobox */
void Load_Rename_Directory_Masks_List (GtkListStore *liststore, gint colnum, gchar **fallback);
void Save_Rename_Directory_Masks_List (GtkListStore *liststore, gint colnum);

/* 'DefaultPathToMp3' combobox */
void Load_Default_Path_To_MP3_List (GtkListStore *liststore, gint colnum);
void Save_Default_Path_To_MP3_List (GtkListStore *liststore, gint colnum);

/* 'DefaultComment' combobox */
void Load_Default_Tag_Comment_Text_List (GtkListStore *liststore, gint colnum);
void Save_Default_Tag_Comment_Text_List (GtkListStore *liststore, gint colnum);

/* 'BrowserEntry' combobox */
void Load_Path_Entry_List (GtkListStore *liststore, gint colnum);
void Save_Path_Entry_List (GtkListStore *liststore, gint colnum);

/* 'PlayListNameEntry' combobox */
void Load_Play_List_Name_List (GtkListStore *liststore, gint colnum);
void Save_Play_List_Name_List (GtkListStore *liststore, gint colnum);

/* Run Program combobox (tree browser) */
void Load_Run_Program_With_Directory_List (GtkListStore *liststore, gint colnum);
void Save_Run_Program_With_Directory_List (GtkListStore *liststore, gint colnum);

/* Run Program combobox (file browser) */
void Load_Run_Program_With_File_List (GtkListStore *liststore, gint colnum);
void Save_Run_Program_With_File_List (GtkListStore *liststore, gint colnum);

/* 'FilePlayerEntry' combobox */
void Load_Audio_File_Player_List (GtkListStore *liststore, gint colnum);
void Save_Audio_File_Player_List (GtkListStore *liststore, gint colnum);

/* 'SearchStringEntry' combobox */
void Load_Search_File_List (GtkListStore *liststore, gint colnum);
void Save_Search_File_List (GtkListStore *liststore, gint colnum);

/* 'FileToLoad' combobox */
void Load_File_To_Load_List (GtkListStore *liststore, gint colnum);
void Save_File_To_Load_List (GtkListStore *liststore, gint colnum);

/* 'PlayListContentMaskEntry' combobox */
void Load_Playlist_Content_Mask_List (GtkListStore *liststore, gint colnum);
void Save_Playlist_Content_Mask_List (GtkListStore *liststore, gint colnum);

/* 'CddbSearchStringEntry' combobox */
void Load_Cddb_Search_String_List (GtkListStore *liststore, gint colnum);
void Save_Cddb_Search_String_List (GtkListStore *liststore, gint colnum);

/* 'CddbSearchStringInResultEntry' combobox */
void Load_Cddb_Search_String_In_Result_List (GtkListStore *liststore, gint colnum);
void Save_Cddb_Search_String_In_Result_List (GtkListStore *liststore, gint colnum);

/* 'CddbLocalPath' combobox */
void Load_Cddb_Local_Path_List (GtkListStore *liststore, gint colnum);
void Save_Cddb_Local_Path_List (GtkListStore *liststore, gint colnum);



#endif /* __CONFIG_H__ */