diff options
Diffstat (limited to 'tools/play_audio/sdl_wrapper.cpp')
-rw-r--r-- | tools/play_audio/sdl_wrapper.cpp | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/tools/play_audio/sdl_wrapper.cpp b/tools/play_audio/sdl_wrapper.cpp deleted file mode 100644 index 11f76df4..00000000 --- a/tools/play_audio/sdl_wrapper.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* - * - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "sdl_wrapper.h" - -#include "glog/logging.h" -#include <SDL2/SDL.h> - -#include <cstdint> - -using cfp::SDLAudioDevice; -using cfp::SDLLib; - -SDLAudioDevice::SDLAudioDevice(SDLAudioDevice&& other) - : device_id_{other.device_id_} { - other.device_id_ = 0; -} -SDLAudioDevice& SDLAudioDevice::operator=(SDLAudioDevice&& other) { - close(); - device_id_ = other.device_id_; - other.device_id_ = 0; - return *this; -} - -SDLAudioDevice::~SDLAudioDevice() { close(); } - -int SDLAudioDevice::QueueAudio(const void* data, std::uint32_t len) { - return SDL_QueueAudio(device_id_, data, len); -} - -SDLAudioDevice::SDLAudioDevice(SDL_AudioDeviceID device_id) - : device_id_{device_id} {} - -void SDLAudioDevice::close() { - if (device_id_ != 0) { - SDL_CloseAudioDevice(device_id_); - } -} - -SDLLib::SDLLib() { SDL_Init(SDL_INIT_AUDIO); } -SDLLib::~SDLLib() { SDL_Quit(); } - -SDLAudioDevice SDLLib::OpenAudioDevice(int freq, std::uint8_t num_channels) { - SDL_AudioSpec wav_spec{}; - wav_spec.freq = freq; - wav_spec.format = AUDIO_S16LSB; - wav_spec.channels = num_channels; - wav_spec.silence = 0; - // .samples seems to work as low as 256, - // docs say this is 4096 when used with SDL_LoadWAV so I'm sticking with - // that - wav_spec.samples = 4096; - wav_spec.size = 0; - - auto audio_device_id = SDL_OpenAudioDevice(nullptr, 0, &wav_spec, nullptr, 0); - if (audio_device_id == 0) { - LOG(FATAL) << "failed to open audio device: " << SDL_GetError() << '\n'; - } - SDL_PauseAudioDevice(audio_device_id, false); - return SDLAudioDevice{audio_device_id}; -} |