summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/downloadfromdcthread.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/core/downloadfromdcthread.cpp b/core/downloadfromdcthread.cpp
index e67d71403..0cc5a204c 100644
--- a/core/downloadfromdcthread.cpp
+++ b/core/downloadfromdcthread.cpp
@@ -109,21 +109,20 @@ void fill_computer_list()
dc_iterator_t *iterator = NULL;
dc_descriptor_t *descriptor = NULL;
- int transportMask = 0;
+ // start out with the list of transports that libdivecomputer claims to support
+ // dc_context_get_transports ignores its context argument...
+ int transportMask = dc_context_get_transports(NULL);
+
+ // then add the ones that we have our own implementations for
#if defined(BT_SUPPORT)
transportMask |= DC_TRANSPORT_BLUETOOTH;
#endif
#if defined(BLE_SUPPORT)
transportMask |= DC_TRANSPORT_BLE;
#endif
-#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) && !defined(Q_OS_MAC)
- transportMask |= DC_TRANSPORT_IRDA;
-#endif
-#if !defined(Q_OS_IOS)
- transportMask |= DC_TRANSPORT_USB | DC_TRANSPORT_USBHID;
-#endif
-#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
- transportMask |= DC_TRANSPORT_SERIAL;
+#if defined(Q_OS_IOS)
+ // libdivecomputer always claims to support serial, but on iOS we actually don't support that
+ transportMask &= ~DC_TRANSPORT_SERIAL;
#endif
fill_supported_mobile_list();