playlist/Plugin: use std::unique_ptr<SongEnumerator>
This commit is contained in:
@@ -142,7 +142,7 @@ asx_char_data(void *user_data, const XML_Char *s, int len)
|
||||
*
|
||||
*/
|
||||
|
||||
static SongEnumerator *
|
||||
static std::unique_ptr<SongEnumerator>
|
||||
asx_open_stream(InputStreamPtr &&is)
|
||||
{
|
||||
AsxParser parser;
|
||||
@@ -155,7 +155,7 @@ asx_open_stream(InputStreamPtr &&is)
|
||||
}
|
||||
|
||||
parser.songs.reverse();
|
||||
return new MemorySongEnumerator(std::move(parser.songs));
|
||||
return std::make_unique<MemorySongEnumerator>(std::move(parser.songs));
|
||||
}
|
||||
|
||||
static const char *const asx_suffixes[] = {
|
||||
|
||||
@@ -36,10 +36,10 @@ class CuePlaylist final : public SongEnumerator {
|
||||
virtual std::unique_ptr<DetachedSong> NextSong() override;
|
||||
};
|
||||
|
||||
static SongEnumerator *
|
||||
static std::unique_ptr<SongEnumerator>
|
||||
cue_playlist_open_stream(InputStreamPtr &&is)
|
||||
{
|
||||
return new CuePlaylist(std::move(is));
|
||||
return std::make_unique<CuePlaylist>(std::move(is));
|
||||
}
|
||||
|
||||
std::unique_ptr<DetachedSong>
|
||||
|
||||
@@ -87,7 +87,7 @@ static constexpr TagHandler embcue_tag_handler = {
|
||||
embcue_tag_pair,
|
||||
};
|
||||
|
||||
static SongEnumerator *
|
||||
static std::unique_ptr<SongEnumerator>
|
||||
embcue_playlist_open_uri(const char *uri,
|
||||
gcc_unused Mutex &mutex,
|
||||
gcc_unused Cond &cond)
|
||||
@@ -98,17 +98,15 @@ embcue_playlist_open_uri(const char *uri,
|
||||
|
||||
const auto path_fs = AllocatedPath::FromUTF8Throw(uri);
|
||||
|
||||
const auto playlist = new EmbeddedCuePlaylist();
|
||||
auto playlist = std::make_unique<EmbeddedCuePlaylist>();
|
||||
|
||||
tag_file_scan(path_fs, embcue_tag_handler, playlist);
|
||||
tag_file_scan(path_fs, embcue_tag_handler, playlist.get());
|
||||
if (playlist->cuesheet.empty())
|
||||
ScanGenericTags(path_fs, embcue_tag_handler, playlist);
|
||||
ScanGenericTags(path_fs, embcue_tag_handler, playlist.get());
|
||||
|
||||
if (playlist->cuesheet.empty()) {
|
||||
if (playlist->cuesheet.empty())
|
||||
/* no "CUESHEET" tag found */
|
||||
delete playlist;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
playlist->filename = PathTraitsUTF8::GetBase(uri);
|
||||
|
||||
|
||||
@@ -59,18 +59,16 @@ public:
|
||||
virtual std::unique_ptr<DetachedSong> NextSong() override;
|
||||
};
|
||||
|
||||
static SongEnumerator *
|
||||
static std::unique_ptr<SongEnumerator>
|
||||
extm3u_open_stream(InputStreamPtr &&is)
|
||||
{
|
||||
ExtM3uPlaylist *playlist = new ExtM3uPlaylist(std::move(is));
|
||||
auto playlist = std::make_unique<ExtM3uPlaylist>(std::move(is));
|
||||
|
||||
is = playlist->CheckFirstLine();
|
||||
if (is) {
|
||||
if (is)
|
||||
/* no EXTM3U header: fall back to the plain m3u
|
||||
plugin */
|
||||
delete playlist;
|
||||
return nullptr;
|
||||
}
|
||||
playlist.reset();
|
||||
|
||||
return playlist;
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ FlacPlaylist::NextSong()
|
||||
return song;
|
||||
}
|
||||
|
||||
static SongEnumerator *
|
||||
static std::unique_ptr<SongEnumerator>
|
||||
flac_playlist_open_uri(const char *uri,
|
||||
gcc_unused Mutex &mutex, gcc_unused Cond &cond)
|
||||
{
|
||||
@@ -109,7 +109,7 @@ flac_playlist_open_uri(const char *uri,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return new FlacPlaylist(uri, cuesheet, streaminfo);
|
||||
return std::make_unique<FlacPlaylist>(uri, cuesheet, streaminfo);
|
||||
}
|
||||
|
||||
static const char *const flac_playlist_suffixes[] = {
|
||||
|
||||
@@ -36,10 +36,10 @@ public:
|
||||
virtual std::unique_ptr<DetachedSong> NextSong() override;
|
||||
};
|
||||
|
||||
static SongEnumerator *
|
||||
static std::unique_ptr<SongEnumerator>
|
||||
m3u_open_stream(InputStreamPtr &&is)
|
||||
{
|
||||
return new M3uPlaylist(std::move(is));
|
||||
return std::make_unique<M3uPlaylist>(std::move(is));
|
||||
}
|
||||
|
||||
std::unique_ptr<DetachedSong>
|
||||
|
||||
@@ -153,14 +153,14 @@ ParsePls(InputStreamPtr &&is, std::forward_list<DetachedSong> &songs)
|
||||
return true;
|
||||
}
|
||||
|
||||
static SongEnumerator *
|
||||
static std::unique_ptr<SongEnumerator>
|
||||
pls_open_stream(InputStreamPtr &&is)
|
||||
{
|
||||
std::forward_list<DetachedSong> songs;
|
||||
if (!ParsePls(std::move(is), songs))
|
||||
return nullptr;
|
||||
|
||||
return new MemorySongEnumerator(std::move(songs));
|
||||
return std::make_unique<MemorySongEnumerator>(std::move(songs));
|
||||
}
|
||||
|
||||
static const char *const pls_suffixes[] = {
|
||||
|
||||
@@ -140,7 +140,7 @@ rss_char_data(void *user_data, const XML_Char *s, int len)
|
||||
*
|
||||
*/
|
||||
|
||||
static SongEnumerator *
|
||||
static std::unique_ptr<SongEnumerator>
|
||||
rss_open_stream(InputStreamPtr &&is)
|
||||
{
|
||||
RssParser parser;
|
||||
@@ -153,7 +153,7 @@ rss_open_stream(InputStreamPtr &&is)
|
||||
}
|
||||
|
||||
parser.songs.reverse();
|
||||
return new MemorySongEnumerator(std::move(parser.songs));
|
||||
return std::make_unique<MemorySongEnumerator>(std::move(parser.songs));
|
||||
}
|
||||
|
||||
static const char *const rss_suffixes[] = {
|
||||
|
||||
@@ -234,7 +234,7 @@ soundcloud_parse_json(const char *url, Yajl::Handle &handle,
|
||||
* soundcloud://playlist/<playlist-id>
|
||||
* soundcloud://url/<url or path of soundcloud page>
|
||||
*/
|
||||
static SongEnumerator *
|
||||
static std::unique_ptr<SongEnumerator>
|
||||
soundcloud_open_uri(const char *uri, Mutex &mutex, Cond &cond)
|
||||
{
|
||||
assert(strncmp(uri, "soundcloud://", 13) == 0);
|
||||
@@ -280,7 +280,7 @@ soundcloud_open_uri(const char *uri, Mutex &mutex, Cond &cond)
|
||||
soundcloud_parse_json(u, handle, mutex, cond);
|
||||
|
||||
data.songs.reverse();
|
||||
return new MemorySongEnumerator(std::move(data.songs));
|
||||
return std::make_unique<MemorySongEnumerator>(std::move(data.songs));
|
||||
}
|
||||
|
||||
static const char *const soundcloud_schemes[] = {
|
||||
|
||||
@@ -187,7 +187,7 @@ xspf_char_data(void *user_data, const XML_Char *s, int len)
|
||||
*
|
||||
*/
|
||||
|
||||
static SongEnumerator *
|
||||
static std::unique_ptr<SongEnumerator>
|
||||
xspf_open_stream(InputStreamPtr &&is)
|
||||
{
|
||||
XspfParser parser;
|
||||
@@ -200,7 +200,7 @@ xspf_open_stream(InputStreamPtr &&is)
|
||||
}
|
||||
|
||||
parser.songs.reverse();
|
||||
return new MemorySongEnumerator(std::move(parser.songs));
|
||||
return std::make_unique<MemorySongEnumerator>(std::move(parser.songs));
|
||||
}
|
||||
|
||||
static const char *const xspf_suffixes[] = {
|
||||
|
||||
Reference in New Issue
Block a user