htc: implement htclow listener thread

This commit is contained in:
Michael Scire 2021-02-08 05:45:23 -08:00 committed by SciresM
parent c9c41e0e8d
commit 2341f18edd
21 changed files with 669 additions and 11 deletions

View file

@ -27,4 +27,25 @@ namespace ams::htclow {
ChannelId _channel_id;
};
enum ChannelState {
ChannelState_Connectable = 0,
ChannelState_Unconnectable = 1,
ChannelState_Connected = 2,
ChannelState_Shutdown = 3,
};
constexpr bool IsStateTransitionAllowed(ChannelState from, ChannelState to) {
switch (from) {
case ChannelState_Connectable:
return to == ChannelState_Unconnectable || to == ChannelState_Connected || to == ChannelState_Shutdown;
case ChannelState_Unconnectable:
return to == ChannelState_Connectable || to == ChannelState_Shutdown;
case ChannelState_Connected:
return to == ChannelState_Shutdown;
case ChannelState_Shutdown:
return to == ChannelState_Shutdown;
AMS_UNREACHABLE_DEFAULT_CASE();
}
}
}