- 03 Jan, 2017 1 commit
-
-
Max Kellermann authored
-
- 05 Mar, 2016 1 commit
-
-
Max Kellermann authored
-
- 26 Feb, 2016 1 commit
-
-
Max Kellermann authored
-
- 03 Mar, 2015 1 commit
-
-
Max Kellermann authored
-
- 01 Jan, 2015 1 commit
-
-
Max Kellermann authored
-
- 12 Feb, 2014 1 commit
-
-
Max Kellermann authored
Add the new idle event to Idle.hxx/Idle.cxx.
-
- 09 Feb, 2014 1 commit
-
-
Max Kellermann authored
Implements the error checks missing in commit 0bad8406
-
- 25 Jan, 2014 1 commit
-
-
Max Kellermann authored
This commit adds the NeighborPlugin API which can be used to detect nearby file servers that can be used by input plugins. This list of servers is exported using the new "listneighbors" command. The idle even "neighbor" notifies interested clients when a new neighbor is found or an existing one is lost. There's a lot missing currently: protocol&user documentation, and a way to "mount" remote servers into the music database. Obviously, some code from the UPnP database plugin can be moved to a neighbor plugin.
-
- 13 Jan, 2014 1 commit
-
-
Max Kellermann authored
-
- 20 Oct, 2013 1 commit
-
-
Max Kellermann authored
-
- 08 Apr, 2013 1 commit
-
-
Max Kellermann authored
-
- 16 Jan, 2013 1 commit
-
-
Max Kellermann authored
-
- 09 Jan, 2013 1 commit
-
-
Max Kellermann authored
-
- 29 Jan, 2011 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
- 01 Jan, 2010 1 commit
-
-
Avuton Olrich authored
-
- 05 Jul, 2009 1 commit
-
-
Max Kellermann authored
Some clients have visual feedback for "database update is running". Using the "database" idle event is unreliable, because it is only emitted when the database was actually modified. This patch adds the "update" event, which is emitted when the update is started, and again when the update is finished, disregarding whether it has been modified.
-
- 13 Mar, 2009 1 commit
-
-
Avuton Olrich authored
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
-
- 25 Jan, 2009 1 commit
-
-
Qball Cow authored
-
- 28 Dec, 2008 1 commit
-
-
Thomas Jansen authored
-
- 22 Nov, 2008 1 commit
-
-
Marc Pavot authored
The client may provide the names of idle events as arguments to the "idle" command to inform MPD that it is only interested in these events.
-
- 14 Oct, 2008 1 commit
-
-
Max Kellermann authored
"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.
-
- 08 Oct, 2008 3 commits
-
-
Max Kellermann authored
"bool" should be used in C99 programs for boolean values.
-
Max Kellermann authored
When there are standardized headers, use these instead of the bloated os_compat.h.
-
Max Kellermann authored
Typedefs shouldn't be used, use the bare struct names instead.
-
- 26 Sep, 2008 1 commit
-
-
Max Kellermann authored
There was a known deadlocking bug in the notify library: when the other thread set notify->pending after the according check in notify_wait(), the latter thread was deadlocked. Resolve this by synchronizing all accesses to notify->pending with the notify object's mutex. Since notify_signal_sync() was never used, we can remove it. As a consequence, we don't need notify_enter() and notify_leave() anymore; eliminate them, too.
-
- 24 Sep, 2008 4 commits
-
-
Max Kellermann authored
With the macro NOTIFY_INITIALIZER, you can statically initialize a notify object.
-
Max Kellermann authored
Destroy the mutex when it is not used anymore.
-
Max Kellermann authored
When a mutex cannot be created, there must be something very wrong. Induce panic and abort MPD in this case.
-
Max Kellermann authored
"struct notify" is the same as the "Notify" typedef. It can be forward-declared and has a lower case name.
-
- 01 Jun, 2008 1 commit
-
-
Max Kellerman authored
git-svn-id: https://svn.musicpd.org/mpd/trunk@7367 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-
- 12 Apr, 2008 2 commits
-
-
Max Kellermann authored
This patch rewrites notify.c to use the pthread API, namely pthread_mutex and pthread_cond. This is a lot cheaper and easier than the pipe() hack. git-svn-id: https://svn.musicpd.org/mpd/trunk@7280 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-
Max Kellermann authored
Use "notify" as a prefix rather than suffix. git-svn-id: https://svn.musicpd.org/mpd/trunk@7279 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-
- 26 Mar, 2008 3 commits
-
-
Eric Wong authored
Don't bother initializing the junk buffer, we really don't care. The array was also unnecessary and ugly. Also, avoid returning the byte count we read/wrote since it unnecessarily exposes internal details of the implementation to the callers. git-svn-id: https://svn.musicpd.org/mpd/trunk@7219 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-
Eric Wong authored
* move set_nonblock{,ing}() into utils.c since we use it elsewhere, too * add proper error checking to set_nonblocking() * use os_compat.h instead of individually #includ-ing system headers git-svn-id: https://svn.musicpd.org/mpd/trunk@7217 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-
Max Kellermann authored
When the decoder process is faster than the player process, all decodedd buffers are full at some point in time. The decoder has to wait for buffers to become free (finished playing). It used to do this by polling the buffer status 100 times a second. This generates a lot of unnecessary CPU wakeups. This patch adds a way for the player process to notify the decoder process that it may continue its work. We could use pthread_cond for that, unfortunately inter-process mutexes/conds are not supported by some kernels (Linux), so we cannot use this light-weight method until mpd moves to using threads instead of processes. The other method would be semaphores, which historically are global resources with a unique name; this historic API is cumbersome, and I wanted to avoid it. I came up with a quite naive solution for now: I create an anonymous pipe with pipe(), and the decoder process reads on that pipe. Until the player process sends data on it as a signal, the decoder process blocks. This can be optimized in a number of ways: - if the decoder process is still working (instead of waiting for buffers), we could save the write() system call, since there is nobody waiting for the notification. [ew: I tried this using a counter in shared memory, didn't help] - the pipe buffer will be full at some point, when the decoder thread is too slow. For this reason, the writer side of the pipe is non-blocking, and mpd can ignore the resulting EWOULDBLOCK. - since we have shared memory, we could check whether somebody is actually waiting without a context switch, and we could just not write the notification byte. [ew: tried same method/result as first point above] - if there is already a notification in the pipe, we could also not write another one. [ew: tried same method/result as first/third points above] - the decoder will only consume 64 bytes at a time. If the pipe buffer is full, this will result in a lot of read() invocations. This does not hurt badly, but on a heavily loaded system, this might add a little bit more load. The preceding optimizations however are able eliminate the this. - finally, we should use another method for inter process notifications - maybe kill() or just make mpd use threads, finally. In spite of all these possibilities to optimize this code further, this pipe notification trick is faster than the 100 Hz poll. On my machine, it reduced the number of wakeups to less than 30%. git-svn-id: https://svn.musicpd.org/mpd/trunk@7215 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-
- 05 Apr, 2007 1 commit
-
-
Avuton Olrich authored
git-svn-id: https://svn.musicpd.org/mpd/trunk@5834 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-
- 06 Oct, 2006 2 commits
-
-
Warren Dukes authored
git-svn-id: https://svn.musicpd.org/mpd/trunk@4875 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-
Eric Wong authored
Warren's fix in r4872 made phpMp work again, but also broke the unit tests completely (they work in this version). The version in 0.12.0 is far too buggy (it was from mpd-ke, what do you expect?). This one passes all the unit tests that the mpd-ke one passed, and should also work with phpMp when used with PHP magic quotes. This also means we can search on 100 (or more) tags at once, so no more arbitrary limits other than system memory. To run the unit tests, just do this: gcc -o t -DUNIT_TEST=1 src/buffer2array.c && ./t && echo OK git-svn-id: https://svn.musicpd.org/mpd/trunk@4874 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-
- 06 Aug, 2006 1 commit
-
-
Warren Dukes authored
renamce cstrtok to buffer2array. please don't rename functions; especially to names that look extremely std-lib-ish. also, don't use isspace, apparently it's local dependent and potentially consideres ' ' or '\t' not to be a space, or considers other characters to be a space. git-svn-id: https://svn.musicpd.org/mpd/trunk@4574 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-