[vlc-commits] [Git][videolan/vlc][master] aout: respect AOUT_VOLUME_MAX in aout_volumeUpdate()

Steve Lhomme (@robUx4) gitlab at videolan.org
Tue Apr 9 04:24:16 UTC 2024



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
4134f7f3 by Fatih Uzunoglu at 2024-04-09T03:57:08+00:00
aout: respect AOUT_VOLUME_MAX in aout_volumeUpdate()

- - - - -


2 changed files:

- include/vlc_aout.h
- src/audio_output/output.c


Changes:

=====================================
include/vlc_aout.h
=====================================
@@ -514,7 +514,7 @@ VLC_API float aout_VolumeGet (audio_output_t *);
 VLC_API int aout_VolumeSet (audio_output_t *, float);
 
 /**
- * Raises the volume.
+ * Adjusts the volume.
  * \param aout the audio output to update the volume for
  * \param value how much to increase (> 0) or decrease (< 0) the volume
  * \param volp if non-NULL, will contain contain the resulting volume


=====================================
src/audio_output/output.c
=====================================
@@ -46,6 +46,16 @@ typedef struct aout_dev
 
 /* Local functions */
 
+static inline float clampf(const float value, const float min, const float max)
+{
+    if (value < min)
+        return min;
+    else if (value > max)
+        return max;
+    else
+        return value;
+}
+
 static int var_Copy (vlc_object_t *src, const char *name, vlc_value_t prev,
                      vlc_value_t value, void *data)
 {
@@ -830,18 +840,15 @@ int aout_VolumeSet (audio_output_t *aout, float vol)
 int aout_VolumeUpdate (audio_output_t *aout, int value, float *volp)
 {
     int ret = -1;
-    float stepSize = var_InheritFloat (aout, "volume-step") / (float)AOUT_VOLUME_DEFAULT;
-    float delta = value * stepSize;
+    const float defaultVolume = (float)AOUT_VOLUME_DEFAULT;
+    const float stepSize = var_InheritFloat (aout, "volume-step") / defaultVolume;
     float vol = aout_VolumeGet (aout);
 
     if (vol >= 0.f)
     {
-        vol += delta;
-        if (vol < 0.f)
-            vol = 0.f;
-        if (vol > 2.f)
-            vol = 2.f;
+        vol += (value * stepSize);
         vol = (roundf (vol / stepSize)) * stepSize;
+        vol = clampf(vol, 0.f, AOUT_VOLUME_MAX / defaultVolume);
         if (volp != NULL)
             *volp = vol;
         ret = aout_VolumeSet (aout, vol);



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/4134f7f3ef05de28ab882fd4c30cd69ad2e8cea4

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/4134f7f3ef05de28ab882fd4c30cd69ad2e8cea4
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list