2022-04-23 04:59:50 -04:00
|
|
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
2018-10-06 00:23:21 +10:00
|
|
|
|
2024-01-04 20:37:43 -06:00
|
|
|
#include "hid_core/resources/controller_base.h"
|
2018-10-06 00:23:21 +10:00
|
|
|
|
|
|
|
namespace Service::HID {
|
2018-10-17 20:28:16 -04:00
|
|
|
|
2021-11-04 19:05:58 -06:00
|
|
|
ControllerBase::ControllerBase(Core::HID::HIDCore& hid_core_) : hid_core(hid_core_) {}
|
2018-10-06 13:14:42 +10:00
|
|
|
ControllerBase::~ControllerBase() = default;
|
|
|
|
|
2023-11-16 17:58:05 -06:00
|
|
|
Result ControllerBase::Activate() {
|
2018-10-06 00:23:21 +10:00
|
|
|
if (is_activated) {
|
2023-11-16 17:58:05 -06:00
|
|
|
return ResultSuccess;
|
2018-10-06 00:23:21 +10:00
|
|
|
}
|
|
|
|
is_activated = true;
|
2019-09-22 16:41:34 +10:00
|
|
|
OnInit();
|
2023-11-16 17:58:05 -06:00
|
|
|
return ResultSuccess;
|
|
|
|
}
|
|
|
|
|
|
|
|
Result ControllerBase::Activate(u64 aruid) {
|
|
|
|
return Activate();
|
2018-10-06 00:23:21 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
void ControllerBase::DeactivateController() {
|
|
|
|
if (is_activated) {
|
|
|
|
OnRelease();
|
|
|
|
}
|
|
|
|
is_activated = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool ControllerBase::IsControllerActivated() const {
|
|
|
|
return is_activated;
|
|
|
|
}
|
2023-12-31 00:42:23 -06:00
|
|
|
|
2024-01-01 21:33:07 -06:00
|
|
|
void ControllerBase::SetAppletResource(std::shared_ptr<AppletResource> resource,
|
|
|
|
std::recursive_mutex* resource_mutex) {
|
2023-12-31 00:42:23 -06:00
|
|
|
applet_resource = resource;
|
2024-01-01 21:33:07 -06:00
|
|
|
shared_mutex = resource_mutex;
|
2023-12-31 00:42:23 -06:00
|
|
|
}
|
|
|
|
|
2018-10-06 13:14:42 +10:00
|
|
|
} // namespace Service::HID
|