added original plugin
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
#include "utils/workers/result.hpp"
|
||||
#include "adapter/adapter.hpp"
|
||||
|
||||
#include "plugins/original/original.hpp" // IWYU pragma: keep
|
||||
#include "plugins/magnitude/magnitude.hpp" // IWYU pragma: keep
|
||||
|
||||
namespace hr
|
||||
|
||||
@@ -14,6 +14,7 @@ headers = [
|
||||
'utils/windows/hann/hann.hpp',
|
||||
|
||||
# plugins
|
||||
'plugins/original/original.hpp',
|
||||
'plugins/magnitude/magnitude.hpp',
|
||||
|
||||
'harmonica.hpp'
|
||||
@@ -27,6 +28,7 @@ sources = [
|
||||
'utils/windows/hann/hann.cpp',
|
||||
|
||||
# plugins
|
||||
'plugins/original/original.cpp',
|
||||
'plugins/magnitude/magnitude.cpp',
|
||||
]
|
||||
|
||||
|
||||
39
src/plugins/original/original.cpp
Normal file
39
src/plugins/original/original.cpp
Normal file
@@ -0,0 +1,39 @@
|
||||
#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;
|
||||
}
|
||||
}
|
||||
21
src/plugins/original/original.hpp
Normal file
21
src/plugins/original/original.hpp
Normal file
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#include "utils/workers/plugin.hpp"
|
||||
|
||||
namespace hr::plugins
|
||||
{
|
||||
class original : public plugin
|
||||
{
|
||||
public:
|
||||
original(const setup& st);
|
||||
virtual ~original() = default;
|
||||
|
||||
private:
|
||||
result m_result;
|
||||
|
||||
public:
|
||||
void process(fvec_t& base, real_time timestamp) override;
|
||||
void process(cvec_t& fft, fvec_t& base, real_time timestamp) override;
|
||||
result get_result() override;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user