Files
P3DS-test/third_party/teakra/src/timer.h
wheremyfoodat 78002be334 Vendor Teakra, make emulator own DSP RAM and add DSP RAM to fastmem (#806)
* DSP: Own DSP RAM and add it to fastmem

* Vendor Teakra

* Add MacOS support to fastmem

* Fix MacOS fastmem paths

* Fix iOS build
2025-08-22 02:12:21 +03:00

53 lines
996 B
C++

#pragma once
#include <functional>
#include <utility>
#include "common_types.h"
#include "core_timing.h"
namespace Teakra {
class Timer : public CoreTiming::Callbacks {
public:
Timer(CoreTiming& core_timing);
enum class CountMode : u16 {
Single = 0,
AutoRestart = 1,
FreeRunning = 2,
EventCount = 3,
};
void Reset();
void Restart();
void Tick() override;
void TickEvent();
u64 GetMaxSkip() const override;
void Skip(u64 ticks) override;
u16 update_mmio = 0;
u16 pause = 0;
CountMode count_mode = CountMode::Single;
u16 scale = 0;
u16 start_high = 0;
u16 start_low = 0;
u32 counter = 0;
u16 counter_high = 0;
u16 counter_low = 0;
void SetInterruptHandler(std::function<void()> handler) {
interrupt_handler = std::move(handler);
}
private:
std::function<void()> interrupt_handler;
void UpdateMMIO();
class TimerTimingCallbacks;
};
} // namespace Teakra