diff --git a/device.go b/device.go index 2a125b9..ab31f02 100644 --- a/device.go +++ b/device.go @@ -6,6 +6,7 @@ import ( "bytes" "encoding/binary" "fmt" + "log" "os" "path/filepath" "strings" @@ -42,12 +43,14 @@ func Open(devnode string) (*InputDevice, error) { dev.Fn = devnode dev.File = f - err = dev.set_device_info() + err = dev.setDeviceInfo() if err != nil { + log.Printf("setDeviceInfo error: %v", err) return nil, err } - err = dev.set_device_capabilities() + err = dev.setDeviceCapabilities() if err != nil { + log.Printf("setDeviceCapabilities error: %v", err) return nil, err } @@ -61,12 +64,14 @@ func (dev *InputDevice) Read() ([]InputEvent, error) { _, err := dev.File.Read(buffer) if err != nil { + log.Printf("Read().dev.File.Read error: %v", err) return events, err } b := bytes.NewBuffer(buffer) err = binary.Read(b, binary.LittleEndian, &events) if err != nil { + log.Printf("Read().binary.Read error: %v", err) return events, err } @@ -88,12 +93,14 @@ func (dev *InputDevice) ReadOne() (*InputEvent, error) { _, err := dev.File.Read(buffer) if err != nil { + log.Printf("ReadOne().dev.File.Read error: %v", err) return &event, err } b := bytes.NewBuffer(buffer) err = binary.Read(b, binary.LittleEndian, &event) if err != nil { + log.Printf("ReadOne().binary.Read error: %v", err) return &event, err } @@ -125,7 +132,7 @@ func (dev *InputDevice) String() string { } // Gets the event types and event codes that the input device supports. -func (dev *InputDevice) set_device_capabilities() error { +func (dev *InputDevice) setDeviceCapabilities() error { // Capabilities is a map of supported event types to lists of // events e.g: {1: [272, 273, 274, 275], 2: [0, 1, 6, 8]} // capabilities := make(map[int][]int) @@ -137,6 +144,7 @@ func (dev *InputDevice) set_device_capabilities() error { err := ioctl(dev.File.Fd(), uintptr(EVIOCGBIT(0, EV_MAX)), unsafe.Pointer(evbits)) if err != 0 { + log.Printf("setDeviceCapabilities().ioctl(EVIOCGBIT(0, EV_MAX)) error: %v", err) return err } @@ -147,7 +155,9 @@ func (dev *InputDevice) set_device_capabilities() error { err = ioctl(dev.File.Fd(), uintptr(EVIOCGBIT(evtype, KEY_MAX)), unsafe.Pointer(codebits)) if err != 0 { - return err + log.Printf("setDeviceCapabilities().ioctl(EVIOCGBIT(evtype, KEY_MAX)) evtype=%v error: %v", evtype, err) + //return err + continue } for evcode := 0; evcode < KEY_MAX; evcode++ { if codebits[evcode/8]&(1<