Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-fonts
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Aleksandr Isakov
wine-fonts
Commits
c3d8a980
Commit
c3d8a980
authored
Jun 07, 2021
by
Rémi Bernon
Committed by
Alexandre Julliard
Jun 07, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hidclass.sys: Factor all HIDP_VALUE_CAPS debug helpers.
Signed-off-by:
Rémi Bernon
<
rbernon@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
ca9bb8a2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
99 deletions
+14
-99
descriptor.c
dlls/hidclass.sys/descriptor.c
+14
-99
No files found.
dlls/hidclass.sys/descriptor.c
View file @
c3d8a980
...
...
@@ -133,51 +133,16 @@ struct caps_stack {
HIDP_VALUE_CAPS
caps
;
};
static
const
char
*
debugstr_usages
(
HIDP_VALUE_CAPS
*
caps
)
static
inline
const
char
*
debugstr_hidp_value_caps
(
HIDP_VALUE_CAPS
*
caps
)
{
if
(
!
caps
->
IsRange
)
return
wine_dbg_sprintf
(
"[0x%x]"
,
caps
->
NotRange
.
Usage
);
else
return
wine_dbg_sprintf
(
"[0x%x - 0x%x]"
,
caps
->
Range
.
UsageMin
,
caps
->
Range
.
UsageMax
);
}
static
const
char
*
debugstr_stringindex
(
HIDP_VALUE_CAPS
*
caps
)
{
if
(
!
caps
->
IsStringRange
)
return
wine_dbg_sprintf
(
"%i"
,
caps
->
NotRange
.
StringIndex
);
else
return
wine_dbg_sprintf
(
"[%i - %i]"
,
caps
->
Range
.
StringMin
,
caps
->
Range
.
StringMax
);
}
static
const
char
*
debugstr_designatorindex
(
HIDP_VALUE_CAPS
*
caps
)
{
if
(
!
caps
->
IsDesignatorRange
)
return
wine_dbg_sprintf
(
"%i"
,
caps
->
NotRange
.
DesignatorIndex
);
else
return
wine_dbg_sprintf
(
"[%i - %i]"
,
caps
->
Range
.
DesignatorMin
,
caps
->
Range
.
DesignatorMax
);
}
static
void
debugstr_caps
(
const
char
*
type
,
HIDP_VALUE_CAPS
*
caps
)
{
if
(
!
caps
)
return
;
TRACE
(
"(%s Caps: UsagePage 0x%x; LogicalMin %i; LogicalMax %i; PhysicalMin %i; "
"PhysicalMax %i; UnitsExp %i; Units %i; BitSize %i; ReportID %i; ReportCount %i; "
"Usage %s; StringIndex %s; DesignatorIndex %s;)
\n
"
,
type
,
caps
->
UsagePage
,
caps
->
LogicalMin
,
caps
->
LogicalMax
,
caps
->
PhysicalMin
,
caps
->
PhysicalMax
,
caps
->
UnitsExp
,
caps
->
Units
,
caps
->
BitSize
,
caps
->
ReportID
,
caps
->
ReportCount
,
debugstr_usages
(
caps
),
debugstr_stringindex
(
caps
),
debugstr_designatorindex
(
caps
));
if
(
!
caps
)
return
"(null)"
;
return
wine_dbg_sprintf
(
"RId %d, Usg %02x:%02x-%02x Dat %02x-%02x (%d), Str %d-%d (%d), Des %d-%d (%d), "
"Bits %02x, Als %d, Abs %d, Nul %d, LCol %d LUsg %02x:%02x, BitSz %d, RCnt %d, "
"Unit %x E%+d, Log %+d-%+d, Phy %+d-%+d"
,
caps
->
ReportID
,
caps
->
UsagePage
,
caps
->
Range
.
UsageMin
,
caps
->
Range
.
UsageMax
,
caps
->
Range
.
DataIndexMin
,
caps
->
Range
.
DataIndexMax
,
caps
->
IsRange
,
caps
->
Range
.
StringMin
,
caps
->
Range
.
StringMax
,
caps
->
IsStringRange
,
caps
->
Range
.
DesignatorMin
,
caps
->
Range
.
DesignatorMax
,
caps
->
IsDesignatorRange
,
caps
->
BitField
,
caps
->
IsAlias
,
caps
->
IsAbsolute
,
caps
->
HasNull
,
caps
->
LinkCollection
,
caps
->
LinkUsagePage
,
caps
->
LinkUsage
,
caps
->
BitSize
,
caps
->
ReportCount
,
caps
->
Units
,
caps
->
UnitsExp
,
caps
->
LogicalMin
,
caps
->
LogicalMax
,
caps
->
PhysicalMin
,
caps
->
PhysicalMax
);
}
static
void
debug_feature
(
struct
feature
*
feature
)
...
...
@@ -197,7 +162,7 @@ static void debug_feature(struct feature *feature)
(
feature
->
Volatile
)
?
"Volatile"
:
"NonVolatile"
,
(
feature
->
BitField
)
?
"BitField"
:
"Buffered"
);
debugstr_caps
(
"Feature"
,
&
feature
->
caps
);
TRACE
(
"Feature %s
\n
"
,
debugstr_hidp_value_caps
(
&
feature
->
caps
)
);
}
static
void
debug_collection
(
struct
collection
*
collection
)
...
...
@@ -209,7 +174,7 @@ static void debug_collection(struct collection *collection)
TRACE
(
"START Collection %i <<< %s, parent: %p, %i features, %i collections
\n
"
,
collection
->
index
,
collection_string
[
collection
->
type
],
collection
->
parent
,
list_count
(
&
collection
->
features
),
list_count
(
&
collection
->
collections
));
debugstr_caps
(
"Collection"
,
&
collection
->
caps
);
TRACE
(
"Collection %s
\n
"
,
debugstr_hidp_value_caps
(
&
collection
->
caps
)
);
LIST_FOR_EACH_ENTRY
(
fentry
,
&
collection
->
features
,
struct
feature
,
entry
)
debug_feature
(
fentry
);
LIST_FOR_EACH_ENTRY
(
centry
,
&
collection
->
collections
,
struct
collection
,
entry
)
...
...
@@ -218,61 +183,10 @@ static void debug_collection(struct collection *collection)
}
}
static
void
debug_print_button_cap
(
const
CHAR
*
type
,
WINE_HID_ELEMENT
*
wine_element
)
{
if
(
!
wine_element
->
caps
.
IsRange
)
TRACE
(
"%s Button: 0x%x/0x%04x: ReportId %i, startBit %i/1
\n
"
,
type
,
wine_element
->
caps
.
UsagePage
,
wine_element
->
caps
.
NotRange
.
Usage
,
wine_element
->
caps
.
ReportID
,
wine_element
->
valueStartBit
);
else
TRACE
(
"%s Button: 0x%x/[0x%04x-0x%04x]: ReportId %i, startBit %i/%i
\n
"
,
type
,
wine_element
->
caps
.
UsagePage
,
wine_element
->
caps
.
Range
.
UsageMin
,
wine_element
->
caps
.
Range
.
UsageMax
,
wine_element
->
caps
.
ReportID
,
wine_element
->
valueStartBit
,
wine_element
->
bitCount
);
}
static
void
debug_print_value_cap
(
const
CHAR
*
type
,
WINE_HID_ELEMENT
*
wine_element
)
{
TRACE
(
"%s Value: 0x%x/0x%x: ReportId %i, IsAbsolute %i, HasNull %i, "
"Bit Size %i, ReportCount %i, UnitsExp %i, Units %i, "
"LogicalMin %i, Logical Max %i, PhysicalMin %i, "
"PhysicalMax %i -- StartBit %i/%i
\n
"
,
type
,
wine_element
->
caps
.
UsagePage
,
wine_element
->
caps
.
NotRange
.
Usage
,
wine_element
->
caps
.
ReportID
,
wine_element
->
caps
.
IsAbsolute
,
wine_element
->
caps
.
HasNull
,
wine_element
->
caps
.
BitSize
,
wine_element
->
caps
.
ReportCount
,
wine_element
->
caps
.
UnitsExp
,
wine_element
->
caps
.
Units
,
wine_element
->
caps
.
LogicalMin
,
wine_element
->
caps
.
LogicalMax
,
wine_element
->
caps
.
PhysicalMin
,
wine_element
->
caps
.
PhysicalMax
,
wine_element
->
valueStartBit
,
wine_element
->
bitCount
);
}
static
void
debug_print_element
(
const
CHAR
*
type
,
WINE_HID_ELEMENT
*
wine_element
)
{
if
(
wine_element
->
ElementType
==
ButtonElement
)
debug_print_button_cap
(
type
,
wine_element
);
else
if
(
wine_element
->
ElementType
==
ValueElement
)
debug_print_value_cap
(
type
,
wine_element
);
else
TRACE
(
"%s: UNKNOWN
\n
"
,
type
);
}
static
void
debug_print_report
(
const
char
*
type
,
WINE_HIDP_PREPARSED_DATA
*
data
,
WINE_HID_REPORT
*
report
)
{
WINE_HID_ELEMENT
*
elem
=
HID_ELEMS
(
data
);
WINE_HID_ELEMENT
*
elem
s
=
HID_ELEMS
(
data
);
unsigned
int
i
;
TRACE
(
"START Report %i <<< %s report : bitSize: %i elementCount: %i
\n
"
,
report
->
reportID
,
...
...
@@ -281,7 +195,8 @@ static void debug_print_report(const char* type, WINE_HIDP_PREPARSED_DATA *data,
report
->
elementCount
);
for
(
i
=
0
;
i
<
report
->
elementCount
;
i
++
)
{
debug_print_element
(
type
,
&
elem
[
report
->
elementIdx
+
i
]);
WINE_HID_ELEMENT
*
elem
=
elems
+
report
->
elementIdx
+
i
;
TRACE
(
"%s: %s, StartBit %d, BitCount %d
\n
"
,
type
,
debugstr_hidp_value_caps
(
&
elem
->
caps
),
elem
->
valueStartBit
,
elem
->
bitCount
);
}
TRACE
(
">>> END Report %i
\n
"
,
report
->
reportID
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment