summaryrefslogtreecommitdiff
path: root/src/player/Control.cxx
AgeCommit message (Collapse)Author
2018-11-19check.h: remove obsolete headerMax Kellermann
Since we switched from autotools to Meson in commit 94592c14062d5afc9482d11baa401648082022c0, we don't need to include `config.h` early to properly enable large file support. Meson passes the required macros on the compiler command line instead of defining them in `config.h`. This means we can include `config.h` at any time, whenever we want to check its macros, and there are no ordering constraints.
2018-10-31*: copyright year 2018Max Kellermann
2018-10-29Merge branch 'v0.20.x'Max Kellermann
2018-10-29player/Control: move IDLE_PLAYER to Player::SeekDecoder()Max Kellermann
This emits the event even if PlayerControl::Play() is used to replay the current song, which emits the missing "player" idle event. Closes #381
2018-09-23player/Control: start thread on demandMax Kellermann
Keep MPD's footprint small until playback is requested.
2018-09-23player/Thread: remove obsolete `buffered_before_play` attributeMax Kellermann
2018-09-22player/CrossFade: use std::chrono::durationMax Kellermann
2018-09-21player/Control: apply CamelCase to struct player_statusMax Kellermann
2018-08-02DetachedSong, db/LightSong, SongFilter: move to src/song/Max Kellermann
2018-01-07thread/Thread: use BoundMethodMax Kellermann
2017-12-29player/Thread: make SEEK (partially) non-blockingMax Kellermann
When the decoder is still starting up while we handle a SEEK, finish the "player SEEK" immediately and re-enter the player loop, being able to handle commands (and even cancel the pending seek). This is the first part in a series of patches to solve the "blocking input blocks decoder, blocks player, blocks the main thread" problem. There are many other blocking code locations left, and the main thread isn't non-blocking either because it waits for "seeking" to become false.
2017-12-29player/Outputs: abstract interface wrapping class MultipleOutputsMax Kellermann
2017-12-21player/Control: add "occupied" flag to skip REFRESHMax Kellermann
Reduces main thread contention. Avoids blocking the main thread in "status" commands.
2017-11-26player/Control: wrap DetachedSong* in std::unique_ptrMax Kellermann
2017-11-26player/Control: add "noexcept"Max Kellermann
2017-05-15Merge tag 'v0.20.7'Max Kellermann
release v0.20.7
2017-05-08*: add "noexcept" to many, many function prototypesMax Kellermann
This eliminates some overhead, because the compiler doesn't need to consider these functions throwing.
2017-02-10thread/Thread: use BoundMethodMax Kellermann
2017-01-03update copyright yearMax Kellermann
2017-01-03thread/Mutex: remove ScopeLock, use std::lock_guard directlyMax Kellermann
2016-12-14output/Multiple: move Wait() to struct PlayerControlMax Kellermann
Eliminate a dependency from MultipleOutputs on PlayerControl.
2016-12-03decoder/Control: add attribute configured_audio_formatMax Kellermann
Obsoletes the same variable from AudioConfig.cxx.
2016-12-03player/Control: make ReplayGainConfig constMax Kellermann
2016-12-03player/Control: use C++11 initializersMax Kellermann
2016-11-09output/Plugin: remove 'Error&' parameters, use C++ exceptions onlyMax Kellermann
2016-09-08player/Control: convert error from Error to std::exception_ptrMax Kellermann
Prepare full C++ exception support in the player thread.
2016-09-08player/Control: use class Error as C++ exception, throw itMax Kellermann
2016-02-28player/Control: Play*() returns Error informationMax Kellermann
2016-02-26update copyright year to 2016Max Kellermann
2016-02-26player/control: unpause in Play()Max Kellermann
Fix regression by commit 45f6129a See http://bugs.musicpd.org/view.php?id=4477
2015-12-29player/Control: don't stop playback in Play()Max Kellermann
Instead of stopping playback completely, only CANCEL the queued song if necessary, and use the SEEK command to play the selected song. SEEK will take care for current playback state.
2015-11-13player/Control: add code commentsMax Kellermann
2015-11-11player/Control: Seek*() returns Error informationMax Kellermann
2015-11-11player/Control: use class ScopeLockMax Kellermann
2015-11-11player/Control: move code to ClearError()Max Kellermann
2015-11-11player/Control: move code to SeekLocked()Max Kellermann
2015-11-11player/Control: add Lock prefix to locking method namesMax Kellermann
2015-10-27player/Control: use CANCEL to clear next_song in Seek()Max Kellermann
Assigning nullptr to next_song may disrupt the player thread and render undefined behavior.
2015-08-15PlayerThread, ...: move to src/player/Max Kellermann