HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
src
ttauri
audio
audio_system.hpp
1
// Copyright Take Vos 2020.
2
// Distributed under the Boost Software License, Version 1.0.
3
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5
#pragma once
6
7
#include "audio_system_delegate.hpp"
8
#include "audio_device.hpp"
9
#include "../unfair_recursive_mutex.hpp"
10
#include "../weak_or_unique_ptr.hpp"
11
#include <vector>
12
#include <memory>
13
14
namespace
tt {
15
class
event_queue;
16
20
class
audio_system
{
21
public
:
22
[[nodiscard]]
static
std::unique_ptr<audio_system>
23
make_unique(
tt::event_queue
const
&
event_queue
,
std::weak_ptr<audio_system_delegate>
delegate)
noexcept
;
24
25
audio_system
(
tt::event_queue
const
&
event_queue
,
std::weak_ptr<audio_system_delegate>
delegate);
26
virtual
~audio_system
();
27
audio_system
(
audio_system
const
&) =
delete
;
28
audio_system
(
audio_system
&&) =
delete
;
29
audio_system
&operator=(
audio_system
const
&) =
delete
;
30
audio_system
&operator=(
audio_system
&&) =
delete
;
31
32
virtual
void
init()
noexcept
;
33
virtual
void
deinit()
noexcept
;
34
40
[[nodiscard]]
virtual
std::vector<audio_device *>
devices
() noexcept = 0;
41
42
protected:
43
tt::
event_queue
const &_event_queue;
44
45
std
::weak_ptr<
audio_system_delegate
> _delegate;
46
};
47
48
}
// namespace tt
std
STL namespace.
tt::audio_system
Definition
audio_system.hpp:20
tt::audio_system::devices
virtual std::vector< audio_device * > devices() noexcept=0
The devices that are part of the audio system.
tt::audio_system_delegate
Definition
audio_system_delegate.hpp:12
tt::event_queue
Definition
event_queue.hpp:40
std::unique_ptr
std::vector
std::weak_ptr
Generated on Mon Apr 22 2024 12:53:34 for HikoGUI by
1.10.0