From kde-commits Mon Feb 28 22:23:22 2011 From: Casian Andrei Date: Mon, 28 Feb 2011 22:23:22 +0000 To: kde-commits Subject: =?utf-8?q?=5Bphonon=5D_/=3A_Add_new_capture_device_setters_for_M?= Message-Id: <20110228222322.E839DA60C9 () git ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=129893185722650 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 #include -#include -#include - 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 #include @@ -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().isEmpty()) { - d->deviceAccessList = acDevice.property("deviceAccessList").value(); - } 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().isEmpty()) { - d->deviceAccessList = vcDevice.property("deviceAccessList").value(); - } 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().isEmpty()) { + d->deviceAccessList = acDevice.property("deviceAccessList").value(); + } 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().isEmpty()) { + d->deviceAccessList = vcDevice.property("deviceAccessList").value(); + } 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: