summaryrefslogtreecommitdiff
path: root/src/mixer
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2024-10-29 16:06:12 -0400
committerAndrew Opalach <andrew@akon.city> 2024-10-29 16:15:23 -0400
commit355480f408e88b69717b934bace4e5e69856ad23 (patch)
treeabd46100759e23a83e9675ed2c3be01b538f1421 /src/mixer
parent846e17728f2ed2af3672987ef61853f0bc96c224 (diff)
downloadcamu-355480f408e88b69717b934bace4e5e69856ad23.tar.gz
camu-355480f408e88b69717b934bace4e5e69856ad23.tar.bz2
camu-355480f408e88b69717b934bace4e5e69856ad23.zip
Cleanup, improve volume calculations
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/mixer')
-rw-r--r--src/mixer/audio_miniaudio.c32
-rw-r--r--src/mixer/meson.build5
2 files changed, 22 insertions, 15 deletions
diff --git a/src/mixer/audio_miniaudio.c b/src/mixer/audio_miniaudio.c
index 5695a31..72e1cd8 100644
--- a/src/mixer/audio_miniaudio.c
+++ b/src/mixer/audio_miniaudio.c
@@ -2,6 +2,7 @@
#if defined(__clang__) || defined(__GNUC__)
_Pragma("GCC diagnostic push") \
_Pragma("GCC diagnostic ignored \"-Wunused-function\"")
+_Pragma("GCC diagnostic ignored \"-Wunused-variable\"")
_Pragma("GCC diagnostic ignored \"-Wincompatible-pointer-types\"")
_Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"")
#elif _MSC_VER
@@ -18,6 +19,7 @@ _Pragma("GCC diagnostic pop")
static ma_backend backends[] = {
#ifndef _WIN32
ma_backend_pulseaudio,
+ ma_backend_alsa
#else
ma_backend_wasapi
// ma_backend_dsound
@@ -75,24 +77,28 @@ static bool audio_miniaudio_init(struct camu_audio *audio, str *name)
al_log_error("audio_miniaudio", "Failed to initialize context (%d).", ret);
return false;
}
- /*
+ ma->selected_device = NULL;
if (ma_context_get_devices(&ma->context, &ma->infos, &ma->info_count, NULL, NULL) != MA_SUCCESS) {
return false;
}
+ /*
for (u32 i = 0; i < ma->info_count; i++) {
ma_device_info *info = &ma->infos[i];
+ if (strcmp(info->id.alsa, "front:CARD=D10,DEV=0") == 0) {
+ ma->selected_device = info;
+ break;
+ }
ma_device_info real_info;
ma_context_get_device_info(&ma->context, ma_device_type_playback, &info->id, &real_info);
for (u32 j = 0; j < real_info.nativeDataFormatCount; j++) {
- //al_printf("%s\n", real_info.id.alsa);
- //al_printf("%s\n", real_info.id.pulse);
- //al_printf("%i\n", real_info.nativeDataFormats[j].format);
- //al_printf("%i\n", real_info.nativeDataFormats[j].channels);
- //al_printf("%i\n", real_info.nativeDataFormats[j].sampleRate);
- //al_printf("\n");
+ al_printf("%s\n", real_info.id.alsa);
+ al_printf("%s\n", real_info.id.pulse);
+ al_printf("%i\n", real_info.nativeDataFormats[j].format);
+ al_printf("%i\n", real_info.nativeDataFormats[j].channels);
+ al_printf("%i\n", real_info.nativeDataFormats[j].sampleRate);
+ al_printf("\n");
}
}
- //al_printf("%i\n", ma->info_count);
*/
return true;
}
@@ -144,15 +150,15 @@ static bool audio_miniaudio_configure_stream(struct camu_audio *audio, void *opa
struct camu_ff_resample_fmt *fmt = (struct camu_ff_resample_fmt *)opaque;
(void)fmt;
ma->config = ma_device_config_init(ma_device_type_playback);
- //ma->config.playback.pDeviceID = &ma->selected_device->id;
- //ma->config.performanceProfile = ma_performance_profile_low_latency;
+ if (ma->selected_device) {
+ ma->config.playback.pDeviceID = &ma->selected_device->id;
+ }
ma->config.performanceProfile = ma_performance_profile_conservative;
ma->config.periods = DEFAULT_PERIODS;
ma->config.periodSizeInMilliseconds = DEFAULT_PERIOD_SIZE_IN_MILLISECONDS;
- //ma->config.playback.format = ma_format_unknown;
- ma->config.playback.format = ma_format_f32;
+ ma->config.playback.format = ma_format_s32;
ma->config.playback.channels = 2;
- ma->config.sampleRate = 0;
+ ma->config.sampleRate = 44100;
ma->config.dataCallback = data_callback;
ma->config.pUserData = ma;
ma->config.noPreSilencedOutputBuffer = MA_TRUE;
diff --git a/src/mixer/meson.build b/src/mixer/meson.build
index ea9356c..be5894f 100644
--- a/src/mixer/meson.build
+++ b/src/mixer/meson.build
@@ -18,8 +18,9 @@ if use_miniaudio
]
if not is_windows
libpulse = dependency('libpulse')
- mixer_deps += [libpulse]
- mixer_args += ['-DMA_ENABLE_PULSEAUDIO', '-DMA_NO_RUNTIME_LINKING']
+ alsa = dependency('alsa')
+ mixer_deps += [libpulse, alsa]
+ mixer_args += ['-DMA_ENABLE_ALSA', '-DMA_ENABLE_PULSEAUDIO', '-DMA_NO_RUNTIME_LINKING']
else
mixer_args += ['-DMA_ENABLE_WASAPI']
#mixer_args += ['-DMA_ENABLE_DSOUND']