digiKam
Loading...
Searching...
No Matches
dkcamera.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2004-12-21
7 * Description : abstract camera interface class
8 *
9 * SPDX-FileCopyrightText: 2004-2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2006-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QImage>
21#include <QString>
22#include <QStringList>
23#include <QByteArray>
24
25// Local includes
26
27#include "camiteminfo.h"
28
29namespace Digikam
30{
31
32class DMetadata;
33
34class DKCamera : public QObject
35{
36 Q_OBJECT
37
38public:
39
45
46public:
47
48 explicit DKCamera(const QString& title, const QString& model, const QString& port, const QString& path);
49 ~DKCamera() override = default;
50
51public:
52
53 virtual bool doConnect() = 0;
54 virtual void cancel() = 0;
55
56 virtual bool getFolders(const QString& folder) = 0;
57
60 virtual bool getItemsInfoList(const QString& folder, bool useMetadata, CamItemInfoList& infoList) = 0;
61 virtual void getItemInfo(const QString& folder, const QString& itemName, CamItemInfo& info, bool useMetadata) = 0;
62 virtual bool getThumbnail(const QString& folder, const QString& itemName, QImage& thumbnail) = 0;
63 virtual bool getMetadata(const QString& folder, const QString& itemName, DMetadata& meta) = 0;
64 virtual bool getFreeSpace(qint64& bytesSize, qint64& bytesAvail) = 0;
65 virtual bool getPreview(QImage& preview) = 0;
66
67 virtual bool capture(CamItemInfo& itemInfo) = 0;
68
69 virtual bool downloadItem(const QString& folder, const QString& itemName, const QString& saveFile) = 0;
70 virtual bool deleteItem(const QString& folder, const QString& itemName) = 0;
71 virtual bool uploadItem(const QString& folder, const QString& itemName,
72 const QString& localFile, CamItemInfo& itemInfo) = 0;
73 virtual bool cameraSummary(QString& summary) = 0;
74 virtual bool cameraManual(QString& manual) = 0;
75 virtual bool cameraAbout(QString& about) = 0;
76
77 virtual bool setLockItem(const QString& folder, const QString& itemName, bool lock) = 0;
78
80 virtual QByteArray cameraMD5ID() = 0;
81
82public:
83
84 QString title() const;
85 QString model() const;
86 QString port() const;
87 QString path() const;
88 QString uuid() const;
89
90 bool thumbnailSupport() const;
91 bool deleteSupport() const;
92 bool uploadSupport() const;
93 bool mkDirSupport() const;
94 bool delDirSupport() const;
95 bool captureImageSupport() const;
96 bool captureImagePreviewSupport() const;
97
98 QString mimeType(const QString& fileext) const;
99
101
102protected:
103
104 void fillItemInfoFromMetadata(CamItemInfo& item, const DMetadata& meta) const;
105
106protected:
107
108 bool m_thumbnailSupport = false;
109 bool m_deleteSupport = false;
110 bool m_uploadSupport = false;
111 bool m_mkDirSupport = false;
112 bool m_delDirSupport = false;
115
119 QString m_rawFilter;
120
121 QString m_model;
122 QString m_port;
123 QString m_path;
124 QString m_title;
125 QString m_uuid;
126
127Q_SIGNALS:
128
129 void signalFolderList(const QStringList&);
130
131private:
132
133 // Disable
134 DKCamera(QObject*) = delete;
135};
136
137} // namespace Digikam
Definition camiteminfo.h:39
Definition dkcamera.h:35
virtual bool setLockItem(const QString &folder, const QString &itemName, bool lock)=0
bool thumbnailSupport() const
Definition dkcamera.cpp:81
QString mimeType(const QString &fileext) const
Definition dkcamera.cpp:116
bool captureImagePreviewSupport() const
Definition dkcamera.cpp:111
QString m_audioFilter
Definition dkcamera.h:118
CameraDriverType
Definition dkcamera.h:41
@ GPhotoDriver
Definition dkcamera.h:42
@ UMSDriver
Definition dkcamera.h:43
virtual bool cameraSummary(QString &summary)=0
QString m_movieFilter
Definition dkcamera.h:117
QString m_path
Definition dkcamera.h:123
virtual void cancel()=0
QString path() const
Definition dkcamera.cpp:71
virtual bool uploadItem(const QString &folder, const QString &itemName, const QString &localFile, CamItemInfo &itemInfo)=0
virtual void getItemInfo(const QString &folder, const QString &itemName, CamItemInfo &info, bool useMetadata)=0
virtual bool getFolders(const QString &folder)=0
bool mkDirSupport() const
Definition dkcamera.cpp:96
virtual bool getMetadata(const QString &folder, const QString &itemName, DMetadata &meta)=0
bool uploadSupport() const
Definition dkcamera.cpp:91
QString m_imageFilter
Definition dkcamera.h:116
virtual DKCamera::CameraDriverType cameraDriverType()=0
virtual bool doConnect()=0
virtual QByteArray cameraMD5ID()=0
bool delDirSupport() const
Definition dkcamera.cpp:101
virtual bool deleteItem(const QString &folder, const QString &itemName)=0
QString uuid() const
Definition dkcamera.cpp:76
virtual bool getFreeSpace(qint64 &bytesSize, qint64 &bytesAvail)=0
bool captureImageSupport() const
Definition dkcamera.cpp:106
virtual bool getItemsInfoList(const QString &folder, bool useMetadata, CamItemInfoList &infoList)=0
If getImageDimensions is false, the camera shall set width and height to -1 if the values are not imm...
virtual bool cameraAbout(QString &about)=0
bool m_captureImageSupport
Definition dkcamera.h:113
~DKCamera() override=default
void printSupportedFeatures()
Definition dkcamera.cpp:174
QString m_uuid
Definition dkcamera.h:125
bool deleteSupport() const
Definition dkcamera.cpp:86
bool m_mkDirSupport
Definition dkcamera.h:111
void fillItemInfoFromMetadata(CamItemInfo &item, const DMetadata &meta) const
Definition dkcamera.cpp:157
void signalFolderList(const QStringList &)
virtual bool getThumbnail(const QString &folder, const QString &itemName, QImage &thumbnail)=0
bool m_delDirSupport
Definition dkcamera.h:112
QString title() const
Definition dkcamera.cpp:45
bool m_captureImagePreviewSupport
Definition dkcamera.h:114
QString port() const
Definition dkcamera.cpp:55
bool m_uploadSupport
Definition dkcamera.h:110
bool m_thumbnailSupport
Definition dkcamera.h:108
bool m_deleteSupport
Definition dkcamera.h:109
virtual bool capture(CamItemInfo &itemInfo)=0
QString m_rawFilter
Definition dkcamera.h:119
QString m_title
Definition dkcamera.h:124
virtual bool cameraManual(QString &manual)=0
QString model() const
Definition dkcamera.cpp:50
QString m_port
Definition dkcamera.h:122
virtual bool getPreview(QImage &preview)=0
virtual bool downloadItem(const QString &folder, const QString &itemName, const QString &saveFile)=0
QString m_model
Definition dkcamera.h:121
Definition dmetadata.h:46
Definition datefolderview.cpp:34
QList< CamItemInfo > CamItemInfoList
Definition camiteminfo.h:116