/* // Created by bruno on 16.2.2025. */ #ifndef RISCB_AUDIO_H #define RISCB_AUDIO_H #include #include #include #include #define SAMPLE_RATE 44100 #define NUM_SYNTH_VOICES 256 typedef enum Waveform { WAVE_SINE, WAVE_SQUARE, WAVE_SAWTOOTH, WAVE_TRIANGLE, WAVE_NOISE } Waveform; typedef struct SynthVoice { Waveform waveform; uint8_t phase; uint16_t frequency; uint8_t volume; SDL_Rect sourceRect; } SynthVoice; typedef struct AudioData { SynthVoice synthVoices[NUM_SYNTH_VOICES]; SDL_Rect *playerRect; float maxPanDistance; } AudioData; extern AudioData audioData; void audio_callback(void *userdata, Uint8 *stream, int len); uint16_t getAvailableChannel(); #endif //RISCB_AUDIO_H