57 lines
2.7 KiB
C++
Executable File
57 lines
2.7 KiB
C++
Executable File
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#pragma once
|
|
|
|
#include "core/hle/service/psc/time/alarms.h"
|
|
#include "core/hle/service/psc/time/clocks/context_writers.h"
|
|
#include "core/hle/service/psc/time/clocks/ephemeral_network_system_clock_core.h"
|
|
#include "core/hle/service/psc/time/clocks/standard_local_system_clock_core.h"
|
|
#include "core/hle/service/psc/time/clocks/standard_network_system_clock_core.h"
|
|
#include "core/hle/service/psc/time/clocks/standard_steady_clock_core.h"
|
|
#include "core/hle/service/psc/time/clocks/standard_user_system_clock_core.h"
|
|
#include "core/hle/service/psc/time/clocks/tick_based_steady_clock_core.h"
|
|
#include "core/hle/service/psc/time/power_state_request_manager.h"
|
|
#include "core/hle/service/psc/time/shared_memory.h"
|
|
#include "core/hle/service/psc/time/time_zone.h"
|
|
|
|
namespace Core {
|
|
class System;
|
|
}
|
|
|
|
namespace Service::PSC::Time {
|
|
class TimeManager {
|
|
public:
|
|
explicit TimeManager(Core::System& system)
|
|
: m_system{system}, m_standard_steady_clock{system}, m_tick_based_steady_clock{m_system},
|
|
m_standard_local_system_clock{m_standard_steady_clock},
|
|
m_standard_network_system_clock{m_standard_steady_clock},
|
|
m_standard_user_system_clock{m_system, m_standard_local_system_clock,
|
|
m_standard_network_system_clock},
|
|
m_ephemeral_network_clock{m_tick_based_steady_clock}, m_shared_memory{m_system},
|
|
m_power_state_request_manager{m_system}, m_alarms{m_system, m_standard_steady_clock,
|
|
m_power_state_request_manager},
|
|
m_local_system_clock_context_writer{m_system, m_shared_memory},
|
|
m_network_system_clock_context_writer{m_system, m_shared_memory,
|
|
m_standard_user_system_clock},
|
|
m_ephemeral_network_clock_context_writer{m_system} {}
|
|
|
|
Core::System& m_system;
|
|
|
|
StandardSteadyClockCore m_standard_steady_clock;
|
|
TickBasedSteadyClockCore m_tick_based_steady_clock;
|
|
StandardLocalSystemClockCore m_standard_local_system_clock;
|
|
StandardNetworkSystemClockCore m_standard_network_system_clock;
|
|
StandardUserSystemClockCore m_standard_user_system_clock;
|
|
EphemeralNetworkSystemClockCore m_ephemeral_network_clock;
|
|
TimeZone m_time_zone;
|
|
SharedMemory m_shared_memory;
|
|
PowerStateRequestManager m_power_state_request_manager;
|
|
Alarms m_alarms;
|
|
LocalSystemClockContextWriter m_local_system_clock_context_writer;
|
|
NetworkSystemClockContextWriter m_network_system_clock_context_writer;
|
|
EphemeralNetworkSystemClockContextWriter m_ephemeral_network_clock_context_writer;
|
|
};
|
|
|
|
} // namespace Service::PSC::Time
|