BEAST - Free Software Audio Synthesizer and Tracker  0.9.2
bsewaveosc.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __BSE_WAVE_OSC_H__
3 #define __BSE_WAVE_OSC_H__
4 
5 #include <bse/bsesource.hh>
6 #include <bse/bsewave.hh>
7 #include <bse/gslwaveosc.hh>
8 
9 G_BEGIN_DECLS
10 
11 /* --- object type macros --- */
12 #define BSE_TYPE_WAVE_OSC (BSE_TYPE_ID (BseWaveOsc))
13 #define BSE_WAVE_OSC(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_WAVE_OSC, BseWaveOsc))
14 #define BSE_WAVE_OSC_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_WAVE_OSC, BseWaveOscClass))
15 #define BSE_IS_WAVE_OSC(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_WAVE_OSC))
16 #define BSE_IS_WAVE_OSC_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_WAVE_OSC))
17 #define BSE_WAVE_OSC_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_WAVE_OSC, BseWaveOscClass))
18 
20  BseWave *wave;
21  GslWaveChunk *esample_wchunk;
22  GslWaveOscConfig config;
23  gfloat fm_strength;
24  gfloat n_octaves;
25 };
27 {};
28 
29 void bse_wave_osc_request_pcm_position (BseWaveOsc *self);
30 void bse_wave_osc_mass_seek (guint n_woscs,
31  BseWaveOsc **woscs,
32  gfloat perc);
33 void bse_wave_osc_set_from_esample (BseWaveOsc *self,
34  BseEditableSample *esample);
35 
36 
37 /* --- channels --- */
38 enum
39 {
40  BSE_WAVE_OSC_ICHANNEL_FREQ,
41  BSE_WAVE_OSC_ICHANNEL_SYNC,
42  BSE_WAVE_OSC_ICHANNEL_MOD,
43  BSE_WAVE_OSC_N_ICHANNELS
44 };
45 enum
46 {
47  BSE_WAVE_OSC_OCHANNEL_WAVE,
48  BSE_WAVE_OSC_OCHANNEL_GATE,
49  BSE_WAVE_OSC_OCHANNEL_DONE,
50  BSE_WAVE_OSC_N_OCHANNELS
51 };
52 
53 G_END_DECLS
54 
55 #endif /* __BSE_WAVE_OSC_H__ */
Definition: bsewaveosc.hh:19
Definition: bseeditablesample.hh:24
Definition: bsewave.hh:26
Definition: bsesource.hh:84
Definition: bsesource.hh:92
Definition: bsewaveosc.hh:26
Definition: gslwaveosc.hh:15