summaryrefslogtreecommitdiff
path: root/os2eindopdracht/SampleStream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'os2eindopdracht/SampleStream.cpp')
-rw-r--r--os2eindopdracht/SampleStream.cpp14
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;
+}
+