Sometimes the audio increase/decrease volume command are stuck to a
fixed value. This diff fixes this problem.

The hot-keys for above commands are the volume keys of multimedia
keyboards. These keys are already used by the OpenBSD kernel for other
volume adjustments; probably, that's why this problem stayed
unnoticed.

OK?

Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/vlc/Makefile,v
retrieving revision 1.278
diff -u -p -r1.278 Makefile
--- Makefile    17 Nov 2024 15:02:05 -0000      1.278
+++ Makefile    21 Jan 2025 12:05:05 -0000
@@ -9,7 +9,7 @@ CATEGORIES=     x11
 SITES=         https://download.videolan.org/pub/videolan/vlc/${V}/
 EXTRACT_SUFX=  .tar.xz
 REVISION-jack= 0
-REVISION-main= 0
+REVISION-main= 1
 
 USE_NOBTCFI=   Yes
 
Index: patches/patch-modules_audio_output_sndio_c
===================================================================
RCS file: /cvs/ports/x11/vlc/patches/patch-modules_audio_output_sndio_c,v
retrieving revision 1.6
diff -u -p -r1.6 patch-modules_audio_output_sndio_c
--- patches/patch-modules_audio_output_sndio_c  1 Aug 2024 11:28:01 -0000       
1.6
+++ patches/patch-modules_audio_output_sndio_c  21 Jan 2025 12:05:05 -0000
@@ -1,5 +1,6 @@
 Use sio_flush() instead of sio_stop() to improve controls responsiveness.
 
+Report the the actual volume, fixes volume increment/decrement.
 Index: modules/audio_output/sndio.c
 --- modules/audio_output/sndio.c.orig
 +++ modules/audio_output/sndio.c
@@ -12,3 +13,20 @@ Index: modules/audio_output/sndio.c
      sys->started = 0;
      sys->delay = 0;
      sio_start (sys->hdl);
+@@ -276,6 +276,8 @@ static int VolumeSet (audio_output_t *aout, float fvol
+     if (!sys->mute && !sio_setvol (sys->hdl, volume))
+         return -1;
+     sys->volume = volume;
++    aout_VolumeReport (aout, (float)sys->volume / SIO_MAXVOL);
++    aout_MuteReport (aout, sys->volume == 0);
+     return 0;
+ }
+ 
+@@ -287,6 +289,7 @@ static int MuteSet (audio_output_t *aout, bool mute)
+         return -1;
+ 
+     sys->mute = mute;
++    aout_MuteReport (aout, mute);
+     return 0;
+ }
+ 

Reply via email to