16 units::sample_t timeline_position;
17 bool transport_recording{};
18 units::sample_u32_t nframes;
19 std::vector<float> l_frames;
20 std::vector<float> r_frames;
22 static void write_to_slot (
24 units::sample_t timeline_position,
25 bool transport_recording,
26 std::span<const float> l_data,
27 std::span<const float> r_data)
noexcept [[clang::nonblocking]]
29 slot.timeline_position = timeline_position;
30 slot.transport_recording = transport_recording;
31 slot.nframes = units::samples (l_data.size ());
33 std::span (slot.l_frames).subspan (0, l_data.size ()), l_data);
35 std::span (slot.r_frames).subspan (0, r_data.size ()), r_data);
42 slot.timeline_position = source.timeline_position;
43 slot.transport_recording = source.transport_recording;
44 slot.nframes = source.nframes;
45 const auto n = source.nframes.in<
size_t> (units::samples);
46 slot.l_frames.assign (
47 source.l_frames.begin (), source.l_frames.begin () + n);
48 slot.r_frames.assign (
49 source.r_frames.begin (), source.r_frames.begin () + n);
55 const auto new_size = block_length.in (units::samples);
56 slot.l_frames.resize (new_size);
57 slot.r_frames.resize (new_size);