HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
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 <vector>
10#include <memory>
11
12namespace tt {
13
18public:
20 virtual ~audio_system();
21 audio_system(audio_system const &) = delete;
22 audio_system(audio_system &&) = delete;
23 audio_system &operator=(audio_system const &) = delete;
24 audio_system &operator=(audio_system &&) = delete;
25
26 [[nodiscard]] virtual std::vector<std::shared_ptr<audio_device>> devices() noexcept = 0;
27
28 virtual void init() noexcept;
29
30protected:
32
33public:
34 static inline unfair_recursive_mutex mutex;
35 static inline std::shared_ptr<audio_system> global;
36};
37
38}
Definition audio_system.hpp:17
An unfair recursive-mutex This is a fast implementation of a recursive-mutex which does not fairly ar...
Definition unfair_recursive_mutex.hpp:32