| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
WIN32 doesn't have POSIX signals. Disable the code. For a complete
port, we will have to implement the WIN32 equivalent.
|
|
|
|
|
|
| |
Due to a typo, adding local files was always denied.
Disable the second playlist_append_file() invocation on WIN32.
|
|
|
|
| |
It's been superseded by GLib's GSList.
|
|
|
|
| |
Use GLib's singly-linked list library instead of our custom one.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
JACK documentation states: "The caller is responsible for calling
free(3) any non-NULL returned value."
This does not seem to include the array elements. Duplicate them
after jack_get_ports(), and free only the array. Convert
JackData.output_ports to non-const.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Don't use fixed stack buffers.
|
|
|
|
| |
Don't use fixed stack buffers.
|
|
|
|
|
| |
If we want to check whether a file is a directory, use GLib's
g_file_test() instead of stat().
|
|
|
|
|
| |
Use G_GNUC_UNUSED instead of mpd_unused (which has already been
removed).
|
|
|
|
|
| |
To find out whether a file exists, use g_file_test() instead of
stat(), because it is more portable and easier to use.
|
|
|
|
| |
Don't pass a static buffer to map_spl_utf8_to_fs().
|
|
|
|
|
|
| |
If no music_directory is configured, fall back to the XDG music
directory, determined by
g_get_user_special_dir(G_USER_DIRECTORY_MUSIC).
|
|
|
|
|
|
| |
Nobody is using the signal_check library anymore.
This patch also removes the SIGUSR1 handler.
|
|
|
|
|
| |
The signal_check library went out of order when we started using the
GLib main loop. Convert the SIGHUP handler to use event_pipe instead.
|
|
|
|
|
|
| |
event_pipe_emit_fast() is aimed for use in signal handlers: it doesn't
lock the mutex, and doesn't log on error. That makes it potentially
lossy, but for its intended use, that does not matter.
|
|
|
|
| |
There is no reason to use the shortcut "mix" instead of "mixer".
|
|
|
|
| |
Don't start the daemon when MPD is called with "--version".
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Removed all macros which are already provided by GLib.
|
|
|
|
| |
Use GLib's G_GNUC_UNUSED instead of gcc.h's mpd_unused.
|
|
|
|
| |
Use GLib's G_GNUC_UNUSED instead of gcc.h's mpd_unused.
|
|
|
|
| |
Use GLib's G_GNUC_UNUSED instead of macros from gcc.h.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
These functions are not used anymore since we use the GLib main loop.
|
|
|
|
|
| |
Remove the event source from the GMainLoop object in
client_set_expired().
|
|
|
|
|
| |
We don't need to use asynchronous events to quit MPD, we can just call
g_main_loop_quit() inside the handler.
|
|
|
|
|
| |
Other libraries may need to access the main_loop reference, to add or
remove events, or to call g_main_loop_quit().
|
|
|
|
| |
We have no child processes anymore. Remove the SIGCHLD handler.
|
|
|
|
|
|
| |
The SIGHUP handler was used by the update process to make the main
process re-read the database. We don't need this anymore, since the
update takes place in a thread now.
|
|
|
|
|
| |
Most of these functions were obsoleted when we switched to threaded
MPD.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Currently, both sides of the pipe are blocking, although we do not
need blocking read(). Convert it back to blocking. Eliminate the
select() from wait_main_task().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To wake up the main thread, don't attempt to use a GCond/GMutex
(struct notify). This kind of mixed wakeup method has known race
conditions.
The idea behind this patch is: for wakeups which happen while the main
thread is sleeping, use only a pipe. For wakeups which happen while
the main thread is waiting for the player thread, we can later change
to GCond. For now, accept the overhead of using a pipe for the
latter.
In the long run, the main thread will never wait for the player
thread, but will do everything asynchronously.
|
|
|
|
|
| |
There is no point in making the server socket non-blocking. We call
accept() only after select() has notified us about a new connection.
|