diff options
Diffstat (limited to 'firmware/target/hosted')
-rw-r--r-- | firmware/target/hosted/maemo/pcm-gstreamer.c | 6 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/pcm-sdl.c | 4 |
2 files changed, 6 insertions, 4 deletions
diff --git a/firmware/target/hosted/maemo/pcm-gstreamer.c b/firmware/target/hosted/maemo/pcm-gstreamer.c index 10a9d77880..5bca6f2d92 100644 --- a/firmware/target/hosted/maemo/pcm-gstreamer.c +++ b/firmware/target/hosted/maemo/pcm-gstreamer.c @@ -427,9 +427,9 @@ void pcm_play_dma_postinit(void) void pcm_set_mixer_volume(int volume) { - /* gstreamer volume range is from 0.00 to 1.00 */ - gdouble gst_vol = (gdouble)(volume - VOLUME_MIN) / (gdouble)VOLUME_RANGE; - + /* gstreamer volume range is from 0.00 to 1.00 + * input is -990..0 */ + gdouble gst_vol = 1.0f - (gdouble)volume / -990.0f; g_object_set (G_OBJECT(gst_volume), "volume", gst_vol, NULL); } diff --git a/firmware/target/hosted/sdl/pcm-sdl.c b/firmware/target/hosted/sdl/pcm-sdl.c index 812211288e..beefc7818c 100644 --- a/firmware/target/hosted/sdl/pcm-sdl.c +++ b/firmware/target/hosted/sdl/pcm-sdl.c @@ -421,7 +421,9 @@ void pcm_play_dma_postinit(void) #ifndef HAVE_SW_VOLUME_CONTROL void pcm_set_mixer_volume(int volume) { - sim_volume = volume; + int minvol = sound_min(SOUND_VOLUME); + int volrange = sound_max(SOUND_VOLUME) - minvol; + sim_volume = SDL_MIX_MAXVOLUME * (volume / 10 - minvol) / volrange; } #endif /* HAVE_SW_VOLUME_CONTROL */ |