diff options
| author | 2024-10-29 16:06:12 -0400 | |
|---|---|---|
| committer | 2024-10-29 16:15:23 -0400 | |
| commit | 355480f408e88b69717b934bace4e5e69856ad23 (patch) | |
| tree | abd46100759e23a83e9675ed2c3be01b538f1421 /src/mixer | |
| parent | 846e17728f2ed2af3672987ef61853f0bc96c224 (diff) | |
| download | camu-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.c | 32 | ||||
| -rw-r--r-- | src/mixer/meson.build | 5 |
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'] |