annotate audacious/main.h @ 1817:0734a9808884 trunk

[svn] - make sure the PlaylistEntry has a tuple.
author nenolod
date Thu, 05 Oct 2006 01:31:41 -0700
parents 4fa99b5e8f24
children 597bd579d9af
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1 /* BMP - Cross-platform multimedia player
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2 * Copyright (C) 2003-2004 BMP development team.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
4 * Based on XMMS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
5 * Copyright (C) 1998-2003 XMMS development team.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
6 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
10 * (at your option) any later version.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
11 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
15 * GNU General Public License for more details.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
16 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
1459
705d4c089fce [svn] Fix postal code.
chainsaw
parents: 1458
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
20 */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
21
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
22 #ifndef MAIN_H
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
23 #define MAIN_H
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
24
1741
c7ab1203d933 [svn] - only include non-SDK things if _AUDACIOUS_CORE is defined.
nenolod
parents: 1710
diff changeset
25 #ifdef _AUDACIOUS_CORE
c7ab1203d933 [svn] - only include non-SDK things if _AUDACIOUS_CORE is defined.
nenolod
parents: 1710
diff changeset
26 # include "widgets/widgetcore.h"
c7ab1203d933 [svn] - only include non-SDK things if _AUDACIOUS_CORE is defined.
nenolod
parents: 1710
diff changeset
27 # include "mainwin.h"
c7ab1203d933 [svn] - only include non-SDK things if _AUDACIOUS_CORE is defined.
nenolod
parents: 1710
diff changeset
28 #endif
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
29
887
a8fb5974c3a9 [svn] * Skin thumbnails are refreshable!
nhjm449
parents: 781
diff changeset
30 #include <sys/types.h>
a8fb5974c3a9 [svn] * Skin thumbnails are refreshable!
nhjm449
parents: 781
diff changeset
31 #include <sys/stat.h>
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
32
1742
4fa99b5e8f24 [svn] - add G_BEGIN_DECLS and G_END_DECLS for C++ users
nenolod
parents: 1741
diff changeset
33 G_BEGIN_DECLS
4fa99b5e8f24 [svn] - add G_BEGIN_DECLS and G_END_DECLS for C++ users
nenolod
parents: 1741
diff changeset
34
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
35 #define BMP_USER_PLUGIN_DIR_BASENAME "Plugins"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
36 #define BMP_SKIN_DIR_BASENAME "Skins"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
37 #define BMP_SKIN_THUMB_DIR_BASENAME ".thumbs"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
38 #define BMP_ACCEL_BASENAME "accels"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
39 #define BMP_CONFIG_BASENAME "config"
1569
3af18d169044 [svn] - Plugins/Container/xspf/xspf.c: xspf cleanups
nenolod
parents: 1557
diff changeset
40 #ifndef HAVE_XSPF_PLAYLIST
3af18d169044 [svn] - Plugins/Container/xspf/xspf.c: xspf cleanups
nenolod
parents: 1557
diff changeset
41 # define BMP_PLAYLIST_BASENAME "playlist.m3u"
3af18d169044 [svn] - Plugins/Container/xspf/xspf.c: xspf cleanups
nenolod
parents: 1557
diff changeset
42 #else
3af18d169044 [svn] - Plugins/Container/xspf/xspf.c: xspf cleanups
nenolod
parents: 1557
diff changeset
43 # define BMP_PLAYLIST_BASENAME "playlist.xspf"
3af18d169044 [svn] - Plugins/Container/xspf/xspf.c: xspf cleanups
nenolod
parents: 1557
diff changeset
44 #endif
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
45 #define BMP_LOG_BASENAME "log"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
46
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
47 #define PLAYER_HEIGHT \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
48 (cfg.player_shaded ? MAINWIN_SHADED_HEIGHT : MAINWIN_HEIGHT)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
49 #define PLAYER_WIDTH MAINWIN_WIDTH
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
50
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
51 struct _BmpConfig {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
52 gint player_x, player_y;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
53 gint equalizer_x, equalizer_y;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
54 gint playlist_x, playlist_y;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
55 gint playlist_width, playlist_height;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
56 gint snap_distance;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
57 gboolean use_realtime;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
58 gboolean shuffle, repeat;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
59 gboolean doublesize, autoscroll;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
60 gboolean analyzer_peaks, equalizer_autoload, easy_move, equalizer_active;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
61 gboolean playlist_visible, equalizer_visible, player_visible;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
62 gboolean player_shaded, playlist_shaded, equalizer_shaded;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
63 gboolean allow_multiple_instances, always_show_cb;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
64 gboolean convert_underscore, convert_twenty;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
65 gboolean show_numbers_in_pl;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
66 gboolean snap_windows, save_window_position;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
67 gboolean dim_titlebar;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
68 gboolean get_info_on_load, get_info_on_demand;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
69 gboolean eq_doublesize_linked;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
70 gboolean sort_jump_to_file;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
71 gboolean use_eplugins;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
72 gboolean always_on_top, sticky;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
73 gboolean no_playlist_advance;
899
83a1c8396625 [svn] - Forgot something
nhjm449
parents: 893
diff changeset
74 gboolean stopaftersong;
893
6afdd0d7e1e1 [svn] Make refreshing optional, default to disabled if Gnome VFS available.
nemo
parents: 887
diff changeset
75 gboolean refresh_file_list;
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
76 gboolean smooth_title_scroll;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
77 gboolean use_pl_metadata;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
78 gboolean warn_about_unplayables;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
79 gboolean use_backslash_as_dir_delimiter;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
80 gboolean random_skin_on_play;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
81 gboolean use_fontsets;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
82 gboolean mainwin_use_xfont;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
83 gboolean custom_cursors;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
84 gboolean close_dialog_open;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
85 gboolean close_dialog_add;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
86 gfloat equalizer_preamp, equalizer_bands[10];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
87 gchar *skin;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
88 gchar *outputplugin;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
89 gchar *filesel_path;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
90 gchar *playlist_path;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
91 gchar *playlist_font, *mainwin_font;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
92 gchar *disabled_iplugins;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
93 gchar *enabled_gplugins, *enabled_vplugins, *enabled_eplugins;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
94 gchar *eqpreset_default_file, *eqpreset_extension;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
95 GList *url_history;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
96 gint timer_mode;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
97 gint vis_type;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
98 gint analyzer_mode, analyzer_type;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
99 gint scope_mode;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
100 gint vu_mode, vis_refresh;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
101 gint analyzer_falloff, peaks_falloff;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
102 gint playlist_position;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
103 gint pause_between_songs_time;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
104 gboolean pause_between_songs;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
105 gboolean show_wm_decorations;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
106 gint mouse_change;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
107 gboolean playlist_transparent;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
108 gint titlestring_preset;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
109 gchar *gentitle_format;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
110 gboolean softvolume_enable;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
111 gboolean xmms_compat_mode;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
112 gboolean eq_extra_filtering;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
113 gint scroll_pl_by;
998
8c6949ffd7f8 [svn] Support for saving the playback state, and resuming playback after restart. Patch by cha0smaster, closes bug #479.
chainsaw
parents: 899
diff changeset
114 gboolean resume_playback_on_startup;
8c6949ffd7f8 [svn] Support for saving the playback state, and resuming playback after restart. Patch by cha0smaster, closes bug #479.
chainsaw
parents: 899
diff changeset
115 gint resume_playback_on_startup_time;
1056
21628529c615 [svn] add the config option to enable/disable separator line in the playlist
yaz
parents: 998
diff changeset
116 gboolean show_separator_in_pl;
1105
4be4d74db123 [svn] automatic character encoding detector for id3 metadata. --enable-chardet enables this feature.
yaz
parents: 1056
diff changeset
117 gchar *chardet_detector;
4be4d74db123 [svn] automatic character encoding detector for id3 metadata. --enable-chardet enables this feature.
yaz
parents: 1056
diff changeset
118 gchar *chardet_fallback;
1146
7e208feb36a2 [svn] - new global variable `output_buffer_size', replaces all of the per-plugin buffer sizes
nenolod
parents: 1105
diff changeset
119 gint output_buffer_size;
1163
ff71f891265b [svn] - Allow to do format detection on demand; instead of immediately on add
nenolod
parents: 1146
diff changeset
120 gboolean playlist_detect;
1358
0c41255487ee [svn] - add toggle option for filepopup window
yaz
parents: 1163
diff changeset
121 gboolean show_filepopup_for_tuple;
1413
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1358
diff changeset
122 gchar *cover_name_include, *cover_name_exclude;
1429
a360afd8df52 [svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents: 1413
diff changeset
123 gboolean recurse_for_cover;
a360afd8df52 [svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents: 1413
diff changeset
124 gint recurse_for_cover_depth;
1444
c04ce16b2b57 [svn] - libaudacious/beepctrl.c: optimise further and be more paranoid about leaks
nenolod
parents: 1429
diff changeset
125 gchar *session_uri_base;
1710
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1653
diff changeset
126 gint filepopup_pixelsize;
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1653
diff changeset
127 gint filepopup_delay;
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
128 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
129
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
130 typedef struct _BmpConfig BmpConfig;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
131
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
132 enum {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
133 VOLSET_STARTUP,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
134 VOLSET_UPDATE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
135 VOLUME_ADJUSTED,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
136 VOLUME_SET
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
137 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
138
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
139 enum {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
140 BMP_PATH_LOG_FILE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
141 BMP_PATH_USER_DIR,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
142 BMP_PATH_USER_PLUGIN_DIR,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
143 BMP_PATH_USER_SKIN_DIR,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
144 BMP_PATH_SKIN_THUMB_DIR,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
145 BMP_PATH_ACCEL_FILE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
146 BMP_PATH_CONFIG_FILE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
147 BMP_PATH_PLAYLIST_FILE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
148 BMP_PATH_COUNT
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
149 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
150
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
151 extern BmpConfig cfg;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
152 extern BmpConfig bmp_default_config;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
153
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
154 extern gchar *bmp_paths[];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
155
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
156 extern const gchar *bmp_titlestring_presets[];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
157 extern const guint n_titlestring_presets;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
158
1105
4be4d74db123 [svn] automatic character encoding detector for id3 metadata. --enable-chardet enables this feature.
yaz
parents: 1056
diff changeset
159 extern const gchar *chardet_detector_presets[];
4be4d74db123 [svn] automatic character encoding detector for id3 metadata. --enable-chardet enables this feature.
yaz
parents: 1056
diff changeset
160 extern const guint n_chardet_detector_presets;
4be4d74db123 [svn] automatic character encoding detector for id3 metadata. --enable-chardet enables this feature.
yaz
parents: 1056
diff changeset
161
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
162 extern GList *dock_window_list;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
163 extern gboolean pposition_broken;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
164
486
c4a560cb40f9 [svn] Always on top fix.
nenolod
parents: 0
diff changeset
165 extern gboolean starting_up;
c4a560cb40f9 [svn] Always on top fix.
nenolod
parents: 0
diff changeset
166
680
8282b365f6cb [svn] - Add some sanity checking to make sure we can't do X11 stuff when running headless.
nenolod
parents: 486
diff changeset
167 extern gboolean has_x11_connection;
8282b365f6cb [svn] - Add some sanity checking to make sure we can't do X11 stuff when running headless.
nenolod
parents: 486
diff changeset
168
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
169 void bmp_config_save(void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
170 void bmp_config_load(void);
887
a8fb5974c3a9 [svn] * Skin thumbnails are refreshable!
nhjm449
parents: 781
diff changeset
171 void make_directory(const gchar * path, mode_t mode);
781
12c47704b4b5 [svn] Add error reporting for many places, patch by external contributor Derek
nenolod
parents: 680
diff changeset
172 void report_error(const gchar *error_text);
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
173
1742
4fa99b5e8f24 [svn] - add G_BEGIN_DECLS and G_END_DECLS for C++ users
nenolod
parents: 1741
diff changeset
174 G_END_DECLS
4fa99b5e8f24 [svn] - add G_BEGIN_DECLS and G_END_DECLS for C++ users
nenolod
parents: 1741
diff changeset
175
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
176 #endif