@@ -591,16 +591,16 @@ bool ba_transport_pcm_is_active(const struct ba_transport_pcm *pcm) {
591
591
592
592
/**
593
593
* Convert PCM volume level to [0, max] range. */
594
- int ba_transport_pcm_volume_level_to_range (int value , int max ) {
594
+ unsigned int ba_transport_pcm_volume_level_to_range (int value , int max ) {
595
595
int volume = audio_decibel_to_loudness (value / 100.0 ) * max ;
596
596
return MIN (MAX (volume , 0 ), max );
597
597
}
598
598
599
599
/**
600
600
* Convert [0, max] range to PCM volume level. */
601
601
int ba_transport_pcm_volume_range_to_level (int value , int max ) {
602
- double level = audio_loudness_to_decibel (1.0 * value / max );
603
- return MIN (MAX (level , -96.0 ), 96.0 ) * 100 ;
602
+ int level = audio_loudness_to_decibel (1.0 * value / max ) * 100 ;
603
+ return MIN (MAX (level , -9600 ), 9600 ) ;
604
604
}
605
605
606
606
/**
@@ -656,8 +656,8 @@ int ba_transport_pcm_volume_update(struct ba_transport_pcm *pcm) {
656
656
for (size_t i = 0 ; i < pcm -> channels ; i ++ )
657
657
level_sum += pcm -> volume [i ].level ;
658
658
659
- unsigned int volume = ba_transport_pcm_volume_level_to_range (
660
- level_sum / pcm -> channels , BLUEZ_A2DP_VOLUME_MAX );
659
+ uint16_t volume = ba_transport_pcm_volume_level_to_range (
660
+ level_sum / ( int ) pcm -> channels , BLUEZ_A2DP_VOLUME_MAX );
661
661
662
662
/* skip update if nothing has changed */
663
663
if (volume != t -> a2dp .volume ) {
0 commit comments