neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
i_audio.hpp
Go to the documentation of this file.
1
// i_audio.hpp
2
/*
3
neogfx C++ App/Game Engine
4
Copyright (c) 2021 Leigh Johnston. All Rights Reserved.
5
6
This program is free software: you can redistribute it and / or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation, either version 3 of the License, or
9
(at your option) any later version.
10
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#include <
neogfx/neogfx.hpp
>
21
#include <
neogfx/audio/i_audio_device.hpp
>
22
23
#pragma once
24
25
namespace
neogfx
26
{
27
typedef
std::any
audio_context
;
28
29
class
i_audio_instrument_atlas
;
30
31
class
i_audio
:
public
i_service
32
{
33
public
:
34
virtual
~i_audio
() =
default
;
35
public
:
36
virtual
i_vector<i_audio_device_info>
const
&
available_devices
() = 0;
37
virtual
i_audio_device
&
create_device
(
i_audio_device_info
const
& aDeviceInfo,
audio_data_format
const
& aDataFormat) = 0;
38
virtual
i_audio_device
&
create_playback_device
(
audio_data_format
const
& aDataFormat) = 0;
39
virtual
i_audio_device
&
create_capture_device
(
audio_data_format
const
& aDataFormat) = 0;
40
virtual
void
destroy_device
(
i_audio_device
& aDevice) = 0;
41
public
:
42
virtual
i_audio_instrument_atlas
&
instrument_atlas
() = 0;
43
public
:
44
static
uuid
const
&
iid
() {
static
uuid
const
sIid{ 0xabec285f, 0x3bc2, 0x4d97, 0xbf24, { 0x12, 0x8a, 0xe9, 0x39, 0x2f, 0x71 } };
return
sIid; }
45
};
46
}
neogfx::i_audio_device_info
Definition
i_audio_device.hpp:41
neogfx::i_audio_device
Definition
i_audio_device.hpp:58
neogfx::i_audio_instrument_atlas
Definition
i_audio_instrument_atlas.hpp:34
neogfx::i_audio
Definition
i_audio.hpp:32
neogfx::i_audio::create_device
virtual i_audio_device & create_device(i_audio_device_info const &aDeviceInfo, audio_data_format const &aDataFormat)=0
neogfx::i_audio::iid
static uuid const & iid()
Definition
i_audio.hpp:44
neogfx::i_audio::create_capture_device
virtual i_audio_device & create_capture_device(audio_data_format const &aDataFormat)=0
neogfx::i_audio::create_playback_device
virtual i_audio_device & create_playback_device(audio_data_format const &aDataFormat)=0
neogfx::i_audio::~i_audio
virtual ~i_audio()=default
neogfx::i_audio::available_devices
virtual i_vector< i_audio_device_info > const & available_devices()=0
neogfx::i_audio::destroy_device
virtual void destroy_device(i_audio_device &aDevice)=0
neogfx::i_audio::instrument_atlas
virtual i_audio_instrument_atlas & instrument_atlas()=0
neolib::i_vector
Definition
i_vector.hpp:45
neolib::services::i_service
Definition
services.hpp:57
i_audio_device.hpp
neogfx
Definition
action.hpp:28
neogfx::audio_context
std::any audio_context
Definition
i_audio.hpp:27
neogfx.hpp
neogfx::audio_data_format
Definition
audio_primitives.hpp:981
neolib::uuid
Definition
uuid.hpp:51
include
neogfx
audio
i_audio.hpp
Generated by
1.9.8