/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the test suite of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:GPL-EXCEPT$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 as published by the Free Software ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef MOCKCAMERASERVICE_H #define MOCKCAMERASERVICE_H #include "qmediaservice.h" #include "../qmultimedia_common/mockcameraflashcontrol.h" #include "../qmultimedia_common/mockcameralockscontrol.h" #include "../qmultimedia_common/mockcamerafocuscontrol.h" #include "../qmultimedia_common/mockcamerazoomcontrol.h" #include "../qmultimedia_common/mockcameraimageprocessingcontrol.h" #include "../qmultimedia_common/mockcameraimagecapturecontrol.h" #include "../qmultimedia_common/mockcameraexposurecontrol.h" #include "../qmultimedia_common/mockcameracapturedestinationcontrol.h" #include "../qmultimedia_common/mockcameracapturebuffercontrol.h" #include "../qmultimedia_common/mockimageencodercontrol.h" #include "../qmultimedia_common/mockcameracontrol.h" #include "../qmultimedia_common/mockvideosurface.h" #include "../qmultimedia_common/mockvideorenderercontrol.h" #include "../qmultimedia_common/mockvideowindowcontrol.h" #include "../qmultimedia_common/mockvideodeviceselectorcontrol.h" #include "../qmultimedia_common/mockcamerainfocontrol.h" #include "../qmultimedia_common/mockcameraviewfindersettingscontrol.h" class MockSimpleCameraService : public QMediaService { Q_OBJECT public: MockSimpleCameraService(): QMediaService(0) { mockControl = new MockCameraControl(this); } ~MockSimpleCameraService() { } QMediaControl* requestControl(const char *iid) { if (qstrcmp(iid, QCameraControl_iid) == 0) return mockControl; return 0; } void releaseControl(QMediaControl*) {} MockCameraControl *mockControl; }; class MockCameraService : public QMediaService { Q_OBJECT public: MockCameraService(): QMediaService(0) { mockControl = new MockCameraControl(this); mockLocksControl = new MockCameraLocksControl(this); mockExposureControl = new MockCameraExposureControl(this); mockFlashControl = new MockCameraFlashControl(this); mockFocusControl = new MockCameraFocusControl(this); mockZoomControl = new MockCameraZoomControl(this); mockCaptureControl = new MockCaptureControl(mockControl, this); mockCaptureBufferControl = new MockCaptureBufferFormatControl(this); mockCaptureDestinationControl = new MockCaptureDestinationControl(this); mockImageProcessingControl = new MockImageProcessingControl(this); mockImageEncoderControl = new MockImageEncoderControl(this); rendererControl = new MockVideoRendererControl(this); windowControl = new MockVideoWindowControl(this); mockVideoDeviceSelectorControl = new MockVideoDeviceSelectorControl(this); mockCameraInfoControl = new MockCameraInfoControl(this); mockViewfinderSettingsControl = new MockCameraViewfinderSettingsControl(this); rendererRef = 0; windowRef = 0; } ~MockCameraService() { } QMediaControl* requestControl(const char *iid) { if (qstrcmp(iid, QCameraControl_iid) == 0) return mockControl; if (qstrcmp(iid, QCameraLocksControl_iid) == 0) return mockLocksControl; if (qstrcmp(iid, QCameraExposureControl_iid) == 0) return mockExposureControl; if (qstrcmp(iid, QCameraFlashControl_iid) == 0) return mockFlashControl; if (qstrcmp(iid, QCameraFocusControl_iid) == 0) return mockFocusControl; if (qstrcmp(iid, QCameraZoomControl_iid) == 0) return mockZoomControl; if (qstrcmp(iid, QCameraImageCaptureControl_iid) == 0) return mockCaptureControl; if (qstrcmp(iid, QCameraCaptureBufferFormatControl_iid) == 0) return mockCaptureBufferControl; if (qstrcmp(iid, QCameraCaptureDestinationControl_iid) == 0) return mockCaptureDestinationControl; if (qstrcmp(iid, QCameraImageProcessingControl_iid) == 0) return mockImageProcessingControl; if (qstrcmp(iid, QImageEncoderControl_iid) == 0) return mockImageEncoderControl; if (qstrcmp(iid, QVideoDeviceSelectorControl_iid) == 0) return mockVideoDeviceSelectorControl; if (qstrcmp(iid, QCameraInfoControl_iid) == 0) return mockCameraInfoControl; if (qstrcmp(iid, QVideoRendererControl_iid) == 0) { if (rendererRef == 0) { rendererRef += 1; return rendererControl; } } if (qstrcmp(iid, QVideoWindowControl_iid) == 0) { if (windowRef == 0) { windowRef += 1; return windowControl; } } if (qstrcmp(iid, QCameraViewfinderSettingsControl2_iid) == 0) { return mockViewfinderSettingsControl; } return 0; } void releaseControl(QMediaControl *control) { if (control == rendererControl) rendererRef -= 1; if (control == windowControl) windowRef -= 1; } MockCameraControl *mockControl; MockCameraLocksControl *mockLocksControl; MockCaptureControl *mockCaptureControl; MockCaptureBufferFormatControl *mockCaptureBufferControl; MockCaptureDestinationControl *mockCaptureDestinationControl; MockCameraExposureControl *mockExposureControl; MockCameraFlashControl *mockFlashControl; MockCameraFocusControl *mockFocusControl; MockCameraZoomControl *mockZoomControl; MockImageProcessingControl *mockImageProcessingControl; MockImageEncoderControl *mockImageEncoderControl; MockVideoRendererControl *rendererControl; MockVideoWindowControl *windowControl; MockVideoDeviceSelectorControl *mockVideoDeviceSelectorControl; MockCameraInfoControl *mockCameraInfoControl; MockCameraViewfinderSettingsControl *mockViewfinderSettingsControl; int rendererRef; int windowRef; }; #endif // MOCKCAMERASERVICE_H