[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdemultimedia/kmix
From: Christian Esken <esken () kde ! org>
Date: 2011-09-02 21:36:32
Message-ID: 20110902213632.160A2AC87C () svn ! kde ! org
[Download RAW message or body]
SVN commit 1251007 by esken:
CCBUGS: 249508
Implement proper minimum volume level (remove old buggy average calculation)
M +5 -23 core/volume.cpp
M +0 -2 core/volume.h
M +3 -4 gui/kmixdockwidget.cpp
--- trunk/KDE/kdemultimedia/kmix/core/volume.cpp #1251006:1251007
@@ -180,25 +180,6 @@
return _maxVolume - _minVolume + 1;
}
-
-int Volume::percentage(long absoluteVolume)
-{
- int relativeVolume = 0;
- if ( _maxVolume == 0 )
- return 0;
-
- if ( absoluteVolume > _maxVolume )
- relativeVolume = 100;
- else if ( absoluteVolume < _minVolume )
- relativeVolume = -100;
- else if ( absoluteVolume > 0 )
- relativeVolume = ( 100*absoluteVolume) / _maxVolume;
- else if ( absoluteVolume < 0 )
- relativeVolume = ( 100*absoluteVolume) / _minVolume;
-
- return relativeVolume;
-}
-
long Volume::getVolume(ChannelID chid) {
return _volumesL.value(chid).volume;
}
@@ -226,11 +207,12 @@
int Volume::getAvgVolumePercent(ChannelMask chmask)
{
long volume = getAvgVolume(chmask);
- // min=-100, max=200 => volSpane = 300
- // volume = -50 => volumePoistive = -50+min = 50
+ // min=-100, max=200 => volSpan = 301
+ // volume = -50 => volShiftedToZero = -50+min = 50
long volSpan = volumeSpan();
- long volShiftedToPositive = volume + _minVolume;
- int percent = ( volSpan == 0 ) ? 0 : ( 100 * volShiftedToPositive ) / volSpan;
+ long volShiftedToZero = volume - _minVolume;
+ int percent = ( volSpan == 0 ) ? 0 : ( 100 * volShiftedToZero ) / ( volSpan - 1);
+ kDebug() << "volSpan=" << volSpan << ", volume=" << volume << ", \
volShiftedToPositive=" << volShiftedToZero << ", percent=" << percent;
return percent;
}
--- trunk/KDE/kdemultimedia/kmix/core/volume.h #1251006:1251007
@@ -119,8 +119,6 @@
* The number of valid volume levels, mathematically: maxVolume - minVolume + 1
*/
long volumeSpan();
-
- int percentage(long );
int count();
bool hasSwitch() { return _hasSwitch; } // TODO { return _hasSwitch || \
hasVolume() ; } // "|| hasVolume()", because we simulate a switch, if it is not \
available as hardware.
--- trunk/KDE/kdemultimedia/kmix/gui/kmixdockwidget.cpp #1251006:1251007
@@ -223,7 +223,7 @@
{
// Playback volume will be used for the DockIcon if available.
// This heuristic is "good enough" for the DockIcon for now.
- long val = 0;
+ int val = 0;
Volume& vol = md->playbackVolume();
if (! vol.hasVolume() ) {
vol = md->captureVolume();
@@ -271,8 +271,7 @@
if (! vol.hasVolume() ) {
vol = md->captureVolume();
}
- long absoluteVolume = vol.getAvgVolume(Volume::MALL);
- int percentage = vol.percentage(absoluteVolume);
+ int percentage = vol.getAvgVolumePercent(Volume::MALL);
if ( percentage <= 0 ) newPixmapType = '0'; // Hint: also \
negative-values else if ( percentage < 25 ) newPixmapType = '1';
else if ( percentage < 75 ) newPixmapType = '2';
@@ -396,7 +395,7 @@
long int cv = inc * (delta / 120 );
// kDebug() << "twe: " << cv << " : " << vol;
if ( cv > 0 && md->isMuted())
- { // increasing form muted state: unmute and start with a low volume level
+ { // increasing from muted state: unmute and start with a low volume level
md->setMuted(false);
vol.setAllVolumes(cv);
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic