[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: =?utf-8?q?=5Bphonon-vlc=5D_vlc/experimental=3A_Add_stateChanged_?=
From: Casian Andrei <skeletk13 () gmail ! com>
Date: 2011-02-28 21:50:32
Message-ID: 20110228215032.0463DA60E8 () git ! kde ! org
[Download RAW message or body]
Git commit a977bbcdc27b4b935993e432250f81caa23418cf by Casian Andrei.
Committed on 28/02/2011 at 21:49.
Pushed by casianandrei into branch 'master'.
Add stateChanged signal to AvCapture
M +24 -1 vlc/experimental/avcapture.cpp
M +7 -0 vlc/experimental/avcapture.h
http://commits.kde.org/phonon-vlc/a977bbcdc27b4b935993e432250f81caa23418cf
diff --git a/vlc/experimental/avcapture.cpp b/vlc/experimental/avcapture.cpp
index 54d07dd..b3a962c 100644
--- a/vlc/experimental/avcapture.cpp
+++ b/vlc/experimental/avcapture.cpp
@@ -36,7 +36,7 @@ AvCapture::AvCapture(QObject* parent)
m_audioMedia(parent),
m_videoMedia(parent)
{
-
+ m_connectedMO = NULL;
}
AvCapture::~AvCapture()
@@ -80,12 +80,35 @@ void AvCapture::setAudioCaptureDevice(const \
Phonon::AudioCaptureDevice &device) {
m_audioMedia.setSource(device);
m_audioCaptureDevice = device;
+ setupStateChangedSignal();
}
void AvCapture::setVideoCaptureDevice(const Phonon::VideoCaptureDevice &device)
{
m_videoMedia.setSource(device);
m_videoCaptureDevice = device;
+ setupStateChangedSignal();
+}
+
+void AvCapture::setupStateChangedSignal()
+{
+ // Disconnect the old media object state change signal
+ if (m_connectedMO)
+ disconnect(m_connectedMO, SIGNAL(stateChanged(Phonon::State,Phonon::State)), \
this, SIGNAL(stateChanged(Phonon::State,Phonon::State))); +
+ // Determine the media object from which the state change signal will be \
connected + m_connectedMO = NULL;
+ if (m_videoCaptureDevice.isValid()) {
+ m_connectedMO = &m_videoMedia;
+ } else {
+ if (m_audioCaptureDevice.isValid()) {
+ m_connectedMO = &m_audioMedia;
+ }
+ }
+
+ // Connect the state change signal
+ if (m_connectedMO)
+ connect(m_connectedMO, SIGNAL(stateChanged(Phonon::State,Phonon::State)), \
this, SIGNAL(stateChanged(Phonon::State,Phonon::State))); }
} // Experimental namespace
diff --git a/vlc/experimental/avcapture.h b/vlc/experimental/avcapture.h
index cb18f76..14d3b07 100644
--- a/vlc/experimental/avcapture.h
+++ b/vlc/experimental/avcapture.h
@@ -57,11 +57,18 @@ class AvCapture : public QObject, public \
Phonon::Experimental::AvCaptureInterfac MediaObject* audioMediaObject();
MediaObject* videoMediaObject();
+ signals:
+ void stateChanged(Phonon::State newState, Phonon::State oldState);
+
+ private:
+ void setupStateChangedSignal();
+
private:
AudioCaptureDevice m_audioCaptureDevice;
VideoCaptureDevice m_videoCaptureDevice;
MediaObject m_audioMedia;
MediaObject m_videoMedia;
+ MediaObject *m_connectedMO;
};
} // Experimental namespace
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic