1 /*
2  *  Copyright (C) 2005 Marc Pavot <marc.pavot@gmail.com>
3  *
4  *  This program is free software; you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation; either version 2, or (at your option)
7  *  any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program; if not, write to the Free Software
16  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17  *
18  */
19 
20 #ifndef __ARIO_PREFERENCES_H
21 #define __ARIO_PREFERENCES_H
22 
23 /* Define if Ario must autoconnect to server or not */
24 #define PREF_AUTOCONNECT                        "autoconnect"
25 #define PREF_AUTOCONNECT_DEFAULT                TRUE
26 
27 /* When enabled, ario hide the covers in the albums treeview */
28 #define PREF_COVER_TREE_HIDDEN                  "ario_cover_tree_hidden"
29 #define PREF_COVER_TREE_HIDDEN_DEFAULT          FALSE
30 
31 /* If enabled, Ario will automaticaly get an album cover when a song is played */
32 #define PREF_AUTOMATIC_GET_COVER                "automatic_get_cover"
33 #define PREF_AUTOMATIC_GET_COVER_DEFAULT        TRUE
34 
35 /* Define if Ario must use a proxy for remote connections */
36 #define PREF_USE_PROXY                          "use_proxy"
37 #define PREF_USE_PROXY_DEFAULT                  FALSE
38 
39 /* Define the address of the proxy */
40 #define PREF_PROXY_ADDRESS                      "proxy_address"
41 #define PREF_PROXY_ADDRESS_DEFAULT              "192.168.0.1"
42 
43 /* Define the port of the proxy */
44 #define PREF_PROXY_PORT                         "proxy_port"
45 #define PREF_PROXY_PORT_DEFAULT                 8080
46 
47 /* Define if the view tabs are shown */
48 #define PREF_SHOW_TABS                          "show_tabs"
49 #define PREF_SHOW_TABS_DEFAULT                  TRUE
50 
51 /* define default step for volume adjustment with mouse wheel over volume button and tray icon */
52 #define PREF_VOL_ADJUST_STEP                    "volume_adjust_step"
53 #define PREF_VOL_ADJUST_STEP_DEFAULT            5
54 
55 /* Define the behavior of a double click on the tray icon (0 for 'play/pause', 1 for 'play next song', 2 for 'do nothing') */
56 #define PREF_TRAYICON_BEHAVIOR                  "trayicon_behavior"
57 #define PREF_TRAYICON_BEHAVIOR_DEFAULT          0
58 
59 /* Define the behavior of a double click on a song/album/artist... */
60 #define PREF_DOUBLECLICK_BEHAVIOR               "doubleclick_behavior"
61 #define PREF_DOUBLECLICK_BEHAVIOR_DEFAULT       0
62 
63 /* True if the initial assistant has already been run */
64 #define PREF_FIRST_TIME                         "first_time_flag"
65 #define PREF_FIRST_TIME_DEFAULT                 FALSE
66 
67 /* Main window width */
68 #define PREF_WINDOW_WIDTH                       "window_width"
69 #define PREF_WINDOW_WIDTH_DEFAULT               600
70 
71 /* Main window height */
72 #define PREF_WINDOW_HEIGHT                      "window_height"
73 #define PREF_WINDOW_HEIGHT_DEFAULT              600
74 
75 /* If true, the main window is maximized */
76 #define PREF_WINDOW_MAXIMIZED                   "window_maximized"
77 #define PREF_WINDOW_MAXIMIZED_DEFAULT           TRUE
78 
79 /* If true, the statusbar is hidden */
80 #define PREF_STATUSBAR_HIDDEN                   "statusbar_hidden"
81 #define PREF_STATUSBAR_HIDDEN_DEFAULT           FALSE
82 
83 /* If true, the different music sources are hidden */
84 #define PREF_UPPERPART_HIDDEN                   "upperpart_hidden"
85 #define PREF_UPPERPART_HIDDEN_DEFAULT           FALSE
86 
87 /* If true, the playlist is hidden */
88 #define PREF_PLAYLIST_HIDDEN                    "playlist_hidden"
89 #define PREF_PLAYLIST_HIDDEN_DEFAULT            FALSE
90 
91 /* Position of main window pane */
92 #define PREF_VPANED_POSITION                    "vpaned_position"
93 #define PREF_VPANED_POSITION_DEFAULT            400
94 
95 /* Position of playlists pane */
96 #define PREF_PLAYLISTS_HPANED_SIZE              "playlists_hpaned_position"
97 #define PREF_PLAYLISTS_HPANED_SIZE_DEFAULT      250
98 
99 /* Position of filesystem pane */
100 #define PREF_FILSYSTEM_HPANED_SIZE              "filesystem_hpaned_position"
101 #define PREF_FILSYSTEM_HPANED_SIZE_DEFAULT      250
102 
103 /* Define the source used in Ario (0 for the library, 1 for the radios, etc..) */
104 #define PREF_SOURCE                             "source"
105 #define PREF_SOURCE_DEFAULT                     0
106 
107 /* Pixbuf column properties */
108 #define PREF_PIXBUF_COLUMN_ORDER                "pixbuf_column_order"
109 #define PREF_PIXBUF_COLUMN_ORDER_DEFAULT        1
110 
111 /* Track column properties */
112 #define PREF_TRACK_COLUMN_SIZE                  "track_column_size"
113 #define PREF_TRACK_COLUMN_SIZE_DEFAULT          50
114 #define PREF_TRACK_COLUMN_VISIBLE               "track_column_visible"
115 #define PREF_TRACK_COLUMN_VISIBLE_DEFAULT       TRUE
116 #define PREF_TRACK_COLUMN_ORDER                 "track_column_order"
117 #define PREF_TRACK_COLUMN_ORDER_DEFAULT         2
118 
119 /* Title column properties */
120 #define PREF_TITLE_COLUMN_SIZE                  "title_column_size"
121 #define PREF_TITLE_COLUMN_SIZE_DEFAULT          200
122 #define PREF_TITLE_COLUMN_VISIBLE               "title_column_visible"
123 #define PREF_TITLE_COLUMN_VISIBLE_DEFAULT       TRUE
124 #define PREF_TITLE_COLUMN_ORDER                 "title_column_order"
125 #define PREF_TITLE_COLUMN_ORDER_DEFAULT         3
126 
127 /* Artist column properties */
128 #define PREF_ARTIST_COLUMN_SIZE                 "artist_column_size"
129 #define PREF_ARTIST_COLUMN_SIZE_DEFAULT         200
130 #define PREF_ARTIST_COLUMN_VISIBLE              "artist_column_visible"
131 #define PREF_ARTIST_COLUMN_VISIBLE_DEFAULT      TRUE
132 #define PREF_ARTIST_COLUMN_ORDER                "artist_column_order"
133 #define PREF_ARTIST_COLUMN_ORDER_DEFAULT        4
134 
135 /* Album column properties */
136 #define PREF_ALBUM_COLUMN_SIZE                  "album_column_size"
137 #define PREF_ALBUM_COLUMN_SIZE_DEFAULT          200
138 #define PREF_ALBUM_COLUMN_VISIBLE               "album_column_visible"
139 #define PREF_ALBUM_COLUMN_VISIBLE_DEFAULT       TRUE
140 #define PREF_ALBUM_COLUMN_ORDER                 "album_column_order"
141 #define PREF_ALBUM_COLUMN_ORDER_DEFAULT         5
142 
143 /* Duration column properties */
144 #define PREF_DURATION_COLUMN_SIZE               "duration_column_size"
145 #define PREF_DURATION_COLUMN_SIZE_DEFAULT       50
146 #define PREF_DURATION_COLUMN_VISIBLE            "duration_column_visible"
147 #define PREF_DURATION_COLUMN_VISIBLE_DEFAULT    TRUE
148 #define PREF_DURATION_COLUMN_ORDER              "duration_column_order"
149 #define PREF_DURATION_COLUMN_ORDER_DEFAULT      6
150 
151 /* File column properties */
152 #define PREF_FILE_COLUMN_SIZE                   "file_column_size"
153 #define PREF_FILE_COLUMN_SIZE_DEFAULT           200
154 #define PREF_FILE_COLUMN_VISIBLE                "file_column_visible"
155 #define PREF_FILE_COLUMN_VISIBLE_DEFAULT        FALSE
156 #define PREF_FILE_COLUMN_ORDER                  "file_column_order"
157 #define PREF_FILE_COLUMN_ORDER_DEFAULT          7
158 
159 /* Genre column properties */
160 #define PREF_GENRE_COLUMN_SIZE                  "genre_column_size"
161 #define PREF_GENRE_COLUMN_SIZE_DEFAULT          200
162 #define PREF_GENRE_COLUMN_VISIBLE               "genre_column_visible"
163 #define PREF_GENRE_COLUMN_VISIBLE_DEFAULT       FALSE
164 #define PREF_GENRE_COLUMN_ORDER                 "genre_column_order"
165 #define PREF_GENRE_COLUMN_ORDER_DEFAULT         8
166 
167 /* Date column properties */
168 #define PREF_DATE_COLUMN_SIZE                   "date_column_size"
169 #define PREF_DATE_COLUMN_SIZE_DEFAULT           70
170 #define PREF_DATE_COLUMN_VISIBLE                "date_column_visible"
171 #define PREF_DATE_COLUMN_VISIBLE_DEFAULT        FALSE
172 #define PREF_DATE_COLUMN_ORDER                  "date_column_order"
173 #define PREF_DATE_COLUMN_ORDER_DEFAULT          9
174 
175 /* Disc column properties */
176 #define PREF_DISC_COLUMN_SIZE                   "disc_column_size"
177 #define PREF_DISC_COLUMN_SIZE_DEFAULT           70
178 #define PREF_DISC_COLUMN_VISIBLE                "disc_column_visible"
179 #define PREF_DISC_COLUMN_VISIBLE_DEFAULT        FALSE
180 #define PREF_DISC_COLUMN_ORDER                  "disc_column_order"
181 #define PREF_DISC_COLUMN_ORDER_DEFAULT          10
182 
183 /* List of active plugins. It contains the "Location" of the active plugins. See the .ario-plugin file for obtaining the "Location" of a given plugin. */
184 #define PREF_PLUGINS_LIST                       "active-plugins"
185 #ifdef ENABLE_LIBNOTIFY
186 #define PREF_PLUGINS_LIST_DEFAULT               "filesystem,radios,wikipedia,liblibnotify"
187 #else
188 #define PREF_PLUGINS_LIST_DEFAULT               "filesystem,radios,wikipedia"
189 #endif
190 
191 /* Ordered list of sources */
192 #define PREF_SOURCE_LIST                        "sources-order"
193 #define PREF_SOURCE_LIST_DEFAULT                "library,search,radios,storedplaylists,filesystem"
194 
195 /* Ordered list of covers providers */
196 #define PREF_COVER_PROVIDERS_LIST               "cover-providers"
197 #define PREF_COVER_PROVIDERS_LIST_DEFAULT       "local,lastfm"
198 
199 /* List of active covers providers */
200 #define PREF_COVER_ACTIVE_PROVIDERS_LIST         "active-cover-providers"
201 #define PREF_COVER_ACTIVE_PROVIDERS_LIST_DEFAULT "local,lastfm"
202 
203 /* Ordered list of lyrics providers */
204 #define PREF_LYRICS_PROVIDERS_LIST              "lyrics-providers"
205 #define PREF_LYRICS_PROVIDERS_LIST_DEFAULT      "letras"
206 
207 /* List of active lyrics providers */
208 #define PREF_LYRICS_ACTIVE_PROVIDERS_LIST         "active-lyrics-providers"
209 #define PREF_LYRICS_ACTIVE_PROVIDERS_LIST_DEFAULT "letras"
210 
211 /* If true, Ario windows is hidden when closed */
212 #define PREF_HIDE_ON_CLOSE                      "hide-on-close"
213 #define PREF_HIDE_ON_CLOSE_DEFAULT              FALSE
214 
215 /* Define how albums are sorted (alphabetically, by year, ...) */
216 #define PREF_ALBUM_SORT                         "album-sort"
217 #define PREF_ALBUM_SORT_DEFAULT                 SORT_ALPHABETICALLY
218 
219 /* If true, the playlist automaticaly scrolls to the playing song */
220 #define PREF_PLAYLIST_AUTOSCROLL                "playlist_autoscroll"
221 #define PREF_PLAYLIST_AUTOSCROLL_DEFAULT        FALSE
222 
223 /* If true, a notification window appears when the song changes */
224 #define PREF_HAVE_NOTIFICATION                  "notification"
225 #define PREF_HAVE_NOTIFICATION_DEFAULT          FALSE
226 
227 /* The notifier id */
228 #define PREF_NOTIFIER                           "notifier"
229 #ifdef ENABLE_LIBNOTIFY
230 #define PREF_NOTIFIER_DEFAULT                   "libnotify"
231 #else
232 #define PREF_NOTIFIER_DEFAULT                   "tooltip"
233 #endif
234 
235 /* The duration of the notification (in seconds) */
236 #define PREF_NOTIFICATION_TIME                  "notification-time"
237 #define PREF_NOTIFICATION_TIME_DEFAULT          5
238 
239 /* If true, Ario can have only one instance launched at the same time */
240 #define PREF_ONE_INSTANCE                       "one-instance"
241 #define PREF_ONE_INSTANCE_DEFAULT               TRUE
242 
243 /* If true, the tray icon is showed */
244 #define PREF_TRAY_ICON                          "tray-icon"
245 #define PREF_TRAY_ICON_DEFAULT                  TRUE
246 
247 /* The different lists used in the library browser (0 for artist, 1 for album, 2 for title...) */
248 #define PREF_BROWSER_TREES                      "browser-trees"
249 #define PREF_BROWSER_TREES_DEFAULT              "0,1,3"
250 
251 /* If true, Ario asks to SERVER to update the database when it is started */
252 #define PREF_UPDATE_STARTUP                     "update-startup"
253 #define PREF_UPDATE_STARTUP_DEFAULT              FALSE
254 
255 /* If true, Ario stops the music on exit */
256 #define PREF_STOP_EXIT                          "stop-exit"
257 #define PREF_STOP_EXIT_DEFAULT                  FALSE
258 
259 /* Playlist Mode */
260 #define PREF_PLAYLIST_MODE                     "playlist-mode"
261 #define PREF_PLAYLIST_MODE_DEFAULT             "normal"
262 
263 /* Number of songs added to the playlist in dynamic mode*/
264 #define PREF_DYNAMIC_NBITEMS                   "dynamic-nbitems"
265 #define PREF_DYNAMIC_NBITEMS_DEFAULT           10
266 
267 /* Type of songs added to the playlist in dynamic mode*/
268 #define PREF_DYNAMIC_TYPE                      "dynamic-type"
269 #define PREF_DYNAMIC_TYPE_DEFAULT              0
270 
271 /* Playlist position */
272 #define PREF_PLAYLIST_POSITION                 "playlist-position"
273 #define PREF_PLAYLIST_POSITION_DEFAULT         0
274 
275 enum
276 {
277         TRAY_ICON_PLAY_PAUSE,
278         TRAY_ICON_NEXT_SONG,
279         TRAY_ICON_MUTE,
280         TRAY_ICON_DO_NOTHING,
281         TRAY_ICON_N_BEHAVIOR
282 };
283 
284 enum
285 {
286         SORT_ALPHABETICALLY,
287         SORT_YEAR,
288         SORT_N_BEHAVIOR
289 };
290 
291 enum
292 {
293         PLAYLIST_POSITION_BELOW,
294         PLAYLIST_POSITION_RIGHT,
295         PLAYLIST_POSITION_INSIDE,
296         PLAYLIST_POSITION_N_BEHAVIOR
297 };
298 
299 #endif /* __ARIO_PREFERENCES_H */
300