ref: b691654525bcadb8474734fd421943a8708d4c84
dir: /common/libsndfile/src/common.h/
/* ** Copyright (C) 1999-2000 Erik de Castro Lopo <erikd@zip.com.au> ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU Lesser General Public License as published by ** the Free Software Foundation; either version 2.1 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public License ** along with this program; if not, write to the Free Software ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef COMMON_H_INCLUDED #define COMMON_H_INCLUDED #ifdef _WIN32 #pragma pack(push,1) #endif #define SF_BUFFER_LEN (4096) #define SF_FILENAME_LEN (256) #define SF_HEADER_LEN (2048) #define BITWIDTH2BYTES(x) (((x) + 7) / 8) enum { SF_MODE_READ = 1, SF_MODE_WRITE = 2, SF_MODE_RW = 3 } ; enum { SF_ENDIAN_LITTLE = 100, SF_ENDIAN_BIG = 200 } ; enum { SF_FALSE = 0, SF_TRUE = 1 } ; typedef int (*func_seek) (void*, int, int) ; typedef int (*func_short) (void*, short *ptr, unsigned int len) ; typedef int (*func_int) (void*, int *ptr, unsigned int len) ; typedef int (*func_double) (void*, double *ptr, unsigned int len, int normalize) ; typedef int (*func_close) (void*) ; typedef struct { /* Force the compiler to double align the start of buffer. */ double buffer [SF_BUFFER_LEN/sizeof(double)] ; char strbuffer [SF_BUFFER_LEN] ; char filename [SF_FILENAME_LEN] ; char header [SF_HEADER_LEN] ; int Magick ; unsigned int strindex ; unsigned int headindex ; FILE *file ; int mode ; int error ; int endian ; SF_INFO sf ; long dataoffset ; /* Offset in number of bytes from beginning of file. */ long datalength ; /* Length in bytes of the audio data. */ unsigned int blockwidth ; /* Size in bytes of one set of interleaved samples. */ unsigned int bytewidth ; /* Size in bytes of one sample (one channel). */ long filelength ; long current ; void *fdata ; double normfactor ; func_seek seek_func ; func_short read_short ; func_int read_int ; func_double read_double ; func_short write_short ; func_int write_int ; func_double write_double ; func_close close ; } SF_PRIVATE ; enum { SFE_NO_ERROR = 0, SFE_BAD_FILE, SFE_OPEN_FAILED, SFE_BAD_OPEN_FORMAT, SFE_BAD_SNDFILE_PTR, SFE_BAD_SF_INFO_PTR, SFE_BAD_INT_FD, SFE_BAD_INT_PTR, SFE_MALLOC_FAILED, SFE_BAD_SEEK, SFE_NOT_SEEKABLE, SFE_UNIMPLEMENTED, SFE_BAD_READ_ALIGN, SFE_BAD_WRITE_ALIGN, SFE_UNKNOWN_FORMAT, SFE_NOT_READMODE, SFE_NOT_WRITEMODE, SFE_BAD_MODE_RW, SFE_BAD_SF_INFO, SFE_SHORT_READ, SFE_SHORT_WRITE, SFE_INTERNAL, SFE_WAV_NO_RIFF, SFE_WAV_NO_WAVE, SFE_WAV_NO_FMT, SFE_WAV_FMT_SHORT, SFE_WAV_FMT_TOO_BIG, SFE_WAV_BAD_FORMAT, SFE_WAV_BAD_BLOCKALIGN, SFE_WAV_NO_DATA, SFE_WAV_ADPCM_NOT4BIT, SFE_WAV_ADPCM_CHANNELS, SFE_WAV_GSM610_FORMAT, SFE_WAV_UNKNOWN_CHUNK, SFE_AIFF_NO_FORM, SFE_AIFF_UNKNOWN_CHUNK, SFE_COMM_CHUNK_SIZE, SFE_AIFF_NO_SSND, SFE_AIFF_NO_DATA, SFE_AU_UNKNOWN_FORMAT, SFE_AU_NO_DOTSND, SFE_RAW_READ_BAD_SPEC, SFE_RAW_BAD_BITWIDTH, SFE_PAF_NO_MARKER, SFE_PAF_VERSION, SFE_PAF_UNKNOWN_FORMAT, SFE_PAF_SHORT_HEADER, SFE_SVX_NO_FORM, SFE_SVX_NO_BODY, SFE_SVX_NO_DATA, SFE_SVX_BAD_COMP, SFE_NIST_BAD_HEADER, SFE_NIST_BAD_ENCODING, SFE_MAX_ERROR /* This must be last in list. */ } ; void endswap_short_array (short *ptr, int len) ; void endswap_int_array (int *ptr, int len) ; void psf_sprintf (SF_PRIVATE *psf, char *format, ...) ; void psf_hprintf (SF_PRIVATE *psf, char *format, ...) ; void psf_hsetf (SF_PRIVATE *psf, unsigned int marker, char *format, ...) ; int aiff_open_read (SF_PRIVATE *psf) ; int aiff_open_write (SF_PRIVATE *psf) ; int au_open_read (SF_PRIVATE *psf) ; int au_nh_open_read (SF_PRIVATE *psf) ; int au_open_write (SF_PRIVATE *psf) ; int wav_open_read (SF_PRIVATE *psf) ; int wav_open_write (SF_PRIVATE *psf) ; int raw_open_read (SF_PRIVATE *psf) ; int raw_open_write (SF_PRIVATE *psf) ; int paf_open_read (SF_PRIVATE *psf) ; int paf_open_write (SF_PRIVATE *psf) ; int svx_open_read (SF_PRIVATE *psf) ; int svx_open_write (SF_PRIVATE *psf) ; int aunist_open_read (SF_PRIVATE *psf) ; int aunist_open_write (SF_PRIVATE *psf) ; #ifdef _WIN32 #pragma pack(pop,1) #endif #endif /* COMMON_H_INCLUDED */