summaryrefslogtreecommitdiff
path: root/src/audio_core/sdl2_sink.cpp
diff options
context:
space:
mode:
authorGravatar Yuri Kunde Schlesner2016-09-21 11:29:48 -0700
committerGravatar GitHub2016-09-21 11:29:48 -0700
commitd5d2ca8058a0f1c00ab7ca9fe2c058ba47546c0a (patch)
tree8a22ca73ff838f3f0090b29a548ae81087fc90ed /src/audio_core/sdl2_sink.cpp
parentREADME: Specify master branch for Travis CI badge (diff)
parentFix Travis clang-format check (diff)
downloadyuzu-d5d2ca8058a0f1c00ab7ca9fe2c058ba47546c0a.tar.gz
yuzu-d5d2ca8058a0f1c00ab7ca9fe2c058ba47546c0a.tar.xz
yuzu-d5d2ca8058a0f1c00ab7ca9fe2c058ba47546c0a.zip
Merge pull request #2086 from linkmauve/clang-format
Add clang-format as part of our {commit,travis}-time checks
Diffstat (limited to 'src/audio_core/sdl2_sink.cpp')
-rw-r--r--src/audio_core/sdl2_sink.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/audio_core/sdl2_sink.cpp b/src/audio_core/sdl2_sink.cpp
index 1d7912715..75cc0d6dd 100644
--- a/src/audio_core/sdl2_sink.cpp
+++ b/src/audio_core/sdl2_sink.cpp
@@ -3,16 +3,13 @@
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include <list> 5#include <list>
6#include <numeric>
6#include <vector> 7#include <vector>
7
8#include <SDL.h> 8#include <SDL.h>
9
10#include "audio_core/audio_core.h" 9#include "audio_core/audio_core.h"
11#include "audio_core/sdl2_sink.h" 10#include "audio_core/sdl2_sink.h"
12
13#include "common/assert.h" 11#include "common/assert.h"
14#include "common/logging/log.h" 12#include "common/logging/log.h"
15#include <numeric>
16 13
17namespace AudioCore { 14namespace AudioCore {
18 15
@@ -45,7 +42,8 @@ SDL2Sink::SDL2Sink() : impl(std::make_unique<Impl>()) {
45 SDL_AudioSpec obtained_audiospec; 42 SDL_AudioSpec obtained_audiospec;
46 SDL_zero(obtained_audiospec); 43 SDL_zero(obtained_audiospec);
47 44
48 impl->audio_device_id = SDL_OpenAudioDevice(nullptr, false, &desired_audiospec, &obtained_audiospec, 0); 45 impl->audio_device_id =
46 SDL_OpenAudioDevice(nullptr, false, &desired_audiospec, &obtained_audiospec, 0);
49 if (impl->audio_device_id <= 0) { 47 if (impl->audio_device_id <= 0) {
50 LOG_CRITICAL(Audio_Sink, "SDL_OpenAudioDevice failed"); 48 LOG_CRITICAL(Audio_Sink, "SDL_OpenAudioDevice failed");
51 return; 49 return;
@@ -86,11 +84,12 @@ size_t SDL2Sink::SamplesInQueue() const {
86 84
87 SDL_LockAudioDevice(impl->audio_device_id); 85 SDL_LockAudioDevice(impl->audio_device_id);
88 86
89 size_t total_size = std::accumulate(impl->queue.begin(), impl->queue.end(), static_cast<size_t>(0), 87 size_t total_size = std::accumulate(impl->queue.begin(), impl->queue.end(),
90 [](size_t sum, const auto& buffer) { 88 static_cast<size_t>(0), [](size_t sum, const auto& buffer) {
91 // Division by two because each stereo sample is made of two s16. 89 // Division by two because each stereo sample is made of
92 return sum + buffer.size() / 2; 90 // two s16.
93 }); 91 return sum + buffer.size() / 2;
92 });
94 93
95 SDL_UnlockAudioDevice(impl->audio_device_id); 94 SDL_UnlockAudioDevice(impl->audio_device_id);
96 95
@@ -100,7 +99,8 @@ size_t SDL2Sink::SamplesInQueue() const {
100void SDL2Sink::Impl::Callback(void* impl_, u8* buffer, int buffer_size_in_bytes) { 99void SDL2Sink::Impl::Callback(void* impl_, u8* buffer, int buffer_size_in_bytes) {
101 Impl* impl = reinterpret_cast<Impl*>(impl_); 100 Impl* impl = reinterpret_cast<Impl*>(impl_);
102 101
103 size_t remaining_size = static_cast<size_t>(buffer_size_in_bytes) / sizeof(s16); // Keep track of size in 16-bit increments. 102 size_t remaining_size = static_cast<size_t>(buffer_size_in_bytes) /
103 sizeof(s16); // Keep track of size in 16-bit increments.
104 104
105 while (remaining_size > 0 && !impl->queue.empty()) { 105 while (remaining_size > 0 && !impl->queue.empty()) {
106 if (impl->queue.front().size() <= remaining_size) { 106 if (impl->queue.front().size() <= remaining_size) {
@@ -111,7 +111,8 @@ void SDL2Sink::Impl::Callback(void* impl_, u8* buffer, int buffer_size_in_bytes)
111 } else { 111 } else {
112 memcpy(buffer, impl->queue.front().data(), remaining_size * sizeof(s16)); 112 memcpy(buffer, impl->queue.front().data(), remaining_size * sizeof(s16));
113 buffer += remaining_size * sizeof(s16); 113 buffer += remaining_size * sizeof(s16);
114 impl->queue.front().erase(impl->queue.front().begin(), impl->queue.front().begin() + remaining_size); 114 impl->queue.front().erase(impl->queue.front().begin(),
115 impl->queue.front().begin() + remaining_size);
115 remaining_size = 0; 116 remaining_size = 0;
116 } 117 }
117 } 118 }