Changeset 16:c4585a26128b in roaraudio for roard/mixer.c
- Timestamp:
- 06/19/08 21:13:21 (16 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/mixer.c
r0 r16 103 103 } 104 104 105 int change_vol (void * output, int bits, void * input, int samples, int channels, struct roar_mixer_settings * set) { 106 if ( bits == 8 ) { 107 return change_vol_8bit(output, input, samples, channels, set); 108 } else if ( bits == 16 ) { 109 return change_vol_16bit(output, input, samples, channels, set); 110 } else if ( bits == 24 ) { 111 return change_vol_24bit(output, input, samples, channels, set); 112 } else if ( bits == 32 ) { 113 return change_vol_32bit(output, input, samples, channels, set); 114 } else { 115 return -1; 116 } 117 } 118 119 int change_vol_8bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set) { 120 char * in = input, out = output; 121 int i; 122 int s; 123 124 if ( !(in && out) ) 125 return -1; 126 127 for (i = 0; i < samples; i++) { 128 s = in[i]; 129 s *= set->mixer[i % channels]; 130 s /= set->scale; 131 out[i] = s; 132 } 133 134 return 0; 135 } 136 137 int change_vol_16bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set) { 138 int16_t * in = input, out = output; 139 int i; 140 int s; 141 142 if ( !(in && out) ) 143 return -1; 144 145 for (i = 0; i < samples; i++) { 146 s = in[i]; 147 s *= set->mixer[i % channels]; 148 s /= set->scale; 149 out[i] = s; 150 } 151 152 return 0; 153 } 154 155 int change_vol_24bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set) { 156 return -1; 157 } 158 159 int change_vol_32bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set) { 160 return -1; 161 } 162 163 105 164 //ll
Note: See TracChangeset
for help on using the changeset viewer.