aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * player_thread: disable cross-fading in "single" modeMax Kellermann2012-08-255-8/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | 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-216-7/+27
| |
* | test/test_queue_priority: fix SIGABRTMax Kellermann2012-08-252-1/+15
| |
* | Database*: fix nullptr dereference when no database is configuredMax Kellermann2012-08-225-8/+48
| |
* | fd_util: make C++ safeMax Kellermann2012-08-221-0/+8
| |
* | Makefile.am: swap libdb_plugins.a and -lmpdclient orderMax Kellermann2012-08-221-2/+2
| | | | | | | | | | With some linkers, it is important to specify the static library first, and then libmpdclient. Fixes linker failures.
* | configure.ac: set VERSION_MINOR to 18Max Kellermann2012-08-211-1/+1
| | | | | | | | Updates the WIN32 version number for the upcoming 0.18 release.
* | 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-163-2/+9
|\|
| * playlist_print: fix memory leakMax Kellermann2012-08-162-0/+4
| |
| * playlist_song: pass const song to _check_load_song()Max Kellermann2012-08-161-1/+1
| |
| * playlist_song: fix user-after-free bugMax Kellermann2012-08-162-1/+4
| |
* | 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-153-5/+40
| | | | | | | | | | 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-159-53/+216
| | | | | | | | | | 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-156-61/+0
| |
* | DatabasePrint: remove bogus "nonnull" attributesMax Kellermann2012-08-151-2/+2
| |
* | Merge branch 'v0.17.x'Max Kellermann2012-08-156-7/+12
|\| | | | | | | | | 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-152-3/+4
| |
* | 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-156-60/+108
|\|
| * doc/user: add wildmidi documentationMax Kellermann2012-08-151-0/+31
| |
| * decoder/fluidsynth: add "sample_rate" settingMax Kellermann2012-08-153-6/+24
| |
| * decoder/fluidsynth: add "soundfont" settingMax Kellermann2012-08-152-6/+38
| | | | | | | | Replaces the old global "soundfont" which never worked.
| * configure.ac: auto-detect libfluidsynthMax Kellermann2012-08-153-12/+3
| | | | | | | | | | 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-152-5/+5
| | | | | | | | 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-152-4/+2
| | | | | | | | Use fluid_is_midifile() to verify the file format.
| * decoder/fluidsynth: remove throttle (requires libfluidsynth 1.1)Max Kellermann2012-08-154-21/+4
| | | | | | | | | | The libfluidsynth API is now sane, and does not require real-time decoding.
* | Merge branch 'v0.17.x'Max Kellermann2012-08-1414-139/+278
|\|
| * 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.