Freenect2Impl(void *usb_context) : managed_usb_context_(usb_context == 0), usb_context_(reinterpret_cast<libusb_context *>(usb_context)), has_device_enumeration_(false) { if(managed_usb_context_) { int r = libusb_init(&usb_context_); // TODO: error handling if(r != 0) { std::cout << "[Freenect2Impl] failed to create usb context!" << std::endl; } } usb_event_loop_.start(usb_context_); }