Support creating a loop directly from a track
This commit is contained in:
parent
0d23d8bcab
commit
ef95af60ae
2 changed files with 8 additions and 1 deletions
|
|
@ -1,10 +1,12 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <psemek/audio/stream.hpp>
|
#include <psemek/audio/stream.hpp>
|
||||||
|
#include <psemek/audio/track.hpp>
|
||||||
|
|
||||||
namespace psemek::audio
|
namespace psemek::audio
|
||||||
{
|
{
|
||||||
|
|
||||||
|
stream_ptr loop(track_ptr track, std::optional<std::size_t> count = {});
|
||||||
stream_ptr loop(stream_ptr stream, std::optional<std::size_t> count = {});
|
stream_ptr loop(stream_ptr stream, std::optional<std::size_t> count = {});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,11 +54,16 @@ namespace psemek::audio
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stream_ptr loop(track_ptr track, std::optional<std::size_t> count)
|
||||||
|
{
|
||||||
|
return std::make_shared<loop_impl>(track, count);
|
||||||
|
}
|
||||||
|
|
||||||
stream_ptr loop(stream_ptr stream, std::optional<std::size_t> count)
|
stream_ptr loop(stream_ptr stream, std::optional<std::size_t> count)
|
||||||
{
|
{
|
||||||
if (!stream->length())
|
if (!stream->length())
|
||||||
return stream;
|
return stream;
|
||||||
return std::make_shared<loop_impl>(make_duplicator(std::move(stream)), count);
|
return loop(make_duplicator(std::move(stream)), count);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue