2025-03-10 18:35:20 +01:00

40 lines
970 B
C++

// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright The Music Player Daemon Project
#include "PlaylistUtil.hxx"
#include "playlist/PlaylistRegistry.hxx"
#include "playlist/SongEnumerator.hxx"
#include "song/DetachedSong.hxx"
#include "input/MemoryInputStream.hxx"
#include "input/Ptr.hxx"
#include "thread/Mutex.hxx"
#include "io/BufferedOutputStream.hxx"
#include "io/StringOutputStream.hxx"
#include "util/SpanCast.hxx"
#include "SongSave.hxx"
std::unique_ptr<SongEnumerator>
ParsePlaylist(const char *uri, std::string_view contents)
{
Mutex mutex;
InputStreamPtr input{new MemoryInputStream{uri, mutex, AsBytes(contents)}};
return playlist_list_open_stream(std::move(input), uri);
}
std::string
ToString(SongEnumerator &e)
{
StringOutputStream sos;
WithBufferedOutputStream(sos, [&e](auto &bos){
while (const auto song = e.NextSong()) {
bos.Write('\n');
song_save(bos, *song);
}
bos.Write('\n');
});
return std::move(sos).GetValue();
}