Commit Graph

412 Commits

Author SHA1 Message Date
jcorporation bfbff31860 Store last loaded playlist
Stores the last loaded playlist uri in the queue struct.
Last loaded playlist is set on load command and cleared with the clear command.
The last loaded playlist is printed in the status command and saved / restored from the partition state file.

Resolves issue #938
2024-10-20 12:03:31 +02:00
jcorporation d62f7cdc34 New command searchplaylist 2024-08-02 23:46:17 +02:00
Max Kellermann de9f0dc910 playlist/Plugin: convert _init() and _finish() to methods 2024-07-12 16:00:42 +02:00
Max Kellermann 29747a213f playlist/Registry: replace playlist_plugins_for_each() with a container class 2024-07-12 15:52:05 +02:00
Max Kellermann 131dcce0a1 playlist/Mapper: use Storage::OpenFile() 2024-05-17 12:54:08 +02:00
Max Kellermann 9f174c56ce playlist/Mapper: postpone the stored playlist error
Fixes another regression by commit
f53cd44c7a - an exception thrown by
playlist_open_in_playlist_dir() would skip over
playlist_open_in_storage().
2024-05-15 21:08:46 +02:00
Max Kellermann c8be9662bb playlist/Print: add missing exception handler
This went missing in commit f53cd44c7a
2024-05-15 20:53:55 +02:00
Max Kellermann f53cd44c7a playlist/{Stream,Mapper,Any}: propagate exceptions, do not catch&log them
Let the caller handle all the exceptions.
2024-05-15 20:19:57 +02:00
Max Kellermann 9303764a83 playlist/Print: throw PlaylistError::NoSuchList instead of returning false 2024-05-15 20:19:09 +02:00
Max Kellermann a5456a89dc playlist/Length: throw PlaylistError::NoSuchList instead of returning false 2024-05-15 20:15:16 +02:00
Max Kellermann c974fc664c playlist/Plugin: add noexcept 2024-05-15 20:02:12 +02:00
Max Kellermann eceead671e playlist/Stream: add API documentation 2024-05-15 19:59:57 +02:00
Max Kellermann 4e7b554605 TagAny, playlist/Mapper: use if with initializer 2024-05-15 15:02:59 +02:00
Max Kellermann 0c1ecc96a8 *: let libfmt quote strings 2024-04-16 11:50:18 +02:00
Max Kellermann 9eb26ab90c Merge branch 'countplaylist' of https://github.com/jcorporation/MPD 2024-02-15 11:28:11 +01:00
jcorporation f801f299c9 New command playlistlength
Count the number of songs and their total playtime in the playlist.
2024-02-15 11:25:34 +01:00
jcorporation a3794f8c3b Allow range in listplaylist and listplaylistinfo 2024-02-08 21:26:28 +01:00
jcorporation 7bf43a9712 Add "added" timestamp to song database
- added is set to current time, if a new song is added to the database.
- GetAdded falls back to mtime.

Code for proxy plugin is missing, this needs a patch for libmpdclient.

closes #378
2023-10-20 17:29:31 +02:00
Max Kellermann 2f4e2935a3 db/upnp, playlist/pls: use AddItem(std::string_view) 2023-09-06 16:08:42 +02:00
Max Kellermann 815b248990 */Registry: use constinit 2023-03-07 12:04:16 +01:00
Max Kellermann 42f6a0441c use [[gnu::...]] attributes 2023-03-06 16:14:15 +01:00
Max Kellermann 148aca23be use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Max Kellermann d7de8b1453 Merge branch 'iss-1546' of https://github.com/sp1ff/MPD 2022-12-29 08:37:25 +01:00
Max Kellermann fa58db798b lib/fmt/RuntimeError: new library
Replacing FormatRuntimeError().
2022-11-29 14:10:34 +01:00
Michael Herstine 1adc2c0c51 playlist_load_into_queue: log on failure to load song.
Log at level error when failing to load a song. Limit the number
of log messages produced to avoid flooding the log file when attempting
to load a large, broken playlist.

