Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | gcc.h: require gcc 4.6 | Max Kellermann | 2012-09-25 | 1 | -2/+2 |
| | | | | | We use range-based for and nullptr, which was not implemented prior to gcc 4.6. | ||||
* | Merge branch 'v0.17.x' | Max Kellermann | 2012-09-25 | 7 | -27/+21 |
|\ | | | | | | | | | Conflicts: src/locate.c | ||||
| * | decoder_control: remove MixRamp debug messages | Max Kellermann | 2012-09-25 | 4 | -10/+4 |
| | | | | | | | | | | These are confusing, and since MixRamp development has ceased, not useful to anybody. | ||||
| * | decoder/wavpack: support all APEv2 tags | Max Kellermann | 2012-09-25 | 3 | -17/+17 |
| | | | | | | | | | | WavPack tags are always APEv2, by definition. Reuse the tag_table from tag_ape.c, instead of rolling our own. | ||||
| * | locate: cast enum tag_type to int before comparing with integer | Max Kellermann | 2012-09-22 | 1 | -4/+4 |
| | | | | | | | | | | Avoids clang pickiness. This code is not correct, but we'll fix that another day. | ||||
* | | src/decoder/opus: new decoder plugin for the Opus codec | Max Kellermann | 2012-09-05 | 12 | -0/+782 |
| | | | | | | | | Using libopus and libogg. | ||||
* | | decoder/{flac,vorbis}: move tag table to XiphTags.c | Max Kellermann | 2012-09-05 | 4 | -16/+60 |
| | | | | | | | | Merge duplicate data. | ||||
* | | db/SimpleDatabasePlugin: fix memory leak in Visit() | Max Kellermann | 2012-09-05 | 1 | -7/+11 |
| | | | | | | | | | | | | | | When visiting a song, GetSong() was called, but this object was never returned by calling ReturnSong(). This patch locks the database only once in Visit() and passes the original song object to the visitor, avoiding the copy. | ||||
* | | db_lock: add C++ helper class ScopeDatabaseLock | Max Kellermann | 2012-09-05 | 2 | -11/+21 |
| | | |||||
* | | decoder/ogg_codec: return UNKNOWN on error | Max Kellermann | 2012-09-04 | 2 | -1/+2 |
| | | |||||
* | | decoder/ogg_common: rename to ogg_codec.c | Max Kellermann | 2012-09-04 | 4 | -19/+19 |
| | | |||||
* | | decoder/ogg_common: pass decoder to _type_detect() | Max Kellermann | 2012-09-04 | 4 | -5/+5 |
| | | | | | | | | Allow the function to be cancelled. | ||||
* | | decoder/ogg_common: apply coding style | Max Kellermann | 2012-09-04 | 2 | -6/+9 |
| | | |||||
* | | decoder/_ogg_common: rename to ogg_common.c | Max Kellermann | 2012-09-04 | 6 | -5/+5 |
| | | |||||
* | | Merge branch 'v0.17.x' | Max Kellermann | 2012-09-04 | 3 | -8/+25 |
|\| | |||||
| * | decoder/_ogg_common: fix buffer size check | Max Kellermann | 2012-09-04 | 1 | -1/+1 |
| | | | | | | | | Fixes potential access to uninitialised memory. | ||||
| * | decoder/_ogg_common: simplify the large "if" expression | Max Kellermann | 2012-09-04 | 1 | -6/+8 |
| | | |||||
| * | AudioCompress: abort on out-of-memory | Max Kellermann | 2012-09-03 | 1 | -0/+7 |
| | | | | | | | | | | | | This library crashes on out-of-memory (NULL pointer dereference). There's not much useful MPD can do in such a situation, so let's explicitly abort instead, just like GLib does. | ||||
| * | update_walk: fix unsafe readlink() usage | Max Kellermann | 2012-09-03 | 1 | -2/+10 |
| | | |||||
* | | SongFilter: convert to a C++ class | Max Kellermann | 2012-08-29 | 19 | -239/+209 |
| | | |||||
* | | playlist_print: rename to PlaylistPrint.cxx | Max Kellermann | 2012-08-29 | 5 | -9/+12 |
| | | |||||
* | | DatabaseSelection: add method Match() | Max Kellermann | 2012-08-29 | 3 | -2/+32 |
| | | |||||
* | | locate: rename to SongFilter.cxx | Max Kellermann | 2012-08-29 | 8 | -13/+16 |
| | | |||||
* | | queue_print: rename to QueuePrint.cxx | Max Kellermann | 2012-08-29 | 1 | -1/+4 |
| | | |||||
* | | dbUtils.h: eliminate this header | Max Kellermann | 2012-08-29 | 5 | -60/+5 |
| | | |||||
* | | command: move code to *Commands.cxx | Max Kellermann | 2012-08-29 | 13 | -1289/+1848 |
| | | |||||
* | | Stats: stats_print() returns void | Max Kellermann | 2012-08-29 | 3 | -5/+6 |
| | | |||||
* | | decoder/mad, output_thread: add gcc_unlikely() | Max Kellermann | 2012-08-29 | 2 | -3/+3 |
| | | |||||
* | | Merge branch 'v0.17.x' | Max Kellermann | 2012-08-25 | 10 | -16/+84 |
|\| | | | | | | | | | Conflicts: src/queue_save.c | ||||
| * | playlist/cue: map "PERFORMER" to "artist" or "album artist" | Max Kellermann | 2012-08-25 | 1 | -1/+11 |
| | | | | | | | | Implements Mantis ticket 0003549. | ||||
| * | player_thread: disable cross-fading in "single" mode | Max Kellermann | 2012-08-25 | 4 | -8/+47 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit reimplements the core of the "single" mode. Instead of doing the detection in the playlist code from the outside, it is moved to the player thread, which gets a new option called "border_pause". It will now pause playback exactly at the beginning of the new song, making the feature more reliable. Now that the player thread knows what will happen, it can suppress cross-fading. Fixes mantis tickets 0003055 and 0003166. | ||||
| * | command: make "single" a bool | Max Kellermann | 2012-08-21 | 1 | -1/+1 |
| | | |||||
| * | queue_save: save song priorities | Max Kellermann | 2012-08-21 | 4 | -6/+25 |
| | | |||||
* | | Database*: fix nullptr dereference when no database is configured | Max Kellermann | 2012-08-22 | 5 | -8/+48 |
| | | |||||
* | | fd_util: make C++ safe | Max Kellermann | 2012-08-22 | 1 | -0/+8 |
| | | |||||
* | | ProxyDatabase: implement GetSong() | Max Kellermann | 2012-08-16 | 1 | -3/+26 |
| | | |||||
* | | ProxyDatabase: clear libmpdclient errors in CheckError() | Max Kellermann | 2012-08-16 | 1 | -1/+2 |
| | | | | | | | | Auto-recover from soft errors. | ||||
* | | DatabasePlugin: add method ReturnSong() | Max Kellermann | 2012-08-16 | 13 | -14/+85 |
| | | | | | | | | Allow the plugin to allocate the GetSong() return value. | ||||
* | | Merge branch 'v0.17.x' | Max Kellermann | 2012-08-16 | 2 | -2/+7 |
|\| | |||||
| * | playlist_print: fix memory leak | Max Kellermann | 2012-08-16 | 1 | -0/+3 |
| | | |||||
| * | playlist_song: pass const song to _check_load_song() | Max Kellermann | 2012-08-16 | 1 | -1/+1 |
| | | |||||
| * | playlist_song: fix user-after-free bug | Max Kellermann | 2012-08-16 | 1 | -1/+3 |
| | | |||||
* | | ProxyDatabase: pass "detached" objects to visitors | Max Kellermann | 2012-08-15 | 3 | -40/+49 |
| | | | | | | | | Fixes wrong object URIs with duplicate base names. | ||||
* | | queue: duplicate all song objects | Max Kellermann | 2012-08-15 | 1 | -5/+6 |
| | | | | | | | | | | Make sure the queue "owns" all song objects, so nobody else can free them. | ||||
* | | player_control: duplicate the song object | Max Kellermann | 2012-08-15 | 5 | -7/+58 |
| | | | | | | | | | | Make sure the player "owns" the next_song object, so nobody else can free it. | ||||
* | | decoder_control: duplicate the song object | Max Kellermann | 2012-08-15 | 3 | -3/+15 |
| | | | | | | | | | | Make sure the decoder "owns" the song object, so nobody else can free it. | ||||
* | | Song: add function song_dup_detached() | Max Kellermann | 2012-08-15 | 3 | -1/+81 |
| | | | | | | | | | | Initial support for "detached" songs that come from the database, but are private copies. | ||||
* | | Song: add function song_equals() | Max Kellermann | 2012-08-15 | 3 | -1/+37 |
| | | | | | | | | | | decoder_is_current_song() now recognizes different instances of the same physical song. | ||||
* | | Song: move trivial inline functions up | Max Kellermann | 2012-08-15 | 1 | -12/+12 |
| | | |||||
* | | DatabasePlugin: add method GetStats() | Max Kellermann | 2012-08-15 | 7 | -63/+148 |
| | | | | | | | | | | Optimize the ProxyDatabase by invoking "stats" on the peer, instead of visiting all songs. |