libsndfile compiling.
[Faustine.git] / interpretor / lib / src / libsndfile-1.0.25 / src / wav_w64.h
diff --git a/interpretor/lib/src/libsndfile-1.0.25/src/wav_w64.h b/interpretor/lib/src/libsndfile-1.0.25/src/wav_w64.h
new file mode 100644 (file)
index 0000000..9b2914a
--- /dev/null
@@ -0,0 +1,295 @@
+/*
+** Copyright (C) 1999-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
+**
+** 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.
+*/
+
+/* This file contains definitions commong to WAV and W64 files. */
+
+
+#ifndef WAV_W64_H_INCLUDED
+#define WAV_W64_H_INCLUDED
+
+/*------------------------------------------------------------------------------
+** List of known WAV format tags
+*/
+
+enum
+{
+  /* keep sorted for wav_w64_format_str() */
+       WAVE_FORMAT_UNKNOWN                                     = 0x0000,               /* Microsoft Corporation */
+       WAVE_FORMAT_PCM                                         = 0x0001,               /* Microsoft PCM format */
+       WAVE_FORMAT_MS_ADPCM                            = 0x0002,               /* Microsoft ADPCM */
+       WAVE_FORMAT_IEEE_FLOAT                          = 0x0003,               /* Micrososft 32 bit float format */
+       WAVE_FORMAT_VSELP                                       = 0x0004,               /* Compaq Computer Corporation */
+       WAVE_FORMAT_IBM_CVSD                            = 0x0005,               /* IBM Corporation */
+       WAVE_FORMAT_ALAW                                        = 0x0006,               /* Microsoft Corporation */
+       WAVE_FORMAT_MULAW                                       = 0x0007,               /* Microsoft Corporation */
+       WAVE_FORMAT_OKI_ADPCM                           = 0x0010,               /* OKI */
+       WAVE_FORMAT_IMA_ADPCM                           = 0x0011,               /* Intel Corporation */
+       WAVE_FORMAT_MEDIASPACE_ADPCM            = 0x0012,               /* Videologic */
+       WAVE_FORMAT_SIERRA_ADPCM                        = 0x0013,               /* Sierra Semiconductor Corp */
+       WAVE_FORMAT_G723_ADPCM                          = 0x0014,               /* Antex Electronics Corporation */
+       WAVE_FORMAT_DIGISTD                                     = 0x0015,               /* DSP Solutions, Inc. */
+       WAVE_FORMAT_DIGIFIX                                     = 0x0016,               /* DSP Solutions, Inc. */
+       WAVE_FORMAT_DIALOGIC_OKI_ADPCM          = 0x0017,               /*  Dialogic Corporation  */
+       WAVE_FORMAT_MEDIAVISION_ADPCM           = 0x0018,               /*  Media Vision, Inc. */
+       WAVE_FORMAT_CU_CODEC                            = 0x0019,               /* Hewlett-Packard Company */
+       WAVE_FORMAT_YAMAHA_ADPCM                        = 0x0020,               /* Yamaha Corporation of America */
+       WAVE_FORMAT_SONARC                                      = 0x0021,               /* Speech Compression */
+       WAVE_FORMAT_DSPGROUP_TRUESPEECH         = 0x0022,               /* DSP Group, Inc */
+       WAVE_FORMAT_ECHOSC1                                     = 0x0023,               /* Echo Speech Corporation */
+       WAVE_FORMAT_AUDIOFILE_AF36                      = 0x0024,               /* Audiofile, Inc. */
+       WAVE_FORMAT_APTX                                        = 0x0025,               /* Audio Processing Technology */
+       WAVE_FORMAT_AUDIOFILE_AF10                      = 0x0026,               /* Audiofile, Inc. */
+       WAVE_FORMAT_PROSODY_1612                        = 0x0027,               /* Aculab plc */
+       WAVE_FORMAT_LRC                                         = 0x0028,               /* Merging Technologies S.A. */
+       WAVE_FORMAT_DOLBY_AC2                           = 0x0030,               /* Dolby Laboratories */
+       WAVE_FORMAT_GSM610                                      = 0x0031,               /* Microsoft Corporation */
+       WAVE_FORMAT_MSNAUDIO                            = 0x0032,               /* Microsoft Corporation */
+       WAVE_FORMAT_ANTEX_ADPCME                        = 0x0033,               /* Antex Electronics Corporation */
+       WAVE_FORMAT_CONTROL_RES_VQLPC           = 0x0034,               /* Control Resources Limited */
+       WAVE_FORMAT_DIGIREAL                            = 0x0035,               /* DSP Solutions, Inc. */
+       WAVE_FORMAT_DIGIADPCM                           = 0x0036,               /* DSP Solutions, Inc. */
+       WAVE_FORMAT_CONTROL_RES_CR10            = 0x0037,               /* Control Resources Limited */
+       WAVE_FORMAT_NMS_VBXADPCM                        = 0x0038,               /* Natural MicroSystems */
+       WAVE_FORMAT_ROLAND_RDAC                         = 0x0039,               /* Roland */
+       WAVE_FORMAT_ECHOSC3                                     = 0x003A,               /* Echo Speech Corporation */
+       WAVE_FORMAT_ROCKWELL_ADPCM                      = 0x003B,               /* Rockwell International */
+       WAVE_FORMAT_ROCKWELL_DIGITALK           = 0x003C,               /* Rockwell International */
+       WAVE_FORMAT_XEBEC                                       = 0x003D,               /* Xebec Multimedia Solutions Limited */
+       WAVE_FORMAT_G721_ADPCM                          = 0x0040,               /* Antex Electronics Corporation */
+       WAVE_FORMAT_G728_CELP                           = 0x0041,               /* Antex Electronics Corporation */
+       WAVE_FORMAT_MSG723                                      = 0x0042,               /* Microsoft Corporation */
+       WAVE_FORMAT_MPEG                                        = 0x0050,               /* Microsoft Corporation */
+       WAVE_FORMAT_RT24                                        = 0x0052,               /* InSoft Inc. */
+       WAVE_FORMAT_PAC                                         = 0x0053,               /* InSoft Inc. */
+       WAVE_FORMAT_MPEGLAYER3                          = 0x0055,               /* MPEG 3 Layer 1 */
+       WAVE_FORMAT_LUCENT_G723                         = 0x0059,               /* Lucent Technologies */
+       WAVE_FORMAT_CIRRUS                                      = 0x0060,               /* Cirrus Logic */
+       WAVE_FORMAT_ESPCM                                       = 0x0061,               /* ESS Technology */
+       WAVE_FORMAT_VOXWARE                                     = 0x0062,               /* Voxware Inc */
+       WAVE_FORMAT_CANOPUS_ATRAC                       = 0x0063,               /* Canopus, Co., Ltd. */
+       WAVE_FORMAT_G726_ADPCM                          = 0x0064,               /* APICOM */
+       WAVE_FORMAT_G722_ADPCM                          = 0x0065,               /* APICOM */
+       WAVE_FORMAT_DSAT                                        = 0x0066,               /* Microsoft Corporation */
+       WAVE_FORMAT_DSAT_DISPLAY                        = 0x0067,               /* Microsoft Corporation */
+       WAVE_FORMAT_VOXWARE_BYTE_ALIGNED        = 0x0069,               /* Voxware Inc. */
+       WAVE_FORMAT_VOXWARE_AC8                         = 0x0070,               /* Voxware Inc. */
+       WAVE_FORMAT_VOXWARE_AC10                        = 0x0071,               /* Voxware Inc. */
+       WAVE_FORMAT_VOXWARE_AC16                        = 0x0072,               /* Voxware Inc. */
+       WAVE_FORMAT_VOXWARE_AC20                        = 0x0073,               /* Voxware Inc. */
+       WAVE_FORMAT_VOXWARE_RT24                        = 0x0074,               /* Voxware Inc. */
+       WAVE_FORMAT_VOXWARE_RT29                        = 0x0075,               /* Voxware Inc. */
+       WAVE_FORMAT_VOXWARE_RT29HW                      = 0x0076,               /* Voxware Inc. */
+       WAVE_FORMAT_VOXWARE_VR12                        = 0x0077,               /* Voxware Inc. */
+       WAVE_FORMAT_VOXWARE_VR18                        = 0x0078,               /* Voxware Inc. */
+       WAVE_FORMAT_VOXWARE_TQ40                        = 0x0079,               /* Voxware Inc. */
+       WAVE_FORMAT_SOFTSOUND                           = 0x0080,               /* Softsound, Ltd. */
+       WAVE_FORMAT_VOXARE_TQ60                         = 0x0081,               /* Voxware Inc. */
+       WAVE_FORMAT_MSRT24                                      = 0x0082,               /* Microsoft Corporation */
+       WAVE_FORMAT_G729A                                       = 0x0083,               /* AT&T Laboratories */
+       WAVE_FORMAT_MVI_MV12                            = 0x0084,               /* Motion Pixels */
+       WAVE_FORMAT_DF_G726                                     = 0x0085,               /* DataFusion Systems (Pty) (Ltd) */
+       WAVE_FORMAT_DF_GSM610                           = 0x0086,               /* DataFusion Systems (Pty) (Ltd) */
+       /* removed because duplicate */
+       /* WAVE_FORMAT_ISIAUDIO                         = 0x0088, */    /* Iterated Systems, Inc. */
+       WAVE_FORMAT_ONLIVE                                      = 0x0089,               /* OnLive! Technologies, Inc. */
+       WAVE_FORMAT_SBC24                                       = 0x0091,               /* Siemens Business Communications Systems */
+       WAVE_FORMAT_DOLBY_AC3_SPDIF                     = 0x0092,               /* Sonic Foundry */
+       WAVE_FORMAT_ZYXEL_ADPCM                         = 0x0097,               /* ZyXEL Communications, Inc. */
+       WAVE_FORMAT_PHILIPS_LPCBB                       = 0x0098,               /* Philips Speech Processing */
+       WAVE_FORMAT_PACKED                                      = 0x0099,               /* Studer Professional Audio AG */
+       WAVE_FORMAT_RHETOREX_ADPCM                      = 0x0100,               /* Rhetorex, Inc. */
+
+       /* removed because of the following */
+       /* WAVE_FORMAT_IRAT                                     = 0x0101,*/             /* BeCubed Software Inc. */
+
+       /* these three are unofficial */
+       IBM_FORMAT_MULAW                                        = 0x0101,               /* IBM mu-law format */
+       IBM_FORMAT_ALAW                                         = 0x0102,               /* IBM a-law format */
+       IBM_FORMAT_ADPCM                                        = 0x0103,               /* IBM AVC Adaptive Differential PCM format */
+
+       WAVE_FORMAT_VIVO_G723                           = 0x0111,               /* Vivo Software */
+       WAVE_FORMAT_VIVO_SIREN                          = 0x0112,               /* Vivo Software */
+       WAVE_FORMAT_DIGITAL_G723                        = 0x0123,               /* Digital Equipment Corporation */
+       WAVE_FORMAT_CREATIVE_ADPCM                      = 0x0200,               /* Creative Labs, Inc */
+       WAVE_FORMAT_CREATIVE_FASTSPEECH8        = 0x0202,               /* Creative Labs, Inc */
+       WAVE_FORMAT_CREATIVE_FASTSPEECH10       = 0x0203,               /* Creative Labs, Inc */
+       WAVE_FORMAT_QUARTERDECK                         = 0x0220,               /* Quarterdeck Corporation */
+       WAVE_FORMAT_FM_TOWNS_SND                        = 0x0300,               /* Fujitsu Corporation */
+       WAVE_FORMAT_BZV_DIGITAL                         = 0x0400,               /* Brooktree Corporation */
+       WAVE_FORMAT_VME_VMPCM                           = 0x0680,               /* AT&T Labs, Inc. */
+       WAVE_FORMAT_OLIGSM                                      = 0x1000,               /* Ing C. Olivetti & C., S.p.A. */
+       WAVE_FORMAT_OLIADPCM                            = 0x1001,               /* Ing C. Olivetti & C., S.p.A. */
+       WAVE_FORMAT_OLICELP                                     = 0x1002,               /* Ing C. Olivetti & C., S.p.A. */
+       WAVE_FORMAT_OLISBC                                      = 0x1003,               /* Ing C. Olivetti & C., S.p.A. */
+       WAVE_FORMAT_OLIOPR                                      = 0x1004,               /* Ing C. Olivetti & C., S.p.A. */
+       WAVE_FORMAT_LH_CODEC                            = 0x1100,               /* Lernout & Hauspie */
+       WAVE_FORMAT_NORRIS                                      = 0x1400,               /* Norris Communications, Inc. */
+       /* removed because duplicate */
+       /* WAVE_FORMAT_ISIAUDIO                         = 0x1401, */    /* AT&T Labs, Inc. */
+       WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS     = 0x1500,               /* AT&T Labs, Inc. */
+       WAVE_FORMAT_DVM                                         = 0x2000,               /* FAST Multimedia AG */
+       WAVE_FORMAT_INTERWAV_VSC112                     = 0x7150,               /* ????? */
+
+       WAVE_FORMAT_IPP_ITU_G_723_1                     = 0x7230,               /* Intel Performance Primitives g723 codec. */
+
+       WAVE_FORMAT_EXTENSIBLE                          = 0xFFFE
+} ;
+
+typedef        struct
+{      unsigned short  format ;
+       unsigned short  channels ;
+       unsigned int    samplerate ;
+       unsigned int    bytespersec ;
+       unsigned short  blockalign ;
+       unsigned short  bitwidth ;
+} MIN_WAV_FMT ;
+
+typedef        struct
+{      unsigned short  format ;
+       unsigned short  channels ;
+       unsigned int    samplerate ;
+       unsigned int    bytespersec ;
+       unsigned short  blockalign ;
+       unsigned short  bitwidth ;
+       unsigned short  extrabytes ;
+       unsigned short  dummy ;
+} WAV_FMT_SIZE20 ;
+
+typedef        struct
+{      unsigned short  format ;
+       unsigned short  channels ;
+       unsigned int    samplerate ;
+       unsigned int    bytespersec ;
+       unsigned short  blockalign ;
+       unsigned short  bitwidth ;
+       unsigned short  extrabytes ;
+       unsigned short  samplesperblock ;
+       unsigned short  numcoeffs ;
+       struct
+       {       short   coeff1 ;
+               short   coeff2 ;
+       }       coeffs [7] ;
+} MS_ADPCM_WAV_FMT ;
+
+typedef        struct
+{      unsigned short  format ;
+       unsigned short  channels ;
+       unsigned int    samplerate ;
+       unsigned int    bytespersec ;
+       unsigned short  blockalign ;
+       unsigned short  bitwidth ;
+       unsigned short  extrabytes ;
+       unsigned short  samplesperblock ;
+} IMA_ADPCM_WAV_FMT ;
+
+typedef        struct
+{      unsigned short  format ;
+       unsigned short  channels ;
+       unsigned int    samplerate ;
+       unsigned int    bytespersec ;
+       unsigned short  blockalign ;
+       unsigned short  bitwidth ;
+       unsigned short  extrabytes ;
+       unsigned short  auxblocksize ;
+} G72x_ADPCM_WAV_FMT ;
+
+
+typedef        struct
+{      unsigned short  format ;
+       unsigned short  channels ;
+       unsigned int    samplerate ;
+       unsigned int    bytespersec ;
+       unsigned short  blockalign ;
+       unsigned short  bitwidth ;
+       unsigned short  extrabytes ;
+       unsigned short  samplesperblock ;
+} GSM610_WAV_FMT ;
+
+typedef struct
+{      unsigned int    esf_field1 ;
+       unsigned short  esf_field2 ;
+       unsigned short  esf_field3 ;
+       char                    esf_field4 [8] ;
+} EXT_SUBFORMAT ;
+
+typedef        struct
+{      unsigned short  format ;
+       unsigned short  channels ;
+       unsigned int    samplerate ;
+       unsigned int    bytespersec ;
+       unsigned short  blockalign ;
+       unsigned short  bitwidth ;
+       unsigned short  extrabytes ;
+       unsigned short  validbits ;
+       unsigned int    channelmask ;
+       EXT_SUBFORMAT   esf ;
+} EXTENSIBLE_WAV_FMT ;
+
+typedef union
+{      unsigned short          format ;
+       MIN_WAV_FMT                     min ;
+       IMA_ADPCM_WAV_FMT       ima ;
+       MS_ADPCM_WAV_FMT        msadpcm ;
+       G72x_ADPCM_WAV_FMT      g72x ;
+       EXTENSIBLE_WAV_FMT      ext ;
+       GSM610_WAV_FMT          gsm610 ;
+       WAV_FMT_SIZE20          size20 ;
+       char                            padding [512] ;
+} WAV_FMT ;
+
+typedef struct
+{      int frames ;
+} FACT_CHUNK ;
+
+typedef struct
+{      /* For ambisonic commands */
+       int     wavex_ambisonic ;
+       unsigned wavex_channelmask ;
+
+       /* Set to true when 'fmt ' chunk is ambiguous.*/
+       int fmt_is_broken ;
+       WAV_FMT wav_fmt ;
+} WAV_PRIVATE ;
+
+#define                WAV_W64_GSM610_BLOCKSIZE        65
+#define                WAV_W64_GSM610_SAMPLES          320
+
+/*------------------------------------------------------------------------------------
+**     Functions defined in wav_ms_adpcm.c
+*/
+
+#define        MSADPCM_ADAPT_COEFF_COUNT       7
+
+void   msadpcm_write_adapt_coeffs (SF_PRIVATE *psf) ;
+
+/*------------------------------------------------------------------------------------
+**     Functions defined in wav_w64.c
+*/
+
+int    wav_w64_srate2blocksize (int srate_chan_product) ;
+char const* wav_w64_format_str (int k) ;
+int            wav_w64_read_fmt_chunk (SF_PRIVATE *psf, int fmtsize) ;
+void   wavex_write_guid (SF_PRIVATE *psf, const EXT_SUBFORMAT * subformat) ;
+void   wav_w64_analyze (SF_PRIVATE *psf) ;
+int            wavex_gen_channel_mask (const int *chan_map, int channels) ;
+
+int            wav_read_bext_chunk (SF_PRIVATE *psf, unsigned int chunksize) ;
+int            wav_write_bext_chunk (SF_PRIVATE *psf) ;
+
+#endif
+