Merge pull request #4022 from zhaowenlan1779/port-yuzu-837
Port yuzu-emu/yuzu#837 from yuzu
This commit is contained in:
commit
6a9e18a49a
3 changed files with 23 additions and 10 deletions
|
@ -301,11 +301,11 @@ std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeTimer::GetChildren() const {
|
||||||
const auto& timer = static_cast<const Kernel::Timer&>(object);
|
const auto& timer = static_cast<const Kernel::Timer&>(object);
|
||||||
|
|
||||||
list.push_back(std::make_unique<WaitTreeText>(
|
list.push_back(std::make_unique<WaitTreeText>(
|
||||||
tr("reset type = %1").arg(GetResetTypeQString(timer.reset_type))));
|
tr("reset type = %1").arg(GetResetTypeQString(timer.GetResetType()))));
|
||||||
list.push_back(
|
list.push_back(
|
||||||
std::make_unique<WaitTreeText>(tr("initial delay = %1").arg(timer.initial_delay)));
|
std::make_unique<WaitTreeText>(tr("initial delay = %1").arg(timer.GetInitialDelay())));
|
||||||
list.push_back(
|
list.push_back(
|
||||||
std::make_unique<WaitTreeText>(tr("interval delay = %1").arg(timer.interval_delay)));
|
std::make_unique<WaitTreeText>(tr("interval delay = %1").arg(timer.GetIntervalDelay())));
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -981,8 +981,9 @@ static ResultCode ClearEvent(Handle handle) {
|
||||||
|
|
||||||
/// Creates a timer
|
/// Creates a timer
|
||||||
static ResultCode CreateTimer(Handle* out_handle, u32 reset_type) {
|
static ResultCode CreateTimer(Handle* out_handle, u32 reset_type) {
|
||||||
SharedPtr<Timer> timer = Timer::Create(static_cast<ResetType>(reset_type));
|
SharedPtr<Timer> timer =
|
||||||
timer->name = Common::StringFromFormat("timer-%08x", Core::CPU().GetReg(14));
|
Timer::Create(static_cast<ResetType>(reset_type),
|
||||||
|
Common::StringFromFormat("timer-%08x", Core::CPU().GetReg(14)));
|
||||||
CASCADE_RESULT(*out_handle, g_handle_table.Create(std::move(timer)));
|
CASCADE_RESULT(*out_handle, g_handle_table.Create(std::move(timer)));
|
||||||
|
|
||||||
LOG_TRACE(Kernel_SVC, "called reset_type=0x{:08X} : created handle=0x{:08X}", reset_type,
|
LOG_TRACE(Kernel_SVC, "called reset_type=0x{:08X} : created handle=0x{:08X}", reset_type,
|
||||||
|
|
|
@ -32,13 +32,17 @@ public:
|
||||||
return HANDLE_TYPE;
|
return HANDLE_TYPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ResetType reset_type; ///< The ResetType of this timer
|
ResetType GetResetType() const {
|
||||||
|
return reset_type;
|
||||||
|
}
|
||||||
|
|
||||||
bool signaled; ///< Whether the timer has been signaled or not
|
u64 GetInitialDelay() const {
|
||||||
std::string name; ///< Name of timer (optional)
|
return initial_delay;
|
||||||
|
}
|
||||||
|
|
||||||
u64 initial_delay; ///< The delay until the timer fires for the first time
|
u64 GetIntervalDelay() const {
|
||||||
u64 interval_delay; ///< The delay until the timer fires after the first time
|
return interval_delay;
|
||||||
|
}
|
||||||
|
|
||||||
bool ShouldWait(Thread* thread) const override;
|
bool ShouldWait(Thread* thread) const override;
|
||||||
void Acquire(Thread* thread) override;
|
void Acquire(Thread* thread) override;
|
||||||
|
@ -67,6 +71,14 @@ private:
|
||||||
Timer();
|
Timer();
|
||||||
~Timer() override;
|
~Timer() override;
|
||||||
|
|
||||||
|
ResetType reset_type; ///< The ResetType of this timer
|
||||||
|
|
||||||
|
u64 initial_delay; ///< The delay until the timer fires for the first time
|
||||||
|
u64 interval_delay; ///< The delay until the timer fires after the first time
|
||||||
|
|
||||||
|
bool signaled; ///< Whether the timer has been signaled or not
|
||||||
|
std::string name; ///< Name of timer (optional)
|
||||||
|
|
||||||
/// Handle used as userdata to reference this object when inserting into the CoreTiming queue.
|
/// Handle used as userdata to reference this object when inserting into the CoreTiming queue.
|
||||||
Handle callback_handle;
|
Handle callback_handle;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue