BEAST - Free Software Audio Synthesizer and Tracker  0.10.0
bsesummation.genidl.hh
Go to the documentation of this file.
1 
2 /*-------- begin ../sfi/sfidl generated code --------*/
3 
4 
5 
6 #include <bse/effectbase.hh>
7 
8 
9 /* enum prototypes */
10 
11 
12 /* choice prototypes */
13 
14 
15 /* record prototypes */
16 
17 
18 /* sequence prototypes */
19 
20 
21 /* class prototypes */
22 namespace Bse {
23 class SummationBase;
24 class Summation;
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))
27 
28 
29 /* enum definitions */
30 
31 
32 /* sequence definitions */
33 
34 
35 /* record definitions */
36 
37 
38 /* enum declarations */
39 
40 
41 /* sequence type declarations */
42 
43 
44 /* record type declarations */
45 
46 
47 /* procedure prototypes */
48 
49 
50 /* class definitions */
51 BSE_CXX_DECLARE_CLASS (Summation);
52 class SummationBase : public ::Bse::Effect {
53  template<bool> static inline const unsigned char* inlined_pixstream();
54 public:
55  static inline const unsigned char* pixstream () { return inlined_pixstream<true>(); }
56  static void class_init (::Bse::CxxBaseClass *klass);
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"; }
66 public:
67  enum {
68  JCHANNEL_AUDIO_IN1,
69  JCHANNEL_AUDIO_IN2,
70  N_JCHANNELS
71  };
72 public:
73  enum {
74  OCHANNEL_AUDIO_OUT1,
75  OCHANNEL_AUDIO_DIFF,
76  OCHANNEL_AUDIO_OUT2,
77  N_OCHANNELS
78  };
79 protected:
80  enum SummationPropertyID {
81  };
82 public:
83  /* "transport" structure to configure synthesis modules from properties */
85  typedef SummationPropertyID IDType;
86  explicit SummationProperties (SummationBase *p)
87  {
88  }
89  };
90 protected:
91  typedef void AutoUpdateCategory;
92 protected:
93 public:
94  void get_property (SummationPropertyID prop_id, ::Bse::Value &value, GParamSpec *pspec)
95  {
96  switch (prop_id) {
97  };
98  }
99  void set_property (SummationPropertyID prop_id, const ::Bse::Value &value, GParamSpec *pspec)
100  {
101  switch (prop_id) {
102  };
103  property_changed (SummationPropertyID (prop_id));
104  update_modules();
105  switch (prop_id) {
106  default: ;
107  };
108  }
109  virtual bool editable_property (SummationPropertyID prop_id, GParamSpec *pspec)
110  {
111  return true;
112  }
113  virtual void get_candidates (SummationPropertyID prop_id, ::Bse::PropertyCandidatesHandle &pch, GParamSpec *pspec)
114  {
115  }
116  void property_updated (SummationPropertyID prop_id, guint64 tick_stamp, double prop_value, GParamSpec *pspec)
117  {
118  bool seen_change = false;
119  switch (prop_id) {
120  default: ;
121  };
122  if (seen_change &&
123  property_changed (SummationPropertyID (prop_id)))
124  update_modules();
125  }
126 private:
127  static struct StaticData {
128  int dummy;
129  } static_data;
130 protected:
131  virtual bool property_changed (SummationPropertyID) { return false; }
132  virtual ~SummationBase ()
133  {
134  }
135 public:
136 };
137 
138 
139 /* choice implementations */
140 
141 
142 /* record implementations */
143 
144 
145 /* sequence implementations */
146 
147 
148 /* class implementations */
149 void
150 SummationBase::class_init (::Bse::CxxBaseClass *klass)
151 {
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>,
156  NULL);
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);
162 }
163 
164 
165 /* procedure implementations */
166 
167 
168 /* bsesummation.idl type registrations */
169 #define BSE_CXX_REGISTER_ALL_TYPES_FROM_BSESUMMATION_IDL() \
170  BSE_CXX_REGISTER_EFFECT (Summation); \
171  /* bsesummation.idl type registrations done */
172 } // Bse
173 template<bool> const unsigned char*
174 ::Bse::SummationBase::inlined_pixstream()
175 {
176  /* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */
177 
178 #ifdef __SUNPRO_C
179 #pragma align 4 (local_pixstream)
180 #endif
181 #ifdef __GNUC__
182 static const guint8 local_pixstream[] __attribute__ ((__aligned__ (4))) =
183 #else
184 static const guint8 local_pixstream[] =
185 #endif
186 { ""
187  /* Pixbuf magic (0x47646b50) */
188  "GdkP"
189  /* length: header (24) + pixel_data (900) */
190  "\0\0\3\234"
191  /* pixdata_type (0x2010002) */
192  "\2\1\0\2"
193  /* rowstride (256) */
194  "\0\0\1\0"
195  /* width (64) */
196  "\0\0\0@"
197  /* height (64) */
198  "\0\0\0@"
199  /* pixel_data: */
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"
234  "\0\0\0"};
235 
236 
237 
238  return local_pixstream;
239 }
240 
241 /*-------- end ../sfi/sfidl generated code --------*/
242 
243 
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:88
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