Changeset 2441:c7b4330e821a in roaraudio


Ignore:
Timestamp:
08/19/09 22:40:53 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

wrote most of the basic fader

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroardsp/fader.c

    r2440 r2441  
    8484 
    8585int roar_fader_calcpcm_i161(struct roar_fader_state * state, int16_t * data, size_t frames) { 
     86 size_t start, stop, cur; 
     87 int i, i_s, i_e; 
     88 float t_cur, t_step; 
     89 float g_cur; 
     90 
     91 _CHECK_BASIC(); 
     92 
     93 if ( state->start == -1 ) { 
     94  start = state->pcmoffset; 
     95 } else { 
     96  start = state->start; 
     97 } 
     98 
     99 if ( state->stop == -1 ) { 
     100  stop = state->pcmoffset + frames; 
     101 } else { 
     102  stop = state->stop; 
     103 } 
     104 
     105 cur = state->pcmoffset; 
     106 
     107 i_s = 0; 
     108 i_e = frames; 
     109 
     110 if ( start > cur ) 
     111  i_s = start - cur; 
     112 
     113 if ( stop < (cur + frames) ) 
     114  i_e = stop  - cur; 
     115 
     116 t_step = state->coeff/(stop - start); 
     117 
     118 if ( start < cur ) { 
     119  t_cur = (cur - start)*t_step; 
     120 } else { 
     121  t_cur = 0; 
     122 } 
     123 
     124 for (i = i_s; i < i_e; i++, cur++) { 
     125  t_cur  += t_step; 
     126  g_cur   = 0; 
     127  data[i] = (float)data[i] * g_cur; 
     128 } 
     129 
     130 state->pcmoffset = cur; 
     131 
    86132 return -1; 
    87133} 
Note: See TracChangeset for help on using the changeset viewer.