ReXGlue SDK
Toggle main menu visibility
Loading...
Searching...
No Matches
audio_driver.h
Go to the documentation of this file.
1
10
11
#pragma once
12
13
#include <span>
14
15
#include <
rex/driver.h
>
16
#include <
rex/memory/host.h
>
17
#include <
rex/result.h
>
18
#include <
rex/types.h
>
19
#include <
rex/utility.h
>
20
21
namespace
rex::apu
{
22
24
inline
constexpr
memory::Tag
kAPU
{4};
25
27
inline
constexpr
u32
kAudioFrameChannels
= 6;
28
inline
constexpr
u32 kAudioChannelSamples = 256;
29
inline
constexpr
u32 kAudioSampleRate = 48000;
30
inline
constexpr
u32 kAudioFrameSamples =
kAudioFrameChannels
* kAudioChannelSamples;
31
37
using
AudioFill
=
MoveOnlyFunction
<void(std::span<f32> samples, u32 channels)>;
38
40
class
IAudioDriver
:
public
IDriver
{
41
public
:
49
[[nodiscard]]
virtual
Result<u32>
OpenDevice
(u32 channels,
AudioFill
fill) = 0;
50
52
virtual
void
CloseDevice
() = 0;
53
54
virtual
bool
IsDeviceLost()
const
= 0;
55
};
56
57
}
// namespace rex::apu
rex::IDriver
Definition
driver.h:41
rex::apu::IAudioDriver
Definition
audio_driver.h:40
rex::apu::IAudioDriver::OpenDevice
virtual Result< u32 > OpenDevice(u32 channels, AudioFill fill)=0
rex::apu::IAudioDriver::CloseDevice
virtual void CloseDevice()=0
driver.h
host.h
rex::apu
Definition
app.h:41
rex::apu::kAPU
constexpr memory::Tag kAPU
Definition
audio_driver.h:24
rex::apu::kAudioFrameChannels
constexpr u32 kAudioFrameChannels
Definition
audio_driver.h:27
rex::apu::AudioFill
MoveOnlyFunction< void(std::span< f32 > samples, u32 channels)> AudioFill
Definition
audio_driver.h:37
rex::memory::Tag
Tag
Definition
host.h:22
rex::MoveOnlyFunction
typename detail::MoveOnlyFunctionFor< Signature >::type MoveOnlyFunction
Definition
utility.h:254
rex::Result
std::expected< T, Error > Result
Definition
result.h:98
result.h
types.h
Integer types, byte order wrappers and size literals.
utility.h
Move only function, const propagating pointer and scope guard.
rex
apu
audio_driver.h
Generated by
1.18.0