mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-10-01 12:41:09 +00:00
[video_core, hle] remove redundant parent references in system structs (#3908)
reworked a bit to remove references of parent objects and instead pass as arguments to methods to prevent useless reloads Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: maufeat <sahyno1996@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3908 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
@@ -16,7 +16,9 @@
|
||||
|
||||
namespace Service::HID {
|
||||
|
||||
NpadAbstractBatteryHandler::NpadAbstractBatteryHandler() {}
|
||||
NpadAbstractBatteryHandler::NpadAbstractBatteryHandler(Kernel::KernelCore& kernel_)
|
||||
: kernel{kernel_}
|
||||
{}
|
||||
|
||||
NpadAbstractBatteryHandler::~NpadAbstractBatteryHandler() = default;
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -7,6 +10,10 @@
|
||||
#include "core/hle/result.h"
|
||||
#include "hid_core/hid_types.h"
|
||||
|
||||
namespace Kernel {
|
||||
class KernelCore;
|
||||
}
|
||||
|
||||
namespace Service::HID {
|
||||
struct AppletResourceHolder;
|
||||
class NpadAbstractedPadHolder;
|
||||
@@ -15,7 +22,7 @@ class NpadAbstractPropertiesHandler;
|
||||
/// Handles Npad request from HID interfaces
|
||||
class NpadAbstractBatteryHandler final {
|
||||
public:
|
||||
explicit NpadAbstractBatteryHandler();
|
||||
explicit NpadAbstractBatteryHandler(Kernel::KernelCore& kernel_);
|
||||
~NpadAbstractBatteryHandler();
|
||||
|
||||
void SetAbstractPadHolder(NpadAbstractedPadHolder* holder);
|
||||
@@ -44,6 +51,7 @@ private:
|
||||
Core::HID::NpadPowerInfo left_battery{};
|
||||
Core::HID::NpadPowerInfo right_battery{};
|
||||
bool has_new_battery_data{};
|
||||
Kernel::KernelCore& kernel;
|
||||
};
|
||||
|
||||
} // namespace Service::HID
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
@@ -16,7 +16,9 @@
|
||||
|
||||
namespace Service::HID {
|
||||
|
||||
NpadAbstractButtonHandler::NpadAbstractButtonHandler() {}
|
||||
NpadAbstractButtonHandler::NpadAbstractButtonHandler(Kernel::KernelCore& kernel_)
|
||||
: kernel{kernel_}
|
||||
{}
|
||||
|
||||
NpadAbstractButtonHandler::~NpadAbstractButtonHandler() = default;
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -7,6 +10,10 @@
|
||||
#include "core/hle/result.h"
|
||||
#include "hid_core/hid_types.h"
|
||||
|
||||
namespace Kernel {
|
||||
class KernelCore;
|
||||
}
|
||||
|
||||
namespace Service::HID {
|
||||
struct NpadSharedMemoryEntry;
|
||||
|
||||
@@ -17,7 +24,7 @@ class NpadAbstractPropertiesHandler;
|
||||
/// Handles Npad request from HID interfaces
|
||||
class NpadAbstractButtonHandler final {
|
||||
public:
|
||||
explicit NpadAbstractButtonHandler();
|
||||
explicit NpadAbstractButtonHandler(Kernel::KernelCore& kernel_);
|
||||
~NpadAbstractButtonHandler();
|
||||
|
||||
void SetAbstractPadHolder(NpadAbstractedPadHolder* holder);
|
||||
@@ -70,6 +77,7 @@ private:
|
||||
|
||||
u64 gc_sampling_number{};
|
||||
GcTrigger gc_trigger_state{};
|
||||
Kernel::KernelCore& kernel;
|
||||
};
|
||||
|
||||
} // namespace Service::HID
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
@@ -14,7 +14,9 @@
|
||||
|
||||
namespace Service::HID {
|
||||
|
||||
NpadAbstractIrSensorHandler::NpadAbstractIrSensorHandler() {}
|
||||
NpadAbstractIrSensorHandler::NpadAbstractIrSensorHandler(Kernel::KernelCore& kernel_)
|
||||
: kernel{kernel_}
|
||||
{}
|
||||
|
||||
NpadAbstractIrSensorHandler::~NpadAbstractIrSensorHandler() = default;
|
||||
|
||||
@@ -52,7 +54,7 @@ void NpadAbstractIrSensorHandler::UpdateIrSensorState() {
|
||||
if (sensor_state == previous_state) {
|
||||
return;
|
||||
}
|
||||
ir_sensor_event->Signal();
|
||||
ir_sensor_event->Signal(kernel);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -77,7 +79,7 @@ void NpadAbstractIrSensorHandler::UpdateIrSensorState() {
|
||||
if (sensor_state == previous_state) {
|
||||
return;
|
||||
}
|
||||
ir_sensor_event->Signal();
|
||||
ir_sensor_event->Signal(kernel);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -86,7 +88,7 @@ void NpadAbstractIrSensorHandler::UpdateIrSensorState() {
|
||||
return;
|
||||
}
|
||||
|
||||
ir_sensor_event->Signal();
|
||||
ir_sensor_event->Signal(kernel);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -105,7 +107,7 @@ Result NpadAbstractIrSensorHandler::ActivateIrSensor(bool is_enabled) {
|
||||
}
|
||||
sensor_state = NpadIrSensorState::Available;
|
||||
}
|
||||
ir_sensor_event->Signal();
|
||||
ir_sensor_event->Signal(kernel);
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -12,6 +15,7 @@ class EmulatedController;
|
||||
}
|
||||
|
||||
namespace Kernel {
|
||||
class KernelCore;
|
||||
class KEvent;
|
||||
class KReadableEvent;
|
||||
} // namespace Kernel
|
||||
@@ -30,7 +34,7 @@ class NpadAbstractPropertiesHandler;
|
||||
/// Handles Npad request from HID interfaces
|
||||
class NpadAbstractIrSensorHandler final {
|
||||
public:
|
||||
explicit NpadAbstractIrSensorHandler();
|
||||
explicit NpadAbstractIrSensorHandler(Kernel::KernelCore& kernel_);
|
||||
~NpadAbstractIrSensorHandler();
|
||||
|
||||
void SetAbstractPadHolder(NpadAbstractedPadHolder* holder);
|
||||
@@ -56,5 +60,6 @@ private:
|
||||
Kernel::KEvent* ir_sensor_event{nullptr};
|
||||
Core::HID::EmulatedController* xcd_handle{};
|
||||
NpadIrSensorState sensor_state{};
|
||||
Kernel::KernelCore& kernel;
|
||||
};
|
||||
} // namespace Service::HID
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
@@ -15,7 +15,9 @@
|
||||
|
||||
namespace Service::HID {
|
||||
|
||||
NpadAbstractLedHandler::NpadAbstractLedHandler() {}
|
||||
NpadAbstractLedHandler::NpadAbstractLedHandler(Kernel::KernelCore& kernel_)
|
||||
: kernel{kernel_}
|
||||
{}
|
||||
|
||||
NpadAbstractLedHandler::~NpadAbstractLedHandler() = default;
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -7,6 +10,10 @@
|
||||
#include "core/hle/result.h"
|
||||
#include "hid_core/hid_types.h"
|
||||
|
||||
namespace Kernel {
|
||||
class KernelCore;
|
||||
}
|
||||
|
||||
namespace Service::HID {
|
||||
struct AppletResourceHolder;
|
||||
class NpadAbstractedPadHolder;
|
||||
@@ -15,7 +22,7 @@ class NpadAbstractPropertiesHandler;
|
||||
/// Handles Npad request from HID interfaces
|
||||
class NpadAbstractLedHandler final {
|
||||
public:
|
||||
explicit NpadAbstractLedHandler();
|
||||
explicit NpadAbstractLedHandler(Kernel::KernelCore& kernel_);
|
||||
~NpadAbstractLedHandler();
|
||||
|
||||
void SetAbstractPadHolder(NpadAbstractedPadHolder* holder);
|
||||
@@ -39,5 +46,6 @@ private:
|
||||
Core::HID::LedPattern left_pattern{0, 0, 0, 0};
|
||||
Core::HID::LedPattern right_pattern{0, 0, 0, 0};
|
||||
u64 led_interval{};
|
||||
Kernel::KernelCore& kernel;
|
||||
};
|
||||
} // namespace Service::HID
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
@@ -12,7 +12,9 @@
|
||||
|
||||
namespace Service::HID {
|
||||
|
||||
NpadAbstractMcuHandler::NpadAbstractMcuHandler() {}
|
||||
NpadAbstractMcuHandler::NpadAbstractMcuHandler(Kernel::KernelCore& kernel_)
|
||||
: kernel{kernel_}
|
||||
{}
|
||||
|
||||
NpadAbstractMcuHandler::~NpadAbstractMcuHandler() = default;
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -7,6 +10,10 @@
|
||||
#include "core/hle/result.h"
|
||||
#include "hid_core/hid_types.h"
|
||||
|
||||
namespace Kernel {
|
||||
class KernelCore;
|
||||
}
|
||||
|
||||
namespace Service::HID {
|
||||
struct IAbstractedPad;
|
||||
class NpadAbstractedPadHolder;
|
||||
@@ -28,7 +35,7 @@ static_assert(sizeof(NpadMcuHolder) == 0x10, "NpadMcuHolder is an invalid size")
|
||||
/// Handles Npad request from HID interfaces
|
||||
class NpadAbstractMcuHandler final {
|
||||
public:
|
||||
explicit NpadAbstractMcuHandler();
|
||||
explicit NpadAbstractMcuHandler(Kernel::KernelCore& kernel_);
|
||||
~NpadAbstractMcuHandler();
|
||||
|
||||
void SetAbstractPadHolder(NpadAbstractedPadHolder* holder);
|
||||
@@ -48,5 +55,6 @@ private:
|
||||
|
||||
s32 ref_counter{};
|
||||
std::array<NpadMcuHolder, 2> mcu_holder{};
|
||||
Kernel::KernelCore& kernel;
|
||||
};
|
||||
} // namespace Service::HID
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
@@ -14,7 +14,9 @@
|
||||
|
||||
namespace Service::HID {
|
||||
|
||||
NpadAbstractNfcHandler::NpadAbstractNfcHandler() {}
|
||||
NpadAbstractNfcHandler::NpadAbstractNfcHandler(Kernel::KernelCore& kernel_)
|
||||
: kernel{kernel_}
|
||||
{}
|
||||
|
||||
NpadAbstractNfcHandler::~NpadAbstractNfcHandler() = default;
|
||||
|
||||
@@ -48,13 +50,13 @@ void NpadAbstractNfcHandler::UpdateNfcState() {
|
||||
|
||||
if (count == 0) {
|
||||
if (sensor_state == NpadNfcState::Active) {
|
||||
nfc_activate_event->Signal();
|
||||
nfc_activate_event->Signal(kernel);
|
||||
}
|
||||
if (sensor_state == NpadNfcState::Unavailable) {
|
||||
return;
|
||||
}
|
||||
sensor_state = NpadNfcState::Unavailable;
|
||||
input_event->Signal();
|
||||
input_event->Signal(kernel);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -79,19 +81,18 @@ void NpadAbstractNfcHandler::UpdateNfcState() {
|
||||
return;
|
||||
}
|
||||
sensor_state = NpadNfcState::Available;
|
||||
input_event->Signal();
|
||||
input_event->Signal(kernel);
|
||||
return;
|
||||
}
|
||||
|
||||
if (sensor_state == NpadNfcState::Active) {
|
||||
nfc_activate_event->Signal();
|
||||
nfc_activate_event->Signal(kernel);
|
||||
}
|
||||
if (sensor_state == NpadNfcState::Unavailable) {
|
||||
return;
|
||||
}
|
||||
sensor_state = NpadNfcState::Unavailable;
|
||||
input_event->Signal();
|
||||
return;
|
||||
input_event->Signal(kernel);
|
||||
}
|
||||
|
||||
bool NpadAbstractNfcHandler::HasNfcSensor() {
|
||||
@@ -123,7 +124,7 @@ Result NpadAbstractNfcHandler::ActivateNfc(bool is_enabled) {
|
||||
}
|
||||
if (sensor_state != new_state) {
|
||||
sensor_state = new_state;
|
||||
nfc_activate_event->Signal();
|
||||
nfc_activate_event->Signal(kernel);
|
||||
}
|
||||
return ResultSuccess;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -8,7 +11,9 @@
|
||||
#include "hid_core/hid_types.h"
|
||||
|
||||
namespace Kernel {
|
||||
class KernelCore;
|
||||
class KReadableEvent;
|
||||
class KEvent;
|
||||
}
|
||||
|
||||
enum class NpadNfcState : u32 {
|
||||
@@ -24,7 +29,7 @@ class NpadAbstractPropertiesHandler;
|
||||
/// Handles Npad request from HID interfaces
|
||||
class NpadAbstractNfcHandler final {
|
||||
public:
|
||||
explicit NpadAbstractNfcHandler();
|
||||
explicit NpadAbstractNfcHandler(Kernel::KernelCore& kernel_);
|
||||
~NpadAbstractNfcHandler();
|
||||
|
||||
void SetAbstractPadHolder(NpadAbstractedPadHolder* holder);
|
||||
@@ -53,5 +58,6 @@ private:
|
||||
Kernel::KEvent* input_event{nullptr};
|
||||
u64 xcd_handle{};
|
||||
NpadNfcState sensor_state{NpadNfcState::Unavailable};
|
||||
Kernel::KernelCore& kernel;
|
||||
};
|
||||
} // namespace Service::HID
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
@@ -12,7 +12,20 @@
|
||||
|
||||
namespace Service::HID {
|
||||
|
||||
AbstractPad::AbstractPad() {}
|
||||
AbstractPad::AbstractPad(Kernel::KernelCore& kernel_)
|
||||
//: abstract_pad_holder{kernel_}
|
||||
: properties_handler{kernel_}
|
||||
, led_handler{kernel_}
|
||||
, ir_sensor_handler{kernel_}
|
||||
, nfc_handler{kernel_}
|
||||
, mcu_handler{kernel_}
|
||||
, vibration_handler{kernel_}
|
||||
, sixaxis_handler{kernel_}
|
||||
, button_handler{kernel_}
|
||||
, battery_handler{kernel_}
|
||||
, palma_handler{kernel_}
|
||||
, kernel{kernel_}
|
||||
{}
|
||||
|
||||
AbstractPad::~AbstractPad() = default;
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -27,6 +30,10 @@
|
||||
#include "hid_core/resources/vibration/n64_vibration_device.h"
|
||||
#include "hid_core/resources/vibration/vibration_device.h"
|
||||
|
||||
namespace Kernel {
|
||||
class KernelCore;
|
||||
}
|
||||
|
||||
namespace Service::HID {
|
||||
class AppletResource;
|
||||
class SixAxisResource;
|
||||
@@ -49,7 +56,7 @@ struct HandheldConfig;
|
||||
/// Handles Npad request from HID interfaces
|
||||
class AbstractPad final {
|
||||
public:
|
||||
explicit AbstractPad();
|
||||
explicit AbstractPad(Kernel::KernelCore& kernel_);
|
||||
~AbstractPad();
|
||||
|
||||
void SetExternals(AppletResourceHolder* applet_resource,
|
||||
@@ -88,17 +95,19 @@ public:
|
||||
|
||||
private:
|
||||
AppletResourceHolder* applet_resource_holder{nullptr};
|
||||
|
||||
// TODO: fix
|
||||
NpadAbstractedPadHolder abstract_pad_holder{};
|
||||
NpadAbstractPropertiesHandler properties_handler{};
|
||||
NpadAbstractLedHandler led_handler{};
|
||||
NpadAbstractIrSensorHandler ir_sensor_handler{};
|
||||
NpadAbstractNfcHandler nfc_handler{};
|
||||
NpadAbstractMcuHandler mcu_handler{};
|
||||
NpadAbstractVibrationHandler vibration_handler{};
|
||||
NpadAbstractSixAxisHandler sixaxis_handler{};
|
||||
NpadAbstractButtonHandler button_handler{};
|
||||
NpadAbstractBatteryHandler battery_handler{};
|
||||
NpadAbstractPalmaHandler palma_handler{};
|
||||
NpadAbstractPropertiesHandler properties_handler;
|
||||
NpadAbstractLedHandler led_handler;
|
||||
NpadAbstractIrSensorHandler ir_sensor_handler;
|
||||
NpadAbstractNfcHandler nfc_handler;
|
||||
NpadAbstractMcuHandler mcu_handler;
|
||||
NpadAbstractVibrationHandler vibration_handler;
|
||||
NpadAbstractSixAxisHandler sixaxis_handler;
|
||||
NpadAbstractButtonHandler button_handler;
|
||||
NpadAbstractBatteryHandler battery_handler;
|
||||
NpadAbstractPalmaHandler palma_handler;
|
||||
|
||||
NpadN64VibrationDevice vibration_n64{};
|
||||
NpadVibrationDevice vibration_left{};
|
||||
@@ -114,6 +123,7 @@ private:
|
||||
|
||||
s32 ref_counter{};
|
||||
Core::HID::NpadInterfaceType interface_type{Core::HID::NpadInterfaceType::None};
|
||||
Kernel::KernelCore& kernel;
|
||||
};
|
||||
|
||||
using FullAbstractPad = std::array<AbstractPad, MaxSupportedNpadIdTypes>;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
@@ -10,7 +10,9 @@
|
||||
|
||||
namespace Service::HID {
|
||||
|
||||
NpadAbstractPalmaHandler::NpadAbstractPalmaHandler() {}
|
||||
NpadAbstractPalmaHandler::NpadAbstractPalmaHandler(Kernel::KernelCore& kernel_)
|
||||
: kernel{kernel_}
|
||||
{}
|
||||
|
||||
NpadAbstractPalmaHandler::~NpadAbstractPalmaHandler() = default;
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -7,6 +10,10 @@
|
||||
#include "core/hle/result.h"
|
||||
#include "hid_core/hid_types.h"
|
||||
|
||||
namespace Kernel {
|
||||
class KernelCore;
|
||||
}
|
||||
|
||||
namespace Service::HID {
|
||||
class NpadAbstractedPadHolder;
|
||||
class NpadAbstractPropertiesHandler;
|
||||
@@ -14,7 +21,7 @@ class PalmaResource;
|
||||
|
||||
class NpadAbstractPalmaHandler final {
|
||||
public:
|
||||
explicit NpadAbstractPalmaHandler();
|
||||
explicit NpadAbstractPalmaHandler(Kernel::KernelCore& kernel_);
|
||||
~NpadAbstractPalmaHandler();
|
||||
|
||||
void SetAbstractPadHolder(NpadAbstractedPadHolder* holder);
|
||||
@@ -32,6 +39,7 @@ private:
|
||||
PalmaResource* palma_resource{nullptr};
|
||||
|
||||
s32 ref_counter{};
|
||||
Kernel::KernelCore& kernel;
|
||||
};
|
||||
|
||||
} // namespace Service::HID
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
@@ -14,7 +14,9 @@
|
||||
|
||||
namespace Service::HID {
|
||||
|
||||
NpadAbstractPropertiesHandler::NpadAbstractPropertiesHandler() {}
|
||||
NpadAbstractPropertiesHandler::NpadAbstractPropertiesHandler(Kernel::KernelCore& kernel_)
|
||||
: kernel{kernel_}
|
||||
{}
|
||||
|
||||
NpadAbstractPropertiesHandler::~NpadAbstractPropertiesHandler() = default;
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -10,6 +13,10 @@
|
||||
#include "hid_core/hid_types.h"
|
||||
#include "hid_core/resources/npad/npad_types.h"
|
||||
|
||||
namespace Kernel {
|
||||
class KernelCore;
|
||||
}
|
||||
|
||||
namespace Service::HID {
|
||||
struct NpadSharedMemoryEntry;
|
||||
|
||||
@@ -25,7 +32,7 @@ struct ColorProperties {
|
||||
/// Handles Npad request from HID interfaces
|
||||
class NpadAbstractPropertiesHandler final {
|
||||
public:
|
||||
explicit NpadAbstractPropertiesHandler();
|
||||
explicit NpadAbstractPropertiesHandler(Kernel::KernelCore& kernel_);
|
||||
~NpadAbstractPropertiesHandler();
|
||||
|
||||
void SetAbstractPadHolder(NpadAbstractedPadHolder* holder);
|
||||
@@ -82,5 +89,6 @@ private:
|
||||
ColorProperties fullkey_color{};
|
||||
ColorProperties left_color{};
|
||||
ColorProperties right_color{};
|
||||
Kernel::KernelCore& kernel;
|
||||
};
|
||||
} // namespace Service::HID
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
@@ -15,7 +15,9 @@
|
||||
|
||||
namespace Service::HID {
|
||||
|
||||
NpadAbstractSixAxisHandler::NpadAbstractSixAxisHandler() {}
|
||||
NpadAbstractSixAxisHandler::NpadAbstractSixAxisHandler(Kernel::KernelCore& kernel_)
|
||||
: kernel{kernel_}
|
||||
{}
|
||||
|
||||
NpadAbstractSixAxisHandler::~NpadAbstractSixAxisHandler() = default;
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -6,6 +9,11 @@
|
||||
#include "common/common_types.h"
|
||||
#include "core/hle/result.h"
|
||||
#include "hid_core/hid_types.h"
|
||||
#include "hid_core/resources/shared_memory_format.h"
|
||||
|
||||
namespace Kernel {
|
||||
class KernelCore;
|
||||
}
|
||||
|
||||
namespace Service::HID {
|
||||
class SixAxisResource;
|
||||
@@ -17,7 +25,7 @@ struct NpadSixAxisSensorLifo;
|
||||
/// Handles Npad request from HID interfaces
|
||||
class NpadAbstractSixAxisHandler final {
|
||||
public:
|
||||
explicit NpadAbstractSixAxisHandler();
|
||||
explicit NpadAbstractSixAxisHandler(Kernel::KernelCore& kernel_);
|
||||
~NpadAbstractSixAxisHandler();
|
||||
|
||||
void SetAbstractPadHolder(NpadAbstractedPadHolder* holder);
|
||||
@@ -56,6 +64,7 @@ private:
|
||||
SixAxisResource* six_axis_resource{nullptr};
|
||||
|
||||
s32 ref_counter{};
|
||||
Kernel::KernelCore& kernel;
|
||||
};
|
||||
|
||||
} // namespace Service::HID
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
@@ -19,7 +19,9 @@
|
||||
|
||||
namespace Service::HID {
|
||||
|
||||
NpadAbstractVibrationHandler::NpadAbstractVibrationHandler() {}
|
||||
NpadAbstractVibrationHandler::NpadAbstractVibrationHandler(Kernel::KernelCore& kernel_)
|
||||
: kernel{kernel_}
|
||||
{}
|
||||
|
||||
NpadAbstractVibrationHandler::~NpadAbstractVibrationHandler() = default;
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -9,6 +12,10 @@
|
||||
#include "core/hle/result.h"
|
||||
#include "hid_core/hid_types.h"
|
||||
|
||||
namespace Kernel {
|
||||
class KernelCore;
|
||||
}
|
||||
|
||||
namespace Core::HID {
|
||||
class HIDCore;
|
||||
}
|
||||
@@ -25,7 +32,7 @@ class NpadVibration;
|
||||
/// Keeps track of battery levels and updates npad battery shared memory values
|
||||
class NpadAbstractVibrationHandler final {
|
||||
public:
|
||||
explicit NpadAbstractVibrationHandler();
|
||||
explicit NpadAbstractVibrationHandler(Kernel::KernelCore& kernel_);
|
||||
~NpadAbstractVibrationHandler();
|
||||
|
||||
void SetAbstractPadHolder(NpadAbstractedPadHolder* holder);
|
||||
@@ -55,5 +62,6 @@ private:
|
||||
NpadGcVibrationDevice* gc_vibration_device{nullptr};
|
||||
NpadVibration* vibration_handler{nullptr};
|
||||
s32 ref_counter{};
|
||||
Kernel::KernelCore& kernel;
|
||||
};
|
||||
} // namespace Service::HID
|
||||
|
||||
Reference in New Issue
Block a user