Aric Stewart : include: Add ddk/hidpi.h.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jun 26 07:11:54 CDT 2015


Module: wine
Branch: master
Commit: ab3300cdda900124d827424861921558c5031222
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ab3300cdda900124d827424861921558c5031222

Author: Aric Stewart <aric at codeweavers.com>
Date:   Thu Jun 25 10:15:41 2015 -0500

include: Add ddk/hidpi.h.

---

 include/Makefile.in  |   1 +
 include/ddk/hidpi.h  | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++
 include/ddk/hidsdi.h |   2 +-
 3 files changed, 169 insertions(+), 1 deletion(-)

diff --git a/include/Makefile.in b/include/Makefile.in
index c02199d..795642d 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -253,6 +253,7 @@ SRCDIR_INCLUDES = \
 	ddk/compstui.h \
 	ddk/csq.h \
 	ddk/hidclass.h \
+	ddk/hidpi.h \
 	ddk/hidsdi.h \
 	ddk/imm.h \
 	ddk/mountmgr.h \
diff --git a/include/ddk/hidpi.h b/include/ddk/hidpi.h
new file mode 100644
index 0000000..32f6625
--- /dev/null
+++ b/include/ddk/hidpi.h
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2015 Aric Stewart
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it 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.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __HIDPI_H__
+#define __HIDPI_H__
+
+typedef enum _HIDP_REPORT_TYPE
+{
+    HidP_Input,
+    HidP_Output,
+    HidP_Feature
+} HIDP_REPORT_TYPE;
+
+typedef struct _HIDP_BUTTON_CAPS
+{
+    USAGE    UsagePage;
+    UCHAR    ReportID;
+    BOOLEAN  IsAlias;
+    USHORT   BitField;
+    USHORT   LinkCollection;
+    USAGE    LinkUsage;
+    USAGE    LinkUsagePage;
+
+    BOOLEAN  IsRange;
+    BOOLEAN  IsStringRange;
+    BOOLEAN  IsDesignatorRange;
+    BOOLEAN  IsAbsolute;
+    ULONG    Reserved[10];
+    union {
+        struct {
+            USAGE   UsageMin;
+            USAGE   UsageMax;
+            USHORT  StringMin;
+            USHORT  StringMax;
+            USHORT  DesignatorMin;
+            USHORT  DesignatorMax;
+            USHORT  DataIndexMin;
+            USHORT  DataIndexMax;
+        } Range;
+        struct  {
+            USAGE   Usage;
+            USAGE   Reserved1;
+            USHORT  StringIndex;
+            USHORT  Reserved2;
+            USHORT  DesignatorIndex;
+            USHORT  Reserved3;
+            USHORT  DataIndex;
+            USHORT  Reserved4;
+        } NotRange;
+    } DUMMYUNIONNAME;
+} HIDP_BUTTON_CAPS, *PHIDP_BUTTON_CAPS;
+
+typedef struct _HIDP_VALUE_CAPS
+{
+    USAGE   UsagePage;
+    UCHAR   ReportID;
+    BOOLEAN IsAlias;
+    USHORT  BitField;
+    USHORT  LinkCollection;
+    USAGE   LinkUsage;
+    USAGE   LinkUsagePage;
+
+    BOOLEAN IsRange;
+    BOOLEAN IsStringRange;
+    BOOLEAN IsDesignatorRange;
+    BOOLEAN IsAbsolute;
+    BOOLEAN HasNull;
+    UCHAR   Reserved;
+    USHORT  BitSize;
+    USHORT  ReportCount;
+    USHORT  Reserved2[5];
+    ULONG   UnitsExp;
+    ULONG   Units;
+    LONG    LogicalMin;
+    LONG    LogicalMax;
+    LONG    PhysicalMin;
+    LONG    PhysicalMax;
+    union {
+        struct {
+            USAGE   UsageMin;
+            USAGE   UsageMax;
+            USHORT  StringMin;
+            USHORT  StringMax;
+            USHORT  DesignatorMin;
+            USHORT  DesignatorMax;
+            USHORT  DataIndexMin;
+            USHORT  DataIndexMax;
+        } Range;
+        struct {
+            USAGE   Usage;
+            USAGE   Reserved1;
+            USHORT  StringIndex;
+            USHORT  Reserved2;
+            USHORT  DesignatorIndex;
+            USHORT  Reserved3;
+            USHORT  DataIndex;
+            USHORT  Reserved4;
+        } NotRange;
+    } DUMMYUNIONNAME;
+} HIDP_VALUE_CAPS, *PHIDP_VALUE_CAPS;
+
+typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;
+
+typedef struct _HIDP_CAPS
+{
+    USAGE   Usage;
+    USAGE   UsagePage;
+    USHORT  InputReportByteLength;
+    USHORT  OutputReportByteLength;
+    USHORT  FeatureReportByteLength;
+    USHORT  Reserved[17];
+    USHORT  NumberLinkCollectionNodes;
+    USHORT  NumberInputButtonCaps;
+    USHORT  NumberInputValueCaps;
+    USHORT  NumberInputDataIndices;
+    USHORT  NumberOutputButtonCaps;
+    USHORT  NumberOutputValueCaps;
+    USHORT  NumberOutputDataIndices;
+    USHORT  NumberFeatureButtonCaps;
+    USHORT  NumberFeatureValueCaps;
+    USHORT  NumberFeatureDataIndices;
+} HIDP_CAPS, *PHIDP_CAPS;
+
+NTSTATUS WINAPI HidP_GetCaps(PHIDP_PREPARSED_DATA PreparsedData, PHIDP_CAPS Capabilities);
+
+#ifndef FACILITY_HID_ERROR_CODE
+#define FACILITY_HID_ERROR_CODE 0x11
+#endif
+
+#define HIDP_ERROR_CODES(sev, code) ((NTSTATUS)(((sev) << 28) | (FACILITY_HID_ERROR_CODE << 16) | (code)))
+
+#define HIDP_STATUS_SUCCESS                  (HIDP_ERROR_CODES(0x0,0x00))
+#define HIDP_STATUS_NULL                     (HIDP_ERROR_CODES(0x8,0x01))
+#define HIDP_STATUS_INVALID_PREPARSED_DATA   (HIDP_ERROR_CODES(0xc,0x01))
+#define HIDP_STATUS_INVALID_REPORT_TYPE      (HIDP_ERROR_CODES(0xc,0x02))
+#define HIDP_STATUS_INVALID_REPORT_LENGTH    (HIDP_ERROR_CODES(0xc,0x03))
+#define HIDP_STATUS_USAGE_NOT_FOUND          (HIDP_ERROR_CODES(0xc,0x04))
+#define HIDP_STATUS_VALUE_OUT_OF_RANGE       (HIDP_ERROR_CODES(0xc,0x05))
+#define HIDP_STATUS_BAD_LOG_PHY_VALUES       (HIDP_ERROR_CODES(0xc,0x06))
+#define HIDP_STATUS_BUFFER_TOO_SMALL         (HIDP_ERROR_CODES(0xc,0x07))
+#define HIDP_STATUS_INTERNAL_ERROR           (HIDP_ERROR_CODES(0xc,0x08))
+#define HIDP_STATUS_I8242_TRANS_UNKNOWN      (HIDP_ERROR_CODES(0xc,0x09))
+#define HIDP_STATUS_INCOMPATIBLE_REPORT_ID   (HIDP_ERROR_CODES(0xc,0x0a))
+#define HIDP_STATUS_NOT_VALUE_ARRAY          (HIDP_ERROR_CODES(0xc,0x0b))
+#define HIDP_STATUS_IS_VALUE_ARRAY           (HIDP_ERROR_CODES(0xc,0x0c))
+#define HIDP_STATUS_DATA_INDEX_NOT_FOUND     (HIDP_ERROR_CODES(0xc,0x0d))
+#define HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE  (HIDP_ERROR_CODES(0xc,0x0e))
+#define HIDP_STATUS_BUTTON_NOT_PRESSED       (HIDP_ERROR_CODES(0xc,0x0f))
+#define HIDP_STATUS_REPORT_DOES_NOT_EXIST    (HIDP_ERROR_CODES(0xc,0x10))
+#define HIDP_STATUS_NOT_IMPLEMENTED          (HIDP_ERROR_CODES(0xc,0x20))
+
+#endif /* __HIDPI_H__ */
diff --git a/include/ddk/hidsdi.h b/include/ddk/hidsdi.h
index 73f5250..5eb68ff 100644
--- a/include/ddk/hidsdi.h
+++ b/include/ddk/hidsdi.h
@@ -20,7 +20,7 @@
 #define __WINE_HIDSDI_H
 
 #include "hidusage.h"
-/* FIXME: #include "hidpi.h" */
+#include "hidpi.h"
 
 #ifndef WINE_NTSTATUS_DECLARED
 #define WINE_NTSTATUS_DECLARED




More information about the wine-cvs mailing list