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