Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
ratchet.hpp File Reference
#include <pulp/timebase/tick.hpp>
#include <bit>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <span>

Go to the source code of this file.

Classes

struct  pulp::timebase::RatchetProjectionResult
class  pulp::timebase::detail::RatchetSubdivisionCursor

Namespaces

namespace  pulp
namespace  pulp::timebase
namespace  pulp::timebase::detail

Enumerations

enum class  pulp::timebase::RatchetError {
  pulp::timebase::None , pulp::timebase::InvalidInterval , pulp::timebase::InvalidHitCount , pulp::timebase::CapacityExceeded ,
  pulp::timebase::InsufficientResolution , pulp::timebase::InvalidWindow , pulp::timebase::OutputTooSmall
}

Functions

constexpr std::uint64_t pulp::timebase::detail::ordered_tick_coordinate (TickPosition position) noexcept
constexpr TickPosition pulp::timebase::detail::tick_from_ordered_coordinate (std::uint64_t coordinate) noexcept
template<std::size_t MaximumHits = 64>
constexpr RatchetProjectionResult pulp::timebase::project_ratchet_interval (TickPosition interval_begin, TickPosition interval_end, std::size_t hit_count, TickPosition window_begin, TickPosition window_end, std::span< TickPosition > output) noexcept
 Projects a bounded ratchet burst into an exact clock interval.

Variables

constexpr std::uint64_t pulp::timebase::detail::kSignedTickOrderBit = std::uint64_t{1} << 63U