Commit Graph

207 Commits

Author SHA1 Message Date
Max Kellermann
4493a96425 output_all: no CamelCase
Renamed functions and variables.
2009-02-10 18:51:51 +01:00
Max Kellermann
a3a6eefcfe audio: moved code to output_all.c
Moved code which deals with all audio outputs at once into a separate
library.
2009-02-10 18:51:49 +01:00
Max Kellermann
8d3205871c playlist: renamed global "playlist" variable to "g_playlist"
Export the "g_playlist" variable, and pass it to all playlist
functions.  This way, we can split playlist.c easier into separate
parts.  The code which initializes the singleton variable is moved to
playlist_global.c.
2009-02-04 18:56:41 +01:00
Max Kellermann
fdb80e74b7 main: don't pass argv[0] to openDB()
Don't mention the program name in the error message.
2009-02-02 16:58:51 +01:00
Max Kellermann
37bcd711b5 main: create database after daemonization
When the update thread is started before MPD has forked (for
daemonization), it is killed, because threads do not survive a fork().
This induces an inconsistent state where MPD won't start any update
thread at all, because it thinks the thread is already running.
2009-02-02 16:57:24 +01:00
Max Kellermann
188f9e663c mixer: configure legacy mixer before the audio outputs
Reimplemented the legacy mixer configuration: copy the deprecated
configuration values into the audio_output section.  Don't configure
the mixers twice (once for the audio_output, and a second time for the
legacy values).

This requires volume_init() to be called before initAudioDriver().
2009-01-25 17:38:02 +01:00
Max Kellermann
5f77910097 conf: const pointers in block get functions
All config_get_block_*() functions should accept constant config_param
pointers.
2009-01-25 16:03:49 +01:00
Max Kellermann
1a59afa388 stored_playlist: moved configuration variables from playlist.c
Don't declare and export variables specific to stored playlists in
playlist.c/playlist.h.
2009-01-25 13:53:16 +01:00
Max Kellermann
85f7e964de player_thread: start decoder thread in player thread
Start the decoder thread when the player thread starts.  The decoder
thread is already stopped by the player thread.
2009-01-25 13:44:39 +01:00
Max Kellermann
145ab84d51 sticker: new library for storing dynamic information about songs
"Stickers" are pieces of information attached to existing MPD objects
(e.g. song files, directories, albums).  Clients can create arbitrary
name/value pairs.  MPD itself does not assume any special meaning in
them.
2009-01-19 18:51:57 +01:00
Max Kellermann
9c93249412 daemon: pass "detach" flag to daemonize()
This way, we don't have to pass the full "Options" object to
daemonize().
2009-01-18 18:29:30 +01:00
Max Kellermann
bfcaecabbd daemon: added daemonize_init(), daemonize_finish()
The constructor/destructor functions parse and free the configuration
properly.  This way, we don't have to load the pid file path more than
once.
2009-01-18 18:29:27 +01:00
Max Kellermann
0dd2dfff9d main: moved the save_state timer to state_file.c
The state_file library should manage its own regular saves.
2009-01-18 18:10:15 +01:00
Max Kellermann
84de45afba state_file: added state_file_init() and state_file_finish()
The constructor/destructor interface should hide the functions
read_state_file() and write_state_file().
2009-01-18 18:09:50 +01:00
Max Kellermann
9c6b2a32f5 conf: added config_get_path()
config_get_path() is an simpler interface than parseConfigFilePath().
2009-01-18 17:54:46 +01:00
Max Kellermann
a3f03f3ccd removed playerData.c
Fetch the configuration variables buffered_chunks and
buffered_before_play just when they are needed.
2009-01-18 17:32:43 +01:00
Max Kellermann
90b34f8e6f main: moved code to daemon.c
Moved changeToUser(), cleanUpPidFile(), killFromPidFile() to
daemon.c.  These are daemonization functions.
2009-01-18 17:15:34 +01:00
Max Kellermann
1f0dfb4407 mapper: make the music_directory optional
Without a music_directory, MPD is an excellent streaming client.
2009-01-18 16:56:07 +01:00
Max Kellermann
c2cc3b4923 database: pass database file name to db_init()
Don't include conf.h in database.c.
2009-01-18 16:09:01 +01:00
Max Kellermann
004dfddca3 stats: use GTimer instead of time(NULL)
time(NULL) shows the wrong results when the machine's clock is
changed.
2009-01-18 15:40:53 +01:00
Max Kellermann
0d449d8df7 stats: no CamelCase
Renamed functions and types.
2009-01-18 15:22:26 +01:00
Max Kellermann
4d472c265e conf: no CamelCase, part I
Renamed functions, types, variables.
2009-01-17 20:23:27 +01:00
Max Kellermann
63d9827c34 main: remove "save_state" timer event on exit 2009-01-10 18:55:43 +01:00
Max Kellermann
a673d6be98 main: deinitialize main_notify on exit 2009-01-10 18:55:28 +01:00
Max Kellermann
5e93d3682f added missing explicit config.h includes 2009-01-08 21:37:02 +01:00
Max Kellermann
0fb21e67ef configure.ac: use AC_CHECK_HEADERS to check for locale.h
AC_CHECK_HEADERS defines HAVE_LOCALE_H, so we don't have to manually
define HAVE_LOCALE.
2009-01-05 09:31:09 +01:00
Max Kellermann
200ef56d4d database: use stdbool
Make db_load(), db_save() and db_check() return bool instead of int.
2009-01-04 21:18:40 +01:00
Max Kellermann
82166b715c database: db_init() initializes library, does not update
For updating the database, directory_update_init() should be called
explicitly.
2009-01-04 21:18:16 +01:00
Max Kellermann
e4a53df7db don't exit after --create-db
Start the daemon after --create-db.  This makes --create-db a flag
which discards the old database and starts with a fresh one.
2009-01-04 20:31:23 +01:00
Max Kellermann
48aace1859 event_pipe: moved variable "main_task" to main.c 2009-01-03 13:19:01 +01:00
Max Kellermann
cf9bd42416 main: include main.h, fix dependencies 2009-01-02 11:21:33 +01:00
Max Kellermann
272ee5f7d2 event_pipe: replaced PIPE_EVENT_SIGNAL with main_notify
There is only one location using PIPE_EVENT_SIGNAL: to synchronize
player_command() with player_command_finished().  Use the "notify"
library instead of the event_pipe here.
2009-01-02 11:20:41 +01:00
Max Kellermann
b3e2635ac1 event_pipe: added pipe_event enum and callbacks
Make the event_pipe (formerly main_notify) send/receive a set of
events, with a callback for each one.

