[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    =?utf-8?q?=5Bphonon=5D_/=3A_Add_new_capture_device_setters_for_M?=
From:       Casian Andrei <skeletk13 () gmail ! com>
Date:       2011-02-28 22:23:22
Message-ID: 20110228222322.E839DA60C9 () git ! kde ! org
[Download RAW message or body]

Git commit 0a68f1507ea11bee89891db4c72b24df847c3570 by Casian Andrei.
Committed on 28/02/2011 at 23:17.
Pushed by casianandrei into branch 'master'.

Add new capture device setters for MediaSource

M  +3    -5    demos/simplecapture/capture.cpp     
M  +41   -20   phonon/mediasource.cpp     
M  +20   -0    phonon/mediasource.h     

http://commits.kde.org/phonon/0a68f1507ea11bee89891db4c72b24df847c3570

diff --git a/demos/simplecapture/capture.cpp b/demos/simplecapture/capture.cpp
index a84df6e..1c6266e 100644
--- a/demos/simplecapture/capture.cpp
+++ b/demos/simplecapture/capture.cpp
@@ -33,9 +33,6 @@
 #include <phonon/VideoWidget>
 #include <phonon/VolumeSlider>
 
-#include <phonon/backendcapabilities.h>
-#include <phonon/globalconfig.h>
-
 CaptureWidget::CaptureWidget(QWidget* parent, Qt::WindowFlags f): QWidget(parent, f)
 {
     m_media = new Phonon::MediaObject(this);
@@ -131,8 +128,9 @@ void CaptureWidget::setupCaptureSource()
     }
 
     if (m_captureNode == m_media) {
-        Phonon::GlobalConfig pgc;
-        m_media->setCurrentSource(Phonon::VideoCaptureDevice::fromIndex(pgc.videoCaptureDeviceFor(Phonon::NoCategory)));
 +        Phonon::MediaSource source;
+        source.setVideoCaptureDevice(Phonon::NoCategory);
+        m_media->setCurrentSource(source);
     }
     if (m_captureNode == m_avcapture) {
         m_avcapture->setVideoCaptureDevice(Phonon::NoCategory);
diff --git a/phonon/mediasource.cpp b/phonon/mediasource.cpp
index acc323d..a089a07 100644
--- a/phonon/mediasource.cpp
+++ b/phonon/mediasource.cpp
@@ -24,6 +24,7 @@
 #include "mediasource_p.h"
 #include "iodevicestream_p.h"
 #include "abstractmediastream_p.h"
+#include "globalconfig.h"
 
 #include <QtCore/QFileInfo>
 #include <QtCore/QFile>
@@ -112,16 +113,7 @@ MediaSource::MediaSource(const DeviceAccess &access)
 MediaSource::MediaSource(const Phonon::AudioCaptureDevice& acDevice)
     : d(new MediaSourcePrivate(CaptureDevice))
 {
-    d->audioCaptureDevice = acDevice;
-
-    // Grab the device access list from the properties
-    if (acDevice.propertyNames().contains("deviceAccessList") &&
-        !acDevice.property("deviceAccessList").value<DeviceAccessList>().isEmpty()) \
                {
-        d->deviceAccessList = \
                acDevice.property("deviceAccessList").value<DeviceAccessList>();
-    } else {
-        // Invalidate the media source
-        d->type = Invalid;
-    }
+    setAudioCaptureDevice(acDevice);
 }
 #endif //PHONON_NO_AUDIOCAPTURE
 
@@ -129,16 +121,7 @@ MediaSource::MediaSource(const Phonon::AudioCaptureDevice& \
acDevice)  MediaSource::MediaSource(const Phonon::VideoCaptureDevice& vcDevice)
     : d(new MediaSourcePrivate(CaptureDevice))
 {
-    d->videoCaptureDevice = vcDevice;
-
-    // Grab the device access list from the properties
-    if (vcDevice.propertyNames().contains("deviceAccessList") &&
-        !vcDevice.property("deviceAccessList").value<DeviceAccessList>().isEmpty()) \
                {
-        d->deviceAccessList = \
                vcDevice.property("deviceAccessList").value<DeviceAccessList>();
-    } else {
-        // Invalidate the media source
-        d->type = Invalid;
-    }
+    setVideoCaptureDevice(vcDevice);
 }
 #endif //PHONON_NO_VIDEOCAPTURE
 
@@ -277,6 +260,25 @@ AudioCaptureDevice MediaSource::audioCaptureDevice() const
 {
     return d->audioCaptureDevice;
 }
+
+void MediaSource::setAudioCaptureDevice(const Phonon::AudioCaptureDevice& acDevice)
+{
+    d->audioCaptureDevice = acDevice;
+
+    // Grab the device access list from the properties
+    if (acDevice.propertyNames().contains("deviceAccessList") &&
+        !acDevice.property("deviceAccessList").value<DeviceAccessList>().isEmpty()) \
{ +        d->deviceAccessList = \
acDevice.property("deviceAccessList").value<DeviceAccessList>(); +    } else {
+        // Invalidate the media source
+        d->type = Invalid;
+    }
+}
+
+void MediaSource::setAudioCaptureDevice(Category category)
+{
+    setAudioCaptureDevice(AudioCaptureDevice::fromIndex(GlobalConfig().audioCaptureDeviceFor(category)));
 +}
 #endif //PHONON_NO_AUDIOCAPTURE
 
 #ifndef PHONON_NO_VIDEOCAPTURE
@@ -284,6 +286,25 @@ VideoCaptureDevice MediaSource::videoCaptureDevice() const
 {
     return d->videoCaptureDevice;
 }
+
+void MediaSource::setVideoCaptureDevice(const Phonon::VideoCaptureDevice& vcDevice)
+{
+    d->videoCaptureDevice = vcDevice;
+
+    // Grab the device access list from the properties
+    if (vcDevice.propertyNames().contains("deviceAccessList") &&
+        !vcDevice.property("deviceAccessList").value<DeviceAccessList>().isEmpty()) \
{ +        d->deviceAccessList = \
vcDevice.property("deviceAccessList").value<DeviceAccessList>(); +    } else {
+        // Invalidate the media source
+        d->type = Invalid;
+    }
+}
+
+void MediaSource::setVideoCaptureDevice(Category category)
+{
+    setVideoCaptureDevice(VideoCaptureDevice::fromIndex(GlobalConfig().videoCaptureDeviceFor(category)));
 +}
 #endif //PHONON_NO_VIDEOCAPTURE
 
 } // namespace Phonon
diff --git a/phonon/mediasource.h b/phonon/mediasource.h
index b8b79fa..4af04c0 100644
--- a/phonon/mediasource.h
+++ b/phonon/mediasource.h
@@ -281,6 +281,16 @@ class PHONON_EXPORT MediaSource
          * Returns the audio capture device for the media source if applicable.
          */
         AudioCaptureDevice audioCaptureDevice() const;
+
+        /**
+         * Sets the source to the specified audio capture device
+         */
+        void setAudioCaptureDevice(const Phonon::AudioCaptureDevice& acDevice);
+
+        /**
+         * Sets the source to the preferred audio capture device for the specified \
category +         */
+        void setAudioCaptureDevice(Phonon::Category category);
 #endif
 
 #ifndef PHONON_NO_VIDEOCAPTURE
@@ -288,6 +298,16 @@ class PHONON_EXPORT MediaSource
          * Returns the video capture device for the media source if applicable.
          */
         VideoCaptureDevice videoCaptureDevice() const;
+
+        /**
+         * Sets the source to the specified video capture device
+         */
+        void setVideoCaptureDevice(const Phonon::VideoCaptureDevice& vcDevice);
+
+        /**
+         * Sets the source to the preferred audio capture device for the specified \
category +         */
+        void setVideoCaptureDevice(Phonon::Category category);
 #endif
 
 /*      post 4.0:


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic