Fix creating audio track from util::blob
This commit is contained in:
parent
424ed06ecb
commit
8be3544295
2 changed files with 13 additions and 0 deletions
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include <psemek/audio/stream.hpp>
|
||||
#include <psemek/util/span.hpp>
|
||||
#include <psemek/util/blob.hpp>
|
||||
|
||||
#include <optional>
|
||||
#include <vector>
|
||||
|
|
@ -26,6 +27,7 @@ namespace psemek::audio
|
|||
track_ptr load_wav(std::vector<char> const & data);
|
||||
|
||||
track_ptr load_mp3(util::span<char const> data);
|
||||
track_ptr load_mp3(util::blob data);
|
||||
track_ptr load_mp3(std::vector<char> data);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ namespace psemek::audio
|
|||
struct mp3_data_holder
|
||||
{
|
||||
std::vector<char> storage;
|
||||
util::blob blob_storage;
|
||||
util::span<char const> data;
|
||||
|
||||
mp3_data_holder(std::vector<char> storage)
|
||||
|
|
@ -23,6 +24,11 @@ namespace psemek::audio
|
|||
, data(this->storage)
|
||||
{}
|
||||
|
||||
mp3_data_holder(util::blob data)
|
||||
: blob_storage(data)
|
||||
, data(blob_storage.span())
|
||||
{}
|
||||
|
||||
mp3_data_holder(util::span<char const> data)
|
||||
: data(data)
|
||||
{}
|
||||
|
|
@ -135,6 +141,11 @@ namespace psemek::audio
|
|||
return std::make_shared<mp3_track_impl>(std::make_shared<mp3_data_holder>(data));
|
||||
}
|
||||
|
||||
track_ptr load_mp3(util::blob data)
|
||||
{
|
||||
return std::make_shared<mp3_track_impl>(std::make_shared<mp3_data_holder>(std::move(data)));
|
||||
}
|
||||
|
||||
track_ptr load_mp3(std::vector<char> data)
|
||||
{
|
||||
return std::make_shared<mp3_track_impl>(std::make_shared<mp3_data_holder>(std::move(data)));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue