Changeset 16:c4585a26128b in roaraudio for roard/mixer.c


Ignore:
Timestamp:
06/19/08 21:13:21 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

preperation to support mixing at diffrent levels

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/mixer.c

    r0 r16  
    103103} 
    104104 
     105int 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 
     119int 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 
     137int 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 
     155int change_vol_24bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set) { 
     156 return -1; 
     157} 
     158 
     159int change_vol_32bit (void * output, void * input, int samples, int channels, struct roar_mixer_settings * set) { 
     160 return -1; 
     161} 
     162 
     163 
    105164//ll 
Note: See TracChangeset for help on using the changeset viewer.