Hello community, here is the log from the commit of package kdeutils3 checked in at Thu Jan 18 16:32:55 CET 2007. -------- --- KDE/kdeutils3/kdeutils3.changes 2007-01-09 10:28:03.000000000 +0100 +++ /mounts/work_src_done/STABLE/kdeutils3/kdeutils3.changes 2007-01-18 13:47:22.671816000 +0100 @@ -1,0 +2,5 @@ +Thu Jan 18 13:46:17 CET 2007 - seife@suse.de + +- fix kmilo volume annoyance (#234196) + +------------------------------------------------------------------- New: ---- kmilo-generic_monitor-volupdown-fix.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kdeutils3.spec ++++++ --- /var/tmp/diff_new_pack.Q16938/_old 2007-01-18 16:32:28.000000000 +0100 +++ /var/tmp/diff_new_pack.Q16938/_new 2007-01-18 16:32:28.000000000 +0100 @@ -37,6 +37,7 @@ Patch12: kfloppy.dif Patch13: kgpg_default_keyservers.diff Patch14: superkaramba-session.diff +Patch99: kmilo-generic_monitor-volupdown-fix.diff %description A couple of utility programs for KDE. @@ -130,6 +131,7 @@ %endif %patch13 %patch14 +%patch99 -p1 %ifarch s390 s390x rm -rf kfloppy doc/kfloppy %endif @@ -349,6 +351,8 @@ /opt/kde3/include/kwidgetstreamer.h %changelog -n kdeutils3 +* Thu Jan 18 2007 - seife@suse.de +- fix kmilo volume annoyance (#234196) * Mon Jan 08 2007 - stbinner@suse.de - fix Superkaramba session management on 10.2 * Thu Nov 09 2006 - wstephenson@suse.de ++++++ kmilo-generic_monitor-volupdown-fix.diff ++++++ diff -rup kdeutils-3.5.5~/kmilo/generic/generic_monitor.cpp kdeutils-3.5.5/kmilo/generic/generic_monitor.cpp --- kdeutils-3.5.5~/kmilo/generic/generic_monitor.cpp 2006-10-01 19:28:15.000000000 +0200 +++ kdeutils-3.5.5/kmilo/generic/generic_monitor.cpp 2007-01-12 18:19:43.000000000 +0100 @@ -92,7 +92,7 @@ bool GenericMonitor::retrieveVolume() { bool kmix_error = false; - DCOPReply reply = kmixClient->call("masterVolume"); + DCOPReply reply = kmixClient->call("absoluteVolume", 0); if (reply.isValid()) m_volume = reply; else @@ -104,7 +104,7 @@ bool GenericMonitor::retrieveVolume() if (kapp->startServiceByDesktopName("kmix")==0) // trying to start kmix { // trying again - reply = kmixClient->call("masterVolume"); + reply = kmixClient->call("absoluteVolume", 0); if (reply.isValid()) { m_volume = reply; @@ -122,6 +122,10 @@ bool GenericMonitor::retrieveVolume() return false; } else { + reply = kmixClient->call("absoluteVolumeMax", 0); + m_maxVolume = reply; + reply = kmixClient->call("absoluteVolumeMin", 0); + m_minVolume = reply; return true; } } @@ -131,9 +135,7 @@ void GenericMonitor::volumeUp(int step) if (!retrieveVolume()) return; - // FIXME if the mixer doesn't support steps of the specified size it - // could get stuck at one position - m_volume += step; + m_volume += (int)((m_maxVolume - m_minVolume) * step /100) +1; if (m_volume > m_maxVolume) m_volume = m_maxVolume; @@ -145,7 +147,7 @@ void GenericMonitor::volumeDown(int step if (!retrieveVolume()) return; - m_volume -= step; + m_volume -= (int)((m_maxVolume - m_minVolume) * step /100) +1; if (m_volume < m_minVolume) m_volume = m_minVolume; @@ -159,11 +161,11 @@ void GenericMonitor::fastVolumeDown() { void GenericMonitor::displayVolume() { - _interface->displayProgress(i18n("Volume"), m_volume); + _interface->displayProgress(i18n("Volume"), (int)(m_volume * 100 / (m_maxVolume - m_minVolume))); // If we got this far, the DCOP communication with kmix works, - // so we don't have to test the result. - kmixClient->send("setMasterVolume", m_volume); + // so we don't have to test the result. + kmixClient->send("setAbsoluteVolume", 0, m_volume); // if mute then unmute if (m_mute) diff -rup kdeutils-3.5.5~/kmilo/generic/generic_monitor.h kdeutils-3.5.5/kmilo/generic/generic_monitor.h --- kdeutils-3.5.5~/kmilo/generic/generic_monitor.h 2006-01-19 17:49:13.000000000 +0100 +++ kdeutils-3.5.5/kmilo/generic/generic_monitor.h 2007-01-12 17:27:04.000000000 +0100 @@ -75,10 +75,10 @@ private: DCOPRef *kmixClient, *kmixWindow; int m_progress; - int m_volume, m_oldVolume; + long m_volume, m_oldVolume; bool m_mute; - int m_maxVolume, m_minVolume; + long m_maxVolume, m_minVolume; Monitor::DisplayType m_displayType; }; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org