From b39e77071e79b31996151434970e1baa5249c0a4 Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Sun, 15 Nov 2020 22:12:21 +0100 Subject: [PATCH] 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 --- CMakeLists.txt | 6 +++++- core/cli-downloader.cpp | 2 +- core/downloadfromdcthread.h | 2 ++ core/subsurfacestartup.c | 7 +++++++ subsurface-downloader-main.cpp | 4 +++- 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 #include -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 productList; extern QMap 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);