From d581e3eeab4a30bc7f7c262127339c46d8bdaa59 Mon Sep 17 00:00:00 2001 From: Paul Dino Jones Date: Sat, 20 Jul 2024 20:15:16 -0400 Subject: [PATCH] Better handle volume math --- src/monocoque/devices/sound/usb_generic_shaker_pulse.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/monocoque/devices/sound/usb_generic_shaker_pulse.c b/src/monocoque/devices/sound/usb_generic_shaker_pulse.c index ec575c0..234c965 100644 --- a/src/monocoque/devices/sound/usb_generic_shaker_pulse.c +++ b/src/monocoque/devices/sound/usb_generic_shaker_pulse.c @@ -19,7 +19,6 @@ #define M_PI (3.14159265) #endif - void gear_sound_stream(pa_stream *s, size_t length, void *userdata) { SoundData* data = (SoundData*)userdata; @@ -131,14 +130,13 @@ int usb_generic_shaker_init(SoundDevice* sounddevice, pa_threaded_mainloop* main pa_cvolume* cv; pa_cvolume_mute(cv, channels); - uint16_t pvolume = ceil(((double) volume/100.0d)*65535); - // Settings copied as per the chromium browser source + + pa_volume_t channel_volume = PA_CLAMP_VOLUME((pa_volume_t)((volume/100.d)*PA_VOLUME_NORM)); pa_stream_flags_t stream_flags; stream_flags = PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_NOT_MONOTONIC | PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_ADJUST_LATENCY | PA_STREAM_START_CORKED; - - cv->values[pan] = pvolume; + cv->values[pan] = channel_volume; assert(pa_stream_connect_playback(stream, devname, &buffer_attr, stream_flags, cv, NULL) == 0);