else
next_cbs = NULL;
cur_cbs = next_cbs;
- break;
+ goto _clear_local;
// - Feature
case 0xB0:
LOG("Feature 0x%x", val);
// - Usages
case 0x08: // Single
if( (byte & 3) != 3 ) val |= global_state.UsagePage;
+ LOG("Usage %x", val);
_AddItem(&local_state.Usages, val);
break;
case 0x18: // Range start
if( (byte & 3) != 3 ) val |= global_state.UsagePage;
+ LOG("Usage start %x", val);
local_state.UsageMin = val;
break;
case 0x28: // Range end (apply)
if( (byte & 3) != 3 ) val |= global_state.UsagePage;
+ LOG("Usage end %x (from %x)", val, local_state.UsageMin);
_AddItems(&local_state.Usages, local_state.UsageMin, val);
break;
// - Designators (Index into Physical report)
List->Items = realloc( List->Items, List->Space * sizeof(List->Items[0]) );
}
+// LOG("Added %x to %p", Value, List);
List->Items[ List->nItems ] = Value;
List->nItems ++;
}
* mouse.c
* - USB Mouse driver
*/
-#define DEBUG 1
+#define DEBUG 0
#include <acess.h>
#include "hid_reports.h"
#include <fs_devfs.h>
{
// Axis
info->Axies[ dest & 0x7F ].CurValue = value;
+ LOG("Axis %i = %i", dest & 0x7F, info->Axies[dest & 0x7F].CurValue);
}
else
{
// Button
info->Buttons[ dest & 0x7F ] = (value == 0) ? 0 : 0xFF;
+ LOG("Button %i = %x", dest & 0x7F, info->Buttons[dest & 0x7F]);
}
}
default: tag = 0xFF; break;
}
+ LOG("Usage = 0x%08x, tag = 0x%2x", Usage, tag);
+
// --- Add to list of mappings ---
info->nMappings ++;
info->Mappings = realloc(info->Mappings, info->nMappings * sizeof(info->Mappings[0]));
)
{
Uint32 usage = 0;
+ LOG("Local->Usages.nItems = %i", Local->Usages.nItems);
for( int i = 0; i < Global->ReportCount; i ++ )
{
// - Update usage
if( i < Local->Usages.nItems )
usage = Local->Usages.Items[i];
+ LOG("%i: usage = %x", i, usage);
// - Add to list
HID_int_AddInput(Dev, usage, Global->ReportSize, Global->LogMin, Global->LogMax);
}