summaryrefslogtreecommitdiff
path: root/src/audio/audio.h
blob: 52ad103a9ad0e47ff0393e09ce1960ab8b6a57de (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
// This file is part of the 64k demo project.
// It defines the public interface for the audio system.
// Includes initialization, shutdown, and frame updates.

#pragma once
#include "generated/assets.h"
#include <cstdint>

// Forward declaration for backend abstraction
class AudioBackend;

struct SpecHeader {
  char magic[4];
  int32_t version;
  int32_t dct_size;
  int32_t num_frames;
};

void audio_init();
void audio_start(); // Starts the audio device callback
#if !defined(STRIP_ALL)
void audio_render_silent(float duration_sec); // Fast-forwards audio state
// Backend injection for testing
void audio_set_backend(AudioBackend* backend);
AudioBackend* audio_get_backend();
#endif /* !defined(STRIP_ALL) */
void audio_update();
void audio_shutdown();

int register_spec_asset(AssetId id);