Review Request: Rework KMix DBus API and add KMix plasma dataengine

Christian Esken esken at kde.org
Mon Aug 22 19:11:05 UTC 2011


Am Samstag, 20. August 2011, 14:36:40 schrieb Mark Gaiser:
> 
> > On Aug. 20, 2011, 1:22 a.m., Mark Gaiser wrote:
> > > Hi,
> > > 
> > > I was just trying to do the same thing with kmix and wasted ~6 hours on 
that (or even more) just to find that is was already here but never committed. 
So how are we on this? Can this be committed?
> > > 
> > > Regards,
> > > Mark
> 
> Sorry, it is already committed. I was looking for a commit hook message or a 
"Ship it!" message.. Guess it was "silently" committed. It can already be 
found in the current 4.7 codebase.
> Sorry for the noise.

Hi Mark,

thanks for caring. No problem about the noise. :-)

I just looked at the review request and saw it is labeled with "This change 
has been marked as submitted.". Should be enough, I would say. 
http://techbase.kde.org/Development/Review_Board#Closing_a_review_request is 
not too specific about how to properly close a review request, but I guess a 
simple "close" is enough.

 Christian

> 
> 
> - Mark
> 
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://svn.reviewboard.kde.org/r/6587/#review10358
> -----------------------------------------------------------
> 
> 
> On April 7, 2011, 8:40 a.m., Igor Poboiko wrote:
> > 
> > -----------------------------------------------------------
> > This is an automatically generated e-mail. To reply, visit:
> > http://svn.reviewboard.kde.org/r/6587/
> > -----------------------------------------------------------
> > 
> > (Updated April 7, 2011, 8:40 a.m.)
> > 
> > 
> > Review request for Plasma and Diego Casella.
> > 
> > 
> > Summary
> > -------
> > 
> > This patch reworks KMix DBus API and adds a plasma dataengine+service as a 
frontend to information provided by DBus.
> > New DBus structure is:
> >  - /Mixers
> > used to get some global information, such as available mixers list and 
global master mixer
> >  - /Mixers/MIXER_ID
> > used to get information about mixer with id=MIXER_ID. It provides such 
information as list of available controls, name of this mixer, id, etc
> >  - /Mixers/MIXER_ID/CONTROL_ID
> > used to get and set information about control. Such information as volume 
level, mute, name of control, etc.
> > It also adds a DBus signals which are emitted when new mixer/control 
appears, or volume level changes.
> > It also splits all dbus-related code to separate class, 
DBus{KMix,Mixer,Control}Wrapper.
> > 
> > The Plasma Dataengine:
> > By default, the only available source is "KMix". It provides information 
global information about KMix: is KMix running, and list of available mixers. 
(its IDs)
> > Source for every mixer is called by it's ID (for example, 
"ALSA::HDA_Intel:1"). This source provides such information about current 
Mixer as: it's readable name, is it opened, its balance and list of available 
controls. It also adds basic sources for every control, which provides only 
information about its readable name
> > Sources for controls are called by 'MIXER_ID/CONTROL_ID' (for example, 
"ALSA::HDA_Intel:1/Master:0"). If you request this source, it will provide 
such information as its readable name, is it muted and its volume level (which 
are updates automatically, using DBus signals).
> > There is a service available for controls sources. It provides such 
methods as setVolume() and setMute().
> > 
> > It doesn't close bug 171287, but it becomes one step closer to its solving 
:)
> > 
> > And, I'm not very familiar with CMake, but it would be great idea to make 
plasma part optional.
> > 
> > 
> > This addresses bug 171287.
> >     https://bugs.kde.org/show_bug.cgi?id=171287
> > 
> > 
> > Diffs
> > -----
> > 
> >   /trunk/KDE/kdemultimedia/kmix/core/mixdevice.h 1225808 
> >   /trunk/KDE/kdemultimedia/kmix/apps/kmix.cpp 1225808 
> >   /trunk/KDE/kdemultimedia/kmix/CMakeLists.txt 1225808 
> >   /trunk/KDE/kdemultimedia/kmix/core/mixdevice.cpp 1225808 
> >   /trunk/KDE/kdemultimedia/kmix/core/mixer.h 1225808 
> >   /trunk/KDE/kdemultimedia/kmix/core/mixer.cpp 1225808 
> >   /trunk/KDE/kdemultimedia/kmix/dbus/dbuscontrolwrapper.h PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/dbus/dbuscontrolwrapper.cpp PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/dbus/dbusmixerwrapper.h PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/dbus/dbusmixerwrapper.cpp PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/dbus/dbusmixsetwrapper.h PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/dbus/dbusmixsetwrapper.cpp PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/dbus/org.kde.kmix.control.xml PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/dbus/org.kde.kmix.mixer.xml PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/dbus/org.kde.kmix.mixset.xml PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/gui/kmixdockwidget.cpp 1225808 
> >   /trunk/KDE/kdemultimedia/kmix/plasma/CMakeLists.txt PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/plasma/engine/CMakeLists.txt PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/plasma/engine/mixer.operations PRE-
CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/plasma/engine/mixerengine.h PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/plasma/engine/mixerengine.cpp PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/plasma/engine/mixerservice.h PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/plasma/engine/mixerservice.cpp PRE-
CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/plasma/engine/plasma-engine-mixer.desktop 
PRE-CREATION 
> >   /trunk/KDE/kdemultimedia/kmix/tests/CMakeLists.txt 1225808 
> > 
> > Diff: http://svn.reviewboard.kde.org/r/6587/diff
> > 
> > 
> > Testing
> > -------
> > 
> > KMix from KDE SC 4.6.0 compiles ok with this patch, and patch applies to 
current trunk.
> > Tested on system with one card and with ALSA backend, so I don't know is 
plasma dataengine works correctly with plugging/unplugging mixers (but it 
should).
> > All DBus methods/properties works fine, signals are emitted, volume can be 
set using DBus methods.
> > 
> > Plasma dataengine was tested using plasmaengineexplorer. 
> > All works fine except the one thing. When I request an source for Mixer, 
it also adds soucres for controls. And then when I request source for already 
available Control, it doesn't react anyhow. But when I set "Update every % 
ms", and click "Reqeust", it works fine. If I request a source for control 
BEFORE requesting the source for mixer, all works fine too (without setting 
"Update every % ms"). I don't know is it a plasmaengineexplorer bug, or my.
> > 
> > 
> > Thanks,
> > 
> > Igor
> > 
> >
> 
> 



More information about the Plasma-devel mailing list