// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md #pragma once #include #include #include namespace audio::codec { enum class Flags { OutputMono = 1 << 0, OutputStereo = 1 << 1, InputLeft = 1 << 2, InputRight = 1 << 3, InputStereo = 1 << 4 }; enum class InputPath { Headphones, Microphone, None }; enum class OutputPath { Headphones, Earspeaker, Loudspeaker, None }; struct Configuration { std::uint32_t sampleRate_Hz = 0; /*!< Sample rate of audio data */ std::uint32_t bitWidth = 0; /*!< Data length of audio data, usually 8/16/24/32 bits */ std::uint32_t flags = 0; /*!< In/Out configuration flags */ float outputVolume = 0.0f; float inputGain = 0.0f; std::uint8_t playbackPathGain = 0; std::uint8_t playbackPathAtten = 5; InputPath inputPath = InputPath::None; OutputPath outputPath = OutputPath::None; audio::equalizer::Equalizer filterCoefficients = { qfilter_CalculateCoeffs(audio::equalizer::FilterType::None, 100.2f, 44100, 0.701f, 0), qfilter_CalculateCoeffs(audio::equalizer::FilterType::None, 17996.2f, 44100, 0.701f, 0), qfilter_CalculateCoeffs(audio::equalizer::FilterType::None, 13984.7f, 44100, 0.701f, -10), qfilter_CalculateCoeffs(audio::equalizer::FilterType::None, 200.4f, 44100, 0.701f, -10), qfilter_CalculateCoeffs(audio::equalizer::FilterType::None, 0, 44100, 0.701f, -4)}; }; } // namespace audio::codec