On 2018-04-19 08:40, Dirk Hohndel wrote:
On Wed, Apr 18, 2018 at 11:37:53PM -0700, Dirk Hohndel wrote:
On Thu, Apr 19, 2018 at 08:13:23AM +0200, Jef Driesen wrote:
>
> You can also get the mask with the built-in transports from libdivecomputer
> with the dc_context_get_transports() function. With the above, you'll for
> example show usb or usbhid devices even when libdivecomputer was build
> without usb or usbhid support.
>
> For transports where subsurface uses a custom I/O implementation (bluetooth
> and ble), you of course need to set the bits as above.

Cool - that's even better.
Of course I first wondered... darn, where do I get the context from in
this part of my code. Then I looked at the sources of libdivecomputer...

unsigned int
dc_context_get_transports (dc_context_t *context)
{
        UNUSED(context);

        return DC_TRANSPORT_SERIAL
#if defined(HAVE_LIBUSB)
                | DC_TRANSPORT_USB
#endif
...

OK, I guess I'll just pass in a NULL pointer :-)

That should be fine. I only added the context pointer in case we ever need it in the future. I doubt that will ever be necessary, but it was easier to add now then having to change it later.

... aaaaand of course... since it ALWAYS adds in the DC_TRANSPORT_SERIAL flag, I guess I have to mask that back out on iOS where we don't actually
have support for serial dive computers...

Yeah, that's indeed an annoying special case. The code builds just fine and probably works too, but without any usb-serial drivers (or even the ability to connect those devices) you can't really do much with it.

Jef
_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to