diff --git a/src/FlightDisplay/VideoManager.cc b/src/FlightDisplay/VideoManager.cc index e2cf39875c77b7f110c09279be3a07d3c5f223ba..c5c858b593b70ce591dc2f21ccb21d4b39b2b94a 100644 --- a/src/FlightDisplay/VideoManager.cc +++ b/src/FlightDisplay/VideoManager.cc @@ -56,6 +56,7 @@ VideoManager::setToolbox(QGCToolbox *toolbox) _videoSettings = toolbox->settingsManager()->videoSettings(); QString videoSource = _videoSettings->videoSource()->rawValue().toString(); + connect(_videoSettings->videoSource(), &Fact::rawValueChanged, this, &VideoManager::_videoSourceChanged); #if defined(QGC_GST_STREAMING) #ifndef QGC_DISABLE_UVC @@ -91,6 +92,12 @@ VideoManager::setToolbox(QGCToolbox *toolbox) #endif } +void VideoManager::_videoSourceChanged(void) +{ + emit hasVideoChanged(); + emit isGStreamerChanged(); +} + //----------------------------------------------------------------------------- bool VideoManager::hasVideo() diff --git a/src/FlightDisplay/VideoManager.h b/src/FlightDisplay/VideoManager.h index f96f1acb09731a2bfe92525d0764cb77d8a0ebc4..aaffec22e3c3cb52ad18d5fefc512273cd103c2a 100644 --- a/src/FlightDisplay/VideoManager.h +++ b/src/FlightDisplay/VideoManager.h @@ -67,11 +67,13 @@ signals: void isGStreamerChanged (); void videoSourceIDChanged (); +private slots: + void _videoSourceChanged(void); + private: void _updateTimer (); void _updateVideo (); -private: VideoSurface* _videoSurface; VideoReceiver* _videoReceiver; bool _videoRunning;