[Phonon/4.1] 533d3f2 Since no objections were raised in kde-core-devel,

Thiago Macieira thiago at kde.org
Sun Jan 2 21:59:05 GMT 2011


	A	 org.kde.Phonon.MixerIface.xml	 [License: Trivialfile.]


	A	 mixeradaptor.h	 [License: GENERATEDFILE]


	A	 mixeradaptor.cpp	 [License: GENERATEDFILE]

commit 533d3f2b247217d21339de340c00f65bf340add5
Author: Thiago Macieira <thiago at kde.org>
Date:   Wed May 31 07:20:26 2006 +0000

    Since no objections were raised in kde-core-devel, I am merging the
    kdelibs4-dbus branch back into trunk. KDELibs compiles, links and
    installs with this, but obviously all other modules will fail to
    build. Let the porting commence.
    
    CCMAIL:kde-core-devel at kde.org,kde-buildsystem at kde.org

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2f48503..4458a00 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,6 @@
 
+add_definitions(${QDBUS_DEFINITIONS})
+
 # Those apply to all subdirs
 include_directories( ${KDE4_KIO_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} )
 
@@ -54,6 +56,7 @@ set(phononcore_LIB_SRCS
 	audioeffect.cpp
 	volumefadereffect.cpp
 	videoeffect.cpp
+	mixeradaptor.cpp
 	brightnesscontrol.cpp
 	abstractaudiooutput.cpp
 	audiooutput.cpp
@@ -68,8 +71,6 @@ set(phononcore_LIB_SRCS
 
 kde4_automoc(${phononcore_LIB_SRCS})
 
-kde4_add_dcop_skels(phononcore_LIB_SRCS factory.h mixeriface.h )
-
 kde4_add_library(phononcore SHARED ${phononcore_LIB_SRCS})
 
 target_link_libraries(phononcore  ${KDE4_KDECORE_LIBS} kio )
@@ -108,8 +109,8 @@ install_files( /include/phonon FILES
 	audioeffect.h
 	volumefadereffect.h
 	videoeffect.h
+	mixeradaptor.h
 	brightnesscontrol.h
-	mixeriface.h
 	abstractaudiooutput.h
 	audiooutput.h
 	audiodataoutput.h
diff --git a/audiooutput.cpp b/audiooutput.cpp
index dce3d0b..9e945b9 100644
--- a/audiooutput.cpp
+++ b/audiooutput.cpp
@@ -117,7 +117,7 @@ void AudioOutput::setupIface()
 	Q_ASSERT( d->iface() );
 	AbstractAudioOutput::setupIface();
 
-	connect( d->iface()->qobject(), SIGNAL( volumeChanged( float ) ), SIGNAL( volumeChanged( float ) ) );
+	connect( d->iface()->qobject(), SIGNAL(volumeChanged(float)), SIGNAL(volumeChanged(float)) );
 
 	// set up attributes
 	d->iface()->setVolume( d->volume );
diff --git a/audiooutput.h b/audiooutput.h
index 2f7e072..7c6d033 100644
--- a/audiooutput.h
+++ b/audiooutput.h
@@ -20,7 +20,6 @@
 #define Phonon_AUDIOOUTPUT_H
 
 #include "abstractaudiooutput.h"
-#include "mixeriface.h"
 #include <kdelibs_export.h>
 #include "phonondefs.h"
 #include "phononnamespace.h"
@@ -49,7 +48,7 @@ namespace Phonon
 	 * \author Matthias Kretz <kretz at kde.org>
 	 * \see Phonon::Ui::VolumeSlider
 	 */
-	class PHONONCORE_EXPORT AudioOutput : public AbstractAudioOutput, public MixerIface
+	class PHONONCORE_EXPORT AudioOutput : public AbstractAudioOutput
 	{
 		Q_OBJECT
 		K_DECLARE_PRIVATE( AudioOutput )
@@ -67,7 +66,7 @@ namespace Phonon
 		 *
 		 * \see volumeDecibel
 		 */
-		Q_PROPERTY( float volume READ volume WRITE setVolume )
+		Q_PROPERTY( float volume READ volume WRITE setVolume NOTIFY volumeChanged )
 		/**
 		 * This is the current volume of the output in decibel.
 		 *
@@ -108,7 +107,6 @@ namespace Phonon
 		PHONON_HEIR( AudioOutput )
 		public:
 			QString name() const;
-			float volume() const;
 			double volumeDecibel() const;
 			Phonon::Category category() const;
 			AudioOutputDevice outputDevice() const;
@@ -118,6 +116,7 @@ namespace Phonon
 
 		public Q_SLOTS:
 			void setName( const QString& newName );
+			float volume() const;
 			void setVolume( float newVolume );
 			void setVolumeDecibel( double newVolumeDecibel );
 			void setCategory( Phonon::Category category );
diff --git a/audiooutput_p.h b/audiooutput_p.h
index 75dcfe4..a661ebf 100644
--- a/audiooutput_p.h
+++ b/audiooutput_p.h
@@ -23,6 +23,7 @@
 #include "audiooutput.h"
 #include "abstractaudiooutput_p.h"
 #include "ifaces/audiooutput.h"
+#include "mixeradaptor.h"
 #include <kaboutdata.h>
 #include <kglobal.h>
 #include <kinstance.h>
@@ -38,12 +39,14 @@ class AudioOutputPrivate : public AbstractAudioOutputPrivate
 			: volume( 1.0 )
 			, category( Phonon::UnspecifiedCategory )
 			, outputDeviceIndex( -1 )
-		{ 
+		{
 			const KAboutData* ad = KGlobal::instance()->aboutData();
 			if( ad )
 				name = ad->programName();
 			else
 				name = KGlobal::instance()->instanceName();
+
+            new MixerIfaceAdaptor(q_func());
 		}
 
 	private:
diff --git a/factory.cpp b/factory.cpp
index 95c89fc..102f3dc 100644
--- a/factory.cpp
+++ b/factory.cpp
@@ -45,6 +45,8 @@
 #include <kdebug.h>
 #include <kstaticdeleter.h>
 
+#include <dbus/qdbus.h>
+
 static KStaticDeleter<Phonon::Factory> sd;
 
 #define PHONON_LOAD_BACKEND_GLOBAL 1
@@ -147,10 +149,10 @@ Factory * Factory::self()
 }
 
 Factory::Factory()
-	: DCOPObject( "PhononFactory" )
-	, d( new Private )
+	: d( new Private )
 {
-	connectDCOPSignal( 0, 0, "phononBackendChanged()", "phononBackendChanged()", false);
+	QDBus::sessionBus().connect(QString(), QString(), "org.kde.Phonon.Factory",
+			"phononBackendChanged", this, SLOT(phononBackendChanged()));
 }
 
 Factory::~Factory()
@@ -159,11 +161,7 @@ Factory::~Factory()
 	emit deleteYourObjects();
 	foreach( BasePrivate* bp, d->basePrivateList )
 		bp->deleteIface();
-	foreach( QObject* o, d->objects )
-	{
-		//kDebug( 600 ) << "delete " << o << endl;
-		delete o;
-	}
+	qDeleteAll(d->objects);
 	delete d->backend;
 	delete d;
 }
diff --git a/factory.h b/factory.h
index 7faf61f..eac40f2 100644
--- a/factory.h
+++ b/factory.h
@@ -22,7 +22,6 @@
 
 #include <QObject>
 
-#include <dcopobject.h>
 #include <kstaticdeleter.h>
 #include <kdelibs_export.h>
 
@@ -63,7 +62,7 @@ namespace Phonon
  *
  * \author Matthias Kretz <kretz at kde.org>
  */
-class PHONONCORE_EXPORT Factory : public QObject, public DCOPObject
+class PHONONCORE_EXPORT Factory : public QObject
 {
 	friend void ::KStaticDeleter<Factory>::destructObject();
 	friend class Phonon::BasePrivate;
@@ -103,7 +102,7 @@ class PHONONCORE_EXPORT Factory : public QObject, public DCOPObject
 		 * \return a pointer to the Ifaces::ByteStream the backend provides
 		 */
 		Ifaces::ByteStream* createByteStream( QObject* parent = 0 );
-		
+
 		/**
 		 * Create a new Ifaces::AudioPath.
 		 *
@@ -175,7 +174,7 @@ class PHONONCORE_EXPORT Factory : public QObject, public DCOPObject
 		 * \copydoc Phonon::Ifaces::Backend::uiSymbol()
 		 */
 		const char* uiSymbol();
-		
+
 		/**
 		 * Get the name of the Backend. It's the name from the .desktop file.
 		 */
@@ -260,24 +259,23 @@ class PHONONCORE_EXPORT Factory : public QObject, public DCOPObject
 		class Private;
 		Private * d;
 
-	K_DCOP
-	k_dcop:
+	private Q_SLOTS:
 		/**
 		 * \internal
 		 * This is called via DCOP when the user changes the Phonon Backend.
 		 */
 		void phononBackendChanged();
 
-//X 		It is probably better if we can get away with internal handling of
-//X 		freeing the soundcard device when it's not needed anymore and
-//X 		providing an IPC method to stop all MediaProducers -> free all
-//X 		devices
-//X 		/**
-//X 		 * \internal
-//X 		 * This is called when the application needs to free the soundcard
-//X 		 * device(s).
-//X 		 */
-//X 		void freeSoundcardDevices();
+//X		It is probably better if we can get away with internal handling of
+//X		freeing the soundcard device when it's not needed anymore and
+//X		providing an IPC method to stop all MediaProducers -> free all
+//X		devices
+//X		/**
+//X		 * \internal
+//X		 * This is called when the application needs to free the soundcard
+//X		 * device(s).
+//X		 */
+//X		void freeSoundcardDevices();
 };
 } // namespace Phonon
 
diff --git a/kcm/backendselection.cpp b/kcm/backendselection.cpp
index 66286e8..52c2618 100644
--- a/kcm/backendselection.cpp
+++ b/kcm/backendselection.cpp
@@ -20,7 +20,6 @@
 #include "backendselection.h"
 
 #include <kservicetypeprofile.h>
-#include <dcopclient.h>
 #include <kservicetypetrader.h>
 #include <ksimpleconfig.h>
 #include <QStringList>
@@ -28,6 +27,7 @@
 #include <kapplication.h>
 #include <kicon.h>
 #include <QList>
+#include <dbus/qdbus.h>
 
 BackendSelection::BackendSelection( QWidget* parent )
 	: QWidget( parent )
@@ -90,7 +90,9 @@ void BackendSelection::save()
 	config.sync();
 	KServiceTypeProfile::clear();
 
-	kapp->dcopClient()->emitDCOPSignal( "phononBackendChanged()", QByteArray() );
+	QDBusMessage signal = QDBusMessage::signal( "/", "org.kde.Phonon.Factory",
+						    "phononBackendChanged" );
+	QDBus::sessionBus().send(signal);
 }
 
 void BackendSelection::defaults()
diff --git a/mixeradaptor.cpp b/mixeradaptor.cpp
new file mode 100644
index 0000000..3879ff0
--- /dev/null
+++ b/mixeradaptor.cpp
@@ -0,0 +1,70 @@
+/*
+ * This file was generated by dbusidl2cpp version 0.3
+ * when processing input file org.kde.MixerIface.xml
+ *
+ * dbusidl2cpp is Copyright (C) 2006 Trolltech AS. All rights reserved.
+ *
+ * This is an auto-generated file.
+ */
+
+#include "mixeradaptor.h"
+#include <QtCore/QMetaObject>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QVariant>
+
+/*
+ * Implementation of adaptor class MixerIfaceAdaptor
+ */
+
+MixerIfaceAdaptor::MixerIfaceAdaptor(QObject *parent)
+   : QDBusAbstractAdaptor(parent)
+{
+    // constructor
+    setAutoRelaySignals(true);
+}
+
+MixerIfaceAdaptor::~MixerIfaceAdaptor()
+{
+    // destructor
+}
+
+double MixerIfaceAdaptor::volume() const
+{
+    // get the value of property volume
+    return qvariant_cast< double >(object()->property("volume"));
+}
+
+void MixerIfaceAdaptor::setVolume(double value)
+{
+    // set the value of property volume
+    object()->setProperty("volume", value);
+}
+
+QString MixerIfaceAdaptor::categoryName()
+{
+    // handle method call org.kde.Phonon.MixerIface.categoryName
+    QString categoryName;
+    QMetaObject::invokeMethod(object(), "categoryName", Q_RETURN_ARG(QString, categoryName));
+
+    // Alternative:
+    //categoryName = static_cast<YourObjectType *>(object())->categoryName();
+    return categoryName;
+}
+
+QString MixerIfaceAdaptor::name()
+{
+    // handle method call org.kde.Phonon.MixerIface.name
+    QString name;
+    QMetaObject::invokeMethod(object(), "name", Q_RETURN_ARG(QString, name));
+
+    // Alternative:
+    //name = static_cast<YourObjectType *>(object())->name();
+    return name;
+}
+
+
+#include "mixeradaptor.moc"
diff --git a/mixeradaptor.h b/mixeradaptor.h
new file mode 100644
index 0000000..795812b
--- /dev/null
+++ b/mixeradaptor.h
@@ -0,0 +1,55 @@
+/*
+ * This file was generated by dbusidl2cpp version 0.3
+ * when processing input file org.kde.MixerIface.xml
+ *
+ * dbusidl2cpp is Copyright (C) 2006 Trolltech AS. All rights reserved.
+ *
+ * This is an auto-generated file.
+ */
+
+#ifndef MIXERADAPTOR_H_257421146496182
+#define MIXERADAPTOR_H_257421146496182
+
+#include <QtCore/QObject>
+#include <dbus/qdbus.h>
+class QByteArray;
+template<class T> class QList;
+template<class Key, class Value> class QMap;
+class QString;
+class QStringList;
+class QVariant;
+
+/*
+ * Adaptor class for interface org.kde.Phonon.MixerIface
+ */
+class MixerIfaceAdaptor: public QDBusAbstractAdaptor
+{
+    Q_OBJECT
+    Q_CLASSINFO("D-Bus Interface", "org.kde.Phonon.MixerIface")
+    Q_CLASSINFO("D-Bus Introspection", ""
+"  <interface name=\"org.kde.Phonon.MixerIface\" >"
+"    <method name=\"name\" >"
+"      <arg direction=\"out\" type=\"s\" name=\"name\" />"
+"    </method>"
+"    <method name=\"categoryName\" >"
+"      <arg direction=\"out\" type=\"s\" name=\"categoryName\" />"
+"    </method>"
+"    <property access=\"readwrite\" type=\"d\" name=\"volume\" />"
+"  </interface>"
+        "")
+public:
+    MixerIfaceAdaptor(QObject *parent);
+    virtual ~MixerIfaceAdaptor();
+
+public: // PROPERTIES
+   Q_PROPERTY(double volume READ volume WRITE setVolume)
+    double volume() const;
+    void setVolume(double value);
+
+public slots: // METHODS
+    QString categoryName();
+    QString name();
+signals: // SIGNALS
+};
+
+#endif
diff --git a/mixeriface.h b/mixeriface.h
deleted file mode 100644
index c92784a..0000000
--- a/mixeriface.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*  This file is part of the KDE project
-    Copyright (C) 2004-2005 Matthias Kretz <kretz at kde.org>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-    License version 2 as published by the Free Software Foundation.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Library General Public License for more details.
-
-    You should have received a copy of the GNU Library General Public License
-    along with this library; see the file COPYING.LIB.  If not, write to
-    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-    Boston, MA 02110-1301, USA.
-
-*/
-
-#ifndef PHONON_MIXERIFACE_H
-#define PHONON_MIXERIFACE_H
-
-#include <dcopobject.h>
-#include <kdelibs_export.h>
-
-namespace Phonon
-{
-class PHONONCORE_EXPORT MixerIface : public DCOPObject
-{
-	K_DCOP
-	k_dcop:
-		virtual QString name() const = 0;
-		virtual QString categoryName() const = 0;
-		virtual float volume() const = 0;
-		virtual void setVolume( float volume ) = 0;
-
-	protected:
-		MixerIface() : DCOPObject( "MixerIface" ) {}
-};
-} //namespace Phonon
-
-#endif // PHONON_MIXERIFACE_H
-// vim: sw=4 ts=4 noet tw=80
diff --git a/org.kde.Phonon.MixerIface.xml b/org.kde.Phonon.MixerIface.xml
new file mode 100644
index 0000000..2ca1eef
--- /dev/null
+++ b/org.kde.Phonon.MixerIface.xml
@@ -0,0 +1,13 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+         "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node>
+  <interface name="org.kde.Phonon.MixerIface">
+    <method name="name">
+      <arg name="name" type="s" direction="out" />
+    </method>
+    <method name="categoryName">
+      <arg name="categoryName" type="s" direction="out" />
+    </method>
+    <property name = "volume" type="d" access="readwrite" />
+  </interface>
+</node>




More information about the kde-core-devel mailing list