| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
|
|
|
| |
No CamelCase file names.
|
|
|
|
| |
Using the logging library here is inappropriate.
|
|
|
|
|
| |
The warning buffer is a complex piece of code for no good reason.
Remove it and find a better solution, e.g. open the log file earlier.
|
|
|
|
|
|
| |
Initialize libc's locale functions. Currently, we are only interested
in LC_CTYPE (character classification), because this is what is used
by GLib's g_get_charset().
|
|
|
|
| |
Rename variables and functions.
|
|
|
|
|
| |
Call g_thread_init() from main() to enable the GLib features which
make it thread safe.
|
|
|
|
|
| |
Removed closeAllFDs(). The caller is responsible for closing all file
handles.
|
|
|
|
| |
Rename all functions to the new prefix.
|
|
|
|
|
|
|
| |
No CamelCase in the file name. The output_buffer struct is going to
be renamed to music_pipe. There are so many buffer levels in MPD, and
calling this one "output buffer" is wrong, because it's not the last
buffer before the music reaches the output devices.
|
|
|
|
| |
Remove duplicated code from MPD.
|
|
|
|
| |
Renamed all functions and variables.
|
|
|
|
| |
Renamed inputStream.c and inputStream_file.c.
|
|
|
|
|
| |
The hook input_stream_global_finish() deinitializes global structures
of all input stream implementations.
|
|
|
|
| |
Eliminate CamelCase in all public and static functions.
|
|
|
|
|
| |
Moved the musicDir variable and its initialization code from path.c to
mapper.c.
|
|
|
|
|
|
| |
"idle" waits until something noteworthy happens on the server,
e.g. song change, playlist modified, database updated. This allows
clients to keep up to date without polling.
|
|
|
|
|
|
| |
This git branch has become a real MPD fork now. Time to change the
package name to the code name "mpd-mk". Set the version number to
"0.14~git" to mark this as a non-released version.
|
|
|
|
|
|
|
|
| |
If the user requests database update during startup, call
directory_update_init(). This should be changed to fully asynchronous
update later.
For this to work, main_notify has to be initialized before db_init().
|
|
|
|
| |
Yet another CamelCase removal patch.
|
|
|
|
|
|
| |
Taming the directory.c monster, part II: move the database management
stuff to database. directory.c should only contain code which works
on directory objects.
|
|
|
|
|
|
| |
The source directory.c mixes several libraries: directory object
management, database management and database update, resulting in a
1000+ line monster. Move the whole database update code to update.c.
|
|
|
|
|
| |
MPD has supported more audio formats than just MP3
for over five years...
|
|
|
|
| |
Destroy the mutex when it is not used anymore.
|
|
|
|
|
|
|
|
|
| |
A lot of the preparation was needed (and done in previous
months) in making update thread-safe, but here it is.
This was the first thing I made work inside a thread when I
started mpd-uclinux many years ago, and also the last thing I've
done in mainline mpd to work inside a thread, go figure.
|