| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Don't declare and export variables specific to stored playlists in
playlist.c/playlist.h.
|
|
|
|
|
| |
Start the decoder thread when the player thread starts. The decoder
thread is already stopped by the player thread.
|
|
|
|
|
|
|
| |
"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.
|
|
|
|
|
| |
This way, we don't have to pass the full "Options" object to
daemonize().
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
The state_file library should manage its own regular saves.
|
|
|
|
|
| |
The constructor/destructor interface should hide the functions
read_state_file() and write_state_file().
|
|
|
|
| |
config_get_path() is an simpler interface than parseConfigFilePath().
|
|
|
|
|
| |
Fetch the configuration variables buffered_chunks and
buffered_before_play just when they are needed.
|
|
|
|
|
| |
Moved changeToUser(), cleanUpPidFile(), killFromPidFile() to
daemon.c. These are daemonization functions.
|
|
|
|
| |
Without a music_directory, MPD is an excellent streaming client.
|
|
|
|
| |
Don't include conf.h in database.c.
|
|
|
|
|
| |
time(NULL) shows the wrong results when the machine's clock is
changed.
|
|
|
|
| |
Renamed functions and types.
|
|
|
|
| |
Renamed functions, types, variables.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
AC_CHECK_HEADERS defines HAVE_LOCALE_H, so we don't have to manually
define HAVE_LOCALE.
|
|
|
|
| |
Make db_load(), db_save() and db_check() return bool instead of int.
|
|
|
|
|
| |
For updating the database, directory_update_init() should be called
explicitly.
|
|
|
|
|
| |
Start the daemon after --create-db. This makes --create-db a flag
which discards the old database and starts with a fresh one.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Continuing the previous patch.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Other libraries may need to access the main_loop reference, to add or
remove events, or to call g_main_loop_quit().
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
redirect_stdin() is a daemonization function, and disconnecting from
the standard input is always a good idea for MPD.
|
| |
|
|
|
|
| |
Disable changeToUser(), daemonize(), killFromPidFile().
|
|
|
|
| |
Removed the fallback setenv() implementation for solaris.
|
| |
|
|
|
|
|
| |
Only include headers which are really needed. os_compat.h aimed to
make MPD easily portable, but was never actually made portable.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The logging library currently has 3 constructor functions: initLog(),
open_log_files(), setup_log_output(), called in this order. Merged
the first two.
|
| |
|
|
|
|
|
| |
When there are no archive plugins, we do not need the archive API at
all. Drop all its overhead.
|
| |
|
|
|
|
|
|
| |
Those two functions are called when MPD starts and exits. It allows
the update library to perform global initialization and
deinitialization. The implementations are currently empty.
|
|
|
|
| |
Make valgrind happier.
|
|
|
|
|
|
|
|
|
|
|
|
| |
When MPD quits in a non-clean way, the state file isn't written, and
on the next start, MPD time warps to the previous clean shutdown.
Save the state file every 5 minutes; this will probably be
configurable at a later time.
Note that we don't set a wakeup timer for that: when there is no MPD
traffic, MPD won't wake up to save the state file. This minor bug is
tolerated, because usually there is no change in MPD's state when the
main thread is idle.
|
|
|
|
| |
Renamed functions and variables.
|