Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
automation_limits.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4
5namespace pulp::playback {
6
13 static constexpr std::uint32_t kMaximumDevicePlacementsPerTrack = 1'024;
14 static constexpr std::uint32_t kMaximumLanesPerTrack = 1'024;
15 static constexpr std::uint32_t kMaximumPointsPerLane = 65'536;
16 static constexpr std::uint32_t kMaximumPointsPerTrack = 262'144;
17 static constexpr std::uint32_t kMaximumIntersectingSegmentsPerBlock = 65'536;
18 static constexpr std::uint32_t kMaximumEventsPerDevicePerBlock = 1'024;
19
21 std::uint32_t max_lanes_per_track = 256;
22 std::uint32_t max_points_per_lane = 16'384;
23 std::uint32_t max_points_per_track = 65'536;
29 std::uint32_t max_events_per_device_per_block = 1'024;
30
31 static constexpr AutomationPlaybackLimits web_defaults() noexcept {
32 return {
33 .max_device_placements_per_track = 32,
34 .max_lanes_per_track = 128,
35 .max_points_per_lane = 8'192,
36 .max_points_per_track = 32'768,
37 .max_intersecting_segments_per_block = 4'096,
38 .max_events_per_device_per_block = 1'024,
39 };
40 }
41
42 static constexpr AutomationPlaybackLimits platform_defaults() noexcept {
43#if defined(__EMSCRIPTEN__) || defined(__wasi__)
44 return web_defaults();
45#else
46 return {};
47#endif
48 }
49
63
64 constexpr bool operator==(const AutomationPlaybackLimits&) const = default;
65};
66
67} // namespace pulp::playback
Definition audio_renderer.hpp:20
Preparation and callback-work ceilings shared by document compilation and track automation rendering.
Definition automation_limits.hpp:12
static constexpr std::uint32_t kMaximumEventsPerDevicePerBlock
Definition automation_limits.hpp:18
static constexpr std::uint32_t kMaximumPointsPerTrack
Definition automation_limits.hpp:16
constexpr bool valid() const noexcept
Definition automation_limits.hpp:50
std::uint32_t max_device_placements_per_track
Definition automation_limits.hpp:20
std::uint32_t max_events_per_device_per_block
Lowers the published event count but not the fixed per-device backing arrays, which remain sized to k...
Definition automation_limits.hpp:29
static constexpr AutomationPlaybackLimits platform_defaults() noexcept
Definition automation_limits.hpp:42
std::uint32_t max_intersecting_segments_per_block
Bounds the compiled segments whose topology a block render may inspect across all lanes and active tr...
Definition automation_limits.hpp:26
static constexpr std::uint32_t kMaximumLanesPerTrack
Definition automation_limits.hpp:14
static constexpr std::uint32_t kMaximumIntersectingSegmentsPerBlock
Definition automation_limits.hpp:17
std::uint32_t max_points_per_lane
Definition automation_limits.hpp:22
static constexpr std::uint32_t kMaximumPointsPerLane
Definition automation_limits.hpp:15
std::uint32_t max_lanes_per_track
Definition automation_limits.hpp:21
constexpr bool operator==(const AutomationPlaybackLimits &) const =default
std::uint32_t max_points_per_track
Definition automation_limits.hpp:23
static constexpr AutomationPlaybackLimits web_defaults() noexcept
Definition automation_limits.hpp:31
static constexpr std::uint32_t kMaximumDevicePlacementsPerTrack
Definition automation_limits.hpp:13