aboutsummaryrefslogtreecommitdiffstats
path: root/core/downloadfromdcthread.cpp
blob: dc13a23d767a22ea569ca9ae34eb148ae9ff3aba (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "downloadfromdcthread.h"
#include "core/libdivecomputer.h"

static QString str_error(const char *fmt, ...)
{
	va_list args;
	va_start(args, fmt);
	const QString str = QString().vsprintf(fmt, args);
	va_end(args);

	return str;
}

DownloadThread::DownloadThread(QObject *parent, device_data_t *data) : QThread(parent),
	data(data)
{
	data->download_table = nullptr;
}

void DownloadThread::setDiveTable(struct dive_table* table)
{
	data->download_table = table;
}

void DownloadThread::run()
{
	Q_ASSERT(data->download_table != nullptr);
	const char *errorText;
	import_thread_cancelled = false;
	if (!strcmp(data->vendor, "Uemis"))
		errorText = do_uemis_import(data);
	else
		errorText = do_libdivecomputer_import(data);
	if (errorText)
		error = str_error(errorText, data->devname, data->vendor, data->product);
}