Mercurial > audlegacy
annotate src/audacious/main.c @ 4662:8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
it easier to see where things go wrong, if they do.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 27 Jun 2008 17:58:45 +0300 |
parents | e4e7999a21bc |
children | 46c02b5589c2 |
rev | line source |
---|---|
2313 | 1 /* Audacious - Cross-platform multimedia player |
2 * Copyright (C) 2005-2007 Audacious development team. | |
3 * | |
4 * Based on BMP: | |
5 * Copyright (C) 2003-2004 BMP development team. | |
6 * | |
7 * Based on XMMS: | |
8 * Copyright (C) 1998-2003 XMMS development team. | |
9 * | |
10 * This program is free software; you can redistribute it and/or modify | |
11 * it under the terms of the GNU General Public License as published by | |
3121
3b6d316f8b09
GPL3 relicensing.
William Pitcock <nenolod@atheme-project.org>
parents:
2973
diff
changeset
|
12 * the Free Software Foundation; under version 3 of the License. |
2313 | 13 * |
14 * This program is distributed in the hope that it will be useful, | |
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 * GNU General Public License for more details. | |
18 * | |
19 * You should have received a copy of the GNU General Public License | |
3121
3b6d316f8b09
GPL3 relicensing.
William Pitcock <nenolod@atheme-project.org>
parents:
2973
diff
changeset
|
20 * along with this program. If not, see <http://www.gnu.org/licenses>. |
3123
f1c756f39e6c
Invoke "Plugins are not derived work" clause provided by GPL3.
William Pitcock <nenolod@atheme-project.org>
parents:
3121
diff
changeset
|
21 * |
f1c756f39e6c
Invoke "Plugins are not derived work" clause provided by GPL3.
William Pitcock <nenolod@atheme-project.org>
parents:
3121
diff
changeset
|
22 * The Audacious team does not consider modular code linking to |
f1c756f39e6c
Invoke "Plugins are not derived work" clause provided by GPL3.
William Pitcock <nenolod@atheme-project.org>
parents:
3121
diff
changeset
|
23 * Audacious or using our public API to be a derived work. |
2313 | 24 */ |
25 | |
26 #ifdef HAVE_CONFIG_H | |
27 # include "config.h" | |
28 #endif | |
29 | |
30 #include "main.h" | |
31 | |
32 #include <glib.h> | |
33 #include <glib/gi18n.h> | |
34 #include <glib/gprintf.h> | |
35 #include <gdk/gdk.h> | |
36 #include <stdlib.h> | |
37 #include <string.h> | |
38 #include <getopt.h> | |
39 #include <ctype.h> | |
40 #include <time.h> | |
41 | |
42 #include <unistd.h> | |
43 #include <errno.h> | |
44 #include <sys/types.h> | |
45 #include <sys/stat.h> | |
46 #include <signal.h> | |
47 | |
4523
b3e4f5c31546
Conditional USE_SRC was changed to USE_SAMPLERATE earlier.
Matti Hamalainen <ccr@tnsp.org>
parents:
4517
diff
changeset
|
48 #ifdef USE_SAMPLERATE |
4267
a41fb6bc632a
- src stuff traveled to src_flow.c
Eugene Zagidullin <e.asphyx@gmail.com>
parents:
4256
diff
changeset
|
49 # include <samplerate.h> |
a41fb6bc632a
- src stuff traveled to src_flow.c
Eugene Zagidullin <e.asphyx@gmail.com>
parents:
4256
diff
changeset
|
50 #endif |
a41fb6bc632a
- src stuff traveled to src_flow.c
Eugene Zagidullin <e.asphyx@gmail.com>
parents:
4256
diff
changeset
|
51 |
2313 | 52 #include "platform/smartinclude.h" |
53 | |
2717 | 54 #include "configdb.h" |
2313 | 55 #include "vfs.h" |
56 | |
2694
c2b82432c1b6
[svn] Added basic DBus support, disabled by default with a configuration option to enable it. The general and playback information/manipulation methods are currently the only ones implemented. That is version, play, pause, stop, playing, paused, stopped, status, and seek. There are stubs for many unimplemented methods.
magma
parents:
2682
diff
changeset
|
57 #ifdef USE_DBUS |
2711
c35913222440
[svn] Initial commit of dbus client library for plugins. Various changes were made to the plugin structure to support dbus.
magma
parents:
2709
diff
changeset
|
58 # include "dbus-service.h" |
2785 | 59 # include "audctrl.h" |
2694
c2b82432c1b6
[svn] Added basic DBus support, disabled by default with a configuration option to enable it. The general and playback information/manipulation methods are currently the only ones implemented. That is version, play, pause, stop, playing, paused, stopped, status, and seek. There are stubs for many unimplemented methods.
magma
parents:
2682
diff
changeset
|
60 #endif |
c2b82432c1b6
[svn] Added basic DBus support, disabled by default with a configuration option to enable it. The general and playback information/manipulation methods are currently the only ones implemented. That is version, play, pause, stop, playing, paused, stopped, status, and seek. There are stubs for many unimplemented methods.
magma
parents:
2682
diff
changeset
|
61 |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
62 #include "auddrct.h" |
4347 | 63 #include "build_stamp.h" |
2313 | 64 #include "dnd.h" |
65 #include "input.h" | |
66 #include "logger.h" | |
67 #include "output.h" | |
68 #include "playback.h" | |
69 #include "playlist.h" | |
4347 | 70 #include "pluginenum.h" |
71 #include "signals.h" | |
4508
246244ead30e
renamed skin.* to ui_skin.* and moved ui_skinned_widget_draw() to it
mf0102 <0102@gmx.at>
parents:
4504
diff
changeset
|
72 #include "ui_skin.h" |
4347 | 73 #include "ui_equalizer.h" |
74 #include "ui_fileinfo.h" | |
4504
a47288ced5d5
- renamed some files to reflect their UI contents
mf0102 <0102@gmx.at>
parents:
4494
diff
changeset
|
75 #include "ui_hints.h" |
4347 | 76 #include "ui_main.h" |
77 #include "ui_manager.h" | |
2313 | 78 #include "ui_playlist.h" |
79 #include "ui_preferences.h" | |
80 #include "ui_skinselector.h" | |
81 #include "util.h" | |
4347 | 82 |
4234 | 83 #include "libSAD.h" |
4492
55262ebeba2d
Conditional support for SM (libeggsmclient).
Matti Hamalainen <ccr@tnsp.org>
parents:
4467
diff
changeset
|
84 #ifdef USE_EGGSM |
4315
c942eaef7bc6
Implement session management.
Ivan N. Zlatev <contact@i-nz.net>
parents:
4286
diff
changeset
|
85 #include "eggsmclient.h" |
c942eaef7bc6
Implement session management.
Ivan N. Zlatev <contact@i-nz.net>
parents:
4286
diff
changeset
|
86 #include "eggdesktopfile.h" |
4492
55262ebeba2d
Conditional support for SM (libeggsmclient).
Matti Hamalainen <ccr@tnsp.org>
parents:
4467
diff
changeset
|
87 #endif |
2313 | 88 |
89 #include "icons-stock.h" | |
90 #include "images/audacious_player.xpm" | |
91 | |
4517 | 92 static const gchar *application_name = N_("Audacious"); |
2313 | 93 |
4350
8071e599916d
renamed BmpCmdLineOpt to AudCmdLineOpt (greatest commit EVAR! ;-)
mf0102 <0102@gmx.at>
parents:
4347
diff
changeset
|
94 struct _AudCmdLineOpt { |
2411 | 95 gchar **filenames; |
2313 | 96 gint session; |
3351
7a4fcf84a34f
Removed the hardcoded Add/Play CD menu entry
Calin Crisan ccrisan@gmail.com
parents:
3346
diff
changeset
|
97 gboolean play, stop, pause, fwd, rew, play_pause, show_jump_box; |
2313 | 98 gboolean enqueue, mainwin, remote, activate; |
99 gboolean load_skins; | |
100 gboolean headless; | |
101 gboolean no_log; | |
102 gboolean enqueue_to_temp; | |
2411 | 103 gboolean version; |
2313 | 104 gchar *previous_session_id; |
4355 | 105 gboolean macpack; |
2313 | 106 }; |
4350
8071e599916d
renamed BmpCmdLineOpt to AudCmdLineOpt (greatest commit EVAR! ;-)
mf0102 <0102@gmx.at>
parents:
4347
diff
changeset
|
107 typedef struct _AudCmdLineOpt AudCmdLineOpt; |
2313 | 108 |
4517 | 109 static AudCmdLineOpt options; |
2313 | 110 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
111 gchar *aud_paths[BMP_PATH_COUNT] = {}; |
2313 | 112 |
113 GCond *cond_scan; | |
114 GMutex *mutex_scan; | |
3346
71d8d93f1bad
Implemented TrackChange, StatusChange signals, with a stub for CapsChange.
Ben Tucker <ben.tucker@gmail.com>
parents:
3334
diff
changeset
|
115 #ifdef USE_DBUS |
71d8d93f1bad
Implemented TrackChange, StatusChange signals, with a stub for CapsChange.
Ben Tucker <ben.tucker@gmail.com>
parents:
3334
diff
changeset
|
116 MprisPlayer *mpris; |
71d8d93f1bad
Implemented TrackChange, StatusChange signals, with a stub for CapsChange.
Ben Tucker <ben.tucker@gmail.com>
parents:
3334
diff
changeset
|
117 #endif |
2313 | 118 |
119 static void | |
4542 | 120 print_version(void) |
2313 | 121 { |
4450
413d80f7b011
remove the strange feature list feature, which was used for GConf only
mf0102 <0102@gmx.at>
parents:
4449
diff
changeset
|
122 g_printf("%s %s [%s]\n", _(application_name), VERSION, svn_stamp); |
2313 | 123 } |
124 | |
125 static void | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
126 aud_make_user_dir(void) |
2313 | 127 { |
128 const mode_t mode755 = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; | |
129 | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
130 make_directory(aud_paths[BMP_PATH_USER_DIR], mode755); |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
131 make_directory(aud_paths[BMP_PATH_USER_PLUGIN_DIR], mode755); |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
132 make_directory(aud_paths[BMP_PATH_USER_SKIN_DIR], mode755); |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
133 make_directory(aud_paths[BMP_PATH_SKIN_THUMB_DIR], mode755); |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
134 make_directory(aud_paths[BMP_PATH_PLAYLISTS_DIR], mode755); |
2313 | 135 } |
136 | |
137 static void | |
4543
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
138 aud_free_paths(void) |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
139 { |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
140 int i; |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
141 |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
142 for (i = 0; i < BMP_PATH_COUNT; i++) |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
143 { |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
144 g_free(aud_paths[i]); |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
145 aud_paths[i] = 0; |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
146 } |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
147 } |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
148 |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
149 static void |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
150 aud_init_paths() |
2317
49d285f6008b
[svn] Full support for XDG basedir added. The old config doesn't get automatically converted yet.
js
parents:
2313
diff
changeset
|
151 { |
2364 | 152 char *xdg_config_home; |
153 char *xdg_data_home; | |
154 char *xdg_cache_home; | |
2313 | 155 |
2364 | 156 xdg_config_home = (getenv("XDG_CONFIG_HOME") == NULL |
157 ? g_build_filename(g_get_home_dir(), ".config", NULL) | |
158 : g_strdup(getenv("XDG_CONFIG_HOME"))); | |
159 xdg_data_home = (getenv("XDG_DATA_HOME") == NULL | |
160 ? g_build_filename(g_get_home_dir(), ".local", "share", NULL) | |
161 : g_strdup(getenv("XDG_DATA_HOME"))); | |
162 xdg_cache_home = (getenv("XDG_CACHE_HOME") == NULL | |
163 ? g_build_filename(g_get_home_dir(), ".cache", NULL) | |
164 : g_strdup(getenv("XDG_CACHE_HOME"))); | |
2313 | 165 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
166 aud_paths[BMP_PATH_USER_DIR] = |
2364 | 167 g_build_filename(xdg_config_home, "audacious", NULL); |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
168 aud_paths[BMP_PATH_USER_SKIN_DIR] = |
2364 | 169 g_build_filename(xdg_data_home, "audacious", "Skins", NULL); |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
170 aud_paths[BMP_PATH_USER_PLUGIN_DIR] = |
2506
630910fd140f
[svn] - changed plugin directory to ~/.local/share/audacious/Plugins (seems more logical to me)
mf0102
parents:
2475
diff
changeset
|
171 g_build_filename(xdg_data_home, "audacious", "Plugins", NULL); |
630910fd140f
[svn] - changed plugin directory to ~/.local/share/audacious/Plugins (seems more logical to me)
mf0102
parents:
2475
diff
changeset
|
172 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
173 aud_paths[BMP_PATH_SKIN_THUMB_DIR] = |
2364 | 174 g_build_filename(xdg_cache_home, "audacious", "thumbs", NULL); |
2313 | 175 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
176 aud_paths[BMP_PATH_PLAYLISTS_DIR] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
177 g_build_filename(aud_paths[BMP_PATH_USER_DIR], "playlists", NULL); |
3400
8764498b75ed
Add new playlists directory to paths
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3351
diff
changeset
|
178 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
179 aud_paths[BMP_PATH_CONFIG_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
180 g_build_filename(aud_paths[BMP_PATH_USER_DIR], "config", NULL); |
2317
49d285f6008b
[svn] Full support for XDG basedir added. The old config doesn't get automatically converted yet.
js
parents:
2313
diff
changeset
|
181 #ifdef HAVE_XSPF_PLAYLIST |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
182 aud_paths[BMP_PATH_PLAYLIST_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
183 g_build_filename(aud_paths[BMP_PATH_USER_DIR], |
2364 | 184 "playlist.xspf", NULL); |
2317
49d285f6008b
[svn] Full support for XDG basedir added. The old config doesn't get automatically converted yet.
js
parents:
2313
diff
changeset
|
185 #else |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
186 aud_paths[BMP_PATH_PLAYLIST_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
187 g_build_filename(aud_paths[BMP_PATH_USER_DIR], |
2364 | 188 "playlist.m3u", NULL); |
2317
49d285f6008b
[svn] Full support for XDG basedir added. The old config doesn't get automatically converted yet.
js
parents:
2313
diff
changeset
|
189 #endif |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
190 aud_paths[BMP_PATH_ACCEL_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
191 g_build_filename(aud_paths[BMP_PATH_USER_DIR], "accels", NULL); |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
192 aud_paths[BMP_PATH_LOG_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
193 g_build_filename(aud_paths[BMP_PATH_USER_DIR], "log", NULL); |
2317
49d285f6008b
[svn] Full support for XDG basedir added. The old config doesn't get automatically converted yet.
js
parents:
2313
diff
changeset
|
194 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
195 aud_paths[BMP_PATH_GTKRC_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
196 g_build_filename(aud_paths[BMP_PATH_USER_DIR], "gtkrc", NULL); |
2463 | 197 |
2364 | 198 g_free(xdg_config_home); |
199 g_free(xdg_data_home); | |
200 g_free(xdg_cache_home); | |
2317
49d285f6008b
[svn] Full support for XDG basedir added. The old config doesn't get automatically converted yet.
js
parents:
2313
diff
changeset
|
201 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
202 g_atexit(aud_free_paths); |
2313 | 203 } |
204 | |
4542 | 205 static void |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
206 aud_set_default_icon(void) |
2313 | 207 { |
208 GdkPixbuf *icon; | |
209 | |
210 icon = gdk_pixbuf_new_from_xpm_data((const gchar **) audacious_player_xpm); | |
211 gtk_window_set_default_icon(icon); | |
212 g_object_unref(icon); | |
213 } | |
214 | |
3525
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
215 #ifdef GDK_WINDOWING_QUARTZ |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
216 static void |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
217 set_dock_icon(void) |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
218 { |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
219 GdkPixbuf *icon, *pixbuf; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
220 CGColorSpaceRef colorspace; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
221 CGDataProviderRef data_provider; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
222 CGImageRef image; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
223 gpointer data; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
224 gint rowstride, pixbuf_width, pixbuf_height; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
225 gboolean has_alpha; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
226 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
227 icon = gdk_pixbuf_new_from_xpm_data((const gchar **) audacious_player_xpm); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
228 pixbuf = gdk_pixbuf_scale_simple(icon, 128, 128, GDK_INTERP_BILINEAR); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
229 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
230 data = gdk_pixbuf_get_pixels(pixbuf); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
231 pixbuf_width = gdk_pixbuf_get_width(pixbuf); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
232 pixbuf_height = gdk_pixbuf_get_height(pixbuf); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
233 rowstride = gdk_pixbuf_get_rowstride(pixbuf); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
234 has_alpha = gdk_pixbuf_get_has_alpha(pixbuf); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
235 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
236 /* create the colourspace for the CGImage. */ |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
237 colorspace = CGColorSpaceCreateDeviceRGB(); |
4355 | 238 data_provider = CGDataProviderCreateWithData(NULL, data, |
239 pixbuf_height * rowstride, | |
240 NULL); | |
3525
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
241 image = CGImageCreate(pixbuf_width, pixbuf_height, 8, |
4355 | 242 has_alpha ? 32 : 24, rowstride, colorspace, |
243 has_alpha ? kCGImageAlphaLast : 0, | |
244 data_provider, NULL, FALSE, | |
245 kCGRenderingIntentDefault); | |
3525
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
246 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
247 /* release the colourspace and data provider, we have what we want. */ |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
248 CGDataProviderRelease(data_provider); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
249 CGColorSpaceRelease(colorspace); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
250 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
251 /* set the dock tile images */ |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
252 SetApplicationDockTileImage(image); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
253 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
254 #if 0 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
255 /* and release */ |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
256 CGImageRelease(image); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
257 g_object_unref(icon); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
258 g_object_unref(pixbuf); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
259 #endif |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
260 } |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
261 #endif |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
262 |
2411 | 263 static GOptionEntry cmd_entries[] = { |
2448
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
264 {"rew", 'r', 0, G_OPTION_ARG_NONE, &options.rew, N_("Skip backwards in playlist"), NULL}, |
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
265 {"play", 'p', 0, G_OPTION_ARG_NONE, &options.play, N_("Start playing current playlist"), NULL}, |
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
266 {"pause", 'u', 0, G_OPTION_ARG_NONE, &options.pause, N_("Pause current song"), NULL}, |
2475 | 267 {"stop", 's', 0, G_OPTION_ARG_NONE, &options.stop, N_("Stop current song"), NULL}, |
2551
cea3528b2996
[svn] Fix --play-pause commandline option, by Alex "Monkey" Maclean in #gentoo-x86
chainsaw
parents:
2530
diff
changeset
|
268 {"play-pause", 't', 0, G_OPTION_ARG_NONE, &options.play_pause, N_("Pause if playing, play otherwise"), NULL}, |
2448
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
269 {"fwd", 'f', 0, G_OPTION_ARG_NONE, &options.fwd, N_("Skip forward in playlist"), NULL}, |
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
270 {"show-jump-box", 'j', 0, G_OPTION_ARG_NONE, &options.show_jump_box, N_("Display Jump to File dialog"), NULL}, |
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
271 {"enqueue", 'e', 0, G_OPTION_ARG_NONE, &options.enqueue, N_("Don't clear the playlist"), NULL}, |
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
272 {"enqueue-to-temp", 'E', 0, G_OPTION_ARG_NONE, &options.enqueue_to_temp, N_("Add new files to a temporary playlist"), NULL}, |
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
273 {"show-main-window", 'm', 0, G_OPTION_ARG_NONE, &options.mainwin, N_("Display the main window"), NULL}, |
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
274 {"activate", 'a', 0, G_OPTION_ARG_NONE, &options.activate, N_("Display all open Audacious windows"), NULL}, |
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
275 {"headless", 'H', 0, G_OPTION_ARG_NONE, &options.headless, N_("Enable headless operation"), NULL}, |
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
276 {"no-log", 'N', 0, G_OPTION_ARG_NONE, &options.no_log, N_("Print all errors and warnings to stdout"), NULL}, |
4545
c9be7256db08
we don't show builtin features anymore
mf0102 <0102@gmx.at>
parents:
4544
diff
changeset
|
277 {"version", 'v', 0, G_OPTION_ARG_NONE, &options.version, N_("Show version"), NULL}, |
4355 | 278 #ifdef GDK_WINDOWING_QUARTZ |
279 {"macpack", 'n', 0, G_OPTION_ARG_NONE, &options.macpack, N_("Used in macpacking"), NULL}, /* Make this hidden */ | |
280 #endif | |
2411 | 281 {G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &options.filenames, N_("FILE..."), NULL}, |
282 {NULL}, | |
283 }; | |
2313 | 284 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
285 static gboolean |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
286 aud_start_playback(gpointer unused) |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
287 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
288 drct_play(); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
289 return FALSE; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
290 } |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
291 |
2313 | 292 static void |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
293 parse_cmd_line_options(gint *argc, gchar ***argv) |
2313 | 294 { |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
295 GOptionContext *context; |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
296 GError *error = NULL; |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
297 |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
298 memset(&options, '\0', sizeof(AudCmdLineOpt)); |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
299 options.session = -1; |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
300 |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
301 context = g_option_context_new(_("- play multimedia files")); |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
302 g_option_context_add_main_entries(context, cmd_entries, PACKAGE_NAME); |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
303 g_option_context_add_group(context, gtk_get_option_group(FALSE)); |
4492
55262ebeba2d
Conditional support for SM (libeggsmclient).
Matti Hamalainen <ccr@tnsp.org>
parents:
4467
diff
changeset
|
304 #ifdef USE_EGGSM |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
305 g_option_context_add_group(context, egg_sm_client_get_option_group()); |
4492
55262ebeba2d
Conditional support for SM (libeggsmclient).
Matti Hamalainen <ccr@tnsp.org>
parents:
4467
diff
changeset
|
306 #endif |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
307 if (!g_option_context_parse(context, argc, argv, &error)) |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
308 /* checking for MacOS X -psn_0_* errors*/ |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
309 if (error->message && !g_strrstr(error->message,"-psn_0_")) |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
310 { |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
311 g_printerr(_("%s: %s\nTry `%s --help' for more information.\n"), |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
312 (*argv)[0], error->message, (*argv)[0]); |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
313 exit(EXIT_FAILURE); |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
314 } |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
315 } |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
316 |
4575
92952061147d
Fix the initialization after messing it up myself - commandline argument handling was happening twice.
Matti Hamalainen <ccr@tnsp.org>
parents:
4563
diff
changeset
|
317 static void |
4593
bc29f566be02
Handle properly the situation when player is not running and files are added from commandline.
Matti Hamalainen <ccr@tnsp.org>
parents:
4587
diff
changeset
|
318 handle_cmd_line_options(gboolean skip) |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
319 { |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
320 gchar **filenames = options.filenames; |
2785 | 321 #ifdef USE_DBUS |
322 DBusGProxy *session = audacious_get_dbus_proxy(); | |
4661
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
323 gboolean is_running; |
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
324 |
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
325 if (skip) |
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
326 is_running = audacious_remote_is_running(session); |
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
327 else |
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
328 is_running = FALSE; |
2727
14f9a629ba9c
[svn] - rename xmms_remote namespace to audacious_remote namespace
nenolod
parents:
2717
diff
changeset
|
329 #endif |
2313 | 330 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
331 if (options.version) |
2411 | 332 { |
4542 | 333 print_version(); |
2411 | 334 exit(EXIT_SUCCESS); |
335 } | |
336 | |
2788
b2b920b165ad
[svn] - exclude codes which use session if USE_DBUS is not defined.
yaz
parents:
2786
diff
changeset
|
337 #ifdef USE_DBUS |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
338 if (is_running) |
2411 | 339 { |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
340 if (filenames != NULL) |
2411 | 341 { |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
342 gint pos = 0; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
343 gint i = 0; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
344 GList *fns = NULL; |
2512
3a1fc6f7c187
[svn] - unbreak relative path support. closes #791.
nenolod
parents:
2506
diff
changeset
|
345 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
346 for (i = 0; filenames[i] != NULL; i++) |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
347 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
348 gchar *filename; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
349 gchar *current_dir = g_get_current_dir(); |
2313 | 350 |
4355 | 351 if (!strstr(filenames[i], "://")) |
352 { | |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
353 if (filenames[i][0] == '/') |
4355 | 354 filename = g_strdup_printf("file:///%s", filenames[i]); |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
355 else |
4355 | 356 filename = g_strdup_printf("file:///%s/%s", current_dir, |
357 filenames[i]); | |
358 } | |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
359 else |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
360 filename = g_strdup(filenames[i]); |
2411 | 361 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
362 fns = g_list_prepend(fns, filename); |
2411 | 363 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
364 g_free(current_dir); |
2411 | 365 } |
2512
3a1fc6f7c187
[svn] - unbreak relative path support. closes #791.
nenolod
parents:
2506
diff
changeset
|
366 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
367 fns = g_list_reverse(fns); |
2605
1ceaf00f9c6d
[svn] - fix handling of multiple files on the command line.
nenolod
parents:
2574
diff
changeset
|
368 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
369 if (options.load_skins) |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
370 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
371 audacious_remote_set_skin(session, filenames[0]); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
372 skin_install_skin(filenames[0]); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
373 } |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
374 else |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
375 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
376 GList *i; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
377 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
378 if (options.enqueue_to_temp) |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
379 audacious_remote_playlist_enqueue_to_temp(session, filenames[0]); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
380 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
381 if (options.enqueue && options.play) |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
382 pos = audacious_remote_get_playlist_length(session); |
2605
1ceaf00f9c6d
[svn] - fix handling of multiple files on the command line.
nenolod
parents:
2574
diff
changeset
|
383 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
384 if (!options.enqueue) |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
385 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
386 audacious_remote_playlist_clear(session); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
387 audacious_remote_stop(session); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
388 } |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
389 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
390 for (i = fns; i != NULL; i = i->next) |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
391 audacious_remote_playlist_add_url_string(session, i->data); |
2313 | 392 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
393 if (options.enqueue && options.play && |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
394 audacious_remote_get_playlist_length(session) > pos) |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
395 audacious_remote_set_playlist_pos(session, pos); |
2605
1ceaf00f9c6d
[svn] - fix handling of multiple files on the command line.
nenolod
parents:
2574
diff
changeset
|
396 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
397 if (!options.enqueue) |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
398 audacious_remote_play(session); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
399 } |
2313 | 400 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
401 g_list_foreach(fns, (GFunc) g_free, NULL); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
402 g_list_free(fns); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
403 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
404 g_strfreev(filenames); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
405 } /* filename */ |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
406 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
407 if (options.rew) |
2832 | 408 audacious_remote_playlist_prev(session); |
2313 | 409 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
410 if (options.play) |
2832 | 411 audacious_remote_play(session); |
2313 | 412 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
413 if (options.pause) |
2832 | 414 audacious_remote_pause(session); |
2313 | 415 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
416 if (options.stop) |
2832 | 417 audacious_remote_stop(session); |
2313 | 418 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
419 if (options.fwd) |
2832 | 420 audacious_remote_playlist_next(session); |
2313 | 421 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
422 if (options.play_pause) |
2832 | 423 audacious_remote_play_pause(session); |
2313 | 424 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
425 if (options.show_jump_box) |
2832 | 426 audacious_remote_show_jtf_box(session); |
2313 | 427 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
428 if (options.mainwin) |
2832 | 429 audacious_remote_main_win_toggle(session, TRUE); |
2313 | 430 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
431 if (options.activate) |
2832 | 432 audacious_remote_activate(session); |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
433 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
434 exit(EXIT_SUCCESS); |
4026
17bf734f8187
avoid crash when audacious is launched with -p option.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
3978
diff
changeset
|
435 } /* is_running */ |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
436 else |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
437 #endif |
4593
bc29f566be02
Handle properly the situation when player is not running and files are added from commandline.
Matti Hamalainen <ccr@tnsp.org>
parents:
4587
diff
changeset
|
438 if (!skip) { /* !is_running */ |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
439 if (filenames != NULL) |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
440 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
441 gint pos = 0; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
442 gint i = 0; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
443 GList *fns = NULL; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
444 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
445 for (i = 0; filenames[i] != NULL; i++) |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
446 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
447 gchar *filename; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
448 gchar *current_dir = g_get_current_dir(); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
449 |
4355 | 450 if (!strstr(filenames[i], "://")) |
451 { | |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
452 if (filenames[i][0] == '/') |
4355 | 453 filename = g_strdup_printf("file:///%s", filenames[i]); |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
454 else |
4355 | 455 filename = g_strdup_printf("file:///%s/%s", current_dir, |
456 filenames[i]); | |
457 } | |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
458 else |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
459 filename = g_strdup(filenames[i]); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
460 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
461 fns = g_list_prepend(fns, filename); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
462 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
463 g_free(current_dir); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
464 } |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
465 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
466 fns = g_list_reverse(fns); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
467 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
468 { |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
469 if (options.enqueue_to_temp) |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
470 drct_pl_enqueue_to_temp(filenames[0]); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
471 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
472 if (options.enqueue && options.play) |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
473 pos = drct_pl_get_length(); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
474 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
475 if (!options.enqueue) |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
476 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
477 drct_pl_clear(); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
478 drct_stop(); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
479 } |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
480 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
481 drct_pl_add(fns); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
482 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
483 if (options.enqueue && options.play && |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
484 drct_pl_get_length() > pos) |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
485 drct_pl_set_pos(pos); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
486 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
487 if (!options.enqueue) |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
488 g_idle_add(aud_start_playback, NULL); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
489 } |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
490 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
491 g_list_foreach(fns, (GFunc) g_free, NULL); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
492 g_list_free(fns); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
493 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
494 g_strfreev(filenames); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
495 } /* filename */ |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
496 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
497 if (options.rew) |
3753 | 498 drct_pl_prev(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
499 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
500 if (options.play) |
3753 | 501 drct_play(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
502 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
503 if (options.pause) |
3753 | 504 drct_pause(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
505 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
506 if (options.stop) |
3753 | 507 drct_stop(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
508 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
509 if (options.fwd) |
3753 | 510 drct_pl_next(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
511 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
512 if (options.play_pause) { |
3753 | 513 if (drct_get_paused()) |
514 drct_play(); | |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
515 else |
3753 | 516 drct_pause(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
517 } |
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
518 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
519 if (options.show_jump_box) |
3753 | 520 drct_jtf_show(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
521 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
522 if (options.mainwin) |
3753 | 523 drct_main_win_toggle(TRUE); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
524 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
525 if (options.activate) |
3753 | 526 drct_activate(); |
4026
17bf734f8187
avoid crash when audacious is launched with -p option.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
3978
diff
changeset
|
527 } /* !is_running */ |
2313 | 528 } |
529 | |
530 static void | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
531 aud_setup_logger(void) |
2313 | 532 { |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
533 if (!aud_logger_start(aud_paths[BMP_PATH_LOG_FILE])) |
2313 | 534 return; |
535 | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
536 g_atexit(aud_logger_stop); |
2313 | 537 } |
538 | |
539 static void | |
540 run_load_skin_error_dialog(const gchar * skin_path) | |
541 { | |
542 const gchar *markup = | |
543 N_("<b><big>Unable to load skin.</big></b>\n" | |
544 "\n" | |
545 "Check that skin at '%s' is usable and default skin is properly " | |
546 "installed at '%s'\n"); | |
547 | |
548 GtkWidget *dialog = | |
549 gtk_message_dialog_new_with_markup(NULL, | |
550 GTK_DIALOG_MODAL, | |
551 GTK_MESSAGE_ERROR, | |
552 GTK_BUTTONS_CLOSE, | |
553 _(markup), | |
554 skin_path, | |
555 BMP_DEFAULT_SKIN_PATH); | |
556 gtk_dialog_run(GTK_DIALOG(dialog)); | |
557 gtk_widget_destroy(dialog); | |
558 } | |
559 | |
2369 | 560 static gboolean |
561 aud_headless_iteration(gpointer unused) | |
562 { | |
2506
630910fd140f
[svn] - changed plugin directory to ~/.local/share/audacious/Plugins (seems more logical to me)
mf0102
parents:
2475
diff
changeset
|
563 free_vis_data(); |
630910fd140f
[svn] - changed plugin directory to ~/.local/share/audacious/Plugins (seems more logical to me)
mf0102
parents:
2475
diff
changeset
|
564 return TRUE; |
2369 | 565 } |
566 | |
3480
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
567 static gboolean |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
568 load_extra_playlist(const gchar * path, const gchar * basename, |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
569 gpointer def) |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
570 { |
4644
23e712435e3e
Remove an unused variable.
Matti Hamalainen <ccr@tnsp.org>
parents:
4635
diff
changeset
|
571 Playlist *playlist = playlist_new(); |
23e712435e3e
Remove an unused variable.
Matti Hamalainen <ccr@tnsp.org>
parents:
4635
diff
changeset
|
572 |
3480
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
573 if (!playlist) { |
4635 | 574 g_warning("Couldn't create new playlist for %s / %s\n", path, basename); |
3480
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
575 return FALSE; |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
576 } |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
577 |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
578 playlist_add_playlist(playlist); |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
579 playlist_load(playlist, path); |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
580 |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
581 return FALSE; /* keep loading other playlists */ |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
582 } |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
583 |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
584 static void |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
585 resume_playback_on_startup() |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
586 { |
4563
8084f49a930a
Silence some pointless warnings in resume_playback_on_startup() by not using g_return_if_fail().
Matti Hamalainen <ccr@tnsp.org>
parents:
4562
diff
changeset
|
587 gint i; |
8084f49a930a
Silence some pointless warnings in resume_playback_on_startup() by not using g_return_if_fail().
Matti Hamalainen <ccr@tnsp.org>
parents:
4562
diff
changeset
|
588 |
8084f49a930a
Silence some pointless warnings in resume_playback_on_startup() by not using g_return_if_fail().
Matti Hamalainen <ccr@tnsp.org>
parents:
4562
diff
changeset
|
589 if (!cfg.resume_playback_on_startup || |
8084f49a930a
Silence some pointless warnings in resume_playback_on_startup() by not using g_return_if_fail().
Matti Hamalainen <ccr@tnsp.org>
parents:
4562
diff
changeset
|
590 cfg.resume_playback_on_startup_time == -1 || |
8084f49a930a
Silence some pointless warnings in resume_playback_on_startup() by not using g_return_if_fail().
Matti Hamalainen <ccr@tnsp.org>
parents:
4562
diff
changeset
|
591 playlist_get_length(playlist_get_active()) <= 0) |
8084f49a930a
Silence some pointless warnings in resume_playback_on_startup() by not using g_return_if_fail().
Matti Hamalainen <ccr@tnsp.org>
parents:
4562
diff
changeset
|
592 return; |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
593 |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
594 while (gtk_events_pending()) gtk_main_iteration(); |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
595 |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
596 playback_initiate(); |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
597 |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
598 /* Busy wait; loop is fairly tight to minimize duration of |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
599 * "frozen" GUI. Feel free to tune. --chainsaw */ |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
600 for (i = 0; i < 20; i++) |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
601 { |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
602 g_usleep(1000); |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
603 if (!ip_data.playing) |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
604 break; |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
605 } |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
606 playback_seek(cfg.resume_playback_on_startup_time / 1000); |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
607 } |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
608 |
4448 | 609 static void |
610 playlist_system_init() | |
611 { | |
612 Playlist *playlist; | |
613 | |
614 playlist_init(); | |
615 playlist = playlist_get_active(); | |
616 playlist_load(playlist, aud_paths[BMP_PATH_PLAYLIST_FILE]); | |
617 playlist_set_position(playlist, cfg.playlist_position); | |
618 | |
619 /* Load extra playlists */ | |
620 if (!dir_foreach(aud_paths[BMP_PATH_PLAYLISTS_DIR], load_extra_playlist, | |
621 playlist, NULL)) | |
622 g_warning("Could not load extra playlists\n"); | |
623 } | |
624 | |
4449
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
625 void |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
626 aud_quit(void) |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
627 { |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
628 GList *playlists = NULL, *playlists_top = NULL; |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
629 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
630 playlist_stop_get_info_thread(); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
631 |
4494
0f43f3a5eb12
Fix the "skin path is fucked up" bug.
William Pitcock <nenolod@atheme.org>
parents:
4492
diff
changeset
|
632 aud_config_save(); |
0f43f3a5eb12
Fix the "skin path is fucked up" bug.
William Pitcock <nenolod@atheme.org>
parents:
4492
diff
changeset
|
633 |
4449
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
634 if (options.headless == FALSE) |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
635 { |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
636 gtk_widget_hide(equalizerwin); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
637 gtk_widget_hide(playlistwin); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
638 gtk_widget_hide(mainwin); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
639 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
640 gtk_accel_map_save(aud_paths[BMP_PATH_ACCEL_FILE]); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
641 gtk_main_quit(); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
642 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
643 cleanup_skins(); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
644 } |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
645 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
646 plugin_system_cleanup(); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
647 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
648 /* free and clear each playlist */ |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
649 playlists = playlist_get_playlists(); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
650 playlists_top = playlists; |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
651 while ( playlists != NULL ) |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
652 { |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
653 playlist_clear((Playlist*)playlists->data); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
654 playlist_free((Playlist*)playlists->data); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
655 playlists = g_list_next(playlists); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
656 } |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
657 g_list_free( playlists_top ); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
658 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
659 g_cond_free(cond_scan); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
660 g_mutex_free(mutex_scan); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
661 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
662 exit(EXIT_SUCCESS); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
663 } |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
664 |
2313 | 665 gint |
666 main(gint argc, gchar ** argv) | |
667 { | |
2644
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
668 /* glib-2.13.0 requires g_thread_init() to be called before all |
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
669 other GLib functions */ |
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
670 g_thread_init(NULL); |
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
671 if (!g_thread_supported()) { |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
672 g_printerr(_("Sorry, threads aren't supported on your platform.\n")); |
2644
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
673 exit(EXIT_FAILURE); |
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
674 } |
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
675 |
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
676 gdk_threads_init(); |
4562
a6d0f9d6198a
Made handling of commandline options to happen before plugin and playlist
Matti Hamalainen <ccr@tnsp.org>
parents:
4545
diff
changeset
|
677 mowgli_init(); |
2644
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
678 |
2313 | 679 /* Setup l10n early so we can print localized error messages */ |
680 gtk_set_locale(); | |
681 bindtextdomain(PACKAGE_NAME, LOCALEDIR); | |
682 bind_textdomain_codeset(PACKAGE_NAME, "UTF-8"); | |
2388
52bcc18eb8bb
[svn] - attempt to bind the audacious-plugins domain
nenolod
parents:
2369
diff
changeset
|
683 bindtextdomain(PACKAGE_NAME "-plugins", LOCALEDIR); |
52bcc18eb8bb
[svn] - attempt to bind the audacious-plugins domain
nenolod
parents:
2369
diff
changeset
|
684 bind_textdomain_codeset(PACKAGE_NAME "-plugins", "UTF-8"); |
2313 | 685 textdomain(PACKAGE_NAME); |
686 | |
4492
55262ebeba2d
Conditional support for SM (libeggsmclient).
Matti Hamalainen <ccr@tnsp.org>
parents:
4467
diff
changeset
|
687 #if !defined(_WIN32) && defined(USE_EGGSM) |
4315
c942eaef7bc6
Implement session management.
Ivan N. Zlatev <contact@i-nz.net>
parents:
4286
diff
changeset
|
688 egg_set_desktop_file(AUDACIOUS_DESKTOP_FILE); |
c942eaef7bc6
Implement session management.
Ivan N. Zlatev <contact@i-nz.net>
parents:
4286
diff
changeset
|
689 #endif |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
690 aud_init_paths(); |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
691 aud_make_user_dir(); |
2313 | 692 |
693 cond_scan = g_cond_new(); | |
694 mutex_scan = g_mutex_new(); | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
695 gtk_rc_add_default_file(aud_paths[BMP_PATH_GTKRC_FILE]); |
2463 | 696 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
697 parse_cmd_line_options(&argc, &argv); |
2313 | 698 |
699 if (options.no_log == FALSE) | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
700 aud_setup_logger(); |
2313 | 701 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
702 g_message("Initializing Gtk+"); |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
703 if (!gtk_init_check(&argc, &argv) && options.headless == FALSE) { |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
704 /* GTK check failed, and no arguments passed to indicate |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
705 that user is intending to only remote control a running |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
706 session */ |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
707 g_printerr(_("%s: Unable to open display, exiting.\n"), argv[0]); |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
708 exit(EXIT_FAILURE); |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
709 } |
2313 | 710 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
711 g_message("Setting up libSAD"); |
2313 | 712 g_random_set_seed(time(NULL)); |
4234 | 713 SAD_dither_init_rand((gint32)time(NULL)); |
2313 | 714 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
715 g_message("Loading configuration"); |
4412
180996fcf12a
bmp_config_* -> aud_config_*
Matti Hamalainen <ccr@tnsp.org>
parents:
4411
diff
changeset
|
716 aud_config_load(); |
2313 | 717 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
718 g_message("Initializing signal handlers"); |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
719 signal_handlers_init(); |
4562
a6d0f9d6198a
Made handling of commandline options to happen before plugin and playlist
Matti Hamalainen <ccr@tnsp.org>
parents:
4545
diff
changeset
|
720 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
721 g_message("Handling commandline options, part #1"); |
4593
bc29f566be02
Handle properly the situation when player is not running and files are added from commandline.
Matti Hamalainen <ccr@tnsp.org>
parents:
4587
diff
changeset
|
722 handle_cmd_line_options(TRUE); |
3306
404ffedef3e1
added support for plugin-customizable menus; plugins can add their own entries (and even submenus) in main and playlist popup menus
Giacomo Lozito <james@develia.org>
parents:
3296
diff
changeset
|
723 |
4355 | 724 if (options.headless == FALSE) |
3306
404ffedef3e1
added support for plugin-customizable menus; plugins can add their own entries (and even submenus) in main and playlist popup menus
Giacomo Lozito <james@develia.org>
parents:
3296
diff
changeset
|
725 { |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
726 g_message("Non-headless operation setup"); |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
727 ui_main_check_theme_engine(); |
3965
aea8b763b134
Work around the issues with broken Gtk-Qt-Engine and Modern skins with inline GTK.
William Pitcock <nenolod@atheme.org>
parents:
3959
diff
changeset
|
728 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
729 /* register icons in stock |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
730 NOTE: should be called before UIManager */ |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
731 register_aud_stock_icons(); |
3978
40db2fe8d073
- fixed custom stock icons that were not displayed
Giacomo Lozito <james@develia.org>
parents:
3965
diff
changeset
|
732 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
733 /* UIManager |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
734 NOTE: this needs to be called before plugin init, cause |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
735 plugin init functions may want to add custom menu entries */ |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
736 ui_manager_init(); |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
737 ui_manager_create_menus(); |
3306
404ffedef3e1
added support for plugin-customizable menus; plugins can add their own entries (and even submenus) in main and playlist popup menus
Giacomo Lozito <james@develia.org>
parents:
3296
diff
changeset
|
738 } |
404ffedef3e1
added support for plugin-customizable menus; plugins can add their own entries (and even submenus) in main and playlist popup menus
Giacomo Lozito <james@develia.org>
parents:
3296
diff
changeset
|
739 |
4661
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
740 #ifdef USE_DBUS |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
741 g_message("Initializing D-Bus"); |
4661
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
742 init_dbus(); |
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
743 #endif |
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
744 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
745 g_message("Initializing plugin subsystems..."); |
2313 | 746 plugin_system_init(); |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
747 |
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
748 g_message("Setting up playlists"); |
4448 | 749 playlist_system_init(); |
4562
a6d0f9d6198a
Made handling of commandline options to happen before plugin and playlist
Matti Hamalainen <ccr@tnsp.org>
parents:
4545
diff
changeset
|
750 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
751 g_message("Handling commandline options, part #2"); |
4593
bc29f566be02
Handle properly the situation when player is not running and files are added from commandline.
Matti Hamalainen <ccr@tnsp.org>
parents:
4587
diff
changeset
|
752 handle_cmd_line_options(FALSE); |
bc29f566be02
Handle properly the situation when player is not running and files are added from commandline.
Matti Hamalainen <ccr@tnsp.org>
parents:
4587
diff
changeset
|
753 |
2313 | 754 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
755 g_message("Playlist scanner thread startup"); |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
756 playlist_start_get_info_thread(); |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
757 |
4448 | 758 output_set_volume((cfg.saved_volume & 0xff00) >> 8, |
759 (cfg.saved_volume & 0x00ff)); | |
760 | |
4355 | 761 if (options.headless == FALSE) |
2313 | 762 { |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
763 g_message("GUI and skin setup"); |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
764 aud_set_default_icon(); |
3525
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
765 #ifdef GDK_WINDOWING_QUARTZ |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
766 set_dock_icon(); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
767 #endif |
2313 | 768 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
769 gtk_accel_map_load(aud_paths[BMP_PATH_ACCEL_FILE]); |
2313 | 770 |
771 if (!init_skins(cfg.skin)) { | |
772 run_load_skin_error_dialog(cfg.skin); | |
773 exit(EXIT_FAILURE); | |
774 } | |
775 | |
776 GDK_THREADS_ENTER(); | |
3480
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
777 |
4357 | 778 /* this needs to be called after all 3 windows are created and |
779 * input plugins are setup'ed | |
780 * but not if we're running headless --nenolod | |
781 */ | |
782 mainwin_setup_menus(); | |
4587
ab8bc8a89a52
remove ui_main_set_initial_volume, call volume set hook instead
Tomasz Mon <desowin@gmail.com>
parents:
4575
diff
changeset
|
783 |
ab8bc8a89a52
remove ui_main_set_initial_volume, call volume set hook instead
Tomasz Mon <desowin@gmail.com>
parents:
4575
diff
changeset
|
784 gint h_vol[2]; |
ab8bc8a89a52
remove ui_main_set_initial_volume, call volume set hook instead
Tomasz Mon <desowin@gmail.com>
parents:
4575
diff
changeset
|
785 input_get_volume(&h_vol[0], &h_vol[1]); |
ab8bc8a89a52
remove ui_main_set_initial_volume, call volume set hook instead
Tomasz Mon <desowin@gmail.com>
parents:
4575
diff
changeset
|
786 hook_call("volume set", h_vol); |
2313 | 787 |
788 /* FIXME: delayed, because it deals directly with the plugin | |
789 * interface to set menu items */ | |
790 create_prefs_window(); | |
791 | |
2364 | 792 create_fileinfo_window(); |
793 | |
2313 | 794 |
795 if (cfg.player_visible) | |
796 mainwin_show(TRUE); | |
797 else if (!cfg.playlist_visible && !cfg.equalizer_visible) | |
2651
4d5e6a8717dd
[svn] - allow the player to start with all of its windows hidden (but give a warning to the user, whose display can be disabled); also, try to remember player windows positions when they stay hidden between sessions
giacomo
parents:
2644
diff
changeset
|
798 { |
4d5e6a8717dd
[svn] - allow the player to start with all of its windows hidden (but give a warning to the user, whose display can be disabled); also, try to remember player windows positions when they stay hidden between sessions
giacomo
parents:
2644
diff
changeset
|
799 /* all of the windows are hidden... warn user about this */ |
4d5e6a8717dd
[svn] - allow the player to start with all of its windows hidden (but give a warning to the user, whose display can be disabled); also, try to remember player windows positions when they stay hidden between sessions
giacomo
parents:
2644
diff
changeset
|
800 mainwin_show_visibility_warning(); |
4d5e6a8717dd
[svn] - allow the player to start with all of its windows hidden (but give a warning to the user, whose display can be disabled); also, try to remember player windows positions when they stay hidden between sessions
giacomo
parents:
2644
diff
changeset
|
801 } |
2313 | 802 |
803 if (cfg.equalizer_visible) | |
804 equalizerwin_show(TRUE); | |
805 | |
806 if (cfg.playlist_visible) | |
807 playlistwin_show(); | |
808 | |
809 hint_set_always(cfg.always_on_top); | |
810 | |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
811 resume_playback_on_startup(); |
2364 | 812 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
813 g_message("Entering Gtk+ main loop!"); |
2313 | 814 gtk_main(); |
815 | |
816 GDK_THREADS_LEAVE(); | |
817 } | |
2364 | 818 // if we are running headless |
2313 | 819 else |
820 { | |
4366
1f900d7b737b
print a note when headless operation is enabled
mf0102 <0102@gmx.at>
parents:
4365
diff
changeset
|
821 g_print(_("Headless operation enabled\n")); |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
822 resume_playback_on_startup(); |
2313 | 823 |
2506
630910fd140f
[svn] - changed plugin directory to ~/.local/share/audacious/Plugins (seems more logical to me)
mf0102
parents:
2475
diff
changeset
|
824 g_timeout_add(10, aud_headless_iteration, NULL); |
4504
a47288ced5d5
- renamed some files to reflect their UI contents
mf0102 <0102@gmx.at>
parents:
4494
diff
changeset
|
825 g_main_loop_run(g_main_loop_new(NULL, TRUE)); |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
826 } |
2313 | 827 |
4449
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
828 aud_quit(); |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
829 return EXIT_SUCCESS; |
2313 | 830 } |