aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Robert C. Helling <helling@atdotde.de>2020-11-15 22:12:21 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-12-03 13:26:55 -0800
commitb39e77071e79b31996151434970e1baa5249c0a4 (patch)
treead14301d93edcb4598f4a6ef3fd707aa7c88f58e
parent31f0741ecc0013cd361683e7fad9bf2c8c166a13 (diff)
downloadsubsurface-b39e77071e79b31996151434970e1baa5249c0a4.tar.gz
downloader: small improvements
Provide supported dive computer list on the command line and actually call the cli download. Still not functional. Signed-off-by: Robert C. Helling <helling@atdotde.de>
-rw-r--r--CMakeLists.txt6
-rw-r--r--core/cli-downloader.cpp2
-rw-r--r--core/downloadfromdcthread.h2
-rw-r--r--core/subsurfacestartup.c7
-rw-r--r--subsurface-downloader-main.cpp4
5 files changed, 18 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 18428778f..c1116f0ce 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -200,7 +200,11 @@ elseif (SUBSURFACE_TARGET_EXECUTABLE MATCHES "MobileExecutable")
message(STATUS "Building Subsurface-mobile requires BT support")
set(BTSUPPORT ON)
elseif (SUBSURFACE_TARGET_EXECUTABLE MATCHES "DownloaderExecutable")
- set(SUBSURFACE_TARGET subsurface-downloader)
+ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ set(SUBSURFACE_TARGET Subsurface-downloader)
+ else()
+ set(SUBSURFACE_TARGET subsurface-downloader)
+ endif()
set(BTSUPPORT ON)
add_definitions(-DSUBSURFACE_DOWNLOADER)
message(STATUS "building the embedded Subsurface-downloader app")
diff --git a/core/cli-downloader.cpp b/core/cli-downloader.cpp
index b4a8854aa..4f672eda7 100644
--- a/core/cli-downloader.cpp
+++ b/core/cli-downloader.cpp
@@ -4,7 +4,7 @@
#include <QObject>
#include <QUndoStack>
-extern "C"
+
void cliDownloader(const char *vendor, const char *product, const char *device)
{
DiveImportedModel *diveImportedModel = new DiveImportedModel();
diff --git a/core/downloadfromdcthread.h b/core/downloadfromdcthread.h
index 8f11fb7cc..448271211 100644
--- a/core/downloadfromdcthread.h
+++ b/core/downloadfromdcthread.h
@@ -98,7 +98,9 @@ struct mydescriptor {
* stay like this for now.
*/
void fill_computer_list();
+extern "C" {
void show_computer_list();
+}
extern QStringList vendorList;
extern QHash<QString, QStringList> productList;
extern QMap<QString, dc_descriptor_t *> descriptorLookup;
diff --git a/core/subsurfacestartup.c b/core/subsurfacestartup.c
index 0b8385616..25fd03352 100644
--- a/core/subsurfacestartup.c
+++ b/core/subsurfacestartup.c
@@ -10,6 +10,8 @@
#include "git-access.h"
#include "libdivecomputer/version.h"
+extern void show_computer_list();
+
struct preferences prefs, git_prefs;
struct preferences default_prefs = {
.cloud_base_url = "https://cloud.subsurface-divelog.org/",
@@ -152,6 +154,7 @@ void print_files()
const char *filename, *local_git;
printf("\nFile locations:\n\n");
+ printf("Cloud email:%s\n", prefs.cloud_storage_email);
if (!empty_string(prefs.cloud_storage_email) && !empty_string(prefs.cloud_storage_password)) {
filename = cloud_url();
@@ -265,6 +268,10 @@ void parse_argument(const char *arg)
prefs.dive_computer.device = strdup(arg + sizeof("--device=") - 1);
return;
}
+ if (strncmp(arg, "--list-dc", sizeof("--list-dc") - 1) == 0) {
+ show_computer_list();
+ return;
+ }
#elif SUBSURFACE_MOBILE_DESKTOP
if (strncmp(arg, "--testqml=", sizeof("--testqml=") - 1) == 0) {
testqml = malloc(strlen(arg) - sizeof("--testqml=") + 1);
diff --git a/subsurface-downloader-main.cpp b/subsurface-downloader-main.cpp
index 2993e5351..6582cf9dc 100644
--- a/subsurface-downloader-main.cpp
+++ b/subsurface-downloader-main.cpp
@@ -17,6 +17,7 @@
static bool filesOnCommandLine = false;
static void messageHandler(QtMsgType type, const QMessageLogContext &ctx, const QString &msg);
+extern void cliDownloader(const char *vendor, const char *product, const char *device);
int main(int argc, char **argv)
{
@@ -51,6 +52,7 @@ int main(int argc, char **argv)
copy_prefs(&default_prefs, &prefs);
// now handle the arguments
+ fill_computer_list();
for (i = 1; i < arguments.length(); i++) {
QString a = arguments.at(i);
if (a.isEmpty())
@@ -66,7 +68,6 @@ int main(int argc, char **argv)
files.push_back(a);
}
}
- fill_computer_list();
parse_xml_init();
taglist_init_global();
@@ -89,6 +90,7 @@ int main(int argc, char **argv)
if (!empty_string(prefs.dive_computer.vendor) && !empty_string(prefs.dive_computer.product) && !empty_string(prefs.dive_computer.device)) {
// download from that dive computer
printf("Downloading dives from %s %s (via %s)\n", prefs.dive_computer.vendor, prefs.dive_computer.product, prefs.dive_computer.device);
+ cliDownloader(prefs.dive_computer.vendor, prefs.dive_computer.product, prefs.dive_computer.device);
}
}
taglist_free(g_tag_list);