#ifndef PKE_AT_PKE_AT_SETTINGS_HPP #define PKE_AT_PKE_AT_SETTINGS_HPP #include "pke/asset-manager.hpp" #include "pke/pk.h" enum PKE_AT_RUNTIME_FLAGS : uint8_t { PKE_AT_RUNTIME_FLAG_NONE = 0, PKE_AT_RUNTIME_FLAG_PLAYING = (1u << 0), PKE_AT_RUNTIME_FLAG_PAUSED = (1u << 1), }; struct pke_at_global_settings { struct pke_at_global_settings_mem { pk_membucket *bkt; pk_membucket *bkt_transient; } mem; struct pke_at_global_settings_bpm { float last; float target; float current; double lerp_delta; double lerp_delta_duration; double delta_per_beat; double delta_since_last_beat; } bpm; struct pke_at_global_settings_metronome { uint8_t beat; uint8_t beats_per_bar; AssetHandle beep; AssetHandle beep_accent; } mtrnm; struct pke_at_global_settings_rt { PKE_AT_RUNTIME_FLAGS flags; } rt; }; extern struct pke_at_global_settings g_at; #endif /* PKE_AT_PKE_AT_SETTINGS_HPP */