//------------------------------------------------------------------------------
//  グラフィックイコライザで使う biquad フィルタの係数を計算するクラス（ヘッダ）
//
//  2022/10/19, Copyright (c) 2022 MIKAMI, Naoki
//------------------------------------------------------------------------------

#include "BiquadGrEq.hpp"

#ifndef GRAPHIC_EQALIZER_PARAMETER_CALCULATOR_HPP
#define GRAPHIC_EQALIZER_PARAMETER_CALCULATOR_HPP

namespace Mikami
{
    class GrEqParams
    {
    public:
        // Constructor
        GrEqParams(int bands, float fs) : BANDS_(bands), FS_(fs) {}

        // 計算した係数を取得する
        //      gDb : 利得（dB単位）
        BiquadGrEq::Coefs Get(int band, float f0, float gDb, float qVal);

    private:
        const int BANDS_;
        const float FS_;

        // コピー･コンストラクタ，代入演算子禁止禁止のため
        GrEqParams(const GrEqParams&);
        GrEqParams& operator=(const GrEqParams&);
    };
}
#endif  // GRAPHIC_EQALIZER_PARAMETER_CALCULATOR_HPP
