aboutsummaryrefslogtreecommitdiffstats
path: root/src/command (follow)
Commit message (Collapse)AuthorAgeFilesLines
* PlaylistSave: return bool/Error instead of PlaylistResultMax Kellermann2015-03-241-2/+4
|
* *: change C-style prototypes, drop "(void)"Max Kellermann2015-03-032-4/+8
|
* FileCommands: use Path::HasNewline()Max Kellermann2015-03-031-3/+3
|
* StorageCommands: use PathTraitsUTF8 for protocol argumentMax Kellermann2015-03-021-1/+1
|
* FileCommands: use PathTraitsFS typedefsMax Kellermann2015-02-281-2/+2
|
* fs/FileInfo: new library providing GetFileInfo()Max Kellermann2015-02-281-7/+7
| | | | Replaces StatFile(), with a portable data object.
* FileCommands: skip special files completelyMax Kellermann2015-02-281-0/+2
| | | | | Previously, MPD printed the time stamp without printing the file name. That made no sense.
* storage/FileInfo: rename to StorageFileInfoMax Kellermann2015-02-281-4/+4
|
* command/{Queue,File}Commands: drop "file:///" prefix for absolute pathsMax Kellermann2015-02-092-13/+15
| | | | | | | | | | | | Requiring this prefix makes the client's intention very clear, but it was too hard to understand why this prefix was needed. Initially, my intention was to differentiate from broken clients which prefix relate URIs with a slash; once MPD allowed that. In the past few years however, MPD has disallowed that, and there was no significant breakage (except for the "add /" special case which some clients apparently still do). So I figure it's about time to define that an URI that begins with a slash points to an arbitrary file on the file system.
* StickerDatabase: convert the struct name to upper caseMax Kellermann2015-01-281-1/+1
|
* Copyright year 2015Max Kellermann2015-01-0131-31/+31
|
* sticker/Match: add inequality operatorsMax Kellermann2014-12-121-0/+4
|
* sticker/Match: add operator "EQUALS"Max Kellermann2014-12-121-1/+17
| | | | | Mapped to "=" in the MPD protocol. This is the first operator, initially supporting value matches in the MPD protocol.
* sticker/Song: add enum StickerOperator to sticker_song_find()Max Kellermann2014-12-121-0/+4
|
* sticker/Database: use the Error libraryMax Kellermann2014-12-121-7/+23
|
* AllCommands: use ARRAY_SIZE()Max Kellermann2014-12-091-1/+2
|
* command: use ConstBuffer<const char *> for argument listMax Kellermann2014-12-0825-420/+417
|
* AllCommands: simplify the tokenizer loopMax Kellermann2014-12-081-17/+19
|
* AllCommands: assign current_command earlyMax Kellermann2014-12-081-5/+4
|
* AllCommands: remove redundant initializerMax Kellermann2014-12-081-1/+1
|
* AllCommands: make variables more localMax Kellermann2014-12-061-16/+13
|
* AllCommands: make the commands array "constexpr"Max Kellermann2014-12-061-1/+1
|
* {Tag,Song}Print, PlayerCommands: report song duration with milliseconds ↵Max Kellermann2014-11-251-0/+4
| | | | precision
* Merge tag 'v0.19.4'Max Kellermann2014-11-181-1/+10
|\
| * QueueCommands: workaround for buggy clients that send "add /"Max Kellermann2014-11-181-1/+10
| |
* | DatabaseCommands: add "window" parameter to "search"/"find"Max Kellermann2014-11-181-1/+13
| |
* | AllCommands: "commands" returns playlist commands only if playlist_directory ↵Max Kellermann2014-10-253-0/+23
|/ | | | configured
* StoragePlugin: pass EventLoop to constructorMax Kellermann2014-10-091-2/+4
|
* storage/Interface: include cleanupMax Kellermann2014-10-011-0/+1
|
* Merge branch 'v0.18.x'Max Kellermann2014-09-241-0/+1
|\
| * command/list: reset used size after the list has been processedAndrzej Rybczak2014-09-181-0/+1
| |
* | PlayerThread: use SongTime for elapsed_timeMax Kellermann2014-08-291-2/+2
| |
* | PlayerControl: use SignedSongTime for the song durationMax Kellermann2014-08-291-1/+3
| |
* | PlaylistEdit: pass std::chrono::duration to SetSongIdRange()Max Kellermann2014-08-281-11/+11
| |
* | Playlist: use std::chrono::duration for Seek*()Max Kellermann2014-08-281-6/+8
| |
* | AllCommands: close connection after syntax errorMax Kellermann2014-08-121-1/+3
| | | | | | | | Stop HTTP clients from exploiting MPD via forged POST requests.
* | db/Interface: add virtual method Update()Max Kellermann2014-07-291-0/+24
| | | | | | | | For database plugins that don't use the UpdateService.
* | OtherCommands: split handle_update()Max Kellermann2014-07-291-16/+22
| |
* | QueueCommands: new command "rangeid"Max Kellermann2014-07-123-0/+58
| | | | | | | | Manipulates the playback range of a queued song.
* | Merge branch 'v0.18.x'Max Kellermann2014-07-113-0/+9
|\|
| * PlaylistEdit: postpone UpdateQueuedSong() when adding multiple songsMax Kellermann2014-07-113-0/+9
| | | | | | | | | | | | | | | | | | | | Implement a "bulk" edit mode that postpones both UpdateQueuedSong() and OnModified(). This way, the playlist version gets incremented only once. More importantly: when adding multiple songs to a queue that consists of only one song, the first song that got added will always be played next. By postponing this choice, all newly added songs get a chance to become the next song. Fixes the second (and last) part of Mantis ticket 0004005.
| * QueueCommands: make "result" more localMax Kellermann2014-07-111-3/+2
| |
* | command: make argc unsignedMax Kellermann2014-06-1625-206/+205
| |
* | ClientList: use class boost::intrusive::listMax Kellermann2014-06-111-4/+4
| | | | | | | | Eliminate extra allocations for the std::list node instances.
* | PlaylistCommands: remove redundant playlist_load_spl() callMax Kellermann2014-05-101-17/+1
| | | | | | | | | | This case is handled already by playlist_open_in_playlist_dir() (via playlist_mapper_open()). And the call didn't work anyway.
* | db/Count: implement groupingMax Kellermann2014-04-271-2/+16
| |
* | DatabasePrint: move PrintSongCount() to Count.cxxMax Kellermann2014-04-261-0/+1
| |
* | DatabasePrint: refactor variable/function namesMax Kellermann2014-04-251-2/+2
| |
* | DatabaseCommands: disallow "grouping" by the selected tagMax Kellermann2014-04-251-0/+7
| | | | | | | | Fixes assertion failure.
* | DatabasePrint: eliminate printAllIn(), printInfoForAllIn()Max Kellermann2014-04-241-2/+4
| |