BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
00001 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html 00002 #ifndef __DAV_CANYON_DELAY_H__ 00003 #define __DAV_CANYON_DELAY_H__ 00004 #include <bse/bseplugin.hh> 00005 #include <bse/bsesource.hh> 00006 G_BEGIN_DECLS 00007 00008 #define DAV_TYPE_CANYON_DELAY (dav_canyon_delay_get_type()) 00009 #define DAV_CANYON_DELAY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), DAV_TYPE_CANYON_DELAY, DavCanyonDelay)) 00010 #define DAV_CANYON_DELAY_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), DAV_TYPE_CANYON_DELAY, DavCanyonDelayClass)) 00011 #define DAV_IS_CANYON_DELAY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), DAV_TYPE_CANYON_DELAY)) 00012 #define DAV_IS_CANYON_DELAY_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), DAV_TYPE_CANYON_DELAY)) 00013 #define DAV_CANYON_DELAY_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), DAV_TYPE_CANYON_DELAY, DavCanyonDelayClass)) 00014 00015 struct DavCanyonDelayParams { 00016 gdouble l_to_r_mag; 00017 gdouble l_to_r_invmag; 00018 gdouble r_to_l_mag; 00019 gdouble r_to_l_invmag; 00020 gint32 l_to_r_pos; 00021 gint32 r_to_l_pos; 00022 gdouble filter_mag; 00023 gdouble filter_invmag; 00024 }; 00025 struct DavCanyonDelay : BseSource { 00026 gdouble l_to_r_seconds; 00027 gdouble l_to_r_feedback; 00028 gdouble r_to_l_seconds; 00029 gdouble r_to_l_feedback; 00030 gdouble filter_freq; 00031 DavCanyonDelayParams params; 00032 }; 00033 struct DavCanyonDelayModule { 00034 gint32 pos; 00035 gint32 datasize; 00036 gdouble accum_l; 00037 gdouble accum_r; 00038 gdouble *data_l; 00039 gdouble *data_r; 00040 DavCanyonDelayParams params; 00041 }; 00042 struct DavCanyonDelayClass : BseSourceClass 00043 {}; 00044 00045 enum 00046 { 00047 DAV_CANYON_DELAY_ICHANNEL_LEFT, 00048 DAV_CANYON_DELAY_ICHANNEL_RIGHT, 00049 DAV_CANYON_DELAY_N_ICHANNELS 00050 }; 00051 enum 00052 { 00053 DAV_CANYON_DELAY_OCHANNEL_LEFT, 00054 DAV_CANYON_DELAY_OCHANNEL_RIGHT, 00055 DAV_CANYON_DELAY_N_OCHANNELS 00056 }; 00057 00058 00059 00060 G_END_DECLS 00061 00062 #endif /* __DAV_CANYON_DELAY_H__ */