~aleteoryx/muditaos

ref: 6d61aabbec9efe5725f9bcb8ba7a5c2d0724adb0 muditaos/module-audio/Audio/AudioDevice.hpp -rw-r--r-- 1.0 KiB
6d61aabb — Jakub Pyszczak [EGD-6514] HSP volume control 4 years 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include <Audio/Endpoint.hpp>

#include <optional>
#include <memory>
#include <functional>

namespace audio
{

    class AudioDevice : public audio::IOProxy
    {

      public:
        enum class RetCode
        {
            Success = 0,
            Failure
        };

        enum class Type
        {
            None,
            Audiocodec,
            Cellular,
            BluetoothA2DP,
            BluetoothHSP
        };

        virtual ~AudioDevice() = default;

        virtual RetCode Start()
        {
            return RetCode::Success;
        }

        virtual RetCode Stop()
        {
            return RetCode::Success;
        }

        virtual RetCode setOutputVolume(float vol) = 0;
        virtual RetCode setInputGain(float gain)   = 0;

        auto getSinkFormat() -> AudioFormat override
        {
            return getSourceFormat();
        }
    };
} // namespace audio