summaryrefslogtreecommitdiff
path: root/src/mixer
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-12-24 14:52:51 -0500
committerAndrew Opalach <andrew@akon.city> 2024-12-24 14:52:51 -0500
commit5206f05fdf77bb65c125ddb133cf46a59608c671 (patch)
tree69707685b0245f1db508a6bce98d8ab5399a932c /src/mixer
parent3d55d2722a3129449ab1418e73abd97caa7fd2ae (diff)
downloadcamu-5206f05fdf77bb65c125ddb133cf46a59608c671.tar.gz
camu-5206f05fdf77bb65c125ddb133cf46a59608c671.tar.bz2
camu-5206f05fdf77bb65c125ddb133cf46a59608c671.zip
Bring in line with dependency changes
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/mixer')
-rw-r--r--src/mixer/audio_miniaudio.c2
-rw-r--r--src/mixer/audio_miniaudio.h4
-rw-r--r--src/mixer/mixer.c58
-rw-r--r--src/mixer/mixer.h4
4 files changed, 36 insertions, 32 deletions
diff --git a/src/mixer/audio_miniaudio.c b/src/mixer/audio_miniaudio.c
index 526e464..f0afeee 100644
--- a/src/mixer/audio_miniaudio.c
+++ b/src/mixer/audio_miniaudio.c
@@ -130,7 +130,7 @@ static s32 camu_sample_format_from_miniaudio(s32 fmt)
return CAMU_SAMPLE_FORMAT_FLT;
case ma_format_unknown:
default:
- al_assert_and_return(false);
+ al_assert_and_return(CAMU_SAMPLE_FORMAT_NONE);
}
}
diff --git a/src/mixer/audio_miniaudio.h b/src/mixer/audio_miniaudio.h
index 5bae185..c067024 100644
--- a/src/mixer/audio_miniaudio.h
+++ b/src/mixer/audio_miniaudio.h
@@ -1,9 +1,9 @@
#pragma once
-// Include <aki/thread.h> here to ensure OS related headers
+// Include <nnwt/thread.h> here to ensure OS related headers
// get included the way we want.
// Specifically, on Windows we want to include <winsock2.h> before <windows.h>.
-#include <aki/thread.h>
+#include <nnwt/thread.h>
#include <al/macros.h>
#include <miniaudio.h>
diff --git a/src/mixer/mixer.c b/src/mixer/mixer.c
index 086498e..18d6b8a 100644
--- a/src/mixer/mixer.c
+++ b/src/mixer/mixer.c
@@ -76,7 +76,7 @@ bool camu_mixer_init(struct camu_mixer *mixer, struct camu_audio *audio)
al_array_init(mixer->add_queue);
al_array_init(mixer->rem_queue);
al_atomic_store(u8)(&mixer->queued, 0, AL_ATOMIC_RELAXED);
- aki_mutex_init(&mixer->mutex);
+ nn_mutex_init(&mixer->mutex);
#endif
return true;
}
@@ -89,7 +89,7 @@ void camu_mixer_pick_format(struct camu_mixer *mixer, struct camu_resampler_form
void camu_mixer_set_volume(struct camu_mixer *mixer, f32 volume)
{
#ifdef CAMU_MIXER_THREADED
- aki_mutex_lock(&mixer->mutex);
+ nn_mutex_lock(&mixer->mutex);
#endif
mixer->volume = volume;
struct camu_audio_buffer *buf;
@@ -97,14 +97,14 @@ void camu_mixer_set_volume(struct camu_mixer *mixer, f32 volume)
camu_audio_buffer_set_volume(buf, mixer->volume);
}
#ifdef CAMU_MIXER_THREADED
- aki_mutex_unlock(&mixer->mutex);
+ nn_mutex_unlock(&mixer->mutex);
#endif
}
void camu_mixer_offset_volume(struct camu_mixer *mixer, f32 amount)
{
#ifdef CAMU_MIXER_THREADED
- aki_mutex_lock(&mixer->mutex);
+ nn_mutex_lock(&mixer->mutex);
#endif
if (FLT_MAX - mixer->volume < amount) {
mixer->volume = FLT_MAX;
@@ -116,7 +116,7 @@ void camu_mixer_offset_volume(struct camu_mixer *mixer, f32 amount)
camu_audio_buffer_set_volume(buf, mixer->volume);
}
#ifdef CAMU_MIXER_THREADED
- aki_mutex_unlock(&mixer->mutex);
+ nn_mutex_unlock(&mixer->mutex);
#endif
}
@@ -152,15 +152,19 @@ static void remove_buffer_internal(struct camu_mixer *mixer, struct camu_audio_b
static void run_queue_internal(struct camu_mixer *mixer)
{
struct camu_audio_buffer *buf;
- al_array_foreach(mixer->rem_queue, i, buf) {
- remove_buffer_internal(mixer, buf);
+ if (mixer->rem_queue.size > 0) {
+ al_array_foreach(mixer->rem_queue, i, buf) {
+ remove_buffer_internal(mixer, buf);
+ }
+ mixer->rem_queue.size = 0;
}
- mixer->rem_queue.size = 0;
- al_array_reserve(mixer->buffers, mixer->buffers.size + mixer->add_queue.size);
- al_array_foreach(mixer->add_queue, i, buf) {
- add_buffer_internal(mixer, buf);
+ if (mixer->add_queue.size > 0) {
+ al_array_reserve(mixer->buffers, mixer->buffers.size + mixer->add_queue.size);
+ al_array_foreach(mixer->add_queue, i, buf) {
+ add_buffer_internal(mixer, buf);
+ }
+ mixer->add_queue.size = 0;
}
- mixer->add_queue.size = 0;
al_atomic_store(u8)(&mixer->queued, 0, AL_ATOMIC_RELAXED);
if (al_array_is_empty(mixer->buffers)) {
mixer->empty_after = MIXER_TRAILING_SILENCE;
@@ -173,11 +177,11 @@ static void run_queue_internal(struct camu_mixer *mixer)
void camu_mixer_add_buffer(struct camu_mixer *mixer, struct camu_audio_buffer *buf)
{
#ifdef CAMU_MIXER_THREADED
- aki_mutex_lock(&mixer->mutex);
+ nn_mutex_lock(&mixer->mutex);
struct camu_audio_buffer *rbuf;
al_array_foreach(mixer->add_queue, i, rbuf) {
if (rbuf == buf) {
- aki_mutex_unlock(&mixer->mutex);
+ nn_mutex_unlock(&mixer->mutex);
return;
}
}
@@ -188,13 +192,13 @@ void camu_mixer_add_buffer(struct camu_mixer *mixer, struct camu_audio_buffer *b
if (queue_empty) {
al_atomic_store(u8)(&mixer->queued, 0, AL_ATOMIC_RELAXED);
}
- aki_mutex_unlock(&mixer->mutex);
+ nn_mutex_unlock(&mixer->mutex);
return;
}
}
al_array_push(mixer->add_queue, buf);
al_atomic_store(u8)(&mixer->queued, 1, AL_ATOMIC_RELAXED);
- aki_mutex_unlock(&mixer->mutex);
+ nn_mutex_unlock(&mixer->mutex);
#else
add_buffer_internal(mixer, buf);
mixer->empty_after = 0;
@@ -204,11 +208,11 @@ void camu_mixer_add_buffer(struct camu_mixer *mixer, struct camu_audio_buffer *b
void camu_mixer_remove_buffer(struct camu_mixer *mixer, struct camu_audio_buffer *buf)
{
#ifdef CAMU_MIXER_THREADED
- aki_mutex_lock(&mixer->mutex);
+ nn_mutex_lock(&mixer->mutex);
struct camu_audio_buffer *rbuf;
al_array_foreach(mixer->rem_queue, i, rbuf) {
if (rbuf == buf) {
- aki_mutex_unlock(&mixer->mutex);
+ nn_mutex_unlock(&mixer->mutex);
return;
}
}
@@ -219,7 +223,7 @@ void camu_mixer_remove_buffer(struct camu_mixer *mixer, struct camu_audio_buffer
if (queue_empty) {
al_atomic_store(u8)(&mixer->queued, 0, AL_ATOMIC_RELAXED);
}
- aki_mutex_unlock(&mixer->mutex);
+ nn_mutex_unlock(&mixer->mutex);
return;
}
}
@@ -228,7 +232,7 @@ void camu_mixer_remove_buffer(struct camu_mixer *mixer, struct camu_audio_buffer
if (mixer->paused) {
run_queue_internal(mixer);
}
- aki_mutex_unlock(&mixer->mutex);
+ nn_mutex_unlock(&mixer->mutex);
#else
remove_buffer_internal(mixer, buf);
if (al_array_is_empty(mixer->buffers)) {
@@ -240,9 +244,9 @@ void camu_mixer_remove_buffer(struct camu_mixer *mixer, struct camu_audio_buffer
#ifdef CAMU_MIXER_THREADED
void camu_mixer_run_queue(struct camu_mixer *mixer)
{
- aki_mutex_lock(&mixer->mutex);
+ nn_mutex_lock(&mixer->mutex);
run_queue_internal(mixer);
- aki_mutex_unlock(&mixer->mutex);
+ nn_mutex_unlock(&mixer->mutex);
}
void camu_mixer_clear(struct camu_mixer *mixer)
@@ -257,7 +261,7 @@ void camu_mixer_clear(struct camu_mixer *mixer)
void camu_mixer_pause(struct camu_mixer *mixer)
{
#ifdef CAMU_MIXER_THREADED
- aki_mutex_lock(&mixer->mutex);
+ nn_mutex_lock(&mixer->mutex);
#endif
if (!mixer->paused) {
mixer->audio->stop(mixer->audio);
@@ -265,14 +269,14 @@ void camu_mixer_pause(struct camu_mixer *mixer)
}
#ifdef CAMU_MIXER_THREADED
run_queue_internal(mixer);
- aki_mutex_unlock(&mixer->mutex);
+ nn_mutex_unlock(&mixer->mutex);
#endif
}
void camu_mixer_resume(struct camu_mixer *mixer)
{
#ifdef CAMU_MIXER_THREADED
- aki_mutex_lock(&mixer->mutex);
+ nn_mutex_lock(&mixer->mutex);
#endif
if (mixer->paused) {
// start() can internally call data_callback once before returning.
@@ -283,7 +287,7 @@ void camu_mixer_resume(struct camu_mixer *mixer)
mixer->paused = false;
}
#ifdef CAMU_MIXER_THREADED
- aki_mutex_unlock(&mixer->mutex);
+ nn_mutex_unlock(&mixer->mutex);
#endif
}
@@ -293,7 +297,7 @@ void camu_mixer_close(struct camu_mixer *mixer)
#ifdef CAMU_MIXER_THREADED
al_array_free(mixer->add_queue);
al_array_free(mixer->rem_queue);
- aki_mutex_destroy(&mixer->mutex);
+ nn_mutex_destroy(&mixer->mutex);
#endif
mixer->audio->free(&mixer->audio);
}
diff --git a/src/mixer/mixer.h b/src/mixer/mixer.h
index a925e0c..16ec924 100644
--- a/src/mixer/mixer.h
+++ b/src/mixer/mixer.h
@@ -4,7 +4,7 @@
#include <al/array.h>
#ifdef CAMU_MIXER_THREADED
#include <al/atomic.h>
-#include <aki/thread.h>
+#include <nnwt/thread.h>
#endif
#include "../codec/codec.h"
@@ -24,7 +24,7 @@ struct camu_mixer {
array(struct camu_audio_buffer *) add_queue;
array(struct camu_audio_buffer *) rem_queue;
atomic(u8) queued;
- struct aki_mutex mutex;
+ struct nn_mutex mutex;
#endif
void (*callback)(void *, u8);
void *userdata;