diff --git a/SDL2pp/AudioDevice.cc b/SDL2pp/AudioDevice.cc index f06a872..6d2bba0 100644 --- a/SDL2pp/AudioDevice.cc +++ b/SDL2pp/AudioDevice.cc @@ -1,6 +1,6 @@ /* libSDL2pp - C++11 bindings/wrapper for SDL2 - Copyright (C) 2014 Dmitry Marakasov + Copyright (C) 2014-2015 Dmitry Marakasov This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -88,19 +88,22 @@ SDL_AudioDeviceID AudioDevice::Get() const { return device_id_; } -void AudioDevice::Pause(bool pause_on) { +AudioDevice& AudioDevice::Pause(bool pause_on) { SDL_PauseAudioDevice(device_id_, pause_on ? 1 : 0); + return *this; } SDL_AudioStatus AudioDevice::GetStatus() const { return SDL_GetAudioDeviceStatus(device_id_); } -void AudioDevice::ChangeCallback(AudioDevice::AudioCallback&& callback) { +AudioDevice& AudioDevice::ChangeCallback(AudioDevice::AudioCallback&& callback) { // make sure callback is not called while it's being replaced LockHandle lock = Lock(); callback_ = std::move(callback); + + return *this; } AudioDevice::LockHandle AudioDevice::Lock() { @@ -108,13 +111,15 @@ AudioDevice::LockHandle AudioDevice::Lock() { } #ifdef SDL2PP_WITH_2_0_4 -void AudioDevice::QueueAudio(const void* data, Uint32 len) { +AudioDevice& AudioDevice::QueueAudio(const void* data, Uint32 len) { if (SDL_QueueAudio(device_id_, data, len) == 0) throw Exception("SDL_QueueAudio failed"); + return *this; } -void AudioDevice::ClearQueuedAudio() { +AudioDevice& AudioDevice::ClearQueuedAudio() { SDL_ClearQueuedAudio(device_id_); + return *this; } Uint32 GetQueuedAudioSize() const { diff --git a/SDL2pp/AudioDevice.hh b/SDL2pp/AudioDevice.hh index ea1b712..fdf6fcc 100644 --- a/SDL2pp/AudioDevice.hh +++ b/SDL2pp/AudioDevice.hh @@ -263,10 +263,12 @@ public: /// /// \param[in] pause_on Whether audio should be paused /// + /// \returns Reference to self + /// /// \see http://wiki.libsdl.org/SDL_PauseAudioDevice /// //////////////////////////////////////////////////////////// - void Pause(bool pause_on); + AudioDevice& Pause(bool pause_on); //////////////////////////////////////////////////////////// /// \brief Get playback status @@ -283,8 +285,10 @@ public: /// /// \param[in] callback New audio callback /// + /// \returns Reference to self + /// //////////////////////////////////////////////////////////// - void ChangeCallback(AudioCallback&& callback); + AudioDevice& ChangeCallback(AudioCallback&& callback); //////////////////////////////////////////////////////////// /// \brief Lock audio device to prevent it from calling audio callback @@ -307,20 +311,24 @@ public: /// \param[in] data Data to queue for later playback /// \param[in] len Data length in bytes (not samples!) /// + /// \returns Reference to self + /// /// \throws SDL2pp::Exception /// /// \see http://wiki.libsdl.org/SDL_QueueAudio /// //////////////////////////////////////////////////////////// - void QueueAudio(const void* data, Uint32 len); + AudioDevice& QueueAudio(const void* data, Uint32 len); //////////////////////////////////////////////////////////// /// \brief Drop queued audio /// + /// \returns Reference to self + /// /// \see http://wiki.libsdl.org/SDL_ClearQueuedAudio /// //////////////////////////////////////////////////////////// - void ClearQueuedAudio(); + AudioDevice& ClearQueuedAudio(); //////////////////////////////////////////////////////////// /// \brief Get number of bytes of still-queued audio