]> git.sesse.net Git - vlc/commitdiff
LibVLC: fix volume scale and make documentation more explicit
authorRémi Denis-Courmont <remi@remlab.net>
Tue, 26 Jul 2011 15:28:47 +0000 (18:28 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Tue, 26 Jul 2011 15:28:47 +0000 (18:28 +0300)
include/vlc/libvlc_media_player.h
src/control/audio.c

index d8c5519dc8045edcd5740bab368b01887ecf63f9..0f24e37bf8a70cf1a69447443d78409e1061d274 100644 (file)
@@ -1403,18 +1403,19 @@ LIBVLC_API int libvlc_audio_get_mute( libvlc_media_player_t *p_mi );
 LIBVLC_API void libvlc_audio_set_mute( libvlc_media_player_t *p_mi, int status );
 
 /**
- * Get current audio level.
+ * Get current software audio volume.
  *
  * \param p_mi media player
- * \return the audio level (int)
+ * \return the software volume in percents
+ * (0 = mute, 100 = nominal / 0dB)
  */
 LIBVLC_API int libvlc_audio_get_volume( libvlc_media_player_t *p_mi );
 
 /**
- * Set current audio level.
+ * Set current software audio volume.
  *
  * \param p_mi media player
- * \param i_volume the volume (int)
+ * \param i_volume the volume in percents (0 = mute, 100 = 0dB)
  * \return 0 if the volume was set, -1 if it was out of range
  */
 LIBVLC_API int libvlc_audio_set_volume( libvlc_media_player_t *p_mi, int i_volume );
index 374dc27e936ffc3aefc3ea7227df815b3ee28001..aa71969cfb6a8b4a45953d64d62ac7a75a1d8939 100644 (file)
@@ -327,29 +327,28 @@ void libvlc_audio_set_mute( libvlc_media_player_t *mp, int mute )
 }
 
 /*****************************************************************************
- * libvlc_audio_get_volume : Get the current volume (range 0-200 %)
+ * libvlc_audio_get_volume : Get the current volume
  *****************************************************************************/
 int libvlc_audio_get_volume( libvlc_media_player_t *mp )
 {
-    audio_volume_t i_volume = aout_VolumeGet( mp );
+    unsigned volume = aout_VolumeGet( mp );
 
-    return (i_volume*200+AOUT_VOLUME_MAX/2)/AOUT_VOLUME_MAX;
+    return (volume * 100 + AOUT_VOLUME_DEFAULT / 2) / AOUT_VOLUME_DEFAULT;
 }
 
 
 /*****************************************************************************
  * libvlc_audio_set_volume : Set the current volume
  *****************************************************************************/
-int libvlc_audio_set_volume( libvlc_media_player_t *mp, int i_volume )
+int libvlc_audio_set_volume( libvlc_media_player_t *mp, int volume )
 {
-    if( i_volume < 0 || i_volume > 200 )
+    volume = (volume * AOUT_VOLUME_DEFAULT + 50) / 100;
+    if (volume < 0 || volume > AOUT_VOLUME_MAX)
     {
         libvlc_printerr( "Volume out of range" );
         return -1;
     }
-
-    i_volume = (i_volume * AOUT_VOLUME_MAX + 100) / 200;
-    aout_VolumeSet( mp, i_volume );
+    aout_VolumeSet (mp, volume);
     return 0;
 }