aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-09-25command: move remaining handlers to OtherCommands.cxxMax Kellermann3-277/+387
2012-09-25gcc.h: require gcc 4.6Max Kellermann1-2/+2
We use range-based for and nullptr, which was not implemented prior to gcc 4.6.
2012-09-25decoder_control: remove MixRamp debug messagesMax Kellermann4-10/+4
These are confusing, and since MixRamp development has ceased, not useful to anybody.
2012-09-25decoder/wavpack: support all APEv2 tagsMax Kellermann3-17/+17
WavPack tags are always APEv2, by definition. Reuse the tag_table from tag_ape.c, instead of rolling our own.
2012-09-22locate: cast enum tag_type to int before comparing with integerMax Kellermann1-4/+4
Avoids clang pickiness. This code is not correct, but we'll fix that another day.
2012-09-05src/decoder/opus: new decoder plugin for the Opus codecMax Kellermann12-0/+782
Using libopus and libogg.
2012-09-05decoder/{flac,vorbis}: move tag table to XiphTags.cMax Kellermann4-16/+60
Merge duplicate data.
2012-09-05db/SimpleDatabasePlugin: fix memory leak in Visit()Max Kellermann1-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.
2012-09-05db_lock: add C++ helper class ScopeDatabaseLockMax Kellermann2-11/+21
2012-09-04decoder/ogg_codec: return UNKNOWN on errorMax Kellermann2-1/+2
2012-09-04decoder/ogg_common: rename to ogg_codec.cMax Kellermann4-19/+19
2012-09-04decoder/ogg_common: pass decoder to _type_detect()Max Kellermann4-5/+5
Allow the function to be cancelled.
2012-09-04decoder/ogg_common: apply coding styleMax Kellermann2-6/+9
2012-09-04decoder/_ogg_common: rename to ogg_common.cMax Kellermann6-5/+5
2012-09-04decoder/_ogg_common: fix buffer size checkMax Kellermann1-1/+1
Fixes potential access to uninitialised memory.
2012-09-04decoder/_ogg_common: simplify the large "if" expressionMax Kellermann1-6/+8
2012-09-03AudioCompress: abort on out-of-memoryMax Kellermann1-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.
2012-09-03update_walk: fix unsafe readlink() usageMax Kellermann1-2/+10
2012-08-29SongFilter: convert to a C++ classMax Kellermann19-239/+209
2012-08-29playlist_print: rename to PlaylistPrint.cxxMax Kellermann5-9/+12
2012-08-29DatabaseSelection: add method Match()Max Kellermann3-2/+32
2012-08-29locate: rename to SongFilter.cxxMax Kellermann8-13/+16
2012-08-29queue_print: rename to QueuePrint.cxxMax Kellermann1-1/+4
2012-08-29dbUtils.h: eliminate this headerMax Kellermann5-60/+5
2012-08-29command: move code to *Commands.cxxMax Kellermann13-1289/+1848
2012-08-29Stats: stats_print() returns voidMax Kellermann3-5/+6
2012-08-29decoder/mad, output_thread: add gcc_unlikely()Max Kellermann2-3/+3
2012-08-25playlist/cue: map "PERFORMER" to "artist" or "album artist"Max Kellermann1-1/+11
Implements Mantis ticket 0003549.
2012-08-25player_thread: disable cross-fading in "single" modeMax Kellermann4-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.
2012-08-22Database*: fix nullptr dereference when no database is configuredMax Kellermann5-8/+48
2012-08-22fd_util: make C++ safeMax Kellermann1-0/+8
2012-08-21command: make "single" a boolMax Kellermann1-1/+1
2012-08-21queue_save: save song prioritiesMax Kellermann4-6/+25
2012-08-16ProxyDatabase: implement GetSong()Max Kellermann1-3/+26
2012-08-16ProxyDatabase: clear libmpdclient errors in CheckError()Max Kellermann1-1/+2
Auto-recover from soft errors.
2012-08-16DatabasePlugin: add method ReturnSong()Max Kellermann13-14/+85
Allow the plugin to allocate the GetSong() return value.
2012-08-16playlist_print: fix memory leakMax Kellermann1-0/+3
2012-08-16playlist_song: pass const song to _check_load_song()Max Kellermann1-1/+1
2012-08-16playlist_song: fix user-after-free bugMax Kellermann1-1/+3
2012-08-15ProxyDatabase: pass "detached" objects to visitorsMax Kellermann3-40/+49
Fixes wrong object URIs with duplicate base names.
2012-08-15queue: duplicate all song objectsMax Kellermann1-5/+6
Make sure the queue "owns" all song objects, so nobody else can free them.
2012-08-15player_control: duplicate the song objectMax Kellermann5-7/+58
Make sure the player "owns" the next_song object, so nobody else can free it.
2012-08-15decoder_control: duplicate the song objectMax Kellermann3-3/+15
Make sure the decoder "owns" the song object, so nobody else can free it.
2012-08-15Song: add function song_dup_detached()Max Kellermann3-1/+81
Initial support for "detached" songs that come from the database, but are private copies.
2012-08-15Song: add function song_equals()Max Kellermann3-1/+37
decoder_is_current_song() now recognizes different instances of the same physical song.
2012-08-15Song: move trivial inline functions upMax Kellermann1-12/+12
2012-08-15DatabasePlugin: add method GetStats()Max Kellermann7-63/+148
Optimize the ProxyDatabase by invoking "stats" on the peer, instead of visiting all songs.
2012-08-15DatabasePlugin: add method VisitUniqueTags()Max Kellermann8-53/+215
Optimize the ProxyDatabase by invoking "list" on the peer, instead of visiting all songs.
2012-08-15ProxyDatabase: obey visitor return valuesMax Kellermann1-8/+11
2012-08-15ProxyDatabasePlugin: add OO wrapper for mpd_entityMax Kellermann1-11/+32
Let the C++ compiler take care for freeing the objects safely.