diff options
Diffstat (limited to 'vendor/github.com/karalabe/gousb/usb/config.go')
-rw-r--r-- | vendor/github.com/karalabe/gousb/usb/config.go | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/vendor/github.com/karalabe/gousb/usb/config.go b/vendor/github.com/karalabe/gousb/usb/config.go deleted file mode 100644 index 840bce63c..000000000 --- a/vendor/github.com/karalabe/gousb/usb/config.go +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright 2013 Google Inc. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package usb - -/* -#ifndef OS_WINDOWS - #include "os/threads_posix.h" -#endif -#include "libusbi.h" -#include "libusb.h" -*/ -import "C" - -import ( - "fmt" - "reflect" - "unsafe" -) - -type EndpointInfo struct { - Address uint8 - Attributes uint8 - MaxPacketSize uint16 - MaxIsoPacket uint32 - PollInterval uint8 - RefreshRate uint8 - SynchAddress uint8 -} - -func (e EndpointInfo) Number() int { - return int(e.Address) & ENDPOINT_NUM_MASK -} - -func (e EndpointInfo) Direction() EndpointDirection { - return EndpointDirection(e.Address) & ENDPOINT_DIR_MASK -} - -func (e EndpointInfo) String() string { - return fmt.Sprintf("Endpoint %d %-3s %s - %s %s [%d %d]", - e.Number(), e.Direction(), - TransferType(e.Attributes)&TRANSFER_TYPE_MASK, - IsoSyncType(e.Attributes)&ISO_SYNC_TYPE_MASK, - IsoUsageType(e.Attributes)&ISO_USAGE_TYPE_MASK, - e.MaxPacketSize, e.MaxIsoPacket, - ) -} - -type InterfaceInfo struct { - Number uint8 - Setups []InterfaceSetup -} - -func (i InterfaceInfo) String() string { - return fmt.Sprintf("Interface %02x (%d setups)", i.Number, len(i.Setups)) -} - -type InterfaceSetup struct { - Number uint8 - Alternate uint8 - IfClass uint8 - IfSubClass uint8 - IfProtocol uint8 - Endpoints []EndpointInfo -} - -func (a InterfaceSetup) String() string { - return fmt.Sprintf("Interface %02x Setup %02x", a.Number, a.Alternate) -} - -type ConfigInfo struct { - Config uint8 - Attributes uint8 - MaxPower uint8 - Interfaces []InterfaceInfo -} - -func (c ConfigInfo) String() string { - return fmt.Sprintf("Config %02x", c.Config) -} - -func newConfig(dev *C.libusb_device, cfg *C.struct_libusb_config_descriptor) ConfigInfo { - c := ConfigInfo{ - Config: uint8(cfg.bConfigurationValue), - Attributes: uint8(cfg.bmAttributes), - MaxPower: uint8(cfg.MaxPower), - } - - var ifaces []C.struct_libusb_interface - *(*reflect.SliceHeader)(unsafe.Pointer(&ifaces)) = reflect.SliceHeader{ - Data: uintptr(unsafe.Pointer(cfg._interface)), - Len: int(cfg.bNumInterfaces), - Cap: int(cfg.bNumInterfaces), - } - c.Interfaces = make([]InterfaceInfo, 0, len(ifaces)) - for _, iface := range ifaces { - if iface.num_altsetting == 0 { - continue - } - - var alts []C.struct_libusb_interface_descriptor - *(*reflect.SliceHeader)(unsafe.Pointer(&alts)) = reflect.SliceHeader{ - Data: uintptr(unsafe.Pointer(iface.altsetting)), - Len: int(iface.num_altsetting), - Cap: int(iface.num_altsetting), - } - descs := make([]InterfaceSetup, 0, len(alts)) - for _, alt := range alts { - i := InterfaceSetup{ - Number: uint8(alt.bInterfaceNumber), - Alternate: uint8(alt.bAlternateSetting), - IfClass: uint8(alt.bInterfaceClass), - IfSubClass: uint8(alt.bInterfaceSubClass), - IfProtocol: uint8(alt.bInterfaceProtocol), - } - var ends []C.struct_libusb_endpoint_descriptor - *(*reflect.SliceHeader)(unsafe.Pointer(&ends)) = reflect.SliceHeader{ - Data: uintptr(unsafe.Pointer(alt.endpoint)), - Len: int(alt.bNumEndpoints), - Cap: int(alt.bNumEndpoints), - } - i.Endpoints = make([]EndpointInfo, 0, len(ends)) - for _, end := range ends { - i.Endpoints = append(i.Endpoints, EndpointInfo{ - Address: uint8(end.bEndpointAddress), - Attributes: uint8(end.bmAttributes), - MaxPacketSize: uint16(end.wMaxPacketSize), - //MaxIsoPacket: uint32(C.libusb_get_max_iso_packet_size(dev, C.uchar(end.bEndpointAddress))), - PollInterval: uint8(end.bInterval), - RefreshRate: uint8(end.bRefresh), - SynchAddress: uint8(end.bSynchAddress), - }) - } - descs = append(descs, i) - } - c.Interfaces = append(c.Interfaces, InterfaceInfo{ - Number: descs[0].Number, - Setups: descs, - }) - } - return c -} |