Changeset 5269:b914e5b61703 in roaraudio for include/libroardsp/filters.h


Ignore:
Timestamp:
11/17/11 00:32:28 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

start of a response curve filter

File:
1 edited

Legend:

Unmodified
Added
Removed
  • include/libroardsp/filters.h

    r5181 r5269  
    6868 ROARDSP_CLIP_MODE_ZERO  = 1, 
    6969 ROARDSP_CLIP_MODE_WARP  = 2, 
    70  ROARDSP_CLIP_MODE_NOISE  = 3, 
     70 ROARDSP_CLIP_MODE_NOISE = 3 
    7171}; 
    7272 
     
    9494}; 
    9595 
     96enum roardsp_responsecurve_mode { 
     97 ROARDSP_RESPONSECURVE_MODE_PASS = 0, /* pass:           o = i                   */ 
     98 ROARDSP_RESPONSECURVE_MODE_LIN  = 1, /* linear:         o = -(1-i)^(N+1) + 1    */ 
     99 ROARDSP_RESPONSECURVE_MODE_ILIN = 2, /* inverse linear: o = i**(N+1)            */ 
     100 ROARDSP_RESPONSECURVE_MODE_SIN  = 3, /* sin:            o = sin(pi/2 * i)^N     */ 
     101 ROARDSP_RESPONSECURVE_MODE_ISIN = 4, /* inverse sin:    o = 1-sin((1-i)*pi/2)^N */ 
     102 ROARDSP_RESPONSECURVE_MODE_COS  = 5, /* cos:            o = 0.5-cos(i*pi)/2     */ 
     103 ROARDSP_RESPONSECURVE_MODE_ICOS = 6, /* inverse cos:    o = 2*i-0.5+cos(i*pi)/2 */ 
     104}; 
     105 
     106struct roardsp_responsecurve { 
     107 enum roardsp_responsecurve_mode mode_pos, mode_neg; 
     108 int32_t N; 
     109}; 
    96110 
    97111// filter: 
     
    176190#endif 
    177191 
     192int roardsp_responsecurve_init  (struct roardsp_filter * filter, struct roar_stream * stream, int id); 
     193int roardsp_responsecurve_uninit(struct roardsp_filter * filter); 
     194int roardsp_responsecurve_calc32(struct roardsp_filter * filter, void * data, size_t samples); 
     195int roardsp_responsecurve_calc16(struct roardsp_filter * filter, void * data, size_t samples); 
     196int roardsp_responsecurve_calc8 (struct roardsp_filter * filter, void * data, size_t samples); 
     197int roardsp_responsecurve_ctl   (struct roardsp_filter * filter, int cmd, void * data); 
     198int roardsp_responsecurve_reset (struct roardsp_filter * filter, int what); 
    178199 
    179200#endif 
Note: See TracChangeset for help on using the changeset viewer.