Hi,
Native USB communication (used only by the Atomic Aquatics Cobalt backend) was not yet ported to the I/O stream interface. This has now changed because I just pushed a new USB based I/O transport implementation the libdivecomputer master branch. This means the application is now responsible for setting up the USB I/O stream, just like all others transports. The Atomic Aquatics Cobalt backend does no longer open the USB device internally. Passing a NULL pointer for the iostream will no longer work!
The advantage is that an application can now also use a custom implementation on platforms where libusb isn't available (iOS) or doesn't work very well due to permission problems (Android).
Jef