output.h (2199B)
1 /* 2 3 TiMidity -- Experimental MIDI to WAVE converter 4 Copyright (C) 1995 Tuukka Toivonen <toivonen@clinet.fi> 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software 18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 20 output.h 21 22 */ 23 #include <stdio.h> 24 #include "timidity.h" 25 /* Data format encoding bits */ 26 27 #define PE_MONO 0x01 /* versus stereo */ 28 #define PE_SIGNED 0x02 /* versus unsigned */ 29 #define PE_16BIT 0x04 /* versus 8-bit */ 30 #define PE_ULAW 0x08 /* versus linear */ 31 #define PE_BYTESWAP 0x10 /* versus the other way */ 32 33 extern int init_buffers(int kbytes); 34 35 /* Conversion functions -- These overwrite the int32_t data in *lp with 36 data in another format */ 37 38 /* The size of the output buffers */ 39 extern int AUDIO_BUFFER_SIZE; 40 41 /* Actual copy function */ 42 extern void (*s32tobuf)(void *dp, int32_t *lp, int32_t c); 43 44 /* 8-bit signed and unsigned*/ 45 extern void s32tos8(void *dp, int32_t *lp, int32_t c); 46 extern void s32tou8(void *dp, int32_t *lp, int32_t c); 47 48 /* 16-bit */ 49 extern void s32tos16(void *dp, int32_t *lp, int32_t c); 50 extern void s32tou16(void *dp, int32_t *lp, int32_t c); 51 52 /* byte-exchanged 16-bit */ 53 extern void s32tos16x(void *dp, int32_t *lp, int32_t c); 54 extern void s32tou16x(void *dp, int32_t *lp, int32_t c); 55 56 /* uLaw (8 bits) */ 57 extern void s32toulaw(void *dp, int32_t *lp, int32_t c); 58 59 /* little-endian and big-endian specific */ 60 #ifdef LITTLE_ENDIAN 61 #define s32tou16l s32tou16 62 #define s32tou16b s32tou16x 63 #define s32tos16l s32tos16 64 #define s32tos16b s32tos16x 65 #else 66 #define s32tou16l s32tou16x 67 #define s32tou16b s32tou16 68 #define s32tos16l s32tos16x 69 #define s32tos16b s32tos16 70 #endif