mirror of
https://github.com/cathery/sys-con.git
synced 2024-07-05 10:48:46 +00:00
More usb event error checking
This commit is contained in:
parent
96aa0e05ac
commit
d5edac6c1b
|
@ -32,12 +32,11 @@ namespace syscon::psc
|
||||||
switch (pscState)
|
switch (pscState)
|
||||||
{
|
{
|
||||||
case PscPmState_ReadyAwaken:
|
case PscPmState_ReadyAwaken:
|
||||||
WriteToLog("Switch is awake! Enabling usb events...");
|
WriteToLog("Enable usb events: 0x%x", usb::CreateUsbEvents());
|
||||||
usb::CreateUsbEvents();
|
|
||||||
break;
|
break;
|
||||||
case PscPmState_ReadySleep:
|
case PscPmState_ReadySleep:
|
||||||
case PscPmState_ReadyShutdown:
|
case PscPmState_ReadyShutdown:
|
||||||
WriteToLog("Ready to sleep! Disabling usb events...");
|
WriteToLog("Destroy usb events");
|
||||||
usb::DestroyUsbEvents();
|
usb::DestroyUsbEvents();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -168,7 +168,7 @@ namespace syscon::usb
|
||||||
return out_entries;
|
return out_entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
Result CreateCatchAllAvailableEvent()
|
inline Result CreateCatchAllAvailableEvent()
|
||||||
{
|
{
|
||||||
constexpr UsbHsInterfaceFilter filter {
|
constexpr UsbHsInterfaceFilter filter {
|
||||||
.Flags = UsbHsInterfaceFilterFlags_bcdDevice_Min,
|
.Flags = UsbHsInterfaceFilterFlags_bcdDevice_Min,
|
||||||
|
@ -177,7 +177,7 @@ namespace syscon::usb
|
||||||
return usbHsCreateInterfaceAvailableEvent(&g_usbCatchAllEvent, true, CatchAllEventIndex, &filter);
|
return usbHsCreateInterfaceAvailableEvent(&g_usbCatchAllEvent, true, CatchAllEventIndex, &filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result CreateDualshock3AvailableEvent()
|
inline Result CreateDualshock3AvailableEvent()
|
||||||
{
|
{
|
||||||
constexpr UsbHsInterfaceFilter filter {
|
constexpr UsbHsInterfaceFilter filter {
|
||||||
.Flags = UsbHsInterfaceFilterFlags_idVendor | UsbHsInterfaceFilterFlags_idProduct,
|
.Flags = UsbHsInterfaceFilterFlags_idVendor | UsbHsInterfaceFilterFlags_idProduct,
|
||||||
|
@ -187,7 +187,7 @@ namespace syscon::usb
|
||||||
return usbHsCreateInterfaceAvailableEvent(&g_usbDualshock3Event, true, Dualshock3EventIndex, &filter);
|
return usbHsCreateInterfaceAvailableEvent(&g_usbDualshock3Event, true, Dualshock3EventIndex, &filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result CreateDualshock4AvailableEvent()
|
inline Result CreateDualshock4AvailableEvent()
|
||||||
{
|
{
|
||||||
const UsbHsInterfaceFilter filter{
|
const UsbHsInterfaceFilter filter{
|
||||||
.Flags = UsbHsInterfaceFilterFlags_idVendor | UsbHsInterfaceFilterFlags_idProduct,
|
.Flags = UsbHsInterfaceFilterFlags_idVendor | UsbHsInterfaceFilterFlags_idProduct,
|
||||||
|
@ -211,7 +211,7 @@ namespace syscon::usb
|
||||||
|
|
||||||
Result Enable()
|
Result Enable()
|
||||||
{
|
{
|
||||||
CreateUsbEvents();
|
R_TRY(CreateUsbEvents());
|
||||||
|
|
||||||
is_usb_event_thread_running = true;
|
is_usb_event_thread_running = true;
|
||||||
R_TRY(g_usb_event_thread.Start().GetValue());
|
R_TRY(g_usb_event_thread.Start().GetValue());
|
||||||
|
@ -245,9 +245,16 @@ namespace syscon::usb
|
||||||
|
|
||||||
Result CreateUsbEvents()
|
Result CreateUsbEvents()
|
||||||
{
|
{
|
||||||
|
if (g_usbCatchAllEvent.revent != INVALID_HANDLE)
|
||||||
|
return 0x99;
|
||||||
R_TRY(CreateCatchAllAvailableEvent());
|
R_TRY(CreateCatchAllAvailableEvent());
|
||||||
R_TRY(CreateDualshock3AvailableEvent());
|
R_TRY(CreateDualshock3AvailableEvent());
|
||||||
R_TRY(CreateDualshock4AvailableEvent());
|
R_TRY(CreateDualshock4AvailableEvent());
|
||||||
|
/*
|
||||||
|
R_TRY(g_usb_event_thread.CancelSynchronization().GetValue());
|
||||||
|
R_TRY(g_ds3_event_thread.CancelSynchronization().GetValue());
|
||||||
|
R_TRY(g_ds4_event_thread.CancelSynchronization().GetValue());
|
||||||
|
*/
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user