21 const std::shared_ptr<Buffers::Buffer>& buf,
24 float x_min,
float x_max,
float row_h,
int depth)
32 std::vector<EntrySpec> entrys {
34 .
label =
"default_proc",
36 auto p = buf->get_default_processor();
42 auto chain = buf->get_processing_chain();
44 auto pre =
chain->get_preprocessor(buf);
52 const auto& processors =
chain->get_processors(buf);
53 for (
size_t i = 0; i < processors.size(); ++i) {
54 auto p = processors[i];
56 .
label =
"chain[" + std::to_string(i) +
"]",
63 auto post =
chain->get_postprocessor(buf);
71 auto final_p =
chain->get_final_processor(buf);
83 surface, cursor, ind, x_max, row_h,
false);
86 result.
group = std::move(group);
98 float x_min,
float x_max,
float row_h,
int depth)
104 const auto children = root->get_child_buffers();
107 const std::string header_label =
"ch " + std::to_string(channel);
109 std::vector<EntrySpec> entrys {
112 .reader = [root] {
return std::to_string(root->get_num_samples()); },
116 .reader = [root] {
return std::to_string(root->get_num_children()); },
123 surface, cursor, ind, x_max, row_h,
false);
126 result.
group = std::move(group);
128 auto root_result =
buffer(
129 root, surface, cursor,
130 x_min, x_max, row_h,
depth + 1);
132 result.
children.push_back(std::move(root_result));
134 for (
const auto& child : children) {
135 auto child_result =
buffer(
136 child, surface, cursor,
137 x_min, x_max, row_h,
depth + 2);
139 result.
children.push_back(std::move(child_result));
153 float x_min,
float x_max,
float row_h,
int depth)
159 +
" [" + std::to_string(ch_count) +
" ch]";
162 std::vector<EntrySpec> entrys {
165 .reader = [&bm, token] {
return std::to_string(bm.get_num_channels(token)); },
172 surface, cursor, ind, x_max, row_h,
false);
175 result.
group = std::move(group);
177 for (uint32_t ch = 0; ch < ch_count; ++ch) {
181 x_min, x_max, row_h,
depth + 1);
183 result.
children.push_back(std::move(ch_result));
197 float x_min,
float x_max,
float row_h,
int depth)
203 const auto children = root->get_child_buffers();
206 const std::string header_label =
"graphics ["
209 std::vector<EntrySpec> entrys {
211 .
label =
"vk_buffers",
212 .reader = [root] {
return std::to_string(root->get_buffer_count()); },
219 surface, cursor, ind, x_max, row_h,
false);
222 result.
group = std::move(group);
224 auto root_result =
buffer(
225 root, surface, cursor,
226 x_min, x_max, row_h,
depth + 1);
228 result.
children.push_back(std::move(root_result));
230 for (
const auto& child : children) {
231 auto child_result =
buffer(
232 child, surface, cursor,
233 x_min, x_max, row_h,
depth + 2);
235 result.
children.push_back(std::move(child_result));
248 float x_min,
float x_max,
float row_h)
256 const std::string header_label =
"BufferManager";
258 std::vector<EntrySpec> entrys {
261 .reader = [&bm] {
return std::to_string(bm.get_active_tokens().size()); },
265 .reader = [&bm] {
return std::to_string(bm.get_num_input_channels()); },
273 surface, cursor, x_min, x_max, row_h,
false);
276 result.
group = std::move(group);
278 for (
const auto tok : tokens) {
285 result.
children.push_back(std::move(tok_result));
289 const std::string in_label =
"inputs [" + std::to_string(in_count) +
"]";
295 in_result.
group = std::move(in_group);
298 for (uint32_t ch = 0; ch < in_count; ++ch) {
301 std::dynamic_pointer_cast<Buffers::Buffer>(buf), surface, cursor,
302 x_min, x_max, row_h, 2);
303 surface.
layer().
relate(in_result.group.header.header_id, buf_result.group.header.header_id);
304 in_result.children.push_back(std::move(buf_result));
307 result.
children.push_back(std::move(in_result));
std::shared_ptr< NetworkGeometryBuffer > buffer
BufferProcessingChain * chain
uint32_t get_num_input_channels() const
std::shared_ptr< RootAudioBuffer > get_root_audio_buffer(ProcessingToken token, uint32_t channel=0)
Gets a root buffer for a specific token and channel (audio-specific due to channels)
std::shared_ptr< Buffers::InputAudioBuffer > get_input_buffer(uint32_t channel) const
uint32_t get_num_channels(ProcessingToken token) const
Gets the number of channels for a token (audio-specific)
std::shared_ptr< RootGraphicsBuffer > get_root_graphics_buffer(ProcessingToken token)
Gets a root graphics buffer for a specific token.
std::vector< ProcessingToken > get_active_tokens() const
Gets all currently active processing tokens.
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
@ AUDIO_BACKEND
Standard audio processing backend configuration.
@ AUDIO_PARALLEL
High-performance audio processing with GPU acceleration.
constexpr std::string_view enum_to_string(EnumType value) noexcept
Universal enum to string converter using magic_enum (original case)
std::string short_dynamic_type_name(const T &obj) noexcept
Returns the unqualified dynamic type name of obj.
bool is_audio(const fs::path &filepath)
A single entry to display in a EntryGroup body row.