Mercurial > audlegacy
annotate src/audlegacy/main.c @ 4877:ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
author | John Lindgren <john.lindgren@tds.net> |
---|---|
date | Fri, 01 May 2009 19:35:44 -0400 |
parents | b2ee645f3e59 |
children |
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 | |
4671
414966b3a933
clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents:
4670
diff
changeset
|
30 #include "platform/smartinclude.h" |
414966b3a933
clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents:
4670
diff
changeset
|
31 |
2313 | 32 #include "main.h" |
33 | |
34 #include <glib/gprintf.h> | |
35 | |
4523
b3e4f5c31546
Conditional USE_SRC was changed to USE_SAMPLERATE earlier.
Matti Hamalainen <ccr@tnsp.org>
parents:
4517
diff
changeset
|
36 #ifdef USE_SAMPLERATE |
4267
a41fb6bc632a
- src stuff traveled to src_flow.c
Eugene Zagidullin <e.asphyx@gmail.com>
parents:
4256
diff
changeset
|
37 # include <samplerate.h> |
a41fb6bc632a
- src stuff traveled to src_flow.c
Eugene Zagidullin <e.asphyx@gmail.com>
parents:
4256
diff
changeset
|
38 #endif |
a41fb6bc632a
- src stuff traveled to src_flow.c
Eugene Zagidullin <e.asphyx@gmail.com>
parents:
4256
diff
changeset
|
39 |
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
|
40 #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
|
41 # include "dbus-service.h" |
2785 | 42 # 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
|
43 #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
|
44 |
4671
414966b3a933
clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents:
4670
diff
changeset
|
45 #ifdef USE_EGGSM |
414966b3a933
clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents:
4670
diff
changeset
|
46 #include "eggsmclient.h" |
414966b3a933
clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents:
4670
diff
changeset
|
47 #include "eggdesktopfile.h" |
414966b3a933
clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents:
4670
diff
changeset
|
48 #endif |
414966b3a933
clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents:
4670
diff
changeset
|
49 |
414966b3a933
clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents:
4670
diff
changeset
|
50 #include "libSAD.h" |
414966b3a933
clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents:
4670
diff
changeset
|
51 |
4347 | 52 #include "build_stamp.h" |
4671
414966b3a933
clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents:
4670
diff
changeset
|
53 #include "configdb.h" |
4848
b2ee645f3e59
Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents:
4843
diff
changeset
|
54 #include "equalizer.h" |
2313 | 55 #include "input.h" |
56 #include "logger.h" | |
57 #include "output.h" | |
58 #include "playback.h" | |
59 #include "playlist.h" | |
4347 | 60 #include "pluginenum.h" |
61 #include "signals.h" | |
4700
3a56d2786063
move all files belonging to the legacy UI to legacy/
mf0102 <0102@gmx.at>
parents:
4675
diff
changeset
|
62 #include "legacy/ui_manager.h" |
2313 | 63 #include "util.h" |
4671
414966b3a933
clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents:
4670
diff
changeset
|
64 #include "vfs.h" |
2313 | 65 |
66 #include "icons-stock.h" | |
67 #include "images/audacious_player.xpm" | |
68 | |
4664
46c02b5589c2
commited initial version of new UI, which can be tested via "audacious -H"
mf0102 <0102@gmx.at>
parents:
4662
diff
changeset
|
69 #include "ui_new.h" |
4668
fdcbbfdd428e
Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
4667
diff
changeset
|
70 #include "ui_legacy.h" |
4670 | 71 #include "ui_headless.h" |
4664
46c02b5589c2
commited initial version of new UI, which can be tested via "audacious -H"
mf0102 <0102@gmx.at>
parents:
4662
diff
changeset
|
72 |
4517 | 73 static const gchar *application_name = N_("Audacious"); |
2313 | 74 |
4350
8071e599916d
renamed BmpCmdLineOpt to AudCmdLineOpt (greatest commit EVAR! ;-)
mf0102 <0102@gmx.at>
parents:
4347
diff
changeset
|
75 struct _AudCmdLineOpt { |
2411 | 76 gchar **filenames; |
2313 | 77 gint session; |
3351
7a4fcf84a34f
Removed the hardcoded Add/Play CD menu entry
Calin Crisan ccrisan@gmail.com
parents:
3346
diff
changeset
|
78 gboolean play, stop, pause, fwd, rew, play_pause, show_jump_box; |
2313 | 79 gboolean enqueue, mainwin, remote, activate; |
80 gboolean no_log; | |
81 gboolean enqueue_to_temp; | |
2411 | 82 gboolean version; |
2313 | 83 gchar *previous_session_id; |
4668
fdcbbfdd428e
Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
4667
diff
changeset
|
84 gchar *interface; |
4355 | 85 gboolean macpack; |
2313 | 86 }; |
4350
8071e599916d
renamed BmpCmdLineOpt to AudCmdLineOpt (greatest commit EVAR! ;-)
mf0102 <0102@gmx.at>
parents:
4347
diff
changeset
|
87 typedef struct _AudCmdLineOpt AudCmdLineOpt; |
2313 | 88 |
4668
fdcbbfdd428e
Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
4667
diff
changeset
|
89 static AudCmdLineOpt options = {}; |
2313 | 90 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
91 gchar *aud_paths[BMP_PATH_COUNT] = {}; |
2313 | 92 |
93 GCond *cond_scan; | |
94 GMutex *mutex_scan; | |
3346
71d8d93f1bad
Implemented TrackChange, StatusChange signals, with a stub for CapsChange.
Ben Tucker <ben.tucker@gmail.com>
parents:
3334
diff
changeset
|
95 #ifdef USE_DBUS |
71d8d93f1bad
Implemented TrackChange, StatusChange signals, with a stub for CapsChange.
Ben Tucker <ben.tucker@gmail.com>
parents:
3334
diff
changeset
|
96 MprisPlayer *mpris; |
71d8d93f1bad
Implemented TrackChange, StatusChange signals, with a stub for CapsChange.
Ben Tucker <ben.tucker@gmail.com>
parents:
3334
diff
changeset
|
97 #endif |
2313 | 98 |
99 static void | |
4542 | 100 print_version(void) |
2313 | 101 { |
4450
413d80f7b011
remove the strange feature list feature, which was used for GConf only
mf0102 <0102@gmx.at>
parents:
4449
diff
changeset
|
102 g_printf("%s %s [%s]\n", _(application_name), VERSION, svn_stamp); |
2313 | 103 } |
104 | |
105 static void | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
106 aud_make_user_dir(void) |
2313 | 107 { |
108 const mode_t mode755 = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; | |
109 | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
110 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
|
111 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
|
112 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
|
113 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
|
114 make_directory(aud_paths[BMP_PATH_PLAYLISTS_DIR], mode755); |
2313 | 115 } |
116 | |
117 static void | |
4543
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
118 aud_free_paths(void) |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
119 { |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
120 int i; |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
121 |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
122 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
|
123 { |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
124 g_free(aud_paths[i]); |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
125 aud_paths[i] = 0; |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
126 } |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
127 } |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
128 |
ed94ac6182df
whoops, too much cosmetics is bad for the overall appearance
mf0102 <0102@gmx.at>
parents:
4542
diff
changeset
|
129 static void |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
130 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
|
131 { |
2364 | 132 char *xdg_config_home; |
133 char *xdg_data_home; | |
134 char *xdg_cache_home; | |
2313 | 135 |
2364 | 136 xdg_config_home = (getenv("XDG_CONFIG_HOME") == NULL |
137 ? g_build_filename(g_get_home_dir(), ".config", NULL) | |
138 : g_strdup(getenv("XDG_CONFIG_HOME"))); | |
139 xdg_data_home = (getenv("XDG_DATA_HOME") == NULL | |
140 ? g_build_filename(g_get_home_dir(), ".local", "share", NULL) | |
141 : g_strdup(getenv("XDG_DATA_HOME"))); | |
142 xdg_cache_home = (getenv("XDG_CACHE_HOME") == NULL | |
143 ? g_build_filename(g_get_home_dir(), ".cache", NULL) | |
144 : g_strdup(getenv("XDG_CACHE_HOME"))); | |
2313 | 145 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
146 aud_paths[BMP_PATH_USER_DIR] = |
4803
20f868cd576b
changed data path to audlegacy.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
4799
diff
changeset
|
147 g_build_filename(xdg_config_home, "audlegacy", NULL); |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
148 aud_paths[BMP_PATH_USER_SKIN_DIR] = |
4803
20f868cd576b
changed data path to audlegacy.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
4799
diff
changeset
|
149 g_build_filename(xdg_data_home, "audlegacy", "Skins", NULL); |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
150 aud_paths[BMP_PATH_USER_PLUGIN_DIR] = |
4803
20f868cd576b
changed data path to audlegacy.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
4799
diff
changeset
|
151 g_build_filename(xdg_data_home, "audlegacy", "Plugins", NULL); |
2506
630910fd140f
[svn] - changed plugin directory to ~/.local/share/audacious/Plugins (seems more logical to me)
mf0102
parents:
2475
diff
changeset
|
152 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
153 aud_paths[BMP_PATH_SKIN_THUMB_DIR] = |
4803
20f868cd576b
changed data path to audlegacy.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
4799
diff
changeset
|
154 g_build_filename(xdg_cache_home, "audlegacy", "thumbs", NULL); |
2313 | 155 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
156 aud_paths[BMP_PATH_PLAYLISTS_DIR] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
157 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
|
158 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
159 aud_paths[BMP_PATH_CONFIG_FILE] = |
4798 | 160 g_build_filename(aud_paths[BMP_PATH_USER_DIR], "config-legacy", NULL); |
2317
49d285f6008b
[svn] Full support for XDG basedir added. The old config doesn't get automatically converted yet.
js
parents:
2313
diff
changeset
|
161 #ifdef HAVE_XSPF_PLAYLIST |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
162 aud_paths[BMP_PATH_PLAYLIST_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
163 g_build_filename(aud_paths[BMP_PATH_USER_DIR], |
2364 | 164 "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
|
165 #else |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
166 aud_paths[BMP_PATH_PLAYLIST_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
167 g_build_filename(aud_paths[BMP_PATH_USER_DIR], |
2364 | 168 "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
|
169 #endif |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
170 aud_paths[BMP_PATH_ACCEL_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
171 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
|
172 aud_paths[BMP_PATH_LOG_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
173 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
|
174 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
175 aud_paths[BMP_PATH_GTKRC_FILE] = |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
176 g_build_filename(aud_paths[BMP_PATH_USER_DIR], "gtkrc", NULL); |
2463 | 177 |
2364 | 178 g_free(xdg_config_home); |
179 g_free(xdg_data_home); | |
180 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
|
181 |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
182 g_atexit(aud_free_paths); |
2313 | 183 } |
184 | |
4542 | 185 static void |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
186 aud_set_default_icon(void) |
2313 | 187 { |
188 GdkPixbuf *icon; | |
189 | |
190 icon = gdk_pixbuf_new_from_xpm_data((const gchar **) audacious_player_xpm); | |
191 gtk_window_set_default_icon(icon); | |
192 g_object_unref(icon); | |
193 } | |
194 | |
2411 | 195 static GOptionEntry cmd_entries[] = { |
2448
ff135e2ba10e
[svn] - mark some strings used by GOption as translatable
nenolod
parents:
2420
diff
changeset
|
196 {"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
|
197 {"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
|
198 {"pause", 'u', 0, G_OPTION_ARG_NONE, &options.pause, N_("Pause current song"), NULL}, |
2475 | 199 {"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
|
200 {"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
|
201 {"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
|
202 {"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
|
203 {"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
|
204 {"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
|
205 {"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
|
206 {"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
|
207 {"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
|
208 {"version", 'v', 0, G_OPTION_ARG_NONE, &options.version, N_("Show version"), NULL}, |
4668
fdcbbfdd428e
Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
4667
diff
changeset
|
209 {"interface", 'i', 0, G_OPTION_ARG_STRING, &options.interface, N_("Interface to use"), NULL}, |
4355 | 210 #ifdef GDK_WINDOWING_QUARTZ |
211 {"macpack", 'n', 0, G_OPTION_ARG_NONE, &options.macpack, N_("Used in macpacking"), NULL}, /* Make this hidden */ | |
212 #endif | |
2411 | 213 {G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &options.filenames, N_("FILE..."), NULL}, |
214 {NULL}, | |
215 }; | |
2313 | 216 |
3883
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
217 static gboolean |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
218 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
|
219 { |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
220 drct_play(); |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
221 return FALSE; |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
222 } |
6aaf5476b765
commandline handling rewrite. should be fine, it passed all of my tests. ;)
William Pitcock <nenolod@atheme.org>
parents:
3753
diff
changeset
|
223 |
2313 | 224 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
|
225 parse_cmd_line_options(gint *argc, gchar ***argv) |
2313 | 226 { |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
227 GOptionContext *context; |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
228 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
|
229 |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
230 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
|
231 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
|
232 |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
233 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
|
234 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
|
235 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
|
236 #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
|
237 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
|
238 #endif |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
239 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
|
240 /* 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
|
241 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
|
242 { |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
243 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
|
244 (*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
|
245 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
|
246 } |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
247 } |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
248 |
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
|
249 static void |
4672
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
250 handle_cmd_line_filenames(gboolean is_running) |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
251 { |
4877
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
252 char * working, * absolute, * uri; |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
253 gchar **filenames = options.filenames; |
2785 | 254 #ifdef USE_DBUS |
255 DBusGProxy *session = audacious_get_dbus_proxy(); | |
4672
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
256 #endif |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
257 |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
258 if (filenames == NULL) |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
259 return; |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
260 |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
261 gint pos = 0; |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
262 gint i = 0; |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
263 GList *fns = NULL; |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
264 |
4877
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
265 working = g_get_current_dir (); |
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
266 for (i = 0; filenames [i]; i ++) { |
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
267 if (strstr (filenames [i], "://")) |
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
268 uri = g_strdup (filenames [i]); |
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
269 else if (filenames [i] [0] == '/') |
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
270 uri = g_filename_to_uri (filenames [i], 0, 0); |
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
271 else { |
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
272 absolute = g_strdup_printf ("/%s/%s", working, filenames [i]); |
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
273 uri = g_filename_to_uri (absolute, 0, 0); |
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
274 g_free (absolute); |
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
275 } |
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
276 fns = g_list_prepend (fns, uri); |
4672
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
277 } |
4877
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
278 fns = g_list_reverse (fns); |
ab60d53dd965
Use g_filename_to_uri on command line items that do not contain "://" (bug #51)
John Lindgren <john.lindgren@tds.net>
parents:
4848
diff
changeset
|
279 g_free (working); |
4672
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
280 |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
281 #ifdef USE_DBUS |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
282 if (is_running) |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
283 { |
4708
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
284 GList *i; |
4672
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
285 |
4708
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
286 if (options.enqueue_to_temp) |
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
287 audacious_remote_playlist_enqueue_to_temp(session, filenames[0]); |
4672
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
288 |
4708
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
289 if (options.enqueue && options.play) |
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
290 pos = audacious_remote_get_playlist_length(session); |
4672
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
291 |
4708
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
292 if (!options.enqueue) |
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
293 { |
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
294 audacious_remote_playlist_clear(session); |
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
295 audacious_remote_stop(session); |
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
296 } |
4672
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
297 |
4708
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
298 for (i = fns; i != NULL; i = i->next) |
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
299 audacious_remote_playlist_add_url_string(session, i->data); |
4672
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
300 |
4708
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
301 if (options.enqueue && options.play && |
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
302 audacious_remote_get_playlist_length(session) > pos) |
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
303 audacious_remote_set_playlist_pos(session, pos); |
4672
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
304 |
4708
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
305 if (!options.enqueue) |
c2886b393206
completely remove skin getting/setting
mf0102 <0102@gmx.at>
parents:
4700
diff
changeset
|
306 audacious_remote_play(session); |
4672
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
307 } |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
308 else /* !is_running */ |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
309 #endif |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
310 { |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
311 if (options.enqueue_to_temp) |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
312 drct_pl_enqueue_to_temp(filenames[0]); |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
313 |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
314 if (options.enqueue && options.play) |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
315 pos = drct_pl_get_length(); |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
316 |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
317 if (!options.enqueue) |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
318 { |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
319 drct_pl_clear(); |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
320 drct_stop(); |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
321 } |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
322 |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
323 drct_pl_add(fns); |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
324 |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
325 if (options.enqueue && options.play && |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
326 drct_pl_get_length() > pos) |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
327 drct_pl_set_pos(pos); |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
328 |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
329 if (!options.enqueue) |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
330 g_idle_add(aud_start_playback, NULL); |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
331 } /* !is_running */ |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
332 |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
333 g_list_foreach(fns, (GFunc) g_free, NULL); |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
334 g_list_free(fns); |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
335 } |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
336 |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
337 static void |
4843
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
338 handle_cmd_line_options_first (void) |
4672
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
339 { |
8dc3b3af74a9
removed code duplication via new function handle_cmd_line_filenames()
mf0102 <0102@gmx.at>
parents:
4671
diff
changeset
|
340 #ifdef USE_DBUS |
4843
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
341 DBusGProxy * session; |
2727
14f9a629ba9c
[svn] - rename xmms_remote namespace to audacious_remote namespace
nenolod
parents:
2717
diff
changeset
|
342 #endif |
4843
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
343 if (options.version) { |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
344 print_version (); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
345 exit (EXIT_SUCCESS); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
346 } |
2788
b2b920b165ad
[svn] - exclude codes which use session if USE_DBUS is not defined.
yaz
parents:
2786
diff
changeset
|
347 #ifdef USE_DBUS |
4843
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
348 session = audacious_get_dbus_proxy (); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
349 if (audacious_remote_is_running (session)) { |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
350 handle_cmd_line_filenames (TRUE); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
351 if (options.rew) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
352 audacious_remote_playlist_prev (session); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
353 if (options.play) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
354 audacious_remote_play (session); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
355 if (options.pause) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
356 audacious_remote_pause (session); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
357 if (options.stop) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
358 audacious_remote_stop (session); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
359 if (options.fwd) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
360 audacious_remote_playlist_next (session); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
361 if (options.play_pause) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
362 audacious_remote_play_pause (session); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
363 if (options.show_jump_box) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
364 audacious_remote_show_jtf_box (session); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
365 if (options.mainwin) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
366 audacious_remote_main_win_toggle (session, 1); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
367 if (options.activate) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
368 audacious_remote_activate (session); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
369 exit (EXIT_SUCCESS); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
370 } |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
371 #endif |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
372 if (options.interface == NULL) { |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
373 mcs_handle_t * db = cfg_db_open (); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
374 cfg_db_get_string (db, NULL, "interface", & options.interface); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
375 if (options.interface == NULL) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
376 options.interface = g_strdup ("legacy"); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
377 } |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
378 } |
2313 | 379 |
4843
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
380 static void |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
381 handle_cmd_line_options (void) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
382 { |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
383 handle_cmd_line_filenames (FALSE); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
384 if (options.rew) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
385 drct_pl_prev (); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
386 if (options.play || options.play_pause) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
387 g_idle_add (aud_start_playback, NULL); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
388 if (options.fwd) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
389 drct_pl_next (); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
390 if (options.show_jump_box) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
391 drct_jtf_show (); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
392 if (options.mainwin) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
393 drct_main_win_toggle (TRUE); |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
394 if (options.activate) |
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
395 drct_activate (); |
2313 | 396 } |
397 | |
398 static void | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
399 aud_setup_logger(void) |
2313 | 400 { |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
401 if (!aud_logger_start(aud_paths[BMP_PATH_LOG_FILE])) |
2313 | 402 return; |
403 | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
404 g_atexit(aud_logger_stop); |
2313 | 405 } |
406 | |
2369 | 407 static gboolean |
3480
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
408 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
|
409 gpointer def) |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
410 { |
4644
23e712435e3e
Remove an unused variable.
Matti Hamalainen <ccr@tnsp.org>
parents:
4635
diff
changeset
|
411 Playlist *playlist = playlist_new(); |
4797
9b9bcf252a10
- provide a way to query current interface.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
4708
diff
changeset
|
412 |
3480
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
413 if (!playlist) { |
4635 | 414 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
|
415 return FALSE; |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
416 } |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
417 |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
418 playlist_add_playlist(playlist); |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
419 playlist_load(playlist, path); |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
420 |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
421 return FALSE; /* keep loading other playlists */ |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
422 } |
3f4ad59a5c02
Load extra playlists on startup
Kieran Clancy <clancy.kieran+audacious@gmail.com>
parents:
3443
diff
changeset
|
423 |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
424 static void |
4448 | 425 playlist_system_init() |
426 { | |
427 Playlist *playlist; | |
428 | |
429 playlist_init(); | |
430 playlist = playlist_get_active(); | |
431 playlist_load(playlist, aud_paths[BMP_PATH_PLAYLIST_FILE]); | |
432 playlist_set_position(playlist, cfg.playlist_position); | |
433 | |
434 /* Load extra playlists */ | |
435 if (!dir_foreach(aud_paths[BMP_PATH_PLAYLISTS_DIR], load_extra_playlist, | |
436 playlist, NULL)) | |
437 g_warning("Could not load extra playlists\n"); | |
438 } | |
439 | |
4449
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
440 void |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
441 aud_quit(void) |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
442 { |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
443 GList *playlists = NULL, *playlists_top = NULL; |
4675 | 444 Interface *i = interface_get(options.interface); |
4449
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
445 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
446 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
|
447 |
4494
0f43f3a5eb12
Fix the "skin path is fucked up" bug.
William Pitcock <nenolod@atheme.org>
parents:
4492
diff
changeset
|
448 aud_config_save(); |
0f43f3a5eb12
Fix the "skin path is fucked up" bug.
William Pitcock <nenolod@atheme.org>
parents:
4492
diff
changeset
|
449 |
4675 | 450 interface_destroy(i); |
4449
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
451 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
452 plugin_system_cleanup(); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
453 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
454 /* 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
|
455 playlists = playlist_get_playlists(); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
456 playlists_top = playlists; |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
457 while ( playlists != NULL ) |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
458 { |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
459 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
|
460 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
|
461 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
|
462 } |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
463 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
|
464 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
465 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
|
466 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
|
467 |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
468 exit(EXIT_SUCCESS); |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
469 } |
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
470 |
2313 | 471 gint |
472 main(gint argc, gchar ** argv) | |
473 { | |
4669
ec88df86deef
Split out headless specific interface code (mostly).
William Pitcock <nenolod@atheme.org>
parents:
4668
diff
changeset
|
474 Interface *i; |
ec88df86deef
Split out headless specific interface code (mostly).
William Pitcock <nenolod@atheme.org>
parents:
4668
diff
changeset
|
475 |
2644
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
476 /* 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
|
477 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
|
478 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
|
479 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
|
480 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
|
481 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
|
482 } |
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
483 |
67082557b2c4
[svn] - glib-2.13.0 requires g_thread_init() to be called before all other GLib functions.
yaz
parents:
2605
diff
changeset
|
484 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
|
485 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
|
486 |
2313 | 487 /* Setup l10n early so we can print localized error messages */ |
488 gtk_set_locale(); | |
489 bindtextdomain(PACKAGE_NAME, LOCALEDIR); | |
490 bind_textdomain_codeset(PACKAGE_NAME, "UTF-8"); | |
2388
52bcc18eb8bb
[svn] - attempt to bind the audacious-plugins domain
nenolod
parents:
2369
diff
changeset
|
491 bindtextdomain(PACKAGE_NAME "-plugins", LOCALEDIR); |
52bcc18eb8bb
[svn] - attempt to bind the audacious-plugins domain
nenolod
parents:
2369
diff
changeset
|
492 bind_textdomain_codeset(PACKAGE_NAME "-plugins", "UTF-8"); |
2313 | 493 textdomain(PACKAGE_NAME); |
494 | |
4492
55262ebeba2d
Conditional support for SM (libeggsmclient).
Matti Hamalainen <ccr@tnsp.org>
parents:
4467
diff
changeset
|
495 #if !defined(_WIN32) && defined(USE_EGGSM) |
4315
c942eaef7bc6
Implement session management.
Ivan N. Zlatev <contact@i-nz.net>
parents:
4286
diff
changeset
|
496 egg_set_desktop_file(AUDACIOUS_DESKTOP_FILE); |
c942eaef7bc6
Implement session management.
Ivan N. Zlatev <contact@i-nz.net>
parents:
4286
diff
changeset
|
497 #endif |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
498 aud_init_paths(); |
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
499 aud_make_user_dir(); |
2313 | 500 |
501 cond_scan = g_cond_new(); | |
502 mutex_scan = g_mutex_new(); | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
503 gtk_rc_add_default_file(aud_paths[BMP_PATH_GTKRC_FILE]); |
2463 | 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 parse_cmd_line_options(&argc, &argv); |
2313 | 506 |
507 if (options.no_log == FALSE) | |
4413
de33c83aa06f
Huge renaming patch, changing BMP references to Audacious.
Matti Hamalainen <ccr@tnsp.org>
parents:
4412
diff
changeset
|
508 aud_setup_logger(); |
2313 | 509 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
510 g_message("Initializing Gtk+"); |
4669
ec88df86deef
Split out headless specific interface code (mostly).
William Pitcock <nenolod@atheme.org>
parents:
4668
diff
changeset
|
511 if (!gtk_init_check(&argc, &argv)) { /* XXX */ |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
512 /* 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
|
513 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
|
514 session */ |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
515 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
|
516 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
|
517 } |
2313 | 518 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
519 g_message("Setting up libSAD"); |
2313 | 520 g_random_set_seed(time(NULL)); |
4234 | 521 SAD_dither_init_rand((gint32)time(NULL)); |
2313 | 522 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
523 g_message("Loading configuration"); |
4412
180996fcf12a
bmp_config_* -> aud_config_*
Matti Hamalainen <ccr@tnsp.org>
parents:
4411
diff
changeset
|
524 aud_config_load(); |
2313 | 525 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
526 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
|
527 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
|
528 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
529 g_message("Handling commandline options, part #1"); |
4843
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
530 handle_cmd_line_options_first (); |
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
|
531 |
4669
ec88df86deef
Split out headless specific interface code (mostly).
William Pitcock <nenolod@atheme.org>
parents:
4668
diff
changeset
|
532 if (g_ascii_strcasecmp(options.interface, "headless")) /* XXX */ |
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
|
533 { |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
534 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
|
535 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
|
536 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
537 /* 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
|
538 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
|
539 register_aud_stock_icons(); |
3978
40db2fe8d073
- fixed custom stock icons that were not displayed
Giacomo Lozito <james@develia.org>
parents:
3965
diff
changeset
|
540 |
4356
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
541 /* UIManager |
87cb9d3402d4
rolling away some more stones on the hard way to real headless operation
mf0102 <0102@gmx.at>
parents:
4355
diff
changeset
|
542 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
|
543 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
|
544 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
|
545 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
|
546 } |
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
|
547 |
4661
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
548 #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
|
549 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
|
550 init_dbus(); |
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
551 #endif |
e4e7999a21bc
Move D-Bus initialization before plugin system and playlist initialization.
Matti Hamalainen <ccr@tnsp.org>
parents:
4644
diff
changeset
|
552 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
553 g_message("Initializing plugin subsystems..."); |
2313 | 554 plugin_system_init(); |
4797
9b9bcf252a10
- provide a way to query current interface.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
4708
diff
changeset
|
555 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
556 g_message("Setting up playlists"); |
4448 | 557 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
|
558 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
559 g_message("Handling commandline options, part #2"); |
4843
ca837b93ad0f
Fix "audacious -p" crash and failing to play on startup
John Lindgren <john.lindgren@tds.net>
parents:
4837
diff
changeset
|
560 handle_cmd_line_options (); |
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
|
561 |
4662
8a783f826316
Added some debugging / startup messages (visible via 'audacious -N') to make
Matti Hamalainen <ccr@tnsp.org>
parents:
4661
diff
changeset
|
562 g_message("Playlist scanner thread startup"); |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
563 playlist_start_get_info_thread(); |
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
564 |
4448 | 565 output_set_volume((cfg.saved_volume & 0xff00) >> 8, |
566 (cfg.saved_volume & 0x00ff)); | |
4848
b2ee645f3e59
Hook up the equalizer (bug #24)
John Lindgren <john.lindgren@tds.net>
parents:
4843
diff
changeset
|
567 init_equalizer (); |
4448 | 568 |
4668
fdcbbfdd428e
Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
4667
diff
changeset
|
569 g_message("Setting default icon"); |
fdcbbfdd428e
Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
4667
diff
changeset
|
570 aud_set_default_icon(); |
2313 | 571 |
4668
fdcbbfdd428e
Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
4667
diff
changeset
|
572 g_message("Populating included interfaces"); |
fdcbbfdd428e
Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
4667
diff
changeset
|
573 ui_populate_default_interface(); |
fdcbbfdd428e
Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
4667
diff
changeset
|
574 ui_populate_legacy_interface(); |
4669
ec88df86deef
Split out headless specific interface code (mostly).
William Pitcock <nenolod@atheme.org>
parents:
4668
diff
changeset
|
575 ui_populate_headless_interface(); |
4664
46c02b5589c2
commited initial version of new UI, which can be tested via "audacious -H"
mf0102 <0102@gmx.at>
parents:
4662
diff
changeset
|
576 |
4669
ec88df86deef
Split out headless specific interface code (mostly).
William Pitcock <nenolod@atheme.org>
parents:
4668
diff
changeset
|
577 g_message("Selecting interface %s", options.interface); |
ec88df86deef
Split out headless specific interface code (mostly).
William Pitcock <nenolod@atheme.org>
parents:
4668
diff
changeset
|
578 i = interface_get(options.interface); |
2313 | 579 |
4807
859ef55f062c
Don't crash on an invalid interface.
William Pitcock <nenolod@atheme.org>
parents:
4803
diff
changeset
|
580 if (i != NULL) |
859ef55f062c
Don't crash on an invalid interface.
William Pitcock <nenolod@atheme.org>
parents:
4803
diff
changeset
|
581 { |
859ef55f062c
Don't crash on an invalid interface.
William Pitcock <nenolod@atheme.org>
parents:
4803
diff
changeset
|
582 g_message("Running interface %s@%p", options.interface, i); |
859ef55f062c
Don't crash on an invalid interface.
William Pitcock <nenolod@atheme.org>
parents:
4803
diff
changeset
|
583 interface_run(i); |
859ef55f062c
Don't crash on an invalid interface.
William Pitcock <nenolod@atheme.org>
parents:
4803
diff
changeset
|
584 } |
859ef55f062c
Don't crash on an invalid interface.
William Pitcock <nenolod@atheme.org>
parents:
4803
diff
changeset
|
585 else |
4808
323b3d9c9b19
Exit immediately upon failing to launch interface.
William Pitcock <nenolod@atheme.org>
parents:
4807
diff
changeset
|
586 { |
4807
859ef55f062c
Don't crash on an invalid interface.
William Pitcock <nenolod@atheme.org>
parents:
4803
diff
changeset
|
587 g_print("%s: unable to launch selected interface %s\n", argv[0], options.interface); |
4808
323b3d9c9b19
Exit immediately upon failing to launch interface.
William Pitcock <nenolod@atheme.org>
parents:
4807
diff
changeset
|
588 return EXIT_FAILURE; |
323b3d9c9b19
Exit immediately upon failing to launch interface.
William Pitcock <nenolod@atheme.org>
parents:
4807
diff
changeset
|
589 } |
2313 | 590 |
4449
19e3f3c5fe7f
introduce function aud_quit(), which is basically mainwin_quit_cb(), but
mf0102 <0102@gmx.at>
parents:
4448
diff
changeset
|
591 aud_quit(); |
4385
88d8f699359a
moved some stuff around to increase headless support
mf0102 <0102@gmx.at>
parents:
4374
diff
changeset
|
592 return EXIT_SUCCESS; |
2313 | 593 } |