mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Create one function to determine the supported transports
This should make sure we create a consistent view based on all the information available. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
5faa167e9f
commit
028299193a
3 changed files with 33 additions and 27 deletions
|
|
@ -107,28 +107,14 @@ void fill_computer_list()
|
|||
dc_iterator_t *iterator = NULL;
|
||||
dc_descriptor_t *descriptor = NULL;
|
||||
|
||||
// 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_IOS)
|
||||
// libdivecomputer always claims to support serial, but on iOS we actually don't support that
|
||||
transportMask &= ~DC_TRANSPORT_SERIAL;
|
||||
#endif
|
||||
unsigned int transportMask = get_supported_transports(NULL);
|
||||
|
||||
fill_supported_mobile_list();
|
||||
|
||||
dc_descriptor_iterator(&iterator);
|
||||
while (dc_iterator_next(iterator, &descriptor) == DC_STATUS_SUCCESS) {
|
||||
// mask out the transports that aren't supported
|
||||
int transports = dc_descriptor_get_transports(descriptor) & transportMask;
|
||||
unsigned int transports = dc_descriptor_get_transports(descriptor) & transportMask;
|
||||
if (transports == 0)
|
||||
// none of the transports are available, skip
|
||||
continue;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue