1 /*
2  *   toform.h
3  *
4  *   Support for various output formats for tosha.
5  *
6  *   Oliver Fromme  <olli@fromme.com>
7  *
8  *   Copyright (C) 1997,1998,1999
9  *        Oliver Fromme.  All rights reserved.
10  *
11  *   Redistribution and use in source and binary forms, with or without
12  *   modification, are permitted provided that the following conditions
13  *   are met:
14  *   1. Redistributions of source code must retain the above copyright
15  *      notice, this list of conditions and the following disclaimer.
16  *   2. Redistributions in binary form must reproduce the above copyright
17  *      notice, this list of conditions and the following disclaimer in the
18  *      documentation and/or other materials provided with the distribution.
19  *   3. Neither the name of the author nor the names of any co-contributors
20  *      may be used to endorse or promote products derived from this software
21  *      without specific prior written permission.
22  *
23  *   THIS SOFTWARE IS PROVIDED BY OLIVER FROMME AND CONTRIBUTORS ``AS IS'' AND
24  *   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25  *   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26  *   ARE DISCLAIMED.  IN NO EVENT SHALL OLIVER FROMME OR CONTRIBUTORS BE LIABLE
27  *   FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28  *   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29  *   OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30  *   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31  *   LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32  *   OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33  *   SUCH DAMAGE.
34  *
35  *   @(#)$Id: toform.h,v 1.2 1999/01/01 23:31:59 olli Exp $
36  */
37 
38 static const char cvsid_toform_h[]
39     = "@(#)$Id: toform.h,v 1.2 1999/01/01 23:31:59 olli Exp $";
40 
41 typedef int (*writeheaderfunc) (ulong, int);
42 
43 typedef struct {
44 	char *name1, *name2;
45 	char *ext;
46 	writeheaderfunc writeheader;
47 	bool swapbytes;
48 } formspec;
49 
50 int raw_writeheader  (ulong, int);
51 int war_writeheader  (ulong, int);
52 int aiff_writeheader (ulong, int);
53 int wav_writeheader  (ulong, int);
54 int au_writeheader   (ulong, int);
55 
56 #define RAW_SWAPBYTES   FALSE	/* RAW/PCM with little-endian byte order */
57 #define WAR_SWAPBYTES   TRUE	/* RAW/PCM with little-endian byte order */
58 #define AIFF_SWAPBYTES  TRUE	/* AIFF uses big-endian byte order */
59 #define WAV_SWAPBYTES   FALSE	/* WAV uses little-endian byte order */
60 #define AU_SWAPBYTES    TRUE	/* Sun's AU uses big-endian byte order */
61 
62 extern const formspec format[];
63 
64 /* EOF */
65