annotate audacious/main.h @ 1541:06329cbf186a trunk

[svn] this massive commit does the following: - seriously cleans up dependencies on the WA2-like gui code - moves all of the WA2 stuff into a seperate library (libwidgets.a) - makes things less icky in the player tree
author nenolod
date Wed, 09 Aug 2006 02:47:22 -0700
parents 705d4c089fce
children 697a073fd4f5
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
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
25 #include "mainwin.h"
1541
06329cbf186a [svn] this massive commit does the following:
nenolod
parents: 1459
diff changeset
26 #include "widgets/textbox.h"
06329cbf186a [svn] this massive commit does the following:
nenolod
parents: 1459
diff changeset
27 #include "widgets/vis.h"
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
28
887
a8fb5974c3a9 [svn] * Skin thumbnails are refreshable!
nhjm449
parents: 781
diff changeset
29 #include <sys/types.h>
a8fb5974c3a9 [svn] * Skin thumbnails are refreshable!
nhjm449
parents: 781
diff changeset
30 #include <sys/stat.h>
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
31
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
32 #define BMP_USER_PLUGIN_DIR_BASENAME "Plugins"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
33 #define BMP_SKIN_DIR_BASENAME "Skins"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
34 #define BMP_SKIN_THUMB_DIR_BASENAME ".thumbs"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
35 #define BMP_ACCEL_BASENAME "accels"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
36 #define BMP_CONFIG_BASENAME "config"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
37 #define BMP_PLAYLIST_BASENAME "playlist.m3u"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
38 #define BMP_LOG_BASENAME "log"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
39
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
40 #define PLAYER_HEIGHT \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
41 (cfg.player_shaded ? MAINWIN_SHADED_HEIGHT : MAINWIN_HEIGHT)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
42 #define PLAYER_WIDTH MAINWIN_WIDTH
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
43
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
44 struct _BmpConfig {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
45 gint player_x, player_y;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
46 gint equalizer_x, equalizer_y;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
47 gint playlist_x, playlist_y;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
48 gint playlist_width, playlist_height;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
49 gint snap_distance;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
50 gboolean use_realtime;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
51 gboolean shuffle, repeat;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
52 gboolean doublesize, autoscroll;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
53 gboolean analyzer_peaks, equalizer_autoload, easy_move, equalizer_active;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
54 gboolean playlist_visible, equalizer_visible, player_visible;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
55 gboolean player_shaded, playlist_shaded, equalizer_shaded;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
56 gboolean allow_multiple_instances, always_show_cb;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
57 gboolean convert_underscore, convert_twenty;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
58 gboolean show_numbers_in_pl;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
59 gboolean snap_windows, save_window_position;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
60 gboolean dim_titlebar;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
61 gboolean get_info_on_load, get_info_on_demand;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
62 gboolean eq_doublesize_linked;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
63 gboolean sort_jump_to_file;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
64 gboolean use_eplugins;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
65 gboolean always_on_top, sticky;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
66 gboolean no_playlist_advance;
899
83a1c8396625 [svn] - Forgot something
nhjm449
parents: 893
diff changeset
67 gboolean stopaftersong;
893
6afdd0d7e1e1 [svn] Make refreshing optional, default to disabled if Gnome VFS available.
nemo
parents: 887
diff changeset
68 gboolean refresh_file_list;
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
69 gboolean smooth_title_scroll;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
70 gboolean use_pl_metadata;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
71 gboolean warn_about_unplayables;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
72 gboolean use_backslash_as_dir_delimiter;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
73 gboolean random_skin_on_play;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
74 gboolean use_fontsets;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
75 gboolean mainwin_use_xfont;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
76 gboolean custom_cursors;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
77 gboolean close_dialog_open;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
78 gboolean close_dialog_add;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
79 gfloat equalizer_preamp, equalizer_bands[10];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
80 gchar *skin;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
81 gchar *outputplugin;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
82 gchar *filesel_path;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
83 gchar *playlist_path;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
84 gchar *playlist_font, *mainwin_font;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
85 gchar *disabled_iplugins;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
86 gchar *enabled_gplugins, *enabled_vplugins, *enabled_eplugins;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
87 gchar *eqpreset_default_file, *eqpreset_extension;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
88 GList *url_history;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
89 gint timer_mode;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
90 gint vis_type;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
91 gint analyzer_mode, analyzer_type;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
92 gint scope_mode;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
93 gint vu_mode, vis_refresh;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
94 gint analyzer_falloff, peaks_falloff;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
95 gint playlist_position;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
96 gint pause_between_songs_time;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
97 gboolean pause_between_songs;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
98 gboolean show_wm_decorations;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
99 gint mouse_change;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
100 gboolean playlist_transparent;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
101 gint titlestring_preset;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
102 gchar *gentitle_format;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
103 gboolean softvolume_enable;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
104 gboolean xmms_compat_mode;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
105 gboolean eq_extra_filtering;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
106 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
107 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
108 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
109 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
110 gchar *chardet_detector;
4be4d74db123 [svn] automatic character encoding detector for id3 metadata. --enable-chardet enables this feature.
yaz
parents: 1056
diff changeset
111 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
112 gint output_buffer_size;
1163
ff71f891265b [svn] - Allow to do format detection on demand; instead of immediately on add
nenolod
parents: 1146
diff changeset
113 gboolean playlist_detect;
1358
0c41255487ee [svn] - add toggle option for filepopup window
yaz
parents: 1163
diff changeset
114 gboolean show_filepopup_for_tuple;
1413
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1358
diff changeset
115 gchar *cover_name_include, *cover_name_exclude;
1429
a360afd8df52 [svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents: 1413
diff changeset
116 gboolean recurse_for_cover;
a360afd8df52 [svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents: 1413
diff changeset
117 gint recurse_for_cover_depth;
1444
c04ce16b2b57 [svn] - libaudacious/beepctrl.c: optimise further and be more paranoid about leaks
nenolod
parents: 1429
diff changeset
118 gchar *session_uri_base;
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
119 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
120
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
121 typedef struct _BmpConfig BmpConfig;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
122
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
123 enum {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
124 VOLSET_STARTUP,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
125 VOLSET_UPDATE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
126 VOLUME_ADJUSTED,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
127 VOLUME_SET
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 enum {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
131 BMP_PATH_LOG_FILE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
132 BMP_PATH_USER_DIR,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
133 BMP_PATH_USER_PLUGIN_DIR,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
134 BMP_PATH_USER_SKIN_DIR,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
135 BMP_PATH_SKIN_THUMB_DIR,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
136 BMP_PATH_ACCEL_FILE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
137 BMP_PATH_CONFIG_FILE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
138 BMP_PATH_PLAYLIST_FILE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
139 BMP_PATH_COUNT
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
140 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
141
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
142 extern BmpConfig cfg;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
143 extern BmpConfig bmp_default_config;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
144
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
145 extern gchar *bmp_paths[];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
146
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
147 extern const gchar *bmp_titlestring_presets[];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
148 extern const guint n_titlestring_presets;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
149
1105
4be4d74db123 [svn] automatic character encoding detector for id3 metadata. --enable-chardet enables this feature.
yaz
parents: 1056
diff changeset
150 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
151 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
152
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
153 extern GList *dock_window_list;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
154 extern gboolean pposition_broken;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
155
486
c4a560cb40f9 [svn] Always on top fix.
nenolod
parents: 0
diff changeset
156 extern gboolean starting_up;
c4a560cb40f9 [svn] Always on top fix.
nenolod
parents: 0
diff changeset
157
680
8282b365f6cb [svn] - Add some sanity checking to make sure we can't do X11 stuff when running headless.
nenolod
parents: 486
diff changeset
158 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
159
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
160 void bmp_config_save(void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
161 void bmp_config_load(void);
887
a8fb5974c3a9 [svn] * Skin thumbnails are refreshable!
nhjm449
parents: 781
diff changeset
162 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
163 void report_error(const gchar *error_text);
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
164
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
165 #endif