The default event PIPE_EVENT_SIGNAL does not have a callback.  It
is still there for waking up the main thread, when it is waiting for
the player thread.
2009-01-01 18:22:11 +01:00
Max Kellermann
22bb5a5856 event_pipe: renamed functions from main_notify_* to event_pipe_*
Continuing the previous patch.
2009-01-01 18:12:14 +01:00
Max Kellermann
9f5934d95b main_notify: renamed source to event_pipe.c
We are going to migrate away from the concept of notifying the main
thread.  There should be events sent to it instead.  This patch starts
a series to implement that.
2009-01-01 18:12:00 +01:00
Viliam Mateicka
9a70c4d06d Moving mixers to audio outputs 2008-12-31 16:46:41 +01:00
Max Kellermann
3cd0b90ff6 client: run client_manager_expire() in an idle event
With the GLib main loop, the client manager can install its own event
in case a client is expired.  No need for main.c to call
client_manager_expire() manually.
2008-12-31 14:30:03 +01:00
Max Kellermann
d40cf1652d main: export the main_loop variable
Other libraries may need to access the main_loop reference, to add or
remove events, or to call g_main_loop_quit().
2008-12-30 19:50:22 +01:00
Max Kellermann
71e7ce5d8e main: use the GLib main loop
This is a rather huge patch, which unfortunately cannot be splitted.

Instead of using our custom ioops.h library, convert everything to use
the GLib main loop.
2008-12-30 19:24:39 +01:00
Max Kellermann
6c0f5fc612 listen: moved redirect_stdin() to daemon.c
redirect_stdin() is a daemonization function, and disconnecting from
the standard input is always a good idea for MPD.
2008-12-30 16:28:13 +01:00
Max Kellermann
671480814c main: moved daemonize() to daemon.c 2008-12-30 16:28:07 +01:00
Max Kellermann
d38a7967ab main: disable non-portable code on WIN32
Disable changeToUser(), daemonize(), killFromPidFile().
2008-12-29 17:43:00 +01:00
Max Kellermann
274b919966 main: use g_setenv() instead of setenv()
Removed the fallback setenv() implementation for solaris.
2008-12-29 17:37:40 +01:00
Max Kellermann
91be85a307 main: use GLib logging 2008-12-29 17:35:40 +01:00
Max Kellermann
95b3430f52 removed os_compat.h
Only include headers which are really needed.  os_compat.h aimed to
make MPD easily portable, but was never actually made portable.
2008-12-29 17:28:32 +01:00
Thomas Jansen
28128dc4e3 tag & tag_pool: migrate from pthread to glib threads 2008-12-28 22:09:42 +01:00
Thomas Jansen
bfb5657d6d songvec: migrate from pthread to glib threads 2008-12-28 21:02:42 +01:00
Thomas Jansen
4ed895c799 dirvec: migrate from pthread to glib threads 2008-12-28 21:02:30 +01:00
Thomas Jansen
8332a70406 idle: migrate from pthread to glib threads 2008-12-28 21:02:14 +01:00
Max Kellermann
d70c2e2285 log: merged initLog() and open_log_files().
The logging library currently has 3 constructor functions: initLog(),
open_log_files(), setup_log_output(), called in this order.  Merged
the first two.
2008-12-28 19:48:53 +01:00