func midi_init() error { var ctx libusb.Context err := libusb.Init(&ctx) if err != nil { return err } defer libusb.Exit(ctx) list, err := libusb.Get_Device_List(ctx) if err != nil { return err } defer libusb.Free_Device_List(list, 1) for _, dev := range list { dd, err := libusb.Get_Device_Descriptor(dev) if err != nil { return err } if dd.IdVendor == usb_vid && dd.IdProduct == usb_pid { fmt.Printf("found\n") break } } return nil }
func (dpf *DPF) Close() { if dpf.hasClaim { libusb.Release_Interface(dpf.udev, AX206_INTERFACE) } if dpf.hasUdev { libusb.Close(dpf.udev) } if dpf.hasCtx { libusb.Exit(dpf.ctx) dpf.hasCtx = false } }