BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
davcanyondelay.hh
Go to the documentation of this file.
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__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines