// hid - Gopher Interface Devices (USB HID) // Copyright (c) 2017 Péter Szilágyi. All rights reserved. // // This file is released under the 3-clause BSD license. Note however that Linux // support depends on libusb, released under GNU LGPL 2.1 or later. // Package hid provides an interface for USB HID devices. package hid import "errors" // ErrDeviceClosed is returned for operations where the device closed before or // during the execution. var ErrDeviceClosed = errors.New("hid: device closed") // ErrUnsupportedPlatform is returned for all operations where the underlying // operating system is not supported by the library. var ErrUnsupportedPlatform = errors.New("hid: unsupported platform") // HidDeviceInfo is a hidapi info structure. type HidDeviceInfo struct { Path string // Platform-specific device path VendorID uint16 // Device Vendor ID ProductID uint16 // Device Product ID Release uint16 // Device Release Number in binary-coded decimal, also known as Device Version Number Serial string // Serial Number Manufacturer string // Manufacturer String Product string // Product string UsagePage uint16 // Usage Page for this Device/Interface (Windows/Mac only) Usage uint16 // Usage for this Device/Interface (Windows/Mac only) // The USB interface which this logical device // represents. Valid on both Linux implementations // in all cases, and valid on the Windows implementation // only if the device contains more than one interface. Interface int } // GetPath returns the system-dependent path to the device func (hdi *HidDeviceInfo) GetPath() string { return hdi.Path } // IDs returns the vendor and product id of the device func (hdi *HidDeviceInfo) IDs() (uint16, uint16, int, uint16) { return hdi.VendorID, hdi.ProductID, hdi.Interface, hdi.UsagePage } // Type returns the type of the device (HID or generic) func (hdi *HidDeviceInfo) Type() DeviceType { return DeviceTypeHID }