mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 12:10:09 +02:00
Add a RAII wrapper around SetTimer()
This commit is contained in:
@@ -17,3 +17,28 @@
|
||||
#include "utils.h"
|
||||
|
||||
Win32Thread::Win32Thread() : handle(nullptr, nullptr) {}
|
||||
|
||||
Win32Timer::Win32Timer(HWND window_handle,
|
||||
size_t timer_id,
|
||||
unsigned int interval_ms)
|
||||
: window_handle(window_handle), timer_id(timer_id) {
|
||||
SetTimer(window_handle, timer_id, interval_ms, nullptr);
|
||||
}
|
||||
|
||||
Win32Timer::~Win32Timer() {
|
||||
if (timer_id.has_value()) {
|
||||
KillTimer(window_handle, timer_id.value());
|
||||
}
|
||||
}
|
||||
|
||||
Win32Timer::Win32Timer(Win32Timer&& o) {
|
||||
timer_id = o.timer_id;
|
||||
o.timer_id = std::nullopt;
|
||||
}
|
||||
|
||||
Win32Timer& Win32Timer::operator=(Win32Timer&& o) {
|
||||
timer_id = o.timer_id;
|
||||
o.timer_id = std::nullopt;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user