Handle Amiibo tag events better
This commit is contained in:
@@ -72,7 +72,15 @@ public:
|
||||
|
||||
// Signals an event, returns true on success or false if the event does not exist
|
||||
bool signalEvent(Handle e);
|
||||
private:
|
||||
|
||||
void clearEvent(Handle e) {
|
||||
KernelObject* object = getObject(e, KernelObjectType::Event);
|
||||
if (object != nullptr) {
|
||||
object->getData<Event>()->fired = false;
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
void signalArbiter(u32 waitingAddress, s32 threadCount);
|
||||
void sleepThread(s64 ns);
|
||||
void sleepThreadOnArbiter(u32 waitingAddress);
|
||||
|
||||
@@ -70,6 +70,14 @@ bool NFCService::loadAmiibo(const std::filesystem::path& path) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (tagOutOfRangeEvent.has_value()) {
|
||||
kernel.clearEvent(tagOutOfRangeEvent.value());
|
||||
}
|
||||
|
||||
if (tagInRangeEvent.has_value()) {
|
||||
kernel.signalEvent(tagInRangeEvent.value());
|
||||
}
|
||||
|
||||
file.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user