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/audio/stream.hpp>
|
||||||
#include <psemek/util/span.hpp>
|
#include <psemek/util/span.hpp>
|
||||||
|
#include <psemek/util/blob.hpp>
|
||||||
|
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
@ -26,6 +27,7 @@ namespace psemek::audio
|
||||||
track_ptr load_wav(std::vector<char> const & data);
|
track_ptr load_wav(std::vector<char> const & data);
|
||||||
|
|
||||||
track_ptr load_mp3(util::span<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);
|
track_ptr load_mp3(std::vector<char> data);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ namespace psemek::audio
|
||||||
struct mp3_data_holder
|
struct mp3_data_holder
|
||||||
{
|
{
|
||||||
std::vector<char> storage;
|
std::vector<char> storage;
|
||||||
|
util::blob blob_storage;
|
||||||
util::span<char const> data;
|
util::span<char const> data;
|
||||||
|
|
||||||
mp3_data_holder(std::vector<char> storage)
|
mp3_data_holder(std::vector<char> storage)
|
||||||
|
|
@ -23,6 +24,11 @@ namespace psemek::audio
|
||||||
, data(this->storage)
|
, data(this->storage)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
mp3_data_holder(util::blob data)
|
||||||
|
: blob_storage(data)
|
||||||
|
, data(blob_storage.span())
|
||||||
|
{}
|
||||||
|
|
||||||
mp3_data_holder(util::span<char const> data)
|
mp3_data_holder(util::span<char const> data)
|
||||||
: data(data)
|
: data(data)
|
||||||
{}
|
{}
|
||||||
|
|
@ -135,6 +141,11 @@ namespace psemek::audio
|
||||||
return std::make_shared<mp3_track_impl>(std::make_shared<mp3_data_holder>(data));
|
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)
|
track_ptr load_mp3(std::vector<char> data)
|
||||||
{
|
{
|
||||||
return std::make_shared<mp3_track_impl>(std::make_shared<mp3_data_holder>(std::move(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