BEAST - Free Software Audio Synthesizer and Tracker  0.9.2
standardguspatchenvelope.genidl.hh
Go to the documentation of this file.
1 
2 /*-------- begin ../sfi/sfidl generated code --------*/
3 
4 
5 
6 #include <bse/bse-internals.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 namespace Standard {
24 class GusPatchEnvelopeBase;
25 class GusPatchEnvelope;
26 #define BSE_STANDARD_TYPE_GUS_PATCH_ENVELOPE BSE_CXX_DECLARED_CLASS_TYPE (Bse::Standard, GusPatchEnvelope)
27 #define BSE_STANDARD_IS_GUS_PATCH_ENVELOPE(o) (::Bse::CxxBase::instance_is_a (o, BSE_STANDARD_TYPE_GUS_PATCH_ENVELOPE))
28 
29 
30 /* enum definitions */
31 
32 
33 /* sequence definitions */
34 
35 
36 /* record definitions */
37 
38 
39 /* enum declarations */
40 
41 
42 /* sequence type declarations */
43 
44 
45 /* record type declarations */
46 
47 
48 /* procedure prototypes */
49 
50 
51 /* class definitions */
52 BSE_CXX_DECLARE_CLASS (GusPatchEnvelope);
54 public:
55  static inline const unsigned char* pixstream () { return NULL; }
56  static void class_init (::Bse::CxxBaseClass *klass);
57  static inline const char* options () { return "unstable"; }
58  static inline const char* category () { static const char *c = NULL;
59  return c ? c : c = sfi_category_concat ("/Modules", ("/Misc/StandardGusPatchEnvelope")); }
60  static inline const char* i18n_category () { static const char *c = NULL;
61  return c ? c : c = sfi_category_concat ("/Modules", _("/Misc/StandardGusPatchEnvelope")); }
62  static inline const char* blurb () { return _("StandardGusPatchEnvelope is an Envelope for GUS Patches\n\nGUS Patches contain different volume settings and tremolo settings for different notes, and the envelopes are of a non-standard form, thus using a BseWaveOsc alone is not enough to produce the sound of the GUS Patches; to accomplish the playing, you thus need to connect one (or for stereo two) BseWaveOsc(s) and their Gate Output Signal to this module."); }
63  static inline const char* authors () { return "Stefan Westerfeld"; }
64  static inline const char* license () { return _("GNU Lesser General Public License"); }
65  static inline const char* type_name () { return "BseStandardGusPatchEnvelope"; }
66 public:
67  enum {
68  ICHANNEL_FREQUENCY,
69  ICHANNEL_GATE_IN,
70  ICHANNEL_RETRIGGER_IN,
71  ICHANNEL_AUDIO_IN,
72  ICHANNEL_AUDIO_GATE,
73  N_ICHANNELS
74  };
75 public:
76  enum {
77  OCHANNEL_AUDIO_OUT1,
78  OCHANNEL_AUDIO_OUT2,
79  OCHANNEL_DONE_OUT,
80  N_OCHANNELS
81  };
82 protected:
83  enum GusPatchEnvelopePropertyID {
84  PROP_WAVE = 1,
85  };
86 public:
87  /* "transport" structure to configure synthesis modules from properties */
89  typedef GusPatchEnvelopePropertyID IDType;
90  BseWave* wave;
92  wave (p->wave)
93  {
94  }
95  };
96 protected:
97  typedef void AutoUpdateCategory;
98 protected:
99  BseWave* wave;
100 public:
101  void get_property (GusPatchEnvelopePropertyID prop_id, ::Bse::Value &value, GParamSpec *pspec)
102  {
103  switch (prop_id) {
104  case PROP_WAVE:
105  ::Bse::CxxBase::value_set_gobject (&value, wave);
106  break;
107  };
108  }
109  void set_property (GusPatchEnvelopePropertyID prop_id, const ::Bse::Value &value, GParamSpec *pspec)
110  {
111  switch (prop_id) {
112  case PROP_WAVE:
113  wave = ::Bse::CxxBase::value_get_gobject< BseWave> (&value);
114  break;
115  };
116  property_changed (GusPatchEnvelopePropertyID (prop_id));
117  update_modules();
118  switch (prop_id) {
119  default: ;
120  };
121  }
122  virtual bool editable_property (GusPatchEnvelopePropertyID prop_id, GParamSpec *pspec)
123  {
124  return true;
125  }
126  virtual void get_candidates (GusPatchEnvelopePropertyID prop_id, ::Bse::PropertyCandidatesHandle &pch, GParamSpec *pspec)
127  {
128  }
129  void property_updated (GusPatchEnvelopePropertyID prop_id, guint64 tick_stamp, double prop_value, GParamSpec *pspec)
130  {
131  bool seen_change = false;
132  switch (prop_id) {
133  default: ;
134  };
135  if (seen_change &&
136  property_changed (GusPatchEnvelopePropertyID (prop_id)))
137  update_modules();
138  }
139 private:
140  static struct StaticData {
141  int dummy;
142  } static_data;
143 protected:
144  virtual bool property_changed (GusPatchEnvelopePropertyID) { return false; }
145  virtual ~GusPatchEnvelopeBase ()
146  {
147  }
148 public:
149 };
150 
151 
152 /* choice implementations */
153 
154 
155 /* record implementations */
156 
157 
158 /* sequence implementations */
159 
160 
161 /* class implementations */
162 void
163 GusPatchEnvelopeBase::class_init (::Bse::CxxBaseClass *klass)
164 {
165  klass->set_accessors (::Bse::cxx_get_property_trampoline<GusPatchEnvelopeBase, GusPatchEnvelopePropertyID>,
166  ::Bse::cxx_set_property_trampoline<GusPatchEnvelopeBase, GusPatchEnvelopePropertyID>,
167  ::Bse::cxx_editable_property_trampoline<GusPatchEnvelopeBase, GusPatchEnvelopePropertyID>,
168  ::Bse::cxx_get_candidates_trampoline<GusPatchEnvelopeBase, GusPatchEnvelopePropertyID>,
169  NULL);
170  klass->add_param (PROP_WAVE, sfidl_pspec_TypedObject_default (_("Properties"),"/opt/src/beast/plugins/standardguspatchenvelope.idl",518, "wave", BSE_TYPE_WAVE));
171  klass->add_ichannel ("frequency", _("Frequency"), _("Frequency Input"), ICHANNEL_FREQUENCY);
172  klass->add_ichannel ("gate_in", _("Gate In"), _("Gate input (activates/deactivates envelope)"), ICHANNEL_GATE_IN);
173  klass->add_ichannel ("retrigger_in", _("Retrigger In"), _("Retrigger input (raising edge retriggers envelope)"), ICHANNEL_RETRIGGER_IN);
174  klass->add_ichannel ("audio_in", _("Audio In"), _("Audio Input of the WaveOsc playing the patch"), ICHANNEL_AUDIO_IN);
175  klass->add_ichannel ("audio_gate", _("Audio Gate"), _("Gate Output of the WaveOsc playing the patch"), ICHANNEL_AUDIO_GATE);
176  klass->add_ochannel ("audio_out1", _("Audio Out1"), _("Envelope audio output 1 (left output signal)"), OCHANNEL_AUDIO_OUT1);
177  klass->add_ochannel ("audio_out2", _("Audio Out2"), _("Envelope audio output 2 (right output signal)"), OCHANNEL_AUDIO_OUT2);
178  klass->add_ochannel ("done_out", _("Done Out"), _("This signal goes high after the release phase has completed"), OCHANNEL_DONE_OUT);
179 }
180 
181 
182 /* procedure implementations */
183 
184 
185 /* standardguspatchenvelope.idl type registrations */
186 #define BSE_CXX_REGISTER_ALL_TYPES_FROM_STANDARDGUSPATCHENVELOPE_IDL() \
187  BSE_CXX_REGISTER_EFFECT (GusPatchEnvelope); \
188  /* standardguspatchenvelope.idl type registrations done */
189 } // Standard
190 } // Bse
191 
192 /*-------- end ../sfi/sfidl generated code --------*/
193 
194 
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:67
Definition: standardguspatchenvelope.genidl.hh:88
Definition: bsecxxvalue.hh:13
Definition: bsewave.hh:26
Definition: sficxx.hh:169
Definition: standardguspatchenvelope.genidl.hh:53
Definition: bsecxxmodule.hh:92
Definition: bsecxxbase.hh:14