Files
choco-chip8/Buzzer.hpp
2024-11-22 21:01:23 -05:00

25 lines
421 B
C++

#pragma once
#include <vector>
#include <SDL2/SDL_audio.h>
class Buzzer {
public:
using sample_t = Sint16;
Buzzer(unsigned frequency);
~Buzzer();
void on();
void off();
private:
static void SDLCALL audioCallback(void *userdata, Uint8 *stream, int len);
void copySamples(Uint8 *stream, int len);
private:
std::vector<sample_t> mSamples;
SDL_AudioDeviceID mAudioDevice;
size_t miCurrentSample;
};