[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