- Qt 5.15
- Qt Multimedia
- C++ Classes
- QCameraControl
- Qt 5.15.17 Reference Documentation

# QCameraControl Class

The QCameraControl class is an abstract base class for classes that control still cameras or video cameras. More...

Header: | #include <QCameraControl>
qmake: | QT += multimedia
Inherits: | QMediaControl

This class is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.

- List of all members, including inherited members

## Public Types

enum | PropertyChangeType { CaptureMode, ImageEncodingSettings, VideoEncodingSettings, Viewfinder, ViewfinderSettings }

## Public Functions

virtual | ~QCameraControl()
virtual bool | canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const = 0
virtual QCamera::CaptureModes | captureMode() const = 0
virtual bool | isCaptureModeSupported(QCamera::CaptureModes mode) const = 0
virtual void | setCaptureMode(QCamera::CaptureModes mode) = 0
virtual void | setState(QCamera::State state) = 0
virtual QCamera::State | state() const = 0
virtual QCamera::Status | status() const = 0

## Signals

void | captureModeChanged(QCamera::CaptureModes mode)
void | error(int error, const QString &errorString)
void | stateChanged(QCamera::State state)
void | statusChanged(QCamera::Status status)

## Protected Functions

| QCameraControl(QObject *parent = nullptr)

## Macros

| QCameraControl_iid

## Detailed Description

This service is provided by a QMediaService object via QMediaService::control(). It is used by QCamera.

The interface name of QCameraControl is `org.qt-project.qt.cameracontrol/5.0` as defined in QCameraControl_iid.

See also QMediaService::requestControl() and QCamera.

## Member Type Documentation

### enum QCameraControl::PropertyChangeType

Constant | Value | Description
--- | --- | ---
`QCameraControl::CaptureMode` | `1` | Indicates the capture mode is changed.
`QCameraControl::ImageEncodingSettings` | `2` | Image encoder settings are changed, including resolution.
`QCameraControl::VideoEncodingSettings` | `3` | Video encoder settings are changed, including audio, video and container settings.
`QCameraControl::Viewfinder` | `4` | Viewfinder is changed.
`QCameraControl::ViewfinderSettings` | `5` | Viewfinder settings are changed.

## Member Function Documentation

### `[protected]` QCameraControl::QCameraControl(QObject *parent = nullptr)

Constructs a camera control object with parent.

### `[signal]` void QCameraControl::captureModeChanged(QCamera::CaptureModes mode)

Signal emitted when the camera capture mode changes.

### `[signal]` void QCameraControl::error(int error, const QString &errorString)

Signal emitted when an error occurs with error code error and a description of the error errorString.

### `[signal]` void QCameraControl::stateChanged(QCamera::State state)

Signal emitted when the camera state changes.

In most cases the state chage is caused by QCameraControl::setState(), but if critical error has occurred the state changes to QCamera::UnloadedState.

### `[signal]` void QCameraControl::statusChanged(QCamera::Status status)

Signal emitted when the camera status changes.

### `[virtual]` QCameraControl::~QCameraControl()

Destruct the camera control object.

### `[pure virtual]` bool QCameraControl::canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const

Returns true if backend can effectively apply changing camera properties of changeType type while the camera state is QCamera::Active and camera status matches status parameter.

If backend doesn't support applying this change in the active state, it will be stopped before the settings are changed and restarted after. Otherwise the backend should apply the change in the current state, with the camera status indicating the progress, if necessary.

### `[pure virtual]` QCamera::CaptureModes QCameraControl::captureMode() const

Returns the current capture mode.

See also setCaptureMode().

### `[pure virtual]` bool QCameraControl::isCaptureModeSupported(QCamera::CaptureModes mode) const

Returns true if the capture mode is suported.

### `[pure virtual]` void QCameraControl::setCaptureMode(QCamera::CaptureModes mode)

Sets the current capture mode.

The capture mode changes are synchronous and allowed in any camera state.

If the capture mode is changed while camera is active, it's recommended to change status to QCamera::LoadedStatus and start activating the camera in the next event loop with the status changed to QCamera::StartingStatus. This allows the capture settings to be applied before camera is started. Than change the status to QCamera::StartedStatus when the capture mode change is done.

See also captureMode().

### `[pure virtual]` void QCameraControl::setState(QCamera::State state)

Sets the camera state.

State changes are synchronous and indicate user intention, while camera status is used as a feedback mechanism to inform application about backend status. Status changes are reported asynchronously with QCameraControl::statusChanged() signal.

See also state() and QCamera::State.

### `[pure virtual]` QCamera::State QCameraControl::state() const

Returns the state of the camera service.

See also setState() and QCamera::state.

### `[pure virtual]` QCamera::Status QCameraControl::status() const

Returns the status of the camera service.

See also QCamera::state.

## Macro Documentation

### QCameraControl_iid

`org.qt-project.qt.cameracontrol/5.0`

Defines the interface name of the QCameraControl class.