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>
This commit is contained in:
parent
ca9bb8a23d
commit
c3d8a9803c
|
@ -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 *elems = 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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue