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
|
||||
|
||||
#include <psemek/audio/stream.hpp>
|
||||
#include <psemek/audio/track.hpp>
|
||||
|
||||
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 = {});
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
if (!stream->length())
|
||||
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