31 #ifndef BUNDLE_FOREACH 32 #define BUNDLE_FOREACH 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)
56 while(*name !=
'#') *pos++ = *name++;
57 const unsigned max = atoi(name+1);
58 while(isdigit(*++name)) ;
63 for(
unsigned i=0; i<max; ++i)
65 const char* name2_2 = name;
66 pos2 = pos + sprintf(pos,
"%d",i);
69 while(*name2_2 && *name2_2 !=
':')
72 ftor(&p, name_buffer, old_end, base, data, runtime);
76 const char* name2_2 = name;
80 while(*name2_2 && *name2_2 !=
':')
83 ftor(&p, name_buffer, old_end, base, data, runtime);
94 inline void bundle_foreach_do_nothing(
const Port*,
const char*,
const char*,
95 const Ports&,
void*,
void*){}
99 #endif // BUNDLE_FOREACH Port in rtosc dispatching hierarchy.
Definition: ports.h:96
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)
Execute a callback for all bundle elements of a bundle port.
Definition: bundle-foreach.h:47
Ports - a dispatchable collection of Port entries.
Definition: ports.h:157
Collection of functions for ports.