Mercurial > audlegacy
annotate src/audacious/main.c @ 4532:97b29dec6c6b
moved away some stuff from main.c
author | mf0102 <0102@gmx.at> |
---|---|
date | Thu, 08 May 2008 22:49:52 +0200 |
parents | b3e4f5c31546 |
children | 26209b646930 |
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 gboolean has_x11_connection = FALSE; /* do we have an X11 connection? */ |
93 static const gchar *application_name = N_("Audacious"); | |
2313 | 94 |
4350
8071e599916d
renamed BmpCmdLineOpt to AudCmdLineOpt (greatest commit EVAR! ;-)
mf0102 <0102@gmx.at>
parents:
4347
diff
changeset
|
95 struct _AudCmdLineOpt { |
2411 | 96 gchar **filenames; |
2313 | 97 gint session; |
3351
7a4fcf84a34f
Removed the hardcoded Add/Play CD menu entry
Calin Crisan ccrisan@gmail.com
parents:
3346
diff
changeset
|
98 gboolean play, stop, pause, fwd, rew, play_pause, show_jump_box; |
2313 | 99 gboolean enqueue, mainwin, remote, activate; |
100 gboolean load_skins; | |
101 gboolean headless; | |
102 gboolean no_log; | |
103 gboolean enqueue_to_temp; | |
2411 | 104 gboolean version; |
2313 | 105 gchar *previous_session_id; |
4355 | 106 gboolean macpack; |
2313 | 107 }; |
108 | |
4350
8071e599916d
renamed BmpCmdLineOpt to AudCmdLineOpt (greatest commit EVAR! ;-)
mf0102 <0102@gmx.at>
parents:
4347
diff
changeset
|
109 typedef struct _AudCmdLineOpt AudCmdLineOpt; |
2313 | 110 |
4517 | 111 static AudCmdLineOpt options; |
2313 | 112 |
113 | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
114 gchar *aud_paths[BMP_PATH_COUNT] = {}; |
2313 | 115 |
116 GCond *cond_scan; | |
117 GMutex *mutex_scan; | |
3346
71d8d93f1bad
Implemented TrackChange, StatusChange signals, with a stub for CapsChange.
Ben Tucker <ben.tucker@gmail.com>
parents:
3334
diff
changeset
|
118 #ifdef USE_DBUS |
71d8d93f1bad
Implemented TrackChange, StatusChange signals, with a stub for CapsChange.
Ben Tucker <ben.tucker@gmail.com>
parents:
3334
diff
changeset
|
119 MprisPlayer *mpris; |
71d8d93f1bad
Implemented TrackChange, StatusChange signals, with a stub for CapsChange.
Ben Tucker <ben.tucker@gmail.com>
parents:
3334
diff
changeset
|
120 #endif |
2313 | 121 |
122 static void | |
123 dump_version(void) | |
124 { | |
4450
413d80f7b011
remove the strange feature list feature, which was used for GConf only
mf0102 <0102@gmx.at>
parents:
4449
diff
changeset
|
125 g_printf("%s %s [%s]\n", _(application_name), VERSION, svn_stamp); |
2313 | 126 } |
127 | |
128 static void | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
129 aud_make_user_dir(void) |
2313 | 130 { |
131 const mode_t mode755 = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; | |
132 | |
4413
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_USER_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_USER_PLUGIN_DIR], mode755); |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
135 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
|
136 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
|
137 make_directory(aud_paths[BMP_PATH_PLAYLISTS_DIR], mode755); |
2313 | 138 } |
139 | |
140 static void | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
141 aud_free_paths(void) |
2313 | 142 { |
143 int i; | |
144 | |
145 for (i = 0; i < BMP_PATH_COUNT; i++) | |
146 { | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
147 g_free(aud_paths[i]); |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
148 aud_paths[i] = 0; |
2313 | 149 } |
150 } | |
151 | |
2317
49d285f6008b
[svn] Full support for XDG basedir added. The old config doesn't get automatically converted yet.
js
parents:
2313
diff
changeset
|
152 static void |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
153 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
|
154 { |
2364 | 155 char *xdg_config_home; |
156 char *xdg_data_home; | |
157 char *xdg_cache_home; | |
2313 | 158 |
2364 | 159 xdg_config_home = (getenv("XDG_CONFIG_HOME") == NULL |
160 ? g_build_filename(g_get_home_dir(), ".config", NULL) | |
161 : g_strdup(getenv("XDG_CONFIG_HOME"))); | |
162 xdg_data_home = (getenv("XDG_DATA_HOME") == NULL | |
163 ? g_build_filename(g_get_home_dir(), ".local", "share", NULL) | |
164 : g_strdup(getenv("XDG_DATA_HOME"))); | |
165 xdg_cache_home = (getenv("XDG_CACHE_HOME") == NULL | |
166 ? g_build_filename(g_get_home_dir(), ".cache", NULL) | |
167 : g_strdup(getenv("XDG_CACHE_HOME"))); | |
2313 | 168 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
169 aud_paths[BMP_PATH_USER_DIR] = |
2364 | 170 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
|
171 aud_paths[BMP_PATH_USER_SKIN_DIR] = |
2364 | 172 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
|
173 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
|
174 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
|
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_SKIN_THUMB_DIR] = |
2364 | 177 g_build_filename(xdg_cache_home, "audacious", "thumbs", NULL); |
2313 | 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_PLAYLISTS_DIR] = |
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], "playlists", NULL); |
3400
8764498b75ed
Add new playlists directory to paths
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3351
diff
changeset
|
181 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
182 aud_paths[BMP_PATH_CONFIG_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], "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
|
184 #ifdef HAVE_XSPF_PLAYLIST |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
185 aud_paths[BMP_PATH_PLAYLIST_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
186 g_build_filename(aud_paths[BMP_PATH_USER_DIR], |
2364 | 187 "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
|
188 #else |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
189 aud_paths[BMP_PATH_PLAYLIST_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
190 g_build_filename(aud_paths[BMP_PATH_USER_DIR], |
2364 | 191 "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
|
192 #endif |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
193 aud_paths[BMP_PATH_ACCEL_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
194 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
|
195 aud_paths[BMP_PATH_LOG_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], "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
|
197 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
198 aud_paths[BMP_PATH_GTKRC_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
199 g_build_filename(aud_paths[BMP_PATH_USER_DIR], "gtkrc", NULL); |
2463 | 200 |
2364 | 201 g_free(xdg_config_home); |
202 g_free(xdg_data_home); | |
203 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
|
204 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
205 g_atexit(aud_free_paths); |
2313 | 206 } |
207 | |
208 | |
209 static void | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
210 aud_set_default_icon(void) |
2313 | 211 { |
212 GdkPixbuf *icon; | |
213 | |
214 icon = gdk_pixbuf_new_from_xpm_data((const gchar **) audacious_player_xpm); | |
215 gtk_window_set_default_icon(icon); | |
216 g_object_unref(icon); | |
217 } | |
218 | |
3525
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
219 #ifdef GDK_WINDOWING_QUARTZ |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
220 static void |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
221 set_dock_icon(void) |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
222 { |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
223 GdkPixbuf *icon, *pixbuf; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
224 CGColorSpaceRef colorspace; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
225 CGDataProviderRef data_provider; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
226 CGImageRef image; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
227 gpointer data; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
228 gint rowstride, pixbuf_width, pixbuf_height; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
229 gboolean has_alpha; |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
230 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
231 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
|
232 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
|
233 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
234 data = gdk_pixbuf_get_pixels(pixbuf); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
235 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
|
236 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
|
237 rowstride = gdk_pixbuf_get_rowstride(pixbuf); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
238 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
|
239 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
240 /* create the colourspace for the CGImage. */ |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
241 colorspace = CGColorSpaceCreateDeviceRGB(); |
4355 | 242 data_provider = CGDataProviderCreateWithData(NULL, data, |
243 pixbuf_height * rowstride, | |
244 NULL); | |
3525
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
245 image = CGImageCreate(pixbuf_width, pixbuf_height, 8, |
4355 | 246 has_alpha ? 32 : 24, rowstride, colorspace, |
247 has_alpha ? kCGImageAlphaLast : 0, | |
248 data_provider, NULL, FALSE, | |
249 kCGRenderingIntentDefault); | |
3525
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 /* 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
|
252 CGDataProviderRelease(data_provider); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
253 CGColorSpaceRelease(colorspace); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
254 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
255 /* set the dock tile images */ |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
256 SetApplicationDockTileImage(image); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
257 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
258 #if 0 |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
259 /* and release */ |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
260 CGImageRelease(image); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
261 g_object_unref(icon); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
262 g_object_unref(pixbuf); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
263 #endif |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
264 } |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
265 #endif |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
266 |
2411 | 267 static GOptionEntry cmd_entries[] = { |
2448
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
268 {"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
|
269 {"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
|
270 {"pause", 'u', 0, G_OPTION_ARG_NONE, &options.pause, N_("Pause current song"), NULL}, |
2475 | 271 {"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
|
272 {"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
|
273 {"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
|
274 {"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
|
275 {"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
|
276 {"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
|
277 {"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
|
278 {"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
|
279 {"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
|
280 {"no-log", 'N', 0, G_OPTION_ARG_NONE, &options.no_log, N_("Print all errors and warnings to stdout"), NULL}, |
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
281 {"version", 'v', 0, G_OPTION_ARG_NONE, &options.version, N_("Show version and builtin features"), NULL}, |
4355 | 282 #ifdef GDK_WINDOWING_QUARTZ |
283 {"macpack", 'n', 0, G_OPTION_ARG_NONE, &options.macpack, N_("Used in macpacking"), NULL}, /* Make this hidden */ | |
284 #endif | |
2411 | 285 {G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &options.filenames, N_("FILE..."), NULL}, |
286 {NULL}, | |
287 }; | |
2313 | 288 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
289 static gboolean |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
290 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
|
291 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
292 drct_play(); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
293 return FALSE; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
294 } |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
295 |
2313 | 296 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
|
297 parse_cmd_line_options(gint *argc, gchar ***argv) |
2313 | 298 { |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
299 GOptionContext *context; |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
300 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
|
301 |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
302 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
|
303 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
|
304 |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
305 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
|
306 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
|
307 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
|
308 #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
|
309 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
|
310 #endif |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
311 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
|
312 /* 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
|
313 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
|
314 { |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
315 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
|
316 (*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
|
317 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
|
318 } |
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 |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
321 static void |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
322 handle_cmd_line_options() |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
323 { |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
324 gchar **filenames = options.filenames; |
2785 | 325 #ifdef USE_DBUS |
326 DBusGProxy *session = audacious_get_dbus_proxy(); | |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
327 gboolean is_running = audacious_remote_is_running(session); |
2727
14f9a629ba9c
[svn] - rename xmms_remote namespace to audacious_remote namespace
nenolod
parents:
2717
diff
changeset
|
328 #endif |
2313 | 329 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
330 if (options.version) |
2411 | 331 { |
332 dump_version(); | |
333 exit(EXIT_SUCCESS); | |
334 } | |
335 | |
2788
b2b920b165ad
[svn] - exclude codes which use session if USE_DBUS is not defined.
yaz
parents:
2786
diff
changeset
|
336 #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
|
337 if (is_running) |
2411 | 338 { |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
339 if (filenames != NULL) |
2411 | 340 { |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
341 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
|
342 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
|
343 GList *fns = NULL; |
2512
3a1fc6f7c187
[svn] - unbreak relative path support. closes #791.
nenolod
parents:
2506
diff
changeset
|
344 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
345 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
|
346 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
347 gchar *filename; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
348 gchar *current_dir = g_get_current_dir(); |
2313 | 349 |
4355 | 350 if (!strstr(filenames[i], "://")) |
351 { | |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
352 if (filenames[i][0] == '/') |
4355 | 353 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
|
354 else |
4355 | 355 filename = g_strdup_printf("file:///%s/%s", current_dir, |
356 filenames[i]); | |
357 } | |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
358 else |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
359 filename = g_strdup(filenames[i]); |
2411 | 360 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
361 fns = g_list_prepend(fns, filename); |
2411 | 362 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
363 g_free(current_dir); |
2411 | 364 } |
2512
3a1fc6f7c187
[svn] - unbreak relative path support. closes #791.
nenolod
parents:
2506
diff
changeset
|
365 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
366 fns = g_list_reverse(fns); |
2605
1ceaf00f9c6d
[svn] - fix handling of multiple files on the command line.
nenolod
parents:
2574
diff
changeset
|
367 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
368 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
|
369 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
370 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
|
371 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
|
372 } |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
373 else |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
374 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
375 GList *i; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
376 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
377 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
|
378 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
|
379 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
380 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
|
381 pos = audacious_remote_get_playlist_length(session); |
2605
1ceaf00f9c6d
[svn] - fix handling of multiple files on the command line.
nenolod
parents:
2574
diff
changeset
|
382 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
383 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
|
384 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
385 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
|
386 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
|
387 } |
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 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
|
390 audacious_remote_playlist_add_url_string(session, i->data); |
2313 | 391 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
392 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
|
393 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
|
394 audacious_remote_set_playlist_pos(session, pos); |
2605
1ceaf00f9c6d
[svn] - fix handling of multiple files on the command line.
nenolod
parents:
2574
diff
changeset
|
395 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
396 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
|
397 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
|
398 } |
2313 | 399 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
400 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
|
401 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
|
402 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
403 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
|
404 } /* filename */ |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
405 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
406 if (options.rew) |
2832 | 407 audacious_remote_playlist_prev(session); |
2313 | 408 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
409 if (options.play) |
2832 | 410 audacious_remote_play(session); |
2313 | 411 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
412 if (options.pause) |
2832 | 413 audacious_remote_pause(session); |
2313 | 414 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
415 if (options.stop) |
2832 | 416 audacious_remote_stop(session); |
2313 | 417 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
418 if (options.fwd) |
2832 | 419 audacious_remote_playlist_next(session); |
2313 | 420 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
421 if (options.play_pause) |
2832 | 422 audacious_remote_play_pause(session); |
2313 | 423 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
424 if (options.show_jump_box) |
2832 | 425 audacious_remote_show_jtf_box(session); |
2313 | 426 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
427 if (options.mainwin) |
2832 | 428 audacious_remote_main_win_toggle(session, TRUE); |
2313 | 429 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
430 if (options.activate) |
2832 | 431 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
|
432 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
433 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
|
434 } /* 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
|
435 else |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
436 #endif |
4026
17bf734f8187
avoid crash when audacious is launched with -p option.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
3978
diff
changeset
|
437 { /* !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
|
438 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
|
439 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
440 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
|
441 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
|
442 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
|
443 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
444 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
|
445 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
446 gchar *filename; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
447 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
|
448 |
4355 | 449 if (!strstr(filenames[i], "://")) |
450 { | |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
451 if (filenames[i][0] == '/') |
4355 | 452 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
|
453 else |
4355 | 454 filename = g_strdup_printf("file:///%s/%s", current_dir, |
455 filenames[i]); | |
456 } | |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
457 else |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
458 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
|
459 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
460 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
|
461 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
462 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
|
463 } |
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 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
|
466 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
467 { |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
468 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
|
469 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
|
470 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
471 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
|
472 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
|
473 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
474 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
|
475 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
476 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
|
477 drct_stop(); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
478 } |
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 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
|
481 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
482 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
|
483 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
|
484 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
|
485 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
486 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
|
487 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
|
488 } |
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 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
|
491 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
|
492 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
493 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
|
494 } /* filename */ |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
495 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
496 if (options.rew) |
3753 | 497 drct_pl_prev(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
498 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
499 if (options.play) |
3753 | 500 drct_play(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
501 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
502 if (options.pause) |
3753 | 503 drct_pause(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
504 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
505 if (options.stop) |
3753 | 506 drct_stop(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
507 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
508 if (options.fwd) |
3753 | 509 drct_pl_next(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
510 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
511 if (options.play_pause) { |
3753 | 512 if (drct_get_paused()) |
513 drct_play(); | |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
514 else |
3753 | 515 drct_pause(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
516 } |
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
517 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
518 if (options.show_jump_box) |
3753 | 519 drct_jtf_show(); |
2845
a124656d4423
added handlers for cmd line args when remote == false
Ben Tucker <ben.tucker@gmail.com>
parents:
2838
diff
changeset
|
520 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
521 if (options.mainwin) |
3753 | 522 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
|
523 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
524 if (options.activate) |
3753 | 525 drct_activate(); |
4026
17bf734f8187
avoid crash when audacious is launched with -p option.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
3978
diff
changeset
|
526 } /* !is_running */ |
2313 | 527 } |
528 | |
529 static void | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
530 aud_setup_logger(void) |
2313 | 531 { |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
532 if (!aud_logger_start(aud_paths[BMP_PATH_LOG_FILE])) |
2313 | 533 return; |
534 | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
535 g_atexit(aud_logger_stop); |
2313 | 536 } |
537 | |
538 static void | |
539 run_load_skin_error_dialog(const gchar * skin_path) | |
540 { | |
541 const gchar *markup = | |
542 N_("<b><big>Unable to load skin.</big></b>\n" | |
543 "\n" | |
544 "Check that skin at '%s' is usable and default skin is properly " | |
545 "installed at '%s'\n"); | |
546 | |
547 GtkWidget *dialog = | |
548 gtk_message_dialog_new_with_markup(NULL, | |
549 GTK_DIALOG_MODAL, | |
550 GTK_MESSAGE_ERROR, | |
551 GTK_BUTTONS_CLOSE, | |
552 _(markup), | |
553 skin_path, | |
554 BMP_DEFAULT_SKIN_PATH); | |
555 gtk_dialog_run(GTK_DIALOG(dialog)); | |
556 gtk_widget_destroy(dialog); | |
557 } | |
558 | |
2369 | 559 static gboolean |
560 aud_headless_iteration(gpointer unused) | |
561 { | |
2506
630910fd140f
[svn] - changed plugin directory to ~/.local/share/audacious/Plugins (seems more logical to me)
mf0102
parents:
2475
diff
changeset
|
562 free_vis_data(); |
630910fd140f
[svn] - changed plugin directory to ~/.local/share/audacious/Plugins (seems more logical to me)
mf0102
parents:
2475
diff
changeset
|
563 return TRUE; |
2369 | 564 } |
565 | |
3480
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
566 static gboolean |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
567 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
|
568 gpointer def) |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
569 { |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
570 const gchar *title; |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
571 Playlist *playlist; |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
572 Playlist *deflist; |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
573 |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
574 deflist = (Playlist *)def; |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
575 playlist = playlist_new(); |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
576 if (!playlist) { |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
577 g_warning("Couldn't create new playlist\n"); |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
578 return FALSE; |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
579 } |
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 playlist_add_playlist(playlist); |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
582 playlist_load(playlist, path); |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
583 |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
584 title = playlist_get_current_name(playlist); |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
585 |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
586 return FALSE; /* keep loading other playlists */ |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
587 } |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
588 |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
589 static void |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
590 resume_playback_on_startup() |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
591 { |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
592 g_return_if_fail(cfg.resume_playback_on_startup); |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
593 g_return_if_fail(cfg.resume_playback_on_startup_time != -1); |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
594 g_return_if_fail(playlist_get_length(playlist_get_active()) > 0); |
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 int i; |
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 while (gtk_events_pending()) gtk_main_iteration(); |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
599 |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
600 playback_initiate(); |
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 /* 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
|
603 * "frozen" GUI. Feel free to tune. --chainsaw */ |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
604 for (i = 0; i < 20; i++) |
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 g_usleep(1000); |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
607 if (!ip_data.playing) |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
608 break; |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
609 } |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
610 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
|
611 } |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
612 |
4448 | 613 static void |
614 playlist_system_init() | |
615 { | |
616 Playlist *playlist; | |
617 | |
618 playlist_init(); | |
619 playlist = playlist_get_active(); | |
620 playlist_load(playlist, aud_paths[BMP_PATH_PLAYLIST_FILE]); | |
621 playlist_set_position(playlist, cfg.playlist_position); | |
622 | |
623 /* Load extra playlists */ | |
624 if (!dir_foreach(aud_paths[BMP_PATH_PLAYLISTS_DIR], load_extra_playlist, | |
625 playlist, NULL)) | |
626 g_warning("Could not load extra playlists\n"); | |
627 } | |
628 | |
4449
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
629 void |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
630 aud_quit(void) |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
631 { |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
632 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
|
633 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
634 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
|
635 |
4494
0f43f3a5eb12
Fix the "skin path is fucked up" bug.
William Pitcock <nenolod@atheme.org>
parents:
4492
diff
changeset
|
636 aud_config_save(); |
0f43f3a5eb12
Fix the "skin path is fucked up" bug.
William Pitcock <nenolod@atheme.org>
parents:
4492
diff
changeset
|
637 |
4449
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
638 if (options.headless == FALSE) |
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_widget_hide(equalizerwin); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
641 gtk_widget_hide(playlistwin); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
642 gtk_widget_hide(mainwin); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
643 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
644 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
|
645 gtk_main_quit(); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
646 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
647 cleanup_skins(); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
648 } |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
649 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
650 plugin_system_cleanup(); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
651 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
652 /* 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
|
653 playlists = playlist_get_playlists(); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
654 playlists_top = playlists; |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
655 while ( playlists != NULL ) |
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 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
|
658 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
|
659 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
|
660 } |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
661 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
|
662 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
663 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
|
664 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
|
665 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
666 exit(EXIT_SUCCESS); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
667 } |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
668 |
2313 | 669 gint |
670 main(gint argc, gchar ** argv) | |
671 { | |
2644
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
672 /* 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
|
673 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
|
674 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
|
675 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
|
676 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
|
677 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
|
678 } |
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
679 |
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
680 gdk_threads_init(); |
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
681 |
2313 | 682 /* Setup l10n early so we can print localized error messages */ |
683 gtk_set_locale(); | |
684 bindtextdomain(PACKAGE_NAME, LOCALEDIR); | |
685 bind_textdomain_codeset(PACKAGE_NAME, "UTF-8"); | |
2388
52bcc18eb8bb
[svn] - attempt to bind the audacious-plugins domain
nenolod
parents:
2369
diff
changeset
|
686 bindtextdomain(PACKAGE_NAME "-plugins", LOCALEDIR); |
52bcc18eb8bb
[svn] - attempt to bind the audacious-plugins domain
nenolod
parents:
2369
diff
changeset
|
687 bind_textdomain_codeset(PACKAGE_NAME "-plugins", "UTF-8"); |
2313 | 688 textdomain(PACKAGE_NAME); |
689 | |
4492
55262ebeba2d
Conditional support for SM (libeggsmclient).
Matti Hamalainen <ccr@tnsp.org>
parents:
4467
diff
changeset
|
690 #if !defined(_WIN32) && defined(USE_EGGSM) |
4315
c942eaef7bc6
Implement session management.
Ivan N. Zlatev <contact@i-nz.net>
parents:
4286
diff
changeset
|
691 egg_set_desktop_file(AUDACIOUS_DESKTOP_FILE); |
c942eaef7bc6
Implement session management.
Ivan N. Zlatev <contact@i-nz.net>
parents:
4286
diff
changeset
|
692 #endif |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
693 aud_init_paths(); |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
694 aud_make_user_dir(); |
2313 | 695 |
696 cond_scan = g_cond_new(); | |
697 mutex_scan = g_mutex_new(); | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
698 gtk_rc_add_default_file(aud_paths[BMP_PATH_GTKRC_FILE]); |
2463 | 699 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
700 parse_cmd_line_options(&argc, &argv); |
2313 | 701 |
702 if (options.no_log == FALSE) | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
703 aud_setup_logger(); |
2313 | 704 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
705 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
|
706 /* 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
|
707 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
|
708 session */ |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
709 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
|
710 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
|
711 } |
2313 | 712 |
713 g_random_set_seed(time(NULL)); | |
4234 | 714 SAD_dither_init_rand((gint32)time(NULL)); |
2313 | 715 |
4412
180996fcf12a
bmp_config_* -> aud_config_*
Matti Hamalainen <ccr@tnsp.org>
parents:
4411
diff
changeset
|
716 aud_config_load(); |
2313 | 717 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
718 signal_handlers_init(); |
2856
c4d07471f647
Added a mowgli_init() call
Cristi Magherusan <majeru@gentoo.ro>
parents:
2846
diff
changeset
|
719 mowgli_init(); |
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
|
720 |
4355 | 721 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
|
722 { |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
723 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
|
724 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
725 /* 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
|
726 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
|
727 register_aud_stock_icons(); |
3978
40db2fe8d073
- fixed custom stock icons that were not displayed
Giacomo Lozito <james@develia.org>
parents:
3965
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 /* UIManager |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
730 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
|
731 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
|
732 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
|
733 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
|
734 } |
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
|
735 |
2313 | 736 plugin_system_init(); |
4448 | 737 playlist_system_init(); |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
738 handle_cmd_line_options(); |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
739 |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
740 #ifdef USE_DBUS |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
741 init_dbus(); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
742 #endif |
2313 | 743 |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
744 playlist_start_get_info_thread(); |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
745 |
4448 | 746 output_set_volume((cfg.saved_volume & 0xff00) >> 8, |
747 (cfg.saved_volume & 0x00ff)); | |
748 | |
4355 | 749 if (options.headless == FALSE) |
2313 | 750 { |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
751 aud_set_default_icon(); |
3525
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
752 #ifdef GDK_WINDOWING_QUARTZ |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
753 set_dock_icon(); |
540e49d1d87c
macos: Set an application icon in the dock.
William Pitcock <nenolod@atheme.org>
parents:
3400
diff
changeset
|
754 #endif |
2313 | 755 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
756 gtk_accel_map_load(aud_paths[BMP_PATH_ACCEL_FILE]); |
2313 | 757 |
758 if (!init_skins(cfg.skin)) { | |
759 run_load_skin_error_dialog(cfg.skin); | |
760 exit(EXIT_FAILURE); | |
761 } | |
762 | |
763 GDK_THREADS_ENTER(); | |
3480
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
764 |
4357 | 765 /* this needs to be called after all 3 windows are created and |
766 * input plugins are setup'ed | |
767 * but not if we're running headless --nenolod | |
768 */ | |
769 mainwin_setup_menus(); | |
3678
e82ad057d1db
Get rid of read_volume() craq. Add ui_main_set_initial_volume() to replace the only necessary remaining code.
William Pitcock <nenolod@atheme.org>
parents:
3543
diff
changeset
|
770 ui_main_set_initial_volume(); |
2313 | 771 |
772 /* FIXME: delayed, because it deals directly with the plugin | |
773 * interface to set menu items */ | |
774 create_prefs_window(); | |
775 | |
2364 | 776 create_fileinfo_window(); |
777 | |
2313 | 778 |
779 if (cfg.player_visible) | |
780 mainwin_show(TRUE); | |
781 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
|
782 { |
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
|
783 /* 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
|
784 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
|
785 } |
2313 | 786 |
787 if (cfg.equalizer_visible) | |
788 equalizerwin_show(TRUE); | |
789 | |
790 if (cfg.playlist_visible) | |
791 playlistwin_show(); | |
792 | |
793 hint_set_always(cfg.always_on_top); | |
794 | |
2364 | 795 has_x11_connection = TRUE; |
2313 | 796 |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
797 resume_playback_on_startup(); |
2364 | 798 |
2313 | 799 gtk_main(); |
800 | |
801 GDK_THREADS_LEAVE(); | |
802 } | |
2364 | 803 // if we are running headless |
2313 | 804 else |
805 { | |
4366
1f900d7b737b
print a note when headless operation is enabled
mf0102 <0102@gmx.at>
parents:
4365
diff
changeset
|
806 g_print(_("Headless operation enabled\n")); |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
807 resume_playback_on_startup(); |
2313 | 808 |
2506
630910fd140f
[svn] - changed plugin directory to ~/.local/share/audacious/Plugins (seems more logical to me)
mf0102
parents:
2475
diff
changeset
|
809 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
|
810 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
|
811 } |
2313 | 812 |
4449
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
813 aud_quit(); |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
814 return EXIT_SUCCESS; |
2313 | 815 } |