2021-07-31 16:00:35 +02:00
|
|
|
#pragma once
|
|
|
|
|
2022-08-30 00:39:15 +02:00
|
|
|
#include <cstdint>
|
2021-07-31 16:00:35 +02:00
|
|
|
#include "../utils/NoiseSharpening.h"
|
|
|
|
#include "../utils/HiFi.h"
|
|
|
|
#include "../utils/HighShelf.h"
|
|
|
|
|
2022-12-14 02:56:26 +01:00
|
|
|
// Iscle: Verified with the latest version at 13/12/2022
|
|
|
|
|
2021-07-31 16:00:35 +02:00
|
|
|
class ViPERClarity {
|
|
|
|
public:
|
2024-03-14 14:11:11 +01:00
|
|
|
enum class ClarityMode : uint8_t {
|
|
|
|
NATURAL = 0,
|
2022-09-19 04:30:07 +02:00
|
|
|
OZONE,
|
|
|
|
XHIFI
|
|
|
|
};
|
|
|
|
|
2021-07-31 16:00:35 +02:00
|
|
|
ViPERClarity();
|
|
|
|
|
2022-08-23 00:26:44 +02:00
|
|
|
void Process(float *samples, uint32_t size);
|
2021-07-31 16:00:35 +02:00
|
|
|
void Reset();
|
|
|
|
void SetClarity(float gainPercent);
|
|
|
|
void SetClarityToFilter();
|
2022-10-11 00:36:38 +02:00
|
|
|
void SetEnable(bool enable);
|
2022-09-19 04:30:07 +02:00
|
|
|
void SetProcessMode(ClarityMode processMode);
|
|
|
|
void SetSamplingRate(uint32_t samplingRate);
|
2021-07-31 16:00:35 +02:00
|
|
|
|
2022-09-19 04:30:07 +02:00
|
|
|
private:
|
|
|
|
NoiseSharpening noiseSharpening;
|
|
|
|
HighShelf highShelf[2];
|
2021-07-31 16:00:35 +02:00
|
|
|
HiFi hifi;
|
2022-10-11 00:36:38 +02:00
|
|
|
bool enable;
|
2021-08-02 21:14:28 +02:00
|
|
|
ClarityMode processMode;
|
2022-09-19 04:30:07 +02:00
|
|
|
uint32_t samplingRate;
|
2021-07-31 16:00:35 +02:00
|
|
|
float clarityGainPercent;
|
|
|
|
};
|
|
|
|
|
|
|
|
|