49 const char* name_buffer,
const struct Ports& base,
50 void* data,
void* runtime,
const F& ftor,
52 bool expand_bundles =
true,
53 bool cut_afterwards =
true,
57 while(*name !=
'#') *pos++ = *name++;
58 const unsigned max = atoi(name+1);
59 while(isdigit(*++name)) ;
63 if(expand_bundles && !ranges)
64 for(
unsigned i=0; i<max; ++i)
66 const char* name2_2 = name;
67 pos2 = pos + sprintf(pos,
"%d",i);
70 while(*name2_2 && *name2_2 !=
':')
74 ftor(&p, name_buffer, old_end, base, data, runtime);
78 const char* name2_2 = name;
80 pos2 += sprintf(pos,
"[0,%d]",max-1);
83 while(*name2_2 && *name2_2 !=
':')
87 ftor(&p, name_buffer, old_end, base, data, runtime);
98inline void bundle_foreach_do_nothing(
const Port*,
const char*,
const char*,
99 const Ports&,
void*,
void*){}
void bundle_foreach(const struct Port &p, const char *name, char *old_end, const char *name_buffer, const struct Ports &base, void *data, void *runtime, const F &ftor, bool expand_bundles=true, bool cut_afterwards=true, bool ranges=false)
Execute a callback for all bundle elements of a bundle port.
Definition: bundle-foreach.h:47
Collection of functions for ports.
Port in rtosc dispatching hierarchy.
Definition: ports.h:97
Ports - a dispatchable collection of Port entries.
Definition: ports.h:159