Closes #1546
2022-11-26 08:28:10 -08:00
Max Kellermann 1429d6bfb9 playlist/cue/Parser: use Split() 2022-10-15 08:33:51 +02:00
Max Kellermann ced6a5ae07 playlist/cue/Parser: remove always-failing assert()
Not the assert() here fails, but the illegal src[-1] call.  Yet
another regression from commit 21e4c25e61
2022-10-15 08:32:37 +02:00
Max Kellermann a966cfeb1f playlist/cue/CueParser: fix nullptr dereference
Regression from commit 21e4c25e61
2022-08-18 17:06:51 +02:00
Rosen Penev 3f133dd586 use data() instead of &[0]
No need for C pointer manipulation.

Removed data() for string_view as [] can be used without.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-07-20 13:50:48 -07:00
Max Kellermann 254ee00c37 fs/Path: rename GetSuffix() to GetExtension()
The "extension" is the name after the dot, but the "suffix" is the
string including the dot.
2022-07-14 18:12:00 +02:00
Max Kellermann cc0def15c4 Copyright year 2022 2022-07-14 17:59:35 +02:00
Max Kellermann 04c924ae3b playlist/Registry: use std::string_view instead of StringView 2022-07-04 14:36:21 +02:00
Max Kellermann 6c8a85a391 playlist/{asx,cue,rss,xspf}: use std::string_view instead of StringView 2022-07-04 14:35:52 +02:00
Max Kellermann d882c3361d playlist/PlaylistPlugin: use std::string_view 2022-07-01 11:31:31 +02:00
Max Kellermann 21e4c25e61 playlist/cue/CueParser: more std::string_view 2022-07-01 11:29:10 +02:00
Max Kellermann c9723ee4b7 playlist/SoundCloud: use std::string_view 2022-07-01 11:16:42 +02:00
Max Kellermann c34f3c9b94 tag/Handler: use StringIsEqualIgnoreCase() 2022-06-30 10:50:56 +02:00
Max Kellermann 232084c2f9 playlist/cue/CueParser: use std::string_view in public API 2022-06-30 10:50:53 +02:00
Max Kellermann ec66ee3bfb tag/Handler: use std::string_view instead of StringView 2022-06-29 17:22:17 +02:00
Rosen Penev 250011f016 return by braced init list
shorter

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-11-22 23:28:08 -08:00
Max Kellermann 771c46032f meson.build: add missing libfmt dependencies
Fixes https://github.com/MusicPlayerDaemon/MPD/discussions/1281

The problem occurred when there was libfmt-dev installed, but it was
too old (e.g. on Debian Buster), and Meson used the wrap fallback.
Those internal MPD libraries where the libfmt dependency was not
declared were still using the old system libfmt headers, which are not
ABI-compatible with MPD's own libfmt build.
2021-10-15 14:26:59 +02:00
Max Kellermann bf656af555 playlist/SoundCloud: use AllocatedString for concatenation 2021-10-13 12:47:57 +02:00
Max Kellermann d2b8852d19 playlist/SoundCloud: move code to TranslateSoundCloudUri() 2021-10-13 12:23:15 +02:00
Max Kellermann f510564d9d more [[gnu::...]] attributes 2021-10-13 12:07:05 +02:00
James D. Smith acc1bd6297 playlist/PlaylistSong: Remove dots from playlist file paths. 2021-10-07 13:15:40 +02:00
Max Kellermann bdd8c34c67 Merge branch 'move' of git://github.com/neheb/MPD 2021-08-29 06:47:05 +02:00
Rosen Penev 0b774df375 prevent use after move
These should be equivalent anyway.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-08-26 13:38:36 -07:00
Rosen Penev 53ffcf455c make several member functions const
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-08-26 13:15:52 -07:00
Rosen Penev da1783cdff clang-tidy: remove pointless const
Found with readability-const-return-type

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-08-21 00:51:21 -07:00
Rosen Penev 30e3ef4c8e constexpr/std::array conversions
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-08-16 21:05:56 -07:00