Changeset 2441:c7b4330e821a in roaraudio
- Timestamp:
- 08/19/09 22:40:53 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroardsp/fader.c
r2440 r2441 84 84 85 85 int 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 86 132 return -1; 87 133 }
Note: See TracChangeset
for help on using the changeset viewer.