Commit Graph

6586 Commits

Author SHA1 Message Date
Max Kellermann 5a52e91350 decoder/ogg_common: pass decoder to _type_detect()
Allow the function to be cancelled.
2012-09-04 12:49:02 +02:00
Max Kellermann 18e458154a decoder/ogg_common: apply coding style 2012-09-04 11:52:18 +02:00
Max Kellermann 015e1ab183 decoder/_ogg_common: rename to ogg_common.c 2012-09-04 11:28:36 +02:00
Max Kellermann 2a4c799471 Merge branch 'v0.17.x' 2012-09-04 11:28:13 +02:00
Max Kellermann 41487426f5 decoder/_ogg_common: fix buffer size check
Fixes potential access to uninitialised memory.
2012-09-04 11:22:15 +02:00
Max Kellermann 0d24250aa7 decoder/_ogg_common: simplify the large "if" expression 2012-09-04 11:22:05 +02:00
Wieland Hoffmann 2050e2f886 mpd.conf(5): Use the correct default value for max_playlist_length 2012-09-03 22:49:51 +02:00
Max Kellermann 013e8479af AudioCompress: abort on out-of-memory
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-03 22:45:33 +02:00
Max Kellermann 27535a7f78 update_walk: fix unsafe readlink() usage 2012-09-03 22:41:04 +02:00
Max Kellermann 333d226ed0 SongFilter: convert to a C++ class 2012-08-29 20:19:02 +02:00
Max Kellermann 04a9dec952 playlist_print: rename to PlaylistPrint.cxx 2012-08-29 20:17:13 +02:00
Max Kellermann 6ee76b7154 DatabaseSelection: add method Match() 2012-08-29 20:03:37 +02:00
Max Kellermann 36b1c08ad7 locate: rename to SongFilter.cxx 2012-08-29 19:12:26 +02:00
Max Kellermann 7b35d5e9d4 queue_print: rename to QueuePrint.cxx 2012-08-29 19:07:30 +02:00
Max Kellermann 6d4ca071a5 dbUtils.h: eliminate this header 2012-08-29 18:55:49 +02:00
Max Kellermann 684a3d30a6 command: move code to *Commands.cxx 2012-08-29 17:42:06 +02:00
Max Kellermann 25740d27bf Stats: stats_print() returns void 2012-08-29 17:41:26 +02:00
Max Kellermann fb0a52a34a decoder/mad, output_thread: add gcc_unlikely() 2012-08-29 17:41:22 +02:00
Max Kellermann c852970cf6 Makefile.am: distribute DatabaseCommands.hxx 2012-08-29 17:41:22 +02:00
Max Kellermann def21cc87e Merge branch 'v0.17.x'
Conflicts:
	src/queue_save.c
2012-08-25 10:28:33 +02:00
Max Kellermann 488c1eb87b test/test_queue_priority: fix SIGABRT 2012-08-25 10:24:34 +02:00
Max Kellermann acaa725478 playlist/cue: map "PERFORMER" to "artist" or "album artist"
Implements Mantis ticket 0003549.
2012-08-25 09:56:14 +02:00
Max Kellermann f351550534 player_thread: disable cross-fading in "single" mode
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-25 09:38:41 +02:00
Max Kellermann e8df7e8da5 Database*: fix nullptr dereference when no database is configured 2012-08-22 21:40:20 +02:00
Max Kellermann af4252bc80 fd_util: make C++ safe 2012-08-22 15:51:56 +02:00
Max Kellermann 695ffedef9 Makefile.am: swap libdb_plugins.a and -lmpdclient order
With some linkers, it is important to specify the static library
first, and then libmpdclient.  Fixes linker failures.
2012-08-22 13:54:31 +02:00
Max Kellermann 66ecf39efe command: make "single" a bool 2012-08-21 19:38:08 +02:00
Max Kellermann 5ad21d7e98 queue_save: save song priorities 2012-08-21 19:17:14 +02:00
Max Kellermann 1c3e03837c configure.ac: set VERSION_MINOR to 18
Updates the WIN32 version number for the upcoming 0.18 release.
2012-08-21 18:42:48 +02:00
Max Kellermann 7968fa3779 ProxyDatabase: implement GetSong() 2012-08-16 00:29:25 +02:00
Max Kellermann 31009bb1f6 ProxyDatabase: clear libmpdclient errors in CheckError()
Auto-recover from soft errors.
2012-08-16 00:29:25 +02:00
Max Kellermann 3b8532f3fb DatabasePlugin: add method ReturnSong()
Allow the plugin to allocate the GetSong() return value.
2012-08-16 00:04:14 +02:00
Max Kellermann f45616e5f6 Merge branch 'v0.17.x' 2012-08-16 00:04:03 +02:00
Max Kellermann ef5125f8f4 playlist_print: fix memory leak 2012-08-16 00:01:01 +02:00
Max Kellermann bf2e07074b playlist_song: pass const song to _check_load_song() 2012-08-16 00:00:50 +02:00
Max Kellermann 20695ef369 playlist_song: fix user-after-free bug 2012-08-16 00:00:21 +02:00
Max Kellermann e391f4b17b ProxyDatabase: pass "detached" objects to visitors
Fixes wrong object URIs with duplicate base names.
2012-08-15 23:10:59 +02:00
Max Kellermann 2bd344549b queue: duplicate all song objects
Make sure the queue "owns" all song objects, so nobody else can free
them.
2012-08-15 23:10:00 +02:00
Max Kellermann e96779de48 player_control: duplicate the song object
Make sure the player "owns" the next_song object, so nobody else can
free it.
2012-08-15 23:09:22 +02:00
Max Kellermann eb54337c40 decoder_control: duplicate the song object
Make sure the decoder "owns" the song object, so nobody else can free
it.
2012-08-15 23:08:39 +02:00
Max Kellermann 916a020173 Song: add function song_dup_detached()
Initial support for "detached" songs that come from the database, but
are private copies.
2012-08-15 23:07:24 +02:00
Max Kellermann c2e4fe983d Song: add function song_equals()
decoder_is_current_song() now recognizes different instances of the
same physical song.
2012-08-15 23:06:59 +02:00
Max Kellermann 81e898375b Song: move trivial inline functions up 2012-08-15 23:06:48 +02:00
Max Kellermann 3c0dea811d DatabasePlugin: add method GetStats()
Optimize the ProxyDatabase by invoking "stats" on the peer, instead of
visiting all songs.
2012-08-15 23:05:08 +02:00
Max Kellermann a6ac0f8965 DatabasePlugin: add method VisitUniqueTags()
Optimize the ProxyDatabase by invoking "list" on the peer, instead of
visiting all songs.
2012-08-15 23:02:27 +02:00
Max Kellermann 4e1eb03287 ProxyDatabase: obey visitor return values 2012-08-15 23:02:00 +02:00
Max Kellermann fcf0f8291d ProxyDatabasePlugin: add OO wrapper for mpd_entity
Let the C++ compiler take care for freeing the objects safely.
2012-08-15 23:01:08 +02:00
Max Kellermann 0ed71fa027 ProxyDatabasePlugin: move tag table to the global name space 2012-08-15 23:00:44 +02:00
Max Kellermann affe21f7c1 db_visitor: delete obsolete header 2012-08-15 22:57:20 +02:00
Max Kellermann 9facf7897d DatabasePrint: remove bogus "nonnull" attributes 2012-08-15 22:56:24 +02:00