File: hid_internal.h

package info (click to toggle)
brltty 6.7-3.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 31,240 kB
  • sloc: ansic: 148,859; java: 13,418; sh: 9,623; xml: 5,699; tcl: 2,634; makefile: 2,333; awk: 713; lisp: 366; python: 321; ml: 301
file content (113 lines) | stat: -rw-r--r-- 3,833 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
 * BRLTTY - A background process providing access to the console screen (when in
 *          text mode) for a blind person using a refreshable braille display.
 *
 * Copyright (C) 1995-2024 by The BRLTTY Developers.
 *
 * BRLTTY comes with ABSOLUTELY NO WARRANTY.
 *
 * This is free software, placed under the terms of the
 * GNU Lesser General Public License, as published by the Free Software
 * Foundation; either version 2.1 of the License, or (at your option) any
 * later version. Please see the file LICENSE-LGPL for details.
 *
 * Web Page: http://brltty.app/
 *
 * This software is maintained by Dave Mielke <dave@mielke.cc>.
 */

#ifndef BRLTTY_INCLUDED_HID_INTERNAL
#define BRLTTY_INCLUDED_HID_INTERNAL

#include "hid_types.h"
#include "async_types_io.h"

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

typedef struct HidHandleStruct HidHandle;
typedef void HidDestroyHandleMethod (HidHandle *handle);

typedef const HidItemsDescriptor *HidGetItemsMethod (HidHandle *handle);

typedef int HidGetReportSizeMethod (
  HidHandle *handle,
  HidReportIdentifier identifier,
  HidReportSize *size
);

typedef ssize_t HidGetReportMethod (HidHandle *handle, unsigned char *buffer, size_t size);
typedef ssize_t HidSetReportMethod (HidHandle *handle, const unsigned char *report, size_t size);
typedef ssize_t HidGetFeatureMethod (HidHandle *handle, unsigned char *buffer, size_t size);
typedef ssize_t HidSetFeatureMethod (HidHandle *handle, const unsigned char *feature, size_t size);

typedef int HidWriteDataMethod (HidHandle *handle, const unsigned char *data, size_t size);
typedef int HidMonitorInputMethod (HidHandle *handle, AsyncMonitorCallback *callback, void *data);
typedef int HidAwaitInputMethod (HidHandle *handle, int timeout);

typedef ssize_t HidReadDataMethod (
  HidHandle *handle, unsigned char *buffer, size_t size,
  int initialTimeout, int subsequentTimeout
);

typedef int HidGetDeviceIdentifiersMethod (HidHandle *handle, uint16_t *vendor, uint16_t *product);
typedef const char *HidGetDeviceAddressMethod (HidHandle *handle);
typedef const char *HidGetDeviceNameMethod (HidHandle *handle);
typedef const char *HidGetHostPathMethod (HidHandle *handle);
typedef const char *HidGetHostDeviceMethod (HidHandle *handle);

typedef struct {
  HidDestroyHandleMethod *destroyHandle;

  HidGetItemsMethod *getItems;

  HidGetReportSizeMethod *getReportSize;
  HidGetReportMethod *getReport;
  HidSetReportMethod *setReport;
  HidGetFeatureMethod *getFeature;
  HidSetFeatureMethod *setFeature;

  HidWriteDataMethod *writeData;
  HidMonitorInputMethod *monitorInput;
  HidAwaitInputMethod *awaitInput;
  HidReadDataMethod *readData;

  HidGetDeviceIdentifiersMethod *getDeviceIdentifiers;
  HidGetDeviceAddressMethod *getDeviceAddress;
  HidGetDeviceNameMethod *getDeviceName;
  HidGetHostPathMethod *getHostPath;
  HidGetHostDeviceMethod *getHostDevice;
} HidHandleMethods;

typedef HidHandle *HidNewUSBHandleMethod (const HidUSBFilter *filter);
typedef HidHandle *HidNewBluetoothHandleMethod (const HidBluetoothFilter *filter);

typedef struct {
  const char *packageName;
  const HidHandleMethods *handleMethods;

  HidNewUSBHandleMethod *newUSBHandle;
  HidNewBluetoothHandleMethod *newBluetoothHandle;
} HidPackageDescriptor;

extern const HidPackageDescriptor hidPackageDescriptor;

extern int hidParseDeviceIdentifier (HidDeviceIdentifier *identifier, const char *string);
extern int hidMatchString (const char *actualString, const char *testString);

typedef int HidGetStringMethod (
  HidHandle *handle, char *buffer, size_t size, void *data
);

extern const char *hidCacheString (
  HidHandle *handle, char **cachedValue,
  char *buffer, size_t size,
  HidGetStringMethod *getString, void *data
);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* BRLTTY_INCLUDED_HID_INTERNAL */