20 lines
609 B
C++
20 lines
609 B
C++
#pragma once
|
|
#include <cstdint>
|
|
|
|
class audio_clock {
|
|
public:
|
|
audio_clock();
|
|
void set_sample_tick(uint64_t tick);
|
|
void set_midi_tick(uint64_t tick);
|
|
|
|
[[nodiscard]] uint64_t get_sample_tick() const { return sample_tick_; }
|
|
[[nodiscard]] uint64_t get_midi_tick() const { return midi_tick_; }
|
|
[[nodiscard]] uint64_t get_sample_tick_diff(uint64_t tick) const { return tick - sample_tick_; }
|
|
[[nodiscard]] uint64_t get_midi_tick_diff(uint64_t tick) const { return tick - midi_tick_; }
|
|
private:
|
|
void update_midi_tick();
|
|
uint64_t sample_tick_ = 0;
|
|
uint64_t midi_tick_ = 0;
|
|
};
|
|
|