49 : samples_to_wait(samples)
61 [[nodiscard]]
inline bool await_ready()
const {
return samples_to_wait == 0; }
80 void await_suspend(std::coroutine_handle<promise_handle> h)
noexcept;
116 [[nodiscard]]
constexpr bool await_ready() const noexcept {
return num_cycles == 0; }
120 auto& promise = h.promise();
121 promise.next_buffer_cycle += num_cycles;
122 promise.delay_amount = num_cycles;
123 promise.active_delay_context = Vruta::DelayContext::BUFFER_BASED;
149 return frames_to_wait == 0;
154 void await_suspend(std::coroutine_handle<Vruta::graphics_promise> h)
noexcept;
164 return samples_to_wait == 0 && frames_to_wait == 0;
169 void await_suspend(std::coroutine_handle<Vruta::complex_promise> h)
noexcept;
constexpr void await_resume() const noexcept
void await_suspend(std::coroutine_handle< promise_handle > h) noexcept
BufferDelay(uint64_t cycles)
constexpr bool await_ready() const noexcept
Awaiter for suspending until a buffer cycle boundary.
constexpr bool await_ready() const noexcept
constexpr void await_resume() const noexcept
graphics-domain awaiter for frame-accurate timing delays
constexpr void await_resume() const noexcept
constexpr bool await_ready() const noexcept
uint64_t samples_to_wait
Number of time units to wait before resuming the coroutine.
void await_resume()
Called when the coroutine is resumed after the delay.
SampleDelay(uint64_t samples)
bool await_ready() const
Checks if the delay should be bypassed.
Awaitable object for precise sample-accurate timing delays.
Coroutine promise type for audio processing tasks with sample-accurate timing.
Coroutine promise type for graphics processing tasks with frame-accurate timing.