summaryrefslogtreecommitdiff
path: root/os2eindopdracht/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'os2eindopdracht/main.cpp')
-rw-r--r--os2eindopdracht/main.cpp46
1 files changed, 16 insertions, 30 deletions
diff --git a/os2eindopdracht/main.cpp b/os2eindopdracht/main.cpp
index 534bf0c..ae042c5 100644
--- a/os2eindopdracht/main.cpp
+++ b/os2eindopdracht/main.cpp
@@ -2,11 +2,17 @@
#include <iostream>
#include <sstream>
#include <fstream>
+#include <vector>
#include "Arguments.h"
#include "SampleStream.h"
+#include "SampleBlock.h"
#include "FilterWorker.h"
+using std::vector;
+
+#define SAMPLE_BLOCK_SIZE 1024
+
int main(int argc, char** argv) {
Arguments args(argc, argv);
@@ -15,38 +21,18 @@ int main(int argc, char** argv) {
file_input_content << file_input.rdbuf();
file_input.close();
- SampleStream stream(file_input_content.str());
-
- std::vector<int16_t> original;
- original = std::vector<int16_t>(stream._stream);
- for (unsigned long i = 0; i < original.size(); i++) {
- double x_pp = i < 2 ? 0 : original[i-2];
- double x_p = i < 1 ? 0 : original[i-1];
- double x_ = i < 0 ? 0 : original[i-0];
- double y_pp = i < 2 ? 0 : stream._stream[i-2];
- double y_p = i < 1 ? 0 : stream._stream[i-1];
- stream._stream[i] = args.bass.b0 * x_ +
- args.bass.b1 * x_p +
- args.bass.b2 * x_pp +
- args.bass.a1 * y_p +
- args.bass.a2 * y_pp;
- }
- original = std::vector<int16_t>(stream._stream);
- for (unsigned long i = 0; i < original.size(); i++) {
- double x_pp = i < 2 ? 0 : original[i-2];
- double x_p = i < 1 ? 0 : original[i-1];
- double x_ = i < 0 ? 0 : original[i-0];
- double y_pp = i < 2 ? 0 : stream._stream[i-2];
- double y_p = i < 1 ? 0 : stream._stream[i-1];
- stream._stream[i] = args.treble.b0 * x_ +
- args.treble.b1 * x_p +
- args.treble.b2 * x_pp +
- args.treble.a1 * y_p +
- args.treble.a2 * y_pp;
- }
+ SampleStream input(file_input_content.str());
+ vector<SampleBlock> input_blocks = input.split(SAMPLE_BLOCK_SIZE);
+
+ SampleStream output(file_input_content.str());
+ vector<SampleBlock> output_blocks = output.split(SAMPLE_BLOCK_SIZE);
+
+ // for (unsigned int i = 0; i < input_blocks.size(); i++) {
+ // FilterWorker(input_blocks[i], output_blocks[i]).filter(args.bass, args.treble);
+ // }
std::fstream file_output(args.file_output, std::ios::out | std::ios::binary);
- std::string edited_stream = stream.save();
+ std::string edited_stream = output.save();
file_output.write(edited_stream.c_str(), edited_stream.size());
file_output.close();