From 724e3f37a8ddc5c13c8d352883ed8f41559f1cfa Mon Sep 17 00:00:00 2001 From: Dmitry Marakasov Date: Sun, 30 Nov 2014 00:42:26 +0300 Subject: [PATCH] Provide default value for empty callback --- SDL2pp/Audio.hh | 2 +- SDL2pp/AudioSpec.cc | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/SDL2pp/Audio.hh b/SDL2pp/Audio.hh index bb0f891..aa65313 100644 --- a/SDL2pp/Audio.hh +++ b/SDL2pp/Audio.hh @@ -42,7 +42,7 @@ private: static void SDLCallback(void *userdata, Uint8* stream, int len); public: - AudioSpec(int freq, SDL_AudioFormat format, Uint8 channels, Uint16 samples, AudioCallback&& callback); + AudioSpec(int freq, SDL_AudioFormat format, Uint8 channels, Uint16 samples, AudioCallback&& callback = AudioCallback()); ~AudioSpec(); AudioSpec(AudioSpec&& other); diff --git a/SDL2pp/AudioSpec.cc b/SDL2pp/AudioSpec.cc index 7eb5ff3..c82f5dd 100644 --- a/SDL2pp/AudioSpec.cc +++ b/SDL2pp/AudioSpec.cc @@ -30,15 +30,17 @@ void AudioSpec::SDLCallback(void *userdata, Uint8* stream, int len) { audiospec->callback_(stream, len); } -AudioSpec::AudioSpec(int freq, SDL_AudioFormat format, Uint8 channels, Uint16 samples, AudioCallback&& callback) +AudioSpec::AudioSpec(int freq, SDL_AudioFormat format, Uint8 channels, Uint16 samples, AudioSpec::AudioCallback&& callback) : callback_(std::move(callback)) { std::fill((char*)this, (char*)this + sizeof(SDL_AudioSpec), 0); SDL_AudioSpec::freq = freq; SDL_AudioSpec::format = format; SDL_AudioSpec::channels = channels; SDL_AudioSpec::samples = samples; - SDL_AudioSpec::callback = SDLCallback; - SDL_AudioSpec::userdata = static_cast(this); + if (callback) { + SDL_AudioSpec::callback = SDLCallback; + SDL_AudioSpec::userdata = static_cast(this); + } } AudioSpec::~AudioSpec() {