1
/* ============================================================
3
* This file is a part of digiKam project
4
* http://www.digikam.org
7
* Description : abstract camera interface class
9
* Copyright (C) 2004-2005 by Renchi Raju <renchi@pooh.tam.uiuc.edu>
10
* Copyright (C) 2006-2011 by Gilles Caulier <caulier dot gilles at gmail dot com>
12
* This program is free software; you can redistribute it
13
* and/or modify it under the terms of the GNU General
14
* Public License as published by the Free Software Foundation;
15
* either version 2, or (at your option)
18
* This program is distributed in the hope that it will be useful,
19
* but WITHOUT ANY WARRANTY; without even the implied warranty of
20
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
* GNU General Public License for more details.
23
* ============================================================ */
35
#include "camiteminfo.h"
58
DKCamera(const QString& title, const QString& model, const QString& port, const QString& path);
63
virtual bool doConnect() = 0;
64
virtual void cancel() = 0;
66
virtual void getAllFolders(const QString& folder, QStringList& subFolderList) = 0;
68
/// If getImageDimensions is false, the camera shall set width and height to -1
69
/// if the values are not immediately available
70
virtual bool getItemsInfoList(const QString& folder, bool useMetadata, CamItemInfoList& infoList) = 0;
71
virtual void getItemInfo(const QString& folder, const QString& itemName, CamItemInfo& info, bool useMetadata) = 0;
73
virtual bool getThumbnail(const QString& folder, const QString& itemName, QImage& thumbnail) = 0;
74
virtual bool getMetadata(const QString& folder, const QString& itemName, DMetadata& meta) = 0;
76
virtual bool getPreview(QImage& preview) = 0;
77
virtual bool capture(CamItemInfo& itemInfo) = 0;
79
virtual bool downloadItem(const QString& folder, const QString& itemName, const QString& saveFile) = 0;
80
virtual bool deleteItem(const QString& folder, const QString& itemName) = 0;
81
virtual bool uploadItem(const QString& folder, const QString& itemName, const QString& localFile, CamItemInfo& itemInfo) = 0;
82
virtual bool cameraSummary(QString& summary) = 0;
83
virtual bool cameraManual(QString& manual) = 0;
84
virtual bool cameraAbout(QString& about) = 0;
86
virtual bool setLockItem(const QString& folder, const QString& itemName, bool lock) = 0;
88
virtual DKCamera::CameraDriverType cameraDriverType() = 0;
90
virtual bool getFreeSpace(unsigned long& kBSize, unsigned long& kBAvail) = 0;
92
virtual QByteArray cameraMD5ID() = 0;
96
QString title() const;
97
QString model() const;
100
QString uuid() const;
102
bool thumbnailSupport() const;
103
bool deleteSupport() const;
104
bool uploadSupport() const;
105
bool mkDirSupport() const;
106
bool delDirSupport() const;
107
bool captureImageSupport() const;
109
QString mimeType(const QString& fileext) const;
113
void fillItemInfoFromMetadata(CamItemInfo& item, const DMetadata& meta) const;
117
bool m_thumbnailSupport;
118
bool m_deleteSupport;
119
bool m_uploadSupport;
121
bool m_delDirSupport;
122
bool m_captureImageSupport;
124
QString m_imageFilter;
125
QString m_movieFilter;
126
QString m_audioFilter;
136
} // namespace Digikam
138
#endif /* DKCAMERA_H */