~aleteoryx/muditaos

ref: sign_test muditaos/module-audio/Audio/VolumeScaler.hpp -rw-r--r-- 1.9 KiB
a217eeb3 — Dawid Wojtas [BH-2024] Fix lack of alarm directory after updating software 1 year, 5 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once
#include "AudioCommon.hpp"

/// @brief Converts volume between system and bluetooth ranges.
namespace audio::volume::scaler
{
    namespace a2dp
    {
        /// @brief Takes volume level and converts it to according one for the system.
        /// @param avrcpVolume - AVRCP volume level.
        /// @return Volume level scaled to satisfy system's range [audio::minVolume, audio::maxVolume].
        Volume toSystemVolume(std::uint8_t avrcpVolume) noexcept;
    } // namespace a2dp
    namespace hsp
    {
        /// @brief Takes volume level and converts it to according one for the system.
        /// @param hspSpeakerGain - HSP speaker gain.
        /// @return Volume level scaled to satisfy system's range [audio::minVolume, audio::maxVolume].
        Volume toSystemVolume(std::uint8_t hspSpeakerGain) noexcept;
        /// @brief Takes volume level and converts it to according one for the HSP speaker gain.
        /// @param systemVolume - system volume level.
        /// @return Volume level scaled to satisfy HSP's range [0, 15].
        std::uint8_t toHSPGain(float systemVolume) noexcept;
    } // namespace hsp

    namespace hfp
    {
        /// @brief Takes volume level and converts it to according one for the system.
        /// @param hspSpeakerGain - HFP speaker gain.
        /// @return Volume level scaled to satisfy system's range [audio::minVolume, audio::maxVolume].
        Volume toSystemVolume(std::uint8_t hfpSpeakerGain) noexcept;
        /// @brief Takes volume level and converts it to according one for the HFP speaker gain.
        /// @param systemVolume - system volume level.
        /// @return Volume level scaled to satisfy HFP's range [0, 15].
        std::uint8_t toHFPGain(float systemVolume) noexcept;
    } // namespace hfp
} // namespace audio::volume::scaler