Mercurial > audlegacy-plugins
comparison src/CoreAudio/audio.c @ 62:4a352dd2a91c trunk
[svn] - be a little smarter about this
| author | nenolod |
|---|---|
| date | Sat, 30 Sep 2006 21:40:46 -0700 |
| parents | a69b14abbc65 |
| children | 023b3e4147c0 |
comparison
equal
deleted
inserted
replaced
| 61:a69b14abbc65 | 62:4a352dd2a91c |
|---|---|
| 91 //printf("osx_calc_bitrate(): %d\n",bitrate); | 91 //printf("osx_calc_bitrate(): %d\n",bitrate); |
| 92 | 92 |
| 93 return bitrate; | 93 return bitrate; |
| 94 } | 94 } |
| 95 | 95 |
| 96 | |
| 97 static int osx_get_format(AFormat fmt) | 96 static int osx_get_format(AFormat fmt) |
| 98 { | 97 { |
| 99 int format = 0; | 98 int format = 0; |
| 100 | 99 |
| 101 switch (fmt) | 100 switch (fmt) |
| 102 { | 101 { |
| 103 case FMT_U16_LE: | |
| 104 #ifdef WORDS_BIGENDIAN | |
| 105 format = FMT_U16_BE; | |
| 106 #else | |
| 107 format = FMT_U16_LE; | |
| 108 #endif | |
| 109 break; | |
| 110 case FMT_U16_BE: | |
| 111 #ifdef WORDS_BIGENDIAN | |
| 112 format = FMT_U16_LE; | |
| 113 #else | |
| 114 format = FMT_U16_BE; | |
| 115 #endif | |
| 116 break; | |
| 117 case FMT_S16_LE: | |
| 118 #ifdef WORDS_BIGENDIAN | |
| 119 format = FMT_S16_BE; | |
| 120 #else | |
| 121 format = FMT_S16_LE; | |
| 122 #endif | |
| 123 break; | |
| 124 case FMT_S16_BE: | |
| 125 #ifdef WORDS_BIGENDIAN | |
| 126 format = FMT_S16_LE; | |
| 127 #else | |
| 128 format = FMT_S16_BE; | |
| 129 #endif | |
| 130 break; | |
| 131 case FMT_U16_NE: | 102 case FMT_U16_NE: |
| 132 #ifdef WORDS_BIGENDIAN | 103 #ifdef WORDS_BIGENDIAN |
| 133 format = FMT_U16_BE; | 104 format = FMT_U16_BE; |
| 134 #else | 105 #else |
| 135 format = FMT_U16_LE; | 106 format = FMT_U16_LE; |
| 144 break; | 115 break; |
| 145 default: | 116 default: |
| 146 format = fmt; | 117 format = fmt; |
| 147 break; | 118 break; |
| 148 } | 119 } |
| 120 | |
| 121 printf("in: %d, out: %d\n", fmt, format); | |
| 122 | |
| 123 return format; | |
| 124 } | |
| 125 | |
| 126 static int osx_get_conv_format(AFormat fmt) | |
| 127 { | |
| 128 int format = 0; | |
| 129 | |
| 130 switch (fmt) | |
| 131 { | |
| 132 case FMT_U16_LE: | |
| 133 #ifdef WORDS_BIGENDIAN | |
| 134 format = FMT_U16_BE; | |
| 135 #else | |
| 136 format = FMT_U16_LE; | |
| 137 #endif | |
| 138 break; | |
| 139 case FMT_U16_BE: | |
| 140 #ifdef WORDS_BIGENDIAN | |
| 141 format = FMT_U16_LE; | |
| 142 #else | |
| 143 format = FMT_U16_BE; | |
| 144 #endif | |
| 145 break; | |
| 146 case FMT_S16_LE: | |
| 147 #ifdef WORDS_BIGENDIAN | |
| 148 format = FMT_S16_BE; | |
| 149 #else | |
| 150 format = FMT_S16_LE; | |
| 151 #endif | |
| 152 break; | |
| 153 case FMT_S16_BE: | |
| 154 #ifdef WORDS_BIGENDIAN | |
| 155 format = FMT_S16_LE; | |
| 156 #else | |
| 157 format = FMT_S16_BE; | |
| 158 #endif | |
| 159 break; | |
| 160 case FMT_U16_NE: | |
| 161 #ifdef WORDS_BIGENDIAN | |
| 162 format = FMT_U16_BE; | |
| 163 #else | |
| 164 format = FMT_U16_LE; | |
| 165 #endif | |
| 166 break; | |
| 167 case FMT_S16_NE: | |
| 168 #ifdef WORDS_BIGENDIAN | |
| 169 format = FMT_S16_BE; | |
| 170 #else | |
| 171 format = FMT_S16_LE; | |
| 172 #endif | |
| 173 break; | |
| 174 default: | |
| 175 format = fmt; | |
| 176 break; | |
| 177 } | |
| 178 | |
| 179 printf("in: %d, out: %d\n", fmt, format); | |
| 149 | 180 |
| 150 return format; | 181 return format; |
| 151 } | 182 } |
| 152 | 183 |
| 153 | 184 |
| 253 output.frequency = rate; | 284 output.frequency = rate; |
| 254 output.channels = nch; | 285 output.channels = nch; |
| 255 | 286 |
| 256 osx_set_audio_params(); | 287 osx_set_audio_params(); |
| 257 | 288 |
| 258 osx_convert_func = osx_get_convert_func(fmt, output.format.osx); | 289 if (fmt != osx_get_conv_format(fmt)) |
| 290 osx_convert_func = osx_get_convert_func(fmt, osx_get_conv_format(fmt)); | |
| 291 else | |
| 292 osx_convert_func = NULL; | |
| 259 | 293 |
| 260 output.bps = osx_calc_bitrate(output.format.osx, output.frequency,output.channels); | 294 output.bps = osx_calc_bitrate(output.format.osx, output.frequency,output.channels); |
| 261 } | 295 } |
| 262 | 296 |
| 263 | 297 |
