1
/* ============================================================
3
* This file is a part of digiKam project
4
* http://www.digikam.org
7
* Description : digital camera controller
9
* Copyright (C) 2004-2005 by Renchi Raju <renchi@pooh.tam.uiuc.edu>
10
* Copyright (C) 2006-2012 by Gilles Caulier <caulier dot gilles at gmail dot com>
11
* Copyright (C) 2006-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
13
* This program is free software; you can redistribute it
14
* and/or modify it under the terms of the GNU General
15
* Public License as published by the Free Software Foundation;
16
* either version 2, or (at your option)
19
* This program is distributed in the hope that it will be useful,
20
* but WITHOUT ANY WARRANTY; without even the implied warranty of
21
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22
* GNU General Public License for more details.
24
* ============================================================ */
26
#ifndef CAMERACONTROLLER_H
27
#define CAMERACONTROLLER_H
34
#include <QCustomEvent>
39
#include "downloadsettings.h"
40
#include "camiteminfo.h"
41
#include "dmetadata.h"
43
#include "dhistoryview.h"
51
class CameraController : public QThread
57
CameraController(QWidget* parent, const QString& title, const QString& model,
58
const QString& port, const QString& path);
61
bool cameraThumbnailSupport() const;
62
bool cameraDeleteSupport() const;
63
bool cameraUploadSupport() const;
64
bool cameraMkDirSupport() const;
65
bool cameraDelDirSupport() const;
66
bool cameraCaptureImageSupport() const;
68
QString cameraPath() const;
69
QString cameraTitle() const;
71
DKCamera::CameraDriverType cameraDriverType() const;
73
QByteArray cameraMD5ID() const;
77
void listFiles(const QString& folder, bool useMetadata);
79
void getMetadata(const QString& folder, const QString& file);
80
void getCameraInformation();
83
/** Get thumbnails for a list of camera items plus advanced information from metadata.
85
void getThumbsInfo(const CamItemInfoList& infoList);
88
void download(const DownloadSettings& downloadSettings);
89
void download(const DownloadSettingsList& list);
90
void upload(const QFileInfo& srcFileInfo, const QString& destFile, const QString& destFolder);
91
void deleteFile(const QString& folder, const QString& file);
92
void lockFile(const QString& folder, const QString& file, bool lock);
93
void openFile(const QString& folder, const QString& file);
95
QPixmap mimeTypeThumbnail(const QString& itemName) const;
99
void signalBusy(bool val);
100
void signalLogMsg(const QString& msg, DHistoryView::EntryType type, const QString& folder, const QString& file);
101
void signalCameraInformation(const QString& summary, const QString& manual,
102
const QString& about);
103
void signalFreeSpace(unsigned long kBSize, unsigned long kBAvail);
104
void signalPreview(const QImage& preview);
106
void signalConnected(bool val);
107
void signalFolderList(const QStringList& folderList);
108
void signalFileList(const CamItemInfoList& infoList);
109
void signalUploaded(const CamItemInfo& itemInfo);
110
void signalDownloaded(const QString& folder, const QString& file, int status);
111
void signalDownloadComplete(const QString& sourceFolder, const QString& sourceFile,
112
const QString& destFolder, const QString& destFile);
113
void signalSkipped(const QString& folder, const QString& file);
114
void signalDeleted(const QString& folder, const QString& file, bool status);
115
void signalLocked(const QString& folder, const QString& file, bool status);
116
void signalThumbInfo(const QString& folder, const QString& file, const CamItemInfo& itemInfo, const QImage& thumb);
117
void signalThumbInfoFailed(const QString& folder, const QString& file, const CamItemInfo& itemInfo);
118
void signalMetadata(const QString& folder, const QString& file, const DMetadata& exifData);
120
void signalInternalCheckRename(const QString& folder, const QString& file,
121
const QString& destination, const QString& temp,
122
const QString& script);
123
void signalInternalDownloadFailed(const QString& folder, const QString& file);
124
void signalInternalUploadFailed(const QString& folder, const QString& file, const QString& src);
125
void signalInternalDeleteFailed(const QString& folder, const QString& file);
126
void signalInternalLockFailed(const QString& folder, const QString& file);
127
void signalInternalOpen(const QString& folder, const QString& file, const QString& dest);
137
void executeCommand(CameraCommand* cmd);
141
void slotCheckRename(const QString& folder, const QString& file,
142
const QString& destination, const QString& temp, const QString& script);
143
void slotDownloadFailed(const QString& folder, const QString& file);
144
void slotUploadFailed(const QString& folder, const QString& file, const QString& src);
145
void slotDeleteFailed(const QString& folder, const QString& file);
146
void slotLockFailed(const QString& folder, const QString& file);
147
void slotOpen(const QString& folder, const QString& file, const QString& dest);
151
void sendLogMsg(const QString& msg, DHistoryView::EntryType type=DHistoryView::StartingEntry,
152
const QString& folder=QString(), const QString& file=QString());
154
void addCommand(CameraCommand* cmd);
155
bool queueIsEmpty() const;
159
class CameraControllerPriv;
160
CameraControllerPriv* const d;
163
} // namespace Digikam
165
#endif /* CAMERACONTROLLER_H */