aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'v0.17.x'Max Kellermann2012-08-2510-16/+84
|\ | | | | | | | | Conflicts: src/queue_save.c
| * playlist/cue: map "PERFORMER" to "artist" or "album artist"Max Kellermann2012-08-251-1/+11
| | | | | | | | Implements Mantis ticket 0003549.
| * player_thread: disable cross-fading in "single" modeMax Kellermann2012-08-254-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 boolMax Kellermann2012-08-211-1/+1
| |
| * queue_save: save song prioritiesMax Kellermann2012-08-214-6/+25
| |
* | Database*: fix nullptr dereference when no database is configuredMax Kellermann2012-08-225-8/+48
| |
* | fd_util: make C++ safeMax Kellermann2012-08-221-0/+8
| |
* | ProxyDatabase: implement GetSong()Max Kellermann2012-08-161-3/+26
| |
* | ProxyDatabase: clear libmpdclient errors in CheckError()Max Kellermann2012-08-161-1/+2
| | | | | | | | Auto-recover from soft errors.
* | DatabasePlugin: add method ReturnSong()Max Kellermann2012-08-1613-14/+85
| | | | | | | | Allow the plugin to allocate the GetSong() return value.
* | Merge branch 'v0.17.x'Max Kellermann2012-08-162-2/+7
|\|
| * playlist_print: fix memory leakMax Kellermann2012-08-161-0/+3
| |
| * playlist_song: pass const song to _check_load_song()Max Kellermann2012-08-161-1/+1
| |
| * playlist_song: fix user-after-free bugMax Kellermann2012-08-161-1/+3
| |
* | ProxyDatabase: pass "detached" objects to visitorsMax Kellermann2012-08-153-40/+49
| | | | | | | | Fixes wrong object URIs with duplicate base names.
* | queue: duplicate all song objectsMax Kellermann2012-08-151-5/+6
| | | | | | | | | | Make sure the queue "owns" all song objects, so nobody else can free them.
* | player_control: duplicate the song objectMax Kellermann2012-08-155-7/+58
| | | | | | | | | | Make sure the player "owns" the next_song object, so nobody else can free it.
* | decoder_control: duplicate the song objectMax Kellermann2012-08-153-3/+15
| | | | | | | | | | Make sure the decoder "owns" the song object, so nobody else can free it.
* | Song: add function song_dup_detached()Max Kellermann2012-08-153-1/+81
| | | | | | | | | | Initial support for "detached" songs that come from the database, but are private copies.
* | Song: add function song_equals()Max Kellermann2012-08-153-1/+37
| | | | | | | | | | decoder_is_current_song() now recognizes different instances of the same physical song.
* | Song: move trivial inline functions upMax Kellermann2012-08-151-12/+12
| |
* | DatabasePlugin: add method GetStats()Max Kellermann2012-08-157-63/+148
| | | | | | | | | | Optimize the ProxyDatabase by invoking "stats" on the peer, instead of visiting all songs.
* | DatabasePlugin: add method VisitUniqueTags()Max Kellermann2012-08-158-53/+215
| | | | | | | | | | Optimize the ProxyDatabase by invoking "list" on the peer, instead of visiting all songs.
* | ProxyDatabase: obey visitor return valuesMax Kellermann2012-08-151-8/+11
| |
* | ProxyDatabasePlugin: add OO wrapper for mpd_entityMax Kellermann2012-08-151-11/+32
| | | | | | | | Let the C++ compiler take care for freeing the objects safely.
* | ProxyDatabasePlugin: move tag table to the global name spaceMax Kellermann2012-08-151-25/+25
| |
* | db_visitor: delete obsolete headerMax Kellermann2012-08-155-60/+0
| |
* | DatabasePrint: remove bogus "nonnull" attributesMax Kellermann2012-08-151-2/+2
| |
* | Merge branch 'v0.17.x'Max Kellermann2012-08-155-7/+11
|\| | | | | | | | | Conflicts: src/player_thread.c
| * player_thread: add local variable "start_ms"Max Kellermann2012-08-151-1/+3
| | | | | | | | Just in case "song" becomes invalid at some point.
| * playlist: fix unprotected player_control accessMax Kellermann2012-08-151-1/+5
| |
| * filter/volume: include cleanupMax Kellermann2012-08-152-2/+0
| |
| * mapper: fix potential crash in file permission checkMax Kellermann2012-08-151-3/+3
| |
* | decoder_control: add function _is_current_song()Max Kellermann2012-08-153-15/+42
| | | | | | | | Replaces _current_song().
* | decoder_control: add assertion to dc_get_error()Max Kellermann2012-08-151-0/+1
| |
* | decoder_thread: create GError for mapper failureMax Kellermann2012-08-151-0/+3
| | | | | | | | Fixes crash.
* | Merge branch 'v0.17.x'Max Kellermann2012-08-151-53/+28
|\|
| * decoder/fluidsynth: add "sample_rate" settingMax Kellermann2012-08-151-6/+14
| |
| * decoder/fluidsynth: add "soundfont" settingMax Kellermann2012-08-151-6/+7
| | | | | | | | Replaces the old global "soundfont" which never worked.
| * configure.ac: auto-detect libfluidsynthMax Kellermann2012-08-151-9/+0
| | | | | | | | | | Now that the libfluidsynth API was sanitized, we can enable the plugin automatically if libfluidsynth is installed.
| * decoder/fluidsynth: stop playback at end of fileMax Kellermann2012-08-151-5/+4
| | | | | | | | Use libfluidsynth's new function fluid_player_get_status().
| * decoder/fluidsynth: don't duplicate pathMax Kellermann2012-08-151-6/+1
| | | | | | | | The libfluidsynth now accepts const strings.
| * decoder/fluidsynth: check if file is really a MIDIMax Kellermann2012-08-151-4/+1
| | | | | | | | Use fluid_is_midifile() to verify the file format.
| * decoder/fluidsynth: remove throttle (requires libfluidsynth 1.1)Max Kellermann2012-08-151-17/+1
| | | | | | | | | | The libfluidsynth API is now sane, and does not require real-time decoding.
* | Merge branch 'v0.17.x'Max Kellermann2012-08-1410-126/+261
|\|
| * log: store duplicated path stringMax Kellermann2012-08-143-31/+32
| | | | | | | | | | | | | | Don't free the string right after calling log_init_file(). Add a new function log_deinit() that frees the string on shutdown. This fixes cycling the log file after SIGHUP (Mantis ticket 0003524).
| * output/jack: implement method delay()Max Kellermann2012-08-141-4/+11
| | | | | | | | Eliminate the g_usleep() call.
| * output/pulse: implement method delay()Max Kellermann2012-08-141-7/+21
| | | | | | | | Reduce command latency while paused.
| * output/pulse: simplify _wait_stream()Max Kellermann2012-08-141-55/+16
| | | | | | | | One large loop and only one pa_stream_get_state() call.
| * output/httpd: move delay from _pause() to _delay()Max Kellermann2012-08-141-1/+5
| |