1/*
2 SPDX-FileCopyrightText: 2006 Kevin Ottens <ervin@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5*/
6
7#ifndef SOLID_IFACES_CAMERA_H
8#define SOLID_IFACES_CAMERA_H
9
10#include <solid/devices/ifaces/deviceinterface.h>
11
12#include <QStringList>
13
14namespace Solid
15{
16namespace Ifaces
17{
18/**
19 * This device interface is available on digital camera devices.
20 *
21 * A digital camera is a device used to transform images into
22 * data. Nowaday most digital cameras are multifunctional and
23 * able to take photographs, video or sound. On the system side
24 * they are a particular type of device holding data, the access
25 * method can be different from the typical storage device, hence
26 * why it's a separate device interface.
27 */
28class Camera : virtual public DeviceInterface
29{
30public:
31 /**
32 * Destroys a Camera object.
33 */
34 ~Camera() override;
35
36 /**
37 * Retrieves known protocols this device can speak. This list may be dependent
38 * on installed device driver libraries.
39 *
40 * @return a list of known protocols this device can speak
41 */
42 virtual QStringList supportedProtocols() const = 0;
43
44 /**
45 * Retrieves known installed device drivers that claim to handle this device
46 * using the requested protocol.
47 *
48 * @param protocol The protocol to get drivers for.
49 * @return a list of known device drivers that can handle this device
50 */
51 virtual QStringList supportedDrivers(QString protocol = QString()) const = 0;
52
53 /**
54 * Retrieves a driver specific string allowing to access the device.
55 *
56 * For example for the "gphoto" driver it will return a list of the
57 * form '("usb", vendor_id, product_id)'.
58 *
59 * @return the driver specific data
60 */
61 virtual QVariant driverHandle(const QString &driver) const = 0;
62};
63}
64}
65
66Q_DECLARE_INTERFACE(Solid::Ifaces::Camera, "org.kde.Solid.Ifaces.Camera/0.1")
67
68#endif
69

source code of solid/src/solid/devices/ifaces/camera.h