diff options
Diffstat (limited to 'os2eindopdracht/SampleStream.cpp')
-rw-r--r-- | os2eindopdracht/SampleStream.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/os2eindopdracht/SampleStream.cpp b/os2eindopdracht/SampleStream.cpp index b9fd542..ca60281 100644 --- a/os2eindopdracht/SampleStream.cpp +++ b/os2eindopdracht/SampleStream.cpp @@ -1,8 +1,10 @@ #include <algorithm> #include "SampleStream.h" +#include "SampleBlock.h" using std::string; +using std::min; SampleStream::SampleStream(string input_stream) { load(input_stream); @@ -26,3 +28,15 @@ string SampleStream::save() { return out; } +vector<SampleBlock> SampleStream::split(unsigned long block_size) { + vector<SampleBlock> out; + unsigned long stream_size = _stream.size(); + for (unsigned long i = 0; i < stream_size; i += block_size) { + unsigned long begin_offset = i; + unsigned long end_offset = min(i + block_size, stream_size); + SampleBlock block(_stream.begin() + begin_offset, _stream.begin() + end_offset); + out.push_back(block); + } + return out; +} + |