blob: d46a0c53c4c0ac0d839af34d5229caf8f66e8cd8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
// This file is part of the 64k demo project.
// It implements the production audio backend using miniaudio.
// This is the default backend for the final build.
#pragma once
#include "audio_backend.h"
#include "miniaudio.h"
// Production audio backend using miniaudio library
// Manages real hardware audio device and playback
class MiniaudioBackend : public AudioBackend {
public:
MiniaudioBackend();
~MiniaudioBackend() override;
void init() override;
void start() override;
void shutdown() override;
// Get the underlying miniaudio device (for internal use)
ma_device* get_device() { return &device_; }
private:
ma_device device_;
bool initialized_;
// Static callback required by miniaudio C API
static void audio_callback(ma_device* pDevice, void* pOutput,
const void* pInput, ma_uint32 frameCount);
};
|