| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
LOC reduction and less noise makes things easier for
tired old folks to follow.
|
|
|
|
|
|
| |
Instead of having to register each output plugin, store them
statically in an array. This eliminates the need for the List library
here, and saves some small allocations during startup.
|
| |
|
|
|
|
|
|
| |
Functions which operate on the whole client list are prefixed with
"client_manager_", and functions which handle just one client just get
"client_".
|
|
|
|
|
|
|
| |
I don't believe "interface" is a good name for something like
"connection by a client to MPD", let's call it "client". This is the
first patch in the series which changes the name, beginning with the
file name.
|
|
|
|
| |
Only include headers which are really needed.
|
| |
|
|
|
|
|
| |
Give player.c a better name, meaning that the code is used to control
the player thread.
|
| |
|
|
|
|
|
|
| |
It should be obvious in which thread or context a function is being
executed at runtime. The code which was left in decode.c is for the
decoder thread itself; give the file a better name.
|
|
|
|
|
| |
This is the last of the three variables. Now we don't need
playerData.h anymore in most sources.
|
|
|
|
|
| |
Now that "dc" is available here, we don't have to pass it to
decoder_is_idle() and decoder_is_starting() anymore.
|
|
|
|
|
| |
Move code which runs in the player thread to player_thread.c. Having
a lot of player thread code in decode.c isn't easy to understand.
|
|
|
|
| |
InputPlugin to decoder_plugin, and no camelCase.
|
|
|
|
|
| |
Since inputPlugin.c manages the list of registered decoders, we should
rename the source file.
|
|
|
|
|
|
| |
Also enable -Wunused-parameter - this forces us to add the gcc
"unused" attribute to a lot of parameters (mostly library callback
functions), but it's worth it during code refactorizations.
|
|
|
| |
git-svn-id: https://svn.musicpd.org/mpd/trunk@7372 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
|
|
|
|
| |
This at least makes the argument list to a lot of our plugin
functions shorter and removes a good amount of line nois^W^Wcode,
hopefully making things easier to read and follow.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7353 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
|
|
|
|
|
|
|
|
|
| |
It actually increases our image size a small bit and may even
hurt performance a very small bit, but makes the code less
verbose and easier to manage.
I don't see a reason for mpd to ever support playing multiple
files at the same time (users can run multiple instances of mpd
if they really want to play Zaireeka, but that's such an edge
case it's not worth ever supporting in our code).
git-svn-id: https://svn.musicpd.org/mpd/trunk@7352 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The select() in the main event loop blocks now (saving us many
unnecessary wakeups). This interacted badly with the threads
that were trying to wakeup the main task via
pthread_cond_signal() since the main task was not blocked
on a condition variable, but on select().
So now if we detect a need to wakeup the player, we write
to a pipe which select() is watching instead of blindly
calling pthread_cond_signal().
git-svn-id: https://svn.musicpd.org/mpd/trunk@7347 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
| |
git-svn-id: https://svn.musicpd.org/mpd/trunk@7323 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|
|
|
|
|
| |
Another global variable cleanup patch.
git-svn-id: https://svn.musicpd.org/mpd/trunk@7321 09075e82-0dd4-0310-85a5-a0d7c8717e4f
|