HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
AudioDevice.hpp
1// Copyright 2019 Pokitec
2// All rights reserved.
3
4#pragma once
5
6#include "TTauri/Foundation/bigint.hpp"
7#include "TTauri/Audio/AudioDeviceDelegate.hpp"
8#include "TTauri/Audio/AudioStreamConfig.hpp"
9#include <string>
10#include <memory>
11#include <ostream>
12
13namespace tt {
14
15enum class AudioDevice_state {
16 Active,
17 Disabled,
18 NotPresent,
19 Unplugged
20};
21
22inline std::ostream &operator<<(std::ostream &lhs, AudioDevice_state const &rhs)
23{
24 switch (rhs) {
25 case AudioDevice_state::Active: return lhs << "ACTIVE";
26 case AudioDevice_state::Disabled: return lhs << "DISABLED";
27 case AudioDevice_state::NotPresent: return lhs << "NOT_PRESENT";
28 case AudioDevice_state::Unplugged: return lhs << "UNPLUGGED";
29 default: tt_no_default;
30 }
31}
32
42private:
44
45public:
46 std::string id;
47
48 AudioDevice() noexcept = default;
49 virtual ~AudioDevice() = default;
50
55 //virtual uuid uuid() const noexcept = 0;
56
61 virtual std::string name() const noexcept = 0;
62
67 virtual std::string deviceName() const noexcept = 0;
68
72 virtual std::string endPointName() const noexcept = 0;
73
76 virtual AudioDevice_state state() const noexcept = 0;
77
81 //virtual bool isConfigSupported(AudioStreamConfig config) const noexcept = 0;
82
99 //virtual void startSession(uuid sessionId, std::string name, AudioStreamConfig config) = 0;
100
104 //virtual void stopSession() noexcept = 0;
105};
106
107}
STL namespace.
Definition AudioDevice.hpp:41
virtual std::string name() const noexcept=0
virtual std::string endPointName() const noexcept=0
virtual std::string deviceName() const noexcept=0
virtual AudioDevice_state state() const noexcept=0