summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Alexis Contreras <36680385+KiritoDv@users.noreply.github.com>2022-06-14 14:04:47 -0500
committerKevin Alexis Contreras <36680385+KiritoDv@users.noreply.github.com>2022-06-14 14:04:47 -0500
commit3dc33b6f84fc0d2019df37aebdbc367a1e3f767a (patch)
treea9304645e0ac8fe518ba6db2fb3ea263ddad64e7
parent9cf537eaff35256739d91d94c2f1e493cba323de (diff)
Added GetSampleRate function
-rw-r--r--libultraship/libultraship/AudioPlayer.h1
-rw-r--r--libultraship/libultraship/PulseAudioPlayer.cpp2
-rw-r--r--libultraship/libultraship/SDLAudioPlayer.cpp30
-rw-r--r--libultraship/libultraship/WasapiAudioPlayer.cpp4
4 files changed, 19 insertions, 18 deletions
diff --git a/libultraship/libultraship/AudioPlayer.h b/libultraship/libultraship/AudioPlayer.h
index 175cc5100..346239624 100644
--- a/libultraship/libultraship/AudioPlayer.h
+++ b/libultraship/libultraship/AudioPlayer.h
@@ -11,5 +11,6 @@ namespace Ship {
virtual int Buffered(void) = 0;
virtual int GetDesiredBuffered(void) = 0;
virtual void Play(const uint8_t* buf, uint32_t len) = 0;
+ constexpr int GetSampleRate() const { return 44100; }
};
}
diff --git a/libultraship/libultraship/PulseAudioPlayer.cpp b/libultraship/libultraship/PulseAudioPlayer.cpp
index 955b225d1..7762f0259 100644
--- a/libultraship/libultraship/PulseAudioPlayer.cpp
+++ b/libultraship/libultraship/PulseAudioPlayer.cpp
@@ -74,7 +74,7 @@ namespace Ship
// Create stream
pa_sample_spec ss;
ss.format = PA_SAMPLE_S16LE;
- ss.rate = 32000;
+ ss.rate = this->GetSampleRate();
ss.channels = 2;
pa_buffer_attr attr;
diff --git a/libultraship/libultraship/SDLAudioPlayer.cpp b/libultraship/libultraship/SDLAudioPlayer.cpp
index ec3842acb..1cc3d61d1 100644
--- a/libultraship/libultraship/SDLAudioPlayer.cpp
+++ b/libultraship/libultraship/SDLAudioPlayer.cpp
@@ -2,40 +2,40 @@
#include "spdlog/spdlog.h"
namespace Ship {
- bool SDLAudioPlayer::Init(void) {
+ bool SDLAudioPlayer::Init(void) {
if (SDL_Init(SDL_INIT_AUDIO) != 0) {
- SPDLOG_ERROR("SDL init error: %s\n", SDL_GetError());
- return false;
+ SPDLOG_ERROR("SDL init error: %s\n", SDL_GetError());
+ return false;
}
SDL_AudioSpec want, have;
SDL_zero(want);
- want.freq = 44000;
+ want.freq = this->GetSampleRate();
want.format = AUDIO_S16;
want.channels = 2;
want.samples = 1024;
want.callback = NULL;
Device = SDL_OpenAudioDevice(NULL, 0, &want, &have, 0);
if (Device == 0) {
- SPDLOG_ERROR("SDL_OpenAudio error: {}", SDL_GetError());
- return false;
+ SPDLOG_ERROR("SDL_OpenAudio error: {}", SDL_GetError());
+ return false;
}
SDL_PauseAudioDevice(Device, 0);
return true;
- }
+ }
- int SDLAudioPlayer::Buffered(void) {
+ int SDLAudioPlayer::Buffered(void) {
// 4 is sizeof(int16_t) * num_channels (2 for stereo)
return SDL_GetQueuedAudioSize(Device) / 4;
- }
+ }
- int SDLAudioPlayer::GetDesiredBuffered(void) {
+ int SDLAudioPlayer::GetDesiredBuffered(void) {
return 1680;
- }
+ }
- void SDLAudioPlayer::Play(const uint8_t* Buffer, uint32_t BufferLen) {
+ void SDLAudioPlayer::Play(const uint8_t* Buffer, uint32_t BufferLen) {
if (Buffered() < 6000) {
- // Don't fill the audio buffer too much in case this happens
- SDL_QueueAudio(Device, Buffer, BufferLen);
+ // Don't fill the audio buffer too much in case this happens
+ SDL_QueueAudio(Device, Buffer, BufferLen);
}
- }
+ }
} \ No newline at end of file
diff --git a/libultraship/libultraship/WasapiAudioPlayer.cpp b/libultraship/libultraship/WasapiAudioPlayer.cpp
index c4bea0b4f..7062613c8 100644
--- a/libultraship/libultraship/WasapiAudioPlayer.cpp
+++ b/libultraship/libultraship/WasapiAudioPlayer.cpp
@@ -30,8 +30,8 @@ namespace Ship {
WAVEFORMATEX desired;
desired.wFormatTag = WAVE_FORMAT_PCM;
desired.nChannels = 2;
- desired.nSamplesPerSec = 44100;
- desired.nAvgBytesPerSec = 44100 * 2 * 2;
+ desired.nSamplesPerSec = this->GetSampleRate();
+ desired.nAvgBytesPerSec = desired.nSamplesPerSec * 2 * 2;
desired.nBlockAlign = 4;
desired.wBitsPerSample = 16;
desired.cbSize = 0;