hid: Implement ReloadInputDevices

This commit is contained in:
fearlessTobi 2018-09-09 00:57:41 +02:00
parent af074ee422
commit 500e81429a
2 changed files with 6 additions and 4 deletions

View file

@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version // Licensed under GPLv2 or any later version
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include <atomic>
#include "common/logging/log.h" #include "common/logging/log.h"
#include "core/core.h" #include "core/core.h"
#include "core/core_timing.h" #include "core/core_timing.h"
@ -78,7 +77,7 @@ private:
SharedMemory mem{}; SharedMemory mem{};
std::memcpy(&mem, shared_mem->GetPointer(), sizeof(SharedMemory)); std::memcpy(&mem, shared_mem->GetPointer(), sizeof(SharedMemory));
if (is_device_reload_pending.exchange(false)) if (Settings::values.is_device_reload_pending.exchange(false))
LoadInputDevices(); LoadInputDevices();
// Set up controllers as neon red+blue Joy-Con attached to console // Set up controllers as neon red+blue Joy-Con attached to console
@ -267,7 +266,6 @@ private:
CoreTiming::EventType* pad_update_event; CoreTiming::EventType* pad_update_event;
// Stored input state info // Stored input state info
std::atomic<bool> is_device_reload_pending{true};
std::array<std::unique_ptr<Input::ButtonDevice>, Settings::NativeButton::NUM_BUTTONS_HID> std::array<std::unique_ptr<Input::ButtonDevice>, Settings::NativeButton::NUM_BUTTONS_HID>
buttons; buttons;
std::array<std::unique_ptr<Input::AnalogDevice>, Settings::NativeAnalog::NUM_STICKS_HID> sticks; std::array<std::unique_ptr<Input::AnalogDevice>, Settings::NativeAnalog::NUM_STICKS_HID> sticks;
@ -797,7 +795,9 @@ public:
} }
}; };
void ReloadInputDevices() {} void ReloadInputDevices() {
Settings::values.is_device_reload_pending.store(true);
}
void InstallInterfaces(SM::ServiceManager& service_manager) { void InstallInterfaces(SM::ServiceManager& service_manager) {
std::make_shared<Hid>()->InstallAsService(service_manager); std::make_shared<Hid>()->InstallAsService(service_manager);

View file

@ -5,6 +5,7 @@
#pragma once #pragma once
#include <array> #include <array>
#include <atomic>
#include <string> #include <string>
#include "common/common_types.h" #include "common/common_types.h"
@ -120,6 +121,7 @@ struct Values {
std::array<std::string, NativeAnalog::NumAnalogs> analogs; std::array<std::string, NativeAnalog::NumAnalogs> analogs;
std::string motion_device; std::string motion_device;
std::string touch_device; std::string touch_device;
std::atomic_bool is_device_reload_pending{true};
// Core // Core
bool use_cpu_jit; bool use_cpu_jit;