3#include <QtCore/QElapsedTimer>
5#include <QtCore/QObject>
6#include <QtCore/QPointer>
7#include <QtCore/QTimer>
8#include <QtCore/QVariantList>
9#include <QtQmlIntegration/QtQmlIntegration>
19class QGCCameraManagerTest;
30 Q_MOC_INCLUDE(
"Joystick.h")
31 Q_MOC_INCLUDE(
"MavlinkCameraControlInterface.h")
39#ifdef QGC_UNITTEST_BUILD
40 friend class QGCCameraManagerTest;
84 int _zoomValueCurrent = 0;
113 void _initialConnectCompleted();
114 void _setCurrentZoomLevel(
int level);
134 QPointer<SimulatedCameraControl> _simulatedCameraControl;
135 QPointer<Joystick> _activeJoystick;
136 bool _vehicleReadyState =
false;
137 int _currentTask = 0;
139 QStringList _cameraLabels;
140 int _currentCameraIndex = 0;
141 QElapsedTimer _lastZoomChange;
142 QElapsedTimer _lastFocusChange;
143 QElapsedTimer _lastCameraChange;
144 QTimer _camerasLostHeartbeatTimer;
145 QMap<QString, CameraStruct*> _cameraInfoRequest;
146 static QVariantList _cameraList;
147 bool _initialConnectComplete =
false;
149 QHash<int, double> _aspectByCompId;
struct __mavlink_message mavlink_message_t
Abstract base class for all camera controls: real and simulated.
void currentZoomLevelChanged()
void setCurrentCamera(int sel)
void _vehicleReady(bool ready)
void _checkForLostCameras()
const QVariantList & cameraList() const
Q_INVOKABLE void requestCameraFovForComp(int compId)
QmlObjectListModel * cameras()
void cameraLabelsChanged()
MavlinkCameraControlInterface * currentCameraInstance()
QGCVideoStreamInfo * currentStreamInstance()
void _stepZoom(int direction)
void _startZoom(int direction)
void _startVideoRecording()
double aspectForComp(int compId) const
double currentCameraAspect()
QGCVideoStreamInfo * thermalStreamInstance()
Vehicle * vehicle() const
void _toggleVideoRecording()
void _mavlinkMessageReceived(const mavlink_message_t &message)
void currentCameraChanged()
void _stepFocus(int direction)
CameraStruct * findCameraStruct(uint8_t compId) const
int currentZoomLevel() const
void _stepCamera(int direction)
void _activeJoystickChanged(Joystick *joystick)
const QmlObjectListModel * cameras() const
void _stepStream(int direction)
void _startFocus(int direction)
QStringList cameraLabels() const
void _stopVideoRecording()
int currentCamera() const
Encapsulates the contents of a VIDEO_STREAM_INFORMATION message.
Creates a simulated Camera Control which supports:
QElapsedTimer lastHeartbeat
Vehicle * vehicle
Raw pointer is safe: CameraStruct is owned by QGCCameraManager which is a child of Vehicle.
QPointer< QGCCameraManager > manager