diff --git a/bin/main.cpp b/bin/main.cpp index 22f7f4e..cc1cf09 100644 --- a/bin/main.cpp +++ b/bin/main.cpp @@ -11,7 +11,7 @@ auto main() -> int // setup.m_domain = hr::DOMAIN_PLUGIN::FREQUENSY; setup.m_file = "./sin.wav"; - auto r = hr::run(setup); + auto r = hr::run(setup); hack::log()("size:", r.m_data.size()); if (!r.empty()) diff --git a/src/harmonica.hpp b/src/harmonica.hpp index 558d5f0..7459af7 100644 --- a/src/harmonica.hpp +++ b/src/harmonica.hpp @@ -9,7 +9,7 @@ #include "utils/workers/result.hpp" #include "adapter/adapter.hpp" -#include "plugins/original/original.hpp" // IWYU pragma: keep +#include "plugins/raw_data/raw_data.hpp" // IWYU pragma: keep #include "plugins/magnitude/magnitude.hpp" // IWYU pragma: keep namespace hr diff --git a/src/meson.build b/src/meson.build index ccefd78..8f8b600 100644 --- a/src/meson.build +++ b/src/meson.build @@ -14,7 +14,7 @@ headers = [ 'utils/windows/hann/hann.hpp', # plugins - 'plugins/original/original.hpp', + 'plugins/raw_data/raw_data.hpp', 'plugins/magnitude/magnitude.hpp', 'harmonica.hpp' @@ -28,7 +28,7 @@ sources = [ 'utils/windows/hann/hann.cpp', # plugins - 'plugins/original/original.cpp', + 'plugins/raw_data/raw_data.cpp', 'plugins/magnitude/magnitude.cpp', ] diff --git a/src/plugins/magnitude/magnitude.cpp b/src/plugins/magnitude/magnitude.cpp index 1c32cc4..1ff2f06 100644 --- a/src/plugins/magnitude/magnitude.cpp +++ b/src/plugins/magnitude/magnitude.cpp @@ -8,10 +8,6 @@ namespace hr::plugins void magnitude::process(fvec_t& base, real_time timestamp) { - result::bit b; - b.m_value = base; - b.m_duration = timestamp; - m_result.set_bit(b); } void magnitude::process(cvec_t& fft, fvec_t& base, real_time timestamp) diff --git a/src/plugins/original/original.cpp b/src/plugins/original/original.cpp deleted file mode 100644 index fa86f06..0000000 --- a/src/plugins/original/original.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "original.hpp" - -// Простой плагин, котоорый нужен для отрисовки базового сигнала -// в частотной области все усредняется и во временной тоже. -namespace hr::plugins -{ - original::original(const setup& st) : plugin{ st } - { - } - - void original::process(fvec_t& base, real_time timestamp) - { - std::size_t bins = base.size(); - base_t s = 0.f; - for (std::size_t i = 0; i < bins; ++i) s += base[i]; - s /= bins; - result::bit b; - b.m_value.push_back(s); - b.m_duration = timestamp; - m_result.set_bit(b); - } - - void original::process(cvec_t& fft, fvec_t& base, real_time timestamp) - { - std::size_t frames = fft.size(); - base_t m = 0.f; - for (std::size_t i = 0; i < frames; ++i) m += fft.m_norm[i]; - m /= frames; - result::bit b; - b.m_value.push_back(m); - b.m_duration = timestamp; - m_result.set_bit(b); - } - - result original::get_result() - { - return m_result; - } -} diff --git a/src/plugins/raw_data/raw_data.cpp b/src/plugins/raw_data/raw_data.cpp new file mode 100644 index 0000000..d2e1c24 --- /dev/null +++ b/src/plugins/raw_data/raw_data.cpp @@ -0,0 +1,30 @@ +#include "raw_data.hpp" + +namespace hr::plugins +{ + // Этот плагин ни чего не делает и предназначен при сохранении единственности интерфейса просто + // передавать сырые необработанные данные. Например дял отрисовки базового сигнала. + // Он не работает в частотной области + raw_data::raw_data(const setup& st) : plugin{ st } + { + if (st.m_domain != DOMAIN_PLUGIN::TIME) + hack::error()("Этот плагин работает только во временной области!"); + } + + void raw_data::process(fvec_t& base, real_time timestamp) + { + result::bit b; + b.m_value = base; + b.m_duration = timestamp; + m_result.set_bit(b); + } + + void raw_data::process(cvec_t& fft, fvec_t& base, real_time timestamp) + { + } + + result raw_data::get_result() + { + return m_result; + } +} diff --git a/src/plugins/original/original.hpp b/src/plugins/raw_data/raw_data.hpp similarity index 75% rename from src/plugins/original/original.hpp rename to src/plugins/raw_data/raw_data.hpp index 49e6812..a54cbaa 100644 --- a/src/plugins/original/original.hpp +++ b/src/plugins/raw_data/raw_data.hpp @@ -4,11 +4,11 @@ namespace hr::plugins { - class original : public plugin + class raw_data : public plugin { public: - original(const setup& st); - virtual ~original() = default; + raw_data(const setup& st); + virtual ~raw_data() = default; private: result m_result;