25 #define BSE_TYPE_SUMMATION BSE_CXX_DECLARED_CLASS_TYPE (Bse, Summation)
26 #define BSE_IS_SUMMATION(o) (::Bse::CxxBase::instance_is_a (o, BSE_TYPE_SUMMATION))
51 BSE_CXX_DECLARE_CLASS (Summation);
53 template<
bool>
static inline const unsigned char* inlined_pixstream();
55 static inline const unsigned char* pixstream () {
return inlined_pixstream<true>(); }
57 static inline const char* options () {
return ""; }
58 static inline const char* category () {
static const char *c = NULL;
59 return c ? c : c = sfi_category_concat (
"/Modules", (
"/Routing/Summation")); }
60 static inline const char* i18n_category () {
static const char *c = NULL;
61 return c ? c : c = sfi_category_concat (
"/Modules", _(
"/Routing/Summation")); }
62 static inline const char* blurb () {
return _(
"The Summation module adds up all inputs connected to its multi-connect input streams. The sum of all inputs connected to 'Audio In1' is available at 'Audio Sum1', and similarly, 'Audio Sum2' is the accumulatiuon signal of all streams connected to 'Audio In2'. A difference signal between 'Audio Sum1' and 'Audio Sum2' is also generated and is available at 'Audio Diff'."); }
63 static inline const char* authors () {
return "Tim Janik"; }
64 static inline const char* license () {
return _(
"GNU Lesser General Public License"); }
65 static inline const char* type_name () {
return "BseSummation"; }
80 enum SummationPropertyID {
85 typedef SummationPropertyID IDType;
91 typedef void AutoUpdateCategory;
94 void get_property (SummationPropertyID prop_id, ::
Bse::Value &value, GParamSpec *pspec)
99 void set_property (SummationPropertyID prop_id, const ::Bse::Value &value, GParamSpec *pspec)
103 property_changed (SummationPropertyID (prop_id));
109 virtual bool editable_property (SummationPropertyID prop_id, GParamSpec *pspec)
116 void property_updated (SummationPropertyID prop_id, guint64 tick_stamp,
double prop_value, GParamSpec *pspec)
118 bool seen_change =
false;
123 property_changed (SummationPropertyID (prop_id)))
127 static struct StaticData {
131 virtual bool property_changed (SummationPropertyID) {
return false; }
132 virtual ~SummationBase ()
152 klass->set_accessors (::Bse::cxx_get_property_trampoline<SummationBase, SummationPropertyID>,
153 ::Bse::cxx_set_property_trampoline<SummationBase, SummationPropertyID>,
154 ::Bse::cxx_editable_property_trampoline<SummationBase, SummationPropertyID>,
155 ::Bse::cxx_get_candidates_trampoline<SummationBase, SummationPropertyID>,
157 klass->add_jchannel (
"audio_in1", _(
"Audio In1"), _(
"Audio input 1"), JCHANNEL_AUDIO_IN1);
158 klass->add_jchannel (
"audio_in2", _(
"Audio In2"), _(
"Audio input 2"), JCHANNEL_AUDIO_IN2);
159 klass->add_ochannel (
"audio_out1", _(
"Audio Sum1"), _(
"Accumulated audio output 1"), OCHANNEL_AUDIO_OUT1);
160 klass->add_ochannel (
"audio_diff", _(
"Audio Diff"), _(
"Difference between audio outputs 1 and 2"), OCHANNEL_AUDIO_DIFF);
161 klass->add_ochannel (
"audio_out2", _(
"Audio Sum2"), _(
"Accumulated audio output 2"), OCHANNEL_AUDIO_OUT2);
169 #define BSE_CXX_REGISTER_ALL_TYPES_FROM_BSESUMMATION_IDL() \
170 BSE_CXX_REGISTER_EFFECT (Summation); \
173 template<
bool>
const unsigned char*
174 ::Bse::SummationBase::inlined_pixstream()
179 #pragma align 4 (local_pixstream)
182 static const guint8 local_pixstream[] __attribute__ ((__aligned__ (4))) =
184 static const guint8 local_pixstream[] =
200 "\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\223\0\0\0\0\203\0\0\0\377\232\0"
201 "\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0"
202 "\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0"
203 "\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232"
204 "\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0"
205 "\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0"
206 "\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377"
207 "\232\0\0\0\0\203\0\0\0\377\227\0\0\0\0\225\0\0\0\377\210\0\0\0\0\225"
208 "\0\0\0\377\216\0\0\0\0\225\0\0\0\377\210\0\0\0\0\225\0\0\0\377\216\0"
209 "\0\0\0\225\0\0\0\377\210\0\0\0\0\225\0\0\0\377\227\0\0\0\0\203\0\0\0"
210 "\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0"
211 "\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240"
212 "\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0"
213 "\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0"
214 "\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377"
215 "\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203"
216 "\0\0\0\377\232\0\0\0\0\203\0\0\0\377\377\0\0\0\0\377\0\0\0\0\377\0\0"
217 "\0\0\377\0\0\0\0\377\0\0\0\0\245\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203"
218 "\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0"
219 "\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0"
220 "\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0"
221 "\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240"
222 "\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0"
223 "\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0"
224 "\0\203\0\0\0\377\227\0\0\0\0\225\0\0\0\377\210\0\0\0\0\225\0\0\0\377"
225 "\216\0\0\0\0\225\0\0\0\377\210\0\0\0\0\225\0\0\0\377\216\0\0\0\0\225"
226 "\0\0\0\377\210\0\0\0\0\225\0\0\0\377\227\0\0\0\0\203\0\0\0\377\232\0"
227 "\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0"
228 "\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0"
229 "\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232"
230 "\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0"
231 "\0\377\240\0\0\0\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0"
232 "\0\203\0\0\0\377\232\0\0\0\0\203\0\0\0\377\240\0\0\0\0\203\0\0\0\377"
233 "\232\0\0\0\0\203\0\0\0\377\377\0\0\0\0\377\0\0\0\0\377\0\0\0\0\223\0"
238 return local_pixstream;
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:67
Definition: bsecxxvalue.hh:13
Definition: bsesummation.genidl.hh:84
Definition: sficxx.hh:169
Definition: bsesummation.genidl.hh:52
Definition: bsecxxmodule.hh:92
Definition: bsecxxbase.hh:14