From 1d67bae745e491cfe28806dc99f0db005649083d Mon Sep 17 00:00:00 2001 From: Anton Lundin Date: Tue, 20 Jan 2015 22:40:51 +0100 Subject: Add infrastructure to emit progress from threads Signed-off-by: Anton Lundin Signed-off-by: Dirk Hohndel --- configuredivecomputerthreads.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'configuredivecomputerthreads.cpp') diff --git a/configuredivecomputerthreads.cpp b/configuredivecomputerthreads.cpp index b2dc8c87c..2e69e539d 100644 --- a/configuredivecomputerthreads.cpp +++ b/configuredivecomputerthreads.cpp @@ -1393,6 +1393,26 @@ DeviceThread::DeviceThread(QObject *parent, device_data_t *data) : QThread(paren { } +void DeviceThread::progressCB(int percent) +{ + emit progress(percent); +} + +void DeviceThread::event_cb(dc_device_t *device, dc_event_type_t event, const void *data, void *userdata) +{ + const dc_event_progress_t *progress = (dc_event_progress_t *) data; + DeviceThread *dt = static_cast(userdata); + + switch (event) { + case DC_EVENT_PROGRESS: + dt->progressCB(100.0 * (double)progress->current / (double)progress->maximum); + break; + default: + emit dt->error("Unexpected event recived"); + break; + } +} + ReadSettingsThread::ReadSettingsThread(QObject *parent, device_data_t *data) : DeviceThread(parent, data) { } -- cgit v1.2.3-70-g09d2