ref: 15e2a53e83066c48c2ece1a7475c9c86bc14ee37
parent: 29dead338461d0883d734fc6e8e8f83d22510e43
author: knik <knik>
date: Sat Nov 23 12:42:24 EST 2002
removed unused filed
--- a/common/getopt/COPYING
+++ /dev/null
@@ -1,340 +1,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 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 General Public License for more details.
-
- You should have received a copy of the GNU 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
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
--- a/common/getopt/getopt.c
+++ /dev/null
@@ -1,756 +1,0 @@
-/* Getopt for GNU.
- NOTE: getopt is now part of the C library, so if you don't know what
- "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
- before changing it!
-
- Copyright (C) 1987, 88, 89, 90, 91, 92, 1993
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifndef __STDC__
-# ifndef const
-# define const
-# endif
-#endif
-
-/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>. */
-#ifndef _NO_PROTO
-#define _NO_PROTO
-#endif
-
-#include <stdio.h>
-//#include "tailor.h"
-
-/* Comment out all this code if we are using the GNU C Library, and are not
- actually compiling the library itself. This code is part of the GNU C
- Library, but also included in many other GNU distributions. Compiling
- and linking in this code is a waste when using the GNU C library
- (especially if it is a shared library). Rather than having every GNU
- program understand `configure --with-gnu-libc' and omit the object files,
- it is simpler to just do this in the source for each such file. */
-
-#if defined (_LIBC) || !defined (__GNU_LIBRARY__) || !__MacOSX__
-
-
-/* This needs to come after some library #include
- to get __GNU_LIBRARY__ defined. */
-#ifdef __GNU_LIBRARY__
-/* Don't include stdlib.h for non-GNU C libraries because some of them
- contain conflicting prototypes for getopt. */
-#include <stdlib.h>
-#endif /* GNU C library. */
-
-/* If GETOPT_COMPAT is defined, `+' as well as `--' can introduce a
- long-named option. Because this is not POSIX.2 compliant, it is
- being phased out. */
-/* #define GETOPT_COMPAT */
-
-/* This version of `getopt' appears to the caller like standard Unix `getopt'
- but it behaves differently for the user, since it allows the user
- to intersperse the options with the other arguments.
-
- As `getopt' works, it permutes the elements of ARGV so that,
- when it is done, all the options precede everything else. Thus
- all application programs are extended to handle flexible argument order.
-
- Setting the environment variable POSIXLY_CORRECT disables permutation.
- Then the behavior is completely standard.
-
- GNU application programs can use a third alternative mode in which
- they can distinguish the relative order of options and other arguments. */
-
-#include "getopt.h"
-
-/* For communication from `getopt' to the caller.
- When `getopt' finds an option that takes an argument,
- the argument value is returned here.
- Also, when `ordering' is RETURN_IN_ORDER,
- each non-option ARGV-element is returned here. */
-
-char *optarg = 0;
-
-/* Index in ARGV of the next element to be scanned.
- This is used for communication to and from the caller
- and for communication between successive calls to `getopt'.
-
- On entry to `getopt', zero means this is the first call; initialize.
-
- When `getopt' returns EOF, this is the index of the first of the
- non-option elements that the caller should itself scan.
-
- Otherwise, `optind' communicates from one call to the next
- how much of ARGV has been scanned so far. */
-
-/* XXX 1003.2 says this must be 1 before any call. */
-int optind = 0;
-
-/* The next char to be scanned in the option-element
- in which the last option character we returned was found.
- This allows us to pick up the scan where we left off.
-
- If this is zero, or a null string, it means resume the scan
- by advancing to the next ARGV-element. */
-
-static char *nextchar;
-
-/* Callers store zero here to inhibit the error message
- for unrecognized options. */
-
-int opterr = 1;
-
-/* Set to an option character which was unrecognized.
- This must be initialized on some systems to avoid linking in the
- system's own getopt implementation. */
-
-#define BAD_OPTION '\0'
-int optopt = BAD_OPTION;
-
-/* Describe how to deal with options that follow non-option ARGV-elements.
-
- If the caller did not specify anything,
- the default is REQUIRE_ORDER if the environment variable
- POSIXLY_CORRECT is defined, PERMUTE otherwise.
-
- REQUIRE_ORDER means don't recognize them as options;
- stop option processing when the first non-option is seen.
- This is what Unix does.
- This mode of operation is selected by either setting the environment
- variable POSIXLY_CORRECT, or using `+' as the first character
- of the list of option characters.
-
- PERMUTE is the default. We permute the contents of ARGV as we scan,
- so that eventually all the non-options are at the end. This allows options
- to be given in any order, even with programs that were not written to
- expect this.
-
- RETURN_IN_ORDER is an option available to programs that were written
- to expect options and other ARGV-elements in any order and that care about
- the ordering of the two. We describe each non-option ARGV-element
- as if it were the argument of an option with character code 1.
- Using `-' as the first character of the list of option characters
- selects this mode of operation.
-
- The special argument `--' forces an end of option-scanning regardless
- of the value of `ordering'. In the case of RETURN_IN_ORDER, only
- `--' can cause `getopt' to return EOF with `optind' != ARGC. */
-
-static enum
-{
- REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
-} ordering;
-
-#ifdef __GNU_LIBRARY__
-/* We want to avoid inclusion of string.h with non-GNU libraries
- because there are many ways it can cause trouble.
- On some systems, it contains special magic macros that don't work
- in GCC. */
-#include <string.h>
-#define my_index strchr
-#define my_strlen strlen
-#else
-
-/* Avoid depending on library functions or files
- whose names are inconsistent. */
-
-#if __STDC__ || defined(PROTO)
-extern char *getenv(const char *name);
-extern int strcmp (const char *s1, const char *s2);
-extern int strncmp(const char *s1, const char *s2, unsigned int n);
-
-static int my_strlen(const char *s);
-static char *my_index (const char *str, int chr);
-#else
-extern char *getenv ();
-#endif
-
-static int
-my_strlen (str)
- const char *str;
-{
- int n = 0;
- while (*str++)
- n++;
- return n;
-}
-
-static char *
-my_index (str, chr)
- const char *str;
- int chr;
-{
- while (*str)
- {
- if (*str == chr)
- return (char *) str;
- str++;
- }
- return 0;
-}
-
-#endif /* GNU C library. */
-
-/* Handle permutation of arguments. */
-
-/* Describe the part of ARGV that contains non-options that have
- been skipped. `first_nonopt' is the index in ARGV of the first of them;
- `last_nonopt' is the index after the last of them. */
-
-static int first_nonopt;
-static int last_nonopt;
-
-/* Exchange two adjacent subsequences of ARGV.
- One subsequence is elements [first_nonopt,last_nonopt)
- which contains all the non-options that have been skipped so far.
- The other is elements [last_nonopt,optind), which contains all
- the options processed since those non-options were skipped.
-
- `first_nonopt' and `last_nonopt' are relocated so that they describe
- the new indices of the non-options in ARGV after they are moved.
-
- To perform the swap, we first reverse the order of all elements. So
- all options now come before all non options, but they are in the
- wrong order. So we put back the options and non options in original
- order by reversing them again. For example:
- original input: a b c -x -y
- reverse all: -y -x c b a
- reverse options: -x -y c b a
- reverse non options: -x -y a b c
-*/
-
-#if __STDC__ || defined(PROTO)
-static void exchange (char **argv);
-#endif
-
-static void
-exchange (argv)
- char **argv;
-{
- char *temp, **first, **last;
-
- /* Reverse all the elements [first_nonopt, optind) */
- first = &argv[first_nonopt];
- last = &argv[optind-1];
- while (first < last) {
- temp = *first; *first = *last; *last = temp; first++; last--;
- }
- /* Put back the options in order */
- first = &argv[first_nonopt];
- first_nonopt += (optind - last_nonopt);
- last = &argv[first_nonopt - 1];
- while (first < last) {
- temp = *first; *first = *last; *last = temp; first++; last--;
- }
-
- /* Put back the non options in order */
- first = &argv[first_nonopt];
- last_nonopt = optind;
- last = &argv[last_nonopt-1];
- while (first < last) {
- temp = *first; *first = *last; *last = temp; first++; last--;
- }
-}
-
-/* Scan elements of ARGV (whose length is ARGC) for option characters
- given in OPTSTRING.
-
- If an element of ARGV starts with '-', and is not exactly "-" or "--",
- then it is an option element. The characters of this element
- (aside from the initial '-') are option characters. If `getopt'
- is called repeatedly, it returns successively each of the option characters
- from each of the option elements.
-
- If `getopt' finds another option character, it returns that character,
- updating `optind' and `nextchar' so that the next call to `getopt' can
- resume the scan with the following option character or ARGV-element.
-
- If there are no more option characters, `getopt' returns `EOF'.
- Then `optind' is the index in ARGV of the first ARGV-element
- that is not an option. (The ARGV-elements have been permuted
- so that those that are not options now come last.)
-
- OPTSTRING is a string containing the legitimate option characters.
- If an option character is seen that is not listed in OPTSTRING,
- return BAD_OPTION after printing an error message. If you set `opterr' to
- zero, the error message is suppressed but we still return BAD_OPTION.
-
- If a char in OPTSTRING is followed by a colon, that means it wants an arg,
- so the following text in the same ARGV-element, or the text of the following
- ARGV-element, is returned in `optarg'. Two colons mean an option that
- wants an optional arg; if there is text in the current ARGV-element,
- it is returned in `optarg', otherwise `optarg' is set to zero.
-
- If OPTSTRING starts with `-' or `+', it requests different methods of
- handling the non-option ARGV-elements.
- See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
-
- Long-named options begin with `--' instead of `-'.
- Their names may be abbreviated as long as the abbreviation is unique
- or is an exact match for some defined option. If they have an
- argument, it follows the option name in the same ARGV-element, separated
- from the option name by a `=', or else the in next ARGV-element.
- When `getopt' finds a long-named option, it returns 0 if that option's
- `flag' field is nonzero, the value of the option's `val' field
- if the `flag' field is zero.
-
- The elements of ARGV aren't really const, because we permute them.
- But we pretend they're const in the prototype to be compatible
- with other systems.
-
- LONGOPTS is a vector of `struct option' terminated by an
- element containing a name which is zero.
-
- LONGIND returns the index in LONGOPT of the long-named option found.
- It is only valid when a long-named option has been found by the most
- recent call.
-
- If LONG_ONLY is nonzero, '-' as well as '--' can introduce
- long-named options. */
-
-int
-_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
- int argc;
- char *const *argv;
- const char *optstring;
- const struct option *longopts;
- int *longind;
- int long_only;
-{
- int option_index;
-
- optarg = 0;
-
- /* Initialize the internal data when the first call is made.
- Start processing options with ARGV-element 1 (since ARGV-element 0
- is the program name); the sequence of previously skipped
- non-option ARGV-elements is empty. */
-
- if (optind == 0)
- {
- first_nonopt = last_nonopt = optind = 1;
-
- nextchar = NULL;
-
- /* Determine how to handle the ordering of options and nonoptions. */
-
- if (optstring[0] == '-')
- {
- ordering = RETURN_IN_ORDER;
- ++optstring;
- }
- else if (optstring[0] == '+')
- {
- ordering = REQUIRE_ORDER;
- ++optstring;
- }
- else if (getenv ("POSIXLY_CORRECT") != NULL)
- ordering = REQUIRE_ORDER;
- else
- ordering = PERMUTE;
- }
-
- if (nextchar == NULL || *nextchar == '\0')
- {
- if (ordering == PERMUTE)
- {
- /* If we have just processed some options following some non-options,
- exchange them so that the options come first. */
-
- if (first_nonopt != last_nonopt && last_nonopt != optind)
- exchange ((char **) argv);
- else if (last_nonopt != optind)
- first_nonopt = optind;
-
- /* Now skip any additional non-options
- and extend the range of non-options previously skipped. */
-
- while (optind < argc
- && (argv[optind][0] != '-' || argv[optind][1] == '\0')
-#ifdef GETOPT_COMPAT
- && (longopts == NULL
- || argv[optind][0] != '+' || argv[optind][1] == '\0')
-#endif /* GETOPT_COMPAT */
- )
- optind++;
- last_nonopt = optind;
- }
-
- /* Special ARGV-element `--' means premature end of options.
- Skip it like a null option,
- then exchange with previous non-options as if it were an option,
- then skip everything else like a non-option. */
-
- if (optind != argc && !strcmp (argv[optind], "--"))
- {
- optind++;
-
- if (first_nonopt != last_nonopt && last_nonopt != optind)
- exchange ((char **) argv);
- else if (first_nonopt == last_nonopt)
- first_nonopt = optind;
- last_nonopt = argc;
-
- optind = argc;
- }
-
- /* If we have done all the ARGV-elements, stop the scan
- and back over any non-options that we skipped and permuted. */
-
- if (optind == argc)
- {
- /* Set the next-arg-index to point at the non-options
- that we previously skipped, so the caller will digest them. */
- if (first_nonopt != last_nonopt)
- optind = first_nonopt;
- return EOF;
- }
-
- /* If we have come to a non-option and did not permute it,
- either stop the scan or describe it to the caller and pass it by. */
-
- if ((argv[optind][0] != '-' || argv[optind][1] == '\0')
-#ifdef GETOPT_COMPAT
- && (longopts == NULL
- || argv[optind][0] != '+' || argv[optind][1] == '\0')
-#endif /* GETOPT_COMPAT */
- )
- {
- if (ordering == REQUIRE_ORDER)
- return EOF;
- optarg = argv[optind++];
- return 1;
- }
-
- /* We have found another option-ARGV-element.
- Start decoding its characters. */
-
- nextchar = (argv[optind] + 1
- + (longopts != NULL && argv[optind][1] == '-'));
- }
-
- if (longopts != NULL
- && ((argv[optind][0] == '-'
- && (argv[optind][1] == '-' || long_only))
-#ifdef GETOPT_COMPAT
- || argv[optind][0] == '+'
-#endif /* GETOPT_COMPAT */
- ))
- {
- const struct option *p;
- char *s = nextchar;
- int exact = 0;
- int ambig = 0;
- const struct option *pfound = NULL;
- int indfound = 0;
-
- while (*s && *s != '=')
- s++;
-
- /* Test all options for either exact match or abbreviated matches. */
- for (p = longopts, option_index = 0; p->name;
- p++, option_index++)
- if (!strncmp (p->name, nextchar, s - nextchar))
- {
- if (s - nextchar == my_strlen (p->name))
- {
- /* Exact match found. */
- pfound = p;
- indfound = option_index;
- exact = 1;
- break;
- }
- else if (pfound == NULL)
- {
- /* First nonexact match found. */
- pfound = p;
- indfound = option_index;
- }
- else
- /* Second nonexact match found. */
- ambig = 1;
- }
-
- if (ambig && !exact)
- {
- if (opterr)
- fprintf (stderr, "%s: option `%s' is ambiguous\n",
- argv[0], argv[optind]);
- nextchar += my_strlen (nextchar);
- optind++;
- return BAD_OPTION;
- }
-
- if (pfound != NULL)
- {
- option_index = indfound;
- optind++;
- if (*s)
- {
- /* Don't test has_arg with >, because some C compilers don't
- allow it to be used on enums. */
- if (pfound->has_arg)
- optarg = s + 1;
- else
- {
- if (opterr)
- {
- if (argv[optind - 1][1] == '-')
- /* --option */
- fprintf (stderr,
- "%s: option `--%s' doesn't allow an argument\n",
- argv[0], pfound->name);
- else
- /* +option or -option */
- fprintf (stderr,
- "%s: option `%c%s' doesn't allow an argument\n",
- argv[0], argv[optind - 1][0], pfound->name);
- }
- nextchar += my_strlen (nextchar);
- return BAD_OPTION;
- }
- }
- else if (pfound->has_arg == 1)
- {
- if (optind < argc)
- optarg = argv[optind++];
- else
- {
- if (opterr)
- fprintf (stderr, "%s: option `%s' requires an argument\n",
- argv[0], argv[optind - 1]);
- nextchar += my_strlen (nextchar);
- return optstring[0] == ':' ? ':' : BAD_OPTION;
- }
- }
- nextchar += my_strlen (nextchar);
- if (longind != NULL)
- *longind = option_index;
- if (pfound->flag)
- {
- *(pfound->flag) = pfound->val;
- return 0;
- }
- return pfound->val;
- }
- /* Can't find it as a long option. If this is not getopt_long_only,
- or the option starts with '--' or is not a valid short
- option, then it's an error.
- Otherwise interpret it as a short option. */
- if (!long_only || argv[optind][1] == '-'
-#ifdef GETOPT_COMPAT
- || argv[optind][0] == '+'
-#endif /* GETOPT_COMPAT */
- || my_index (optstring, *nextchar) == NULL)
- {
- if (opterr)
- {
- if (argv[optind][1] == '-')
- /* --option */
- fprintf (stderr, "%s: unrecognized option `--%s'\n",
- argv[0], nextchar);
- else
- /* +option or -option */
- fprintf (stderr, "%s: unrecognized option `%c%s'\n",
- argv[0], argv[optind][0], nextchar);
- }
- nextchar = (char *) "";
- optind++;
- return BAD_OPTION;
- }
- }
-
- /* Look at and handle the next option-character. */
-
- {
- char c = *nextchar++;
- char *temp = my_index (optstring, c);
-
- /* Increment `optind' when we start to process its last character. */
- if (*nextchar == '\0')
- ++optind;
-
- if (temp == NULL || c == ':')
- {
- if (opterr)
- {
-#if 0
- if (c < 040 || c >= 0177)
- fprintf (stderr, "%s: unrecognized option, character code 0%o\n",
- argv[0], c);
- else
- fprintf (stderr, "%s: unrecognized option `-%c'\n", argv[0], c);
-#else
- /* 1003.2 specifies the format of this message. */
- fprintf (stderr, "%s: illegal option -- %c\n", argv[0], c);
-#endif
- }
- optopt = c;
- return BAD_OPTION;
- }
- if (temp[1] == ':')
- {
- if (temp[2] == ':')
- {
- /* This is an option that accepts an argument optionally. */
- if (*nextchar != '\0')
- {
- optarg = nextchar;
- optind++;
- }
- else
- optarg = 0;
- nextchar = NULL;
- }
- else
- {
- /* This is an option that requires an argument. */
- if (*nextchar != '\0')
- {
- optarg = nextchar;
- /* If we end this ARGV-element by taking the rest as an arg,
- we must advance to the next element now. */
- optind++;
- }
- else if (optind == argc)
- {
- if (opterr)
- {
-#if 0
- fprintf (stderr, "%s: option `-%c' requires an argument\n",
- argv[0], c);
-#else
- /* 1003.2 specifies the format of this message. */
- fprintf (stderr, "%s: option requires an argument -- %c\n",
- argv[0], c);
-#endif
- }
- optopt = c;
- if (optstring[0] == ':')
- c = ':';
- else
- c = BAD_OPTION;
- }
- else
- /* We already incremented `optind' once;
- increment it again when taking next ARGV-elt as argument. */
- optarg = argv[optind++];
- nextchar = NULL;
- }
- }
- return c;
- }
-}
-
-int
-getopt (argc, argv, optstring)
- int argc;
- char *const *argv;
- const char *optstring;
-{
- return _getopt_internal (argc, argv, optstring,
- (const struct option *) 0,
- (int *) 0,
- 0);
-}
-
-int
-getopt_long (argc, argv, options, long_options, opt_index)
- int argc;
- char *const *argv;
- const char *options;
- const struct option *long_options;
- int *opt_index;
-{
- return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
-}
-
-#endif /* _LIBC or not __GNU_LIBRARY__. */
-
-#ifdef TEST
-
-/* Compile with -DTEST to make an executable for use in testing
- the above definition of `getopt'. */
-
-int
-main (argc, argv)
- int argc;
- char **argv;
-{
- int c;
- int digit_optind = 0;
-
- while (1)
- {
- int this_option_optind = optind ? optind : 1;
-
- c = getopt (argc, argv, "abc:d:0123456789");
- if (c == EOF)
- break;
-
- switch (c)
- {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- if (digit_optind != 0 && digit_optind != this_option_optind)
- printf ("digits occur in two different argv-elements.\n");
- digit_optind = this_option_optind;
- printf ("option %c\n", c);
- break;
-
- case 'a':
- printf ("option a\n");
- break;
-
- case 'b':
- printf ("option b\n");
- break;
-
- case 'c':
- printf ("option c with value `%s'\n", optarg);
- break;
-
- case BAD_OPTION:
- break;
-
- default:
- printf ("?? getopt returned character code 0%o ??\n", c);
- }
- }
-
- if (optind < argc)
- {
- printf ("non-option ARGV-elements: ");
- while (optind < argc)
- printf ("%s ", argv[optind++]);
- printf ("\n");
- }
-
- exit (0);
-}
-
-#endif /* TEST */
--- a/common/getopt/getopt.h
+++ /dev/null
@@ -1,130 +1,0 @@
-/* Declarations for getopt.
- Copyright (C) 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-#ifndef _GETOPT_H
-#define _GETOPT_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef __MacOSX__
-
-/* For communication from `getopt' to the caller.
- When `getopt' finds an option that takes an argument,
- the argument value is returned here.
- Also, when `ordering' is RETURN_IN_ORDER,
- each non-option ARGV-element is returned here. */
-
-extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
- This is used for communication to and from the caller
- and for communication between successive calls to `getopt'.
-
- On entry to `getopt', zero means this is the first call; initialize.
-
- When `getopt' returns EOF, this is the index of the first of the
- non-option elements that the caller should itself scan.
-
- Otherwise, `optind' communicates from one call to the next
- how much of ARGV has been scanned so far. */
-
-extern int optind;
-
-/* Callers store zero here to inhibit the error message `getopt' prints
- for unrecognized options. */
-
-extern int opterr;
-
-/* Set to an option character which was unrecognized. */
-
-extern int optopt;
-#endif
-
-/* Describe the long-named options requested by the application.
- The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
- of `struct option' terminated by an element containing a name which is
- zero.
-
- The field `has_arg' is:
- no_argument (or 0) if the option does not take an argument,
- required_argument (or 1) if the option requires an argument,
- optional_argument (or 2) if the option takes an optional argument.
-
- If the field `flag' is not NULL, it points to a variable that is set
- to the value given in the field `val' when the option is found, but
- left unchanged if the option is not found.
-
- To have a long-named option do something other than set an `int' to
- a compiled-in constant, such as set a value from `optarg', set the
- option's `flag' field to zero and its `val' field to a nonzero
- value (the equivalent single-letter option character, if there is
- one). For long options that have a zero `flag' field, `getopt'
- returns the contents of the `val' field. */
-
-struct option
-{
-#if __STDC__
- const char *name;
-#else
- char *name;
-#endif
- /* has_arg can't be an enum because some compilers complain about
- type mismatches in all the code that assumes it is an int. */
- int has_arg;
- int *flag;
- int val;
-};
-
-/* Names for the values of the `has_arg' field of `struct option'. */
-
-#define no_argument 0
-#define required_argument 1
-#define optional_argument 2
-
-//#if __STDC__ || defined(PROTO)
-#if defined(__GNU_LIBRARY__)
-/* Many other libraries have conflicting prototypes for getopt, with
- differences in the consts, in stdlib.h. To avoid compilation
- errors, only prototype getopt for the GNU C library. */
-extern int getopt (int argc, char *const *argv, const char *shortopts);
-#endif /* not __GNU_LIBRARY__ */
-extern int getopt_long (int argc, char *const *argv, const char *shortopts,
- const struct option *longopts, int *longind);
-extern int getopt_long_only (int argc, char *const *argv,
- const char *shortopts,
- const struct option *longopts, int *longind);
-
-/* Internal only. Users should not call this directly. */
-extern int _getopt_internal (int argc, char *const *argv,
- const char *shortopts,
- const struct option *longopts, int *longind,
- int long_only);
-//#else /* not __STDC__ */
-extern int getopt (int argc, char *const *argv, const char *shortopts);
-//extern int getopt_long ();
-//extern int getopt_long_only ();
-
-//extern int _getopt_internal ();
-//#endif /* not __STDC__ */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _GETOPT_H */
--- a/common/libsndfile/AUTHORS
+++ /dev/null
@@ -1,17 +1,0 @@
-The main author of libsndfile is Erik de Castro Lopo <erikd AT zip DOT com DOT au>.
-
-The code in the src/GSM610 directory was written by Jutta Degener
-<jutta AT cs DOT tu-berlin DOT de> and Carsten Bormann
-<cabo AT cs DOT tu-berlin DOT de>. They should not be contacted in relation to
-libsndfile or the GSM 6.10 code that is part of libsndfile. Their original code
-can be found at:
-
- http://kbs.cs.tu-berlin.de/~jutta/toast.html
-
-Code in the src/G72x directory was released by Sun Microsystems, Inc. to the
-public domain. Minor modifications were required to integrate these files
-into libsndfile. The changes are listed in src/G72x/ChangeLog.
-
-
-
-
--- a/common/libsndfile/COPYING
+++ /dev/null
@@ -1,503 +1,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library 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 library 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 library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
--- a/common/libsndfile/ChangeLog
+++ /dev/null
@@ -1,1202 +1,0 @@
-2001-11-11 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * examples/sfplay_beos.cpp
- Added BeOS version of sfplay.c. This needs to be compiled using a C++
- compiler so is therefore not built by default. Thanks to Marcus Overhagen
- for providing this.
-
-2001-11-11 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/*.[ch]
- Removed all usage of off_t which is not part of the ISO C standard. All places
- which were using it are now using type long which is the type of the offset
- parameter for the fseek function.
- This should fix problems on BeOS, MacOS and *BSD like systems which were failing
- "make check" because sizeof (long) != sizeof (off_t).
-
-2001-11-10 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * examples/sfplay.c
- New example file showing how libsndfile can be used to read and play a sound file.
- At the moment on Linux is supported. Others will follow in the near future.
-
-2001-11-08 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/au.c src/sndfile.au
- Added support for 32 bit float data in big and little endian AU files.
-
- * tests/write_read_test.c
- Added tests for 32 bit float data in AU files.
-
-2001-11-06 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/lossy_comp_test.c
- Finalised testing of stereo files where possible.
-
-2001-11-05 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav_ms_adpcm.c
- Fixed bug in writing stereo MS ADPCM WAV files. Thanks to Xu Xin for pointing
- out this problem.
-
-2001-10-24 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav_ms_adpcm.c
- Modified function srate2blocksize () to handle 44k1Hz stereo files.
-
-2001-10-24 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/lossy_comp_test.c
- Modified this test program so that for stereo capable files, test stereo mode
- instead of mono.
-
-2001-10-06 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/common.h
- Win32 has _snprintf and _vsnprintf but not snprintf and vsnprintf. Added a
- conditional #define to fix this.
-
-2001-10-04 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/voc.c
- Changed the TYPE_xxx enum names to VOC_TYPE_xxx to prevent name clashes
- on MacOS with CodeWarrior 6.0.
-
- * MacOS/MacOS-readme.txt
- Updated the compile instructions. Probably still need work as I don't have
- access to a Mac.
-
-2001-10-01 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c src/aiff.c common.c
- Changed all references to snprintf to LSF_SNPRINTF and all vsnprintf to
- LSF_VSNPRINTF. LSF_VSNPRINTF and LSF_VSNPRINTF are defined in common.h.
-
- * src/common.h
- Added checking of HAVE_SNPRINTF and HAVE_VSNPRINTF and defining LSF_VSNPRINTF
- and LSF_VSNPRINTF to appropriate values.
-
- * src/missing.c
- New file containing a minimal implementation of snprintf and vsnprintf functions
- named missing_snprintf and missing_vsnprintf respectively. These are only
- compliled into the binary if snprintf and/or vsnprintf are not available.
-
-2001-09-29 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/ircam.c
- New file to handle Berkeley/IRCAM/CARL files.
-
- * src/sndfile.c src/common.h
- Modified for IRCAM handling.
-
- * tests/*.c
- Added tests for IRCAM files.
-
-2001-09-27 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c
- Apparently microsoft windows (tm) doesn't like ulaw and Alaw WAV files with
- 20 byte format chunks (contrary to ms's own documentation). Fixed the WAV
- header writing code to generate smaller ms compliant ulaw and Alaw WAV files.
-
-2001-09-17 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/stdio_test.sh tests/stdio_test.c
- Shell script was rewritten as a C program due to incompatibilities of the sh
- shell on Linux and Solaris.
-
-2001-09-16 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/stdio_test.sh tests/stdout_test.c tests/stdin_test.c
- New test programs to verify the correct operation of reading from stdin and
- writing to stdout.
-
- * src/sndfile.c wav.c au.c nist.c paf.c
- Fixed a bugs uncovered by the new test programs above.
-
-2001-09-15 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c wav.c
- Fixed a bug preventing reading a file from stdin. Found by T. Narita.
-
-2001-09-12 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/common.h
- Fixed a problem on OpenBSD 2.9 which was causing sf_seek() to fail on IMA WAV
- files. Root cause was the declaration of the func_seek typedef not matching the
- functions it was actually being used to point to. In OpenBSD sizeof (off_t) !=
- sizeof (int). Thanks to Heikki Korpela for allowing me to log into his OpenBSD
- machine to debug this problem.
-
-2001-09-03 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c
- Implemented sf_command ("norm float").
-
- * src/*.c
- Implemented handling of sf_command ("norm float"). Float normalization can now
- be turned on and off.
-
- * tests/double_test.c
- Renamed to floating_point_test.c. Modified to include tests for all scaled reads
- and writes of floats and doubles.
-
- * src/au_g72x.c
- Fixed bug in normalization code found with improved floating_point_test program.
-
- * src/wav.c
- Added code for parsing 'INFO' and 'LIST' chunks. Will be used for extract text
- annotations from WAV files.
-
- * src/aiff.c
- Added code for parsing '(c) ' and 'ANNO' chunks. Will be used for extract text
- annotations from WAV files.
-
-2001-09-02 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * examples/sf_info.c example/Makefile.am
- Renamed to sndfile_info.c. The program sndfile_info will now be installed when the
- library is installed.
-
- * src/floatcast.h
- New file defining floating point to short and int casts. These casts will
- eventually replace all flot and double casts to short and int. See comments at
- the top of the file for the reasoning.
-
- * src/*.c
- Changed all default float and double casts to short or int with macros defined
- in floatcast.h. At the moment these casts do nothing. They will be replaced
- with faster float to int cast operations in the near future.
-
-2001-08-31 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/command_test.c
- New file for testing sf_command () functionality.
-
- * src/sndfile.c
- Revisiting of error return values of some functions.
- Started implementing sf_command () a new function will allow on-the-fly modification
- of library behaviour, or instance, sample value scaling.
-
- * src/common.h
- Added hook for format specific sf_command () calls to SNDFILE struct.
-
- * doc/api.html
- Updated and errors corrected.
-
- * doc/command.html
- New documentation file explaining new sf_command () function.
-
-2001-08-11 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c
- Fixed error return values from sf_read*() and sf_write*(). There were numerous
- instances of -1 being returned through size_t. These now all set error int the
- SF_PRIVATE struct and return 0. Thanks to David Viens for spotting this.
-
-2001-08-01 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/common.c
- Fixed use of va_arg() calls that were causing warning messages with the latest
- version of gcc (thanks Maurizio Umberto Puxeddu).
-
-2001-07-25 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/*.c src/sfendian.h
- Moved definition of MAKE_MARKER macro to sfendian.h
-
-2001-07-23 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c
- Modified sf_get_lib_version () so that version string will be visible using the
- Unix strings command.
-
- * examples/Makefile.am examples/sfinfo.c
- Renamed sfinfo program and source code to sf_info. This prevents a name clash
- with the program included with libaudiofile.
-
-2001-07-22 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/read_seek_test.c tests/lossy_comp_test.c
- Added tests for sf_read_float () and sf_readf_float ().
-
- * src/voc.c
- New files for handling Creative Voice files (not complete).
-
- * src/samplitude.c
- New files for handling Samplitude files (not complete).
-
-2001-07-21 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/aiff.c src/au.c src/paf.c src/svx.c src/wav.c
- Converted these files to using psf_binheader_readf() function. Will soon be ready
- to make reading writing from pipes work reliably.
-
- * src/*.[ch]
- Added code for sf_read_float () and sf_readf_float () methods of accessing
- file data.
-
-2001-07-20 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/paf.c src/wav_gsm610.c
- Removed two printf()s which had escaped notice for some time (thanks Sigbj�rn
- Skj�ret).
-
-2001-07-19 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav_gsm610.c
- Fixed a bug which prevented GSM 6.10 encoded WAV files generated by libsndfile from
- being played in Windoze (thanks klay).
-
-2001-07-18 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/common.[ch]
- Implemented psf_binheader_readf() which will do for file header reading what
- psf_binheader_writef() did for writing headers. Will eventually allow
- libsndfile to read and write from pipes, including named pipes.
-
-2001-07-16 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * MacOS/config.h Win32/config.h
- Attempted to bring these two files uptodate with src/config.h. As I don't have
- access to either of these systems support for them may be completely broken.
-
-2001-06-18 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/float32.c
- Fixed bug for big endian processors that can't read 32 bit IEEE floats. Now tested
- on Intel x86 and UltraSparc processors.
-
-2001-06-13 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/aiff.c
- Modified to allow REX files (from Propellorhead's Recycle and Reason programs) to
- be read.
- REX files are basically an AIFF file with slightly unusual sequence of chunks
- (AIFF files are supposed to allow any sequence) and some extra application
- specific information.
- Not yet able to write a REX file as the details of the application specific
- data is unknown.
-
-2001-06-12 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c
- Fixed endian bug when reading PEAK chunk on big endian machines.
-
- * src/common.c
- Fixed endian bug when reading PEAK chunk on big endian machines with
- --enable-force-broken-float configure option.
- Fix psf_binheader_writef for (FORCE_BROKEN_FLOAT ||______)
-
-2001-06-07 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * configure.in src/config.h.in
- Removed old CAN_READ_WRITE_x86_IEEE configure variable now that float capabilities
- are detected at run time.
- Added FORCE_BROKEN_FLOAT to allow testing of broken float code on machines where
- the processor can in fact handle floats correctly.
-
- * src/float32.c
- Rejigged code reading and writing of floats on broken processors.
-
- * m4/
- Removed this directory and all its files as they are no longer needed.
-
-2001-06-05 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/peak_chunk_test.c
- New test to validate reading and writing of peak chunk.
-
- * examples/sfconvert
- Added -float32 option.
-
- * src/*.c
- Changed all error return values to negative values (ie the negative of what they
- were).
-
- * src/sndfile.c tests/error_test.c
- Modified to take account of the previous change.
-
-2001-06-04 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/float32.c
- File renamed from wav_float.c and renamed function to something more general.
- Added runtime detection of floating point capabilities.
- Added recording of peaks during write for generation of PEAK chunk.
-
- * src/wav.c src/aiff.c
- Added handing for PEAK chunk for floating point files. PEAK is read when the
- file headers are read and generated when the file is closed. Logic is in place
- for adding PEAK chunk to end of file when writing to a pipe (reading and writing
- from/to pipe to be implemented soon).
-
- * src/sndfile.c
- Modified sf_signal_max () to use PEAK values if present.
-
-2001-06-03 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/*.c
- Added pcm_read_init () and pcm_write_init () to src/pcm.c and removed all other calls
- to functions in this file from the filetype specific files.
-
- * src/*.c
- Added alaw_read_init (), alaw_write_int (), ulaw_read_init () and ulaw_write_init ()
- and removed all other calls to functions in alaw.c and ulaw.c from the filetype
- specific files.
-
- * tests/write_read_test.c
- Added tests to validate sf_seek () on all file types.
-
- * src/raw.c
- Implemented raw_seek () function to fix a bug where sf_seek (file, 0, SEEK_SET) on a
- RAW file failed.
-
- * src/paf.c
- Fixed a bug in paf24_seek () found due to added seeks tests in tests/write_read_test.c
-
-2001-06-01 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/read_seek_test.c
- Fixed a couple of broken binary files.
-
- * src/aiff.c src/wav.c
- Added handling of PEAK chunks on file read.
-
-2001-05-31 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * check_libsndfile.py
- New file for the regression testing of libsndfile.
- check_libsndfile.py is a Python script which reads in a file containing
- filenames of audio files. Each file is checked by running the examples/sfinfo
- program on them and checking for error or warning messages in the libsndfile
- log buffer.
-
- * check_libsndfile.list
- This is an example list of audio files for use with check_libsndfile.py
-
- * tests/lossy_comp_test.c
- Changed the defined value of M_PI for math header files which don't have it.
- This fixed validation test failures on MetroWerks compilers. Thanks to Lord
- Praetor Satanus of Acheron for bringing this to my attention.
-
-2001-05-30 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/common.[ch]
- Removed psf_header_setf () which was no longer required after refactoring
- and simplification of header writing.
- Added 'z' format specifier to psf_binheader_writef () for zero filling header
- with N bytes. Used by paf.c and nist.c
-
- * tests/check_log_buffer.c
- New file implementing check_log_buffer () which reads the log buffer of a SNDFILE*
- object and searches for error and warning messages. Calls exit () if any are found.
-
- * tests/*.c
- Added calls to check_log_buffer () after each call to sf_open_XXX ().
-
-2001-05-29 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c src/wav_ms_adpcm.c src/wav_gsm610.c
- Major rehack of header writing using psf_binheader_writef ().
-
-2001-05-28 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c src/wav_ima_adpcm.c
- Major rehack of header writing using psf_binheader_writef ().
-
-2001-05-27 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c
- Changed return type of get_encoding_str () to prevent compiler warnings on
- Mac OSX.
-
- * src/aiff.c src/au.c
- Major rehack of header writing using psf_binheader_writef ().
-
-2001-05-25 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/common.h src/common.c
- Added comments.
- Name of log buffer changed from strbuffer to logbuffer.
- Name of log buffer index variable changed from strindex to logindex.
-
- * src/*.[ch]
- Changed name of internal logging function from psf_sprintf () to psf_log_printf ().
- Changed name of internal header generation functions from psf_[ab]h_printf () to
- psf_asciiheader_printf () and psf_binheader_writef ().
- Changed name of internal header manipulation function psf_hsetf () to
- psf_header_setf ().
-
-2001-05-24 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/nist.c
- Fixed reading and writing of sample_byte_format header. "01" means little endian
- and "10" means big endian regardless of bit width.
-
- * configure.in
- Detect Mac OSX and disable -Wall and -pedantic gcc options. Mac OSX is way screwed
- up and spews out buckets of warning messages from the system headers.
- Added --disable-gcc-opt configure option (sets gcc optimisation to -O0 ) for
- easier debugging.
- Made decision to harmonise source code version number and .so library version
- number. Future releases will stick to this rule.
-
- * doc/new_file_type.HOWTO
- New file to document the addition of new file types to libsndfile.
-
-2001-05-23 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/nist.c
- New file for reading/writing Sphere NIST audio file format.
- Originally requested by Elis Pomales in 1999.
- Retrieved from unstable (and untouched for 18 months) branch of libsndfile.
- Some vital information gleaned from the source code to Bill Schottstaedt's sndlib
- library : ftp://ccrma-ftp.stanford.edu/pub/Lisp/sndlib.tar.gz
- Currently reading and writing 16, 24 and 32 bit, big-endian and little endian,
- stereo and mono files.
-
- * src/common.h src/common.c
- Added psf_ah_printf () function to help construction of ASCII headers (ie NIST).
-
- * configure.in
- Added test for vsnprintf () required by psf_ah_printf ().
-
- * tests/write_read_test.c
- Added tests for supported NIST files.
-
-2001-05-22 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/write_read_test.c
- Added tests for little endian AIFC files.
-
- * src/aiff.c
- Minor re-working of aiff_open_write ().
- Added write support for little endian PCM encoded AIFC files.
-
-2001-05-13 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/aiff.c
- Minor re-working of aiff_open_read ().
- Added read support for little endian PCM encoded AIFC files from the Mac OSX CD ripper
- program. Guillaume Lessard provided a couple of sample files and a working patch.
- The patch was not used as is but gave a good guide as to what to do.
-
-2001-05-13 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/aiff.c
- Added support for little endian encoded AIFC files. Guillaume Lessard provided a couple
- of sample files and a working patch. The patch was not used as is but gave a good guide
- as to what to do.
-
-2001-05-11 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.h
- Fixed comments about endian-ness of WAV and AIFF files. Guillaume Lessard pointed
- out the error.
-
-2001-04-23 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * examples/make_sine.c
- Re-write of this example using sample rate and required frequency in Hz.
-
-2001-02-11 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c
- Fixed bug that prevented known file types from being read as RAW PCM data.
-
-2000-12-16 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/aiff.c
- Added handing of COMT chunk.
-
-2000-11-16 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * examples/sfconvert.c
- Fixed bug in normalisatio code. Pointed out by Johnny Wu.
-
-2000-11-08 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * Win32/config.h
- Fixed the incorrect setting of HAVE_ENDIAN_H parameter. Win32 only issue.
-
-2000-10-27 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/Makefile.am
- Added -lm for write_read_test_LDADD.
-
-2000-10-16 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c src/au.c
- Fixed bug which prevented writing of G723 24kbps AU files.
-
- * tests/lossy_comp_test.c
- Corrrection to options for G723 tests.
-
- * configure.in
- Added --disable-gcc-pipe option for DJGPP compiler (gcc on MS-DOS) which
- doesn't allow gcc -pipe option.
-
-2000-09-03 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/ulaw.c src/alaw.c src/wav_imaadpcm.c src/msadpcm.c src/wav_gsm610.c
- Fixed normailsation bugs shown up by new double_test program.
-
-2000-08-31 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/pcm.c
- Fixed bug in normalisation code (spotted by Steve Lhomme).
-
- * tests/double_test.c
- New file to test scaled and unscaled sf_read_double() and sf_write_double()
- functions.
-
-2000-08-28 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * COPYING
- Changed to the LGPL COPYING file (spotted by H. S. Teoh).
-
-2000-08-21 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.h
- Removed prototype of unimplemented function sf_get_info(). Added prototype for
- sf_error_number() Thanks to Sigbj�rn Skj�ret for spotting these.
-
-2000-08-18 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/newpcm.h
- New file to contain a complete rewrite of the PCM data handling.
-
-2000-08-15 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c
- Fixed a leak of FILE* pointers in sf_open_write(). Thanks to Sigbj�rn Skj�ret
- for spotting this one.
-
-2000-08-15 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c
- Fixed a leak of FILE* pointers in sf_open_read(). Thanks to Sigbj�rn Skj�ret
- for spotting this one.
-
-2000-08-13 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/au_g72x.c src/G72x/g72x.c
- Added G723 encoded AU file support.
-
- * tests/lossy_comp_test.c
- Added tests for G721 and G723 encoded AU files.
-
-2000-08-06 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * all files
- Changed the license to LGPL. Albert Faber who had copyright on Win32/unistd.h
- gave his permission to change the license on that file. All other files were
- either copyright erikd AT zip DOT com DOT au or copyright under a GPL/LGPL compatible
- license.
-
-2000-08-06 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/lossy_comp_test.c
- Fixed incorrect error message.
-
- * src/au_g72x.c src/G72x/*
- G721 encoded AU files now working.
-
- * Win32/README-Win32.txt
- Replaced this file with a new one which gives a full explanation
- of how to build libsndfile under Win32. Thanks to Mike Ricos.
-
-2000-08-05 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/*.[ch]
- Removed double leading underscores from the start of all variable and
- function names. Identifiers with a leading underscores are reserved
- for use by the compiler.
-
- * src/au_g72x.c src/G72x/*
- Continued work on G721 encoded AU files.
-
-2000-07-12 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/G72x/*
- New files for reading/writing G721 and G723 ADPCM audio. These files
- are from a Sun Microsystems reference implementation released under a
- free software licence.
- Extensive changes to this code to make it fit in with libsndfile.
- See the ChangeLog in this directory for details.
-
- * src/au_g72x.c
- New file for G721 encoded AU files.
-
-2000-07-08 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * libsndfile.spec.in
- Added a spec file for making RPMs. Thanks to Josh Green for supplying this.
-
-2000-06-28 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c src/sndfile.h
- Add checking for and handling of header-less u-law encoded AU/SND files.
- Any file with a ".au" or ".snd" file extension and without the normal
- AU file header is treated as an 8kHz, u-law encoded file.
-
- * src/au.h
- New function for opening a headerless u-law encoded file for read.
-
-2000-06-04 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/paf.c
- Add checking for files shorter than minimal PAF file header length.
-
-2000-06-02 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/write_read_test.c
- Added extra sf_perror() calls when sf_write_XXXX fails.
-
-2000-05-29 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/common.c
- Modified usage of va_arg() macro to work correctly on PowerPC
- Linux. Thanks to Kyle Wheeler for giving me ssh access to his
- machine while I was trying to track this down.
-
- * configure.in src/*.[ch]
- Sorted out some endian-ness issues brought up by PowerPC Linux.
-
- * tests/read_seek_test.c
- Added extra debugging for when tests fail.
-
-2000-05-18 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c
- Fixed bug in GSM 6.10 handling for big-endian machines. Thanks
- to Sigbj�rn Skj�ret for reporting this.
-
-2000-04-25 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c src/wav.c src/wav_gsm610.c
- Finallised writing of GSM 6.10 WAV files.
-
- * tests/lossy_comp_test.c
- Wrote new test code for GSM 6.10 files.
-
- * examples/sfinfo.c
- Fixed incorrect format in printf() statement.
-
-2000-04-06 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.h.in
- Fixed comments about sf_perror () and sf_error_str ().
-
-2000-03-14 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * configure.in
- Fixed --enable-justsrc option.
-
-2000-03-07 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * wav.c
- Fixed checking of bytespersec field of header. Still some weirdness
- with some files.
-
-2000-03-05 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/lossy_comp_test.c
- Added option to test PCM WAV files (sanity check).
- Fixed bug in sf_seek() tests.
-
-2000-02-29 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c src/wav.c
- Minor changes to allow writing of GSM 6.10 WAV files.
-
-2000-02-28 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * configure.in Makefile.am src/Makefile.am
- Finally got around to figuring out how to build a single library from
- multiple source directories.
- Reading GSM 6.10 files now seems to work.
-
-2000-01-03 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c
- Added more error reporting in read_fmt_chunk().
-
-1999-12-21 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * examples/sfinfo.c
- Modified program to accept multiple filenames from the command line.
-
-1999-11-27 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav_ima_adpcm.c
- Moved code around in preparation to adding ability to read/write IMA ADPCM
- encoded AIFF files.
-
-1999-11-16 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/common.c
- Fixed put_int() and put_short() macros used by _psf_hprintf() which were
- causing seg. faults on Sparc Solaris.
-
-1999-11-15 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/common.c
- Added string.h to includes. Thanks to Sigbjxrn Skjfret.
-
- * src/svx.c
- Fixed __svx_close() function to ensure FORM and BODY chunks are correctly
- set.
-
-1999-10-01 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/au.c
- Fixed handling of incorrect size field in AU header on read. Thanks to
- Christoph Lauer for finding this problem.
-
-1999-09-28 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/aiff.c
- Fixed a bug with incorrect SSND chunk length being written. This also lead
- to finding an minor error in AIFF header parsing. Thanks to Dan Timis for
- pointing this out.
-
-1999-09-24 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/paf.c
- Fixed a bug with reading and writing 24 bit stereo PAF files. This problem
- came to light when implementing tests for the new functions which operate
- in terms of frames rather than items.
-
-1999-09-23 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c
- Modified file type detection to use first 12 bytes of file rather than
- file name extension. Required this because NIST files use the same
- filename extension as Microsoft WAV files.
-
- * src/sndfile.c src/sndfile.h
- Added short, int and double read/write functions which work in frames rather
- than items. This was originally suggested by Maurizio Umberto Puxeddu
-
-1999-09-22 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/svx.c
- Finished off implementation of write using __psf_hprintf().
-
-1999-09-21 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/common.h
- Added a buffer to SF_PRIVATE for writing the header. This is required
- to make generating headers for IFF/SVX files easier as well as making
- it easier to do re-write the headers which will be required when
- sf_rewrite_header() is implemented.
-
- * src/common.c
- Implemented __psf_hprintf() function. This is an internal function
- which is documented briefly just above the code.
-
-1999-09-05 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c
- Fixed a bug in sf_write_raw() where it was returning incorrect values
- (thanks to Richard Dobson for finding this one). Must put in a test
- routine for sf_read_raw and sf_write_raw.
-
- * src/aiff.c
- Fixed default FORMsize in __aiff_open_write ().
-
- * src/sndfile.c
- Added copy of filename to internal data structure. IFF/SVX files
- contain a NAME header chunk. Both sf_open_read() and sf_open_write()
- copy the file name (less the leading path information) to the
- filename field.
-
- * src/svx.c
- Started implementing writing of files.
-
-1999-08-04 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/svx.c
- New file for reading/writing 8SVX and 16SVX files.
-
- * src/sndfile.[ch] src/common.h
- Changes for SVX files.
-
- * src/aiff.c
- Fixed header parsing when unknown chunk is found.
-
-1999-08-01 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/paf.c
- New file for reading/writing Ensoniq PARIS audio file format.
-
- * src/sndfile.[ch] src/common.h
- Changes for PAF files.
-
- * src/sndfile.[ch]
- Added stuff for sf_get_lib_version() function.
-
-
-1999-07-31 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.h MacOS/config.h
- Fixed minor MacOS configuration issues.
-
-1999-07-30 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * MacOS/
- Added a new directory for the MacOS config.h file and the
- readme file.
-
- * src/aiff.c
- Fixed calculation of datalength when reading SSND chunk. Thanks to
- Sigbj�rn Skj�ret for pointing out this error.
-
-1999-07-29 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c src/sndfile.h src/raw.c
- Further fixing of #includes for MacOS.
-
-1999-07-25 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c src/aiff.c
- Added call to ferror () in main header parsing loop of __XXX_open_read
- functions. This should fix problems on platforms (MacOS, AmigaOS) where
- fseek()ing or fread()ing beyond the end of the file puts the FILE*
- stream in an error state until clearerr() is called.
-
- * tests/write_read_test.c
- Added tests for RAW header-less PCM files.
-
- * src/common.h
- Moved definition of struct tribyte to pcm.c which is the only place
- which needs it.
-
- * src/pcm.c
- Modified all code which assumed sizeof (struct tribyte) == 3. This code
- did not work on MacOS. Thanks to Ben "Jacobs" for pointing this out.
-
- * src/au.c
- Removed <sys/stat.h> from list of #includes (not being used).
-
- * src/sndfile.c
- Added MacOS specific #ifdef to replace <sys/stat.h>.
-
- * src/sndfile.h
- Added MacOS specific #ifdef to replace <sys/stat.h>.
-
- * src/sndfile.h
- Added MacOS specific typedef for off_t.
-
- * MacOS-readme.txt
- New file with instructions for building libsndfile under MacOS. Thanks
- to Ben "Jacobs" for supplying these instructions.
-
-1999-07-24 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * configure.in
- Removed sndfile.h from generated file list as there were no longer
- any autoconf substitutions being made.
-
- * src/raw.c
- New file for handling raw header-less PCM files. In order to open these
- for read, the user must specify format, pcmbitwidth and channels in the
- SF_INFO struct when calling sf_open_read ().
-
- * src/sndfile.c
- Added support for raw header-less PCM files.
-
-1999-07-22 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * examples/sfinfo.c
- Removed options so the sfinfo program always prints out all the information.
-
-1999-07-19 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/alaw.c
- New file for A-law encoding (similar to u-law).
-
- * tests/alaw_test.c
- New test program to test the A-law encode/decode lookup tables.
-
- * tests/lossy_comp_test.c
- Added tests for a-law encoded WAV, AU and AULE files.
-
-1999-07-18 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c src/au.c
- Removed second "#include <unistd.h>". Thanks to Ben "Jacobs" for pointing
- this out.
-
-1999-07-18 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/ulaw_test.c
- New test program to test the u-law encode/decode lookup tables.
-
-1999-07-16 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.h
- Made corrections to comments on the return values from sf_seek ().
-
- * src/sndfile.c
- Fixed boundary condition checking bug and accounting bug in sf_read_raw ().
-
-1999-07-15 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/au.c src/ulaw.c
- Finished implementation of u-law encoded AU files.
-
- * src/wav.c
- Implemented reading and writing of u-law encoded WAV files.
-
- * tests/
- Changed name of adpcm_test.c to lossy_comp_test.c. This test program
- will now be used to test Ulaw and Alaw encoding as well as APDCM.
- Added tests for Ulaw encoded WAV files.
-
-1999-07-14 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/adpcm_test.c
- Initialised amp variable in gen_signal() to remove compiler warning.
-
-1999-07-12 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/aiff.c
- In __aiff_open_read () prevented fseek()ing beyond end of file which
- was causing trouble on MacOS with the MetroWerks compiler. Thanks to
- Ben "Jacobs" for pointing this out.
-
- *src/wav.c
- Fixed as above in __wav_open_read ().
-
-1999-07-01 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav_ms_adpcm.c
- Implemented MS ADPCM encoding. Code cleanup of decoder.
-
- * tests/adpcm_test.c
- Added tests for MS ADPCM WAV files.
-
- * src/wav_ima_adpcm.c
- Fixed incorrect parameter in call to srate2blocksize () from
- __ima_writer_init ().
-
-1999-06-23 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/read_seek_test.c
- Added test for 8 bit AIFF files.
-
-1999-06-18 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/write_read_test.c
- Removed test for IMA ADPCM WAV files which is now done in adpcm_test.c
-
- * configure.in
- Added -Wconversion to CFLAGS.
-
- * src/*.c tests/*.c examples/*.c
- Fixed all warnings resulting from use of -Wconversion.
-
-1999-06-17 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c
- Added fact chunk handling on read and write for all non WAVE_FORMAT_PCM
- WAV files.
-
- * src/wav_ima.c
- Changed block alignment to be dependant on sample rate. This should make
- WAV files created with libsndfile compatible with the MS Windows media
- players.
-
- * tests/adpcm_test.c
- Reimplemented adpcm_test_short and implemented adpcm_test_int and adpcm_test_double.
- Now have full testing of IMA ADPCM WAV file read, write and seek.
-
-1999-06-15 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav_float.c
- Fixed function prototype for x86f2d_array () which was causing ocassional
- seg. faults on Sparc Solaris machines.
-
-1999-06-14 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/aiff.c
- Fixed bug in __aiff_close where the length fields in the header were
- not being correctly calculated before writing.
-
- * tests/write_read_test.c
- Modified to detect the above bug in WAV, AIFF and AU files.
-
-1999-06-12 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * Win32/*
- Added a contribution from Albert Faber to allow libsndfile to compile
- under Win32 systems. libsndfile will now be used as part of LAME the
- the MPEG 1 Layer 3 encoder (http://internet.roadrunner.com/~mt/mp3/).
-
-1999-06-11 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * configure.in
- Changed to reflect previous changes.
-
- * src/wav_ima_adpcm.c
- Fixed incorrect calculation of bytespersec header field (IMA ADPCM only).
-
- Fixed bug when writing from int or double data to IMA ADPCM file. Will need
- to write test code for this.
-
- Fixed bug in __ima_write () whereby the length of the current block was
- calculated incorrectly. Thanks to Jongcheon Park for pointing this out.
-
-1999-03-27 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/*.c
- Changed all read/write/lseek function calls to fread/fwrite/
- fseek/ftell and added error checking of return values from
- fread and fwrite in critical areas of the code.
-
- * src/au.c
- Fixed incorrect datasize element in AU header on write.
-
- * tests/error_test.c
- Add new test to check all error values have an associated error
- string. This will avoid embarrassing real world core dumps.
-
-1999-03-23 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c src/aiff.c
- Added handling for unknown chunk markers in the file.
-
-1999-03-22 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c
- Filled in missing error strings in SndfileErrors array. Missing entries
- can cause core dumps when calling sf_error-str (). Thanks to Sam
- <mrsam at-sign geocities.com> for finding this problem.
-
-1999-03-21 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav_ima_adpcm.c
- Work on wav_ms_adpcm.c uncovered a bug in __ima_read () when reading
- stereo files. Caused by not adjusting offset into buffer of decoded
- samples for 2 channels. A similar bug existed in __ima_write ().
- Need a test for stereo ADPCM files.
-
- * src/wav_ms_adpcm.c
- Decoder working correctly.
-
-1999-03-18 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * configure.in Makefile.am
- Added --enable-justsrc configuration variable sent by Sam
- <mrsam at-sign geocities.com>.
-
- * src/wav_ima_adpcm.c
- Fixed bug when reading beyond end of data section due to not
- checking pima->blockcount.
- This uncovered __ima_seek () bug due to pima->blockcount being set
- before calling __ima_init_block ().
-
-1999-03-17 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c
- Started implementing MS ADPCM decoder.
- If file is WAVE_FORMAT_ADPCM and length of data chunk is odd, this
- encoder seems to add an extra byte. Why not just give an even data
- length?
-
-1999-03-16 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c
- Split code out of wav.c to create wav_float.c and wav_ima_adpcm.c.
- This will make it easier to add and debug other kinds of WAV files
- in future.
-
-1999-03-14 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/
- Added adpcm_test.c which implements test functions for
- IMA ADPCM reading/writing/seeking etc.
-
- * src/wav.c
- Fixed many bugs in IMA ADPCM encoder and decoder.
-
-1999-03-11 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c
- Finished implementing IMA ADPCM encoder and decoder (what a bitch!).
-
-1999-03-03 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/wav.c
- Started implementing IMA ADPCM decoder.
-
-1999-03-02 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/sndfile.c
- Fixed bug where the sf_read_XXX functions were returning a
- incorrect read count when reading past end of file.
- Fixed bug in sf_seek () when seeking backwards from end of file.
-
- * tests/read_seek_test.c
- Added multiple read test to short_test(), int_test () and
- double_test ().
- Added extra chunk to all test WAV files to test that reading
- stops at end of 'data' chunk.
-
-1999-02-21 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/write_read_test.c
- Added tests for little DEC endian AU files.
-
- * src/au.c
- Add handling for DEC format little endian AU files.
-
-1999-02-20 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/aiff.c src/au.c src/wav.c
- Add __psf_sprintf calls during header parsing.
-
- * src/sndfile.c src/common.c
- Implement sf_header_info (sndfile.c) function and __psf_sprintf (common.c).
-
- * tests/write_read_test.c
- Added tests for 8 bit PCM files (WAV, AIFF and AU).
-
- * src/au.c src/aiff.c
- Add handling of 8 bit PCM data format.
-
- * src/aiff.c
- On write, set blocksize in SSND chunk to zero like everybody else.
-
-1999-02-16 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/pcm.c:
- Fixed bug in let2s_array (cptr was not being initialised).
-
- * src/sndfile.c:
- Fixed bug in sf_read_raw and sf_write_raw. sf_seek should
- now work when using these functions.
-
-1999-02-15 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * tests/write_read_test.c:
- Force test_buffer array to be double aligned. Sparc Solaris
- requires this.
-
-1999-02-14 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/pcm.c:
- Fixed a bug which was causing errors in the reading
- and writing of 24 bit PCM files.
-
- * doc/api.html
- Finished of preliminary documentaion.
-
-1999-02-13 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * src/aiff.c:
- Changed reading of 'COMM' chunk to avoid reading an int
- which overlaps an int (4 byte) boundary.
-
--- a/common/libsndfile/INSTALL
+++ /dev/null
@@ -1,182 +1,0 @@
-Basic Installation
-==================
-
- These are generic installation instructions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If at some point `config.cache'
-contains results you don't want to keep, you may remove or edit it.
-
- The file `configure.in' is used to create `configure' by a program
-called `autoconf'. You only need `configure.in' if you want to change
-it or regenerate `configure' using a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
-
- Running `configure' takes awhile. While running, it prints some
- messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package.
-
- 4. Type `make install' to install the programs and any data files and
- documentation.
-
- 5. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. You can give `configure'
-initial values for variables by setting them in the environment. Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
- CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
- env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
- If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory. After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
-
-Installation Names
-==================
-
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on. Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
- CPU-COMPANY-SYSTEM
-
-See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
-
- If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Operation Controls
-==================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
- Use and save the results of the tests in FILE instead of
- `./config.cache'. Set FILE to `/dev/null' to disable caching, for
- debugging `configure'.
-
-`--help'
- Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--version'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
--- a/common/libsndfile/MacOS/MacOS-readme.txt
+++ /dev/null
@@ -1,82 +1,0 @@
-BUILDING LIBSNDFILE FOR MACINTOSH (Pre Mac OSX)
------------------------------------------------
-
-These instructions are current as of libsndfile 0.0.16, and assume the
-following development environment:
-
-- MacOS 8.6
-- Metrowerks CodeWarrior Pro4 (IDE3.3, and all publicly available
- compiler updates as of June, 1999)
-- Apple Universal Libraries 3.2
-
-The following procedure is recommended for building a libsndfile library
-suitable for inclusion in other MacOS projects:
-
-1. using CodeWarrior, create a new "Empty Project"
-
-2. obtain the libsndfile source distribution (see homepage URL below);
- add all ".c" files found in the top level of the "src", "src/GSM610" and
- "src/G72x" folders to the project
-
-3. starting from the factory defaults, adjust the following project
- settings:
- - Target Settings panel:
- linker = "MacOS PPC Linker"
- - PPC Target panel:
- project type = "Library"
- file name = "libsndfile"
-
-4. grab the "config.h" file from the MacOS directory and replace the default
- config.h file in the "src" directory
-
-5. Make the project
-
-
-CROSSPLATFORM (x86) BUILDS?
---------------------------
-
-For situations in which CodeWarrior is being used to develop a project
-for dual-platform operation, it is possible to build an x86 version of
-libsndfile on the mac as well. Use the procedure above to set up the
-PPC target, then perform the following steps:
-
-6. create a new target, by cloning the existing ppc target (created
- above)
-
-7. adjust the following project settings:
- - Target Settings panel:
- linker = "Win32 x86 Linker"
- - x86 Settings panel:
- project type = "Library (LIB)"
- file name = "libsndfile.x32.lib"
- - Access Paths panel:
- add this compiler-relative path at the TOP of "System Paths"
- (note: this must be at the TOP of the path list):
- "{Compiler}:Win32-x86 Support:Headers:Win32 SDK:sys:"
-
-8. Make the x86 target
-
-
-SEE ALSO
---------
-
-The file "README" in the libsndfile distribution, for general
-information about libsndfile.
-
-
-CONTACTS
---------
-
-libsndfile was written by Erik de Castro Lopo (erikd@zip.com.au).
-The libsndfile home page is at :
-
- http://www.zip.com.au/~erikd/libsndfile/
-
-MacOS-specific questions, and issues specific to the instructions
-contained in this document should be directed to Ben "Jacobs" at the
-address below.
-
-
-Good luck,
-
--Ben "Jacobs" <random@well.com>
--- a/common/libsndfile/MacOS/Makefile.am
+++ /dev/null
@@ -1,1 +1,0 @@
-EXTRA_DIST = config.h MacOS-readme.txt
--- a/common/libsndfile/MacOS/Makefile.in
+++ /dev/null
@@ -1,182 +1,0 @@
-# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-SHARED_VERSION_INFO = @SHARED_VERSION_INFO@
-VERSION = @VERSION@
-subdirs = @subdirs@
-
-EXTRA_DIST = config.h MacOS-readme.txt
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../src/config.h
-CONFIG_CLEAN_FILES =
-DIST_COMMON = Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-all: all-redirect
-.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps MacOS/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-tags: TAGS
-TAGS:
-
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = MacOS
-
-distdir: $(DISTFILES)
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$d/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am:
-uninstall: uninstall-am
-all-am: Makefile
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-generic clean-am
- -rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am: maintainer-clean-generic distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: tags distdir info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
--- a/common/libsndfile/MacOS/config.h
+++ /dev/null
@@ -1,93 +1,0 @@
-/* src/config.h. Generated automatically by configure. */
-/* src/config.h.in. Generated automatically from configure.in by autoheader. */
-
-/* Define to `long' if <sys/types.h> doesn't define. */
-/* #undef off_t */
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-/* #undef size_t */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to `long' if <sys/types.h> doesn't define. */
-/* #undef off_t */
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-/* #undef size_t */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Set to 1 if the processor is big endian, otherwise set to 0. */
-#ifdef __MWERKS__
-#ifdef _WIN32
-#define GUESS_BIG_ENDIAN 0
-#define GUESS_LITTLE_ENDIAN 1
-#else
-#define GUESS_BIG_ENDIAN 1
-#define GUESS_LITTLE_ENDIAN 0
-#endif
-#endif
-
-/* Set to 1 to force the use of code for processors with broken floats */
-/* Otherwise set it to 0. */
-#define FORCE_BROKEN_FLOAT 0
-
-/* The number of bytes in a double. */
-#define SIZEOF_DOUBLE 8
-
-/* The number of bytes in a float. */
-#define SIZEOF_FLOAT 4
-
-/* The number of bytes in a int. */
-#define SIZEOF_INT 4
-
-/* The number of bytes in a long. */
-#define SIZEOF_LONG 4
-
-/* The number of bytes in a short. */
-#define SIZEOF_SHORT 2
-
-/* The number of bytes in a void*. */
-#define SIZEOF_VOIDP 4
-
-/* Define if you have the fclose function. */
-#define HAVE_FCLOSE 1
-
-/* Define if you have the fopen function. */
-#define HAVE_FOPEN 1
-
-/* Define if you have the fread function. */
-#define HAVE_FREAD 1
-
-/* Define if you have the free function. */
-#define HAVE_FREE 1
-
-/* Define if you have the fseek function. */
-#define HAVE_FSEEK 1
-
-/* Define if you have the ftell function. */
-#define HAVE_FTELL 1
-
-/* Define if you have the fwrite function. */
-#define HAVE_FWRITE 1
-
-/* Define if you have the malloc function. */
-#define HAVE_MALLOC 1
-
-/* Define if you have the snprintf function. */
-#define HAVE_SNPRINTF 1
-
-/* Define if you have the vsnprintf function. */
-#define HAVE_VSNPRINTF 1
-
-/* Define if you have the <endian.h> header file. */
-#define HAVE_ENDIAN_H 1
-
-/* Name of package */
-#define PACKAGE "libsndfile"
-
-/* Version number of package */
-#define VERSION "0.0.26"
-
--- a/common/libsndfile/Makefile.am
+++ /dev/null
@@ -1,5 +1,0 @@
-DIST_SUBDIRS = src examples doc tests Win32 MacOS
-SUBDIRS = @subdirs@
-EXTRA_DIST = reconf acconfig.h libsndfile.spec.in libsndfile.spec \
- check_libsndfile.py
-
--- a/common/libsndfile/Makefile.in
+++ /dev/null
@@ -1,365 +1,0 @@
-# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-SHARED_VERSION_INFO = @SHARED_VERSION_INFO@
-VERSION = @VERSION@
-subdirs = @subdirs@
-
-DIST_SUBDIRS = src examples doc tests Win32 MacOS
-SUBDIRS = @subdirs@
-EXTRA_DIST = reconf acconfig.h libsndfile.spec.in libsndfile.spec check_libsndfile.py
-
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ./src/config.h
-CONFIG_CLEAN_FILES = libsndfile.spec
-DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
-Makefile.in NEWS TODO acconfig.h aclocal.m4 config.guess config.sub \
-configure configure.in install-sh libsndfile.spec.in ltconfig ltmain.sh \
-missing mkinstalldirs src/config.h.in src/stamp-h.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-all: all-redirect
-.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(ACLOCAL_M4): configure.in
- cd $(srcdir) && $(ACLOCAL)
-
-config.status: $(srcdir)/configure.in $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
- cd $(srcdir) && $(AUTOCONF)
-
-src/config.h: src/stamp-h
- @if test ! -f $@; then \
- rm -f src/stamp-h; \
- $(MAKE) src/stamp-h; \
- else :; fi
-src/stamp-h: $(srcdir)/src/config.h.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES= CONFIG_HEADERS=src/config.h \
- $(SHELL) ./config.status
- @echo timestamp > src/stamp-h 2> /dev/null
-$(srcdir)/src/config.h.in: $(srcdir)/src/stamp-h.in
- @if test ! -f $@; then \
- rm -f $(srcdir)/src/stamp-h.in; \
- $(MAKE) $(srcdir)/src/stamp-h.in; \
- else :; fi
-$(srcdir)/src/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
- cd $(top_srcdir) && $(AUTOHEADER)
- @echo timestamp > $(srcdir)/src/stamp-h.in 2> /dev/null
-
-mostlyclean-hdr:
-
-clean-hdr:
-
-distclean-hdr:
- -rm -f src/config.h
-
-maintainer-clean-hdr:
-libsndfile.spec: $(top_builddir)/config.status libsndfile.spec.in
- cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-
-@SET_MAKE@
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive \
-check-recursive installcheck-recursive info-recursive dvi-recursive:
- @set fnord $(MAKEFLAGS); amf=$$2; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
- @set fnord $(MAKEFLAGS); amf=$$2; \
- dot_seen=no; \
- rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
- rev="$$subdir $$rev"; \
- test "$$subdir" = "." && dot_seen=yes; \
- done; \
- test "$$dot_seen" = "no" && rev=". $$rev"; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
- fi; \
- done; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- -rm -rf $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
- mkdir $(distdir)/=build
- mkdir $(distdir)/=inst
- dc_install_base=`cd $(distdir)/=inst && pwd`; \
- cd $(distdir)/=build \
- && ../configure --srcdir=.. --prefix=$$dc_install_base \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) dist
- -rm -rf $(distdir)
- @banner="$(distdir).tar.gz is ready for distribution"; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"
-dist: distdir
- -chmod -R a+r $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
- -rm -rf $(distdir)
-dist-all: distdir
- -chmod -R a+r $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
- -rm -rf $(distdir)
-distdir: $(DISTFILES)
- -rm -rf $(distdir)
- mkdir $(distdir)
- -chmod 777 $(distdir)
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$d/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
- for subdir in $(DIST_SUBDIRS); do \
- if test "$$subdir" = .; then :; else \
- test -d $(distdir)/$$subdir \
- || mkdir $(distdir)/$$subdir \
- || exit 1; \
- chmod 777 $(distdir)/$$subdir; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
- || exit 1; \
- fi; \
- done
-info-am:
-info: info-recursive
-dvi-am:
-dvi: dvi-recursive
-check-am: all-am
-check: check-recursive
-installcheck-am:
-installcheck: installcheck-recursive
-install-exec-am:
-install-exec: install-exec-recursive
-
-install-data-am:
-install-data: install-data-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-recursive
-uninstall-am:
-uninstall: uninstall-recursive
-all-am: Makefile
-all-redirect: all-recursive
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs: installdirs-recursive
-installdirs-am:
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-recursive
-
-clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
-
-clean: clean-recursive
-
-distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
- -rm -f libtool
-
-distclean: distclean-recursive
- -rm -f config.status
-
-maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
- maintainer-clean-generic distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f config.status
-
-.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
-install-data-recursive uninstall-data-recursive install-exec-recursive \
-uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
-all-recursive check-recursive installcheck-recursive info-recursive \
-dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
-maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
-install-exec install-data-am install-data install-am install \
-uninstall-am uninstall all-redirect all-am all installdirs-am \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
--- a/common/libsndfile/NEWS
+++ /dev/null
@@ -1,95 +1,0 @@
-Version 0.0.26 (2001-09-30)
- * Offical release.
- * Changed how A-law and u-law WAV file headers are written to allow files generated
- by libsndfile to be read by M$ windoze.
- * Added IRCAM file support.
- * Minor bug fixes.
- * This will be the last release in the 0.0.X development stream apart from bug fixes.
- A new deveopement stream with minor interface changes in already in development.
-
-Version 0.0.25 (2001-09-24)
- * Offical release.
- * Added sf_command () interface which allows switching normalisation on and off for
- sf_read/write_float () methods.
- * Minor bug fixes.
- * This will be the last release in the 0.0.X development stream apart from bug fixes.
- A new deveopement stream with minor interface changes in already in development.
-
-Version 0.0.24 (2001-08-19)
- * Offical release.
- * Massive refactoring of header reading code for all file formats.
- * Added sf_read_float () and sf_write_float () interfaces.
- * Minor bug fixes.
-
-Version 0.0.23 (2001-07-06)
- * Offical release.
- * Massive refactoring of header writing code for all file formats.
- * Added support for Sphere NIST.
- * Added support for 32 bit float AIFF and little endian AIFF files (Mac OSX).
- * Added read and write support for the PEAK chunk in 32 bit float AIFF and WAV files.
- * Added support for REX files (Propellorheads Reason).
- * Minor bug fixes.
-
-Version 0.0.22 (2000-10-17)
- * Offical release.
- * Bug fix in G723 AU file handling.
-
-Version 0.0.21 (2000-08-16)
- * Offical release.
- * AU files without the normal AU file header are now recognised as headerless
- 8kHz 8 bit ulaw encoded files.
- * Added handling for G721 4bit APDCM encoded AU files.
- * Added handling for G723 3bit APDCM encoded AU files.
- * Improved Win32 compiling and use instructions from Mike Ricos.
- * License change from GPL to LGPL.
-
-Version 0.0.20 (2000-05-30)
- * Offical release.
- * Minor bug fix for LinuxPPC (endian issues).
-
-Version 0.0.19 (2000-05-20)
- * Offical release.
- * Minor bug fix for handling GSM 6.10 encoded WAV files on big endian machines.
-
-Version 0.0.18 (2000-04-25)
- * Offical release.
- * Added handling for GSM 6.10 encoded WAV files.
- * Minor bug fixes.
-
-Version 0.0.17 (1999-11-16)
- * Offical release.
- * New file formats (SVX and PAF).
- * Minor bug fixes.
-
-Version 0.0.16 (1999-07-31)
- * Offical release.
- * Fixed minor MacOS configuration issues.
-
-Version 0.0.15 (1999-07-30)
- * Offical release.
- * Added MS ADPCM WAV file write.
- * Added WAV and AU file A-law and u-law encoding.
- * Added RAW header-less PCM file handling.
- * Added MacOS support (thanks to Ben "Jacobs").
-
-Version 0.0.12 (1999-06-19)
- * Offical release.
- * Code cleanup to remove compiler warning messages.
-
-Version 0.0.10 (1999-06-12)
- * Unoffical release.
- * Changes to low level code which improve error detection and handling.
- * Added read-only handling of Microsoft ADPCM WAV files.
- * Added Win32 support (almost exclusively due to Albert Faber, thanks).
- * Fixed bug in IMA ADPCM file writing.
-
-Version 0.0.9 (1999-03-14)
- * Add handling of IMA ADPCM WAV files.
- * Add new function sf_get_header_info and add example program sfinfo.
- * Implemented 8 bit PCM data formats for AIFF, AU and WAV.
-
-Version 0.0.8 (1999-02-16)
- * First offical release.
-
-Version 0.0.7 (1999-02-13)
- * First unoffical release.
--- a/common/libsndfile/README
+++ /dev/null
@@ -1,62 +1,0 @@
-This is libsndfile, 0.0.26
-
-libsndfile is a library of C routines for reading and writing
-files containing sampled audio data.
-
-The src/ directory contains the source code for library itself.
-
-The doc/ directory contains the libsndfile documentation.
-
-The examples/ directory contains examples of how to write code using
-libsndfile. 'wav32_aiff24' converts a WAV file containing 32 bit floating
-point data into a 24 bit PCM AIFF file. 'sndfile2oct' dumps the audio
-data of a file in a human readable format. 'sfconvert' is the beginnings
-of a audio file format conversion utility. 'make_sine' generates a WAV
-file containing one cycle of a sine wave with 4096 sample points in
-32 bit floating point format. 'sfinfo' opens a sound file and prints
-out information about that file.
-
-The tests/ directory contains programs which link against libsndfile
-and test its functionality.
-
-The Win32/ directory contains files and documentation to allow libsndfile
-to compile under Win32 with the Microsoft Visual C++ compiler.
-
-The MacOS/ directory contains files and documentation to allow libsndfile
-to compile under MacOS with the Metrowerks compiler.
-
-The src/GSM610 directory contains code written by Jutta Degener and Carsten
-Bormann. Their original code can be found at :
- http://kbs.cs.tu-berlin.de/~jutta/toast.html
-
-The src/G72x directory contains code written and released by Sum Microsystems
-under a suitably free license.
-
-OTHER PLATFORMS
----------------
-
-To compile libsndfile on platforms which have a Bourne Shell compatible
-shell, an ANSI C compiler and a make utility should require no more that
-the following three commands :
- ./configure
- make
- make install
-
-For platforms without the required shell, it is usually sufficient to
-create an approriate config.h file in the src/ directory with correct
-values for the following #defines (this would work for AmigaOS) :
-
-#define HAVE_ENDIAN_H 0
-#define GUESS_BIG_ENDIAN 1
-#define GUESS_LITTLE_ENDIAN 0
-#define FORCE_BROKEN_FLOAT 0
-
-
-CONTACTS
---------
-
-libsndfile was written by Erik de Castro Lopo (erikd AT zip DOT com DOT au).
-The libsndfile home page is at :
-
- http://www.zip.com.au/~erikd/libsndfile/
-
--- a/common/libsndfile/TODO
+++ /dev/null
@@ -1,46 +1,0 @@
-Here's a list of what I (erikd AT zip DOT com DOT au) think needs to be
-done. The list is by no means exhaustive and people are encouraged to
-email me with suggestions.
-
- o Add pipe in/out capabilities. libsndfile should be able to read
- its input from a pipe and write its output to a pipe.
-
- o Add checks of the error state after fseek???? Use ferror ().
-
- o Modify tests/lossy_comp_test.c to add tests for stereo files.
-
- o Testing compilation and correctness on more platforms.
-
- o Improve testing routines. Must test all combinations of inputs
- and outputs.
-
- o Test sf_seek function on write???
-
- o Get hold of a couple of Sun/Next AU files containing 32 and 64 bit
- floating point data write code to read and write them (well at least
- the 32 bit ones).
-
- o Add more sound file formats. People should contact me with their
- requirements.
-
- o Add support for accessing sound formats with multiple audio
- data sections (ie samples within tracker files, Soundfont II and
- multi-sample sampler formats).
-
- o Add an interface to allow reading and writing of sample loop points
- and other info within AIFF and other file formats. This must be a
- general solution.
-
- o Improve documentation. Is HTML documentation good enough?
-
- o Look into the possibility of optional sample rate convert on file
- read.
-
-As I am the person who knows libsndfile best, I can probably implement
-any new features faster than anybody else (and you can spend your time
-writing applications with libsndfile). All I need is some
-documentation and some sample files. Please contact me before emailing
-me documentation and sample files. I would much rather pull them off
-the web than have them clogging up my email inbox.
-
-
--- a/common/libsndfile/Win32/Makefile.am
+++ /dev/null
@@ -1,3 +1,0 @@
-EXTRA_DIST = README-Win32.txt README-Win32.txt.old \
- config.h unistd.h
-
--- a/common/libsndfile/Win32/Makefile.in
+++ /dev/null
@@ -1,183 +1,0 @@
-# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-SHARED_VERSION_INFO = @SHARED_VERSION_INFO@
-VERSION = @VERSION@
-subdirs = @subdirs@
-
-EXTRA_DIST = README-Win32.txt README-Win32.txt.old config.h unistd.h
-
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../src/config.h
-CONFIG_CLEAN_FILES =
-DIST_COMMON = Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-all: all-redirect
-.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Win32/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-tags: TAGS
-TAGS:
-
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = Win32
-
-distdir: $(DISTFILES)
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$d/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am:
-uninstall: uninstall-am
-all-am: Makefile
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-generic clean-am
- -rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am: maintainer-clean-generic distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: tags distdir info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
--- a/common/libsndfile/Win32/README-Win32.txt
+++ /dev/null
@@ -1,89 +1,0 @@
-This is the readme-Win32.txt file associated with the LibSndFile
-library. It describes how the included workspace and project
-was created for Microsoft Visual C++ developer's studio (MSVC),
-version 5.0. Skip to point 7 if you wish to create a new
-project for building an executable.
-
-1. Extracted libsndfile.zip to d:\files\msvc\
-
-2. It created (replace X.Y.Z with the libsndfile version number)
- d:\files\msvc\libsndfile-X.Y.Z\Win32 *
- d:\files\msvc\libsndfile-X.Y.Z\src *
- d:\files\msvc\libsndfile-X.Y.Z\tests *
- d:\files\msvc\libsndfile-X.Y.Z\examples
- d:\files\msvc\libsndfile-X.Y.Z\doc
- d:\files\msvc\libsndfile-X.Y.Z\m4
- d:\files\msvc\libsndfile-X.Y.Z\MacOS
-
- * are needed for this example
-
-3. From MSVC:New->Workspace, I created LibSndFileWorkspace at:
- d:\files\msvc\libsndfile-X.Y.Z\Win32\
- (workspace files have the extension .dsw)
-
-3. In MSVC, rt-click on "Workspace LibSndFileWorkspace" and add project:
- Project type: Win32 Static Library
- Project Name: LibSndFile
- Project Location: D:\files\msvc\libsndfile-X.Y.Z\Win32
- Select button: 'Add to current workspace'
- Platforms: Win32
-
-4. Rt-click newly formed "LibSndFile files" and add files:
- d:\files\msvc\libsndfile-X.Y.Z\src\*.*
- d:\files\msvc\libsndfile-X.Y.Z\src\Gsm610\*.*
- d:\files\msvc\libsndfile-X.Y.Z\src\G72x\*.*
-
-5. Rt-click 'LibSndFile files' and go to Settings
- a. Select all configurations on the left hand side
- b. Then select C/C++/Preprocessor and add
- "..\" (no quotes) to 'Additional include directories'
- (This allows ..Win32\config.h and unistd.h to be found.)
-
-6. At this point you should be able to build the library. The output
- will be found in ..\Win32\LibSndFile\Debug\LibSndFile.lib. You can
- change the LibSndFile project to Release and a similar release
- path will be created.
-
-The following describes how to add an application project to the
-workspace. You may add as many as you wish. In general, you will
-need one project for each executable you want to create.
-
-7. Rt-click LibSndFileWorkspace and select 'Add project'
- Project type: Win32 Console Application
- Project Name: sfversion
- Location: d:\files\msvc\libsndfile-X.Y.Z\Win32\sfversion
- Select button: 'Add to current workspace'
- Platforms: Win32
-
- Notes:
- - MSVC will create a directory ..\Win32\sfversion\
- - MSVC will create the file sfversion.dsp in this directory
-
-8. Rt-click 'sfversion files' and add file:
- d:\files\msvc\libsndfile-X.Y.Z\tests\sfversion.c
-
-9. Rt-click 'sfversion files' and go to Settings:
- a. Select 'All configurations' on the left hand side
- b. Then select C/C++/Preprocessor and add
- "..\..\src,..\" (no quotes) to 'Additional include directories'
-
-9. Rt-click 'sfversion files' and go to Settings:
- a. Select 'Debug Configuration' on left hand side
- b. Then select Link tab and add
- "..\LibSndFile\Debug\LibSndFile.lib " (no quotes) to
- the list of 'Object/library modules'. Leave a space between new
- addition existing lib files.
-
-10. Repeat above for Release build adding Release path info.
-
-11. Build your application, it should link and create an .exe
-
-Final notes:
-
-Files created during build by msvc but are not needed for archive:
-*ncb *.plg *.opt *.obj *.idb *.pch *.lib *.exe
-
-Files associated with LibSndFile but not used by msvc:
-Makefile.in
-Makefile.am
- - End -
--- a/common/libsndfile/Win32/README-Win32.txt.old
+++ /dev/null
@@ -1,32 +1,0 @@
-The MSCV++ workspace and project files have been broken for some time and I
-have not found anyone willing to fix them or provide new ones. I hope the
-following instructions will be sufficient for Win32 to users to build, test
-and use this library.
-
-It is assumed that when you unzip the source code package you will keep the
-directory structure of the archive.
-
-The source code for the library it self is in following directories under
-the main libsndfile directory:
-
- src/
- src/GSM610/
-
-To build the library you need to create a project containing all the *.c files
-in these two directories. In addition, you should copy the two header files
-in the Win32/ directory (config.h and unistd.h) to the src/ directory. In the
-case of config.h you will be overwriting the existing config.h file.
-
-The test programs are all in the directory tests/ which contains one .c file
-for each test program. To create all the test programs you will need to
-compile each of these test programs and link it to the library.
-
-Finally, there is also a directory examples/, which contains a number of small
-example programs. These can be compiled and linked much like the files in the
-tests/ directory.
-
-Anybody who can add to or clarify these instructions should should send me
-email at <erikd@zip.com.au>.
-
-Erik de Castro Lopo
-May 30th, 2000
--- a/common/libsndfile/Win32/config.h
+++ /dev/null
@@ -1,88 +1,0 @@
-/* src/config.h. Generated automatically by configure. */
-/* src/config.h.in. Generated automatically from configure.in by autoheader. */
-
-/* Define to `long' if <sys/types.h> doesn't define. */
-/* #undef off_t */
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-/* #undef size_t */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to `long' if <sys/types.h> doesn't define. */
-/* #undef off_t */
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-/* #undef size_t */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Set to 1 if the processor is big endian, otherwise set to 0. */
-#define GUESS_BIG_ENDIAN 0
-
-/* Set to 1 if the processor is little endian, otherwise set to 0. */
-#define GUESS_LITTLE_ENDIAN 1
-
-/* Set to 1 to force the use of code for processors with broken floats */
-/* Otherwise set it to 0. */
-#define FORCE_BROKEN_FLOAT 0
-
-/* The number of bytes in a double. */
-#define SIZEOF_DOUBLE 8
-
-/* The number of bytes in a float. */
-#define SIZEOF_FLOAT 4
-
-/* The number of bytes in a int. */
-#define SIZEOF_INT 4
-
-/* The number of bytes in a long. */
-#define SIZEOF_LONG 4
-
-/* The number of bytes in a short. */
-#define SIZEOF_SHORT 2
-
-/* The number of bytes in a void*. */
-#define SIZEOF_VOIDP 4
-
-/* Define if you have the fclose function. */
-#define HAVE_FCLOSE 1
-
-/* Define if you have the fopen function. */
-#define HAVE_FOPEN 1
-
-/* Define if you have the fread function. */
-#define HAVE_FREAD 1
-
-/* Define if you have the free function. */
-#define HAVE_FREE 1
-
-/* Define if you have the fseek function. */
-#define HAVE_FSEEK 1
-
-/* Define if you have the ftell function. */
-#define HAVE_FTELL 1
-
-/* Define if you have the fwrite function. */
-#define HAVE_FWRITE 1
-
-/* Define if you have the malloc function. */
-#define HAVE_MALLOC 1
-
-/* Define if you have the snprintf function. */
-#define HAVE_SNPRINTF 0
-
-/* Define if you have the vsnprintf function. */
-#define HAVE_VSNPRINTF 0
-
-/* Define if you have the <endian.h> header file. */
-#define HAVE_ENDIAN_H 0
-
-/* Name of package */
-#define PACKAGE "libsndfile"
-
-/* Version number of package */
-#define VERSION "0.0.26"
-
--- a/common/libsndfile/Win32/libsndfile.dsp
+++ /dev/null
@@ -1,208 +1,0 @@
-# Microsoft Developer Studio Project File - Name="libsndfile" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=libsndfile - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "libsndfile.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "libsndfile.mak" CFG="libsndfile - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "libsndfile - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "libsndfile - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=xicl6.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "libsndfile - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD BASE RSC /l 0x413 /d "NDEBUG"
-# ADD RSC /l 0x413 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=xilink6.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ELSEIF "$(CFG)" == "libsndfile - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\win32" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x413 /d "_DEBUG"
-# ADD RSC /l 0x413 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=xilink6.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ENDIF
-
-# Begin Target
-
-# Name "libsndfile - Win32 Release"
-# Name "libsndfile - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\src\aiff.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\au.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\common.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\float32.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\ircam.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\nist.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\paf.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\pcm.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\raw.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\samplitude.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\sndfile.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\svx.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\voc.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\wav.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=..\src\au.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\common.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\GSM610\config.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\config.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\floatcast.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\G72x\g72x.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\GSM610\gsm.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\G72x\private.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\GSM610\private.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\GSM610\proto.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\sfendian.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\sndfile.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\unistd.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\GSM610\unproto.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\wav.h
-# End Source File
-# End Group
-# End Target
-# End Project
--- a/common/libsndfile/Win32/libsndfile.dsw
+++ /dev/null
@@ -1,29 +1,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "libsndfile"=.\libsndfile.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
--- a/common/libsndfile/Win32/libsndfile.sln
+++ /dev/null
@@ -1,21 +1,0 @@
-Microsoft Visual Studio Solution File, Format Version 7.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsndfile", "libsndfile.vcproj", "{BC57B03E-5BA1-4493-9488-07D9311D316F}"
-EndProject
-Global
- GlobalSection(SolutionConfiguration) = preSolution
- ConfigName.0 = Debug
- ConfigName.1 = Release
- EndGlobalSection
- GlobalSection(ProjectDependencies) = postSolution
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {BC57B03E-5BA1-4493-9488-07D9311D316F}.Debug.ActiveCfg = Debug|Win32
- {BC57B03E-5BA1-4493-9488-07D9311D316F}.Debug.Build.0 = Debug|Win32
- {BC57B03E-5BA1-4493-9488-07D9311D316F}.Release.ActiveCfg = Release|Win32
- {BC57B03E-5BA1-4493-9488-07D9311D316F}.Release.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
--- a/common/libsndfile/Win32/libsndfile.vcproj
+++ /dev/null
@@ -1,201 +1,0 @@
-<?xml version="1.0" encoding = "Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.00"
- Name="libsndfile"
- SccProjectName=""
- SccLocalPath="">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Release|Win32"
- OutputDirectory=".\Release"
- IntermediateDirectory=".\Release"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE">
- <Tool
- Name="VCCLCompilerTool"
- InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\win32"
- PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS"
- StringPooling="TRUE"
- RuntimeLibrary="4"
- EnableFunctionLevelLinking="TRUE"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\Release/libsndfile.pch"
- AssemblerListingLocation=".\Release/"
- ObjectFile=".\Release/"
- ProgramDataBaseFileName=".\Release/"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile=".\Release\libsndfile.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1043"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory=".\Debug"
- IntermediateDirectory=".\Debug"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\win32"
- PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS"
- BasicRuntimeChecks="3"
- RuntimeLibrary="5"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\Debug/libsndfile.pch"
- AssemblerListingLocation=".\Debug/"
- ObjectFile=".\Debug/"
- ProgramDataBaseFileName=".\Debug/"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"
- DebugInformationFormat="4"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile=".\Debug\libsndfile.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1043"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- </Configuration>
- </Configurations>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
- <File
- RelativePath="..\src\aiff.c">
- </File>
- <File
- RelativePath="..\src\au.c">
- </File>
- <File
- RelativePath="..\src\common.c">
- </File>
- <File
- RelativePath="..\src\float32.c">
- </File>
- <File
- RelativePath="..\src\ircam.c">
- </File>
- <File
- RelativePath="..\src\nist.c">
- </File>
- <File
- RelativePath="..\src\paf.c">
- </File>
- <File
- RelativePath="..\src\pcm.c">
- </File>
- <File
- RelativePath="..\src\raw.c">
- </File>
- <File
- RelativePath="..\src\samplitude.c">
- </File>
- <File
- RelativePath="..\src\sndfile.c">
- </File>
- <File
- RelativePath="..\src\svx.c">
- </File>
- <File
- RelativePath="..\src\voc.c">
- </File>
- <File
- RelativePath="..\src\wav.c">
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl">
- <File
- RelativePath="..\src\au.h">
- </File>
- <File
- RelativePath="..\src\common.h">
- </File>
- <File
- RelativePath=".\config.h">
- </File>
- <File
- RelativePath="..\src\GSM610\config.h">
- </File>
- <File
- RelativePath="..\src\floatcast.h">
- </File>
- <File
- RelativePath="..\src\G72x\g72x.h">
- </File>
- <File
- RelativePath="..\src\GSM610\gsm.h">
- </File>
- <File
- RelativePath="..\src\G72x\private.h">
- </File>
- <File
- RelativePath="..\src\GSM610\private.h">
- </File>
- <File
- RelativePath="..\src\GSM610\proto.h">
- </File>
- <File
- RelativePath="..\src\sfendian.h">
- </File>
- <File
- RelativePath="..\src\sndfile.h">
- </File>
- <File
- RelativePath=".\unistd.h">
- </File>
- <File
- RelativePath="..\src\GSM610\unproto.h">
- </File>
- <File
- RelativePath="..\src\wav.h">
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
--- a/common/libsndfile/Win32/unistd.h
+++ /dev/null
@@ -1,44 +1,0 @@
-/*
-** Copyright (C) 1999 Albert Faber
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 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 General Public License for more details.
-**
-** You should have received a copy of the GNU 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.
-*/
-
-/* A hack file in order to compile the libsndfile package for win32 systems
-** Define the things that Bill and his fellows forgot to define
-*/
-
-#ifdef _WIN32
-#include <direct.h>
-
-#define _IFMT _S_IFMT
-#define _IFREG _S_IFREG
-
-#define S_ISREG(m) ((m) & _S_IFREG)
-
-#define S_IRWXU 0000700 /* rwx, owner */
-#define S_IRUSR 0000400 /* read permission, owner */
-#define S_IWUSR 0000200 /* write permission, owner */
-#define S_IXUSR 0000100 /* execute/search permission, owner */
-#define S_IRWXG 0000070 /* rwx, group */
-#define S_IRGRP 0000040 /* read permission, group */
-#define S_IWGRP 0000020 /* write permission, grougroup */
-#define S_IXGRP 0000010 /* execute/search permission, group */
-#define S_IRWXO 0000007 /* rwx, other */
-#define S_IROTH 0000004 /* read permission, other */
-#define S_IWOTH 0000002 /* write permission, other */
-#define S_IXOTH 0000001 /* execute/search permission, other */
-
-#endif
\ No newline at end of file
--- a/common/libsndfile/acconfig.h
+++ /dev/null
@@ -1,288 +1,0 @@
-/* acconfig.h
- This file is in the public domain.
-
- Descriptive text for the C preprocessor macros that
- the distributed Autoconf macros can define.
- No software package will use all of them; autoheader copies the ones
- your configure.in uses into your configuration header file templates.
-
- The entries are in sort -df order: alphabetical, case insensitive,
- ignoring punctuation (such as underscores). Although this order
- can split up related entries, it makes it easier to check whether
- a given entry is in the file.
-
- Leave the following blank line there!! Autoheader needs it. */
-
-
-/* Define if on AIX 3.
- System headers sometimes define this.
- We just want to avoid a redefinition error message. */
-#ifndef _ALL_SOURCE
-#undef _ALL_SOURCE
-#endif
-
-/* Define if using alloca.c. */
-#undef C_ALLOCA
-
-/* Define if type char is unsigned and you are not using gcc. */
-#ifndef __CHAR_UNSIGNED__
-#undef __CHAR_UNSIGNED__
-#endif
-
-/* Define if the closedir function returns void instead of int. */
-#undef CLOSEDIR_VOID
-
-/* Define to empty if the keyword does not work. */
-#undef const
-
-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
- This function is required for alloca.c support on those systems. */
-#undef CRAY_STACKSEG_END
-
-/* Define for DGUX with <sys/dg_sys_info.h>. */
-#undef DGUX
-
-/* Define if you have <dirent.h>. */
-#undef DIRENT
-
-/* Define to the type of elements in the array set by `getgroups'.
- Usually this is either `int' or `gid_t'. */
-#undef GETGROUPS_T
-
-/* Define if the `getloadavg' function needs to be run setuid or setgid. */
-#undef GETLOADAVG_PRIVILEGED
-
-/* Define if the `getpgrp' function takes no argument. */
-#undef GETPGRP_VOID
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#undef gid_t
-
-/* Define if you have alloca, as a function or macro. */
-#undef HAVE_ALLOCA
-
-/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
-#undef HAVE_ALLOCA_H
-
-/* Define if you don't have vprintf but do have _doprnt. */
-#undef HAVE_DOPRNT
-
-/* Define if your system has a working fnmatch function. */
-#undef HAVE_FNMATCH
-
-/* Define if your system has its own `getloadavg' function. */
-#undef HAVE_GETLOADAVG
-
-/* Define if you have the getmntent function. */
-#undef HAVE_GETMNTENT
-
-/* Define if the `long double' type works. */
-#undef HAVE_LONG_DOUBLE
-
-/* Define if you support file names longer than 14 characters. */
-#undef HAVE_LONG_FILE_NAMES
-
-/* Define if you have a working `mmap' system call. */
-#undef HAVE_MMAP
-
-/* Define if system calls automatically restart after interruption
- by a signal. */
-#undef HAVE_RESTARTABLE_SYSCALLS
-
-/* Define if your struct stat has st_blksize. */
-#undef HAVE_ST_BLKSIZE
-
-/* Define if your struct stat has st_blocks. */
-#undef HAVE_ST_BLOCKS
-
-/* Define if you have the strcoll function and it is properly defined. */
-#undef HAVE_STRCOLL
-
-/* Define if your struct stat has st_rdev. */
-#undef HAVE_ST_RDEV
-
-/* Define if you have the strftime function. */
-#undef HAVE_STRFTIME
-
-/* Define if you have the ANSI # stringizing operator in cpp. */
-#undef HAVE_STRINGIZE
-
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define if your struct tm has tm_zone. */
-#undef HAVE_TM_ZONE
-
-/* Define if you don't have tm_zone but do have the external array
- tzname. */
-#undef HAVE_TZNAME
-
-/* Define if you have <unistd.h>. */
-#undef HAVE_UNISTD_H
-
-/* Define if utime(file, NULL) sets file's timestamp to the present. */
-#undef HAVE_UTIME_NULL
-
-/* Define if you have <vfork.h>. */
-#undef HAVE_VFORK_H
-
-/* Define if you have the vprintf function. */
-#undef HAVE_VPRINTF
-
-/* Define if you have the wait3 system call. */
-#undef HAVE_WAIT3
-
-/* Define as __inline if that's what the C compiler calls it. */
-#undef inline
-
-/* Define if int is 16 bits instead of 32. */
-#undef INT_16_BITS
-
-/* Define if long int is 64 bits. */
-#undef LONG_64_BITS
-
-/* Define if major, minor, and makedev are declared in <mkdev.h>. */
-#undef MAJOR_IN_MKDEV
-
-/* Define if major, minor, and makedev are declared in <sysmacros.h>. */
-#undef MAJOR_IN_SYSMACROS
-
-/* Define if on MINIX. */
-#undef _MINIX
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#undef mode_t
-
-/* Define if you don't have <dirent.h>, but have <ndir.h>. */
-#undef NDIR
-
-/* Define if you have <memory.h>, and <string.h> doesn't declare the
- mem* functions. */
-#undef NEED_MEMORY_H
-
-/* Define if your struct nlist has an n_un member. */
-#undef NLIST_NAME_UNION
-
-/* Define if you have <nlist.h>. */
-#undef NLIST_STRUCT
-
-/* Define if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
-/* Define if your Fortran 77 compiler doesn't accept -c and -o together. */
-#undef F77_NO_MINUS_C_MINUS_O
-
-/* Define to `long' if <sys/types.h> doesn't define. */
-#undef off_t
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#undef pid_t
-
-/* Define if the system does not provide POSIX.1 features except
- with this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define if you need to in order for stat and other things to work. */
-#undef _POSIX_SOURCE
-
-/* Define as the return type of signal handlers (int or void). */
-#undef RETSIGTYPE
-
-/* Define to the type of arg1 for select(). */
-#undef SELECT_TYPE_ARG1
-
-/* Define to the type of args 2, 3 and 4 for select(). */
-#undef SELECT_TYPE_ARG234
-
-/* Define to the type of arg5 for select(). */
-#undef SELECT_TYPE_ARG5
-
-/* Define if the `setpgrp' function takes no argument. */
-#undef SETPGRP_VOID
-
-/* Define if the setvbuf function takes the buffering type as its second
- argument and the buffer pointer as the third, as on System V
- before release 3. */
-#undef SETVBUF_REVERSED
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-#undef size_t
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown
- */
-#undef STACK_DIRECTION
-
-/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly. */
-#undef STAT_MACROS_BROKEN
-
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define on System V Release 4. */
-#undef SVR4
-
-/* Define if you don't have <dirent.h>, but have <sys/dir.h>. */
-#undef SYSDIR
-
-/* Define if you don't have <dirent.h>, but have <sys/ndir.h>. */
-#undef SYSNDIR
-
-/* Define if `sys_siglist' is declared by <signal.h>. */
-#undef SYS_SIGLIST_DECLARED
-
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Define if your <sys/time.h> declares struct tm. */
-#undef TM_IN_SYS_TIME
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#undef uid_t
-
-/* Define for Encore UMAX. */
-#undef UMAX
-
-/* Define for Encore UMAX 4.3 that has <inq_status/cpustats.h>
- instead of <sys/cpustats.h>. */
-#undef UMAX4_3
-
-/* Define if you do not have <strings.h>, index, bzero, etc.. */
-#undef USG
-
-/* Define vfork as fork if vfork does not work. */
-#undef vfork
-
-/* Define if the closedir function returns void instead of int. */
-#undef VOID_CLOSEDIR
-
-/* Define if your processor stores words with the most significant
- byte first (like Motorola and SPARC, unlike Intel and VAX). */
-#undef WORDS_BIGENDIAN
-
-/* Define if the X Window System is missing or not being used. */
-#undef X_DISPLAY_MISSING
-
-/* Define if lex declares yytext as a char * by default, not a char[]. */
-#undef YYTEXT_POINTER
-
-
-/* Leave that blank line there!! Autoheader needs it.
- If you're adding to this file, keep in mind:
- The entries are in sort -df order: alphabetical, case insensitive,
- ignoring punctuation (such as underscores). */
-
-/* Set to 1 if the processor is big endian, otherwise set to 0. */
-#undef GUESS_BIG_ENDIAN
-
-/* Set to 1 if the processor is little endian, otherwise set to 0. */
-#undef GUESS_LITTLE_ENDIAN
-
-/* Set to 1 to force the use of code for processors with broken floats */
-/* Otherwise set it to 0. */
-#undef FORCE_BROKEN_FLOAT
-
--- a/common/libsndfile/aclocal.m4
+++ /dev/null
@@ -1,540 +1,0 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4-p4
-
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-
-# Do all the work for Automake. This macro actually does too much --
-# some checks are only needed if your package does certain things.
-# But this isn't really a big deal.
-
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-AC_DEFUN(AM_SANITY_CHECK,
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "[$]*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "[$]*" != "X $srcdir/configure conftestfile" \
- && test "[$]*" != "X conftestfile $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "[$]2" = conftestfile
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-rm -f conftest*
-AC_MSG_RESULT(yes)])
-
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
- $1=$2
- AC_MSG_RESULT(found)
-else
- $1="$3/missing $2"
- AC_MSG_RESULT(missing)
-fi
-AC_SUBST($1)])
-
-# Like AC_CONFIG_HEADER, but automatically create stamp file.
-
-AC_DEFUN(AM_CONFIG_HEADER,
-[AC_PREREQ([2.12])
-AC_CONFIG_HEADER([$1])
-dnl When config.status generates a header, we must update the stamp-h file.
-dnl This file resides in the same directory as the config header
-dnl that is generated. We must strip everything past the first ":",
-dnl and everything past the last "/".
-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
-<<am_indx=1
-for am_file in <<$1>>; do
- case " <<$>>CONFIG_HEADERS " in
- *" <<$>>am_file "*<<)>>
- echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
- ;;
- esac
- am_indx=`expr "<<$>>am_indx" + 1`
-done<<>>dnl>>)
-changequote([,]))])
-
-
-# serial 40 AC_PROG_LIBTOOL
-AC_DEFUN(AC_PROG_LIBTOOL,
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-
-# Save cache, so that ltconfig can load it
-AC_CACHE_SAVE
-
-# Actually configure libtool. ac_aux_dir is where install-sh is found.
-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
-DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
-|| AC_MSG_ERROR([libtool configure failed])
-
-# Reload cache, that may have been modified by ltconfig
-AC_CACHE_LOAD
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-])
-
-AC_DEFUN(AC_LIBTOOL_SETUP,
-[AC_PREREQ(2.13)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_RANLIB])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-dnl
-
-case "$target" in
-NONE) lt_target="$host" ;;
-*) lt_target="$target" ;;
-esac
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags="--cache-file=$cache_file"
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
-[libtool_flags="$libtool_flags --enable-dlopen"])
-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
-[libtool_flags="$libtool_flags --enable-win32-dll"])
-AC_ARG_ENABLE(libtool-lock,
- [ --disable-libtool-lock avoid locking (might break parallel builds)])
-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case "$lt_target" in
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '[#]line __oline__ "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case "`/usr/bin/file conftest.o`" in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
- [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-
-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw*)
- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
- AC_CHECK_TOOL(AS, as, false)
- AC_CHECK_TOOL(OBJDUMP, objdump, false)
- ;;
-])
-esac
-])
-
-# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
-AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
-
-# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
-AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
-
-# AC_ENABLE_SHARED - implement the --enable-shared flag
-# Usage: AC_ENABLE_SHARED[(DEFAULT)]
-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
-# `yes'.
-AC_DEFUN(AC_ENABLE_SHARED, [dnl
-define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(shared,
-changequote(<<, >>)dnl
-<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac],
-enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
-])
-
-# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
-AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)])
-
-# AC_ENABLE_STATIC - implement the --enable-static flag
-# Usage: AC_ENABLE_STATIC[(DEFAULT)]
-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
-# `yes'.
-AC_DEFUN(AC_ENABLE_STATIC, [dnl
-define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(static,
-changequote(<<, >>)dnl
-<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac],
-enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
-])
-
-# AC_DISABLE_STATIC - set the default static flag to --disable-static
-AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)])
-
-
-# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
-# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
-# `yes'.
-AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
-define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(fast-install,
-changequote(<<, >>)dnl
-<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac],
-enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
-])
-
-# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
-AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)])
-
-# AC_PROG_LD - find the path to the GNU or non-GNU linker
-AC_DEFUN(AC_PROG_LD,
-[AC_ARG_WITH(gnu-ld,
-[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$ac_cv_prog_gcc" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by GCC])
- ac_prog=`($CC -print-prog-name=ld) 2>&5`
- case "$ac_prog" in
- # Accept absolute paths.
-changequote(,)dnl
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
-changequote([,])dnl
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(ac_cv_path_LD,
-[if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- ac_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- ac_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$ac_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])
-
-AC_DEFUN(AC_PROG_LD_GNU,
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- ac_cv_prog_gnu_ld=yes
-else
- ac_cv_prog_gnu_ld=no
-fi])
-])
-
-# AC_PROG_NM - find the path to a BSD-compatible name lister
-AC_DEFUN(AC_PROG_NM,
-[AC_MSG_CHECKING([for BSD-compatible nm])
-AC_CACHE_VAL(ac_cv_path_NM,
-[if test -n "$NM"; then
- # Let the user override the test.
- ac_cv_path_NM="$NM"
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$ac_dir/nm -B"
- break
- elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$ac_dir/nm -p"
- break
- else
- ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
-fi])
-NM="$ac_cv_path_NM"
-AC_MSG_RESULT([$NM])
-])
-
-# AC_CHECK_LIBM - check for math library
-AC_DEFUN(AC_CHECK_LIBM,
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case "$lt_target" in
-*-*-beos* | *-*-cygwin*)
- # These system don't have libm
- ;;
-*-ncr-sysv4.3*)
- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
- AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
- ;;
-*)
- AC_CHECK_LIB(m, main, LIBM="-lm")
- ;;
-esac
-])
-
-# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
-# the libltdl convenience library and INCLTDL to the include flags for
-# the libltdl header and adds --enable-ltdl-convenience to the
-# configure arguments. Note that LIBLTDL and INCLTDL are not
-# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not
-# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed
-# with '${top_builddir}/' and INCLTDL will be prefixed with
-# '${top_srcdir}/' (note the single quotes!). If your package is not
-# flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
- case "$enable_ltdl_convenience" in
- no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
- "") enable_ltdl_convenience=yes
- ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
- esac
- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
- INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-])
-
-# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
-# the libltdl installable library and INCLTDL to the include flags for
-# the libltdl header and adds --enable-ltdl-install to the configure
-# arguments. Note that LIBLTDL and INCLTDL are not AC_SUBSTed, nor is
-# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed
-# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will
-# be prefixed with '${top_builddir}/' and INCLTDL will be prefixed
-# with '${top_srcdir}/' (note the single quotes!). If your package is
-# not flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
- AC_CHECK_LIB(ltdl, main,
- [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
- [if test x"$enable_ltdl_install" = xno; then
- AC_MSG_WARN([libltdl not installed, but installation disabled])
- else
- enable_ltdl_install=yes
- fi
- ])
- if test x"$enable_ltdl_install" = x"yes"; then
- ac_configure_args="$ac_configure_args --enable-ltdl-install"
- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
- INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
- else
- ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
- LIBLTDL="-lltdl"
- INCLTDL=
- fi
-])
-
-dnl old names
-AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
-AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
-AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
-AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
-AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
-AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
-AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
-
-dnl This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])dnl
-
--- a/common/libsndfile/check_libsndfile.py
+++ /dev/null
@@ -1,67 +1,0 @@
-#!/usr/bin/env python
-
-import commands, os, string, sys
-
-# This program tests libsndfile against a user provided list of audio files.
-# The list is provided as a text file.
-#
-
-_EXE_NAME = 'examples/sndfile_info'
-
-
-def dump_status_output_exit (status, output, msg = None):
- if msg:
- print msg
- print "Status :", status
- print output
- sys.exit (0)
-
-def sfinfo_check_ok (filename):
- cmd = '%s %s' % (_EXE_NAME, filename)
- (status, output) = commands.getstatusoutput (cmd)
- if status:
- dump_status_output_exit (status, output, "Bad status. Dumping")
- if string.find (output, "should") > 0:
- dump_status_output_exit (status, output, "Found `should'. Dumping")
- if string.find (output, "*") > 0:
- dump_status_output_exit (status, output, "Found `*'. Dumping")
- return
-
-def sfinfo_check_not_crash (filename):
- print filename
-
-_USAGE = """
-This is the usage message.
-
-"""
-
-if len (sys.argv) != 2:
- print _USAGE
- sys.exit (0)
-
-
-if not os.path.isfile (_EXE_NAME):
- print "Could not find required program :", _EXE_NAME
- sys.exit (0)
-
-list_file = open (sys.argv [1])
-
-while 1:
- line = list_file.readline ()
- if not line:
- break
- line = string.strip (line)
- if len (line) < 1:
- continue
- if line [0] == '#':
- continue
- print line
- if os.path.isfile (line):
- sfinfo_check_ok (line)
- else:
- print "Bad file name : ", line
- sys.exit (0)
-
-list_file.close ()
-
-print "Finished. No errors found."
--- a/common/libsndfile/config.guess
+++ /dev/null
@@ -1,1183 +1,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
-# Free Software Foundation, Inc.
-#
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 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
-# General Public License for more details.
-#
-# You should have received a copy of the GNU 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.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Written by Per Bothner <bothner@cygnus.com>.
-# Please send patches to <config-patches@gnu.org>.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit system type (host/target name).
-#
-# Only a few systems have been added to this list; please add others
-# (but try to keep the structure clean).
-#
-
-# Use $HOST_CC if defined. $CC may point to a cross-compiler
-if test x"$CC_FOR_BUILD" = x; then
- if test x"$HOST_CC" != x; then
- CC_FOR_BUILD="$HOST_CC"
- else
- if test x"$CC" != x; then
- CC_FOR_BUILD="$CC"
- else
- CC_FOR_BUILD=cc
- fi
- fi
-fi
-
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 8/24/94.)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # Netbsd (nbsd) targets should (where applicable) match one or
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
- # compatibility and a consistent mechanism for selecting the
- # object file format.
- # Determine the machine/vendor (is the vendor relevant).
- case "${UNAME_MACHINE}" in
- amiga) machine=m68k-cbm ;;
- arm32) machine=arm-unknown ;;
- atari*) machine=m68k-atari ;;
- sun3*) machine=m68k-sun ;;
- mac68k) machine=m68k-apple ;;
- macppc) machine=powerpc-apple ;;
- hp3[0-9][05]) machine=m68k-hp ;;
- ibmrt|romp-ibm) machine=romp-ibm ;;
- *) machine=${UNAME_MACHINE}-unknown ;;
- esac
- # The Operating System including object format.
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
- # The OS release
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit 0 ;;
- alpha:OSF1:*:*)
- if test $UNAME_RELEASE = "V4.0"; then
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- fi
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- cat <<EOF >$dummy.s
- .data
-\$Lformat:
- .byte 37,100,45,37,120,10,0 # "%d-%x\n"
-
- .text
- .globl main
- .align 4
- .ent main
-main:
- .frame \$30,16,\$26,0
- ldgp \$29,0(\$27)
- .prologue 1
- .long 0x47e03d80 # implver \$0
- lda \$2,-1
- .long 0x47e20c21 # amask \$2,\$1
- lda \$16,\$Lformat
- mov \$0,\$17
- not \$1,\$18
- jsr \$26,printf
- ldgp \$29,0(\$26)
- mov 0,\$16
- jsr \$26,exit
- .end main
-EOF
- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- case `./$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- esac
- fi
- rm -f $dummy.s $dummy
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-cbm-sysv4
- exit 0;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit 0 ;;
- arc64:OpenBSD:*:*)
- echo mips64el-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- arc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- hkmips:OpenBSD:*:*)
- echo mips-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- pmax:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sgi:OpenBSD:*:*)
- echo mips-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- wgrisc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- SR2?01:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit 0 ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit 0 ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit 0 ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit 0 ;;
- atari*:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
- sun3*:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit 0 ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- sed 's/^ //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy \
- && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit 0 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit 0 ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i?86:AIX:*:*)
- echo i386-ibm-aix
- exit 0 ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 0 ;;
- *:AIX:*:4)
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
- if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=4.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit 0 ;;
- 9000/[34678]??:HP-UX:*:*)
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/[678][0-9][0-9])
- sed 's/^ //' << EOF >$dummy.c
-
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
- rm -f $dummy.c $dummy
- esac
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
- 3050*:HI-UX:*:*)
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- *9??*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- i?86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit 0 ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit 0 ;;
- hppa*:OpenBSD:*:*)
- echo hppa-unknown-openbsd
- exit 0 ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit 0 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit 0 ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit 0 ;;
- CRAY*X-MP:*:*:*)
- echo xmp-cray-unicos
- exit 0 ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE}
- exit 0 ;;
- CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
- exit 0 ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3E:*:*:*)
- echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY-2:*:*:*)
- echo cray2-cray-unicos
- exit 0 ;;
- F300:UNIX_System_V:*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
- F301:UNIX_System_V:*:*)
- echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
- exit 0 ;;
- hp300:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
- *:OpenBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- exit 0 ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit 0 ;;
- i*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit 0 ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i386-pc-interix
- exit 0 ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit 0 ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- *:Linux:*:*)
-
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us. cd to the root directory to prevent
- # problems with other programs or directories called `ld' in the path.
- ld_help_string=`cd /; ld --help 2>&1`
- ld_supported_emulations=`echo $ld_help_string \
- | sed -ne '/supported emulations:/!d
- s/[ ][ ]*/ /g
- s/.*supported emulations: *//
- s/ .*//
- p'`
- case "$ld_supported_emulations" in
- *ia64)
- echo "${UNAME_MACHINE}-unknown-linux"
- exit 0
- ;;
- i?86linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0
- ;;
- elf_i?86)
- echo "${UNAME_MACHINE}-pc-linux"
- exit 0
- ;;
- i?86coff)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit 0
- ;;
- sparclinux)
- echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
- exit 0
- ;;
- armlinux)
- echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
- exit 0
- ;;
- elf32arm*)
- echo "${UNAME_MACHINE}-unknown-linux-gnuoldld"
- exit 0
- ;;
- armelf_linux*)
- echo "${UNAME_MACHINE}-unknown-linux-gnu"
- exit 0
- ;;
- m68klinux)
- echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
- exit 0
- ;;
- elf32ppc | elf32ppclinux)
- # Determine Lib Version
- cat >$dummy.c <<EOF
-#include <features.h>
-#if defined(__GLIBC__)
-extern char __libc_version[];
-extern char __libc_release[];
-#endif
-main(argc, argv)
- int argc;
- char *argv[];
-{
-#if defined(__GLIBC__)
- printf("%s %s\n", __libc_version, __libc_release);
-#else
- printf("unkown\n");
-#endif
- return 0;
-}
-EOF
- LIBC=""
- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- ./$dummy | grep 1\.99 > /dev/null
- if test "$?" = 0 ; then
- LIBC="libc1"
- fi
- fi
- rm -f $dummy.c $dummy
- echo powerpc-unknown-linux-gnu${LIBC}
- exit 0
- ;;
- esac
-
- if test "${UNAME_MACHINE}" = "alpha" ; then
- cat <<EOF >$dummy.s
- .data
- \$Lformat:
- .byte 37,100,45,37,120,10,0 # "%d-%x\n"
-
- .text
- .globl main
- .align 4
- .ent main
- main:
- .frame \$30,16,\$26,0
- ldgp \$29,0(\$27)
- .prologue 1
- .long 0x47e03d80 # implver \$0
- lda \$2,-1
- .long 0x47e20c21 # amask \$2,\$1
- lda \$16,\$Lformat
- mov \$0,\$17
- not \$1,\$18
- jsr \$26,printf
- ldgp \$29,0(\$26)
- mov 0,\$16
- jsr \$26,exit
- .end main
-EOF
- LIBC=""
- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- case `./$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- esac
-
- objdump --private-headers $dummy | \
- grep ld.so.1 > /dev/null
- if test "$?" = 0 ; then
- LIBC="libc1"
- fi
- fi
- rm -f $dummy.s $dummy
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
- elif test "${UNAME_MACHINE}" = "mips" ; then
- cat >$dummy.c <<EOF
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
-#ifdef __MIPSEB__
- printf ("%s-unknown-linux-gnu\n", argv[1]);
-#endif
-#ifdef __MIPSEL__
- printf ("%sel-unknown-linux-gnu\n", argv[1]);
-#endif
- return 0;
-}
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- elif test "${UNAME_MACHINE}" = "s390"; then
- echo s390-ibm-linux && exit 0
- else
- # Either a pre-BFD a.out linker (linux-gnuoldld)
- # or one that does not give us useful --help.
- # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
- # If ld does not provide *any* "supported emulations:"
- # that means it is gnuoldld.
- echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
- test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
-
- case "${UNAME_MACHINE}" in
- i?86)
- VENDOR=pc;
- ;;
- *)
- VENDOR=unknown;
- ;;
- esac
- # Determine whether the default compiler is a.out or elf
- cat >$dummy.c <<EOF
-#include <features.h>
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
-#ifdef __ELF__
-# ifdef __GLIBC__
-# if __GLIBC__ >= 2
- printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
-# else
- printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
-# endif
-# else
- printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
-# endif
-#else
- printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
-#endif
- return 0;
-}
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- fi ;;
-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
-# are messed up and put the nodename in both sysname and nodename.
- i?86:DYNIX/ptx:4*:*)
- echo i386-sequent-sysv4
- exit 0 ;;
- i?86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit 0 ;;
- i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit 0 ;;
- i?86:*:5:7*)
- # Fixed at (any) Pentium or better
- UNAME_MACHINE=i586
- if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
- echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- i?86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
- (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit 0 ;;
- i?86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit 0 ;;
- M68*:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
- m68*:LynxOS:2.*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit 0 ;;
- i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit 0 ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit 0 ;;
- PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit 0 ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit 0 ;;
- *:*:*:FTX*)
- # From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit 0 ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit 0 ;;
- news*:NEWS-OS:*:6*)
- echo mips-sony-newsos6
- exit 0 ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit 0 ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit 0 ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit 0 ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Darwin:*:*)
- echo `uname -p`-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- if test "${UNAME_MACHINE}" = "x86pc"; then
- UNAME_MACHINE=pc
- fi
- echo `uname -p`-${UNAME_MACHINE}-nto-qnx
- exit 0 ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit 0 ;;
- NSR-W:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit 0 ;;
- BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit 0 ;;
- DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-#if !defined (ultrix)
- printf ("vax-dec-bsd\n"); exit (0);
-#else
- printf ("vax-dec-ultrix\n"); exit (0);
-#endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
-rm -f $dummy.c $dummy
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit 0 ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- c34*)
- echo c34-convex-bsd
- exit 0 ;;
- c38*)
- echo c38-convex-bsd
- exit 0 ;;
- c4*)
- echo c4-convex-bsd
- exit 0 ;;
- esac
-fi
-
-#echo '(Unable to guess system type)' 1>&2
-
-exit 1
--- a/common/libsndfile/config.sub
+++ /dev/null
@@ -1,1268 +1,0 @@
-#! /bin/sh
-# Configuration validation subroutine script, version 1.1.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
-# Free Software Foundation, Inc.
-#
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 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 General Public License for more details.
-#
-# You should have received a copy of the GNU 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.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Written by Per Bothner <bothner@cygnus.com>.
-# Please send patches to <config-patches@gnu.org>.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-if [ x$1 = x ]
-then
- echo Configuration name missing. 1>&2
- echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
- echo "or $0 ALIAS" 1>&2
- echo where ALIAS is a recognized configuration type. 1>&2
- exit 1
-fi
-
-# First pass through any local machine types.
-case $1 in
- *local*)
- echo $1
- exit 0
- ;;
- *)
- ;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple)
- os=
- basic_machine=$1
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
- | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
- | 580 | i960 | h8300 \
- | x86 | ppcbe | mipsbe | mipsle | shbe | shle | armbe | armle \
- | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
- | hppa64 \
- | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
- | alphaev6[78] \
- | we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
- | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
- | mips64orion | mips64orionel | mipstx39 | mipstx39el \
- | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
- | mips64vr5000 | miprs64vr5000el | mcore \
- | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
- | thumb | d10v | fr30 | avr)
- basic_machine=$basic_machine-unknown
- ;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
- ;;
-
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i[34567]86)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- # FIXME: clean up the formatting here.
- vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
- | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
- | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
- | xmp-* | ymp-* \
- | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* | armbe-* | armle-* \
- | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
- | hppa2.0n-* | hppa64-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
- | alphaev6[78]-* \
- | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
- | clipper-* | orion-* \
- | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
- | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
- | mips64el-* | mips64orion-* | mips64orionel-* \
- | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
- | mipstx39-* | mipstx39el-* | mcore-* \
- | f301-* | armv*-* | s390-* | sv1-* | t3e-* \
- | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
- | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \
- | bs2000-*)
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-cbm
- ;;
- amigaos | amigados)
- basic_machine=m68k-cbm
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-cbm
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- cray2)
- basic_machine=cray2-cray
- os=-unicos
- ;;
- [ctj]90-cray)
- basic_machine=c90-cray
- os=-unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i[34567]86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i[34567]86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i[34567]86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i[34567]86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
- ;;
- i386-go32 | go32)
- basic_machine=i386-unknown
- os=-go32
- ;;
- i386-mingw32 | mingw32)
- basic_machine=i386-unknown
- os=-mingw32
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mipsel*-linux*)
- basic_machine=mipsel-unknown
- os=-linux-gnu
- ;;
- mips*-linux*)
- basic_machine=mips-unknown
- os=-linux-gnu
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- mmix*)
- basic_machine=mmix-knuth
- os=-mmixware
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- msdos)
- basic_machine=i386-unknown
- os=-msdos
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pentium | p5 | k5 | k6 | nexen)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexen-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=rs6000-ibm
- ;;
- ppc) basic_machine=powerpc-unknown
- ;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ps2)
- basic_machine=i386-ibm
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sparclite-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- st2000)
- basic_machine=m68k-tandem
- ;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3e)
- basic_machine=t3e-cray
- os=-unicos
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- xmp)
- basic_machine=xmp-cray
- os=-unicos
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- basic_machine=hppa1.1-oki
- ;;
- op60c)
- basic_machine=hppa1.1-oki
- ;;
- mips)
- if [ x$os = x-linux-gnu ]; then
- basic_machine=mips-unknown
- else
- basic_machine=mips-mips
- fi
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sparc | sparcv9)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
- ;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
- ;;
- c4x*)
- basic_machine=c4x-none
- os=-coff
- ;;
- *)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
- ;;
- -unixware*)
- os=-sysv4.2uw
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i[34567]86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto*)
- os=-nto-qnx
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -*MiNT)
- os=-mint
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- m68*-cisco)
- os=-aout
- ;;
- mips*-cisco)
- os=-elf
- ;;
- mips*-*)
- os=-elf
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-be)
- os=-beos
- ;;
- *-ibm)
- os=-aix
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f301-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -vxsim* | -vxworks*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -*MiNT)
- vendor=atari
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
--- a/common/libsndfile/configure
+++ /dev/null
@@ -1,2735 +1,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_help="$ac_help
- --enable-shared[=PKGS] build shared libraries [default=yes]"
-ac_help="$ac_help
- --enable-static[=PKGS] build static libraries [default=yes]"
-ac_help="$ac_help
- --enable-fast-install[=PKGS] optimize for fast installation [default=yes]"
-ac_help="$ac_help
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]"
-ac_help="$ac_help
- --disable-libtool-lock avoid locking (might break parallel builds)"
-ac_help="$ac_help
- --enable-justsrc only compile library sources "
-ac_help="$ac_help
- --disable-gcc-pipe disable gcc -pipe option "
-ac_help="$ac_help
- --disable-gcc-opt disable gcc optimisations "
-ac_help="$ac_help
- --enable-force-broken-float force use of broken float code "
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-for ac_option
-do
-
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$ac_optarg" ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set. These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=src/sndfile.c
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-
-# Do some error checking and defaulting for the host and target type.
-# The inputs are:
-# configure --host=HOST --target=TARGET --build=BUILD NONOPT
-#
-# The rules are:
-# 1. You are not allowed to specify --host, --target, and nonopt at the
-# same time.
-# 2. Host defaults to nonopt.
-# 3. If nonopt is not specified, then host defaults to the current host,
-# as determined by config.guess.
-# 4. Target and build default to nonopt.
-# 5. If nonopt is not specified, then target and build default to host.
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-case $host---$target---$nonopt in
-NONE---*---* | *---NONE---* | *---*---NONE) ;;
-*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
-esac
-
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:590: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
- case $nonopt in
- NONE)
- if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
- fi ;;
- *) host_alias=$nonopt ;;
- esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:611: checking target system type" >&5
-
-target_alias=$target
-case "$target_alias" in
-NONE)
- case $nonopt in
- NONE) target_alias=$host_alias ;;
- *) target_alias=$nonopt ;;
- esac ;;
-esac
-
-target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
-target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$target" 1>&6
-
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:629: checking build system type" >&5
-
-build_alias=$build
-case "$build_alias" in
-NONE)
- case $nonopt in
- NONE) build_alias=$host_alias ;;
- *) build_alias=$nonopt ;;
- esac ;;
-esac
-
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-test "$host_alias" != "$target_alias" &&
- test "$program_prefix$program_suffix$program_transform_name" = \
- NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:664: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- # Account for people who put trailing slashes in PATH elements.
- case "$ac_dir/" in
- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- if test -f $ac_dir/$ac_prog; then
- if test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL="$ac_cv_path_install"
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:717: checking whether build environment is sane" >&5
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "$*" != "X $srcdir/configure conftestfile" \
- && test "$*" != "X conftestfile $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" 1>&2; exit 1; }
- fi
-
- test "$2" = conftestfile
- )
-then
- # Ok.
- :
-else
- { echo "configure: error: newly created file is older than distributed files!
-Check your system clock" 1>&2; exit 1; }
-fi
-rm -f conftest*
-echo "$ac_t""yes" 1>&6
-if test "$program_transform_name" = s,x,x,; then
- program_transform_name=
-else
- # Double any \ or $. echo might interpret backslashes.
- cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
- program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
- rm -f conftestsed
-fi
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:774: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftestmake <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-
-PACKAGE=libsndfile
-
-VERSION=0.0.27
-
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
-fi
-cat >> confdefs.h <<EOF
-#define PACKAGE "$PACKAGE"
-EOF
-
-cat >> confdefs.h <<EOF
-#define VERSION "$VERSION"
-EOF
-
-
-
-missing_dir=`cd $ac_aux_dir && pwd`
-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:820: checking for working aclocal" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
- ACLOCAL=aclocal
- echo "$ac_t""found" 1>&6
-else
- ACLOCAL="$missing_dir/missing aclocal"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:833: checking for working autoconf" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
- AUTOCONF=autoconf
- echo "$ac_t""found" 1>&6
-else
- AUTOCONF="$missing_dir/missing autoconf"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:846: checking for working automake" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (automake --version) < /dev/null > /dev/null 2>&1; then
- AUTOMAKE=automake
- echo "$ac_t""found" 1>&6
-else
- AUTOMAKE="$missing_dir/missing automake"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:859: checking for working autoheader" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
- AUTOHEADER=autoheader
- echo "$ac_t""found" 1>&6
-else
- AUTOHEADER="$missing_dir/missing autoheader"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:872: checking for working makeinfo" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
- MAKEINFO=makeinfo
- echo "$ac_t""found" 1>&6
-else
- MAKEINFO="$missing_dir/missing makeinfo"
- echo "$ac_t""missing" 1>&6
-fi
-
-
-
-
-SHARED_VERSION_INFO="0:27:0"
-
-
-
-
-
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:897: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="gcc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:927: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_prog_rejected=no
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# -gt 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test -z "$CC"; then
- case "`uname -s`" in
- *win32* | *WIN32*)
- # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:978: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="cl"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
- ;;
- esac
- fi
- test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1010: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-cat > conftest.$ac_ext << EOF
-
-#line 1021 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:1026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- ac_cv_prog_cc_works=yes
- # If we can't run a trivial program, we are probably using a cross compiler.
- if (./conftest; exit) 2>/dev/null; then
- ac_cv_prog_cc_cross=no
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1052: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1057: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1066: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-else
- GCC=
-fi
-
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1085: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1128: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- # Account for people who put trailing slashes in PATH elements.
- case "$ac_dir/" in
- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- if test -f $ac_dir/$ac_prog; then
- if test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL="$ac_cv_path_install"
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1182: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftestmake <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1209: checking whether ln -s works" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- rm -f conftestdata
-if ln -s X conftestdata 2>/dev/null
-then
- rm -f conftestdata
- ac_cv_prog_LN_S="ln -s"
-else
- ac_cv_prog_LN_S=ln
-fi
-fi
-LN_S="$ac_cv_prog_LN_S"
-if test "$ac_cv_prog_LN_S" = "ln -s"; then
- echo "$ac_t""yes" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_shared=yes
-fi
-
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
- enableval="$enable_static"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_static=yes
-fi
-
-# Check whether --enable-fast-install or --disable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
- enableval="$enable_fast_install"
- p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_fast_install=yes
-fi
-
-# Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1301: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_RANLIB="ranlib"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
- withval="$with_gnu_ld"
- test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$ac_cv_prog_gcc" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:1340: checking for ld used by GCC" >&5
- ac_prog=`($CC -print-prog-name=ld) 2>&5`
- case "$ac_prog" in
- # Accept absolute paths.
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1364: checking for GNU ld" >&5
-else
- echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1367: checking for non-GNU ld" >&5
-fi
-if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- ac_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- ac_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$ac_cv_path_LD"
-if test -n "$LD"; then
- echo "$ac_t""$LD" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
-echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1402: checking if the linker ($LD) is GNU ld" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- ac_cv_prog_gnu_ld=yes
-else
- ac_cv_prog_gnu_ld=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6
-
-
-echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1418: checking for BSD-compatible nm" >&5
-if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- ac_cv_path_NM="$NM"
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$ac_dir/nm -B"
- break
- elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$ac_dir/nm -p"
- break
- else
- ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
-fi
-fi
-
-NM="$ac_cv_path_NM"
-echo "$ac_t""$NM" 1>&6
-
-
-case "$target" in
-NONE) lt_target="$host" ;;
-*) lt_target="$target" ;;
-esac
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags="--cache-file=$cache_file"
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-
-
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
- enableval="$enable_libtool_lock"
- :
-fi
-
-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case "$lt_target" in
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line 1482 "configure"' > conftest.$ac_ext
- if { (eval echo configure:1483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- case "`/usr/bin/file conftest.o`" in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:1504: checking whether the C compiler needs -belf" >&5
-if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1509 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:1516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- lt_cv_cc_needs_belf=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- lt_cv_cc_needs_belf=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-
-
-esac
-
-
-# Save cache, so that ltconfig can load it
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-
-# Actually configure libtool. ac_aux_dir is where install-sh is found.
-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
-DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
-|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; }
-
-# Reload cache, that may have been modified by ltconfig
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-
-
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1619: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 1634 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1640: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 1651 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1657: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
-#line 1668 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1674: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1699: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1704 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1712: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- ac_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1729 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1747 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 1768 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-if { (eval echo configure:1779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-
-for ac_hdr in endian.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1807: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1812 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-for ac_func in fopen fread fwrite fclose fseek ftell malloc free snprintf vsnprintf
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1847: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1852 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:1875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:1901: checking for size_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1906 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_size_t=yes
-else
- rm -rf conftest*
- ac_cv_type_size_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_size_t" 1>&6
-if test $ac_cv_type_size_t = no; then
- cat >> confdefs.h <<\EOF
-#define size_t unsigned
-EOF
-
-fi
-
-echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:1934: checking for off_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1939 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_off_t=yes
-else
- rm -rf conftest*
- ac_cv_type_off_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_off_t" 1>&6
-if test $ac_cv_type_off_t = no; then
- cat >> confdefs.h <<\EOF
-#define off_t long
-EOF
-
-fi
-
-
-echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:1968: checking size of short" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_sizeof_short=2
-else
- cat > conftest.$ac_ext <<EOF
-#line 1976 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#include <sys/types.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(short));
- exit(0);
-}
-EOF
-if { (eval echo configure:1988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_short=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_short=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_short" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_SHORT $ac_cv_sizeof_short
-EOF
-
-
-echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:2008: checking size of int" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_sizeof_int=4
-else
- cat > conftest.$ac_ext <<EOF
-#line 2016 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#include <sys/types.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(int));
- exit(0);
-}
-EOF
-if { (eval echo configure:2028: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_int=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_int=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_int" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_INT $ac_cv_sizeof_int
-EOF
-
-
-echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:2048: checking size of long" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_sizeof_long=8
-else
- cat > conftest.$ac_ext <<EOF
-#line 2056 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#include <sys/types.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(long));
- exit(0);
-}
-EOF
-if { (eval echo configure:2068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_long=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_long=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_long" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_LONG $ac_cv_sizeof_long
-EOF
-
-
-echo $ac_n "checking size of float""... $ac_c" 1>&6
-echo "configure:2088: checking size of float" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_float'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_sizeof_float=4
-else
- cat > conftest.$ac_ext <<EOF
-#line 2096 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#include <sys/types.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(float));
- exit(0);
-}
-EOF
-if { (eval echo configure:2108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_float=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_float=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_float" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_FLOAT $ac_cv_sizeof_float
-EOF
-
-
-echo $ac_n "checking size of double""... $ac_c" 1>&6
-echo "configure:2128: checking size of double" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_double'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_sizeof_double=4
-else
- cat > conftest.$ac_ext <<EOF
-#line 2136 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#include <sys/types.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(double));
- exit(0);
-}
-EOF
-if { (eval echo configure:2148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_double=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_double=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_double" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_DOUBLE $ac_cv_sizeof_double
-EOF
-
-
-echo $ac_n "checking size of void*""... $ac_c" 1>&6
-echo "configure:2168: checking size of void*" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_voidp'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_sizeof_voidp=8
-else
- cat > conftest.$ac_ext <<EOF
-#line 2176 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#include <sys/types.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(void*));
- exit(0);
-}
-EOF
-if { (eval echo configure:2188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_voidp=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_voidp=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_voidp" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_VOIDP $ac_cv_sizeof_voidp
-EOF
-
-
-
-# Check whether --enable-justsrc or --disable-justsrc was given.
-if test "${enable_justsrc+set}" = set; then
- enableval="$enable_justsrc"
- ac_arg_justsrc="Y"
-else
- ac_arg_justsrc="N"
-fi
-
-
-# Check whether --enable-gcc-pipe or --disable-gcc-pipe was given.
-if test "${enable_gcc_pipe+set}" = set; then
- enableval="$enable_gcc_pipe"
- ac_arg_gcc_pipe="N"
-else
- ac_arg_gcc_pipe="Y"
-fi
-
-
-# Check whether --enable-gcc-opt or --disable-gcc-opt was given.
-if test "${enable_gcc_opt+set}" = set; then
- enableval="$enable_gcc_opt"
- ac_arg_gcc_opt="N"
-else
- ac_arg_gcc_opt="Y"
-fi
-
-
-# Check whether --enable-force-broken-float or --disable-force-broken-float was given.
-if test "${enable_force_broken_float+set}" = set; then
- enableval="$enable_force_broken_float"
- ac_arg_broken_float="Y"
-else
- ac_arg_broken_float="N"
-fi
-
-
-if test $ac_cv_prog_gcc = yes ; then
- CFLAGS="$CFLAGS -g -O2 -Wstrict-prototypes"
- if test "$ac_arg_gcc_opt" = "N" ; then
- CFLAGS="$CFLAGS -g -O0 -Wstrict-prototypes"
- echo "configure: warning: *** Compiler optimisations switched off. ***" 1>&2
- fi
- case "$target_os" in
- darwin* | rhapsody*)
- ;;
- *)
- CFLAGS="$CFLAGS -Wall -pedantic"
- ;;
- esac
- if test $ac_arg_gcc_pipe != "N" ; then
- CFLAGS="$CFLAGS -pipe"
- fi
- fi
-
-if test $cross_compiling = yes ; then
- echo "configure: warning: ******************************************************************" 1>&2
- echo "configure: warning: *** We are cross-compiling, so have to assume sizeof (short) == 2 " 1>&2
- echo "configure: warning: *** and sizeof (int) == 4. If this is not the case there is no " 1>&2
- echo "configure: warning: *** chance of this working. Please contact the mantainer. " 1>&2
- echo "configure: warning: ******************************************************************" 1>&2
- fi
-
-if test $ac_cv_sizeof_int != 4 ; then
- echo "configure: warning: ******************************************************************" 1>&2
- echo "configure: warning: *** sizeof (int) != 4 " 1>&2
- echo "configure: warning: ******************************************************************" 1>&2
- fi
-
-if test $ac_cv_sizeof_short != 2 ; then
- echo "configure: warning: ******************************************************************" 1>&2
- echo "configure: warning: *** sizeof (short) != 2. " 1>&2
- echo "configure: warning: ******************************************************************" 1>&2
- fi
-
-if test $ac_cv_sizeof_float != 4 ; then
- echo "configure: warning: ******************************************************************" 1>&2
- echo "configure: warning: *** sizeof (float) != 4. " 1>&2
- echo "configure: warning: ******************************************************************" 1>&2
- fi
-
-if test $ac_cv_sizeof_double != 8 ; then
- echo "configure: warning: ******************************************************************" 1>&2
- echo "configure: warning: *** sizeof (double) != 8. " 1>&2
- echo "configure: warning: ******************************************************************" 1>&2
- fi
-
-case "$target_cpu" in
- alpha* | i?86 )
- cat >> confdefs.h <<\EOF
-#define GUESS_LITTLE_ENDIAN 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define GUESS_BIG_ENDIAN 0
-EOF
-
- ;;
-
- hppa* | m68* | mips* | powerpc* | hppa* | sparc*)
- cat >> confdefs.h <<\EOF
-#define GUESS_LITTLE_ENDIAN 0
-EOF
-
- cat >> confdefs.h <<\EOF
-#define GUESS_BIG_ENDIAN 1
-EOF
-
- ;;
-
- *)
- echo "configure: warning: *****************************************************************" 1>&2
- echo "configure: warning: *** Not able to determine endian-ness of processor. " 1>&2
- echo "configure: warning: *** You will need to edit src/config.h before compiling. " 1>&2
- echo "configure: warning: *****************************************************************" 1>&2
- ;;
-esac
-
-subdirs="src/GSM610 src/G72x src"
-if test $ac_arg_justsrc = "N" ; then
- subdirs="$subdirs examples doc tests"
- fi
-
-if test $ac_arg_broken_float = "Y" ; then
- cat >> confdefs.h <<\EOF
-#define FORCE_BROKEN_FLOAT 1
-EOF
-
- echo "configure: warning: *** Testing code for processors that can't read/write IEEE floats." 1>&2
-else
- cat >> confdefs.h <<\EOF
-#define FORCE_BROKEN_FLOAT 0
-EOF
-
- fi
-
-
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.13"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-trap 'rm -fr `echo "Makefile src/Makefile src/GSM610/Makefile src/G72x/Makefile \
- examples/Makefile tests/Makefile doc/Makefile Win32/Makefile \
- MacOS/Makefile libsndfile.spec src/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@target@%$target%g
-s%@target_alias@%$target_alias%g
-s%@target_cpu@%$target_cpu%g
-s%@target_vendor@%$target_vendor%g
-s%@target_os@%$target_os%g
-s%@build@%$build%g
-s%@build_alias@%$build_alias%g
-s%@build_cpu@%$build_cpu%g
-s%@build_vendor@%$build_vendor%g
-s%@build_os@%$build_os%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@PACKAGE@%$PACKAGE%g
-s%@VERSION@%$VERSION%g
-s%@ACLOCAL@%$ACLOCAL%g
-s%@AUTOCONF@%$AUTOCONF%g
-s%@AUTOMAKE@%$AUTOMAKE%g
-s%@AUTOHEADER@%$AUTOHEADER%g
-s%@MAKEINFO@%$MAKEINFO%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@CC@%$CC%g
-s%@LN_S@%$LN_S%g
-s%@RANLIB@%$RANLIB%g
-s%@LIBTOOL@%$LIBTOOL%g
-s%@CPP@%$CPP%g
-s%@subdirs@%$subdirs%g
-s%@SHARED_VERSION_INFO@%$SHARED_VERSION_INFO%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
- else
- sed "${ac_end}q" conftest.subs > conftest.s$ac_file
- fi
- if test ! -s conftest.s$ac_file; then
- ac_more_lines=false
- rm -f conftest.s$ac_file
- else
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f conftest.s$ac_file"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
- fi
- ac_file=`expr $ac_file + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_cmds`
- fi
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile src/Makefile src/GSM610/Makefile src/G72x/Makefile \
- examples/Makefile tests/Makefile doc/Makefile Win32/Makefile \
- MacOS/Makefile libsndfile.spec"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- case "$ac_given_INSTALL" in
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
- esac
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
-
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="src/config.h"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- cat $ac_file_inputs > conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h. And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
-rm -f conftest.tail
-while :
-do
- ac_lines=`grep -c . conftest.vals`
- # grep -c gives empty output for an empty file on some AIX systems.
- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
- # Write a limited-size here document to conftest.frag.
- echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
- echo 'CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-test -z "$CONFIG_HEADERS" || echo timestamp > src/stamp-h
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
--- a/common/libsndfile/configure.in
+++ /dev/null
@@ -1,145 +1,0 @@
-# Configure `libsndfile'.
-# Copyright (C) 1999-2001 Erik de Castro Lopo (erikd@zip.com.au).
-
-dnl Require autoconf version >= 2.12
-
-AC_PREREQ(2.12)
-AC_INIT(src/sndfile.c)
-AC_CANONICAL_SYSTEM
-
-AM_INIT_AUTOMAKE(libsndfile,0.0.27)
-
-dnl This is the version info according to the libtool versioning system.
-dnl It does *not* correspond to the release number.
-
-SHARED_VERSION_INFO="0:27:0"
-
-dnl Process this file with autoconf to produce a configure script.
-
-AM_CONFIG_HEADER(src/config.h)
-
-AC_PROG_CC
-AC_PROG_INSTALL
-
-AC_PROG_MAKE_SET
-AC_PROG_LN_S
-AM_PROG_LIBTOOL
-
-AC_HEADER_STDC
-
-AC_CHECK_HEADERS(endian.h)
-
-AC_CHECK_FUNCS(fopen fread fwrite fclose fseek ftell malloc free snprintf vsnprintf)
-
-AC_TYPE_SIZE_T
-AC_TYPE_OFF_T
-
-AC_CHECK_SIZEOF(short,2)
-AC_CHECK_SIZEOF(int,4)
-AC_CHECK_SIZEOF(long,8)
-AC_CHECK_SIZEOF(float,4)
-AC_CHECK_SIZEOF(double,4)
-AC_CHECK_SIZEOF(void*,8)
-
-AC_ARG_ENABLE(justsrc, [ --enable-justsrc only compile library sources ],
- ac_arg_justsrc="Y", ac_arg_justsrc="N")
-
-AC_ARG_ENABLE(gcc-pipe, [ --disable-gcc-pipe disable gcc -pipe option ],
- ac_arg_gcc_pipe="N", ac_arg_gcc_pipe="Y")
-
-AC_ARG_ENABLE(gcc-opt, [ --disable-gcc-opt disable gcc optimisations ],
- ac_arg_gcc_opt="N", ac_arg_gcc_opt="Y")
-
-AC_ARG_ENABLE(force-broken-float,
- [ --enable-force-broken-float force use of broken float code ],
- ac_arg_broken_float="Y", ac_arg_broken_float="N")
-
-if test $ac_cv_prog_gcc = yes ; then
- CFLAGS="$CFLAGS -g -O2 -Wstrict-prototypes"
- if test "$ac_arg_gcc_opt" = "N" ; then
- CFLAGS="$CFLAGS -g -O0 -Wstrict-prototypes"
- AC_MSG_WARN([[*** Compiler optimisations switched off. ***]])
- fi
- dnl Disable -Wall and -pedantic for Apple Darwin/Rhapsody.
- dnl System headers on these systems are broken.
- case "$target_os" in
- darwin* | rhapsody*)
- ;;
- *)
- CFLAGS="$CFLAGS -Wall -pedantic"
- ;;
- esac
- if test $ac_arg_gcc_pipe != "N" ; then
- CFLAGS="$CFLAGS -pipe"
- fi
- fi
-
-if test $cross_compiling = yes ; then
- AC_MSG_WARN([[******************************************************************]])
- AC_MSG_WARN([[*** We are cross-compiling, so have to assume sizeof (short) == 2 ]])
- AC_MSG_WARN([[*** and sizeof (int) == 4. If this is not the case there is no ]])
- AC_MSG_WARN([[*** chance of this working. Please contact the mantainer. ]])
- AC_MSG_WARN([[******************************************************************]])
- fi
-
-if test $ac_cv_sizeof_int != 4 ; then
- AC_MSG_WARN([[******************************************************************]])
- AC_MSG_WARN([[*** sizeof (int) != 4 ]])
- AC_MSG_WARN([[******************************************************************]])
- fi
-
-if test $ac_cv_sizeof_short != 2 ; then
- AC_MSG_WARN([[******************************************************************]])
- AC_MSG_WARN([[*** sizeof (short) != 2. ]])
- AC_MSG_WARN([[******************************************************************]])
- fi
-
-if test $ac_cv_sizeof_float != 4 ; then
- AC_MSG_WARN([[******************************************************************]])
- AC_MSG_WARN([[*** sizeof (float) != 4. ]])
- AC_MSG_WARN([[******************************************************************]])
- fi
-
-if test $ac_cv_sizeof_double != 8 ; then
- AC_MSG_WARN([[******************************************************************]])
- AC_MSG_WARN([[*** sizeof (double) != 8. ]])
- AC_MSG_WARN([[******************************************************************]])
- fi
-
-case "$target_cpu" in
- alpha* | i?86 )
- AC_DEFINE(GUESS_LITTLE_ENDIAN,1)
- AC_DEFINE(GUESS_BIG_ENDIAN,0)
- ;;
-
- hppa* | m68* | mips* | powerpc* | hppa* | sparc*)
- AC_DEFINE(GUESS_LITTLE_ENDIAN,0)
- AC_DEFINE(GUESS_BIG_ENDIAN,1)
- ;;
-
- *)
- AC_MSG_WARN([[*****************************************************************]])
- AC_MSG_WARN([[*** Not able to determine endian-ness of processor. ]])
- AC_MSG_WARN([[*** You will need to edit src/config.h before compiling. ]])
- AC_MSG_WARN([[*****************************************************************]])
- ;;
-esac
-
-subdirs="src/GSM610 src/G72x src"
-if test $ac_arg_justsrc = "N" ; then
- subdirs="$subdirs examples doc tests"
- fi
-
-if test $ac_arg_broken_float = "Y" ; then
- AC_DEFINE(FORCE_BROKEN_FLOAT,1)
- AC_MSG_WARN([[*** Testing code for processors that can't read/write IEEE floats.]])
-else
- AC_DEFINE(FORCE_BROKEN_FLOAT,0)
- fi
-
-AC_SUBST(subdirs)
-AC_SUBST(SHARED_VERSION_INFO)
-
-AC_OUTPUT(Makefile src/Makefile src/GSM610/Makefile src/G72x/Makefile \
- examples/Makefile tests/Makefile doc/Makefile Win32/Makefile \
- MacOS/Makefile libsndfile.spec)
--- a/common/libsndfile/install-sh
+++ /dev/null
@@ -1,119 +1,0 @@
-#!/bin/sh
-
-#
-# install - install a program, script, or datafile
-# This comes from X11R5; it is not part of GNU.
-#
-# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-#
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-
-instcmd="$mvprog"
-chmodcmd=""
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-lib=""
-dst=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- *) if [ x"$lib" = x ]
- then
- lib=$1
- else
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$lib" = x ]
-then
- echo "install: no input file specified"
- exit 1
-fi
-
-if [ x"$dst" = x ]
-then
- echo "install: no destination specified"
- exit 1
-fi
-
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-if [ -d $dst ]
-then
- dst="$dst"/`basename $lib`
-fi
-
-# Make a temp file name in the proper directory.
-
-dstdir=`dirname $dst`
-dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
-$doit $instcmd $lib $dsttmp
-
-# and set any options; do chmod last to preserve setuid bits
-
-if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi
-if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi
-if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi
-if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi
-
-# Now rename the file to the real destination.
-
-$doit $rmcmd $dst
-$doit $mvcmd $dsttmp $dst
-
-
-exit 0
--- a/common/libsndfile/libsndfile.spec
+++ /dev/null
@@ -1,60 +1,0 @@
-
-%define name libsndfile
-%define version 0.0.27
-%define release 1
-%define prefix /usr
-
-Summary: A library to handle various audio file formats.
-Name: %{name}
-Version: %{version}
-Release: %{release}
-Prefix: %{prefix}
-Copyright: LGPL
-Group: Libraries/Sound
-Source: http://www.zip.com.au/~erikd/libsndfile/libsndfile-%{version}.tar.gz
-URL: http://www.zip.com.au/~erikd/libsndfile/
-BuildRoot: /var/tmp/%{name}-%{version}
-
-%description
-libsndfile is a C library for reading and writing sound files such as
-AIFF, AU and WAV files through one standard interface. It can currently
-read/write 8, 16, 24 and 32-bit PCM files as well as 32-bit floating
-point WAV files and a number of compressed formats.
-
-%package devel
-Summary: Libraries, includes, etc to develop libsndfile applications
-Group: Libraries
-
-%description devel
-Libraries, include files, etc you can use to develop libsndfile applications.
-
-%prep
-%setup
-
-%build
-./configure --prefix=%{prefix}
-make
-
-%install
-if [ -d $RPM_BUILD_ROOT ]; then rm -rf $RPM_BUILD_ROOT; fi
-mkdir -p $RPM_BUILD_ROOT
-make prefix=$RPM_BUILD_ROOT%{prefix} install
-
-%clean
-if [ -d $RPM_BUILD_ROOT ]; then rm -rf $RPM_BUILD_ROOT; fi
-
-%files
-%defattr(-,root,root)
-%doc AUTHORS COPYING ChangeLog INSTALL NEWS README TODO doc
-%prefix/lib/libsndfile.so.*
-
-%files devel
-%defattr(-,root,root)
-%{prefix}/lib/libsndfile.a
-%{prefix}/lib/libsndfile.la
-%{prefix}/lib/libsndfile.so
-%{prefix}/include/sndfile.h
-
-%changelog
-* Thu Jul 6 2000 Josh Green <jgreen@users.sourceforge.net>
-- Created libsndfile.spec.in
--- a/common/libsndfile/libsndfile.spec.in
+++ /dev/null
@@ -1,60 +1,0 @@
-
-%define name @PACKAGE@
-%define version @VERSION@
-%define release 1
-%define prefix /usr
-
-Summary: A library to handle various audio file formats.
-Name: %{name}
-Version: %{version}
-Release: %{release}
-Prefix: %{prefix}
-Copyright: LGPL
-Group: Libraries/Sound
-Source: http://www.zip.com.au/~erikd/libsndfile/libsndfile-%{version}.tar.gz
-URL: http://www.zip.com.au/~erikd/libsndfile/
-BuildRoot: /var/tmp/%{name}-%{version}
-
-%description
-libsndfile is a C library for reading and writing sound files such as
-AIFF, AU and WAV files through one standard interface. It can currently
-read/write 8, 16, 24 and 32-bit PCM files as well as 32-bit floating
-point WAV files and a number of compressed formats.
-
-%package devel
-Summary: Libraries, includes, etc to develop libsndfile applications
-Group: Libraries
-
-%description devel
-Libraries, include files, etc you can use to develop libsndfile applications.
-
-%prep
-%setup
-
-%build
-./configure --prefix=%{prefix}
-make
-
-%install
-if [ -d $RPM_BUILD_ROOT ]; then rm -rf $RPM_BUILD_ROOT; fi
-mkdir -p $RPM_BUILD_ROOT
-make prefix=$RPM_BUILD_ROOT%{prefix} install
-
-%clean
-if [ -d $RPM_BUILD_ROOT ]; then rm -rf $RPM_BUILD_ROOT; fi
-
-%files
-%defattr(-,root,root)
-%doc AUTHORS COPYING ChangeLog INSTALL NEWS README TODO doc
-%prefix/lib/libsndfile.so.*
-
-%files devel
-%defattr(-,root,root)
-%{prefix}/lib/libsndfile.a
-%{prefix}/lib/libsndfile.la
-%{prefix}/lib/libsndfile.so
-%{prefix}/include/sndfile.h
-
-%changelog
-* Thu Jul 6 2000 Josh Green <jgreen@users.sourceforge.net>
-- Created libsndfile.spec.in
--- a/common/libsndfile/ltconfig
+++ /dev/null
@@ -1,3114 +1,0 @@
-#! /bin/sh
-
-# ltconfig - Create a system-specific libtool.
-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 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
-# General Public License for more details.
-#
-# You should have received a copy of the GNU 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.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A lot of this script is taken from autoconf-2.10.
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-echo=echo
-if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
-elif test "X$1" = X--fallback-echo; then
- # Avoid inline document here, it may be left over
- :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
-else
- # Restart under the correct shell.
- exec "$SHELL" "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
- # used as fallback echo
- shift
- cat <<EOF
-$*
-EOF
- exit 0
-fi
-
-# Find the correct PATH separator. Usually this is `:', but
-# DJGPP uses `;' like DOS.
-if test "X${PATH_SEPARATOR+set}" != Xset; then
- UNAME=${UNAME-`uname 2>/dev/null`}
- case X$UNAME in
- *-DOS) PATH_SEPARATOR=';' ;;
- *) PATH_SEPARATOR=':' ;;
- esac
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-if test "X${echo_test_string+set}" != Xset; then
- # find a string as large as possible, as long as the shell can cope with it
- for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
- # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
- if (echo_test_string="`eval $cmd`") 2>/dev/null &&
- echo_test_string="`eval $cmd`" &&
- (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then
- break
- fi
- done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" != 'X\t' ||
- test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then
- # The Solaris, AIX, and Digital Unix default echo programs unquote
- # backslashes. This makes it impossible to quote backslashes using
- # echo "$something" | sed 's/\\/\\\\/g'
- #
- # So, first we look for a working echo in the user's PATH.
-
- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
- for dir in $PATH /usr/ucb; do
- if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
- test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
- test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
- echo="$dir/echo"
- break
- fi
- done
- IFS="$save_ifs"
-
- if test "X$echo" = Xecho; then
- # We didn't find a better echo, so look for alternatives.
- if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
- test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
- # This shell has a builtin print -r that does the trick.
- echo='print -r'
- elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
- test "X$CONFIG_SHELL" != X/bin/ksh; then
- # If we have ksh, try running ltconfig again with it.
- ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}"
- export ORIGINAL_CONFIG_SHELL
- CONFIG_SHELL=/bin/ksh
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
- else
- # Try using printf.
- echo='printf "%s\n"'
- if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
- test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
- # Cool, printf works
- :
- elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
- test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
- CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL"
- export CONFIG_SHELL
- SHELL="$CONFIG_SHELL"
- export SHELL
- echo="$CONFIG_SHELL $0 --fallback-echo"
- elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
- test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
- echo="$CONFIG_SHELL $0 --fallback-echo"
- else
- # maybe with a smaller string...
- prev=:
-
- for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
- if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then
- break
- fi
- prev="$cmd"
- done
-
- if test "$prev" != 'sed 50q "$0"'; then
- echo_test_string=`eval $prev`
- export echo_test_string
- exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"}
- else
- # Oops. We lost completely, so just stick with echo.
- echo=echo
- fi
- fi
- fi
- fi
-fi
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# The name of this program.
-progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
-
-# Constants:
-PROGRAM=ltconfig
-PACKAGE=libtool
-VERSION=1.3.5
-TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)"
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-rm="rm -f"
-
-help="Try \`$progname --help' for more information."
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-enable_shared=yes
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-enable_static=yes
-enable_fast_install=yes
-enable_dlopen=unknown
-enable_win32_dll=no
-ltmain=
-silent=
-srcdir=
-ac_config_guess=
-ac_config_sub=
-host=
-nonopt=
-ofile="$default_ofile"
-verify_host=yes
-with_gcc=no
-with_gnu_ld=no
-need_locks=yes
-ac_ext=c
-objext=o
-libext=a
-exeext=
-cache_file=
-
-old_AR="$AR"
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-old_CPPFLAGS="$CPPFLAGS"
-old_LDFLAGS="$LDFLAGS"
-old_LD="$LD"
-old_LN_S="$LN_S"
-old_LIBS="$LIBS"
-old_NM="$NM"
-old_RANLIB="$RANLIB"
-old_DLLTOOL="$DLLTOOL"
-old_OBJDUMP="$OBJDUMP"
-old_AS="$AS"
-
-# Parse the command line options.
-args=
-prev=
-for option
-do
- case "$option" in
- -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) optarg= ;;
- esac
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- eval "$prev=\$option"
- prev=
- continue
- fi
-
- case "$option" in
- --help) cat <<EOM
-Usage: $progname [OPTION]... [HOST [LTMAIN]]
-
-Generate a system-specific libtool script.
-
- --debug enable verbose shell tracing
- --disable-shared do not build shared libraries
- --disable-static do not build static libraries
- --disable-fast-install do not optimize for fast installation
- --enable-dlopen enable dlopen support
- --enable-win32-dll enable building dlls on win32 hosts
- --help display this help and exit
- --no-verify do not verify that HOST is a valid host type
--o, --output=FILE specify the output file [default=$default_ofile]
- --quiet same as \`--silent'
- --silent do not print informational messages
- --srcdir=DIR find \`config.guess' in DIR
- --version output version information and exit
- --with-gcc assume that the GNU C compiler will be used
- --with-gnu-ld assume that the C compiler uses the GNU linker
- --disable-lock disable file locking
- --cache-file=FILE configure cache file
-
-LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program
-that provides basic libtool functionality.
-
-HOST is the canonical host system name [default=guessed].
-EOM
- exit 0
- ;;
-
- --debug)
- echo "$progname: enabling shell trace mode"
- set -x
- ;;
-
- --disable-shared) enable_shared=no ;;
-
- --disable-static) enable_static=no ;;
-
- --disable-fast-install) enable_fast_install=no ;;
-
- --enable-dlopen) enable_dlopen=yes ;;
-
- --enable-win32-dll) enable_win32_dll=yes ;;
-
- --quiet | --silent) silent=yes ;;
-
- --srcdir) prev=srcdir ;;
- --srcdir=*) srcdir="$optarg" ;;
-
- --no-verify) verify_host=no ;;
-
- --output | -o) prev=ofile ;;
- --output=*) ofile="$optarg" ;;
-
- --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;;
-
- --with-gcc) with_gcc=yes ;;
- --with-gnu-ld) with_gnu_ld=yes ;;
-
- --disable-lock) need_locks=no ;;
-
- --cache-file=*) cache_file="$optarg" ;;
-
- -*)
- echo "$progname: unrecognized option \`$option'" 1>&2
- echo "$help" 1>&2
- exit 1
- ;;
-
- *)
- if test -z "$ltmain"; then
- ltmain="$option"
- elif test -z "$host"; then
-# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
-# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then
-# echo "$progname: warning \`$option' is not a valid host type" 1>&2
-# fi
- host="$option"
- else
- echo "$progname: too many arguments" 1>&2
- echo "$help" 1>&2
- exit 1
- fi ;;
- esac
-done
-
-if test -z "$ltmain"; then
- echo "$progname: you must specify a LTMAIN file" 1>&2
- echo "$help" 1>&2
- exit 1
-fi
-
-if test ! -f "$ltmain"; then
- echo "$progname: \`$ltmain' does not exist" 1>&2
- echo "$help" 1>&2
- exit 1
-fi
-
-# Quote any args containing shell metacharacters.
-ltconfig_args=
-for arg
-do
- case "$arg" in
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ltconfig_args="$ltconfig_args '$arg'" ;;
- *) ltconfig_args="$ltconfig_args $arg" ;;
- esac
-done
-
-# A relevant subset of AC_INIT.
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 5 compiler messages saved in config.log
-# 6 checking for... messages and results
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>>./config.log
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi
-if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi
-
-if test -n "$cache_file" && test -r "$cache_file"; then
- echo "loading cache $cache_file within ltconfig"
- . $cache_file
-fi
-
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-if test -z "$srcdir"; then
- # Assume the source directory is the same one as the path to LTMAIN.
- srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'`
- test "$srcdir" = "$ltmain" && srcdir=.
-fi
-
-trap "$rm conftest*; exit 1" 1 2 15
-if test "$verify_host" = yes; then
- # Check for config.guess and config.sub.
- ac_aux_dir=
- for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/config.guess; then
- ac_aux_dir=$ac_dir
- break
- fi
- done
- if test -z "$ac_aux_dir"; then
- echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2
- echo "$help" 1>&2
- exit 1
- fi
- ac_config_guess=$ac_aux_dir/config.guess
- ac_config_sub=$ac_aux_dir/config.sub
-
- # Make sure we can run config.sub.
- if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then :
- else
- echo "$progname: cannot run $ac_config_sub" 1>&2
- echo "$help" 1>&2
- exit 1
- fi
-
- echo $ac_n "checking host system type""... $ac_c" 1>&6
-
- host_alias=$host
- case "$host_alias" in
- "")
- if host_alias=`$SHELL $ac_config_guess`; then :
- else
- echo "$progname: cannot guess host type; you must specify one" 1>&2
- echo "$help" 1>&2
- exit 1
- fi ;;
- esac
- host=`$SHELL $ac_config_sub $host_alias`
- echo "$ac_t$host" 1>&6
-
- # Make sure the host verified.
- test -z "$host" && exit 1
-
-elif test -z "$host"; then
- echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
- echo "$help" 1>&2
- exit 1
-else
- host_alias=$host
-fi
-
-# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
-case "$host_os" in
-linux-gnu*) ;;
-linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
-esac
-
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-case "$host_os" in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR cru $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-# Set a sane default for `AR'.
-test -z "$AR" && AR=ar
-
-# Set a sane default for `OBJDUMP'.
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-# If RANLIB is not set, then run the test.
-if test "${RANLIB+set}" != "set"; then
- result=no
-
- echo $ac_n "checking for ranlib... $ac_c" 1>&6
- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
- for dir in $PATH; do
- test -z "$dir" && dir=.
- if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then
- RANLIB="ranlib"
- result="ranlib"
- break
- fi
- done
- IFS="$save_ifs"
-
- echo "$ac_t$result" 1>&6
-fi
-
-if test -n "$RANLIB"; then
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
- old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-fi
-
-# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin.
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$AS" && AS=as
-
-# Check to see if we are using GCC.
-if test "$with_gcc" != yes || test -z "$CC"; then
- # If CC is not set, then try to find GCC or a usable CC.
- if test -z "$CC"; then
- echo $ac_n "checking for gcc... $ac_c" 1>&6
- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
- for dir in $PATH; do
- test -z "$dir" && dir=.
- if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then
- CC="gcc"
- break
- fi
- done
- IFS="$save_ifs"
-
- if test -n "$CC"; then
- echo "$ac_t$CC" 1>&6
- else
- echo "$ac_t"no 1>&6
- fi
- fi
-
- # Not "gcc", so try "cc", rejecting "/usr/ucb/cc".
- if test -z "$CC"; then
- echo $ac_n "checking for cc... $ac_c" 1>&6
- IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
- cc_rejected=no
- for dir in $PATH; do
- test -z "$dir" && dir=.
- if test -f $dir/cc || test -f $dir/cc$ac_exeext; then
- if test "$dir/cc" = "/usr/ucb/cc"; then
- cc_rejected=yes
- continue
- fi
- CC="cc"
- break
- fi
- done
- IFS="$save_ifs"
- if test $cc_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $CC
- shift
- if test $# -gt 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same name, so the bogon will be chosen
- # first if we set CC to just the name; use the full file name.
- shift
- set dummy "$dir/cc" "$@"
- shift
- CC="$@"
- fi
- fi
-
- if test -n "$CC"; then
- echo "$ac_t$CC" 1>&6
- else
- echo "$ac_t"no 1>&6
- fi
-
- if test -z "$CC"; then
- echo "$progname: error: no acceptable cc found in \$PATH" 1>&2
- exit 1
- fi
- fi
-
- # Now see if the compiler is really GCC.
- with_gcc=no
- echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
- echo "$progname:581: checking whether we are using GNU C" >&5
-
- $rm conftest.c
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
- if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- with_gcc=yes
- fi
- $rm conftest.c
- echo "$ac_t$with_gcc" 1>&6
-fi
-
-# Allow CC to be a program name with arguments.
-set dummy $CC
-compiler="$2"
-
-echo $ac_n "checking for object suffix... $ac_c" 1>&6
-$rm conftest*
-echo 'int i = 1;' > conftest.c
-echo "$progname:603: checking for object suffix" >& 5
-if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then
- # Append any warnings to the config.log.
- cat conftest.err 1>&5
-
- for ac_file in conftest.*; do
- case $ac_file in
- *.c) ;;
- *) objext=`echo $ac_file | sed -e s/conftest.//` ;;
- esac
- done
-else
- cat conftest.err 1>&5
- echo "$progname: failed program was:" >&5
- cat conftest.c >&5
-fi
-$rm conftest*
-echo "$ac_t$objext" 1>&6
-
-echo $ac_n "checking for executable suffix... $ac_c" 1>&6
-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_cv_exeext="no"
- $rm conftest*
- echo 'main () { return 0; }' > conftest.c
- echo "$progname:629: checking for executable suffix" >& 5
- if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then
- # Append any warnings to the config.log.
- cat conftest.err 1>&5
-
- for ac_file in conftest.*; do
- case $ac_file in
- *.c | *.err | *.$objext ) ;;
- *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;;
- esac
- done
- else
- cat conftest.err 1>&5
- echo "$progname: failed program was:" >&5
- cat conftest.c >&5
- fi
- $rm conftest*
-fi
-if test "X$ac_cv_exeext" = Xno; then
- exeext=""
-else
- exeext="$ac_cv_exeext"
-fi
-echo "$ac_t$ac_cv_exeext" 1>&6
-
-echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
-pic_flag=
-special_shlib_compile_flags=
-wl=
-link_static_flag=
-no_builtin_flag=
-
-if test "$with_gcc" = yes; then
- wl='-Wl,'
- link_static_flag='-static'
-
- case "$host_os" in
- beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- aix*)
- # Below there is a dirty hack to force normal static linking with -ldl
- # The problem is because libdl dynamically linked with both libc and
- # libC (AIX C++ library), which obviously doesn't included in libraries
- # list by gcc. This cause undefined symbols with -static flags.
- # This hack allows C programs to be linked with "-static -ldl", but
- # we not sure about C++ programs.
- link_static_flag="$link_static_flag ${wl}-lC"
- ;;
- cygwin* | mingw* | os2*)
- # We can build DLLs from non-PIC.
- ;;
- amigaos*)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- pic_flag='-m68020 -resident32 -malways-restore-a4'
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- pic_flag=-Kconform_pic
- fi
- ;;
- *)
- pic_flag='-fPIC'
- ;;
- esac
-else
- # PORTME Check for PIC flags for the system compiler.
- case "$host_os" in
- aix3* | aix4*)
- # All AIX code is PIC.
- link_static_flag='-bnso -bI:/lib/syscalls.exp'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- # Is there a better link_static_flag that works with the bundled CC?
- wl='-Wl,'
- link_static_flag="${wl}-a ${wl}archive"
- pic_flag='+Z'
- ;;
-
- irix5* | irix6*)
- wl='-Wl,'
- link_static_flag='-non_shared'
- # PIC (with -KPIC) is the default.
- ;;
-
- cygwin* | mingw* | os2*)
- # We can build DLLs from non-PIC.
- ;;
-
- osf3* | osf4* | osf5*)
- # All OSF/1 code is PIC.
- wl='-Wl,'
- link_static_flag='-non_shared'
- ;;
-
- sco3.2v5*)
- pic_flag='-Kpic'
- link_static_flag='-dn'
- special_shlib_compile_flags='-belf'
- ;;
-
- solaris*)
- pic_flag='-KPIC'
- link_static_flag='-Bstatic'
- wl='-Wl,'
- ;;
-
- sunos4*)
- pic_flag='-PIC'
- link_static_flag='-Bstatic'
- wl='-Qoption ld '
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- pic_flag='-KPIC'
- link_static_flag='-Bstatic'
- wl='-Wl,'
- ;;
-
- uts4*)
- pic_flag='-pic'
- link_static_flag='-Bstatic'
- ;;
- sysv4*MP*)
- if test -d /usr/nec ;then
- pic_flag='-Kconform_pic'
- link_static_flag='-Bstatic'
- fi
- ;;
- *)
- can_build_shared=no
- ;;
- esac
-fi
-
-if test -n "$pic_flag"; then
- echo "$ac_t$pic_flag" 1>&6
-
- # Check to make sure the pic_flag actually works.
- echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6
- $rm conftest*
- echo "int some_variable = 0;" > conftest.c
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $pic_flag -DPIC"
- echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5
- if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
- # Append any warnings to the config.log.
- cat conftest.err 1>&5
-
- case "$host_os" in
- hpux9* | hpux10* | hpux11*)
- # On HP-UX, both CC and GCC only warn that PIC is supported... then they
- # create non-PIC objects. So, if there were any warnings, we assume that
- # PIC is not supported.
- if test -s conftest.err; then
- echo "$ac_t"no 1>&6
- can_build_shared=no
- pic_flag=
- else
- echo "$ac_t"yes 1>&6
- pic_flag=" $pic_flag"
- fi
- ;;
- *)
- echo "$ac_t"yes 1>&6
- pic_flag=" $pic_flag"
- ;;
- esac
- else
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- can_build_shared=no
- pic_flag=
- echo "$ac_t"no 1>&6
- fi
- CFLAGS="$save_CFLAGS"
- $rm conftest*
-else
- echo "$ac_t"none 1>&6
-fi
-
-# Check to see if options -o and -c are simultaneously supported by compiler
-echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6
-$rm -r conftest 2>/dev/null
-mkdir conftest
-cd conftest
-$rm conftest*
-echo "int some_variable = 0;" > conftest.c
-mkdir out
-# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
-# that will create temporary files in the current directory regardless of
-# the output directory. Thus, making CWD read-only will cause this test
-# to fail, enabling locking or at least warning the user not to do parallel
-# builds.
-chmod -w .
-save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -o out/conftest2.o"
-echo "$progname:829: checking if $compiler supports -c -o file.o" >&5
-if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then
-
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s out/conftest.err; then
- echo "$ac_t"no 1>&6
- compiler_c_o=no
- else
- echo "$ac_t"yes 1>&6
- compiler_c_o=yes
- fi
-else
- # Append any errors to the config.log.
- cat out/conftest.err 1>&5
- compiler_c_o=no
- echo "$ac_t"no 1>&6
-fi
-CFLAGS="$save_CFLAGS"
-chmod u+w .
-$rm conftest* out/*
-rmdir out
-cd ..
-rmdir conftest
-$rm -r conftest 2>/dev/null
-
-if test x"$compiler_c_o" = x"yes"; then
- # Check to see if we can write to a .lo
- echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6
- $rm conftest*
- echo "int some_variable = 0;" > conftest.c
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -c -o conftest.lo"
- echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5
-if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then
-
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- echo "$ac_t"no 1>&6
- compiler_o_lo=no
- else
- echo "$ac_t"yes 1>&6
- compiler_o_lo=yes
- fi
- else
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- compiler_o_lo=no
- echo "$ac_t"no 1>&6
- fi
- CFLAGS="$save_CFLAGS"
- $rm conftest*
-else
- compiler_o_lo=no
-fi
-
-# Check to see if we can do hard links to lock some files if needed
-hard_links="nottested"
-if test "$compiler_c_o" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6
- hard_links=yes
- $rm conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- echo "$ac_t$hard_links" 1>&6
- $rm conftest*
- if test "$hard_links" = no; then
- echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-if test "$with_gcc" = yes; then
- # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
- echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6
- $rm conftest*
- echo "int some_variable = 0;" > conftest.c
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c"
- echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
- if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
-
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- echo "$ac_t"no 1>&6
- compiler_rtti_exceptions=no
- else
- echo "$ac_t"yes 1>&6
- compiler_rtti_exceptions=yes
- fi
- else
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- compiler_rtti_exceptions=no
- echo "$ac_t"no 1>&6
- fi
- CFLAGS="$save_CFLAGS"
- $rm conftest*
-
- if test "$compiler_rtti_exceptions" = "yes"; then
- no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
- else
- no_builtin_flag=' -fno-builtin'
- fi
-
-fi
-
-# Check for any special shared library compilation flags.
-if test -n "$special_shlib_compile_flags"; then
- echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2
- if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then :
- else
- echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2
- can_build_shared=no
- fi
-fi
-
-echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6
-$rm conftest*
-echo 'main(){return(0);}' > conftest.c
-save_LDFLAGS="$LDFLAGS"
-LDFLAGS="$LDFLAGS $link_static_flag"
-echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5
-if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- echo "$ac_t$link_static_flag" 1>&6
-else
- echo "$ac_t"none 1>&6
- link_static_flag=
-fi
-LDFLAGS="$save_LDFLAGS"
-$rm conftest*
-
-if test -z "$LN_S"; then
- # Check to see if we can use ln -s, or we need hard links.
- echo $ac_n "checking whether ln -s works... $ac_c" 1>&6
- $rm conftest.dat
- if ln -s X conftest.dat 2>/dev/null; then
- $rm conftest.dat
- LN_S="ln -s"
- else
- LN_S=ln
- fi
- if test "$LN_S" = "ln -s"; then
- echo "$ac_t"yes 1>&6
- else
- echo "$ac_t"no 1>&6
- fi
-fi
-
-# Make sure LD is an absolute path.
-if test -z "$LD"; then
- ac_prog=ld
- if test "$with_gcc" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
- echo "$progname:991: checking for ld used by GCC" >&5
- ac_prog=`($CC -print-prog-name=ld) 2>&5`
- case "$ac_prog" in
- # Accept absolute paths.
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we are not using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
- elif test "$with_gnu_ld" = yes; then
- echo $ac_n "checking for GNU ld... $ac_c" 1>&6
- echo "$progname:1015: checking for GNU ld" >&5
- else
- echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
- echo "$progname:1018: checking for non-GNU ld" >&5
- fi
-
- if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- fi
-
- if test -n "$LD"; then
- echo "$ac_t$LD" 1>&6
- else
- echo "$ac_t"no 1>&6
- fi
-
- if test -z "$LD"; then
- echo "$progname: error: no acceptable ld found in \$PATH" 1>&2
- exit 1
- fi
-fi
-
-# Check to see if it really is or is not GNU ld.
-echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6
-# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-echo "$ac_t$with_gnu_ld" 1>&6
-
-# See if the linker supports building shared libraries.
-echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6
-
-allow_undefined_flag=
-no_undefined_flag=
-need_lib_prefix=unknown
-need_version=unknown
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-archive_cmds=
-archive_expsym_cmds=
-old_archive_from_new_cmds=
-export_dynamic_flag_spec=
-whole_archive_flag_spec=
-thread_safe_flag_spec=
-hardcode_libdir_flag_spec=
-hardcode_libdir_separator=
-hardcode_direct=no
-hardcode_minus_L=no
-hardcode_shlibpath_var=unsupported
-runpath_var=
-always_export_symbols=no
-export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
-# include_expsyms should be a list of space-separated symbols to be *always*
-# included in the symbol list
-include_expsyms=
-# exclude_expsyms can be an egrep regular expression of symbols to exclude
-# it will be wrapped by ` (' and `)$', so one must not match beginning or
-# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-# as well as any symbol that contains `d'.
-exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
-# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-# platforms (ab)use it in PIC code, but their linkers get confused if
-# the symbol is explicitly referenced. Since portable code cannot
-# rely on this symbol name, it's probably fine to never include it in
-# preloaded symbol tables.
-
-case "$host_os" in
-cygwin* | mingw*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$with_gcc" != yes; then
- with_gnu_ld=no
- fi
- ;;
-
-esac
-
-ld_shlibs=yes
-if test "$with_gnu_ld" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # See if GNU ld supports shared libraries.
- case "$host_os" in
- aix3* | aix4*)
- # On AIX, the GNU linker is very broken
- ld_shlibs=no
- cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
- ;;
-
- amigaos*)
- archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
-
- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we can use
- # them.
- ld_shlibs=no
- ;;
-
- beos*)
- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- cygwin* | mingw*)
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- allow_undefined_flag=unsupported
- always_export_symbols=yes
-
- # Extract the symbol export list from an `--export-all' def file,
- # then regenerate the def file from the symbol export list, so that
- # the compiled dll only exports the symbol export list.
- # Be careful not to strip the DATA tag left by newer dlltools.
- export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
- test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
- $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~
- sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $objdir/$soname-def > $export_symbols'
-
- # If DATA tags from a recent dlltool are present, honour them!
- archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~
- _lt_hint=1;
- cat $export_symbols | while read symbol; do
- set dummy \$symbol;
- case \$# in
- 2) echo " \$2 @ \$_lt_hint ; " >> $objdir/$soname-def;;
- *) echo " \$2 @ \$_lt_hint \$3 ; " >> $objdir/$soname-def;;
- esac;
- _lt_hint=`expr 1 + \$_lt_hint`;
- done~
- test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
- test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
- $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
- $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
- $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
- $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
- $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
-
- old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib'
- # can we support soname and/or expsyms with a.out? -oliva
- fi
- ;;
-
- solaris* | sysv5*)
- if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
- elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- *)
- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs" = yes; then
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
- export_dynamic_flag_spec='${wl}--export-dynamic'
- case $host_os in
- cygwin* | mingw*)
- # dlltool doesn't understand --whole-archive et. al.
- whole_archive_flag_spec=
- ;;
- *)
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- ;;
- esac
- fi
-else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case "$host_os" in
- aix3*)
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$with_gcc" = yes && test -z "$link_static_flag"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
-
- aix4*)
- hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib'
- hardcode_libdir_separator=':'
- if test "$with_gcc" = yes; then
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" && \
- strings "$collect2name" | grep resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- hardcode_direct=yes
- else
- # We have old collect2
- hardcode_direct=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- shared_flag='-shared'
- else
- shared_flag='${wl}-bM:SRE'
- hardcode_direct=yes
- fi
- allow_undefined_flag=' ${wl}-berok'
- archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}'
- archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}'
- case "$host_os" in aix4.[01]|aix4.[01].*)
- # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on
- always_export_symbols=yes ;;
- esac
- ;;
-
- amigaos*)
- archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # see comment about different semantics on the GNU ld section
- ld_shlibs=no
- ;;
-
- cygwin* | mingw*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_from_new_cmds='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib /OUT:$oldlib$oldobjs'
- fix_srcfile_path='`cygpath -w $srcfile`'
- ;;
-
- freebsd1*)
- ld_shlibs=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd*)
- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- hpux9* | hpux10* | hpux11*)
- case "$host_os" in
- hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;;
- *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;;
- esac
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_minus_L=yes # Not in the search PATH, but as the default
- # location of the library.
- export_dynamic_flag_spec='${wl}-E'
- ;;
-
- irix5* | irix6*)
- if test "$with_gcc" = yes; then
- archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
- else
- archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
- fi
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF
- fi
- hardcode_libdir_flag_spec='${wl}-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- openbsd*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def'
- old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$with_gcc" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
- fi
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
-
- osf4* | osf5*) # As osf3* with the addition of the -msym flag
- if test "$with_gcc" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
- fi
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
- rhapsody*)
- archive_cmds='$CC -bundle -undefined suppress -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flags_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- sco3.2v5*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ;;
-
- solaris*)
- no_undefined_flag=' -z text'
- # $CC -shared without GNU ld will not create a library from C++
- # object files and a static libstdc++, better avoid it by now
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
- archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case "$host_os" in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *) # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- sysv4)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $linkopts'
- else
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- fi
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
-
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
-
- sysv5*)
- no_undefined_flag=' -z text'
- # $CC -shared without GNU ld will not create a library from C++
- # object files and a static libstdc++, better avoid it by now
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
- archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
- hardcode_libdir_flag_spec=
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
- ;;
-
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
-
- sysv4.2uw2*)
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts'
- hardcode_direct=yes
- hardcode_minus_L=no
- hardcode_shlibpath_var=no
- hardcode_runpath_var=yes
- runpath_var=LD_RUN_PATH
- ;;
-
- unixware7*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- *)
- ld_shlibs=no
- ;;
- esac
-fi
-echo "$ac_t$ld_shlibs" 1>&6
-test "$ld_shlibs" = no && can_build_shared=no
-
-if test -z "$NM"; then
- echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
- case "$NM" in
- [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path.
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
- for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- NM="$ac_dir/nm -B"
- break
- elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- NM="$ac_dir/nm -p"
- break
- else
- NM=${NM="$ac_dir/nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$NM" && NM=nm
- ;;
- esac
- echo "$ac_t$NM" 1>&6
-fi
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
-
-# Define system-specific variables.
-case "$host_os" in
-aix*)
- symcode='[BCDT]'
- ;;
-cygwin* | mingw*)
- symcode='[ABCDGISTW]'
- ;;
-hpux*) # Its linker distinguishes data from code symbols
- global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
- ;;
-irix*)
- symcode='[BCDEGRST]'
- ;;
-solaris*)
- symcode='[BDT]'
- ;;
-sysv4)
- symcode='[DFNSTU]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
- symcode='[ABCDGISTW]'
-fi
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Write the raw and C identifiers.
- global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
- $rm conftest*
- cat > conftest.c <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
- echo "$progname:1653: checking if global_symbol_pipe works" >&5
- if { (eval echo $progname:1654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { echo "$progname:1657: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
-
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if egrep ' nm_test_var$' "$nlist" >/dev/null; then
- if egrep ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<EOF > conftest.c
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
- # Now generate the symbol file.
- eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c'
-
- cat <<EOF >> conftest.c
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{
-EOF
- sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c
- cat <<\EOF >> conftest.c
- {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
- # Now try linking the two files.
- mv conftest.$objext conftstm.$objext
- save_LIBS="$LIBS"
- save_CFLAGS="$CFLAGS"
- LIBS="conftstm.$objext"
- CFLAGS="$CFLAGS$no_builtin_flag"
- if { (eval echo $progname:1709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
- pipe_works=yes
- else
- echo "$progname: failed program was:" >&5
- cat conftest.c >&5
- fi
- LIBS="$save_LIBS"
- else
- echo "cannot find nm_test_func in $nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&5
- fi
- else
- echo "cannot run $global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.c >&5
- fi
- $rm conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- global_symbol_pipe=
- fi
-done
-if test "$pipe_works" = yes; then
- echo "${ac_t}ok" 1>&6
-else
- echo "${ac_t}failed" 1>&6
-fi
-
-if test -z "$global_symbol_pipe"; then
- global_symbol_to_cdecl=
-fi
-
-# Check hardcoding attributes.
-echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" || \
- test -n "$runpath_var"; then
-
- # We can hardcode non-existant directories.
- if test "$hardcode_direct" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$hardcode_shlibpath_var" != no &&
- test "$hardcode_minus_L" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action=unsupported
-fi
-echo "$ac_t$hardcode_action" 1>&6
-
-
-reload_flag=
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6
-# PORTME Some linkers may need a different reload flag.
-reload_flag='-r'
-echo "$ac_t$reload_flag" 1>&6
-test -n "$reload_flag" && reload_flag=" $reload_flag"
-
-# PORTME Fill in your ld.so characteristics
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-file_magic_cmd=
-file_magic_test_file=
-deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [regex]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given egrep regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
-case "$host_os" in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}.so$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}.so$major'
- ;;
-
-aix4*)
- version_type=linux
- # AIX has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- # We preserve .a as extension for shared libraries though AIX4.2
- # and later linker supports .so
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a'
- shlibpath_var=LIBPATH
- deplibs_check_method=pass_all
- ;;
-
-amigaos*)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
- ;;
-
-beos*)
- library_names_spec='${libname}.so'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- deplibs_check_method=pass_all
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
-bsdi4*)
- version_type=linux
- need_version=no
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- soname_spec='${libname}${release}.so$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=/shlib/libc.so
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- export_dynamic_flag_spec=-rdynamic
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw*)
- version_type=windows
- need_version=no
- need_lib_prefix=no
- if test "$with_gcc" = yes; then
- library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a'
- else
- library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
- fi
- dynamic_linker='Win32 ld.exe'
- deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- file_magic_cmd='${OBJDUMP} -f'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
-freebsd1*)
- dynamic_linker=no
- ;;
-
-freebsd*)
- objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
- version_type=freebsd-$objformat
- case "$version_type" in
- freebsd-elf*)
- deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=`echo /usr/lib/libc.so*`
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- deplibs_check_method=unknown
- library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case "$host_os" in
- freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- ;;
- *) # from 3.2 on
- shlibpath_overrides_runpath=no
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
- soname_spec='${libname}${release}.so$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- dynamic_linker="$host_os dld.sl"
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
- soname_spec='${libname}${release}.sl$major'
- # HP-UX runs *really* slowly unless shared libraries are mode 555.
- postinstall_cmds='chmod 555 $lib'
- case "$host_os" in
- hpux10.20*)
- # TODO: Does this work for hpux-11 too?
- deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-irix5* | irix6*)
- version_type=irix
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}.so.$major'
- library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so'
- case "$host_os" in
- irix5*)
- libsuff= shlibsuff=
- # this will be overridden with pass_all, but let us keep it just in case
- deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
- ;;
- *)
- case "$LD" in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=`echo /lib${libsuff}/libc.so*`
- deplibs_check_method='pass_all'
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
- dynamic_linker=no
- ;;
-
-# This must be Linux ELF.
-linux-gnu*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- soname_spec='${libname}${release}.so$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- deplibs_check_method=pass_all
-
- if test -f /lib/ld.so.1; then
- dynamic_linker='GNU ld.so'
- else
- # Only the GNU ld.so supports shared libraries on MkLinux.
- case "$host_cpu" in
- powerpc*) dynamic_linker=no ;;
- *) dynamic_linker='Linux ld.so' ;;
- esac
- fi
- ;;
-
-netbsd*)
- version_type=sunos
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
- soname_spec='${libname}${release}.so$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-openbsd*)
- version_type=sunos
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- need_version=no
- fi
- library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-os2*)
- libname_spec='$name'
- need_lib_prefix=no
- library_names_spec='$libname.dll $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_version=no
- soname_spec='${libname}${release}.so'
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
- shlibpath_var=LD_LIBRARY_PATH
- # this will be overridden with pass_all, but let us keep it just in case
- deplibs_check_method='file_magic COFF format alpha shared library'
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=/shlib/libc.so
- deplibs_check_method='pass_all'
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rhapsody*)
- version_type=sunos
- library_names_spec='${libname}.so'
- soname_spec='${libname}.so'
- shlibpath_var=DYLD_LIBRARY_PATH
- deplibs_check_method=pass_all
- ;;
-
-sco3.2v5*)
- version_type=osf
- soname_spec='${libname}${release}.so$major'
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-solaris*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- soname_spec='${libname}${release}.so$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib"
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=/lib/libc.so
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- version_type=linux
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- soname_spec='${libname}${release}.so$major'
- shlibpath_var=LD_LIBRARY_PATH
- case "$host_vendor" in
- sequent)
- file_magic_cmd='/bin/file'
- deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- ncr)
- deplibs_check_method='pass_all'
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- file_magic_cmd=/usr/bin/file
- file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- esac
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- soname_spec='${libname}${release}.so$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-dgux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
- soname_spec='${libname}${release}.so$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux
- library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
- soname_spec='$libname.so.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-echo "$ac_t$dynamic_linker" 1>&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-# Report the final consequences.
-echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6
-
-# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in
-# configure.in, otherwise build static only libraries.
-case "$host_os" in
-cygwin* | mingw* | os2*)
- if test x$can_build_shared = xyes; then
- test x$enable_win32_dll = xno && can_build_shared=no
- echo "checking if package supports dlls... $can_build_shared" 1>&6
- fi
-;;
-esac
-
-if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then
- case "$deplibs_check_method" in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
-fi
-
-echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
-aix4*)
- test "$enable_shared" = yes && enable_static=no
- ;;
-esac
-
-echo "$ac_t$enable_shared" 1>&6
-
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-
-echo "checking whether to build static libraries... $enable_static" 1>&6
-
-if test "$hardcode_action" = relink; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-echo $ac_n "checking for objdir... $ac_c" 1>&6
-rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-echo "$ac_t$objdir" 1>&6
-
-if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
-if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then
- lt_cv_dlopen=no lt_cv_dlopen_libs=
-echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "$progname:2248: checking for dlopen in -ldl" >&5
-ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2256 "ltconfig"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen();
-
-int main() {
-dlopen()
-; return 0; }
-EOF
-if { (eval echo $progname:2269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "$progname:2288: checking for dlopen" >&5
-if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2293 "ltconfig"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char dlopen(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_dlopen) || defined (__stub___dlopen)
-choke me
-#else
-dlopen();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo $progname:2318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_dlopen=yes"
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_dlopen=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- lt_cv_dlopen="dlopen"
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
-echo "$progname:2335: checking for dld_link in -ldld" >&5
-ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldld $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2343 "ltconfig"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link();
-
-int main() {
-dld_link()
-; return 0; }
-EOF
-if { (eval echo $progname:2356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for shl_load""... $ac_c" 1>&6
-echo "$progname:2375: checking for shl_load" >&5
-if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2380 "ltconfig"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char shl_load(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_shl_load) || defined (__stub___shl_load)
-choke me
-#else
-shl_load();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo $progname:2405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_shl_load=yes"
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_shl_load=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- lt_cv_dlopen="shl_load"
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "$progname:2423: checking for shl_load in -ldld" >&5
-ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldld $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2431 "ltconfig"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load();
-
-int main() {
-shl_load()
-; return 0; }
-EOF
-if { (eval echo $progname:2445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-fi
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- fi
-
- case "$lt_cv_dlopen" in
- dlopen)
-for ac_hdr in dlfcn.h; do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "$progname:2488: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2493 "ltconfig"
-#include <$ac_hdr>
-int fnord = 0;
-EOF
-ac_try="$ac_compile >/dev/null 2>conftest.out"
-{ (eval echo $progname:2498: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- if test "x$ac_cv_header_dlfcn_h" = xyes; then
- CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
- fi
- eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
-echo "$progname:2526: checking whether a program can dlopen itself" >&5
-if test "${lt_cv_dlopen_self+set}" = set; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- lt_cv_dlopen_self=cross
- else
- cat > conftest.c <<EOF
-#line 2534 "ltconfig"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LTDL_GLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LTDL_GLOBAL DL_GLOBAL
-# else
-# define LTDL_GLOBAL 0
-# endif
-#endif
-
-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LTDL_LAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LTDL_LAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LTDL_LAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LTDL_LAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LTDL_LAZY_OR_NOW DL_NOW
-# else
-# define LTDL_LAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-fnord() { int i=42;}
-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
- if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
- if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
-
-EOF
-if { (eval echo $progname:2580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- lt_cv_dlopen_self=yes
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- lt_cv_dlopen_self=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$lt_cv_dlopen_self" 1>&6
-
- if test "$lt_cv_dlopen_self" = yes; then
- LDFLAGS="$LDFLAGS $link_static_flag"
- echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
-echo "$progname:2599: checking whether a statically linked program can dlopen itself" >&5
-if test "${lt_cv_dlopen_self_static+set}" = set; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- lt_cv_dlopen_self_static=cross
- else
- cat > conftest.c <<EOF
-#line 2607 "ltconfig"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LTDL_GLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LTDL_GLOBAL DL_GLOBAL
-# else
-# define LTDL_GLOBAL 0
-# endif
-#endif
-
-/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LTDL_LAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LTDL_LAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LTDL_LAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LTDL_LAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LTDL_LAZY_OR_NOW DL_NOW
-# else
-# define LTDL_LAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-fnord() { int i=42;}
-main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
- if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
- if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
-
-EOF
-if { (eval echo $progname:2653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
-then
- lt_cv_dlopen_self_static=yes
-else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- lt_cv_dlopen_self_static=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
-fi
- ;;
- esac
-
- case "$lt_cv_dlopen_self" in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case "$lt_cv_dlopen_self_static" in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-
-# Copy echo and quote the copy, instead of the original, because it is
-# used later.
-ltecho="$echo"
-if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
- ltecho="$CONFIG_SHELL \$0 --fallback-echo"
-fi
-LTSHELL="$SHELL"
-
-LTCONFIG_VERSION="$VERSION"
-
-# Only quote variables if we're using ltmain.sh.
-case "$ltmain" in
-*.sh)
- # Now quote all the things that may contain metacharacters.
- for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \
- old_LD old_LDFLAGS old_LIBS \
- old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \
- AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \
- reload_flag reload_cmds wl \
- pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
- thread_safe_flag_spec whole_archive_flag_spec libname_spec \
- library_names_spec soname_spec \
- RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
- old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \
- file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \
- finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
- hardcode_libdir_flag_spec hardcode_libdir_separator \
- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
- compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
-
- case "$var" in
- reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
- old_postinstall_cmds | old_postuninstall_cmds | \
- export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
- postinstall_cmds | postuninstall_cmds | \
- finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
- # Double-quote double-evaled strings.
- eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
- ;;
- *)
- eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
- ;;
- esac
- done
-
- case "$ltecho" in
- *'\$0 --fallback-echo"')
- ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
- ;;
- esac
-
- trap "$rm \"$ofile\"; exit 1" 1 2 15
- echo "creating $ofile"
- $rm "$ofile"
- cat <<EOF > "$ofile"
-#! $SHELL
-
-# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
-#
-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 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
-# General Public License for more details.
-#
-# You should have received a copy of the GNU 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.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="sed -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-### BEGIN LIBTOOL CONFIG
-EOF
- cfgfile="$ofile"
- ;;
-
-*)
- # Double-quote the variables that need it (for aesthetics).
- for var in old_CC old_CFLAGS old_CPPFLAGS \
- old_LD old_LDFLAGS old_LIBS \
- old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do
- eval "$var=\\\"\$var\\\""
- done
-
- # Just create a config file.
- cfgfile="$ofile.cfg"
- trap "$rm \"$cfgfile\"; exit 1" 1 2 15
- echo "creating $cfgfile"
- $rm "$cfgfile"
- cat <<EOF > "$cfgfile"
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-EOF
- ;;
-esac
-
-cat <<EOF >> "$cfgfile"
-# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
-# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\
-# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\
-# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\
-# $0$ltconfig_args
-#
-# Compiler and other test output produced by $progname, useful for
-# debugging $progname, is in ./config.log if it exists.
-
-# The version of $progname that generated this script.
-LTCONFIG_VERSION=$LTCONFIG_VERSION
-
-# Shell to use when invoking shell scripts.
-SHELL=$LTSHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$ltecho
-
-# The archiver.
-AR=$AR
-
-# The default C compiler.
-CC=$CC
-
-# The linker used to build libraries.
-LD=$LD
-
-# Whether we need hard or soft links.
-LN_S=$LN_S
-
-# A BSD-compatible nm program.
-NM=$NM
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$reload_flag
-reload_cmds=$reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$wl
-
-# Object file suffix (normally "o").
-objext="$objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$pic_flag
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$compiler_c_o
-
-# Can we write directly to a .lo ?
-compiler_o_lo=$compiler_o_lo
-
-# Must we lock files when doing compilation ?
-need_locks=$need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$link_static_flag
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$no_builtin_flag
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$whole_archive_flag_spec
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$thread_safe_flag_spec
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$RANLIB
-old_archive_cmds=$old_archive_cmds
-old_postinstall_cmds=$old_postinstall_cmds
-old_postuninstall_cmds=$old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$old_archive_from_new_cmds
-
-# Commands used to build and install a shared archive.
-archive_cmds=$archive_cmds
-archive_expsym_cmds=$archive_expsym_cmds
-postinstall_cmds=$postinstall_cmds
-postuninstall_cmds=$postuninstall_cmds
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$allow_undefined_flag
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$no_undefined_flag
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$global_symbol_to_cdecl
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$hardcode_libdir_separator
-
-# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$include_expsyms
-
-EOF
-
-case "$ltmain" in
-*.sh)
- echo '### END LIBTOOL CONFIG' >> "$ofile"
- echo >> "$ofile"
- case "$host_os" in
- aix3*)
- cat <<\EOF >> "$ofile"
-
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-EOF
- ;;
- esac
-
- # Append the ltmain.sh script.
- sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
-
- chmod +x "$ofile"
- ;;
-
-*)
- # Compile the libtool program.
- echo "FIXME: would compile $ltmain"
- ;;
-esac
-
-test -n "$cache_file" || exit 0
-
-# AC_CACHE_SAVE
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-exit 0
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
--- a/common/libsndfile/ltmain.sh
+++ /dev/null
@@ -1,4024 +1,0 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun ltconfig.
-#
-# Copyright (C) 1996-1999 Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 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
-# General Public License for more details.
-#
-# You should have received a copy of the GNU 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.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Check that we have a working $echo.
-if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
-elif test "X$1" = X--fallback-echo; then
- # Avoid inline document here, it may be left over
- :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
-else
- # Restart under the correct shell, and then maybe $echo will work.
- exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
- # used as fallback echo
- shift
- cat <<EOF
-$*
-EOF
- exit 0
-fi
-
-# The name of this program.
-progname=`$echo "$0" | sed 's%^.*/%%'`
-modename="$progname"
-
-# Constants.
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.3.5
-TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)"
-
-default_mode=
-help="Try \`$progname --help' for more information."
-magic="%%%MAGIC variable%%%"
-mkdir="mkdir"
-mv="mv -f"
-rm="rm -f"
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-SP2NL='tr \040 \012'
-NL2SP='tr \015\012 \040\040'
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
- save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
- save_LANG="$LANG"; LANG=C; export LANG
-fi
-
-if test "$LTCONFIG_VERSION" != "$VERSION"; then
- echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
- echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
- exit 1
-fi
-
-if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
- echo "$modename: not configured to build any kind of library" 1>&2
- echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
- exit 1
-fi
-
-# Global variables.
-mode=$default_mode
-nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
-execute_dlfiles=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-
-# Parse our command line options once, thoroughly.
-while test $# -gt 0
-do
- arg="$1"
- shift
-
- case "$arg" in
- -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
- *) optarg= ;;
- esac
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case "$prev" in
- execute_dlfiles)
- eval "$prev=\"\$$prev \$arg\""
- ;;
- *)
- eval "$prev=\$arg"
- ;;
- esac
-
- prev=
- prevopt=
- continue
- fi
-
- # Have we seen a non-optional argument yet?
- case "$arg" in
- --help)
- show_help=yes
- ;;
-
- --version)
- echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
- exit 0
- ;;
-
- --config)
- sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0
- exit 0
- ;;
-
- --debug)
- echo "$progname: enabling shell trace mode"
- set -x
- ;;
-
- --dry-run | -n)
- run=:
- ;;
-
- --features)
- echo "host: $host"
- if test "$build_libtool_libs" = yes; then
- echo "enable shared libraries"
- else
- echo "disable shared libraries"
- fi
- if test "$build_old_libs" = yes; then
- echo "enable static libraries"
- else
- echo "disable static libraries"
- fi
- exit 0
- ;;
-
- --finish) mode="finish" ;;
-
- --mode) prevopt="--mode" prev=mode ;;
- --mode=*) mode="$optarg" ;;
-
- --quiet | --silent)
- show=:
- ;;
-
- -dlopen)
- prevopt="-dlopen"
- prev=execute_dlfiles
- ;;
-
- -*)
- $echo "$modename: unrecognized option \`$arg'" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
-
- *)
- nonopt="$arg"
- break
- ;;
- esac
-done
-
-if test -n "$prevopt"; then
- $echo "$modename: option \`$prevopt' requires an argument" 1>&2
- $echo "$help" 1>&2
- exit 1
-fi
-
-if test -z "$show_help"; then
-
- # Infer the operation mode.
- if test -z "$mode"; then
- case "$nonopt" in
- *cc | *++ | gcc* | *-gcc*)
- mode=link
- for arg
- do
- case "$arg" in
- -c)
- mode=compile
- break
- ;;
- esac
- done
- ;;
- *db | *dbx | *strace | *truss)
- mode=execute
- ;;
- *install*|cp|mv)
- mode=install
- ;;
- *rm)
- mode=uninstall
- ;;
- *)
- # If we have no mode, but dlfiles were specified, then do execute mode.
- test -n "$execute_dlfiles" && mode=execute
-
- # Just use the default operation mode.
- if test -z "$mode"; then
- if test -n "$nonopt"; then
- $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
- else
- $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
- fi
- fi
- ;;
- esac
- fi
-
- # Only execute mode is allowed to have -dlopen flags.
- if test -n "$execute_dlfiles" && test "$mode" != execute; then
- $echo "$modename: unrecognized option \`-dlopen'" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Change the help message to a mode-specific one.
- generic_help="$help"
- help="Try \`$modename --help --mode=$mode' for more information."
-
- # These modes are in order of execution frequency so that they run quickly.
- case "$mode" in
- # libtool compile mode
- compile)
- modename="$modename: compile"
- # Get the compilation command and the source file.
- base_compile=
- lastarg=
- srcfile="$nonopt"
- suppress_output=
-
- user_target=no
- for arg
- do
- # Accept any command-line options.
- case "$arg" in
- -o)
- if test "$user_target" != "no"; then
- $echo "$modename: you cannot specify \`-o' more than once" 1>&2
- exit 1
- fi
- user_target=next
- ;;
-
- -static)
- build_old_libs=yes
- continue
- ;;
- esac
-
- case "$user_target" in
- next)
- # The next one is the -o target name
- user_target=yes
- continue
- ;;
- yes)
- # We got the output file
- user_target=set
- libobj="$arg"
- continue
- ;;
- esac
-
- # Accept the current argument as the source file.
- lastarg="$srcfile"
- srcfile="$arg"
-
- # Aesthetically quote the previous argument.
-
- # Backslashify any backslashes, double quotes, and dollar signs.
- # These are the only characters that are still specially
- # interpreted inside of double-quoted scrings.
- lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
-
- # Double-quote args containing other shell metacharacters.
- # Many Bourne shells cannot handle close brackets correctly in scan
- # sets, so we specify it separately.
- case "$lastarg" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- lastarg="\"$lastarg\""
- ;;
- esac
-
- # Add the previous argument to base_compile.
- if test -z "$base_compile"; then
- base_compile="$lastarg"
- else
- base_compile="$base_compile $lastarg"
- fi
- done
-
- case "$user_target" in
- set)
- ;;
- no)
- # Get the name of the library object.
- libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
- ;;
- *)
- $echo "$modename: you must specify a target with \`-o'" 1>&2
- exit 1
- ;;
- esac
-
- # Recognize several different file suffixes.
- # If the user specifies -o file.o, it is replaced with file.lo
- xform='[cCFSfmso]'
- case "$libobj" in
- *.ada) xform=ada ;;
- *.adb) xform=adb ;;
- *.ads) xform=ads ;;
- *.asm) xform=asm ;;
- *.c++) xform=c++ ;;
- *.cc) xform=cc ;;
- *.cpp) xform=cpp ;;
- *.cxx) xform=cxx ;;
- *.f90) xform=f90 ;;
- *.for) xform=for ;;
- esac
-
- libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
- case "$libobj" in
- *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
- *)
- $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
- exit 1
- ;;
- esac
-
- if test -z "$base_compile"; then
- $echo "$modename: you must specify a compilation command" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Delete any leftover library objects.
- if test "$build_old_libs" = yes; then
- removelist="$obj $libobj"
- else
- removelist="$libobj"
- fi
-
- $run $rm $removelist
- trap "$run $rm $removelist; exit 1" 1 2 15
-
- # Calculate the filename of the output object if compiler does
- # not support -o with -c
- if test "$compiler_c_o" = no; then
- output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext}
- lockfile="$output_obj.lock"
- removelist="$removelist $output_obj $lockfile"
- trap "$run $rm $removelist; exit 1" 1 2 15
- else
- need_locks=no
- lockfile=
- fi
-
- # Lock this critical section if it is needed
- # We use this script file to make the link, it avoids creating a new file
- if test "$need_locks" = yes; then
- until ln "$0" "$lockfile" 2>/dev/null; do
- $show "Waiting for $lockfile to be removed"
- sleep 2
- done
- elif test "$need_locks" = warn; then
- if test -f "$lockfile"; then
- echo "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $run $rm $removelist
- exit 1
- fi
- echo $srcfile > "$lockfile"
- fi
-
- if test -n "$fix_srcfile_path"; then
- eval srcfile=\"$fix_srcfile_path\"
- fi
-
- # Only build a PIC object if we are building libtool libraries.
- if test "$build_libtool_libs" = yes; then
- # Without this assignment, base_compile gets emptied.
- fbsd_hideous_sh_bug=$base_compile
-
- # All platforms use -DPIC, to notify preprocessed assembler code.
- command="$base_compile $srcfile $pic_flag -DPIC"
- if test "$build_old_libs" = yes; then
- lo_libobj="$libobj"
- dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$dir" = "X$libobj"; then
- dir="$objdir"
- else
- dir="$dir/$objdir"
- fi
- libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
-
- if test -d "$dir"; then
- $show "$rm $libobj"
- $run $rm $libobj
- else
- $show "$mkdir $dir"
- $run $mkdir $dir
- status=$?
- if test $status -ne 0 && test ! -d $dir; then
- exit $status
- fi
- fi
- fi
- if test "$compiler_o_lo" = yes; then
- output_obj="$libobj"
- command="$command -o $output_obj"
- elif test "$compiler_c_o" = yes; then
- output_obj="$obj"
- command="$command -o $output_obj"
- fi
-
- $run $rm "$output_obj"
- $show "$command"
- if $run eval "$command"; then :
- else
- test -n "$output_obj" && $run $rm $removelist
- exit 1
- fi
-
- if test "$need_locks" = warn &&
- test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
- echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $run $rm $removelist
- exit 1
- fi
-
- # Just move the object if needed, then go on to compile the next one
- if test x"$output_obj" != x"$libobj"; then
- $show "$mv $output_obj $libobj"
- if $run $mv $output_obj $libobj; then :
- else
- error=$?
- $run $rm $removelist
- exit $error
- fi
- fi
-
- # If we have no pic_flag, then copy the object into place and finish.
- if test -z "$pic_flag" && test "$build_old_libs" = yes; then
- # Rename the .lo from within objdir to obj
- if test -f $obj; then
- $show $rm $obj
- $run $rm $obj
- fi
-
- $show "$mv $libobj $obj"
- if $run $mv $libobj $obj; then :
- else
- error=$?
- $run $rm $removelist
- exit $error
- fi
-
- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$obj"; then
- xdir="."
- else
- xdir="$xdir"
- fi
- baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
- libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
- # Now arrange that obj and lo_libobj become the same file
- $show "(cd $xdir && $LN_S $baseobj $libobj)"
- if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
- exit 0
- else
- error=$?
- $run $rm $removelist
- exit $error
- fi
- fi
-
- # Allow error messages only from the first compilation.
- suppress_output=' >/dev/null 2>&1'
- fi
-
- # Only build a position-dependent object if we build old libraries.
- if test "$build_old_libs" = yes; then
- command="$base_compile $srcfile"
- if test "$compiler_c_o" = yes; then
- command="$command -o $obj"
- output_obj="$obj"
- fi
-
- # Suppress compiler output if we already did a PIC compilation.
- command="$command$suppress_output"
- $run $rm "$output_obj"
- $show "$command"
- if $run eval "$command"; then :
- else
- $run $rm $removelist
- exit 1
- fi
-
- if test "$need_locks" = warn &&
- test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
- echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $run $rm $removelist
- exit 1
- fi
-
- # Just move the object if needed
- if test x"$output_obj" != x"$obj"; then
- $show "$mv $output_obj $obj"
- if $run $mv $output_obj $obj; then :
- else
- error=$?
- $run $rm $removelist
- exit $error
- fi
- fi
-
- # Create an invalid libtool object if no PIC, so that we do not
- # accidentally link it into a program.
- if test "$build_libtool_libs" != yes; then
- $show "echo timestamp > $libobj"
- $run eval "echo timestamp > \$libobj" || exit $?
- else
- # Move the .lo from within objdir
- $show "$mv $libobj $lo_libobj"
- if $run $mv $libobj $lo_libobj; then :
- else
- error=$?
- $run $rm $removelist
- exit $error
- fi
- fi
- fi
-
- # Unlock the critical section if it was locked
- if test "$need_locks" != no; then
- $rm "$lockfile"
- fi
-
- exit 0
- ;;
-
- # libtool link mode
- link)
- modename="$modename: link"
- case "$host" in
- *-*-cygwin* | *-*-mingw* | *-*-os2*)
- # It is impossible to link a dll without this setting, and
- # we shouldn't force the makefile maintainer to figure out
- # which system we are compiling for in order to pass an extra
- # flag for every libtool invokation.
- # allow_undefined=no
-
- # FIXME: Unfortunately, there are problems with the above when trying
- # to make a dll which has undefined symbols, in which case not
- # even a static library is built. For now, we need to specify
- # -no-undefined on the libtool link line when we can be certain
- # that all symbols are satisfied, otherwise we get a static library.
- allow_undefined=yes
-
- # This is a source program that is used to create dlls on Windows
- # Don't remove nor modify the starting and closing comments
-# /* ltdll.c starts here */
-# #define WIN32_LEAN_AND_MEAN
-# #include <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #ifndef __CYGWIN__
-# # ifdef __CYGWIN32__
-# # define __CYGWIN__ __CYGWIN32__
-# # endif
-# #endif
-#
-# #ifdef __cplusplus
-# extern "C" {
-# #endif
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
-# #ifdef __cplusplus
-# }
-# #endif
-#
-# #ifdef __CYGWIN__
-# #include <cygwin/cygwin_dll.h>
-# DECLARE_CYGWIN_DLL( DllMain );
-# #endif
-# HINSTANCE __hDllInstance_base;
-#
-# BOOL APIENTRY
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
-# {
-# __hDllInstance_base = hInst;
-# return TRUE;
-# }
-# /* ltdll.c ends here */
- # This is a source program that is used to create import libraries
- # on Windows for dlls which lack them. Don't remove nor modify the
- # starting and closing comments
-# /* impgen.c starts here */
-# /* Copyright (C) 1999 Free Software Foundation, Inc.
-#
-# This file is part of GNU libtool.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 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 General Public License for more details.
-#
-# You should have received a copy of the GNU 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.
-# */
-#
-# #include <stdio.h> /* for printf() */
-# #include <unistd.h> /* for open(), lseek(), read() */
-# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
-# #include <string.h> /* for strdup() */
-#
-# static unsigned int
-# pe_get16 (fd, offset)
-# int fd;
-# int offset;
-# {
-# unsigned char b[2];
-# lseek (fd, offset, SEEK_SET);
-# read (fd, b, 2);
-# return b[0] + (b[1]<<8);
-# }
-#
-# static unsigned int
-# pe_get32 (fd, offset)
-# int fd;
-# int offset;
-# {
-# unsigned char b[4];
-# lseek (fd, offset, SEEK_SET);
-# read (fd, b, 4);
-# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
-# }
-#
-# static unsigned int
-# pe_as32 (ptr)
-# void *ptr;
-# {
-# unsigned char *b = ptr;
-# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
-# }
-#
-# int
-# main (argc, argv)
-# int argc;
-# char *argv[];
-# {
-# int dll;
-# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
-# unsigned long export_rva, export_size, nsections, secptr, expptr;
-# unsigned long name_rvas, nexp;
-# unsigned char *expdata, *erva;
-# char *filename, *dll_name;
-#
-# filename = argv[1];
-#
-# dll = open(filename, O_RDONLY|O_BINARY);
-# if (!dll)
-# return 1;
-#
-# dll_name = filename;
-#
-# for (i=0; filename[i]; i++)
-# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
-# dll_name = filename + i +1;
-#
-# pe_header_offset = pe_get32 (dll, 0x3c);
-# opthdr_ofs = pe_header_offset + 4 + 20;
-# num_entries = pe_get32 (dll, opthdr_ofs + 92);
-#
-# if (num_entries < 1) /* no exports */
-# return 1;
-#
-# export_rva = pe_get32 (dll, opthdr_ofs + 96);
-# export_size = pe_get32 (dll, opthdr_ofs + 100);
-# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
-# secptr = (pe_header_offset + 4 + 20 +
-# pe_get16 (dll, pe_header_offset + 4 + 16));
-#
-# expptr = 0;
-# for (i = 0; i < nsections; i++)
-# {
-# char sname[8];
-# unsigned long secptr1 = secptr + 40 * i;
-# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
-# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
-# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
-# lseek(dll, secptr1, SEEK_SET);
-# read(dll, sname, 8);
-# if (vaddr <= export_rva && vaddr+vsize > export_rva)
-# {
-# expptr = fptr + (export_rva - vaddr);
-# if (export_rva + export_size > vaddr + vsize)
-# export_size = vsize - (export_rva - vaddr);
-# break;
-# }
-# }
-#
-# expdata = (unsigned char*)malloc(export_size);
-# lseek (dll, expptr, SEEK_SET);
-# read (dll, expdata, export_size);
-# erva = expdata - export_rva;
-#
-# nexp = pe_as32 (expdata+24);
-# name_rvas = pe_as32 (expdata+32);
-#
-# printf ("EXPORTS\n");
-# for (i = 0; i<nexp; i++)
-# {
-# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
-# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
-# }
-#
-# return 0;
-# }
-# /* impgen.c ends here */
- ;;
- *)
- allow_undefined=yes
- ;;
- esac
- compile_command="$nonopt"
- finalize_command="$nonopt"
-
- compile_rpath=
- finalize_rpath=
- compile_shlibpath=
- finalize_shlibpath=
- convenience=
- old_convenience=
- deplibs=
- linkopts=
-
- if test -n "$shlibpath_var"; then
- # get the directories listed in $shlibpath_var
- eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
- else
- lib_search_path=
- fi
- # now prepend the system-specific ones
- eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\"
- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
- avoid_version=no
- dlfiles=
- dlprefiles=
- dlself=no
- export_dynamic=no
- export_symbols=
- export_symbols_regex=
- generated=
- libobjs=
- link_against_libtool_libs=
- ltlibs=
- module=no
- objs=
- prefer_static_libs=no
- preload=no
- prev=
- prevarg=
- release=
- rpath=
- xrpath=
- perm_rpath=
- temp_rpath=
- thread_safe=no
- vinfo=
-
- # We need to know -static, to get the right output filenames.
- for arg
- do
- case "$arg" in
- -all-static | -static)
- if test "X$arg" = "X-all-static"; then
- if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
- $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
- fi
- if test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- else
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- fi
- build_libtool_libs=no
- build_old_libs=yes
- prefer_static_libs=yes
- break
- ;;
- esac
- done
-
- # See if our shared archives depend on static archives.
- test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
- # Go through the arguments, transforming them on the way.
- while test $# -gt 0; do
- arg="$1"
- shift
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case "$prev" in
- output)
- compile_command="$compile_command @OUTPUT@"
- finalize_command="$finalize_command @OUTPUT@"
- ;;
- esac
-
- case "$prev" in
- dlfiles|dlprefiles)
- if test "$preload" = no; then
- # Add the symbol object into the linking commands.
- compile_command="$compile_command @SYMFILE@"
- finalize_command="$finalize_command @SYMFILE@"
- preload=yes
- fi
- case "$arg" in
- *.la | *.lo) ;; # We handle these cases below.
- force)
- if test "$dlself" = no; then
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- self)
- if test "$prev" = dlprefiles; then
- dlself=yes
- elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
- dlself=yes
- else
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- *)
- if test "$prev" = dlfiles; then
- dlfiles="$dlfiles $arg"
- else
- dlprefiles="$dlprefiles $arg"
- fi
- prev=
- ;;
- esac
- ;;
- expsyms)
- export_symbols="$arg"
- if test ! -f "$arg"; then
- $echo "$modename: symbol file \`$arg' does not exist"
- exit 1
- fi
- prev=
- continue
- ;;
- expsyms_regex)
- export_symbols_regex="$arg"
- prev=
- continue
- ;;
- release)
- release="-$arg"
- prev=
- continue
- ;;
- rpath | xrpath)
- # We need an absolute path.
- case "$arg" in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- $echo "$modename: only absolute run-paths are allowed" 1>&2
- exit 1
- ;;
- esac
- if test "$prev" = rpath; then
- case "$rpath " in
- *" $arg "*) ;;
- *) rpath="$rpath $arg" ;;
- esac
- else
- case "$xrpath " in
- *" $arg "*) ;;
- *) xrpath="$xrpath $arg" ;;
- esac
- fi
- prev=
- continue
- ;;
- *)
- eval "$prev=\"\$arg\""
- prev=
- continue
- ;;
- esac
- fi
-
- prevarg="$arg"
-
- case "$arg" in
- -all-static)
- if test -n "$link_static_flag"; then
- compile_command="$compile_command $link_static_flag"
- finalize_command="$finalize_command $link_static_flag"
- fi
- continue
- ;;
-
- -allow-undefined)
- # FIXME: remove this flag sometime in the future.
- $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
- continue
- ;;
-
- -avoid-version)
- avoid_version=yes
- continue
- ;;
-
- -dlopen)
- prev=dlfiles
- continue
- ;;
-
- -dlpreopen)
- prev=dlprefiles
- continue
- ;;
-
- -export-dynamic)
- export_dynamic=yes
- continue
- ;;
-
- -export-symbols | -export-symbols-regex)
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- $echo "$modename: not more than one -exported-symbols argument allowed"
- exit 1
- fi
- if test "X$arg" = "X-export-symbols"; then
- prev=expsyms
- else
- prev=expsyms_regex
- fi
- continue
- ;;
-
- -L*)
- dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
- # We need an absolute path.
- case "$dir" in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
- $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
- absdir="$dir"
- fi
- dir="$absdir"
- ;;
- esac
- case " $deplibs " in
- *" $arg "*) ;;
- *) deplibs="$deplibs $arg";;
- esac
- case " $lib_search_path " in
- *" $dir "*) ;;
- *) lib_search_path="$lib_search_path $dir";;
- esac
- case "$host" in
- *-*-cygwin* | *-*-mingw* | *-*-os2*)
- dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
- case ":$dllsearchpath:" in
- ::) dllsearchpath="$dllsearchdir";;
- *":$dllsearchdir:"*) ;;
- *) dllsearchpath="$dllsearchpath:$dllsearchdir";;
- esac
- ;;
- esac
- ;;
-
- -l*)
- if test "$arg" = "-lc"; then
- case "$host" in
- *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
- # These systems don't actually have c library (as such)
- continue
- ;;
- esac
- elif test "$arg" = "-lm"; then
- case "$host" in
- *-*-cygwin* | *-*-beos*)
- # These systems don't actually have math library (as such)
- continue
- ;;
- esac
- fi
- deplibs="$deplibs $arg"
- ;;
-
- -module)
- module=yes
- continue
- ;;
-
- -no-undefined)
- allow_undefined=no
- continue
- ;;
-
- -o) prev=output ;;
-
- -release)
- prev=release
- continue
- ;;
-
- -rpath)
- prev=rpath
- continue
- ;;
-
- -R)
- prev=xrpath
- continue
- ;;
-
- -R*)
- dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
- # We need an absolute path.
- case "$dir" in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- $echo "$modename: only absolute run-paths are allowed" 1>&2
- exit 1
- ;;
- esac
- case "$xrpath " in
- *" $dir "*) ;;
- *) xrpath="$xrpath $dir" ;;
- esac
- continue
- ;;
-
- -static)
- # If we have no pic_flag, then this is the same as -all-static.
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- compile_command="$compile_command $link_static_flag"
- finalize_command="$finalize_command $link_static_flag"
- fi
- continue
- ;;
-
- -thread-safe)
- thread_safe=yes
- continue
- ;;
-
- -version-info)
- prev=vinfo
- continue
- ;;
-
- # Some other compiler flag.
- -* | +*)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case "$arg" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- ;;
-
- *.o | *.obj | *.a | *.lib)
- # A standard object.
- objs="$objs $arg"
- ;;
-
- *.lo)
- # A library object.
- if test "$prev" = dlfiles; then
- dlfiles="$dlfiles $arg"
- if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
- prev=
- fi
- libobjs="$libobjs $arg"
- ;;
-
- *.la)
- # A libtool-controlled library.
-
- dlname=
- libdir=
- library_names=
- old_library=
-
- # Check to see that this really is a libtool archive.
- if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2
- exit 1
- fi
-
- # If the library was installed with an old release of libtool,
- # it will not redefine variable installed.
- installed=yes
-
- # Read the .la file
- # If there is no directory component, then add one.
- case "$arg" in
- */* | *\\*) . $arg ;;
- *) . ./$arg ;;
- esac
-
- # Get the name of the library we link against.
- linklib=
- for l in $old_library $library_names; do
- linklib="$l"
- done
-
- if test -z "$linklib"; then
- $echo "$modename: cannot find name of link library for \`$arg'" 1>&2
- exit 1
- fi
-
- # Find the relevant object directory and library name.
- name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'`
-
- if test "X$installed" = Xyes; then
- dir="$libdir"
- else
- dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$dir" = "X$arg"; then
- dir="$objdir"
- else
- dir="$dir/$objdir"
- fi
- fi
-
- if test -n "$dependency_libs"; then
- # Extract -R and -L from dependency_libs
- temp_deplibs=
- for deplib in $dependency_libs; do
- case "$deplib" in
- -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
- case " $rpath $xrpath " in
- *" $temp_xrpath "*) ;;
- *) xrpath="$xrpath $temp_xrpath";;
- esac;;
- -L*) case "$compile_command $temp_deplibs " in
- *" $deplib "*) ;;
- *) temp_deplibs="$temp_deplibs $deplib";;
- esac
- temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'`
- case " $lib_search_path " in
- *" $temp_dir "*) ;;
- *) lib_search_path="$lib_search_path $temp_dir";;
- esac
- ;;
- *) temp_deplibs="$temp_deplibs $deplib";;
- esac
- done
- dependency_libs="$temp_deplibs"
- fi
-
- if test -z "$libdir"; then
- # It is a libtool convenience library, so add in its objects.
- convenience="$convenience $dir/$old_library"
- old_convenience="$old_convenience $dir/$old_library"
- deplibs="$deplibs$dependency_libs"
- compile_command="$compile_command $dir/$old_library$dependency_libs"
- finalize_command="$finalize_command $dir/$old_library$dependency_libs"
- continue
- fi
-
- # This library was specified with -dlopen.
- if test "$prev" = dlfiles; then
- dlfiles="$dlfiles $arg"
- if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then
- # If there is no dlname, no dlopen support or we're linking statically,
- # we need to preload.
- prev=dlprefiles
- else
- # We should not create a dependency on this library, but we
- # may need any libraries it requires.
- compile_command="$compile_command$dependency_libs"
- finalize_command="$finalize_command$dependency_libs"
- prev=
- continue
- fi
- fi
-
- # The library was specified with -dlpreopen.
- if test "$prev" = dlprefiles; then
- # Prefer using a static library (so that no silly _DYNAMIC symbols
- # are required to link).
- if test -n "$old_library"; then
- dlprefiles="$dlprefiles $dir/$old_library"
- else
- dlprefiles="$dlprefiles $dir/$linklib"
- fi
- prev=
- fi
-
- if test -n "$library_names" &&
- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
- link_against_libtool_libs="$link_against_libtool_libs $arg"
- if test -n "$shlibpath_var"; then
- # Make sure the rpath contains only unique directories.
- case "$temp_rpath " in
- *" $dir "*) ;;
- *) temp_rpath="$temp_rpath $dir" ;;
- esac
- fi
-
- # We need an absolute path.
- case "$dir" in
- [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
- $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
- absdir="$dir"
- fi
- ;;
- esac
-
- # This is the magic to use -rpath.
- # Skip directories that are in the system default run-time
- # search path, unless they have been requested with -R.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) compile_rpath="$compile_rpath $absdir"
- esac
- ;;
- esac
-
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir"
- esac
- ;;
- esac
-
- lib_linked=yes
- case "$hardcode_action" in
- immediate | unsupported)
- if test "$hardcode_direct" = no; then
- compile_command="$compile_command $dir/$linklib"
- deplibs="$deplibs $dir/$linklib"
- case "$host" in
- *-*-cygwin* | *-*-mingw* | *-*-os2*)
- dllsearchdir=`cd "$dir" && pwd || echo "$dir"`
- if test -n "$dllsearchpath"; then
- dllsearchpath="$dllsearchpath:$dllsearchdir"
- else
- dllsearchpath="$dllsearchdir"
- fi
- ;;
- esac
- elif test "$hardcode_minus_L" = no; then
- case "$host" in
- *-*-sunos*)
- compile_shlibpath="$compile_shlibpath$dir:"
- ;;
- esac
- case "$compile_command " in
- *" -L$dir "*) ;;
- *) compile_command="$compile_command -L$dir";;
- esac
- compile_command="$compile_command -l$name"
- deplibs="$deplibs -L$dir -l$name"
- elif test "$hardcode_shlibpath_var" = no; then
- case ":$compile_shlibpath:" in
- *":$dir:"*) ;;
- *) compile_shlibpath="$compile_shlibpath$dir:";;
- esac
- compile_command="$compile_command -l$name"
- deplibs="$deplibs -l$name"
- else
- lib_linked=no
- fi
- ;;
-
- relink)
- if test "$hardcode_direct" = yes; then
- compile_command="$compile_command $absdir/$linklib"
- deplibs="$deplibs $absdir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- case "$compile_command " in
- *" -L$absdir "*) ;;
- *) compile_command="$compile_command -L$absdir";;
- esac
- compile_command="$compile_command -l$name"
- deplibs="$deplibs -L$absdir -l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- case ":$compile_shlibpath:" in
- *":$absdir:"*) ;;
- *) compile_shlibpath="$compile_shlibpath$absdir:";;
- esac
- compile_command="$compile_command -l$name"
- deplibs="$deplibs -l$name"
- else
- lib_linked=no
- fi
- ;;
-
- *)
- lib_linked=no
- ;;
- esac
-
- if test "$lib_linked" != yes; then
- $echo "$modename: configuration error: unsupported hardcode properties"
- exit 1
- fi
-
- # Finalize command for both is simple: just hardcode it.
- if test "$hardcode_direct" = yes; then
- finalize_command="$finalize_command $libdir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- case "$finalize_command " in
- *" -L$libdir "*) ;;
- *) finalize_command="$finalize_command -L$libdir";;
- esac
- finalize_command="$finalize_command -l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- case ":$finalize_shlibpath:" in
- *":$libdir:"*) ;;
- *) finalize_shlibpath="$finalize_shlibpath$libdir:";;
- esac
- finalize_command="$finalize_command -l$name"
- else
- # We cannot seem to hardcode it, guess we'll fake it.
- case "$finalize_command " in
- *" -L$dir "*) ;;
- *) finalize_command="$finalize_command -L$libdir";;
- esac
- finalize_command="$finalize_command -l$name"
- fi
- else
- # Transform directly to old archives if we don't build new libraries.
- if test -n "$pic_flag" && test -z "$old_library"; then
- $echo "$modename: cannot find static library for \`$arg'" 1>&2
- exit 1
- fi
-
- # Here we assume that one of hardcode_direct or hardcode_minus_L
- # is not unsupported. This is valid on all known static and
- # shared platforms.
- if test "$hardcode_direct" != unsupported; then
- test -n "$old_library" && linklib="$old_library"
- compile_command="$compile_command $dir/$linklib"
- finalize_command="$finalize_command $dir/$linklib"
- else
- case "$compile_command " in
- *" -L$dir "*) ;;
- *) compile_command="$compile_command -L$dir";;
- esac
- compile_command="$compile_command -l$name"
- case "$finalize_command " in
- *" -L$dir "*) ;;
- *) finalize_command="$finalize_command -L$dir";;
- esac
- finalize_command="$finalize_command -l$name"
- fi
- fi
-
- # Add in any libraries that this one depends upon.
- compile_command="$compile_command$dependency_libs"
- finalize_command="$finalize_command$dependency_libs"
- continue
- ;;
-
- # Some other compiler argument.
- *)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case "$arg" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- ;;
- esac
-
- # Now actually substitute the argument into the commands.
- if test -n "$arg"; then
- compile_command="$compile_command $arg"
- finalize_command="$finalize_command $arg"
- fi
- done
-
- if test -n "$prev"; then
- $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
- eval arg=\"$export_dynamic_flag_spec\"
- compile_command="$compile_command $arg"
- finalize_command="$finalize_command $arg"
- fi
-
- oldlibs=
- # calculate the name of the file, without its directory
- outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
- libobjs_save="$libobjs"
-
- case "$output" in
- "")
- $echo "$modename: you must specify an output file" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
-
- *.a | *.lib)
- if test -n "$link_against_libtool_libs"; then
- $echo "$modename: error: cannot link libtool libraries into archives" 1>&2
- exit 1
- fi
-
- if test -n "$deplibs"; then
- $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
- fi
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
- fi
-
- if test -n "$rpath"; then
- $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
- fi
-
- if test -n "$xrpath"; then
- $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
- fi
-
- if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
- fi
-
- if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
- fi
-
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
- fi
-
- # Now set the variables for building old libraries.
- build_libtool_libs=no
- oldlibs="$output"
- ;;
-
- *.la)
- # Make sure we only generate libraries of the form `libNAME.la'.
- case "$outputname" in
- lib*)
- name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
- eval libname=\"$libname_spec\"
- ;;
- *)
- if test "$module" = no; then
- $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
- if test "$need_lib_prefix" != no; then
- # Add the "lib" prefix for modules if required
- name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
- eval libname=\"$libname_spec\"
- else
- libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
- fi
- ;;
- esac
-
- output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$output_objdir" = "X$output"; then
- output_objdir="$objdir"
- else
- output_objdir="$output_objdir/$objdir"
- fi
-
- if test -n "$objs"; then
- $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1
- exit 1
- fi
-
- # How the heck are we supposed to write a wrapper for a shared library?
- if test -n "$link_against_libtool_libs"; then
- $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2
- exit 1
- fi
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2
- fi
-
- set dummy $rpath
- if test $# -gt 2; then
- $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
- fi
- install_libdir="$2"
-
- oldlibs=
- if test -z "$rpath"; then
- if test "$build_libtool_libs" = yes; then
- # Building a libtool convenience library.
- libext=al
- oldlibs="$output_objdir/$libname.$libext $oldlibs"
- build_libtool_libs=convenience
- build_old_libs=yes
- fi
- dependency_libs="$deplibs"
-
- if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
- fi
-
- if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
- fi
- else
-
- # Parse the version information argument.
- IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
- set dummy $vinfo 0 0 0
- IFS="$save_ifs"
-
- if test -n "$8"; then
- $echo "$modename: too many parameters to \`-version-info'" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- current="$2"
- revision="$3"
- age="$4"
-
- # Check that each of the things are valid numbers.
- case "$current" in
- 0 | [1-9] | [1-9][0-9]*) ;;
- *)
- $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
- exit 1
- ;;
- esac
-
- case "$revision" in
- 0 | [1-9] | [1-9][0-9]*) ;;
- *)
- $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
- exit 1
- ;;
- esac
-
- case "$age" in
- 0 | [1-9] | [1-9][0-9]*) ;;
- *)
- $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
- exit 1
- ;;
- esac
-
- if test $age -gt $current; then
- $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
- exit 1
- fi
-
- # Calculate the version variables.
- major=
- versuffix=
- verstring=
- case "$version_type" in
- none) ;;
-
- irix)
- major=`expr $current - $age + 1`
- versuffix="$major.$revision"
- verstring="sgi$major.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$revision
- while test $loop != 0; do
- iface=`expr $revision - $loop`
- loop=`expr $loop - 1`
- verstring="sgi$major.$iface:$verstring"
- done
- ;;
-
- linux)
- major=.`expr $current - $age`
- versuffix="$major.$age.$revision"
- ;;
-
- osf)
- major=`expr $current - $age`
- versuffix=".$current.$age.$revision"
- verstring="$current.$age.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$age
- while test $loop != 0; do
- iface=`expr $current - $loop`
- loop=`expr $loop - 1`
- verstring="$verstring:${iface}.0"
- done
-
- # Make executables depend on our current version.
- verstring="$verstring:${current}.0"
- ;;
-
- sunos)
- major=".$current"
- versuffix=".$current.$revision"
- ;;
-
- freebsd-aout)
- major=".$current"
- versuffix=".$current.$revision";
- ;;
-
- freebsd-elf)
- major=".$current"
- versuffix=".$current";
- ;;
-
- windows)
- # Like Linux, but with '-' rather than '.', since we only
- # want one extension on Windows 95.
- major=`expr $current - $age`
- versuffix="-$major-$age-$revision"
- ;;
-
- *)
- $echo "$modename: unknown library version type \`$version_type'" 1>&2
- echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
- exit 1
- ;;
- esac
-
- # Clear the version info if we defaulted, and they specified a release.
- if test -z "$vinfo" && test -n "$release"; then
- major=
- verstring="0.0"
- if test "$need_version" = no; then
- versuffix=
- else
- versuffix=".0.0"
- fi
- fi
-
- # Remove version info from name if versioning should be avoided
- if test "$avoid_version" = yes && test "$need_version" = no; then
- major=
- versuffix=
- verstring=""
- fi
-
- # Check to see if the archive will have undefined symbols.
- if test "$allow_undefined" = yes; then
- if test "$allow_undefined_flag" = unsupported; then
- $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
- build_libtool_libs=no
- build_old_libs=yes
- fi
- else
- # Don't allow undefined symbols.
- allow_undefined_flag="$no_undefined_flag"
- fi
-
- dependency_libs="$deplibs"
- case "$host" in
- *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
- # these systems don't actually have a c library (as such)!
- ;;
- *-*-rhapsody*)
- # rhapsody is a little odd...
- deplibs="$deplibs -framework System"
- ;;
- *)
- # Add libc to deplibs on all other systems.
- deplibs="$deplibs -lc"
- ;;
- esac
- fi
-
- # Create the output directory, or remove our outputs if we need to.
- if test -d $output_objdir; then
- $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
- $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
- else
- $show "$mkdir $output_objdir"
- $run $mkdir $output_objdir
- status=$?
- if test $status -ne 0 && test ! -d $output_objdir; then
- exit $status
- fi
- fi
-
- # Now set the variables for building old libraries.
- if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
- oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
- # Transform .lo files to .o files.
- oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
- fi
-
- if test "$build_libtool_libs" = yes; then
- # Transform deplibs into only deplibs that can be linked in shared.
- name_save=$name
- libname_save=$libname
- release_save=$release
- versuffix_save=$versuffix
- major_save=$major
- # I'm not sure if I'm treating the release correctly. I think
- # release should show up in the -l (ie -lgmp5) so we don't want to
- # add it in twice. Is that correct?
- release=""
- versuffix=""
- major=""
- newdeplibs=
- droppeddeps=no
- case "$deplibs_check_method" in
- pass_all)
- # Don't check for shared/static. Everything works.
- # This might be a little naive. We might want to check
- # whether the library exists or not. But this is on
- # osf3 & osf4 and I'm not really sure... Just
- # implementing what was already the behaviour.
- newdeplibs=$deplibs
- ;;
- test_compile)
- # This code stresses the "libraries are programs" paradigm to its
- # limits. Maybe even breaks it. We compile a program, linking it
- # against the deplibs as a proxy for the library. Then we can check
- # whether they linked in statically or dynamically with ldd.
- $rm conftest.c
- cat > conftest.c <<EOF
- int main() { return 0; }
-EOF
- $rm conftest
- $CC -o conftest conftest.c $deplibs
- if test $? -eq 0 ; then
- ldd_output=`ldd conftest`
- for i in $deplibs; do
- name="`expr $i : '-l\(.*\)'`"
- # If $name is empty we are operating on a -L argument.
- if test "$name" != "" ; then
- libname=`eval \\$echo \"$libname_spec\"`
- deplib_matches=`eval \\$echo \"$library_names_spec\"`
- set dummy $deplib_matches
- deplib_match=$2
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- newdeplibs="$newdeplibs $i"
- else
- droppeddeps=yes
- echo
- echo "*** Warning: This library needs some functionality provided by $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have."
- fi
- else
- newdeplibs="$newdeplibs $i"
- fi
- done
- else
- # Error occured in the first compile. Let's try to salvage the situation:
- # Compile a seperate program for each library.
- for i in $deplibs; do
- name="`expr $i : '-l\(.*\)'`"
- # If $name is empty we are operating on a -L argument.
- if test "$name" != "" ; then
- $rm conftest
- $CC -o conftest conftest.c $i
- # Did it work?
- if test $? -eq 0 ; then
- ldd_output=`ldd conftest`
- libname=`eval \\$echo \"$libname_spec\"`
- deplib_matches=`eval \\$echo \"$library_names_spec\"`
- set dummy $deplib_matches
- deplib_match=$2
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- newdeplibs="$newdeplibs $i"
- else
- droppeddeps=yes
- echo
- echo "*** Warning: This library needs some functionality provided by $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have."
- fi
- else
- droppeddeps=yes
- echo
- echo "*** Warning! Library $i is needed by this library but I was not able to"
- echo "*** make it link in! You will probably need to install it or some"
- echo "*** library that it depends on before this library will be fully"
- echo "*** functional. Installing it before continuing would be even better."
- fi
- else
- newdeplibs="$newdeplibs $i"
- fi
- done
- fi
- ;;
- file_magic*)
- set dummy $deplibs_check_method
- file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`"
- for a_deplib in $deplibs; do
- name="`expr $a_deplib : '-l\(.*\)'`"
- # If $name is empty we are operating on a -L argument.
- if test "$name" != "" ; then
- libname=`eval \\$echo \"$libname_spec\"`
- for i in $lib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- # Follow soft links.
- if ls -lLd "$potent_lib" 2>/dev/null \
- | grep " -> " >/dev/null; then
- continue
- fi
- # The statement above tries to avoid entering an
- # endless loop below, in case of cyclic links.
- # We might still enter an endless loop, since a link
- # loop can be closed while we follow links,
- # but so what?
- potlib="$potent_lib"
- while test -h "$potlib" 2>/dev/null; do
- potliblink=`ls -ld $potlib | sed 's/.* -> //'`
- case "$potliblink" in
- [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
- *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
- esac
- done
- if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
- | sed 10q \
- | egrep "$file_magic_regex" > /dev/null; then
- newdeplibs="$newdeplibs $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- echo "*** Warning: This library needs some functionality provided by $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have."
- fi
- else
- # Add a -L argument.
- newdeplibs="$newdeplibs $a_deplib"
- fi
- done # Gone through all deplibs.
- ;;
- none | unknown | *)
- newdeplibs=""
- if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
- -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' |
- grep . >/dev/null; then
- echo
- if test "X$deplibs_check_method" = "Xnone"; then
- echo "*** Warning: inter-library dependencies are not supported in this platform."
- else
- echo "*** Warning: inter-library dependencies are not known to be supported."
- fi
- echo "*** All declared inter-library dependencies are being dropped."
- droppeddeps=yes
- fi
- ;;
- esac
- versuffix=$versuffix_save
- major=$major_save
- release=$release_save
- libname=$libname_save
- name=$name_save
-
- if test "$droppeddeps" = yes; then
- if test "$module" = yes; then
- echo
- echo "*** Warning: libtool could not satisfy all declared inter-library"
- echo "*** dependencies of module $libname. Therefore, libtool will create"
- echo "*** a static module, that should work as long as the dlopening"
- echo "*** application is linked with the -dlopen flag."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- else
- echo "*** The inter-library dependencies that have been dropped here will be"
- echo "*** automatically added whenever a program is linked with this library"
- echo "*** or is declared to -dlopen it."
- fi
- fi
- # Done checking deplibs!
- deplibs=$newdeplibs
- fi
-
- # All the library-specific variables (install_libdir is set above).
- library_names=
- old_library=
- dlname=
-
- # Test again, we may have decided not to build it any more
- if test "$build_libtool_libs" = yes; then
- # Get the real and link names of the library.
- eval library_names=\"$library_names_spec\"
- set dummy $library_names
- realname="$2"
- shift; shift
-
- if test -n "$soname_spec"; then
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
-
- lib="$output_objdir/$realname"
- for link
- do
- linknames="$linknames $link"
- done
-
- # Ensure that we have .o objects for linkers which dislike .lo
- # (e.g. aix) in case we are running --disable-static
- for obj in $libobjs; do
- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$obj"; then
- xdir="."
- else
- xdir="$xdir"
- fi
- baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
- oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
- if test ! -f $xdir/$oldobj; then
- $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
- $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
- fi
- done
-
- # Use standard objects if they are pic
- test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
- $show "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $run $rm $export_symbols
- eval cmds=\"$export_symbols_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- if test -n "$export_symbols_regex"; then
- $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
- $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- $show "$mv \"${export_symbols}T\" \"$export_symbols\""
- $run eval '$mv "${export_symbols}T" "$export_symbols"'
- fi
- fi
- fi
-
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
- fi
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- else
- gentop="$output_objdir/${outputname}x"
- $show "${rm}r $gentop"
- $run ${rm}r "$gentop"
- $show "mkdir $gentop"
- $run mkdir "$gentop"
- status=$?
- if test $status -ne 0 && test ! -d "$gentop"; then
- exit $status
- fi
- generated="$generated $gentop"
-
- for xlib in $convenience; do
- # Extract the objects.
- case "$xlib" in
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
- *) xabs=`pwd`"/$xlib" ;;
- esac
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
- xdir="$gentop/$xlib"
-
- $show "${rm}r $xdir"
- $run ${rm}r "$xdir"
- $show "mkdir $xdir"
- $run mkdir "$xdir"
- status=$?
- if test $status -ne 0 && test ! -d "$xdir"; then
- exit $status
- fi
- $show "(cd $xdir && $AR x $xabs)"
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-
- libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
- done
- fi
- fi
-
- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
- eval flag=\"$thread_safe_flag_spec\"
- linkopts="$linkopts $flag"
- fi
-
- # Do each of the archive commands.
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- eval cmds=\"$archive_expsym_cmds\"
- else
- eval cmds=\"$archive_cmds\"
- fi
- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
-
- # Create links to the real library.
- for linkname in $linknames; do
- if test "$realname" != "$linkname"; then
- $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
- $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
- fi
- done
-
- # If -module or -export-dynamic was specified, set the dlname.
- if test "$module" = yes || test "$export_dynamic" = yes; then
- # On all known operating systems, these are identical.
- dlname="$soname"
- fi
- fi
- ;;
-
- *.lo | *.o | *.obj)
- if test -n "$link_against_libtool_libs"; then
- $echo "$modename: error: cannot link libtool libraries into objects" 1>&2
- exit 1
- fi
-
- if test -n "$deplibs"; then
- $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
- fi
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
- fi
-
- if test -n "$rpath"; then
- $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
- fi
-
- if test -n "$xrpath"; then
- $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
- fi
-
- if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
- fi
-
- if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
- fi
-
- case "$output" in
- *.lo)
- if test -n "$objs"; then
- $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
- exit 1
- fi
- libobj="$output"
- obj=`$echo "X$output" | $Xsed -e "$lo2o"`
- ;;
- *)
- libobj=
- obj="$output"
- ;;
- esac
-
- # Delete the old objects.
- $run $rm $obj $libobj
-
- # Objects from convenience libraries. This assumes
- # single-version convenience libraries. Whenever we create
- # different ones for PIC/non-PIC, this we'll have to duplicate
- # the extraction.
- reload_conv_objs=
- gentop=
- # reload_cmds runs $LD directly, so let us get rid of
- # -Wl from whole_archive_flag_spec
- wl=
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
- else
- gentop="$output_objdir/${obj}x"
- $show "${rm}r $gentop"
- $run ${rm}r "$gentop"
- $show "mkdir $gentop"
- $run mkdir "$gentop"
- status=$?
- if test $status -ne 0 && test ! -d "$gentop"; then
- exit $status
- fi
- generated="$generated $gentop"
-
- for xlib in $convenience; do
- # Extract the objects.
- case "$xlib" in
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
- *) xabs=`pwd`"/$xlib" ;;
- esac
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
- xdir="$gentop/$xlib"
-
- $show "${rm}r $xdir"
- $run ${rm}r "$xdir"
- $show "mkdir $xdir"
- $run mkdir "$xdir"
- status=$?
- if test $status -ne 0 && test ! -d "$xdir"; then
- exit $status
- fi
- $show "(cd $xdir && $AR x $xabs)"
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-
- reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
- done
- fi
- fi
-
- # Create the old-style object.
- reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs"
-
- output="$obj"
- eval cmds=\"$reload_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
-
- # Exit if we aren't doing a library object file.
- if test -z "$libobj"; then
- if test -n "$gentop"; then
- $show "${rm}r $gentop"
- $run ${rm}r $gentop
- fi
-
- exit 0
- fi
-
- if test "$build_libtool_libs" != yes; then
- if test -n "$gentop"; then
- $show "${rm}r $gentop"
- $run ${rm}r $gentop
- fi
-
- # Create an invalid libtool object if no PIC, so that we don't
- # accidentally link it into a program.
- $show "echo timestamp > $libobj"
- $run eval "echo timestamp > $libobj" || exit $?
- exit 0
- fi
-
- if test -n "$pic_flag"; then
- # Only do commands if we really have different PIC objects.
- reload_objs="$libobjs $reload_conv_objs"
- output="$libobj"
- eval cmds=\"$reload_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- else
- # Just create a symlink.
- $show $rm $libobj
- $run $rm $libobj
- xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$libobj"; then
- xdir="."
- else
- xdir="$xdir"
- fi
- baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
- oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
- $show "(cd $xdir && $LN_S $oldobj $baseobj)"
- $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
- fi
-
- if test -n "$gentop"; then
- $show "${rm}r $gentop"
- $run ${rm}r $gentop
- fi
-
- exit 0
- ;;
-
- # Anything else should be a program.
- *)
- if test -n "$vinfo"; then
- $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
- fi
-
- if test -n "$release"; then
- $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
- fi
-
- if test "$preload" = yes; then
- if test "$dlopen" = unknown && test "$dlopen_self" = unknown &&
- test "$dlopen_self_static" = unknown; then
- $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
- fi
- fi
-
- if test -n "$rpath$xrpath"; then
- # If the user specified any rpath flags, then add them.
- for libdir in $rpath $xrpath; do
- # This is the magic to use -rpath.
- case "$compile_rpath " in
- *" $libdir "*) ;;
- *) compile_rpath="$compile_rpath $libdir" ;;
- esac
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir" ;;
- esac
- done
- fi
-
- # Now hardcode the library paths
- rpath=
- hardcode_libdirs=
- for libdir in $compile_rpath $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- rpath="$rpath $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) perm_rpath="$perm_rpath $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- compile_rpath="$rpath"
-
- rpath=
- hardcode_libdirs=
- for libdir in $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- rpath="$rpath $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$finalize_perm_rpath " in
- *" $libdir "*) ;;
- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- finalize_rpath="$rpath"
-
- output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$output_objdir" = "X$output"; then
- output_objdir="$objdir"
- else
- output_objdir="$output_objdir/$objdir"
- fi
-
- # Create the binary in the object directory, then wrap it.
- if test ! -d $output_objdir; then
- $show "$mkdir $output_objdir"
- $run $mkdir $output_objdir
- status=$?
- if test $status -ne 0 && test ! -d $output_objdir; then
- exit $status
- fi
- fi
-
- if test -n "$libobjs" && test "$build_old_libs" = yes; then
- # Transform all the library objects into standard objects.
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
- fi
-
- dlsyms=
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- if test -n "$NM" && test -n "$global_symbol_pipe"; then
- dlsyms="${outputname}S.c"
- else
- $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
- fi
- fi
-
- if test -n "$dlsyms"; then
- case "$dlsyms" in
- "") ;;
- *.c)
- # Discover the nlist of each of the dlfiles.
- nlist="$output_objdir/${outputname}.nm"
-
- $show "$rm $nlist ${nlist}S ${nlist}T"
- $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
- # Parse the name list into a source file.
- $show "creating $output_objdir/$dlsyms"
-
- test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
- if test "$dlself" = yes; then
- $show "generating symbol list for \`$output'"
-
- test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
- # Add our own program objects to the symbol list.
- progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
- for arg in $progfiles; do
- $show "extracting global C symbols from \`$arg'"
- $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -n "$exclude_expsyms"; then
- $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
- $run eval '$mv "$nlist"T "$nlist"'
- fi
-
- if test -n "$export_symbols_regex"; then
- $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
- $run eval '$mv "$nlist"T "$nlist"'
- fi
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- export_symbols="$output_objdir/$output.exp"
- $run $rm $export_symbols
- $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
- else
- $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
- $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
- $run eval 'mv "$nlist"T "$nlist"'
- fi
- fi
-
- for arg in $dlprefiles; do
- $show "extracting global C symbols from \`$arg'"
- name=`echo "$arg" | sed -e 's%^.*/%%'`
- $run eval 'echo ": $name " >> "$nlist"'
- $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -z "$run"; then
- # Make sure we have at least an empty file.
- test -f "$nlist" || : > "$nlist"
-
- if test -n "$exclude_expsyms"; then
- egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
- $mv "$nlist"T "$nlist"
- fi
-
- # Try sorting and uniquifying the output.
- if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
- :
- else
- grep -v "^: " < "$nlist" > "$nlist"S
- fi
-
- if test -f "$nlist"S; then
- eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
- else
- echo '/* NONE */' >> "$output_objdir/$dlsyms"
- fi
-
- $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
-
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{\
-"
-
- sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \
- -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \
- < "$nlist" >> "$output_objdir/$dlsyms"
-
- $echo >> "$output_objdir/$dlsyms" "\
- {0, (lt_ptr_t) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
- fi
-
- pic_flag_for_symtable=
- case "$host" in
- # compiling the symbol table file with pic_flag works around
- # a FreeBSD bug that causes programs to crash when -lm is
- # linked before any other PIC object. But we must not use
- # pic_flag when linking with -static. The problem exists in
- # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
- *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
- case "$compile_command " in
- *" -static "*) ;;
- *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
- esac;;
- *-*-hpux*)
- case "$compile_command " in
- *" -static "*) ;;
- *) pic_flag_for_symtable=" $pic_flag -DPIC";;
- esac
- esac
-
- # Now compile the dynamic symbol file.
- $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
- $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
- # Clean up the generated files.
- $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
- $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
- # Transform the symbol file into the correct name.
- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
- ;;
- *)
- $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
- exit 1
- ;;
- esac
- else
- # We keep going just in case the user didn't refer to
- # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
- # really was required.
-
- # Nullify the symbol file.
- compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
- fi
-
- if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then
- # Replace the output file specification.
- compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
- link_command="$compile_command$compile_rpath"
-
- # We have no uninstalled library dependencies, so finalize right now.
- $show "$link_command"
- $run eval "$link_command"
- status=$?
-
- # Delete the generated files.
- if test -n "$dlsyms"; then
- $show "$rm $output_objdir/${outputname}S.${objext}"
- $run $rm "$output_objdir/${outputname}S.${objext}"
- fi
-
- exit $status
- fi
-
- if test -n "$shlibpath_var"; then
- # We should set the shlibpath_var
- rpath=
- for dir in $temp_rpath; do
- case "$dir" in
- [\\/]* | [A-Za-z]:[\\/]*)
- # Absolute path.
- rpath="$rpath$dir:"
- ;;
- *)
- # Relative path: add a thisdir entry.
- rpath="$rpath\$thisdir/$dir:"
- ;;
- esac
- done
- temp_rpath="$rpath"
- fi
-
- if test -n "$compile_shlibpath$finalize_shlibpath"; then
- compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
- fi
- if test -n "$finalize_shlibpath"; then
- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
- fi
-
- compile_var=
- finalize_var=
- if test -n "$runpath_var"; then
- if test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- rpath="$rpath$dir:"
- done
- compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- if test -n "$finalize_perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $finalize_perm_rpath; do
- rpath="$rpath$dir:"
- done
- finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- fi
-
- if test "$hardcode_action" = relink; then
- # Fast installation is not supported
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
-
- $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
- $echo "$modename: \`$output' will be relinked during installation" 1>&2
- else
- if test "$fast_install" != no; then
- link_command="$finalize_var$compile_command$finalize_rpath"
- if test "$fast_install" = yes; then
- relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
- else
- # fast_install is set to needless
- relink_command=
- fi
- else
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
- fi
- fi
-
- # Replace the output file specification.
- link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
- # Delete the old output files.
- $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
- $show "$link_command"
- $run eval "$link_command" || exit $?
-
- # Now create the wrapper script.
- $show "creating $output"
-
- # Quote the relink command for shipping.
- if test -n "$relink_command"; then
- relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
- fi
-
- # Quote $echo for shipping.
- if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
- case "$0" in
- [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
- *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
- esac
- qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
- else
- qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
- fi
-
- # Only actually do things if our run command is non-null.
- if test -z "$run"; then
- # win32 will think the script is a binary if it has
- # a .exe suffix, so we strip it off here.
- case $output in
- *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
- esac
- $rm $output
- trap "$rm $output; exit 1" 1 2 15
-
- $echo > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
- # install mode needs the following variable:
- link_against_libtool_libs='$link_against_libtool_libs'
-else
- # When we are sourced in execute mode, \$file and \$echo are already set.
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- echo=\"$qecho\"
- file=\"\$0\"
- # Make sure echo works.
- if test \"X\$1\" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
- elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
- # Yippee, \$echo works!
- :
- else
- # Restart under the correct shell, and then maybe \$echo will work.
- exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
- fi
- fi\
-"
- $echo >> $output "\
-
- # Find the directory that this script lives in.
- thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
- test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
- while test -n \"\$file\"; do
- destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
-
- # If there was a directory component, then change thisdir.
- if test \"x\$destdir\" != \"x\$file\"; then
- case \"\$destdir\" in
- [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;;
- *) thisdir=\"\$thisdir/\$destdir\" ;;
- esac
- fi
-
- file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
- file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
- done
-
- # Try to get the absolute directory name.
- absdir=\`cd \"\$thisdir\" && pwd\`
- test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
- if test "$fast_install" = yes; then
- echo >> $output "\
- program=lt-'$outputname'
- progdir=\"\$thisdir/$objdir\"
-
- if test ! -f \"\$progdir/\$program\" || \\
- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
- test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
- file=\"\$\$-\$program\"
-
- if test ! -d \"\$progdir\"; then
- $mkdir \"\$progdir\"
- else
- $rm \"\$progdir/\$file\"
- fi"
-
- echo >> $output "\
-
- # relink executable if necessary
- if test -n \"\$relink_command\"; then
- if (cd \"\$thisdir\" && eval \$relink_command); then :
- else
- $rm \"\$progdir/\$file\"
- exit 1
- fi
- fi
-
- $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
- { $rm \"\$progdir/\$program\";
- $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
- $rm \"\$progdir/\$file\"
- fi"
- else
- echo >> $output "\
- program='$outputname'
- progdir=\"\$thisdir/$objdir\"
-"
- fi
-
- echo >> $output "\
-
- if test -f \"\$progdir/\$program\"; then"
-
- # Export our shlibpath_var if we have one.
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- $echo >> $output "\
- # Add our own library path to $shlibpath_var
- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
- # Some systems cannot cope with colon-terminated $shlibpath_var
- # The second colon is a workaround for a bug in BeOS R4 sed
- $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
- export $shlibpath_var
-"
- fi
-
- # fixup the dll searchpath if we need to.
- if test -n "$dllsearchpath"; then
- $echo >> $output "\
- # Add the dll search path components to the executable PATH
- PATH=$dllsearchpath:\$PATH
-"
- fi
-
- $echo >> $output "\
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- # Run the actual program with our arguments.
-"
- case $host in
- # win32 systems need to use the prog path for dll
- # lookup to work
- *-*-cygwin*)
- $echo >> $output "\
- exec \$progdir/\$program \${1+\"\$@\"}
-"
- ;;
-
- # Backslashes separate directories on plain windows
- *-*-mingw | *-*-os2*)
- $echo >> $output "\
- exec \$progdir\\\\\$program \${1+\"\$@\"}
-"
- ;;
-
- *)
- $echo >> $output "\
- # Export the path to the program.
- PATH=\"\$progdir:\$PATH\"
- export PATH
-
- exec \$program \${1+\"\$@\"}
-"
- ;;
- esac
- $echo >> $output "\
- \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
- exit 1
- fi
- else
- # The program doesn't exist.
- \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
- \$echo \"This script is just a wrapper for \$program.\" 1>&2
- echo \"See the $PACKAGE documentation for more information.\" 1>&2
- exit 1
- fi
-fi\
-"
- chmod +x $output
- fi
- exit 0
- ;;
- esac
-
- # See if we need to build an old-fashioned archive.
- for oldlib in $oldlibs; do
-
- if test "$build_libtool_libs" = convenience; then
- oldobjs="$libobjs_save"
- addlibs="$convenience"
- build_libtool_libs=no
- else
- if test "$build_libtool_libs" = module; then
- oldobjs="$libobjs_save"
- build_libtool_libs=no
- else
- oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
- fi
- addlibs="$old_convenience"
- fi
-
- if test -n "$addlibs"; then
- gentop="$output_objdir/${outputname}x"
- $show "${rm}r $gentop"
- $run ${rm}r "$gentop"
- $show "mkdir $gentop"
- $run mkdir "$gentop"
- status=$?
- if test $status -ne 0 && test ! -d "$gentop"; then
- exit $status
- fi
- generated="$generated $gentop"
-
- # Add in members from convenience archives.
- for xlib in $addlibs; do
- # Extract the objects.
- case "$xlib" in
- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
- *) xabs=`pwd`"/$xlib" ;;
- esac
- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
- xdir="$gentop/$xlib"
-
- $show "${rm}r $xdir"
- $run ${rm}r "$xdir"
- $show "mkdir $xdir"
- $run mkdir "$xdir"
- status=$?
- if test $status -ne 0 && test ! -d "$xdir"; then
- exit $status
- fi
- $show "(cd $xdir && $AR x $xabs)"
- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-
- oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
- done
- fi
-
- # Do each command in the archive commands.
- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
- eval cmds=\"$old_archive_from_new_cmds\"
- else
- # Ensure that we have .o objects in place in case we decided
- # not to build a shared library, and have fallen back to building
- # static libs even though --disable-static was passed!
- for oldobj in $oldobjs; do
- if test ! -f $oldobj; then
- xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$oldobj"; then
- xdir="."
- else
- xdir="$xdir"
- fi
- baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
- obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
- $show "(cd $xdir && ${LN_S} $obj $baseobj)"
- $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
- fi
- done
-
- eval cmds=\"$old_archive_cmds\"
- fi
- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- done
-
- if test -n "$generated"; then
- $show "${rm}r$generated"
- $run ${rm}r$generated
- fi
-
- # Now create the libtool archive.
- case "$output" in
- *.la)
- old_library=
- test "$build_old_libs" = yes && old_library="$libname.$libext"
- $show "creating $output"
-
- if test -n "$xrpath"; then
- temp_xrpath=
- for libdir in $xrpath; do
- temp_xrpath="$temp_xrpath -R$libdir"
- done
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
-
- # Only create the output if not a dry run.
- if test -z "$run"; then
- for installed in no yes; do
- if test "$installed" = yes; then
- if test -z "$install_libdir"; then
- break
- fi
- output="$output_objdir/$outputname"i
- fi
- $rm $output
- $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$dlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'\
-"
- done
- fi
-
- # Do a symbolic link so that the libtool archive can be found in
- # LD_LIBRARY_PATH before the program is installed.
- $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
- $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $?
- ;;
- esac
- exit 0
- ;;
-
- # libtool install mode
- install)
- modename="$modename: install"
-
- # There may be an optional sh(1) argument at the beginning of
- # install_prog (especially on Windows NT).
- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then
- # Aesthetically quote it.
- arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
- case "$arg" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- install_prog="$arg "
- arg="$1"
- shift
- else
- install_prog=
- arg="$nonopt"
- fi
-
- # The real first argument should be the name of the installation program.
- # Aesthetically quote it.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case "$arg" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- install_prog="$install_prog$arg"
-
- # We need to accept at least all the BSD install flags.
- dest=
- files=
- opts=
- prev=
- install_type=
- isdir=no
- stripme=
- for arg
- do
- if test -n "$dest"; then
- files="$files $dest"
- dest="$arg"
- continue
- fi
-
- case "$arg" in
- -d) isdir=yes ;;
- -f) prev="-f" ;;
- -g) prev="-g" ;;
- -m) prev="-m" ;;
- -o) prev="-o" ;;
- -s)
- stripme=" -s"
- continue
- ;;
- -*) ;;
-
- *)
- # If the previous option needed an argument, then skip it.
- if test -n "$prev"; then
- prev=
- else
- dest="$arg"
- continue
- fi
- ;;
- esac
-
- # Aesthetically quote the argument.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case "$arg" in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
- arg="\"$arg\""
- ;;
- esac
- install_prog="$install_prog $arg"
- done
-
- if test -z "$install_prog"; then
- $echo "$modename: you must specify an install program" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- if test -n "$prev"; then
- $echo "$modename: the \`$prev' option requires an argument" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- if test -z "$files"; then
- if test -z "$dest"; then
- $echo "$modename: no file or destination specified" 1>&2
- else
- $echo "$modename: you must specify a destination" 1>&2
- fi
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Strip any trailing slash from the destination.
- dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
-
- # Check to see that the destination is a directory.
- test -d "$dest" && isdir=yes
- if test "$isdir" = yes; then
- destdir="$dest"
- destname=
- else
- destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
- test "X$destdir" = "X$dest" && destdir=.
- destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
-
- # Not a directory, so check to see that there is only one file specified.
- set dummy $files
- if test $# -gt 2; then
- $echo "$modename: \`$dest' is not a directory" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
- fi
- case "$destdir" in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- for file in $files; do
- case "$file" in
- *.lo) ;;
- *)
- $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
- esac
- done
- ;;
- esac
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- staticlibs=
- future_libdirs=
- current_libdirs=
- for file in $files; do
-
- # Do each installation.
- case "$file" in
- *.a | *.lib)
- # Do the static libraries later.
- staticlibs="$staticlibs $file"
- ;;
-
- *.la)
- # Check to see that this really is a libtool archive.
- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- library_names=
- old_library=
- # If there is no directory component, then add one.
- case "$file" in
- */* | *\\*) . $file ;;
- *) . ./$file ;;
- esac
-
- # Add the libdir to current_libdirs if it is the destination.
- if test "X$destdir" = "X$libdir"; then
- case "$current_libdirs " in
- *" $libdir "*) ;;
- *) current_libdirs="$current_libdirs $libdir" ;;
- esac
- else
- # Note the libdir as a future libdir.
- case "$future_libdirs " in
- *" $libdir "*) ;;
- *) future_libdirs="$future_libdirs $libdir" ;;
- esac
- fi
-
- dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/"
- test "X$dir" = "X$file/" && dir=
- dir="$dir$objdir"
-
- # See the names of the shared library.
- set dummy $library_names
- if test -n "$2"; then
- realname="$2"
- shift
- shift
-
- # Install the shared library and build the symlinks.
- $show "$install_prog $dir/$realname $destdir/$realname"
- $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $?
-
- if test $# -gt 0; then
- # Delete the old symlinks, and create new ones.
- for linkname
- do
- if test "$linkname" != "$realname"; then
- $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
- $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
- fi
- done
- fi
-
- # Do each command in the postinstall commands.
- lib="$destdir/$realname"
- eval cmds=\"$postinstall_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- fi
-
- # Install the pseudo-library for information purposes.
- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- instname="$dir/$name"i
- $show "$install_prog $instname $destdir/$name"
- $run eval "$install_prog $instname $destdir/$name" || exit $?
-
- # Maybe install the static library, too.
- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
- ;;
-
- *.lo)
- # Install (i.e. copy) a libtool object.
-
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- destfile="$destdir/$destfile"
- fi
-
- # Deduce the name of the destination old-style object file.
- case "$destfile" in
- *.lo)
- staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
- ;;
- *.o | *.obj)
- staticdest="$destfile"
- destfile=
- ;;
- *)
- $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
- esac
-
- # Install the libtool object if requested.
- if test -n "$destfile"; then
- $show "$install_prog $file $destfile"
- $run eval "$install_prog $file $destfile" || exit $?
- fi
-
- # Install the old object if enabled.
- if test "$build_old_libs" = yes; then
- # Deduce the name of the old-style object file.
- staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
-
- $show "$install_prog $staticobj $staticdest"
- $run eval "$install_prog \$staticobj \$staticdest" || exit $?
- fi
- exit 0
- ;;
-
- *)
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- destfile="$destdir/$destfile"
- fi
-
- # Do a test to see if this is really a libtool program.
- if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- link_against_libtool_libs=
- relink_command=
-
- # If there is no directory component, then add one.
- case "$file" in
- */* | *\\*) . $file ;;
- *) . ./$file ;;
- esac
-
- # Check the variables that should have been set.
- if test -z "$link_against_libtool_libs"; then
- $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
- exit 1
- fi
-
- finalize=yes
- for lib in $link_against_libtool_libs; do
- # Check to see that each library is installed.
- libdir=
- if test -f "$lib"; then
- # If there is no directory component, then add one.
- case "$lib" in
- */* | *\\*) . $lib ;;
- *) . ./$lib ;;
- esac
- fi
- libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`"
- if test -n "$libdir" && test ! -f "$libfile"; then
- $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
- finalize=no
- fi
- done
-
- outputname=
- if test "$fast_install" = no && test -n "$relink_command"; then
- if test "$finalize" = yes && test -z "$run"; then
- tmpdir="/tmp"
- test -n "$TMPDIR" && tmpdir="$TMPDIR"
- tmpdir="$tmpdir/libtool-$$"
- if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
- else
- $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
- continue
- fi
- outputname="$tmpdir/$file"
- # Replace the output file specification.
- relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
-
- $show "$relink_command"
- if $run eval "$relink_command"; then :
- else
- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
- ${rm}r "$tmpdir"
- continue
- fi
- file="$outputname"
- else
- $echo "$modename: warning: cannot relink \`$file'" 1>&2
- fi
- else
- # Install the binary that we compiled earlier.
- file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
- fi
- fi
-
- $show "$install_prog$stripme $file $destfile"
- $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
- test -n "$outputname" && ${rm}r "$tmpdir"
- ;;
- esac
- done
-
- for file in $staticlibs; do
- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
- # Set up the ranlib parameters.
- oldlib="$destdir/$name"
-
- $show "$install_prog $file $oldlib"
- $run eval "$install_prog \$file \$oldlib" || exit $?
-
- # Do each command in the postinstall commands.
- eval cmds=\"$old_postinstall_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
- IFS="$save_ifs"
- done
-
- if test -n "$future_libdirs"; then
- $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
- fi
-
- if test -n "$current_libdirs"; then
- # Maybe just do a dry run.
- test -n "$run" && current_libdirs=" -n$current_libdirs"
- exec $SHELL $0 --finish$current_libdirs
- exit 1
- fi
-
- exit 0
- ;;
-
- # libtool finish mode
- finish)
- modename="$modename: finish"
- libdirs="$nonopt"
- admincmds=
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- for dir
- do
- libdirs="$libdirs $dir"
- done
-
- for libdir in $libdirs; do
- if test -n "$finish_cmds"; then
- # Do each command in the finish commands.
- eval cmds=\"$finish_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || admincmds="$admincmds
- $cmd"
- done
- IFS="$save_ifs"
- fi
- if test -n "$finish_eval"; then
- # Do the single finish_eval.
- eval cmds=\"$finish_eval\"
- $run eval "$cmds" || admincmds="$admincmds
- $cmds"
- fi
- done
- fi
-
- # Exit here if they wanted silent mode.
- test "$show" = : && exit 0
-
- echo "----------------------------------------------------------------------"
- echo "Libraries have been installed in:"
- for libdir in $libdirs; do
- echo " $libdir"
- done
- echo
- echo "If you ever happen to want to link against installed libraries"
- echo "in a given directory, LIBDIR, you must either use libtool, and"
- echo "specify the full pathname of the library, or use \`-LLIBDIR'"
- echo "flag during linking and do at least one of the following:"
- if test -n "$shlibpath_var"; then
- echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
- echo " during execution"
- fi
- if test -n "$runpath_var"; then
- echo " - add LIBDIR to the \`$runpath_var' environment variable"
- echo " during linking"
- fi
- if test -n "$hardcode_libdir_flag_spec"; then
- libdir=LIBDIR
- eval flag=\"$hardcode_libdir_flag_spec\"
-
- echo " - use the \`$flag' linker flag"
- fi
- if test -n "$admincmds"; then
- echo " - have your system administrator run these commands:$admincmds"
- fi
- if test -f /etc/ld.so.conf; then
- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
- fi
- echo
- echo "See any operating system documentation about shared libraries for"
- echo "more information, such as the ld(1) and ld.so(8) manual pages."
- echo "----------------------------------------------------------------------"
- exit 0
- ;;
-
- # libtool execute mode
- execute)
- modename="$modename: execute"
-
- # The first argument is the command name.
- cmd="$nonopt"
- if test -z "$cmd"; then
- $echo "$modename: you must specify a COMMAND" 1>&2
- $echo "$help"
- exit 1
- fi
-
- # Handle -dlopen flags immediately.
- for file in $execute_dlfiles; do
- if test ! -f "$file"; then
- $echo "$modename: \`$file' is not a file" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- dir=
- case "$file" in
- *.la)
- # Check to see that this really is a libtool archive.
- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- # Read the libtool library.
- dlname=
- library_names=
-
- # If there is no directory component, then add one.
- case "$file" in
- */* | *\\*) . $file ;;
- *) . ./$file ;;
- esac
-
- # Skip this library if it cannot be dlopened.
- if test -z "$dlname"; then
- # Warn if it was a shared library.
- test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
- continue
- fi
-
- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "X$dir" = "X$file" && dir=.
-
- if test -f "$dir/$objdir/$dlname"; then
- dir="$dir/$objdir"
- else
- $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
- exit 1
- fi
- ;;
-
- *.lo)
- # Just add the directory containing the .lo file.
- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "X$dir" = "X$file" && dir=.
- ;;
-
- *)
- $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
- continue
- ;;
- esac
-
- # Get the absolute pathname.
- absdir=`cd "$dir" && pwd`
- test -n "$absdir" && dir="$absdir"
-
- # Now add the directory to shlibpath_var.
- if eval "test -z \"\$$shlibpath_var\""; then
- eval "$shlibpath_var=\"\$dir\""
- else
- eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
- fi
- done
-
- # This variable tells wrapper scripts just to set shlibpath_var
- # rather than running their programs.
- libtool_execute_magic="$magic"
-
- # Check if any of the arguments is a wrapper script.
- args=
- for file
- do
- case "$file" in
- -*) ;;
- *)
- # Do a test to see if this is really a libtool program.
- if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- # If there is no directory component, then add one.
- case "$file" in
- */* | *\\*) . $file ;;
- *) . ./$file ;;
- esac
-
- # Transform arg to wrapped name.
- file="$progdir/$program"
- fi
- ;;
- esac
- # Quote arguments (to preserve shell metacharacters).
- file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
- args="$args \"$file\""
- done
-
- if test -z "$run"; then
- if test -n "$shlibpath_var"; then
- # Export the shlibpath_var.
- eval "export $shlibpath_var"
- fi
-
- # Restore saved enviroment variables
- if test "${save_LC_ALL+set}" = set; then
- LC_ALL="$save_LC_ALL"; export LC_ALL
- fi
- if test "${save_LANG+set}" = set; then
- LANG="$save_LANG"; export LANG
- fi
-
- # Now actually exec the command.
- eval "exec \$cmd$args"
-
- $echo "$modename: cannot exec \$cmd$args"
- exit 1
- else
- # Display what would be done.
- if test -n "$shlibpath_var"; then
- eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
- $echo "export $shlibpath_var"
- fi
- $echo "$cmd$args"
- exit 0
- fi
- ;;
-
- # libtool uninstall mode
- uninstall)
- modename="$modename: uninstall"
- rm="$nonopt"
- files=
-
- for arg
- do
- case "$arg" in
- -*) rm="$rm $arg" ;;
- *) files="$files $arg" ;;
- esac
- done
-
- if test -z "$rm"; then
- $echo "$modename: you must specify an RM program" 1>&2
- $echo "$help" 1>&2
- exit 1
- fi
-
- for file in $files; do
- dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "X$dir" = "X$file" && dir=.
- name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
- rmfiles="$file"
-
- case "$name" in
- *.la)
- # Possibly a libtool archive, so verify it.
- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
- . $dir/$name
-
- # Delete the libtool libraries and symlinks.
- for n in $library_names; do
- rmfiles="$rmfiles $dir/$n"
- done
- test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library"
-
- $show "$rm $rmfiles"
- $run $rm $rmfiles
-
- if test -n "$library_names"; then
- # Do each command in the postuninstall commands.
- eval cmds=\"$postuninstall_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd"
- done
- IFS="$save_ifs"
- fi
-
- if test -n "$old_library"; then
- # Do each command in the old_postuninstall commands.
- eval cmds=\"$old_postuninstall_cmds\"
- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd"
- done
- IFS="$save_ifs"
- fi
-
- # FIXME: should reinstall the best remaining shared library.
- fi
- ;;
-
- *.lo)
- if test "$build_old_libs" = yes; then
- oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
- rmfiles="$rmfiles $dir/$oldobj"
- fi
- $show "$rm $rmfiles"
- $run $rm $rmfiles
- ;;
-
- *)
- $show "$rm $rmfiles"
- $run $rm $rmfiles
- ;;
- esac
- done
- exit 0
- ;;
-
- "")
- $echo "$modename: you must specify a MODE" 1>&2
- $echo "$generic_help" 1>&2
- exit 1
- ;;
- esac
-
- $echo "$modename: invalid operation mode \`$mode'" 1>&2
- $echo "$generic_help" 1>&2
- exit 1
-fi # test -z "$show_help"
-
-# We need to display help for each of the modes.
-case "$mode" in
-"") $echo \
-"Usage: $modename [OPTION]... [MODE-ARG]...
-
-Provide generalized library-building support services.
-
- --config show all configuration variables
- --debug enable verbose shell tracing
--n, --dry-run display commands without modifying any files
- --features display basic configuration information and exit
- --finish same as \`--mode=finish'
- --help display this help message and exit
- --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
- --quiet same as \`--silent'
- --silent don't print informational messages
- --version print version information
-
-MODE must be one of the following:
-
- compile compile a source file into a libtool object
- execute automatically set library path, then run a program
- finish complete the installation of libtool libraries
- install install libraries or executables
- link create a library or an executable
- uninstall remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE."
- exit 0
- ;;
-
-compile)
- $echo \
-"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
- -o OUTPUT-FILE set the output file name to OUTPUT-FILE
- -static always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
- ;;
-
-execute)
- $echo \
-"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
- -dlopen FILE add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
- ;;
-
-finish)
- $echo \
-"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges. Use
-the \`--dry-run' option if you just want to see what would be executed."
- ;;
-
-install)
- $echo \
-"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command. The first component should be
-either the \`install' or \`cp' program.
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
- ;;
-
-link)
- $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
- -all-static do not do any dynamic linking at all
- -avoid-version do not add a version suffix if possible
- -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
- -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
- -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
- -export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
- -export-symbols-regex REGEX
- try to export only the symbols matching REGEX
- -LLIBDIR search LIBDIR for required installed libraries
- -lNAME OUTPUT-FILE requires the installed library libNAME
- -module build a library that can dlopened
- -no-undefined declare that a library does not refer to external symbols
- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
- -release RELEASE specify package release information
- -rpath LIBDIR the created library will eventually be installed in LIBDIR
- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -static do not do any dynamic linking of libtool libraries
- -version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename. Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
- ;;
-
-uninstall)
- $echo \
-"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
- ;;
-
-*)
- $echo "$modename: invalid operation mode \`$mode'" 1>&2
- $echo "$help" 1>&2
- exit 1
- ;;
-esac
-
-echo
-$echo "Try \`$modename --help' for more information about other modes."
-
-exit 0
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
--- a/common/libsndfile/missing
+++ /dev/null
@@ -1,188 +1,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, 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 General Public License for more details.
-
-# You should have received a copy of the GNU 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.
-
-if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
-fi
-
-case "$1" in
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
-
-Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing - GNU libit 0.0"
- ;;
-
- -*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
- ;;
-
- aclocal)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`acinclude.m4' or \`configure.in'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`configure.in'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`acconfig.h' or \`configure.in'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER([^):]*:\([^)]*\)).*/\1/p' configure.in`
- if test -z "$files"; then
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^):]*\)).*/\1/p' configure.in`
- test -z "$files" || files="$files.in"
- else
- files=`echo "$files" | sed -e 's/:/ /g'`
- fi
- test -z "$files" && files="config.h.in"
- touch $files
- ;;
-
- automake)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print \
- | sed 's/^\(.*\).am$/touch \1.in/' \
- | sh
- ;;
-
- bison|yacc)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if [ ! -f y.tab.h ]; then
- echo >y.tab.h
- fi
- if [ ! -f y.tab.c ]; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex|flex)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if [ ! -f lex.yy.c ]; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- makeinfo)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
- fi
- touch $file
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequirements for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
-
-exit 0
--- a/common/libsndfile/mkinstalldirs
+++ /dev/null
@@ -1,40 +1,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-# $Id: mkinstalldirs,v 1.2 2002/02/13 12:42:00 menno Exp $
-
-errstatus=0
-
-for file
-do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
-
- pathcomp=
- for d
- do
- pathcomp="$pathcomp$d"
- case "$pathcomp" in
- -* ) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp" 1>&2
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- fi
- fi
-
- pathcomp="$pathcomp/"
- done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
--- a/common/libsndfile/reconf
+++ /dev/null
@@ -1,15 +1,0 @@
-#!/bin/sh
-
-rm -f config.cache
-
-if [ -d m4 ]; then
- echo "Looking in m4 directory."
- aclocal -I m4
-else
- aclocal
- fi
-
-autoconf
-autoheader
-automake -a
-exit
--- a/common/libsndfile/src/G72x/ChangeLog
+++ /dev/null
@@ -1,50 +1,0 @@
-2001-06-05 Erik de Castro Lopo <erikd@zip.com.au>
-
- * g72x.c
- Added {} in function update () to prevent 'ambiguous else' warning messages.
-
-2000-07-14 Erik de Castro Lopo <erikd@zip.com.au>
-
- * g72x.c
- Modified g72x_init_state () to fit in with the new structure of the code.
- Implemented g72x_encode_block () and g72x_decode_block ().
-
-2000-07-12 Erik de Castro Lopo <erikd@zip.com.au>
-
- * g72x.h
- Moved nearly all definitions and function prototypes from this file have been
- moved to private.h.
- Added an enum defining the 4 different G72x ADPCM codecs.
- Added new function prototypes to define a cleaner interface to the encoder
- and decoder. This new interface also allows samples to be processed in blocks
- rather than on a sample by sample basis like the original code.
-
- * private.h
- Added prototypes moved from g72x.h.
- Changed struct g72x_state to a typedef struct { .. } G72x_PRIVATE.
- Added fields to G72x_PRIVATE required for working on blocks of samples.
-
-2000-06-07 Erik de Castro Lopo <erikd@zip.com.au>
-
- * g72x.c
- Fixed all compiler warnings.
- Removed functions tandem_adjust() which is not required by libsndfile.
-
- * g721.c
- Fixed all compiler warnings.
- Removed functions tandem_adjust_alaw() and tandem_adjust_ulaw () which are not
- required by libsndfile.
- Removed second parameter to g721_encoder () which is not required.
-
- * g72x.h
- Removed in_coding and out_coding parameters from all functions. These allowed
- g72x encoding/decoding to/from A-law or u-law and are not required by libsndfile.
- Removed unneeded defines for A-law, u-law and linear encoding.
-
- * g723_16.c
- Removed second parameter (in_coding) for g723_16_encoder().
- Removed second parameter (out_coding) for g723_16_decoder().
-
- * private.h
- New file containing prototypes and tyepdefs private to G72x code.
-
--- a/common/libsndfile/src/G72x/Makefile.am
+++ /dev/null
@@ -1,14 +1,0 @@
-# This file was automatically generated
-# DO NOT EDIT!
-
-EXTRA_DIST = README README.original ChangeLog
-
-noinst_HEADERS = g72x.h private.h
-noinst_LTLIBRARIES = libg72x.la
-
-CFILES = g72x.c g721.c g723_16.c g723_24.c g723_40.c
-
-libg72x_la_SOURCES = $(CFILES) $(noinst_HEADERS)
-
-# Disable autoheader.
-AUTOHEADER=echo
--- a/common/libsndfile/src/G72x/Makefile.in
+++ /dev/null
@@ -1,310 +1,0 @@
-# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-# This file was automatically generated
-# DO NOT EDIT!
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ../..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-SHARED_VERSION_INFO = @SHARED_VERSION_INFO@
-VERSION = @VERSION@
-subdirs = @subdirs@
-
-EXTRA_DIST = README README.original ChangeLog
-
-noinst_HEADERS = g72x.h private.h
-noinst_LTLIBRARIES = libg72x.la
-
-CFILES = g72x.c g721.c g723_16.c g723_24.c g723_40.c
-
-libg72x_la_SOURCES = $(CFILES) $(noinst_HEADERS)
-
-# Disable autoheader.
-AUTOHEADER = echo
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../../src/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I../../src
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libg72x_la_LDFLAGS =
-libg72x_la_LIBADD =
-libg72x_la_OBJECTS = g72x.lo g721.lo g723_16.lo g723_24.lo g723_40.lo
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-HEADERS = $(noinst_HEADERS)
-
-DIST_COMMON = README ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-SOURCES = $(libg72x_la_SOURCES)
-OBJECTS = $(libg72x_la_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/G72x/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-noinstLTLIBRARIES:
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-
-distclean-noinstLTLIBRARIES:
-
-maintainer-clean-noinstLTLIBRARIES:
-
-.c.o:
- $(COMPILE) -c $<
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
-mostlyclean-compile:
- -rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-libg72x.la: $(libg72x_la_OBJECTS) $(libg72x_la_DEPENDENCIES)
- $(LINK) $(libg72x_la_LDFLAGS) $(libg72x_la_OBJECTS) $(libg72x_la_LIBADD) $(LIBS)
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = src/G72x
-
-distdir: $(DISTFILES)
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$d/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-g721.lo g721.o : g721.c g72x.h private.h
-g723_16.lo g723_16.o : g723_16.c g72x.h private.h
-g723_24.lo g723_24.o : g723_24.c g72x.h private.h
-g723_40.lo g723_40.o : g723_40.c g72x.h private.h
-g72x.lo g72x.o : g72x.c g72x.h private.h
-
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am:
-uninstall: uninstall-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-noinstLTLIBRARIES mostlyclean-compile \
- mostlyclean-libtool mostlyclean-tags \
- mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-noinstLTLIBRARIES clean-compile clean-libtool \
- clean-tags clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-noinstLTLIBRARIES distclean-compile \
- distclean-libtool distclean-tags distclean-generic \
- clean-am
- -rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am: maintainer-clean-noinstLTLIBRARIES \
- maintainer-clean-compile maintainer-clean-libtool \
- maintainer-clean-tags maintainer-clean-generic \
- distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \
-clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
-install-exec install-data-am install-data install-am install \
-uninstall-am uninstall all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
--- a/common/libsndfile/src/G72x/README.original
+++ /dev/null
@@ -1,94 +1,0 @@
-The files in this directory comprise ANSI-C language reference implementations
-of the CCITT (International Telegraph and Telephone Consultative Committee)
-G.711, G.721 and G.723 voice compressions. They have been tested on Sun
-SPARCstations and passed 82 out of 84 test vectors published by CCITT
-(Dec. 20, 1988) for G.721 and G.723. [The two remaining test vectors,
-which the G.721 decoder implementation for u-law samples did not pass,
-may be in error because they are identical to two other vectors for G.723_40.]
-
-This source code is released by Sun Microsystems, Inc. to the public domain.
-Please give your acknowledgement in product literature if this code is used
-in your product implementation.
-
-Sun Microsystems supports some CCITT audio formats in Solaris 2.0 system
-software. However, Sun's implementations have been optimized for higher
-performance on SPARCstations.
-
-
-The source files for CCITT conversion routines in this directory are:
-
- g72x.h header file for g721.c, g723_24.c and g723_40.c
- g711.c CCITT G.711 u-law and A-law compression
- g72x.c common denominator of G.721 and G.723 ADPCM codes
- g721.c CCITT G.721 32Kbps ADPCM coder (with g72x.c)
- g723_24.c CCITT G.723 24Kbps ADPCM coder (with g72x.c)
- g723_40.c CCITT G.723 40Kbps ADPCM coder (with g72x.c)
-
-
-Simple conversions between u-law, A-law, and 16-bit linear PCM are invoked
-as follows:
-
- unsigned char ucode, acode;
- short pcm_val;
-
- ucode = linear2ulaw(pcm_val);
- ucode = alaw2ulaw(acode);
-
- acode = linear2alaw(pcm_val);
- acode = ulaw2alaw(ucode);
-
- pcm_val = ulaw2linear(ucode);
- pcm_val = alaw2linear(acode);
-
-
-The other CCITT compression routines are invoked as follows:
-
- #include "g72x.h"
-
- struct g72x_state state;
- int sample, code;
-
- g72x_init_state(&state);
- code = {g721,g723_24,g723_40}_encoder(sample, coding, &state);
- sample = {g721,g723_24,g723_40}_decoder(code, coding, &state);
-
-where
- coding = AUDIO_ENCODING_ULAW for 8-bit u-law samples
- AUDIO_ENCODING_ALAW for 8-bit A-law samples
- AUDIO_ENCODING_LINEAR for 16-bit linear PCM samples
-
-
-
-This directory also includes the following sample programs:
-
- encode.c CCITT ADPCM encoder
- decode.c CCITT ADPCM decoder
- Makefile makefile for the sample programs
-
-
-The sample programs contain examples of how to call the various compression
-routines and pack/unpack the bits. The sample programs read byte streams from
-stdin and write to stdout. The input/output data is raw data (no file header
-or other identifying information is embedded). The sample programs are
-invoked as follows:
-
- encode [-3|4|5] [-a|u|l] <infile >outfile
- decode [-3|4|5] [-a|u|l] <infile >outfile
-where:
- -3 encode to (decode from) G.723 24kbps (3-bit) data
- -4 encode to (decode from) G.721 32kbps (4-bit) data [the default]
- -5 encode to (decode from) G.723 40kbps (5-bit) data
- -a encode from (decode to) A-law data
- -u encode from (decode to) u-law data [the default]
- -l encode from (decode to) 16-bit linear data
-
-Examples:
- # Read 16-bit linear and output G.721
- encode -4 -l <pcmfile >g721file
-
- # Read 40Kbps G.723 and output A-law
- decode -5 -a <g723file >alawfile
-
- # Compress and then decompress u-law data using 24Kbps G.723
- encode -3 <ulawin | deoced -3 >ulawout
-
--- a/common/libsndfile/src/G72x/g721.c
+++ /dev/null
@@ -1,154 +1,0 @@
-/*
- * This source code is a product of Sun Microsystems, Inc. and is provided
- * for unrestricted use. Users may copy or modify this source code without
- * charge.
- *
- * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
- * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun source code is provided with no support and without any obligation on
- * the part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * g721.c
- *
- * Description:
- *
- * g721_encoder(), g721_decoder()
- *
- * These routines comprise an implementation of the CCITT G.721 ADPCM
- * coding algorithm. Essentially, this implementation is identical to
- * the bit level description except for a few deviations which
- * take advantage of work station attributes, such as hardware 2's
- * complement arithmetic and large memory. Specifically, certain time
- * consuming operations such as multiplications are replaced
- * with lookup tables and software 2's complement operations are
- * replaced with hardware 2's complement.
- *
- * The deviation from the bit level specification (lookup tables)
- * preserves the bit level performance specifications.
- *
- * As outlined in the G.721 Recommendation, the algorithm is broken
- * down into modules. Each section of code below is preceded by
- * the name of the module which it is implementing.
- *
- */
-
-#include "g72x.h"
-#include "private.h"
-
-static short qtab_721[7] = {-124, 80, 178, 246, 300, 349, 400};
-/*
- * Maps G.721 code word to reconstructed scale factor normalized log
- * magnitude values.
- */
-static short _dqlntab[16] = {-2048, 4, 135, 213, 273, 323, 373, 425,
- 425, 373, 323, 273, 213, 135, 4, -2048};
-
-/* Maps G.721 code word to log of scale factor multiplier. */
-static short _witab[16] = {-12, 18, 41, 64, 112, 198, 355, 1122,
- 1122, 355, 198, 112, 64, 41, 18, -12};
-/*
- * Maps G.721 code words to a set of values whose long and short
- * term averages are computed and then compared to give an indication
- * how stationary (steady state) the signal is.
- */
-static short _fitab[16] = {0, 0, 0, 0x200, 0x200, 0x200, 0x600, 0xE00,
- 0xE00, 0x600, 0x200, 0x200, 0x200, 0, 0, 0};
-
-/*
- * g721_encoder()
- *
- * Encodes the input vale of linear PCM, A-law or u-law data sl and returns
- * the resulting code. -1 is returned for unknown input coding value.
- */
-int
-g721_encoder(
- int sl,
- G72x_STATE *state_ptr)
-{
- short sezi, se, sez; /* ACCUM */
- short d; /* SUBTA */
- short sr; /* ADDB */
- short y; /* MIX */
- short dqsez; /* ADDC */
- short dq, i;
-
- /* linearize input sample to 14-bit PCM */
- sl >>= 2; /* 14-bit dynamic range */
-
- sezi = predictor_zero(state_ptr);
- sez = sezi >> 1;
- se = (sezi + predictor_pole(state_ptr)) >> 1; /* estimated signal */
-
- d = sl - se; /* estimation difference */
-
- /* quantize the prediction difference */
- y = step_size(state_ptr); /* quantizer step size */
- i = quantize(d, y, qtab_721, 7); /* i = ADPCM code */
-
- dq = reconstruct(i & 8, _dqlntab[i], y); /* quantized est diff */
-
- sr = (dq < 0) ? se - (dq & 0x3FFF) : se + dq; /* reconst. signal */
-
- dqsez = sr + sez - se; /* pole prediction diff. */
-
- update(4, y, _witab[i] << 5, _fitab[i], dq, sr, dqsez, state_ptr);
-
- return (i);
-}
-
-/*
- * g721_decoder()
- *
- * Description:
- *
- * Decodes a 4-bit code of G.721 encoded data of i and
- * returns the resulting linear PCM, A-law or u-law value.
- * return -1 for unknown out_coding value.
- */
-int
-g721_decoder(
- int i,
- G72x_STATE *state_ptr)
-{
- short sezi, sei, sez, se; /* ACCUM */
- short y; /* MIX */
- short sr; /* ADDB */
- short dq;
- short dqsez;
-
- i &= 0x0f; /* mask to get proper bits */
- sezi = predictor_zero(state_ptr);
- sez = sezi >> 1;
- sei = sezi + predictor_pole(state_ptr);
- se = sei >> 1; /* se = estimated signal */
-
- y = step_size(state_ptr); /* dynamic quantizer step size */
-
- dq = reconstruct(i & 0x08, _dqlntab[i], y); /* quantized diff. */
-
- sr = (dq < 0) ? (se - (dq & 0x3FFF)) : se + dq; /* reconst. signal */
-
- dqsez = sr - se + sez; /* pole prediction diff. */
-
- update(4, y, _witab[i] << 5, _fitab[i], dq, sr, dqsez, state_ptr);
-
- /* sr was 14-bit dynamic range */
- return (sr << 2);
-}
--- a/common/libsndfile/src/G72x/g723_16.c
+++ /dev/null
@@ -1,161 +1,0 @@
-/*
- * This source code is a product of Sun Microsystems, Inc. and is provided
- * for unrestricted use. Users may copy or modify this source code without
- * charge.
- *
- * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
- * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun source code is provided with no support and without any obligation on
- * the part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-/* 16kbps version created, used 24kbps code and changing as little as possible.
- * G.726 specs are available from ITU's gopher or WWW site (http://www.itu.ch)
- * If any errors are found, please contact me at mrand@tamu.edu
- * -Marc Randolph
- */
-
-/*
- * g723_16.c
- *
- * Description:
- *
- * g723_16_encoder(), g723_16_decoder()
- *
- * These routines comprise an implementation of the CCITT G.726 16 Kbps
- * ADPCM coding algorithm. Essentially, this implementation is identical to
- * the bit level description except for a few deviations which take advantage
- * of workstation attributes, such as hardware 2's complement arithmetic.
- *
- */
-
-#include "g72x.h"
-#include "private.h"
-
-/*
- * Maps G.723_16 code word to reconstructed scale factor normalized log
- * magnitude values. Comes from Table 11/G.726
- */
-static short _dqlntab[4] = { 116, 365, 365, 116};
-
-/* Maps G.723_16 code word to log of scale factor multiplier.
- *
- * _witab[4] is actually {-22 , 439, 439, -22}, but FILTD wants it
- * as WI << 5 (multiplied by 32), so we'll do that here
- */
-static short _witab[4] = {-704, 14048, 14048, -704};
-
-/*
- * Maps G.723_16 code words to a set of values whose long and short
- * term averages are computed and then compared to give an indication
- * how stationary (steady state) the signal is.
- */
-
-/* Comes from FUNCTF */
-static short _fitab[4] = {0, 0xE00, 0xE00, 0};
-
-/* Comes from quantizer decision level tables (Table 7/G.726)
- */
-static short qtab_723_16[1] = {261};
-
-
-/*
- * g723_16_encoder()
- *
- * Encodes a linear PCM, A-law or u-law input sample and returns its 2-bit code.
- * Returns -1 if invalid input coding value.
- */
-int
-g723_16_encoder(
- int sl,
- G72x_STATE *state_ptr)
-{
- short sei, sezi, se, sez; /* ACCUM */
- short d; /* SUBTA */
- short y; /* MIX */
- short sr; /* ADDB */
- short dqsez; /* ADDC */
- short dq, i;
-
- /* linearize input sample to 14-bit PCM */
- sl >>= 2; /* sl of 14-bit dynamic range */
-
- sezi = predictor_zero(state_ptr);
- sez = sezi >> 1;
- sei = sezi + predictor_pole(state_ptr);
- se = sei >> 1; /* se = estimated signal */
-
- d = sl - se; /* d = estimation diff. */
-
- /* quantize prediction difference d */
- y = step_size(state_ptr); /* quantizer step size */
- i = quantize(d, y, qtab_723_16, 1); /* i = ADPCM code */
-
- /* Since quantize() only produces a three level output
- * (1, 2, or 3), we must create the fourth one on our own
- */
- if (i == 3) /* i code for the zero region */
- if ((d & 0x8000) == 0) /* If d > 0, i=3 isn't right... */
- i = 0;
-
- dq = reconstruct(i & 2, _dqlntab[i], y); /* quantized diff. */
-
- sr = (dq < 0) ? se - (dq & 0x3FFF) : se + dq; /* reconstructed signal */
-
- dqsez = sr + sez - se; /* pole prediction diff. */
-
- update(2, y, _witab[i], _fitab[i], dq, sr, dqsez, state_ptr);
-
- return (i);
-}
-
-/*
- * g723_16_decoder()
- *
- * Decodes a 2-bit CCITT G.723_16 ADPCM code and returns
- * the resulting 16-bit linear PCM, A-law or u-law sample value.
- * -1 is returned if the output coding is unknown.
- */
-int
-g723_16_decoder(
- int i,
- G72x_STATE *state_ptr)
-{
- short sezi, sei, sez, se; /* ACCUM */
- short y; /* MIX */
- short sr; /* ADDB */
- short dq;
- short dqsez;
-
- i &= 0x03; /* mask to get proper bits */
- sezi = predictor_zero(state_ptr);
- sez = sezi >> 1;
- sei = sezi + predictor_pole(state_ptr);
- se = sei >> 1; /* se = estimated signal */
-
- y = step_size(state_ptr); /* adaptive quantizer step size */
- dq = reconstruct(i & 0x02, _dqlntab[i], y); /* unquantize pred diff */
-
- sr = (dq < 0) ? (se - (dq & 0x3FFF)) : (se + dq); /* reconst. signal */
-
- dqsez = sr - se + sez; /* pole prediction diff. */
-
- update(2, y, _witab[i], _fitab[i], dq, sr, dqsez, state_ptr);
-
- /* sr was of 14-bit dynamic range */
- return (sr << 2);
-}
--- a/common/libsndfile/src/G72x/g723_24.c
+++ /dev/null
@@ -1,138 +1,0 @@
-/*
- * This source code is a product of Sun Microsystems, Inc. and is provided
- * for unrestricted use. Users may copy or modify this source code without
- * charge.
- *
- * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
- * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun source code is provided with no support and without any obligation on
- * the part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * g723_24.c
- *
- * Description:
- *
- * g723_24_encoder(), g723_24_decoder()
- *
- * These routines comprise an implementation of the CCITT G.723 24 Kbps
- * ADPCM coding algorithm. Essentially, this implementation is identical to
- * the bit level description except for a few deviations which take advantage
- * of workstation attributes, such as hardware 2's complement arithmetic.
- *
- */
-
-#include "g72x.h"
-#include "private.h"
-
-/*
- * Maps G.723_24 code word to reconstructed scale factor normalized log
- * magnitude values.
- */
-static short _dqlntab[8] = {-2048, 135, 273, 373, 373, 273, 135, -2048};
-
-/* Maps G.723_24 code word to log of scale factor multiplier. */
-static short _witab[8] = {-128, 960, 4384, 18624, 18624, 4384, 960, -128};
-
-/*
- * Maps G.723_24 code words to a set of values whose long and short
- * term averages are computed and then compared to give an indication
- * how stationary (steady state) the signal is.
- */
-static short _fitab[8] = {0, 0x200, 0x400, 0xE00, 0xE00, 0x400, 0x200, 0};
-
-static short qtab_723_24[3] = {8, 218, 331};
-
-/*
- * g723_24_encoder()
- *
- * Encodes a linear PCM, A-law or u-law input sample and returns its 3-bit code.
- * Returns -1 if invalid input coding value.
- */
-int
-g723_24_encoder(
- int sl,
- G72x_STATE *state_ptr)
-{
- short sei, sezi, se, sez; /* ACCUM */
- short d; /* SUBTA */
- short y; /* MIX */
- short sr; /* ADDB */
- short dqsez; /* ADDC */
- short dq, i;
-
- /* linearize input sample to 14-bit PCM */
- sl >>= 2; /* sl of 14-bit dynamic range */
-
- sezi = predictor_zero(state_ptr);
- sez = sezi >> 1;
- sei = sezi + predictor_pole(state_ptr);
- se = sei >> 1; /* se = estimated signal */
-
- d = sl - se; /* d = estimation diff. */
-
- /* quantize prediction difference d */
- y = step_size(state_ptr); /* quantizer step size */
- i = quantize(d, y, qtab_723_24, 3); /* i = ADPCM code */
- dq = reconstruct(i & 4, _dqlntab[i], y); /* quantized diff. */
-
- sr = (dq < 0) ? se - (dq & 0x3FFF) : se + dq; /* reconstructed signal */
-
- dqsez = sr + sez - se; /* pole prediction diff. */
-
- update(3, y, _witab[i], _fitab[i], dq, sr, dqsez, state_ptr);
-
- return (i);
-}
-
-/*
- * g723_24_decoder()
- *
- * Decodes a 3-bit CCITT G.723_24 ADPCM code and returns
- * the resulting 16-bit linear PCM, A-law or u-law sample value.
- * -1 is returned if the output coding is unknown.
- */
-int
-g723_24_decoder(
- int i,
- G72x_STATE *state_ptr)
-{
- short sezi, sei, sez, se; /* ACCUM */
- short y; /* MIX */
- short sr; /* ADDB */
- short dq;
- short dqsez;
-
- i &= 0x07; /* mask to get proper bits */
- sezi = predictor_zero(state_ptr);
- sez = sezi >> 1;
- sei = sezi + predictor_pole(state_ptr);
- se = sei >> 1; /* se = estimated signal */
-
- y = step_size(state_ptr); /* adaptive quantizer step size */
- dq = reconstruct(i & 0x04, _dqlntab[i], y); /* unquantize pred diff */
-
- sr = (dq < 0) ? (se - (dq & 0x3FFF)) : (se + dq); /* reconst. signal */
-
- dqsez = sr - se + sez; /* pole prediction diff. */
-
- update(3, y, _witab[i], _fitab[i], dq, sr, dqsez, state_ptr);
-
- return (sr << 2); /* sr was of 14-bit dynamic range */
-}
--- a/common/libsndfile/src/G72x/g723_40.c
+++ /dev/null
@@ -1,152 +1,0 @@
-/*
- * This source code is a product of Sun Microsystems, Inc. and is provided
- * for unrestricted use. Users may copy or modify this source code without
- * charge.
- *
- * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
- * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun source code is provided with no support and without any obligation on
- * the part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * g723_40.c
- *
- * Description:
- *
- * g723_40_encoder(), g723_40_decoder()
- *
- * These routines comprise an implementation of the CCITT G.723 40Kbps
- * ADPCM coding algorithm. Essentially, this implementation is identical to
- * the bit level description except for a few deviations which
- * take advantage of workstation attributes, such as hardware 2's
- * complement arithmetic.
- *
- * The deviation from the bit level specification (lookup tables),
- * preserves the bit level performance specifications.
- *
- * As outlined in the G.723 Recommendation, the algorithm is broken
- * down into modules. Each section of code below is preceded by
- * the name of the module which it is implementing.
- *
- */
-
-#include "g72x.h"
-#include "private.h"
-
-/*
- * Maps G.723_40 code word to ructeconstructed scale factor normalized log
- * magnitude values.
- */
-static short _dqlntab[32] = {-2048, -66, 28, 104, 169, 224, 274, 318,
- 358, 395, 429, 459, 488, 514, 539, 566,
- 566, 539, 514, 488, 459, 429, 395, 358,
- 318, 274, 224, 169, 104, 28, -66, -2048};
-
-/* Maps G.723_40 code word to log of scale factor multiplier. */
-static short _witab[32] = {448, 448, 768, 1248, 1280, 1312, 1856, 3200,
- 4512, 5728, 7008, 8960, 11456, 14080, 16928, 22272,
- 22272, 16928, 14080, 11456, 8960, 7008, 5728, 4512,
- 3200, 1856, 1312, 1280, 1248, 768, 448, 448};
-
-/*
- * Maps G.723_40 code words to a set of values whose long and short
- * term averages are computed and then compared to give an indication
- * how stationary (steady state) the signal is.
- */
-static short _fitab[32] = {0, 0, 0, 0, 0, 0x200, 0x200, 0x200,
- 0x200, 0x200, 0x400, 0x600, 0x800, 0xA00, 0xC00, 0xC00,
- 0xC00, 0xC00, 0xA00, 0x800, 0x600, 0x400, 0x200, 0x200,
- 0x200, 0x200, 0x200, 0, 0, 0, 0, 0};
-
-static short qtab_723_40[15] = {-122, -16, 68, 139, 198, 250, 298, 339,
- 378, 413, 445, 475, 502, 528, 553};
-
-/*
- * g723_40_encoder()
- *
- * Encodes a 16-bit linear PCM, A-law or u-law input sample and retuens
- * the resulting 5-bit CCITT G.723 40Kbps code.
- * Returns -1 if the input coding value is invalid.
- */
-int g723_40_encoder (int sl, G72x_STATE *state_ptr)
-{
- short sei, sezi, se, sez; /* ACCUM */
- short d; /* SUBTA */
- short y; /* MIX */
- short sr; /* ADDB */
- short dqsez; /* ADDC */
- short dq, i;
-
- /* linearize input sample to 14-bit PCM */
- sl >>= 2; /* sl of 14-bit dynamic range */
-
- sezi = predictor_zero(state_ptr);
- sez = sezi >> 1;
- sei = sezi + predictor_pole(state_ptr);
- se = sei >> 1; /* se = estimated signal */
-
- d = sl - se; /* d = estimation difference */
-
- /* quantize prediction difference */
- y = step_size(state_ptr); /* adaptive quantizer step size */
- i = quantize(d, y, qtab_723_40, 15); /* i = ADPCM code */
-
- dq = reconstruct(i & 0x10, _dqlntab[i], y); /* quantized diff */
-
- sr = (dq < 0) ? se - (dq & 0x7FFF) : se + dq; /* reconstructed signal */
-
- dqsez = sr + sez - se; /* dqsez = pole prediction diff. */
-
- update(5, y, _witab[i], _fitab[i], dq, sr, dqsez, state_ptr);
-
- return (i);
-}
-
-/*
- * g723_40_decoder()
- *
- * Decodes a 5-bit CCITT G.723 40Kbps code and returns
- * the resulting 16-bit linear PCM, A-law or u-law sample value.
- * -1 is returned if the output coding is unknown.
- */
-int g723_40_decoder (int i, G72x_STATE *state_ptr)
-{
- short sezi, sei, sez, se; /* ACCUM */
- short y ; /* MIX */
- short sr; /* ADDB */
- short dq;
- short dqsez;
-
- i &= 0x1f; /* mask to get proper bits */
- sezi = predictor_zero(state_ptr);
- sez = sezi >> 1;
- sei = sezi + predictor_pole(state_ptr);
- se = sei >> 1; /* se = estimated signal */
-
- y = step_size(state_ptr); /* adaptive quantizer step size */
- dq = reconstruct(i & 0x10, _dqlntab[i], y); /* estimation diff. */
-
- sr = (dq < 0) ? (se - (dq & 0x7FFF)) : (se + dq); /* reconst. signal */
-
- dqsez = sr - se + sez; /* pole prediction diff. */
-
- update(5, y, _witab[i], _fitab[i], dq, sr, dqsez, state_ptr);
-
- return (sr << 2); /* sr was of 14-bit dynamic range */
-}
--- a/common/libsndfile/src/G72x/g72x.c
+++ /dev/null
@@ -1,621 +1,0 @@
-/*
- * This source code is a product of Sun Microsystems, Inc. and is provided
- * for unrestricted use. Users may copy or modify this source code without
- * charge.
- *
- * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
- * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun source code is provided with no support and without any obligation on
- * the part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * g72x.c
- *
- * Common routines for G.721 and G.723 conversions.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "g72x.h"
-#include "private.h"
-
-static
-short power2 [15] =
-{ 1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80,
- 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000
-} ;
-
-/*
- * quan()
- *
- * quantizes the input val against the table of size short integers.
- * It returns i if table[i - 1] <= val < table[i].
- *
- * Using linear search for simple coding.
- */
-static
-int quan (int val, short *table, int size)
-{
- int i;
-
- for (i = 0; i < size; i++)
- if (val < *table++)
- break;
- return (i);
-}
-
-/*
- * fmult()
- *
- * returns the integer product of the 14-bit integer "an" and
- * "floating point" representation (4-bit exponent, 6-bit mantessa) "srn".
- */
-static
-int fmult (int an, int srn)
-{
- short anmag, anexp, anmant;
- short wanexp, wanmant;
- short retval;
-
- anmag = (an > 0) ? an : ((-an) & 0x1FFF);
- anexp = quan(anmag, power2, 15) - 6;
- anmant = (anmag == 0) ? 32 :
- (anexp >= 0) ? anmag >> anexp : anmag << -anexp;
- wanexp = anexp + ((srn >> 6) & 0xF) - 13;
-
- wanmant = (anmant * (srn & 077) + 0x30) >> 4;
- retval = (wanexp >= 0) ? ((wanmant << wanexp) & 0x7FFF) :
- (wanmant >> -wanexp);
-
- return (((an ^ srn) < 0) ? -retval : retval);
-}
-
-/*
- * private_init_state()
- *
- * This routine initializes and/or resets the G72x_PRIVATE structure
- * pointed to by 'state_ptr'.
- * All the initial state values are specified in the CCITT G.721 document.
- */
-static
-void private_init_state (G72x_STATE *state_ptr)
-{
- int cnta;
-
- state_ptr->yl = 34816;
- state_ptr->yu = 544;
- state_ptr->dms = 0;
- state_ptr->dml = 0;
- state_ptr->ap = 0;
- for (cnta = 0; cnta < 2; cnta++) {
- state_ptr->a[cnta] = 0;
- state_ptr->pk[cnta] = 0;
- state_ptr->sr[cnta] = 32;
- }
- for (cnta = 0; cnta < 6; cnta++) {
- state_ptr->b[cnta] = 0;
- state_ptr->dq[cnta] = 32;
- }
- state_ptr->td = 0;
-} /* private_init_state */
-
-int g72x_reader_init (G72x_DATA *data, int codec)
-{ G72x_STATE *pstate ;
-
- if (sizeof (data->private) < sizeof (G72x_STATE))
- { /* This is for safety only. */
- return 1 ;
- } ;
-
- memset (data, 0, sizeof (G72x_DATA)) ;
-
- pstate = (G72x_STATE*) data->private ;
- private_init_state (pstate) ;
-
- pstate->encoder = NULL ;
-
- switch (codec)
- { case G723_16_BITS_PER_SAMPLE : /* 2 bits per sample. */
- pstate->decoder = g723_16_decoder ;
- data->blocksize = G723_16_BYTES_PER_BLOCK ;
- data->samplesperblock = G723_16_SAMPLES_PER_BLOCK ;
- pstate->codec_bits = 2 ;
- break ;
-
- case G723_24_BITS_PER_SAMPLE : /* 3 bits per sample. */
- pstate->decoder = g723_24_decoder ;
- data->blocksize = G723_24_BYTES_PER_BLOCK ;
- data->samplesperblock = G723_24_SAMPLES_PER_BLOCK ;
- pstate->codec_bits = 3 ;
- break ;
-
- case G721_32_BITS_PER_SAMPLE : /* 4 bits per sample. */
- pstate->decoder = g721_decoder ;
- data->blocksize = G721_32_BYTES_PER_BLOCK ;
- data->samplesperblock = G721_32_SAMPLES_PER_BLOCK ;
- pstate->codec_bits = 4 ;
- break ;
-
- case G721_40_BITS_PER_SAMPLE : /* 5 bits per sample. */
- pstate->decoder = g723_40_decoder ;
- data->blocksize = G721_40_BYTES_PER_BLOCK ;
- data->samplesperblock = G721_40_SAMPLES_PER_BLOCK ;
- pstate->codec_bits = 5 ;
- break ;
-
- default : return 1 ;
- } ;
-
- return 0 ;
-} /* g72x_reader_init */
-
-int g72x_writer_init (G72x_DATA *data, int codec)
-{ G72x_STATE *pstate ;
-
- if (sizeof (data->private) < sizeof (G72x_STATE))
- { /* This is for safety only. Gets optimised out. */
- return 1 ;
- } ;
-
- memset (data, 0, sizeof (G72x_DATA)) ;
-
- pstate = (G72x_STATE*) data->private ;
- private_init_state (pstate) ;
-
- pstate->decoder = NULL ;
-
- switch (codec)
- { case G723_16_BITS_PER_SAMPLE : /* 2 bits per sample. */
- pstate->encoder = g723_16_encoder ;
- data->blocksize = G723_16_BYTES_PER_BLOCK ;
- data->samplesperblock = G723_16_SAMPLES_PER_BLOCK ;
- pstate->codec_bits = 2 ;
- break ;
-
- case G723_24_BITS_PER_SAMPLE : /* 3 bits per sample. */
- pstate->encoder = g723_24_encoder ;
- data->blocksize = G723_24_BYTES_PER_BLOCK ;
- data->samplesperblock = G723_24_SAMPLES_PER_BLOCK ;
- pstate->codec_bits = 3 ;
- break ;
-
- case G721_32_BITS_PER_SAMPLE : /* 4 bits per sample. */
- pstate->encoder = g721_encoder ;
- data->blocksize = G721_32_BYTES_PER_BLOCK ;
- data->samplesperblock = G721_32_SAMPLES_PER_BLOCK ;
- pstate->codec_bits = 4 ;
- break ;
-
- case G721_40_BITS_PER_SAMPLE : /* 5 bits per sample. */
- pstate->encoder = g723_40_encoder ;
- data->blocksize = G721_40_BYTES_PER_BLOCK ;
- data->samplesperblock = G721_40_SAMPLES_PER_BLOCK ;
- pstate->codec_bits = 5 ;
- break ;
-
- default : return 1 ;
- } ;
-
- return 0 ;
-} /* g72x_writer_init */
-
-static
-int unpack_bytes (G72x_DATA *data, int bits)
-{ unsigned int in_buffer = 0 ;
- unsigned char in_byte ;
- int k, in_bits = 0, bindex = 0 ;
-
- for (k = 0 ; bindex <= data->blocksize && k < G72x_BLOCK_SIZE ; k++)
- { if (in_bits < bits)
- { in_byte = data->block [bindex++] ;
-
- in_buffer |= (in_byte << in_bits);
- in_bits += 8;
- }
- data->samples [k] = in_buffer & ((1 << bits) - 1);
- in_buffer >>= bits;
- in_bits -= bits;
- } ;
-
- return k ;
-} /* unpack_bytes */
-
-int g72x_decode_block (G72x_DATA *data)
-{ G72x_STATE *pstate ;
- int k, count ;
-
- pstate = (G72x_STATE*) data->private ;
-
- count = unpack_bytes (data, pstate->codec_bits) ;
-
- for (k = 0 ; k < count ; k++)
- data->samples [k] = pstate->decoder (data->samples [k], pstate) ;
-
- return 0 ;
-} /* g72x_decode_block */
-
-static
-int pack_bytes (G72x_DATA *data, int bits)
-{
- unsigned int out_buffer = 0 ;
- int k, bindex = 0, out_bits = 0 ;
- unsigned char out_byte ;
-
- for (k = 0 ; k < G72x_BLOCK_SIZE ; k++)
- { out_buffer |= (data->samples [k] << out_bits) ;
- out_bits += bits ;
- if (out_bits >= 8)
- { out_byte = out_buffer & 0xFF ;
- out_bits -= 8 ;
- out_buffer >>= 8 ;
- data->block [bindex++] = out_byte ;
- }
- } ;
-
- return bindex ;
-} /* pack_bytes */
-
-int g72x_encode_block (G72x_DATA *data)
-{ G72x_STATE *pstate ;
- int k, count ;
-
- pstate = (G72x_STATE*) data->private ;
-
- for (k = 0 ; k < data->samplesperblock ; k++)
- data->samples [k] = pstate->encoder (data->samples [k], pstate) ;
-
- count = pack_bytes (data, pstate->codec_bits) ;
-
- return count ;
-} /* g72x_encode_block */
-
-/*
- * predictor_zero()
- *
- * computes the estimated signal from 6-zero predictor.
- *
- */
-int predictor_zero (G72x_STATE *state_ptr)
-{
- int i;
- int sezi;
-
- sezi = fmult(state_ptr->b[0] >> 2, state_ptr->dq[0]);
- for (i = 1; i < 6; i++) /* ACCUM */
- sezi += fmult(state_ptr->b[i] >> 2, state_ptr->dq[i]);
- return (sezi);
-}
-/*
- * predictor_pole()
- *
- * computes the estimated signal from 2-pole predictor.
- *
- */
-int predictor_pole(G72x_STATE *state_ptr)
-{
- return (fmult(state_ptr->a[1] >> 2, state_ptr->sr[1]) +
- fmult(state_ptr->a[0] >> 2, state_ptr->sr[0]));
-}
-/*
- * step_size()
- *
- * computes the quantization step size of the adaptive quantizer.
- *
- */
-int step_size (G72x_STATE *state_ptr)
-{
- int y;
- int dif;
- int al;
-
- if (state_ptr->ap >= 256)
- return (state_ptr->yu);
- else {
- y = state_ptr->yl >> 6;
- dif = state_ptr->yu - y;
- al = state_ptr->ap >> 2;
- if (dif > 0)
- y += (dif * al) >> 6;
- else if (dif < 0)
- y += (dif * al + 0x3F) >> 6;
- return (y);
- }
-}
-
-/*
- * quantize()
- *
- * Given a raw sample, 'd', of the difference signal and a
- * quantization step size scale factor, 'y', this routine returns the
- * ADPCM codeword to which that sample gets quantized. The step
- * size scale factor division operation is done in the log base 2 domain
- * as a subtraction.
- */
-int quantize(
- int d, /* Raw difference signal sample */
- int y, /* Step size multiplier */
- short *table, /* quantization table */
- int size) /* table size of short integers */
-{
- short dqm; /* Magnitude of 'd' */
- short exp; /* Integer part of base 2 log of 'd' */
- short mant; /* Fractional part of base 2 log */
- short dl; /* Log of magnitude of 'd' */
- short dln; /* Step size scale factor normalized log */
- int i;
-
- /*
- * LOG
- *
- * Compute base 2 log of 'd', and store in 'dl'.
- */
- dqm = abs(d);
- exp = quan(dqm >> 1, power2, 15);
- mant = ((dqm << 7) >> exp) & 0x7F; /* Fractional portion. */
- dl = (exp << 7) + mant;
-
- /*
- * SUBTB
- *
- * "Divide" by step size multiplier.
- */
- dln = dl - (y >> 2);
-
- /*
- * QUAN
- *
- * Obtain codword i for 'd'.
- */
- i = quan(dln, table, size);
- if (d < 0) /* take 1's complement of i */
- return ((size << 1) + 1 - i);
- else if (i == 0) /* take 1's complement of 0 */
- return ((size << 1) + 1); /* new in 1988 */
- else
- return (i);
-}
-/*
- * reconstruct()
- *
- * Returns reconstructed difference signal 'dq' obtained from
- * codeword 'i' and quantization step size scale factor 'y'.
- * Multiplication is performed in log base 2 domain as addition.
- */
-int
-reconstruct(
- int sign, /* 0 for non-negative value */
- int dqln, /* G.72x codeword */
- int y) /* Step size multiplier */
-{
- short dql; /* Log of 'dq' magnitude */
- short dex; /* Integer part of log */
- short dqt;
- short dq; /* Reconstructed difference signal sample */
-
- dql = dqln + (y >> 2); /* ADDA */
-
- if (dql < 0) {
- return ((sign) ? -0x8000 : 0);
- } else { /* ANTILOG */
- dex = (dql >> 7) & 15;
- dqt = 128 + (dql & 127);
- dq = (dqt << 7) >> (14 - dex);
- return ((sign) ? (dq - 0x8000) : dq);
- }
-}
-
-
-/*
- * update()
- *
- * updates the state variables for each output code
- */
-void
-update(
- int code_size, /* distinguish 723_40 with others */
- int y, /* quantizer step size */
- int wi, /* scale factor multiplier */
- int fi, /* for long/short term energies */
- int dq, /* quantized prediction difference */
- int sr, /* reconstructed signal */
- int dqsez, /* difference from 2-pole predictor */
- G72x_STATE *state_ptr) /* coder state pointer */
-{
- int cnt;
- short mag, exp; /* Adaptive predictor, FLOAT A */
- short a2p = 0; /* LIMC */
- short a1ul; /* UPA1 */
- short pks1; /* UPA2 */
- short fa1;
- char tr; /* tone/transition detector */
- short ylint, thr2, dqthr;
- short ylfrac, thr1;
- short pk0;
-
- pk0 = (dqsez < 0) ? 1 : 0; /* needed in updating predictor poles */
-
- mag = dq & 0x7FFF; /* prediction difference magnitude */
- /* TRANS */
- ylint = state_ptr->yl >> 15; /* exponent part of yl */
- ylfrac = (state_ptr->yl >> 10) & 0x1F; /* fractional part of yl */
- thr1 = (32 + ylfrac) << ylint; /* threshold */
- thr2 = (ylint > 9) ? 31 << 10 : thr1; /* limit thr2 to 31 << 10 */
- dqthr = (thr2 + (thr2 >> 1)) >> 1; /* dqthr = 0.75 * thr2 */
- if (state_ptr->td == 0) /* signal supposed voice */
- tr = 0;
- else if (mag <= dqthr) /* supposed data, but small mag */
- tr = 0; /* treated as voice */
- else /* signal is data (modem) */
- tr = 1;
-
- /*
- * Quantizer scale factor adaptation.
- */
-
- /* FUNCTW & FILTD & DELAY */
- /* update non-steady state step size multiplier */
- state_ptr->yu = y + ((wi - y) >> 5);
-
- /* LIMB */
- if (state_ptr->yu < 544) /* 544 <= yu <= 5120 */
- state_ptr->yu = 544;
- else if (state_ptr->yu > 5120)
- state_ptr->yu = 5120;
-
- /* FILTE & DELAY */
- /* update steady state step size multiplier */
- state_ptr->yl += state_ptr->yu + ((-state_ptr->yl) >> 6);
-
- /*
- * Adaptive predictor coefficients.
- */
- if (tr == 1) { /* reset a's and b's for modem signal */
- state_ptr->a[0] = 0;
- state_ptr->a[1] = 0;
- state_ptr->b[0] = 0;
- state_ptr->b[1] = 0;
- state_ptr->b[2] = 0;
- state_ptr->b[3] = 0;
- state_ptr->b[4] = 0;
- state_ptr->b[5] = 0;
- } else { /* update a's and b's */
- pks1 = pk0 ^ state_ptr->pk[0]; /* UPA2 */
-
- /* update predictor pole a[1] */
- a2p = state_ptr->a[1] - (state_ptr->a[1] >> 7);
- if (dqsez != 0) {
- fa1 = (pks1) ? state_ptr->a[0] : -state_ptr->a[0];
- if (fa1 < -8191) /* a2p = function of fa1 */
- a2p -= 0x100;
- else if (fa1 > 8191)
- a2p += 0xFF;
- else
- a2p += fa1 >> 5;
-
- if (pk0 ^ state_ptr->pk[1])
- { /* LIMC */
- if (a2p <= -12160)
- a2p = -12288;
- else if (a2p >= 12416)
- a2p = 12288;
- else
- a2p -= 0x80;
- }
- else if (a2p <= -12416)
- a2p = -12288;
- else if (a2p >= 12160)
- a2p = 12288;
- else
- a2p += 0x80;
- }
-
- /* TRIGB & DELAY */
- state_ptr->a[1] = a2p;
-
- /* UPA1 */
- /* update predictor pole a[0] */
- state_ptr->a[0] -= state_ptr->a[0] >> 8;
- if (dqsez != 0)
- { if (pks1 == 0)
- state_ptr->a[0] += 192;
- else
- state_ptr->a[0] -= 192;
- } ;
-
- /* LIMD */
- a1ul = 15360 - a2p;
- if (state_ptr->a[0] < -a1ul)
- state_ptr->a[0] = -a1ul;
- else if (state_ptr->a[0] > a1ul)
- state_ptr->a[0] = a1ul;
-
- /* UPB : update predictor zeros b[6] */
- for (cnt = 0; cnt < 6; cnt++) {
- if (code_size == 5) /* for 40Kbps G.723 */
- state_ptr->b[cnt] -= state_ptr->b[cnt] >> 9;
- else /* for G.721 and 24Kbps G.723 */
- state_ptr->b[cnt] -= state_ptr->b[cnt] >> 8;
- if (dq & 0x7FFF) { /* XOR */
- if ((dq ^ state_ptr->dq[cnt]) >= 0)
- state_ptr->b[cnt] += 128;
- else
- state_ptr->b[cnt] -= 128;
- }
- }
- }
-
- for (cnt = 5; cnt > 0; cnt--)
- state_ptr->dq[cnt] = state_ptr->dq[cnt-1];
- /* FLOAT A : convert dq[0] to 4-bit exp, 6-bit mantissa f.p. */
- if (mag == 0) {
- state_ptr->dq[0] = (dq >= 0) ? 0x20 : 0xFC20;
- } else {
- exp = quan(mag, power2, 15);
- state_ptr->dq[0] = (dq >= 0) ?
- (exp << 6) + ((mag << 6) >> exp) :
- (exp << 6) + ((mag << 6) >> exp) - 0x400;
- }
-
- state_ptr->sr[1] = state_ptr->sr[0];
- /* FLOAT B : convert sr to 4-bit exp., 6-bit mantissa f.p. */
- if (sr == 0) {
- state_ptr->sr[0] = 0x20;
- } else if (sr > 0) {
- exp = quan(sr, power2, 15);
- state_ptr->sr[0] = (exp << 6) + ((sr << 6) >> exp);
- } else if (sr > -32768) {
- mag = -sr;
- exp = quan(mag, power2, 15);
- state_ptr->sr[0] = (exp << 6) + ((mag << 6) >> exp) - 0x400;
- } else
- state_ptr->sr[0] = (short) 0xFC20;
-
- /* DELAY A */
- state_ptr->pk[1] = state_ptr->pk[0];
- state_ptr->pk[0] = pk0;
-
- /* TONE */
- if (tr == 1) /* this sample has been treated as data */
- state_ptr->td = 0; /* next one will be treated as voice */
- else if (a2p < -11776) /* small sample-to-sample correlation */
- state_ptr->td = 1; /* signal may be data */
- else /* signal is voice */
- state_ptr->td = 0;
-
- /*
- * Adaptation speed control.
- */
- state_ptr->dms += (fi - state_ptr->dms) >> 5; /* FILTA */
- state_ptr->dml += (((fi << 2) - state_ptr->dml) >> 7); /* FILTB */
-
- if (tr == 1)
- state_ptr->ap = 256;
- else if (y < 1536) /* SUBTC */
- state_ptr->ap += (0x200 - state_ptr->ap) >> 4;
- else if (state_ptr->td == 1)
- state_ptr->ap += (0x200 - state_ptr->ap) >> 4;
- else if (abs((state_ptr->dms << 2) - state_ptr->dml) >=
- (state_ptr->dml >> 3))
- state_ptr->ap += (0x200 - state_ptr->ap) >> 4;
- else
- state_ptr->ap += (-state_ptr->ap) >> 4;
-}
-
--- a/common/libsndfile/src/G72x/g72x.h
+++ /dev/null
@@ -1,112 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-/*
-** This file is not the same as the original file from Sun Microsystems. Nearly
-** all the original definitions and function prototypes that were in the file
-** of this name have been moved to private.h.
-*/
-
-#ifndef G72X_HEADER_FILE
-#define G72X_HEADER_FILE
-
-/*
-** Number of samples per block to process.
-** Must be a common multiple of possible bits per sample : 2, 3, 4, 5 and 8.
-*/
-#define G72x_BLOCK_SIZE (3*5*8)
-
-/*
-** Identifiers for the differing kinds of G72x ADPCM codecs.
-** The identifiers also define the number of encoded bits per sample.
-*/
-
-enum
-{ G723_16_BITS_PER_SAMPLE = 2,
- G723_24_BITS_PER_SAMPLE = 3,
- G721_32_BITS_PER_SAMPLE = 4,
- G721_40_BITS_PER_SAMPLE = 5,
-
- G723_16_MIN_BYTES = 1,
- G723_24_MIN_BYTES = 3,
- G721_32_MIN_BYTES = 1,
- G721_40_MIN_BYTES = 5
-} ;
-
-enum
-{ G723_16_SAMPLES_PER_BLOCK = G72x_BLOCK_SIZE,
- G723_24_SAMPLES_PER_BLOCK = G723_24_BITS_PER_SAMPLE * (G72x_BLOCK_SIZE / G723_24_BITS_PER_SAMPLE),
- G721_32_SAMPLES_PER_BLOCK = G72x_BLOCK_SIZE,
- G721_40_SAMPLES_PER_BLOCK = G721_40_BITS_PER_SAMPLE * (G72x_BLOCK_SIZE / G721_40_BITS_PER_SAMPLE)
-} ;
-
-enum
-{ G723_16_BYTES_PER_BLOCK = (G723_16_BITS_PER_SAMPLE * G72x_BLOCK_SIZE) / 8,
- G723_24_BYTES_PER_BLOCK = (G723_24_BITS_PER_SAMPLE * G72x_BLOCK_SIZE) / 8,
- G721_32_BYTES_PER_BLOCK = (G721_32_BITS_PER_SAMPLE * G72x_BLOCK_SIZE) / 8,
- G721_40_BYTES_PER_BLOCK = (G721_40_BITS_PER_SAMPLE * G72x_BLOCK_SIZE) / 8
-} ;
-
-/*
-** This is the public structure for passing data between the caller and
-** the G72x encoder and decoder.
-** The private array is used by the encoder and decoder for internal
-** state information and should not be changed in any way by the caller.
-** When decoding or encoding a stream, the same instance of this struct
-** should be used for every call so that the decoder/encoder keeps the
-** correct state data between calls.
-*/
-
-typedef struct
-{ /* Private data. Don't mess with it. */
- unsigned char private [256] ;
-
- /* Public data. Read only. */
- int blocksize, max_bytes, samplesperblock, bytesperblock ;
-
- /* Public data. Read and write. */
- int blocks, blockcount, samplecount ;
- unsigned char block [G72x_BLOCK_SIZE] ;
- short samples [G72x_BLOCK_SIZE] ;
-} G72x_DATA ;
-
-/* External function definitions. */
-
-int g72x_reader_init (G72x_DATA *data, int codec) ;
-int g72x_writer_init (G72x_DATA *data, int codec) ;
-/*
-** Initialize the ADPCM state table for the given codec.
-** Return 0 on success, 1 on fail.
-*/
-
-int g72x_decode_block (G72x_DATA *data) ;
-/*
-** The caller fills data->block with data->bytes bytes before calling the
-** function. The value data->bytes must be an integer multiple of
-** data->blocksize and be <= data->max_bytes.
-** When it returns, the caller can read out data->samples samples.
-*/
-
-int g72x_encode_block (G72x_DATA *data) ;
-/*
-** The caller fills state->samples some integer multiple data->samples_per_block
-** (up to G72x_BLOCK_SIZE) samples before calling the function.
-** When it returns, the caller can read out bytes encoded bytes.
-*/
-
-#endif /* !G72X_HEADER_FILE */
--- a/common/libsndfile/src/G72x/private.h
+++ /dev/null
@@ -1,108 +1,0 @@
-/*
- * This source code is a product of Sun Microsystems, Inc. and is provided
- * for unrestricted use. Users may copy or modify this source code without
- * charge.
- *
- * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
- * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun source code is provided with no support and without any obligation on
- * the part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-#ifndef G72X_PRIVATE_H
-#define G72X_PRIVATE_H
-
-
-/*
-** The following is the definition of the state structure used by the
-** G.721/G.723 encoder and decoder to preserve their internal state
-** between successive calls. The meanings of the majority of the state
-** structure fields are explained in detail in the CCITT Recommendation
-** G.721. The field names are essentially identical to variable names
-** in the bit level description of the coding algorithm included in this
-** Recommendation.
-*/
-
-typedef struct private_g72x
-{ long yl; /* Locked or steady state step size multiplier. */
- short yu; /* Unlocked or non-steady state step size multiplier. */
- short dms; /* Short term energy estimate. */
- short dml; /* Long term energy estimate. */
- short ap; /* Linear weighting coefficient of 'yl' and 'yu'. */
-
- short a[2]; /* Coefficients of pole portion of prediction filter. */
- short b[6]; /* Coefficients of zero portion of prediction filter. */
- short pk[2]; /*
- ** Signs of previous two samples of a partially
- ** reconstructed signal.
- **/
- short dq[6]; /*
- ** Previous 6 samples of the quantized difference
- ** signal represented in an internal floating point
- ** format.
- **/
- short sr[2]; /*
- ** Previous 2 samples of the quantized difference
- ** signal represented in an internal floating point
- ** format.
- */
- char td; /* delayed tone detect, new in 1988 version */
-
- /* The following struct members were added for libsndfile. The original
- ** code worked by calling a set of functions on a sample by sample basis
- ** which is slow on architectures like Intel x86. For libsndfile, this
- ** was changed so that the encoding and decoding routines could work on
- ** a block of samples at a time to reduce the function call overhead.
- */
- int (*encoder) (int, struct private_g72x* state) ;
- int (*decoder) (int, struct private_g72x* state) ;
-
- int codec_bits ;
- int byte_index, sample_index ;
-
-} G72x_STATE ;
-
-
-
-int predictor_zero(G72x_STATE *state_ptr);
-
-int predictor_pole(G72x_STATE *state_ptr);
-
-int step_size(G72x_STATE *state_ptr);
-
-int quantize(int d, int y, short *table, int size);
-
-int reconstruct(int sign, int dqln, int y);
-
-void update (int code_size, int y, int wi, int fi, int dq, int sr, int dqsez, G72x_STATE *state_ptr);
-
-int g721_encoder (int sample, G72x_STATE *state_ptr);
-int g721_decoder (int code, G72x_STATE *state_ptr);
-
-int g723_16_encoder (int sample, G72x_STATE *state_ptr);
-int g723_16_decoder (int code, G72x_STATE *state_ptr);
-
-int g723_24_encoder (int sample, G72x_STATE *state_ptr);
-int g723_24_decoder (int code, G72x_STATE *state_ptr);
-
-int g723_40_encoder (int sample, G72x_STATE *state_ptr);
-int g723_40_decoder (int code, G72x_STATE *state_ptr);
-
-
-
-#endif /* G72X_PRIVATE_H */
--- a/common/libsndfile/src/GSM610/COPYRIGHT
+++ /dev/null
@@ -1,16 +1,0 @@
-Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann,
-Technische Universitaet Berlin
-
-Any use of this software is permitted provided that this notice is not
-removed and that neither the authors nor the Technische Universitaet Berlin
-are deemed to have made any representations as to the suitability of this
-software for any purpose nor are held responsible for any defects of
-this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
-
-As a matter of courtesy, the authors request to be informed about uses
-this software has found, about bugs in this software, and about any
-improvements that may be of general interest.
-
-Berlin, 28.11.1994
-Jutta Degener
-Carsten Bormann
--- a/common/libsndfile/src/GSM610/ChangeLog
+++ /dev/null
@@ -1,21 +1,0 @@
-2001-09-16 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * code.c
- Added #includes fro string.h and stdlib.h.
-
-2000-10-27 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * config.h
- Removed some commented out #defines (ie //*efine) which were causing problems on
- the Sun cc compiler.
-
-2000-02-29 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * private.h
- Added #defines to emulate normal compile time options.
-
-2000-02-28 Erik de Castro Lopo <erikd AT zip DOT com DOT au>
-
- * everthing
- Created this directory and copied files from libgsm.
- http://kbs.cs.tu-berlin.de/~jutta/toast.html
--- a/common/libsndfile/src/GSM610/Makefile.am
+++ /dev/null
@@ -1,15 +1,0 @@
-# This file was automatically generated
-# DO NOT EDIT!
-
-EXTRA_DIST = README COPYRIGHT ChangeLog
-
-noinst_HEADERS = gsm.h config.h private.h proto.h unproto.h
-noinst_LTLIBRARIES = libgsm.la
-
-CFILES = add.c decode.c gsm_decode.c gsm_encode.c long_term.c preprocess.c \
- short_term.c code.c gsm_create.c gsm_destroy.c gsm_option.c lpc.c rpe.c table.c
-
-libgsm_la_SOURCES = $(CFILES) $(noinst_HEADERS)
-
-# Disable autoheader.
-AUTOHEADER=echo
--- a/common/libsndfile/src/GSM610/Makefile.in
+++ /dev/null
@@ -1,328 +1,0 @@
-# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-# This file was automatically generated
-# DO NOT EDIT!
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ../..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-SHARED_VERSION_INFO = @SHARED_VERSION_INFO@
-VERSION = @VERSION@
-subdirs = @subdirs@
-
-EXTRA_DIST = README COPYRIGHT ChangeLog
-
-noinst_HEADERS = gsm.h config.h private.h proto.h unproto.h
-noinst_LTLIBRARIES = libgsm.la
-
-CFILES = add.c decode.c gsm_decode.c gsm_encode.c long_term.c preprocess.c short_term.c code.c gsm_create.c gsm_destroy.c gsm_option.c lpc.c rpe.c table.c
-
-
-libgsm_la_SOURCES = $(CFILES) $(noinst_HEADERS)
-
-# Disable autoheader.
-AUTOHEADER = echo
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../../src/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I../../src
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libgsm_la_LDFLAGS =
-libgsm_la_LIBADD =
-libgsm_la_OBJECTS = add.lo decode.lo gsm_decode.lo gsm_encode.lo \
-long_term.lo preprocess.lo short_term.lo code.lo gsm_create.lo \
-gsm_destroy.lo gsm_option.lo lpc.lo rpe.lo table.lo
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-HEADERS = $(noinst_HEADERS)
-
-DIST_COMMON = README ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-SOURCES = $(libgsm_la_SOURCES)
-OBJECTS = $(libgsm_la_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/GSM610/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-noinstLTLIBRARIES:
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-
-distclean-noinstLTLIBRARIES:
-
-maintainer-clean-noinstLTLIBRARIES:
-
-.c.o:
- $(COMPILE) -c $<
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
-mostlyclean-compile:
- -rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-libgsm.la: $(libgsm_la_OBJECTS) $(libgsm_la_DEPENDENCIES)
- $(LINK) $(libgsm_la_LDFLAGS) $(libgsm_la_OBJECTS) $(libgsm_la_LIBADD) $(LIBS)
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = src/GSM610
-
-distdir: $(DISTFILES)
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$d/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-add.lo add.o : add.c private.h proto.h unproto.h gsm.h
-code.lo code.o : code.c config.h private.h proto.h unproto.h gsm.h
-decode.lo decode.o : decode.c private.h proto.h unproto.h gsm.h
-gsm_create.lo gsm_create.o : gsm_create.c config.h gsm.h private.h \
- proto.h unproto.h
-gsm_decode.lo gsm_decode.o : gsm_decode.c private.h proto.h unproto.h \
- gsm.h
-gsm_destroy.lo gsm_destroy.o : gsm_destroy.c gsm.h config.h proto.h
-gsm_encode.lo gsm_encode.o : gsm_encode.c private.h proto.h unproto.h \
- gsm.h
-gsm_option.lo gsm_option.o : gsm_option.c private.h proto.h unproto.h \
- gsm.h
-long_term.lo long_term.o : long_term.c private.h proto.h unproto.h gsm.h
-lpc.lo lpc.o : lpc.c private.h proto.h unproto.h gsm.h
-preprocess.lo preprocess.o : preprocess.c private.h proto.h unproto.h \
- gsm.h
-rpe.lo rpe.o : rpe.c private.h proto.h unproto.h gsm.h
-short_term.lo short_term.o : short_term.c private.h proto.h unproto.h \
- gsm.h
-table.lo table.o : table.c private.h proto.h unproto.h gsm.h
-
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am:
-uninstall: uninstall-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-noinstLTLIBRARIES mostlyclean-compile \
- mostlyclean-libtool mostlyclean-tags \
- mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-noinstLTLIBRARIES clean-compile clean-libtool \
- clean-tags clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-noinstLTLIBRARIES distclean-compile \
- distclean-libtool distclean-tags distclean-generic \
- clean-am
- -rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am: maintainer-clean-noinstLTLIBRARIES \
- maintainer-clean-compile maintainer-clean-libtool \
- maintainer-clean-tags maintainer-clean-generic \
- distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \
-clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
-install-exec install-data-am install-data install-am install \
-uninstall-am uninstall all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
--- a/common/libsndfile/src/GSM610/README
+++ /dev/null
@@ -1,36 +1,0 @@
-GSM 06.10 13 kbit/s RPE/LTP speech codec
-----------------------------------------
-
-All the file in this directory were written by Jutta Degener
-and Carsten Borman for The Communications and Operating Systems
-Research Group (KBS) at the Technische Universitaet Berlin.
-
-Their work was released under the following license which is
-assumed to be compatible with The GNU Lesser General Public License.
-
-----------------------------------------------------------------------------
-
-Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann,
-Technische Universitaet Berlin
-
-Any use of this software is permitted provided that this notice is not
-removed and that neither the authors nor the Technische Universitaet Berlin
-are deemed to have made any representations as to the suitability of this
-software for any purpose nor are held responsible for any defects of
-this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
-
-As a matter of courtesy, the authors request to be informed about uses
-this software has found, about bugs in this software, and about any
-improvements that may be of general interest.
-
-Berlin, 28.11.1994
-Jutta Degener (jutta@cs.tu-berlin.de)
-Carsten Bormann (cabo@cs.tu-berlin.de)
-
-----------------------------------------------------------------------------
-
-Jutta Degener and Carsten Bormann's work can be found on their homepage
-at:
-
- http://kbs.cs.tu-berlin.de/~jutta/toast.html
-
--- a/common/libsndfile/src/GSM610/add.c
+++ /dev/null
@@ -1,251 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/add.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-/*
- * See private.h for the more commonly used macro versions.
- */
-
-#include <stdio.h>
-#include <assert.h>
-
-#include "private.h"
-#include "gsm.h"
-#include "proto.h"
-
-#define saturate(x) \
- ((x) < MIN_WORD ? MIN_WORD : (x) > MAX_WORD ? MAX_WORD: (x))
-
-word gsm_add P2((a,b), word a, word b)
-{
- longword sum = (longword)a + (longword)b;
- return saturate(sum);
-}
-
-word gsm_sub P2((a,b), word a, word b)
-{
- longword diff = (longword)a - (longword)b;
- return saturate(diff);
-}
-
-word gsm_mult P2((a,b), word a, word b)
-{
- if (a == MIN_WORD && b == MIN_WORD) return MAX_WORD;
- else return SASR( (longword)a * (longword)b, 15 );
-}
-
-word gsm_mult_r P2((a,b), word a, word b)
-{
- if (b == MIN_WORD && a == MIN_WORD) return MAX_WORD;
- else {
- longword prod = (longword)a * (longword)b + 16384;
- prod >>= 15;
- return prod & 0xFFFF;
- }
-}
-
-word gsm_abs P1((a), word a)
-{
- return a < 0 ? (a == MIN_WORD ? MAX_WORD : -a) : a;
-}
-
-longword gsm_L_mult P2((a,b),word a, word b)
-{
- assert( a != MIN_WORD || b != MIN_WORD );
- return ((longword)a * (longword)b) << 1;
-}
-
-longword gsm_L_add P2((a,b), longword a, longword b)
-{
- if (a < 0) {
- if (b >= 0) return a + b;
- else {
- ulongword A = (ulongword)-(a + 1) + (ulongword)-(b + 1);
- return A >= MAX_LONGWORD ? MIN_LONGWORD :-(longword)A-2;
- }
- }
- else if (b <= 0) return a + b;
- else {
- ulongword A = (ulongword)a + (ulongword)b;
- return A > MAX_LONGWORD ? MAX_LONGWORD : A;
- }
-}
-
-longword gsm_L_sub P2((a,b), longword a, longword b)
-{
- if (a >= 0) {
- if (b >= 0) return a - b;
- else {
- /* a>=0, b<0 */
-
- ulongword A = (ulongword)a + -(b + 1);
- return A >= MAX_LONGWORD ? MAX_LONGWORD : (A + 1);
- }
- }
- else if (b <= 0) return a - b;
- else {
- /* a<0, b>0 */
-
- ulongword A = (ulongword)-(a + 1) + b;
- return A >= MAX_LONGWORD ? MIN_LONGWORD : -(longword)A - 1;
- }
-}
-
-static unsigned char const bitoff[ 256 ] = {
- 8, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-word gsm_norm P1((a), longword a )
-/*
- * the number of left shifts needed to normalize the 32 bit
- * variable L_var1 for positive values on the interval
- *
- * with minimum of
- * minimum of 1073741824 (01000000000000000000000000000000) and
- * maximum of 2147483647 (01111111111111111111111111111111)
- *
- *
- * and for negative values on the interval with
- * minimum of -2147483648 (-10000000000000000000000000000000) and
- * maximum of -1073741824 ( -1000000000000000000000000000000).
- *
- * in order to normalize the result, the following
- * operation must be done: L_norm_var1 = L_var1 << norm( L_var1 );
- *
- * (That's 'ffs', only from the left, not the right..)
- */
-{
- assert(a != 0);
-
- if (a < 0) {
- if (a <= -1073741824) return 0;
- a = ~a;
- }
-
- return a & 0xffff0000
- ? ( a & 0xff000000
- ? -1 + bitoff[ 0xFF & (a >> 24) ]
- : 7 + bitoff[ 0xFF & (a >> 16) ] )
- : ( a & 0xff00
- ? 15 + bitoff[ 0xFF & (a >> 8) ]
- : 23 + bitoff[ 0xFF & a ] );
-}
-
-longword gsm_L_asl (longword a, int n)
-{
- if (n >= 32) return 0;
- if (n <= -32) return -(a < 0);
- if (n < 0) return gsm_L_asr(a, -n);
- return a << n;
-}
-
-word gsm_asr (word a, int n)
-{
- if (n >= 16) return -(a < 0);
- if (n <= -16) return 0;
- if (n < 0) return a << -n;
-
-# ifdef SASR
- return a >> n;
-# else
- if (a >= 0) return a >> n;
- else return -(word)( -(uword)a >> n );
-# endif
-}
-
-word gsm_asl (word a, int n)
-{
- if (n >= 16) return 0;
- if (n <= -16) return -(a < 0);
- if (n < 0) return gsm_asr(a, -n);
- return a << n;
-}
-
-longword gsm_L_asr (longword a, int n)
-{
- if (n >= 32) return -(a < 0);
- if (n <= -32) return 0;
- if (n < 0) return a << -n;
-
-# ifdef SASR
- return a >> n;
-# else
- if (a >= 0) return a >> n;
- else return -(longword)( -(ulongword)a >> n );
-# endif
-}
-
-/*
-** word gsm_asr (word a, int n)
-** {
-** if (n >= 16) return -(a < 0);
-** if (n <= -16) return 0;
-** if (n < 0) return a << -n;
-**
-** # ifdef SASR
-** return a >> n;
-** # else
-** if (a >= 0) return a >> n;
-** else return -(word)( -(uword)a >> n );
-** # endif
-** }
-**
-*/
-/*
- * (From p. 46, end of section 4.2.5)
- *
- * NOTE: The following lines gives [sic] one correct implementation
- * of the div(num, denum) arithmetic operation. Compute div
- * which is the integer division of num by denum: with denum
- * >= num > 0
- */
-
-word gsm_div P2((num,denum), word num, word denum)
-{
- longword L_num = num;
- longword L_denum = denum;
- word div = 0;
- int k = 15;
-
- /* The parameter num sometimes becomes zero.
- * Although this is explicitly guarded against in 4.2.5,
- * we assume that the result should then be zero as well.
- */
-
- /* assert(num != 0); */
-
- assert(num >= 0 && denum >= num);
- if (num == 0)
- return 0;
-
- while (k--) {
- div <<= 1;
- L_num <<= 1;
-
- if (L_num >= L_denum) {
- L_num -= L_denum;
- div++;
- }
- }
-
- return div;
-}
--- a/common/libsndfile/src/GSM610/code.c
+++ /dev/null
@@ -1,97 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/code.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-
-
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "config.h"
-
-#include "private.h"
-#include "gsm.h"
-#include "proto.h"
-
-/*
- * 4.2 FIXED POINT IMPLEMENTATION OF THE RPE-LTP CODER
- */
-
-void Gsm_Coder P8((S,s,LARc,Nc,bc,Mc,xmaxc,xMc),
-
- struct gsm_state * S,
-
- word * s, /* [0..159] samples IN */
-
-/*
- * The RPE-LTD coder works on a frame by frame basis. The length of
- * the frame is equal to 160 samples. Some computations are done
- * once per frame to produce at the output of the coder the
- * LARc[1..8] parameters which are the coded LAR coefficients and
- * also to realize the inverse filtering operation for the entire
- * frame (160 samples of signal d[0..159]). These parts produce at
- * the output of the coder:
- */
-
- word * LARc, /* [0..7] LAR coefficients OUT */
-
-/*
- * Procedure 4.2.11 to 4.2.18 are to be executed four times per
- * frame. That means once for each sub-segment RPE-LTP analysis of
- * 40 samples. These parts produce at the output of the coder:
- */
-
- word * Nc, /* [0..3] LTP lag OUT */
- word * bc, /* [0..3] coded LTP gain OUT */
- word * Mc, /* [0..3] RPE grid selection OUT */
- word * xmaxc,/* [0..3] Coded maximum amplitude OUT */
- word * xMc /* [13*4] normalized RPE samples OUT */
-)
-{
- int k;
- word * dp = S->dp0 + 120; /* [ -120...-1 ] */
- word * dpp = dp; /* [ 0...39 ] */
-
- static word e[50];
-
- word so[160];
-
- Gsm_Preprocess (S, s, so);
- Gsm_LPC_Analysis (S, so, LARc);
- Gsm_Short_Term_Analysis_Filter (S, LARc, so);
-
- for (k = 0; k <= 3; k++, xMc += 13) {
-
- Gsm_Long_Term_Predictor ( S,
- so+k*40, /* d [0..39] IN */
- dp, /* dp [-120..-1] IN */
- e + 5, /* e [0..39] OUT */
- dpp, /* dpp [0..39] OUT */
- Nc++,
- bc++);
-
- Gsm_RPE_Encoding ( S,
- e + 5, /* e ][0..39][ IN/OUT */
- xmaxc++, Mc++, xMc );
- /*
- * Gsm_Update_of_reconstructed_short_time_residual_signal
- * ( dpp, e + 5, dp );
- */
-
- { register int i;
- register longword ltmp;
- for (i = 0; i <= 39; i++)
- dp[ i ] = GSM_ADD( e[5 + i], dpp[i] );
- }
- dp += 40;
- dpp += 40;
-
- }
- (void)memcpy( (char *)S->dp0, (char *)(S->dp0 + 160),
- 120 * sizeof(*S->dp0) );
-}
--- a/common/libsndfile/src/GSM610/config.h
+++ /dev/null
@@ -1,27 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/*$Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/config.h,v 1.2 2002/02/13 12:42:02 menno Exp $*/
-
-#ifndef CONFIG_H
-#define CONFIG_H
-
-#define HAS_STDLIB_H 1 /* /usr/include/stdlib.h */
-#define HAS_FCNTL_H 1 /* /usr/include/fcntl.h */
-
-#define HAS_FSTAT 1 /* fstat syscall */
-#define HAS_FCHMOD 1 /* fchmod syscall */
-#define HAS_CHMOD 1 /* chmod syscall */
-#define HAS_FCHOWN 1 /* fchown syscall */
-#define HAS_CHOWN 1 /* chown syscall */
-
-#define HAS_STRING_H 1 /* /usr/include/string.h */
-
-#define HAS_UNISTD_H 1 /* /usr/include/unistd.h */
-#define HAS_UTIME 1 /* POSIX utime(path, times) */
-#define HAS_UTIME_H 1 /* UTIME header file */
-
-#endif /* CONFIG_H */
--- a/common/libsndfile/src/GSM610/decode.c
+++ /dev/null
@@ -1,63 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/decode.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-#include <stdio.h>
-
-#include "private.h"
-#include "gsm.h"
-#include "proto.h"
-
-/*
- * 4.3 FIXED POINT IMPLEMENTATION OF THE RPE-LTP DECODER
- */
-
-static void Postprocessing P2((S,s),
- struct gsm_state * S,
- register word * s)
-{
- register int k;
- register word msr = S->msr;
- register longword ltmp; /* for GSM_ADD */
- register word tmp;
-
- for (k = 160; k--; s++) {
- tmp = GSM_MULT_R( msr, 28180 );
- msr = GSM_ADD(*s, tmp); /* Deemphasis */
- *s = GSM_ADD(msr, msr) & 0xFFF8; /* Truncation & Upscaling */
- }
- S->msr = msr;
-}
-
-void Gsm_Decoder P8((S,LARcr, Ncr,bcr,Mcr,xmaxcr,xMcr,s),
- struct gsm_state * S,
-
- word * LARcr, /* [0..7] IN */
-
- word * Ncr, /* [0..3] IN */
- word * bcr, /* [0..3] IN */
- word * Mcr, /* [0..3] IN */
- word * xmaxcr, /* [0..3] IN */
- word * xMcr, /* [0..13*4] IN */
-
- word * s) /* [0..159] OUT */
-{
- int j, k;
- word erp[40], wt[160];
- word * drp = S->dp0 + 120;
-
- for (j=0; j <= 3; j++, xmaxcr++, bcr++, Ncr++, Mcr++, xMcr += 13) {
-
- Gsm_RPE_Decoding( S, *xmaxcr, *Mcr, xMcr, erp );
- Gsm_Long_Term_Synthesis_Filtering( S, *Ncr, *bcr, erp, drp );
-
- for (k = 0; k <= 39; k++) wt[ j * 40 + k ] = drp[ k ];
- }
-
- Gsm_Short_Term_Synthesis_Filter( S, LARcr, wt, s );
- Postprocessing(S, s);
-}
--- a/common/libsndfile/src/GSM610/gsm.h
+++ /dev/null
@@ -1,71 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/*$Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/gsm.h,v 1.2 2002/02/13 12:42:02 menno Exp $*/
-
-#ifndef GSM_H
-#define GSM_H
-
-#ifdef __cplusplus
-# define NeedFunctionPrototypes 1
-#endif
-
-#if __STDC__
-# define NeedFunctionPrototypes 1
-#endif
-
-#ifdef _NO_PROTO
-# undef NeedFunctionPrototypes
-#endif
-
-#ifdef NeedFunctionPrototypes
-# include <stdio.h> /* for FILE * */
-#endif
-
-#undef GSM_P
-#if NeedFunctionPrototypes
-# define GSM_P( protos ) protos
-#else
-# define GSM_P( protos ) ( /* protos */ )
-#endif
-
-/*
- * Interface
- */
-
-typedef struct gsm_state * gsm;
-typedef short gsm_signal; /* signed 16 bit */
-typedef unsigned char gsm_byte;
-typedef gsm_byte gsm_frame[33]; /* 33 * 8 bits */
-
-#define GSM_MAGIC 0xD /* 13 kbit/s RPE-LTP */
-
-#define GSM_PATCHLEVEL 10
-#define GSM_MINOR 0
-#define GSM_MAJOR 1
-
-#define GSM_OPT_VERBOSE 1
-#define GSM_OPT_FAST 2
-#define GSM_OPT_LTP_CUT 3
-#define GSM_OPT_WAV49 4
-#define GSM_OPT_FRAME_INDEX 5
-#define GSM_OPT_FRAME_CHAIN 6
-
-extern gsm gsm_create GSM_P((void));
-extern void gsm_destroy GSM_P((gsm));
-
-extern int gsm_print GSM_P((FILE *, gsm, gsm_byte *));
-extern int gsm_option GSM_P((gsm, int, int *));
-
-extern void gsm_encode GSM_P((gsm, gsm_signal *, gsm_byte *));
-extern int gsm_decode GSM_P((gsm, gsm_byte *, gsm_signal *));
-
-extern int gsm_explode GSM_P((gsm, gsm_byte *, gsm_signal *));
-extern void gsm_implode GSM_P((gsm, gsm_signal *, gsm_byte *));
-
-#undef GSM_P
-
-#endif /* GSM_H */
--- a/common/libsndfile/src/GSM610/gsm_create.c
+++ /dev/null
@@ -1,45 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-static char const ident[] = "$Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/gsm_create.c,v 1.2 2002/02/13 12:42:02 menno Exp $";
-
-#include "config.h"
-
-#ifdef HAS_STRING_H
-#include <string.h>
-#else
-# include "proto.h"
- extern char * memset P((char *, int, int));
-#endif
-
-#ifdef HAS_STDLIB_H
-# include <stdlib.h>
-#else
-# ifdef HAS_MALLOC_H
-# include <malloc.h>
-# else
- extern char * malloc();
-# endif
-#endif
-
-#include <stdio.h>
-
-#include "gsm.h"
-#include "private.h"
-#include "proto.h"
-
-gsm gsm_create P0()
-{
- gsm r;
-
- r = (gsm)malloc(sizeof(struct gsm_state));
- if (!r) return r;
-
- memset((char *)r, 0, sizeof(*r));
- r->nrp = 40;
-
- return r;
-}
--- a/common/libsndfile/src/GSM610/gsm_decode.c
+++ /dev/null
@@ -1,361 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/gsm_decode.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-#include "private.h"
-
-#include "gsm.h"
-#include "proto.h"
-
-int gsm_decode P3((s, c, target), gsm s, gsm_byte * c, gsm_signal * target)
-{
- word LARc[8], Nc[4], Mc[4], bc[4], xmaxc[4], xmc[13*4];
-
-#ifdef WAV49
- if (s->wav_fmt) {
-
- uword sr = 0;
-
- s->frame_index = !s->frame_index;
- if (s->frame_index) {
-
- sr = *c++;
- LARc[0] = sr & 0x3f; sr >>= 6;
- sr |= (uword)*c++ << 2;
- LARc[1] = sr & 0x3f; sr >>= 6;
- sr |= (uword)*c++ << 4;
- LARc[2] = sr & 0x1f; sr >>= 5;
- LARc[3] = sr & 0x1f; sr >>= 5;
- sr |= (uword)*c++ << 2;
- LARc[4] = sr & 0xf; sr >>= 4;
- LARc[5] = sr & 0xf; sr >>= 4;
- sr |= (uword)*c++ << 2; /* 5 */
- LARc[6] = sr & 0x7; sr >>= 3;
- LARc[7] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 4;
- Nc[0] = sr & 0x7f; sr >>= 7;
- bc[0] = sr & 0x3; sr >>= 2;
- Mc[0] = sr & 0x3; sr >>= 2;
- sr |= (uword)*c++ << 1;
- xmaxc[0] = sr & 0x3f; sr >>= 6;
- xmc[0] = sr & 0x7; sr >>= 3;
- sr = *c++;
- xmc[1] = sr & 0x7; sr >>= 3;
- xmc[2] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 2;
- xmc[3] = sr & 0x7; sr >>= 3;
- xmc[4] = sr & 0x7; sr >>= 3;
- xmc[5] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 1; /* 10 */
- xmc[6] = sr & 0x7; sr >>= 3;
- xmc[7] = sr & 0x7; sr >>= 3;
- xmc[8] = sr & 0x7; sr >>= 3;
- sr = *c++;
- xmc[9] = sr & 0x7; sr >>= 3;
- xmc[10] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 2;
- xmc[11] = sr & 0x7; sr >>= 3;
- xmc[12] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 4;
- Nc[1] = sr & 0x7f; sr >>= 7;
- bc[1] = sr & 0x3; sr >>= 2;
- Mc[1] = sr & 0x3; sr >>= 2;
- sr |= (uword)*c++ << 1;
- xmaxc[1] = sr & 0x3f; sr >>= 6;
- xmc[13] = sr & 0x7; sr >>= 3;
- sr = *c++; /* 15 */
- xmc[14] = sr & 0x7; sr >>= 3;
- xmc[15] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 2;
- xmc[16] = sr & 0x7; sr >>= 3;
- xmc[17] = sr & 0x7; sr >>= 3;
- xmc[18] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 1;
- xmc[19] = sr & 0x7; sr >>= 3;
- xmc[20] = sr & 0x7; sr >>= 3;
- xmc[21] = sr & 0x7; sr >>= 3;
- sr = *c++;
- xmc[22] = sr & 0x7; sr >>= 3;
- xmc[23] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 2;
- xmc[24] = sr & 0x7; sr >>= 3;
- xmc[25] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 4; /* 20 */
- Nc[2] = sr & 0x7f; sr >>= 7;
- bc[2] = sr & 0x3; sr >>= 2;
- Mc[2] = sr & 0x3; sr >>= 2;
- sr |= (uword)*c++ << 1;
- xmaxc[2] = sr & 0x3f; sr >>= 6;
- xmc[26] = sr & 0x7; sr >>= 3;
- sr = *c++;
- xmc[27] = sr & 0x7; sr >>= 3;
- xmc[28] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 2;
- xmc[29] = sr & 0x7; sr >>= 3;
- xmc[30] = sr & 0x7; sr >>= 3;
- xmc[31] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 1;
- xmc[32] = sr & 0x7; sr >>= 3;
- xmc[33] = sr & 0x7; sr >>= 3;
- xmc[34] = sr & 0x7; sr >>= 3;
- sr = *c++; /* 25 */
- xmc[35] = sr & 0x7; sr >>= 3;
- xmc[36] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 2;
- xmc[37] = sr & 0x7; sr >>= 3;
- xmc[38] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 4;
- Nc[3] = sr & 0x7f; sr >>= 7;
- bc[3] = sr & 0x3; sr >>= 2;
- Mc[3] = sr & 0x3; sr >>= 2;
- sr |= (uword)*c++ << 1;
- xmaxc[3] = sr & 0x3f; sr >>= 6;
- xmc[39] = sr & 0x7; sr >>= 3;
- sr = *c++;
- xmc[40] = sr & 0x7; sr >>= 3;
- xmc[41] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 2; /* 30 */
- xmc[42] = sr & 0x7; sr >>= 3;
- xmc[43] = sr & 0x7; sr >>= 3;
- xmc[44] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 1;
- xmc[45] = sr & 0x7; sr >>= 3;
- xmc[46] = sr & 0x7; sr >>= 3;
- xmc[47] = sr & 0x7; sr >>= 3;
- sr = *c++;
- xmc[48] = sr & 0x7; sr >>= 3;
- xmc[49] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 2;
- xmc[50] = sr & 0x7; sr >>= 3;
- xmc[51] = sr & 0x7; sr >>= 3;
-
- s->frame_chain = sr & 0xf;
- }
- else {
- sr = s->frame_chain;
- sr |= (uword)*c++ << 4; /* 1 */
- LARc[0] = sr & 0x3f; sr >>= 6;
- LARc[1] = sr & 0x3f; sr >>= 6;
- sr = *c++;
- LARc[2] = sr & 0x1f; sr >>= 5;
- sr |= (uword)*c++ << 3;
- LARc[3] = sr & 0x1f; sr >>= 5;
- LARc[4] = sr & 0xf; sr >>= 4;
- sr |= (uword)*c++ << 2;
- LARc[5] = sr & 0xf; sr >>= 4;
- LARc[6] = sr & 0x7; sr >>= 3;
- LARc[7] = sr & 0x7; sr >>= 3;
- sr = *c++; /* 5 */
- Nc[0] = sr & 0x7f; sr >>= 7;
- sr |= (uword)*c++ << 1;
- bc[0] = sr & 0x3; sr >>= 2;
- Mc[0] = sr & 0x3; sr >>= 2;
- sr |= (uword)*c++ << 5;
- xmaxc[0] = sr & 0x3f; sr >>= 6;
- xmc[0] = sr & 0x7; sr >>= 3;
- xmc[1] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 1;
- xmc[2] = sr & 0x7; sr >>= 3;
- xmc[3] = sr & 0x7; sr >>= 3;
- xmc[4] = sr & 0x7; sr >>= 3;
- sr = *c++;
- xmc[5] = sr & 0x7; sr >>= 3;
- xmc[6] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 2; /* 10 */
- xmc[7] = sr & 0x7; sr >>= 3;
- xmc[8] = sr & 0x7; sr >>= 3;
- xmc[9] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 1;
- xmc[10] = sr & 0x7; sr >>= 3;
- xmc[11] = sr & 0x7; sr >>= 3;
- xmc[12] = sr & 0x7; sr >>= 3;
- sr = *c++;
- Nc[1] = sr & 0x7f; sr >>= 7;
- sr |= (uword)*c++ << 1;
- bc[1] = sr & 0x3; sr >>= 2;
- Mc[1] = sr & 0x3; sr >>= 2;
- sr |= (uword)*c++ << 5;
- xmaxc[1] = sr & 0x3f; sr >>= 6;
- xmc[13] = sr & 0x7; sr >>= 3;
- xmc[14] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 1; /* 15 */
- xmc[15] = sr & 0x7; sr >>= 3;
- xmc[16] = sr & 0x7; sr >>= 3;
- xmc[17] = sr & 0x7; sr >>= 3;
- sr = *c++;
- xmc[18] = sr & 0x7; sr >>= 3;
- xmc[19] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 2;
- xmc[20] = sr & 0x7; sr >>= 3;
- xmc[21] = sr & 0x7; sr >>= 3;
- xmc[22] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 1;
- xmc[23] = sr & 0x7; sr >>= 3;
- xmc[24] = sr & 0x7; sr >>= 3;
- xmc[25] = sr & 0x7; sr >>= 3;
- sr = *c++;
- Nc[2] = sr & 0x7f; sr >>= 7;
- sr |= (uword)*c++ << 1; /* 20 */
- bc[2] = sr & 0x3; sr >>= 2;
- Mc[2] = sr & 0x3; sr >>= 2;
- sr |= (uword)*c++ << 5;
- xmaxc[2] = sr & 0x3f; sr >>= 6;
- xmc[26] = sr & 0x7; sr >>= 3;
- xmc[27] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 1;
- xmc[28] = sr & 0x7; sr >>= 3;
- xmc[29] = sr & 0x7; sr >>= 3;
- xmc[30] = sr & 0x7; sr >>= 3;
- sr = *c++;
- xmc[31] = sr & 0x7; sr >>= 3;
- xmc[32] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 2;
- xmc[33] = sr & 0x7; sr >>= 3;
- xmc[34] = sr & 0x7; sr >>= 3;
- xmc[35] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 1; /* 25 */
- xmc[36] = sr & 0x7; sr >>= 3;
- xmc[37] = sr & 0x7; sr >>= 3;
- xmc[38] = sr & 0x7; sr >>= 3;
- sr = *c++;
- Nc[3] = sr & 0x7f; sr >>= 7;
- sr |= (uword)*c++ << 1;
- bc[3] = sr & 0x3; sr >>= 2;
- Mc[3] = sr & 0x3; sr >>= 2;
- sr |= (uword)*c++ << 5;
- xmaxc[3] = sr & 0x3f; sr >>= 6;
- xmc[39] = sr & 0x7; sr >>= 3;
- xmc[40] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 1;
- xmc[41] = sr & 0x7; sr >>= 3;
- xmc[42] = sr & 0x7; sr >>= 3;
- xmc[43] = sr & 0x7; sr >>= 3;
- sr = *c++; /* 30 */
- xmc[44] = sr & 0x7; sr >>= 3;
- xmc[45] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 2;
- xmc[46] = sr & 0x7; sr >>= 3;
- xmc[47] = sr & 0x7; sr >>= 3;
- xmc[48] = sr & 0x7; sr >>= 3;
- sr |= (uword)*c++ << 1;
- xmc[49] = sr & 0x7; sr >>= 3;
- xmc[50] = sr & 0x7; sr >>= 3;
- xmc[51] = sr & 0x7; sr >>= 3;
- }
- }
- else
-#endif
- {
- /* GSM_MAGIC = (*c >> 4) & 0xF; */
-
- if (((*c >> 4) & 0x0F) != GSM_MAGIC) return -1;
-
- LARc[0] = (*c++ & 0xF) << 2; /* 1 */
- LARc[0] |= (*c >> 6) & 0x3;
- LARc[1] = *c++ & 0x3F;
- LARc[2] = (*c >> 3) & 0x1F;
- LARc[3] = (*c++ & 0x7) << 2;
- LARc[3] |= (*c >> 6) & 0x3;
- LARc[4] = (*c >> 2) & 0xF;
- LARc[5] = (*c++ & 0x3) << 2;
- LARc[5] |= (*c >> 6) & 0x3;
- LARc[6] = (*c >> 3) & 0x7;
- LARc[7] = *c++ & 0x7;
- Nc[0] = (*c >> 1) & 0x7F;
- bc[0] = (*c++ & 0x1) << 1;
- bc[0] |= (*c >> 7) & 0x1;
- Mc[0] = (*c >> 5) & 0x3;
- xmaxc[0] = (*c++ & 0x1F) << 1;
- xmaxc[0] |= (*c >> 7) & 0x1;
- xmc[0] = (*c >> 4) & 0x7;
- xmc[1] = (*c >> 1) & 0x7;
- xmc[2] = (*c++ & 0x1) << 2;
- xmc[2] |= (*c >> 6) & 0x3;
- xmc[3] = (*c >> 3) & 0x7;
- xmc[4] = *c++ & 0x7;
- xmc[5] = (*c >> 5) & 0x7;
- xmc[6] = (*c >> 2) & 0x7;
- xmc[7] = (*c++ & 0x3) << 1; /* 10 */
- xmc[7] |= (*c >> 7) & 0x1;
- xmc[8] = (*c >> 4) & 0x7;
- xmc[9] = (*c >> 1) & 0x7;
- xmc[10] = (*c++ & 0x1) << 2;
- xmc[10] |= (*c >> 6) & 0x3;
- xmc[11] = (*c >> 3) & 0x7;
- xmc[12] = *c++ & 0x7;
- Nc[1] = (*c >> 1) & 0x7F;
- bc[1] = (*c++ & 0x1) << 1;
- bc[1] |= (*c >> 7) & 0x1;
- Mc[1] = (*c >> 5) & 0x3;
- xmaxc[1] = (*c++ & 0x1F) << 1;
- xmaxc[1] |= (*c >> 7) & 0x1;
- xmc[13] = (*c >> 4) & 0x7;
- xmc[14] = (*c >> 1) & 0x7;
- xmc[15] = (*c++ & 0x1) << 2;
- xmc[15] |= (*c >> 6) & 0x3;
- xmc[16] = (*c >> 3) & 0x7;
- xmc[17] = *c++ & 0x7;
- xmc[18] = (*c >> 5) & 0x7;
- xmc[19] = (*c >> 2) & 0x7;
- xmc[20] = (*c++ & 0x3) << 1;
- xmc[20] |= (*c >> 7) & 0x1;
- xmc[21] = (*c >> 4) & 0x7;
- xmc[22] = (*c >> 1) & 0x7;
- xmc[23] = (*c++ & 0x1) << 2;
- xmc[23] |= (*c >> 6) & 0x3;
- xmc[24] = (*c >> 3) & 0x7;
- xmc[25] = *c++ & 0x7;
- Nc[2] = (*c >> 1) & 0x7F;
- bc[2] = (*c++ & 0x1) << 1; /* 20 */
- bc[2] |= (*c >> 7) & 0x1;
- Mc[2] = (*c >> 5) & 0x3;
- xmaxc[2] = (*c++ & 0x1F) << 1;
- xmaxc[2] |= (*c >> 7) & 0x1;
- xmc[26] = (*c >> 4) & 0x7;
- xmc[27] = (*c >> 1) & 0x7;
- xmc[28] = (*c++ & 0x1) << 2;
- xmc[28] |= (*c >> 6) & 0x3;
- xmc[29] = (*c >> 3) & 0x7;
- xmc[30] = *c++ & 0x7;
- xmc[31] = (*c >> 5) & 0x7;
- xmc[32] = (*c >> 2) & 0x7;
- xmc[33] = (*c++ & 0x3) << 1;
- xmc[33] |= (*c >> 7) & 0x1;
- xmc[34] = (*c >> 4) & 0x7;
- xmc[35] = (*c >> 1) & 0x7;
- xmc[36] = (*c++ & 0x1) << 2;
- xmc[36] |= (*c >> 6) & 0x3;
- xmc[37] = (*c >> 3) & 0x7;
- xmc[38] = *c++ & 0x7;
- Nc[3] = (*c >> 1) & 0x7F;
- bc[3] = (*c++ & 0x1) << 1;
- bc[3] |= (*c >> 7) & 0x1;
- Mc[3] = (*c >> 5) & 0x3;
- xmaxc[3] = (*c++ & 0x1F) << 1;
- xmaxc[3] |= (*c >> 7) & 0x1;
- xmc[39] = (*c >> 4) & 0x7;
- xmc[40] = (*c >> 1) & 0x7;
- xmc[41] = (*c++ & 0x1) << 2;
- xmc[41] |= (*c >> 6) & 0x3;
- xmc[42] = (*c >> 3) & 0x7;
- xmc[43] = *c++ & 0x7; /* 30 */
- xmc[44] = (*c >> 5) & 0x7;
- xmc[45] = (*c >> 2) & 0x7;
- xmc[46] = (*c++ & 0x3) << 1;
- xmc[46] |= (*c >> 7) & 0x1;
- xmc[47] = (*c >> 4) & 0x7;
- xmc[48] = (*c >> 1) & 0x7;
- xmc[49] = (*c++ & 0x1) << 2;
- xmc[49] |= (*c >> 6) & 0x3;
- xmc[50] = (*c >> 3) & 0x7;
- xmc[51] = *c & 0x7; /* 33 */
- }
-
- Gsm_Decoder(s, LARc, Nc, bc, Mc, xmaxc, xmc, target);
-
- return 0;
-}
--- a/common/libsndfile/src/GSM610/gsm_destroy.c
+++ /dev/null
@@ -1,26 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/gsm_destroy.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-#include "gsm.h"
-#include "config.h"
-#include "proto.h"
-
-#ifdef HAS_STDLIB_H
-# include <stdlib.h>
-#else
-# ifdef HAS_MALLOC_H
-# include <malloc.h>
-# else
- extern void free();
-# endif
-#endif
-
-void gsm_destroy P1((S), gsm S)
-{
- if (S) free((char *)S);
-}
--- a/common/libsndfile/src/GSM610/gsm_encode.c
+++ /dev/null
@@ -1,451 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/gsm_encode.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-#include "private.h"
-#include "gsm.h"
-#include "proto.h"
-
-void gsm_encode P3((s, source, c), gsm s, gsm_signal * source, gsm_byte * c)
-{
- word LARc[8], Nc[4], Mc[4], bc[4], xmaxc[4], xmc[13*4];
-
- Gsm_Coder(s, source, LARc, Nc, bc, Mc, xmaxc, xmc);
-
-
- /* variable size
-
- GSM_MAGIC 4
-
- LARc[0] 6
- LARc[1] 6
- LARc[2] 5
- LARc[3] 5
- LARc[4] 4
- LARc[5] 4
- LARc[6] 3
- LARc[7] 3
-
- Nc[0] 7
- bc[0] 2
- Mc[0] 2
- xmaxc[0] 6
- xmc[0] 3
- xmc[1] 3
- xmc[2] 3
- xmc[3] 3
- xmc[4] 3
- xmc[5] 3
- xmc[6] 3
- xmc[7] 3
- xmc[8] 3
- xmc[9] 3
- xmc[10] 3
- xmc[11] 3
- xmc[12] 3
-
- Nc[1] 7
- bc[1] 2
- Mc[1] 2
- xmaxc[1] 6
- xmc[13] 3
- xmc[14] 3
- xmc[15] 3
- xmc[16] 3
- xmc[17] 3
- xmc[18] 3
- xmc[19] 3
- xmc[20] 3
- xmc[21] 3
- xmc[22] 3
- xmc[23] 3
- xmc[24] 3
- xmc[25] 3
-
- Nc[2] 7
- bc[2] 2
- Mc[2] 2
- xmaxc[2] 6
- xmc[26] 3
- xmc[27] 3
- xmc[28] 3
- xmc[29] 3
- xmc[30] 3
- xmc[31] 3
- xmc[32] 3
- xmc[33] 3
- xmc[34] 3
- xmc[35] 3
- xmc[36] 3
- xmc[37] 3
- xmc[38] 3
-
- Nc[3] 7
- bc[3] 2
- Mc[3] 2
- xmaxc[3] 6
- xmc[39] 3
- xmc[40] 3
- xmc[41] 3
- xmc[42] 3
- xmc[43] 3
- xmc[44] 3
- xmc[45] 3
- xmc[46] 3
- xmc[47] 3
- xmc[48] 3
- xmc[49] 3
- xmc[50] 3
- xmc[51] 3
- */
-
-#ifdef WAV49
-
- if (s->wav_fmt) {
- s->frame_index = !s->frame_index;
- if (s->frame_index) {
-
- uword sr;
-
- sr = 0;
- sr = sr >> 6 | LARc[0] << 10;
- sr = sr >> 6 | LARc[1] << 10;
- *c++ = sr >> 4;
- sr = sr >> 5 | LARc[2] << 11;
- *c++ = sr >> 7;
- sr = sr >> 5 | LARc[3] << 11;
- sr = sr >> 4 | LARc[4] << 12;
- *c++ = sr >> 6;
- sr = sr >> 4 | LARc[5] << 12;
- sr = sr >> 3 | LARc[6] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | LARc[7] << 13;
- sr = sr >> 7 | Nc[0] << 9;
- *c++ = sr >> 5;
- sr = sr >> 2 | bc[0] << 14;
- sr = sr >> 2 | Mc[0] << 14;
- sr = sr >> 6 | xmaxc[0] << 10;
- *c++ = sr >> 3;
- sr = sr >> 3 | xmc[0] << 13;
- *c++ = sr >> 8;
- sr = sr >> 3 | xmc[1] << 13;
- sr = sr >> 3 | xmc[2] << 13;
- sr = sr >> 3 | xmc[3] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[4] << 13;
- sr = sr >> 3 | xmc[5] << 13;
- sr = sr >> 3 | xmc[6] << 13;
- *c++ = sr >> 6;
- sr = sr >> 3 | xmc[7] << 13;
- sr = sr >> 3 | xmc[8] << 13;
- *c++ = sr >> 8;
- sr = sr >> 3 | xmc[9] << 13;
- sr = sr >> 3 | xmc[10] << 13;
- sr = sr >> 3 | xmc[11] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[12] << 13;
- sr = sr >> 7 | Nc[1] << 9;
- *c++ = sr >> 5;
- sr = sr >> 2 | bc[1] << 14;
- sr = sr >> 2 | Mc[1] << 14;
- sr = sr >> 6 | xmaxc[1] << 10;
- *c++ = sr >> 3;
- sr = sr >> 3 | xmc[13] << 13;
- *c++ = sr >> 8;
- sr = sr >> 3 | xmc[14] << 13;
- sr = sr >> 3 | xmc[15] << 13;
- sr = sr >> 3 | xmc[16] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[17] << 13;
- sr = sr >> 3 | xmc[18] << 13;
- sr = sr >> 3 | xmc[19] << 13;
- *c++ = sr >> 6;
- sr = sr >> 3 | xmc[20] << 13;
- sr = sr >> 3 | xmc[21] << 13;
- *c++ = sr >> 8;
- sr = sr >> 3 | xmc[22] << 13;
- sr = sr >> 3 | xmc[23] << 13;
- sr = sr >> 3 | xmc[24] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[25] << 13;
- sr = sr >> 7 | Nc[2] << 9;
- *c++ = sr >> 5;
- sr = sr >> 2 | bc[2] << 14;
- sr = sr >> 2 | Mc[2] << 14;
- sr = sr >> 6 | xmaxc[2] << 10;
- *c++ = sr >> 3;
- sr = sr >> 3 | xmc[26] << 13;
- *c++ = sr >> 8;
- sr = sr >> 3 | xmc[27] << 13;
- sr = sr >> 3 | xmc[28] << 13;
- sr = sr >> 3 | xmc[29] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[30] << 13;
- sr = sr >> 3 | xmc[31] << 13;
- sr = sr >> 3 | xmc[32] << 13;
- *c++ = sr >> 6;
- sr = sr >> 3 | xmc[33] << 13;
- sr = sr >> 3 | xmc[34] << 13;
- *c++ = sr >> 8;
- sr = sr >> 3 | xmc[35] << 13;
- sr = sr >> 3 | xmc[36] << 13;
- sr = sr >> 3 | xmc[37] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[38] << 13;
- sr = sr >> 7 | Nc[3] << 9;
- *c++ = sr >> 5;
- sr = sr >> 2 | bc[3] << 14;
- sr = sr >> 2 | Mc[3] << 14;
- sr = sr >> 6 | xmaxc[3] << 10;
- *c++ = sr >> 3;
- sr = sr >> 3 | xmc[39] << 13;
- *c++ = sr >> 8;
- sr = sr >> 3 | xmc[40] << 13;
- sr = sr >> 3 | xmc[41] << 13;
- sr = sr >> 3 | xmc[42] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[43] << 13;
- sr = sr >> 3 | xmc[44] << 13;
- sr = sr >> 3 | xmc[45] << 13;
- *c++ = sr >> 6;
- sr = sr >> 3 | xmc[46] << 13;
- sr = sr >> 3 | xmc[47] << 13;
- *c++ = sr >> 8;
- sr = sr >> 3 | xmc[48] << 13;
- sr = sr >> 3 | xmc[49] << 13;
- sr = sr >> 3 | xmc[50] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[51] << 13;
- sr = sr >> 4;
- *c = sr >> 8;
- s->frame_chain = *c;
- }
- else {
- uword sr;
-
- sr = 0;
- sr = sr >> 4 | s->frame_chain << 12;
- sr = sr >> 6 | LARc[0] << 10;
- *c++ = sr >> 6;
- sr = sr >> 6 | LARc[1] << 10;
- *c++ = sr >> 8;
- sr = sr >> 5 | LARc[2] << 11;
- sr = sr >> 5 | LARc[3] << 11;
- *c++ = sr >> 6;
- sr = sr >> 4 | LARc[4] << 12;
- sr = sr >> 4 | LARc[5] << 12;
- *c++ = sr >> 6;
- sr = sr >> 3 | LARc[6] << 13;
- sr = sr >> 3 | LARc[7] << 13;
- *c++ = sr >> 8;
- sr = sr >> 7 | Nc[0] << 9;
- sr = sr >> 2 | bc[0] << 14;
- *c++ = sr >> 7;
- sr = sr >> 2 | Mc[0] << 14;
- sr = sr >> 6 | xmaxc[0] << 10;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[0] << 13;
- sr = sr >> 3 | xmc[1] << 13;
- sr = sr >> 3 | xmc[2] << 13;
- *c++ = sr >> 6;
- sr = sr >> 3 | xmc[3] << 13;
- sr = sr >> 3 | xmc[4] << 13;
- *c++ = sr >> 8;
- sr = sr >> 3 | xmc[5] << 13;
- sr = sr >> 3 | xmc[6] << 13;
- sr = sr >> 3 | xmc[7] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[8] << 13;
- sr = sr >> 3 | xmc[9] << 13;
- sr = sr >> 3 | xmc[10] << 13;
- *c++ = sr >> 6;
- sr = sr >> 3 | xmc[11] << 13;
- sr = sr >> 3 | xmc[12] << 13;
- *c++ = sr >> 8;
- sr = sr >> 7 | Nc[1] << 9;
- sr = sr >> 2 | bc[1] << 14;
- *c++ = sr >> 7;
- sr = sr >> 2 | Mc[1] << 14;
- sr = sr >> 6 | xmaxc[1] << 10;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[13] << 13;
- sr = sr >> 3 | xmc[14] << 13;
- sr = sr >> 3 | xmc[15] << 13;
- *c++ = sr >> 6;
- sr = sr >> 3 | xmc[16] << 13;
- sr = sr >> 3 | xmc[17] << 13;
- *c++ = sr >> 8;
- sr = sr >> 3 | xmc[18] << 13;
- sr = sr >> 3 | xmc[19] << 13;
- sr = sr >> 3 | xmc[20] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[21] << 13;
- sr = sr >> 3 | xmc[22] << 13;
- sr = sr >> 3 | xmc[23] << 13;
- *c++ = sr >> 6;
- sr = sr >> 3 | xmc[24] << 13;
- sr = sr >> 3 | xmc[25] << 13;
- *c++ = sr >> 8;
- sr = sr >> 7 | Nc[2] << 9;
- sr = sr >> 2 | bc[2] << 14;
- *c++ = sr >> 7;
- sr = sr >> 2 | Mc[2] << 14;
- sr = sr >> 6 | xmaxc[2] << 10;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[26] << 13;
- sr = sr >> 3 | xmc[27] << 13;
- sr = sr >> 3 | xmc[28] << 13;
- *c++ = sr >> 6;
- sr = sr >> 3 | xmc[29] << 13;
- sr = sr >> 3 | xmc[30] << 13;
- *c++ = sr >> 8;
- sr = sr >> 3 | xmc[31] << 13;
- sr = sr >> 3 | xmc[32] << 13;
- sr = sr >> 3 | xmc[33] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[34] << 13;
- sr = sr >> 3 | xmc[35] << 13;
- sr = sr >> 3 | xmc[36] << 13;
- *c++ = sr >> 6;
- sr = sr >> 3 | xmc[37] << 13;
- sr = sr >> 3 | xmc[38] << 13;
- *c++ = sr >> 8;
- sr = sr >> 7 | Nc[3] << 9;
- sr = sr >> 2 | bc[3] << 14;
- *c++ = sr >> 7;
- sr = sr >> 2 | Mc[3] << 14;
- sr = sr >> 6 | xmaxc[3] << 10;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[39] << 13;
- sr = sr >> 3 | xmc[40] << 13;
- sr = sr >> 3 | xmc[41] << 13;
- *c++ = sr >> 6;
- sr = sr >> 3 | xmc[42] << 13;
- sr = sr >> 3 | xmc[43] << 13;
- *c++ = sr >> 8;
- sr = sr >> 3 | xmc[44] << 13;
- sr = sr >> 3 | xmc[45] << 13;
- sr = sr >> 3 | xmc[46] << 13;
- *c++ = sr >> 7;
- sr = sr >> 3 | xmc[47] << 13;
- sr = sr >> 3 | xmc[48] << 13;
- sr = sr >> 3 | xmc[49] << 13;
- *c++ = sr >> 6;
- sr = sr >> 3 | xmc[50] << 13;
- sr = sr >> 3 | xmc[51] << 13;
- *c++ = sr >> 8;
- }
- }
-
- else
-
-#endif /* WAV49 */
- {
-
- *c++ = ((GSM_MAGIC & 0xF) << 4) /* 1 */
- | ((LARc[0] >> 2) & 0xF);
- *c++ = ((LARc[0] & 0x3) << 6)
- | (LARc[1] & 0x3F);
- *c++ = ((LARc[2] & 0x1F) << 3)
- | ((LARc[3] >> 2) & 0x7);
- *c++ = ((LARc[3] & 0x3) << 6)
- | ((LARc[4] & 0xF) << 2)
- | ((LARc[5] >> 2) & 0x3);
- *c++ = ((LARc[5] & 0x3) << 6)
- | ((LARc[6] & 0x7) << 3)
- | (LARc[7] & 0x7);
- *c++ = ((Nc[0] & 0x7F) << 1)
- | ((bc[0] >> 1) & 0x1);
- *c++ = ((bc[0] & 0x1) << 7)
- | ((Mc[0] & 0x3) << 5)
- | ((xmaxc[0] >> 1) & 0x1F);
- *c++ = ((xmaxc[0] & 0x1) << 7)
- | ((xmc[0] & 0x7) << 4)
- | ((xmc[1] & 0x7) << 1)
- | ((xmc[2] >> 2) & 0x1);
- *c++ = ((xmc[2] & 0x3) << 6)
- | ((xmc[3] & 0x7) << 3)
- | (xmc[4] & 0x7);
- *c++ = ((xmc[5] & 0x7) << 5) /* 10 */
- | ((xmc[6] & 0x7) << 2)
- | ((xmc[7] >> 1) & 0x3);
- *c++ = ((xmc[7] & 0x1) << 7)
- | ((xmc[8] & 0x7) << 4)
- | ((xmc[9] & 0x7) << 1)
- | ((xmc[10] >> 2) & 0x1);
- *c++ = ((xmc[10] & 0x3) << 6)
- | ((xmc[11] & 0x7) << 3)
- | (xmc[12] & 0x7);
- *c++ = ((Nc[1] & 0x7F) << 1)
- | ((bc[1] >> 1) & 0x1);
- *c++ = ((bc[1] & 0x1) << 7)
- | ((Mc[1] & 0x3) << 5)
- | ((xmaxc[1] >> 1) & 0x1F);
- *c++ = ((xmaxc[1] & 0x1) << 7)
- | ((xmc[13] & 0x7) << 4)
- | ((xmc[14] & 0x7) << 1)
- | ((xmc[15] >> 2) & 0x1);
- *c++ = ((xmc[15] & 0x3) << 6)
- | ((xmc[16] & 0x7) << 3)
- | (xmc[17] & 0x7);
- *c++ = ((xmc[18] & 0x7) << 5)
- | ((xmc[19] & 0x7) << 2)
- | ((xmc[20] >> 1) & 0x3);
- *c++ = ((xmc[20] & 0x1) << 7)
- | ((xmc[21] & 0x7) << 4)
- | ((xmc[22] & 0x7) << 1)
- | ((xmc[23] >> 2) & 0x1);
- *c++ = ((xmc[23] & 0x3) << 6)
- | ((xmc[24] & 0x7) << 3)
- | (xmc[25] & 0x7);
- *c++ = ((Nc[2] & 0x7F) << 1) /* 20 */
- | ((bc[2] >> 1) & 0x1);
- *c++ = ((bc[2] & 0x1) << 7)
- | ((Mc[2] & 0x3) << 5)
- | ((xmaxc[2] >> 1) & 0x1F);
- *c++ = ((xmaxc[2] & 0x1) << 7)
- | ((xmc[26] & 0x7) << 4)
- | ((xmc[27] & 0x7) << 1)
- | ((xmc[28] >> 2) & 0x1);
- *c++ = ((xmc[28] & 0x3) << 6)
- | ((xmc[29] & 0x7) << 3)
- | (xmc[30] & 0x7);
- *c++ = ((xmc[31] & 0x7) << 5)
- | ((xmc[32] & 0x7) << 2)
- | ((xmc[33] >> 1) & 0x3);
- *c++ = ((xmc[33] & 0x1) << 7)
- | ((xmc[34] & 0x7) << 4)
- | ((xmc[35] & 0x7) << 1)
- | ((xmc[36] >> 2) & 0x1);
- *c++ = ((xmc[36] & 0x3) << 6)
- | ((xmc[37] & 0x7) << 3)
- | (xmc[38] & 0x7);
- *c++ = ((Nc[3] & 0x7F) << 1)
- | ((bc[3] >> 1) & 0x1);
- *c++ = ((bc[3] & 0x1) << 7)
- | ((Mc[3] & 0x3) << 5)
- | ((xmaxc[3] >> 1) & 0x1F);
- *c++ = ((xmaxc[3] & 0x1) << 7)
- | ((xmc[39] & 0x7) << 4)
- | ((xmc[40] & 0x7) << 1)
- | ((xmc[41] >> 2) & 0x1);
- *c++ = ((xmc[41] & 0x3) << 6) /* 30 */
- | ((xmc[42] & 0x7) << 3)
- | (xmc[43] & 0x7);
- *c++ = ((xmc[44] & 0x7) << 5)
- | ((xmc[45] & 0x7) << 2)
- | ((xmc[46] >> 1) & 0x3);
- *c++ = ((xmc[46] & 0x1) << 7)
- | ((xmc[47] & 0x7) << 4)
- | ((xmc[48] & 0x7) << 1)
- | ((xmc[49] >> 2) & 0x1);
- *c++ = ((xmc[49] & 0x3) << 6)
- | ((xmc[50] & 0x7) << 3)
- | (xmc[51] & 0x7);
-
- }
-}
--- a/common/libsndfile/src/GSM610/gsm_option.c
+++ /dev/null
@@ -1,69 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/gsm_option.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-#include "private.h"
-
-#include "gsm.h"
-#include "proto.h"
-
-int gsm_option P3((r, opt, val), gsm r, int opt, int * val)
-{
- int result = -1;
-
- switch (opt) {
- case GSM_OPT_LTP_CUT:
-#ifdef LTP_CUT
- result = r->ltp_cut;
- if (val) r->ltp_cut = *val;
-#endif
- break;
-
- case GSM_OPT_VERBOSE:
-#ifndef NDEBUG
- result = r->verbose;
- if (val) r->verbose = *val;
-#endif
- break;
-
- case GSM_OPT_FAST:
-
-#if defined(FAST) && defined(USE_FLOAT_MUL)
- result = r->fast;
- if (val) r->fast = !!*val;
-#endif
- break;
-
- case GSM_OPT_FRAME_CHAIN:
-
-#ifdef WAV49
- result = r->frame_chain;
- if (val) r->frame_chain = *val;
-#endif
- break;
-
- case GSM_OPT_FRAME_INDEX:
-
-#ifdef WAV49
- result = r->frame_index;
- if (val) r->frame_index = *val;
-#endif
- break;
-
- case GSM_OPT_WAV49:
-
-#ifdef WAV49
- result = r->wav_fmt;
- if (val) r->wav_fmt = !!*val;
-#endif
- break;
-
- default:
- break;
- }
- return result;
-}
--- a/common/libsndfile/src/GSM610/long_term.c
+++ /dev/null
@@ -1,949 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/long_term.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-#include <stdio.h>
-#include <assert.h>
-
-#include "private.h"
-
-#include "gsm.h"
-#include "proto.h"
-
-/*
- * 4.2.11 .. 4.2.12 LONG TERM PREDICTOR (LTP) SECTION
- */
-
-
-/*
- * This module computes the LTP gain (bc) and the LTP lag (Nc)
- * for the long term analysis filter. This is done by calculating a
- * maximum of the cross-correlation function between the current
- * sub-segment short term residual signal d[0..39] (output of
- * the short term analysis filter; for simplification the index
- * of this array begins at 0 and ends at 39 for each sub-segment of the
- * RPE-LTP analysis) and the previous reconstructed short term
- * residual signal dp[ -120 .. -1 ]. A dynamic scaling must be
- * performed to avoid overflow.
- */
-
- /* The next procedure exists in six versions. First two integer
- * version (if USE_FLOAT_MUL is not defined); then four floating
- * point versions, twice with proper scaling (USE_FLOAT_MUL defined),
- * once without (USE_FLOAT_MUL and FAST defined, and fast run-time
- * option used). Every pair has first a Cut version (see the -C
- * option to toast or the LTP_CUT option to gsm_option()), then the
- * uncut one. (For a detailed explanation of why this is altogether
- * a bad idea, see Henry Spencer and Geoff Collyer, ``#ifdef Considered
- * Harmful''.)
- */
-
-#ifndef USE_FLOAT_MUL
-
-#ifdef LTP_CUT
-
-static void Cut_Calculation_of_the_LTP_parameters P5((st, d,dp,bc_out,Nc_out),
-
- struct gsm_state * st,
-
- register word * d, /* [0..39] IN */
- register word * dp, /* [-120..-1] IN */
- word * bc_out, /* OUT */
- word * Nc_out /* OUT */
-)
-{
- register int k, lambda;
- word Nc, bc;
- word wt[40];
-
- longword L_result;
- longword L_max, L_power;
- word R, S, dmax, scal, best_k;
- word ltp_cut;
-
- register word temp, wt_k;
-
- /* Search of the optimum scaling of d[0..39].
- */
- dmax = 0;
- for (k = 0; k <= 39; k++) {
- temp = d[k];
- temp = GSM_ABS( temp );
- if (temp > dmax) {
- dmax = temp;
- best_k = k;
- }
- }
- temp = 0;
- if (dmax == 0) scal = 0;
- else {
- assert(dmax > 0);
- temp = gsm_norm( (longword)dmax << 16 );
- }
- if (temp > 6) scal = 0;
- else scal = 6 - temp;
- assert(scal >= 0);
-
- /* Search for the maximum cross-correlation and coding of the LTP lag
- */
- L_max = 0;
- Nc = 40; /* index for the maximum cross-correlation */
- wt_k = SASR(d[best_k], scal);
-
- for (lambda = 40; lambda <= 120; lambda++) {
- L_result = (longword)wt_k * dp[best_k - lambda];
- if (L_result > L_max) {
- Nc = lambda;
- L_max = L_result;
- }
- }
- *Nc_out = Nc;
- L_max <<= 1;
-
- /* Rescaling of L_max
- */
- assert(scal <= 100 && scal >= -100);
- L_max = L_max >> (6 - scal); /* sub(6, scal) */
-
- assert( Nc <= 120 && Nc >= 40);
-
- /* Compute the power of the reconstructed short term residual
- * signal dp[..]
- */
- L_power = 0;
- for (k = 0; k <= 39; k++) {
-
- register longword L_temp;
-
- L_temp = SASR( dp[k - Nc], 3 );
- L_power += L_temp * L_temp;
- }
- L_power <<= 1; /* from L_MULT */
-
- /* Normalization of L_max and L_power
- */
-
- if (L_max <= 0) {
- *bc_out = 0;
- return;
- }
- if (L_max >= L_power) {
- *bc_out = 3;
- return;
- }
-
- temp = gsm_norm( L_power );
-
- R = SASR( L_max << temp, 16 );
- S = SASR( L_power << temp, 16 );
-
- /* Coding of the LTP gain
- */
-
- /* Table 4.3a must be used to obtain the level DLB[i] for the
- * quantization of the LTP gain b to get the coded version bc.
- */
- for (bc = 0; bc <= 2; bc++) if (R <= gsm_mult(S, gsm_DLB[bc])) break;
- *bc_out = bc;
-}
-
-#endif /* LTP_CUT */
-
-static void Calculation_of_the_LTP_parameters P4((d,dp,bc_out,Nc_out),
- register word * d, /* [0..39] IN */
- register word * dp, /* [-120..-1] IN */
- word * bc_out, /* OUT */
- word * Nc_out /* OUT */
-)
-{
- register int k, lambda;
- word Nc, bc;
- word wt[40];
-
- longword L_max, L_power;
- word R, S, dmax, scal;
- register word temp;
-
- /* Search of the optimum scaling of d[0..39].
- */
- dmax = 0;
-
- for (k = 0; k <= 39; k++) {
- temp = d[k];
- temp = GSM_ABS( temp );
- if (temp > dmax) dmax = temp;
- }
-
- temp = 0;
- if (dmax == 0) scal = 0;
- else {
- assert(dmax > 0);
- temp = gsm_norm( (longword)dmax << 16 );
- }
-
- if (temp > 6) scal = 0;
- else scal = 6 - temp;
-
- assert(scal >= 0);
-
- /* Initialization of a working array wt
- */
-
- for (k = 0; k <= 39; k++) wt[k] = SASR( d[k], scal );
-
- /* Search for the maximum cross-correlation and coding of the LTP lag
- */
- L_max = 0;
- Nc = 40; /* index for the maximum cross-correlation */
-
- for (lambda = 40; lambda <= 120; lambda++) {
-
-# undef STEP
-# define STEP(k) (longword)wt[k] * dp[k - lambda]
-
- register longword L_result;
-
- L_result = STEP(0) ; L_result += STEP(1) ;
- L_result += STEP(2) ; L_result += STEP(3) ;
- L_result += STEP(4) ; L_result += STEP(5) ;
- L_result += STEP(6) ; L_result += STEP(7) ;
- L_result += STEP(8) ; L_result += STEP(9) ;
- L_result += STEP(10) ; L_result += STEP(11) ;
- L_result += STEP(12) ; L_result += STEP(13) ;
- L_result += STEP(14) ; L_result += STEP(15) ;
- L_result += STEP(16) ; L_result += STEP(17) ;
- L_result += STEP(18) ; L_result += STEP(19) ;
- L_result += STEP(20) ; L_result += STEP(21) ;
- L_result += STEP(22) ; L_result += STEP(23) ;
- L_result += STEP(24) ; L_result += STEP(25) ;
- L_result += STEP(26) ; L_result += STEP(27) ;
- L_result += STEP(28) ; L_result += STEP(29) ;
- L_result += STEP(30) ; L_result += STEP(31) ;
- L_result += STEP(32) ; L_result += STEP(33) ;
- L_result += STEP(34) ; L_result += STEP(35) ;
- L_result += STEP(36) ; L_result += STEP(37) ;
- L_result += STEP(38) ; L_result += STEP(39) ;
-
- if (L_result > L_max) {
-
- Nc = lambda;
- L_max = L_result;
- }
- }
-
- *Nc_out = Nc;
-
- L_max <<= 1;
-
- /* Rescaling of L_max
- */
- assert(scal <= 100 && scal >= -100);
- L_max = L_max >> (6 - scal); /* sub(6, scal) */
-
- assert( Nc <= 120 && Nc >= 40);
-
- /* Compute the power of the reconstructed short term residual
- * signal dp[..]
- */
- L_power = 0;
- for (k = 0; k <= 39; k++) {
-
- register longword L_temp;
-
- L_temp = SASR( dp[k - Nc], 3 );
- L_power += L_temp * L_temp;
- }
- L_power <<= 1; /* from L_MULT */
-
- /* Normalization of L_max and L_power
- */
-
- if (L_max <= 0) {
- *bc_out = 0;
- return;
- }
- if (L_max >= L_power) {
- *bc_out = 3;
- return;
- }
-
- temp = gsm_norm( L_power );
-
- R = SASR( L_max << temp, 16 );
- S = SASR( L_power << temp, 16 );
-
- /* Coding of the LTP gain
- */
-
- /* Table 4.3a must be used to obtain the level DLB[i] for the
- * quantization of the LTP gain b to get the coded version bc.
- */
- for (bc = 0; bc <= 2; bc++) if (R <= gsm_mult(S, gsm_DLB[bc])) break;
- *bc_out = bc;
-}
-
-#else /* USE_FLOAT_MUL */
-
-#ifdef LTP_CUT
-
-static void Cut_Calculation_of_the_LTP_parameters P5((st, d,dp,bc_out,Nc_out),
- struct gsm_state * st, /* IN */
- register word * d, /* [0..39] IN */
- register word * dp, /* [-120..-1] IN */
- word * bc_out, /* OUT */
- word * Nc_out /* OUT */
-)
-{
- register int k, lambda;
- word Nc, bc;
- word ltp_cut;
-
- float wt_float[40];
- float dp_float_base[120], * dp_float = dp_float_base + 120;
-
- longword L_max, L_power;
- word R, S, dmax, scal;
- register word temp;
-
- /* Search of the optimum scaling of d[0..39].
- */
- dmax = 0;
-
- for (k = 0; k <= 39; k++) {
- temp = d[k];
- temp = GSM_ABS( temp );
- if (temp > dmax) dmax = temp;
- }
-
- temp = 0;
- if (dmax == 0) scal = 0;
- else {
- assert(dmax > 0);
- temp = gsm_norm( (longword)dmax << 16 );
- }
-
- if (temp > 6) scal = 0;
- else scal = 6 - temp;
-
- assert(scal >= 0);
- ltp_cut = (longword)SASR(dmax, scal) * st->ltp_cut / 100;
-
-
- /* Initialization of a working array wt
- */
-
- for (k = 0; k < 40; k++) {
- register word w = SASR( d[k], scal );
- if (w < 0 ? w > -ltp_cut : w < ltp_cut) {
- wt_float[k] = 0.0;
- }
- else {
- wt_float[k] = w;
- }
- }
- for (k = -120; k < 0; k++) dp_float[k] = dp[k];
-
- /* Search for the maximum cross-correlation and coding of the LTP lag
- */
- L_max = 0;
- Nc = 40; /* index for the maximum cross-correlation */
-
- for (lambda = 40; lambda <= 120; lambda += 9) {
-
- /* Calculate L_result for l = lambda .. lambda + 9.
- */
- register float *lp = dp_float - lambda;
-
- register float W;
- register float a = lp[-8], b = lp[-7], c = lp[-6],
- d = lp[-5], e = lp[-4], f = lp[-3],
- g = lp[-2], h = lp[-1];
- register float E;
- register float S0 = 0, S1 = 0, S2 = 0, S3 = 0, S4 = 0,
- S5 = 0, S6 = 0, S7 = 0, S8 = 0;
-
-# undef STEP
-# define STEP(K, a, b, c, d, e, f, g, h) \
- if ((W = wt_float[K]) != 0.0) { \
- E = W * a; S8 += E; \
- E = W * b; S7 += E; \
- E = W * c; S6 += E; \
- E = W * d; S5 += E; \
- E = W * e; S4 += E; \
- E = W * f; S3 += E; \
- E = W * g; S2 += E; \
- E = W * h; S1 += E; \
- a = lp[K]; \
- E = W * a; S0 += E; } else (a = lp[K])
-
-# define STEP_A(K) STEP(K, a, b, c, d, e, f, g, h)
-# define STEP_B(K) STEP(K, b, c, d, e, f, g, h, a)
-# define STEP_C(K) STEP(K, c, d, e, f, g, h, a, b)
-# define STEP_D(K) STEP(K, d, e, f, g, h, a, b, c)
-# define STEP_E(K) STEP(K, e, f, g, h, a, b, c, d)
-# define STEP_F(K) STEP(K, f, g, h, a, b, c, d, e)
-# define STEP_G(K) STEP(K, g, h, a, b, c, d, e, f)
-# define STEP_H(K) STEP(K, h, a, b, c, d, e, f, g)
-
- STEP_A( 0); STEP_B( 1); STEP_C( 2); STEP_D( 3);
- STEP_E( 4); STEP_F( 5); STEP_G( 6); STEP_H( 7);
-
- STEP_A( 8); STEP_B( 9); STEP_C(10); STEP_D(11);
- STEP_E(12); STEP_F(13); STEP_G(14); STEP_H(15);
-
- STEP_A(16); STEP_B(17); STEP_C(18); STEP_D(19);
- STEP_E(20); STEP_F(21); STEP_G(22); STEP_H(23);
-
- STEP_A(24); STEP_B(25); STEP_C(26); STEP_D(27);
- STEP_E(28); STEP_F(29); STEP_G(30); STEP_H(31);
-
- STEP_A(32); STEP_B(33); STEP_C(34); STEP_D(35);
- STEP_E(36); STEP_F(37); STEP_G(38); STEP_H(39);
-
- if (S0 > L_max) { L_max = S0; Nc = lambda; }
- if (S1 > L_max) { L_max = S1; Nc = lambda + 1; }
- if (S2 > L_max) { L_max = S2; Nc = lambda + 2; }
- if (S3 > L_max) { L_max = S3; Nc = lambda + 3; }
- if (S4 > L_max) { L_max = S4; Nc = lambda + 4; }
- if (S5 > L_max) { L_max = S5; Nc = lambda + 5; }
- if (S6 > L_max) { L_max = S6; Nc = lambda + 6; }
- if (S7 > L_max) { L_max = S7; Nc = lambda + 7; }
- if (S8 > L_max) { L_max = S8; Nc = lambda + 8; }
-
- }
- *Nc_out = Nc;
-
- L_max <<= 1;
-
- /* Rescaling of L_max
- */
- assert(scal <= 100 && scal >= -100);
- L_max = L_max >> (6 - scal); /* sub(6, scal) */
-
- assert( Nc <= 120 && Nc >= 40);
-
- /* Compute the power of the reconstructed short term residual
- * signal dp[..]
- */
- L_power = 0;
- for (k = 0; k <= 39; k++) {
-
- register longword L_temp;
-
- L_temp = SASR( dp[k - Nc], 3 );
- L_power += L_temp * L_temp;
- }
- L_power <<= 1; /* from L_MULT */
-
- /* Normalization of L_max and L_power
- */
-
- if (L_max <= 0) {
- *bc_out = 0;
- return;
- }
- if (L_max >= L_power) {
- *bc_out = 3;
- return;
- }
-
- temp = gsm_norm( L_power );
-
- R = SASR( L_max << temp, 16 );
- S = SASR( L_power << temp, 16 );
-
- /* Coding of the LTP gain
- */
-
- /* Table 4.3a must be used to obtain the level DLB[i] for the
- * quantization of the LTP gain b to get the coded version bc.
- */
- for (bc = 0; bc <= 2; bc++) if (R <= gsm_mult(S, gsm_DLB[bc])) break;
- *bc_out = bc;
-}
-
-#endif /* LTP_CUT */
-
-static void Calculation_of_the_LTP_parameters P4((d,dp,bc_out,Nc_out),
- register word * d, /* [0..39] IN */
- register word * dp, /* [-120..-1] IN */
- word * bc_out, /* OUT */
- word * Nc_out /* OUT */
-)
-{
- register int k, lambda;
- word Nc, bc;
-
- float wt_float[40];
- float dp_float_base[120], * dp_float = dp_float_base + 120;
-
- longword L_max, L_power;
- word R, S, dmax, scal;
- register word temp;
-
- /* Search of the optimum scaling of d[0..39].
- */
- dmax = 0;
-
- for (k = 0; k <= 39; k++) {
- temp = d[k];
- temp = GSM_ABS( temp );
- if (temp > dmax) dmax = temp;
- }
-
- temp = 0;
- if (dmax == 0) scal = 0;
- else {
- assert(dmax > 0);
- temp = gsm_norm( (longword)dmax << 16 );
- }
-
- if (temp > 6) scal = 0;
- else scal = 6 - temp;
-
- assert(scal >= 0);
-
- /* Initialization of a working array wt
- */
-
- for (k = 0; k < 40; k++) wt_float[k] = SASR( d[k], scal );
- for (k = -120; k < 0; k++) dp_float[k] = dp[k];
-
- /* Search for the maximum cross-correlation and coding of the LTP lag
- */
- L_max = 0;
- Nc = 40; /* index for the maximum cross-correlation */
-
- for (lambda = 40; lambda <= 120; lambda += 9) {
-
- /* Calculate L_result for l = lambda .. lambda + 9.
- */
- register float *lp = dp_float - lambda;
-
- register float W;
- register float a = lp[-8], b = lp[-7], c = lp[-6],
- d = lp[-5], e = lp[-4], f = lp[-3],
- g = lp[-2], h = lp[-1];
- register float E;
- register float S0 = 0, S1 = 0, S2 = 0, S3 = 0, S4 = 0,
- S5 = 0, S6 = 0, S7 = 0, S8 = 0;
-
-# undef STEP
-# define STEP(K, a, b, c, d, e, f, g, h) \
- W = wt_float[K]; \
- E = W * a; S8 += E; \
- E = W * b; S7 += E; \
- E = W * c; S6 += E; \
- E = W * d; S5 += E; \
- E = W * e; S4 += E; \
- E = W * f; S3 += E; \
- E = W * g; S2 += E; \
- E = W * h; S1 += E; \
- a = lp[K]; \
- E = W * a; S0 += E
-
-# define STEP_A(K) STEP(K, a, b, c, d, e, f, g, h)
-# define STEP_B(K) STEP(K, b, c, d, e, f, g, h, a)
-# define STEP_C(K) STEP(K, c, d, e, f, g, h, a, b)
-# define STEP_D(K) STEP(K, d, e, f, g, h, a, b, c)
-# define STEP_E(K) STEP(K, e, f, g, h, a, b, c, d)
-# define STEP_F(K) STEP(K, f, g, h, a, b, c, d, e)
-# define STEP_G(K) STEP(K, g, h, a, b, c, d, e, f)
-# define STEP_H(K) STEP(K, h, a, b, c, d, e, f, g)
-
- STEP_A( 0); STEP_B( 1); STEP_C( 2); STEP_D( 3);
- STEP_E( 4); STEP_F( 5); STEP_G( 6); STEP_H( 7);
-
- STEP_A( 8); STEP_B( 9); STEP_C(10); STEP_D(11);
- STEP_E(12); STEP_F(13); STEP_G(14); STEP_H(15);
-
- STEP_A(16); STEP_B(17); STEP_C(18); STEP_D(19);
- STEP_E(20); STEP_F(21); STEP_G(22); STEP_H(23);
-
- STEP_A(24); STEP_B(25); STEP_C(26); STEP_D(27);
- STEP_E(28); STEP_F(29); STEP_G(30); STEP_H(31);
-
- STEP_A(32); STEP_B(33); STEP_C(34); STEP_D(35);
- STEP_E(36); STEP_F(37); STEP_G(38); STEP_H(39);
-
- if (S0 > L_max) { L_max = S0; Nc = lambda; }
- if (S1 > L_max) { L_max = S1; Nc = lambda + 1; }
- if (S2 > L_max) { L_max = S2; Nc = lambda + 2; }
- if (S3 > L_max) { L_max = S3; Nc = lambda + 3; }
- if (S4 > L_max) { L_max = S4; Nc = lambda + 4; }
- if (S5 > L_max) { L_max = S5; Nc = lambda + 5; }
- if (S6 > L_max) { L_max = S6; Nc = lambda + 6; }
- if (S7 > L_max) { L_max = S7; Nc = lambda + 7; }
- if (S8 > L_max) { L_max = S8; Nc = lambda + 8; }
- }
- *Nc_out = Nc;
-
- L_max <<= 1;
-
- /* Rescaling of L_max
- */
- assert(scal <= 100 && scal >= -100);
- L_max = L_max >> (6 - scal); /* sub(6, scal) */
-
- assert( Nc <= 120 && Nc >= 40);
-
- /* Compute the power of the reconstructed short term residual
- * signal dp[..]
- */
- L_power = 0;
- for (k = 0; k <= 39; k++) {
-
- register longword L_temp;
-
- L_temp = SASR( dp[k - Nc], 3 );
- L_power += L_temp * L_temp;
- }
- L_power <<= 1; /* from L_MULT */
-
- /* Normalization of L_max and L_power
- */
-
- if (L_max <= 0) {
- *bc_out = 0;
- return;
- }
- if (L_max >= L_power) {
- *bc_out = 3;
- return;
- }
-
- temp = gsm_norm( L_power );
-
- R = SASR( L_max << temp, 16 );
- S = SASR( L_power << temp, 16 );
-
- /* Coding of the LTP gain
- */
-
- /* Table 4.3a must be used to obtain the level DLB[i] for the
- * quantization of the LTP gain b to get the coded version bc.
- */
- for (bc = 0; bc <= 2; bc++) if (R <= gsm_mult(S, gsm_DLB[bc])) break;
- *bc_out = bc;
-}
-
-#ifdef FAST
-#ifdef LTP_CUT
-
-static void Cut_Fast_Calculation_of_the_LTP_parameters P5((st,
- d,dp,bc_out,Nc_out),
- struct gsm_state * st, /* IN */
- register word * d, /* [0..39] IN */
- register word * dp, /* [-120..-1] IN */
- word * bc_out, /* OUT */
- word * Nc_out /* OUT */
-)
-{
- register int k, lambda;
- register float wt_float;
- word Nc, bc;
- word wt_max, best_k, ltp_cut;
-
- float dp_float_base[120], * dp_float = dp_float_base + 120;
-
- register float L_result, L_max, L_power;
-
- wt_max = 0;
-
- for (k = 0; k < 40; ++k) {
- if ( d[k] > wt_max) wt_max = d[best_k = k];
- else if (-d[k] > wt_max) wt_max = -d[best_k = k];
- }
-
- assert(wt_max >= 0);
- wt_float = (float)wt_max;
-
- for (k = -120; k < 0; ++k) dp_float[k] = (float)dp[k];
-
- /* Search for the maximum cross-correlation and coding of the LTP lag
- */
- L_max = 0;
- Nc = 40; /* index for the maximum cross-correlation */
-
- for (lambda = 40; lambda <= 120; lambda++) {
- L_result = wt_float * dp_float[best_k - lambda];
- if (L_result > L_max) {
- Nc = lambda;
- L_max = L_result;
- }
- }
-
- *Nc_out = Nc;
- if (L_max <= 0.) {
- *bc_out = 0;
- return;
- }
-
- /* Compute the power of the reconstructed short term residual
- * signal dp[..]
- */
- dp_float -= Nc;
- L_power = 0;
- for (k = 0; k < 40; ++k) {
- register float f = dp_float[k];
- L_power += f * f;
- }
-
- if (L_max >= L_power) {
- *bc_out = 3;
- return;
- }
-
- /* Coding of the LTP gain
- * Table 4.3a must be used to obtain the level DLB[i] for the
- * quantization of the LTP gain b to get the coded version bc.
- */
- lambda = L_max / L_power * 32768.;
- for (bc = 0; bc <= 2; ++bc) if (lambda <= gsm_DLB[bc]) break;
- *bc_out = bc;
-}
-
-#endif /* LTP_CUT */
-
-static void Fast_Calculation_of_the_LTP_parameters P4((d,dp,bc_out,Nc_out),
- register word * d, /* [0..39] IN */
- register word * dp, /* [-120..-1] IN */
- word * bc_out, /* OUT */
- word * Nc_out /* OUT */
-)
-{
- register int k, lambda;
- word Nc, bc;
-
- float wt_float[40];
- float dp_float_base[120], * dp_float = dp_float_base + 120;
-
- register float L_max, L_power;
-
- for (k = 0; k < 40; ++k) wt_float[k] = (float)d[k];
- for (k = -120; k < 0; ++k) dp_float[k] = (float)dp[k];
-
- /* Search for the maximum cross-correlation and coding of the LTP lag
- */
- L_max = 0;
- Nc = 40; /* index for the maximum cross-correlation */
-
- for (lambda = 40; lambda <= 120; lambda += 9) {
-
- /* Calculate L_result for l = lambda .. lambda + 9.
- */
- register float *lp = dp_float - lambda;
-
- register float W;
- register float a = lp[-8], b = lp[-7], c = lp[-6],
- d = lp[-5], e = lp[-4], f = lp[-3],
- g = lp[-2], h = lp[-1];
- register float E;
- register float S0 = 0, S1 = 0, S2 = 0, S3 = 0, S4 = 0,
- S5 = 0, S6 = 0, S7 = 0, S8 = 0;
-
-# undef STEP
-# define STEP(K, a, b, c, d, e, f, g, h) \
- W = wt_float[K]; \
- E = W * a; S8 += E; \
- E = W * b; S7 += E; \
- E = W * c; S6 += E; \
- E = W * d; S5 += E; \
- E = W * e; S4 += E; \
- E = W * f; S3 += E; \
- E = W * g; S2 += E; \
- E = W * h; S1 += E; \
- a = lp[K]; \
- E = W * a; S0 += E
-
-# define STEP_A(K) STEP(K, a, b, c, d, e, f, g, h)
-# define STEP_B(K) STEP(K, b, c, d, e, f, g, h, a)
-# define STEP_C(K) STEP(K, c, d, e, f, g, h, a, b)
-# define STEP_D(K) STEP(K, d, e, f, g, h, a, b, c)
-# define STEP_E(K) STEP(K, e, f, g, h, a, b, c, d)
-# define STEP_F(K) STEP(K, f, g, h, a, b, c, d, e)
-# define STEP_G(K) STEP(K, g, h, a, b, c, d, e, f)
-# define STEP_H(K) STEP(K, h, a, b, c, d, e, f, g)
-
- STEP_A( 0); STEP_B( 1); STEP_C( 2); STEP_D( 3);
- STEP_E( 4); STEP_F( 5); STEP_G( 6); STEP_H( 7);
-
- STEP_A( 8); STEP_B( 9); STEP_C(10); STEP_D(11);
- STEP_E(12); STEP_F(13); STEP_G(14); STEP_H(15);
-
- STEP_A(16); STEP_B(17); STEP_C(18); STEP_D(19);
- STEP_E(20); STEP_F(21); STEP_G(22); STEP_H(23);
-
- STEP_A(24); STEP_B(25); STEP_C(26); STEP_D(27);
- STEP_E(28); STEP_F(29); STEP_G(30); STEP_H(31);
-
- STEP_A(32); STEP_B(33); STEP_C(34); STEP_D(35);
- STEP_E(36); STEP_F(37); STEP_G(38); STEP_H(39);
-
- if (S0 > L_max) { L_max = S0; Nc = lambda; }
- if (S1 > L_max) { L_max = S1; Nc = lambda + 1; }
- if (S2 > L_max) { L_max = S2; Nc = lambda + 2; }
- if (S3 > L_max) { L_max = S3; Nc = lambda + 3; }
- if (S4 > L_max) { L_max = S4; Nc = lambda + 4; }
- if (S5 > L_max) { L_max = S5; Nc = lambda + 5; }
- if (S6 > L_max) { L_max = S6; Nc = lambda + 6; }
- if (S7 > L_max) { L_max = S7; Nc = lambda + 7; }
- if (S8 > L_max) { L_max = S8; Nc = lambda + 8; }
- }
- *Nc_out = Nc;
-
- if (L_max <= 0.) {
- *bc_out = 0;
- return;
- }
-
- /* Compute the power of the reconstructed short term residual
- * signal dp[..]
- */
- dp_float -= Nc;
- L_power = 0;
- for (k = 0; k < 40; ++k) {
- register float f = dp_float[k];
- L_power += f * f;
- }
-
- if (L_max >= L_power) {
- *bc_out = 3;
- return;
- }
-
- /* Coding of the LTP gain
- * Table 4.3a must be used to obtain the level DLB[i] for the
- * quantization of the LTP gain b to get the coded version bc.
- */
- lambda = L_max / L_power * 32768.;
- for (bc = 0; bc <= 2; ++bc) if (lambda <= gsm_DLB[bc]) break;
- *bc_out = bc;
-}
-
-#endif /* FAST */
-#endif /* USE_FLOAT_MUL */
-
-
-/* 4.2.12 */
-
-static void Long_term_analysis_filtering P6((bc,Nc,dp,d,dpp,e),
- word bc, /* IN */
- word Nc, /* IN */
- register word * dp, /* previous d [-120..-1] IN */
- register word * d, /* d [0..39] IN */
- register word * dpp, /* estimate [0..39] OUT */
- register word * e /* long term res. signal [0..39] OUT */
-)
-/*
- * In this part, we have to decode the bc parameter to compute
- * the samples of the estimate dpp[0..39]. The decoding of bc needs the
- * use of table 4.3b. The long term residual signal e[0..39]
- * is then calculated to be fed to the RPE encoding section.
- */
-{
- register int k;
- register longword ltmp;
-
-# undef STEP
-# define STEP(BP) \
- for (k = 0; k <= 39; k++) { \
- dpp[k] = GSM_MULT_R( BP, dp[k - Nc]); \
- e[k] = GSM_SUB( d[k], dpp[k] ); \
- }
-
- switch (bc) {
- case 0: STEP( 3277 ); break;
- case 1: STEP( 11469 ); break;
- case 2: STEP( 21299 ); break;
- case 3: STEP( 32767 ); break;
- }
-}
-
-void Gsm_Long_Term_Predictor P7((S,d,dp,e,dpp,Nc,bc), /* 4x for 160 samples */
-
- struct gsm_state * S,
-
- word * d, /* [0..39] residual signal IN */
- word * dp, /* [-120..-1] d' IN */
-
- word * e, /* [0..39] OUT */
- word * dpp, /* [0..39] OUT */
- word * Nc, /* correlation lag OUT */
- word * bc /* gain factor OUT */
-)
-{
- assert( d ); assert( dp ); assert( e );
- assert( dpp); assert( Nc ); assert( bc );
-
-#if defined(FAST) && defined(USE_FLOAT_MUL)
- if (S->fast)
-#if defined (LTP_CUT)
- if (S->ltp_cut)
- Cut_Fast_Calculation_of_the_LTP_parameters(S,
- d, dp, bc, Nc);
- else
-#endif /* LTP_CUT */
- Fast_Calculation_of_the_LTP_parameters(d, dp, bc, Nc );
- else
-#endif /* FAST & USE_FLOAT_MUL */
-#ifdef LTP_CUT
- if (S->ltp_cut)
- Cut_Calculation_of_the_LTP_parameters(S, d, dp, bc, Nc);
- else
-#endif
- Calculation_of_the_LTP_parameters(d, dp, bc, Nc);
-
- Long_term_analysis_filtering( *bc, *Nc, dp, d, dpp, e );
-}
-
-/* 4.3.2 */
-void Gsm_Long_Term_Synthesis_Filtering P5((S,Ncr,bcr,erp,drp),
- struct gsm_state * S,
-
- word Ncr,
- word bcr,
- register word * erp, /* [0..39] IN */
- register word * drp /* [-120..-1] IN, [-120..40] OUT */
-)
-/*
- * This procedure uses the bcr and Ncr parameter to realize the
- * long term synthesis filtering. The decoding of bcr needs
- * table 4.3b.
- */
-{
- register longword ltmp; /* for ADD */
- register int k;
- word brp, drpp, Nr;
-
- /* Check the limits of Nr.
- */
- Nr = Ncr < 40 || Ncr > 120 ? S->nrp : Ncr;
- S->nrp = Nr;
- assert(Nr >= 40 && Nr <= 120);
-
- /* Decoding of the LTP gain bcr
- */
- brp = gsm_QLB[ bcr ];
-
- /* Computation of the reconstructed short term residual
- * signal drp[0..39]
- */
- assert(brp != MIN_WORD);
-
- for (k = 0; k <= 39; k++) {
- drpp = GSM_MULT_R( brp, drp[ k - Nr ] );
- drp[k] = GSM_ADD( erp[k], drpp );
- }
-
- /*
- * Update of the reconstructed short term residual signal
- * drp[ -1..-120 ]
- */
-
- for (k = 0; k <= 119; k++) drp[ -120 + k ] = drp[ -80 + k ];
-}
--- a/common/libsndfile/src/GSM610/lpc.c
+++ /dev/null
@@ -1,341 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/lpc.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-#include <stdio.h>
-#include <assert.h>
-
-#include "private.h"
-
-#include "gsm.h"
-#include "proto.h"
-
-#undef P
-
-/*
- * 4.2.4 .. 4.2.7 LPC ANALYSIS SECTION
- */
-
-/* 4.2.4 */
-
-
-static void Autocorrelation P2((s, L_ACF),
- word * s, /* [0..159] IN/OUT */
- longword * L_ACF) /* [0..8] OUT */
-/*
- * The goal is to compute the array L_ACF[k]. The signal s[i] must
- * be scaled in order to avoid an overflow situation.
- */
-{
- register int k, i;
-
- word temp, smax, scalauto;
-
-#ifdef USE_FLOAT_MUL
- float float_s[160];
-#endif
-
- /* Dynamic scaling of the array s[0..159]
- */
-
- /* Search for the maximum.
- */
- smax = 0;
- for (k = 0; k <= 159; k++) {
- temp = GSM_ABS( s[k] );
- if (temp > smax) smax = temp;
- }
-
- /* Computation of the scaling factor.
- */
- if (smax == 0) scalauto = 0;
- else {
- assert(smax > 0);
- scalauto = 4 - gsm_norm( (longword)smax << 16 );/* sub(4,..) */
- }
-
- /* Scaling of the array s[0...159]
- */
-
- if (scalauto > 0) {
-
-# ifdef USE_FLOAT_MUL
-# define SCALE(n) \
- case n: for (k = 0; k <= 159; k++) \
- float_s[k] = (float) \
- (s[k] = GSM_MULT_R(s[k], 16384 >> (n-1)));\
- break;
-# else
-# define SCALE(n) \
- case n: for (k = 0; k <= 159; k++) \
- s[k] = GSM_MULT_R( s[k], 16384 >> (n-1) );\
- break;
-# endif /* USE_FLOAT_MUL */
-
- switch (scalauto) {
- SCALE(1)
- SCALE(2)
- SCALE(3)
- SCALE(4)
- }
-# undef SCALE
- }
-# ifdef USE_FLOAT_MUL
- else for (k = 0; k <= 159; k++) float_s[k] = (float) s[k];
-# endif
-
- /* Compute the L_ACF[..].
- */
- {
-# ifdef USE_FLOAT_MUL
- register float * sp = float_s;
- register float sl = *sp;
-
-# define STEP(k) L_ACF[k] += (longword)(sl * sp[ -(k) ]);
-# else
- word * sp = s;
- word sl = *sp;
-
-# define STEP(k) L_ACF[k] += ((longword)sl * sp[ -(k) ]);
-# endif
-
-# define NEXTI sl = *++sp
-
-
- for (k = 9; k--; L_ACF[k] = 0) ;
-
- STEP (0);
- NEXTI;
- STEP(0); STEP(1);
- NEXTI;
- STEP(0); STEP(1); STEP(2);
- NEXTI;
- STEP(0); STEP(1); STEP(2); STEP(3);
- NEXTI;
- STEP(0); STEP(1); STEP(2); STEP(3); STEP(4);
- NEXTI;
- STEP(0); STEP(1); STEP(2); STEP(3); STEP(4); STEP(5);
- NEXTI;
- STEP(0); STEP(1); STEP(2); STEP(3); STEP(4); STEP(5); STEP(6);
- NEXTI;
- STEP(0); STEP(1); STEP(2); STEP(3); STEP(4); STEP(5); STEP(6); STEP(7);
-
- for (i = 8; i <= 159; i++) {
-
- NEXTI;
-
- STEP(0);
- STEP(1); STEP(2); STEP(3); STEP(4);
- STEP(5); STEP(6); STEP(7); STEP(8);
- }
-
- for (k = 9; k--; L_ACF[k] <<= 1) ;
-
- }
- /* Rescaling of the array s[0..159]
- */
- if (scalauto > 0) {
- assert(scalauto <= 4);
- for (k = 160; k--; *s++ <<= scalauto) ;
- }
-}
-
-#if defined(USE_FLOAT_MUL) && defined(FAST)
-
-static void Fast_Autocorrelation P2((s, L_ACF),
- word * s, /* [0..159] IN/OUT */
- longword * L_ACF) /* [0..8] OUT */
-{
- register int k, i;
- float f_L_ACF[9];
- float scale;
-
- float s_f[160];
- register float *sf = s_f;
-
- for (i = 0; i < 160; ++i) sf[i] = s[i];
- for (k = 0; k <= 8; k++) {
- register float L_temp2 = 0;
- register float *sfl = sf - k;
- for (i = k; i < 160; ++i) L_temp2 += sf[i] * sfl[i];
- f_L_ACF[k] = L_temp2;
- }
- scale = MAX_LONGWORD / f_L_ACF[0];
-
- for (k = 0; k <= 8; k++) {
- L_ACF[k] = f_L_ACF[k] * scale;
- }
-}
-#endif /* defined (USE_FLOAT_MUL) && defined (FAST) */
-
-/* 4.2.5 */
-
-static void Reflection_coefficients P2( (L_ACF, r),
- longword * L_ACF, /* 0...8 IN */
- register word * r /* 0...7 OUT */
-)
-{
- register int i, m, n;
- register word temp;
- register longword ltmp;
- word ACF[9]; /* 0..8 */
- word P[ 9]; /* 0..8 */
- word K[ 9]; /* 2..8 */
-
- /* Schur recursion with 16 bits arithmetic.
- */
-
- if (L_ACF[0] == 0) {
- for (i = 8; i--; *r++ = 0) ;
- return;
- }
-
- assert( L_ACF[0] != 0 );
- temp = gsm_norm( L_ACF[0] );
-
- assert(temp >= 0 && temp < 32);
-
- /* ? overflow ? */
- for (i = 0; i <= 8; i++) ACF[i] = SASR( L_ACF[i] << temp, 16 );
-
- /* Initialize array P[..] and K[..] for the recursion.
- */
-
- for (i = 1; i <= 7; i++) K[ i ] = ACF[ i ];
- for (i = 0; i <= 8; i++) P[ i ] = ACF[ i ];
-
- /* Compute reflection coefficients
- */
- for (n = 1; n <= 8; n++, r++) {
-
- temp = P[1];
- temp = GSM_ABS(temp);
- if (P[0] < temp) {
- for (i = n; i <= 8; i++) *r++ = 0;
- return;
- }
-
- *r = gsm_div( temp, P[0] );
-
- assert(*r >= 0);
- if (P[1] > 0) *r = -*r; /* r[n] = sub(0, r[n]) */
- assert (*r != MIN_WORD);
- if (n == 8) return;
-
- /* Schur recursion
- */
- temp = GSM_MULT_R( P[1], *r );
- P[0] = GSM_ADD( P[0], temp );
-
- for (m = 1; m <= 8 - n; m++) {
- temp = GSM_MULT_R( K[ m ], *r );
- P[m] = GSM_ADD( P[ m+1 ], temp );
-
- temp = GSM_MULT_R( P[ m+1 ], *r );
- K[m] = GSM_ADD( K[ m ], temp );
- }
- }
-}
-
-/* 4.2.6 */
-
-static void Transformation_to_Log_Area_Ratios P1((r),
- register word * r /* 0..7 IN/OUT */
-)
-/*
- * The following scaling for r[..] and LAR[..] has been used:
- *
- * r[..] = integer( real_r[..]*32768. ); -1 <= real_r < 1.
- * LAR[..] = integer( real_LAR[..] * 16384 );
- * with -1.625 <= real_LAR <= 1.625
- */
-{
- register word temp;
- register int i;
-
-
- /* Computation of the LAR[0..7] from the r[0..7]
- */
- for (i = 1; i <= 8; i++, r++) {
-
- temp = *r;
- temp = GSM_ABS(temp);
- assert(temp >= 0);
-
- if (temp < 22118) {
- temp >>= 1;
- } else if (temp < 31130) {
- assert( temp >= 11059 );
- temp -= 11059;
- } else {
- assert( temp >= 26112 );
- temp -= 26112;
- temp <<= 2;
- }
-
- *r = *r < 0 ? -temp : temp;
- assert( *r != MIN_WORD );
- }
-}
-
-/* 4.2.7 */
-
-static void Quantization_and_coding P1((LAR),
- register word * LAR /* [0..7] IN/OUT */
-)
-{
- register word temp;
- longword ltmp;
-
-
- /* This procedure needs four tables; the following equations
- * give the optimum scaling for the constants:
- *
- * A[0..7] = integer( real_A[0..7] * 1024 )
- * B[0..7] = integer( real_B[0..7] * 512 )
- * MAC[0..7] = maximum of the LARc[0..7]
- * MIC[0..7] = minimum of the LARc[0..7]
- */
-
-# undef STEP
-# define STEP( A, B, MAC, MIC ) \
- temp = GSM_MULT( A, *LAR ); \
- temp = GSM_ADD( temp, B ); \
- temp = GSM_ADD( temp, 256 ); \
- temp = SASR( temp, 9 ); \
- *LAR = temp>MAC ? MAC - MIC : (temp<MIC ? 0 : temp - MIC); \
- LAR++;
-
- STEP( 20480, 0, 31, -32 );
- STEP( 20480, 0, 31, -32 );
- STEP( 20480, 2048, 15, -16 );
- STEP( 20480, -2560, 15, -16 );
-
- STEP( 13964, 94, 7, -8 );
- STEP( 15360, -1792, 7, -8 );
- STEP( 8534, -341, 3, -4 );
- STEP( 9036, -1144, 3, -4 );
-
-# undef STEP
-}
-
-void Gsm_LPC_Analysis P3((S, s,LARc),
- struct gsm_state *S,
- word * s, /* 0..159 signals IN/OUT */
- word * LARc) /* 0..7 LARc's OUT */
-{
- longword L_ACF[9];
-
-#if defined(USE_FLOAT_MUL) && defined(FAST)
- if (S->fast) Fast_Autocorrelation (s, L_ACF );
- else
-#endif
- Autocorrelation (s, L_ACF );
- Reflection_coefficients (L_ACF, LARc );
- Transformation_to_Log_Area_Ratios (LARc);
- Quantization_and_coding (LARc);
-}
--- a/common/libsndfile/src/GSM610/preprocess.c
+++ /dev/null
@@ -1,113 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/preprocess.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-#include <stdio.h>
-#include <assert.h>
-
-#include "private.h"
-
-#include "gsm.h"
-#include "proto.h"
-
-/* 4.2.0 .. 4.2.3 PREPROCESSING SECTION
- *
- * After A-law to linear conversion (or directly from the
- * Ato D converter) the following scaling is assumed for
- * input to the RPE-LTP algorithm:
- *
- * in: 0.1.....................12
- * S.v.v.v.v.v.v.v.v.v.v.v.v.*.*.*
- *
- * Where S is the sign bit, v a valid bit, and * a "don't care" bit.
- * The original signal is called sop[..]
- *
- * out: 0.1................... 12
- * S.S.v.v.v.v.v.v.v.v.v.v.v.v.0.0
- */
-
-
-void Gsm_Preprocess P3((S, s, so),
- struct gsm_state * S,
- word * s,
- word * so ) /* [0..159] IN/OUT */
-{
-
- word z1 = S->z1;
- longword L_z2 = S->L_z2;
- word mp = S->mp;
-
- word s1;
- longword L_s2;
-
- longword L_temp;
-
- word msp, lsp;
- word SO;
-
- longword ltmp; /* for ADD */
- ulongword utmp; /* for L_ADD */
-
- register int k = 160;
-
- while (k--) {
-
- /* 4.2.1 Downscaling of the input signal
- */
- SO = SASR( *s, 3 ) << 2;
- s++;
-
- assert (SO >= -0x4000); /* downscaled by */
- assert (SO <= 0x3FFC); /* previous routine. */
-
-
- /* 4.2.2 Offset compensation
- *
- * This part implements a high-pass filter and requires extended
- * arithmetic precision for the recursive part of this filter.
- * The input of this procedure is the array so[0...159] and the
- * output the array sof[ 0...159 ].
- */
- /* Compute the non-recursive part
- */
-
- s1 = SO - z1; /* s1 = gsm_sub( *so, z1 ); */
- z1 = SO;
-
- assert(s1 != MIN_WORD);
-
- /* Compute the recursive part
- */
- L_s2 = s1;
- L_s2 <<= 15;
-
- /* Execution of a 31 bv 16 bits multiplication
- */
-
- msp = SASR( L_z2, 15 );
- lsp = L_z2-((longword)msp<<15); /* gsm_L_sub(L_z2,(msp<<15)); */
-
- L_s2 += GSM_MULT_R( lsp, 32735 );
- L_temp = (longword)msp * 32735; /* GSM_L_MULT(msp,32735) >> 1;*/
- L_z2 = GSM_L_ADD( L_temp, L_s2 );
-
- /* Compute sof[k] with rounding
- */
- L_temp = GSM_L_ADD( L_z2, 16384 );
-
- /* 4.2.3 Preemphasis
- */
-
- msp = GSM_MULT_R( mp, -28180 );
- mp = SASR( L_temp, 15 );
- *so++ = GSM_ADD( mp, msp );
- }
-
- S->z1 = z1;
- S->L_z2 = L_z2;
- S->mp = mp;
-}
--- a/common/libsndfile/src/GSM610/private.h
+++ /dev/null
@@ -1,278 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/*$Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/private.h,v 1.2 2002/02/13 12:42:02 menno Exp $*/
-
-#ifndef PRIVATE_H
-#define PRIVATE_H
-
-/* Added by Erik de Castro Lopo */
-#define NeedFunctionPrototypes 1
-#define SASR
-#define USE_FLOAT_MUL
-#define FAST
-#define WAV49
-/* Added by Erik de Castro Lopo */
-
-
-
-typedef short word; /* 16 bit signed int */
-typedef int longword; /* 32 bit signed int */
-
-typedef unsigned short uword; /* unsigned word */
-typedef unsigned int ulongword; /* unsigned longword */
-
-struct gsm_state {
-
- word dp0[ 280 ];
-
- word z1; /* preprocessing.c, Offset_com. */
- longword L_z2; /* Offset_com. */
- int mp; /* Preemphasis */
-
- word u[8]; /* short_term_aly_filter.c */
- word LARpp[2][8]; /* */
- word j; /* */
-
- word ltp_cut; /* long_term.c, LTP crosscorr. */
- word nrp; /* 40 */ /* long_term.c, synthesis */
- word v[9]; /* short_term.c, synthesis */
- word msr; /* decoder.c, Postprocessing */
-
- char verbose; /* only used if !NDEBUG */
- char fast; /* only used if FAST */
-
- char wav_fmt; /* only used if WAV49 defined */
- unsigned char frame_index; /* odd/even chaining */
- unsigned char frame_chain; /* half-byte to carry forward */
-};
-
-
-#define MIN_WORD (-32767 - 1)
-#define MAX_WORD 32767
-
-#define MIN_LONGWORD (-2147483647 - 1)
-#define MAX_LONGWORD 2147483647
-
-#ifdef SASR /* flag: >> is a signed arithmetic shift right */
-#undef SASR
-#define SASR(x, by) ((x) >> (by))
-#else
-#define SASR(x, by) ((x) >= 0 ? (x) >> (by) : (~(-((x) + 1) >> (by))))
-#endif /* SASR */
-
-#include "proto.h"
-
-/*
- * Prototypes from add.c
- */
-extern word gsm_mult (word a, word b);
-extern longword gsm_L_mult (word a, word b);
-extern word gsm_mult_r (word a, word b);
-
-extern word gsm_div (word num, word denum);
-
-extern word gsm_add (word a, word b );
-extern longword gsm_L_add (longword a, longword b );
-
-extern word gsm_sub (word a, word b);
-extern longword gsm_L_sub (longword a, longword b);
-
-extern word gsm_abs (word a);
-
-extern word gsm_norm (longword a );
-
-extern longword gsm_L_asl (longword a, int n);
-extern word gsm_asl (word a, int n);
-
-extern longword gsm_L_asr (longword a, int n);
-extern word gsm_asr (word a, int n);
-
-/*
- * Inlined functions from add.h
- */
-
-/*
- * #define GSM_MULT_R(a, b) (* word a, word b, !(a == b == MIN_WORD) *) \
- * (0x0FFFF & SASR(((longword)(a) * (longword)(b) + 16384), 15))
- */
-#define GSM_MULT_R(a, b) /* word a, word b, !(a == b == MIN_WORD) */ \
- (SASR( ((longword)(a) * (longword)(b) + 16384), 15 ))
-
-# define GSM_MULT(a,b) /* word a, word b, !(a == b == MIN_WORD) */ \
- (SASR( ((longword)(a) * (longword)(b)), 15 ))
-
-# define GSM_L_MULT(a, b) /* word a, word b */ \
- (((longword)(a) * (longword)(b)) << 1)
-
-# define GSM_L_ADD(a, b) \
- ( (a) < 0 ? ( (b) >= 0 ? (a) + (b) \
- : (utmp = (ulongword)-((a) + 1) + (ulongword)-((b) + 1)) \
- >= MAX_LONGWORD ? MIN_LONGWORD : -(longword)utmp-2 ) \
- : ((b) <= 0 ? (a) + (b) \
- : (utmp = (ulongword)(a) + (ulongword)(b)) >= MAX_LONGWORD \
- ? MAX_LONGWORD : utmp))
-
-/*
- * # define GSM_ADD(a, b) \
- * ((ltmp = (longword)(a) + (longword)(b)) >= MAX_WORD \
- * ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp)
- */
-/* Nonportable, but faster: */
-
-#define GSM_ADD(a, b) \
- ((ulongword)((ltmp = (longword)(a) + (longword)(b)) - MIN_WORD) > \
- MAX_WORD - MIN_WORD ? (ltmp > 0 ? MAX_WORD : MIN_WORD) : ltmp)
-
-# define GSM_SUB(a, b) \
- ((ltmp = (longword)(a) - (longword)(b)) >= MAX_WORD \
- ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp)
-
-# define GSM_ABS(a) ((a) < 0 ? ((a) == MIN_WORD ? MAX_WORD : -(a)) : (a))
-
-/* Use these if necessary:
-
-# define GSM_MULT_R(a, b) gsm_mult_r(a, b)
-# define GSM_MULT(a, b) gsm_mult(a, b)
-# define GSM_L_MULT(a, b) gsm_L_mult(a, b)
-
-# define GSM_L_ADD(a, b) gsm_L_add(a, b)
-# define GSM_ADD(a, b) gsm_add(a, b)
-# define GSM_SUB(a, b) gsm_sub(a, b)
-
-# define GSM_ABS(a) gsm_abs(a)
-
-*/
-
-/*
- * More prototypes from implementations..
- */
-extern void Gsm_Coder P((
- struct gsm_state * S,
- word * s, /* [0..159] samples IN */
- word * LARc, /* [0..7] LAR coefficients OUT */
- word * Nc, /* [0..3] LTP lag OUT */
- word * bc, /* [0..3] coded LTP gain OUT */
- word * Mc, /* [0..3] RPE grid selection OUT */
- word * xmaxc,/* [0..3] Coded maximum amplitude OUT */
- word * xMc /* [13*4] normalized RPE samples OUT */));
-
-extern void Gsm_Long_Term_Predictor P(( /* 4x for 160 samples */
- struct gsm_state * S,
- word * d, /* [0..39] residual signal IN */
- word * dp, /* [-120..-1] d' IN */
- word * e, /* [0..40] OUT */
- word * dpp, /* [0..40] OUT */
- word * Nc, /* correlation lag OUT */
- word * bc /* gain factor OUT */));
-
-extern void Gsm_LPC_Analysis P((
- struct gsm_state * S,
- word * s, /* 0..159 signals IN/OUT */
- word * LARc)); /* 0..7 LARc's OUT */
-
-extern void Gsm_Preprocess P((
- struct gsm_state * S,
- word * s, word * so));
-
-extern void Gsm_Encoding P((
- struct gsm_state * S,
- word * e,
- word * ep,
- word * xmaxc,
- word * Mc,
- word * xMc));
-
-extern void Gsm_Short_Term_Analysis_Filter P((
- struct gsm_state * S,
- word * LARc, /* coded log area ratio [0..7] IN */
- word * d /* st res. signal [0..159] IN/OUT */));
-
-extern void Gsm_Decoder P((
- struct gsm_state * S,
- word * LARcr, /* [0..7] IN */
- word * Ncr, /* [0..3] IN */
- word * bcr, /* [0..3] IN */
- word * Mcr, /* [0..3] IN */
- word * xmaxcr, /* [0..3] IN */
- word * xMcr, /* [0..13*4] IN */
- word * s)); /* [0..159] OUT */
-
-extern void Gsm_Decoding P((
- struct gsm_state * S,
- word xmaxcr,
- word Mcr,
- word * xMcr, /* [0..12] IN */
- word * erp)); /* [0..39] OUT */
-
-extern void Gsm_Long_Term_Synthesis_Filtering P((
- struct gsm_state* S,
- word Ncr,
- word bcr,
- word * erp, /* [0..39] IN */
- word * drp)); /* [-120..-1] IN, [0..40] OUT */
-
-void Gsm_RPE_Decoding P((
- struct gsm_state *S,
- word xmaxcr,
- word Mcr,
- word * xMcr, /* [0..12], 3 bits IN */
- word * erp)); /* [0..39] OUT */
-
-void Gsm_RPE_Encoding P((
- struct gsm_state * S,
- word * e, /* -5..-1][0..39][40..44 IN/OUT */
- word * xmaxc, /* OUT */
- word * Mc, /* OUT */
- word * xMc)); /* [0..12] OUT */
-
-extern void Gsm_Short_Term_Synthesis_Filter P((
- struct gsm_state * S,
- word * LARcr, /* log area ratios [0..7] IN */
- word * drp, /* received d [0...39] IN */
- word * s)); /* signal s [0..159] OUT */
-
-extern void Gsm_Update_of_reconstructed_short_time_residual_signal P((
- word * dpp, /* [0...39] IN */
- word * ep, /* [0...39] IN */
- word * dp)); /* [-120...-1] IN/OUT */
-
-/*
- * Tables from table.c
- */
-#ifndef GSM_TABLE_C
-
-extern word gsm_A[8], gsm_B[8], gsm_MIC[8], gsm_MAC[8];
-extern word gsm_INVA[8];
-extern word gsm_DLB[4], gsm_QLB[4];
-extern word gsm_H[11];
-extern word gsm_NRFAC[8];
-extern word gsm_FAC[8];
-
-#endif /* GSM_TABLE_C */
-
-/*
- * Debugging
- */
-#ifdef NDEBUG
-
-# define gsm_debug_words(a, b, c, d) /* nil */
-# define gsm_debug_longwords(a, b, c, d) /* nil */
-# define gsm_debug_word(a, b) /* nil */
-# define gsm_debug_longword(a, b) /* nil */
-
-#else /* !NDEBUG => DEBUG */
-
- extern void gsm_debug_words P((char * name, int, int, word *));
- extern void gsm_debug_longwords P((char * name, int, int, longword *));
- extern void gsm_debug_longword P((char * name, longword));
- extern void gsm_debug_word P((char * name, word));
-
-#endif /* !NDEBUG */
-
-#include "unproto.h"
-
-#endif /* PRIVATE_H */
--- a/common/libsndfile/src/GSM610/proto.h
+++ /dev/null
@@ -1,65 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/*$Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/proto.h,v 1.2 2002/02/13 12:42:02 menno Exp $*/
-
-#ifndef PROTO_H
-#define PROTO_H
-
-/*#if __cplusplus*/
-# define NeedFunctionPrototypes 1
-/*#endif*/
-
-#if __STDC__
-# define NeedFunctionPrototypes 1
-#endif
-
-#ifdef _NO_PROTO
-# undef NeedFunctionPrototypes
-#endif
-
-#undef P /* gnu stdio.h actually defines this... */
-#undef P0
-#undef P1
-#undef P2
-#undef P3
-#undef P4
-#undef P5
-#undef P6
-#undef P7
-#undef P8
-
-#if NeedFunctionPrototypes
-
-# define P( protos ) protos
-
-# define P0() (void)
-# define P1(x, a) (a)
-# define P2(x, a, b) (a, b)
-# define P3(x, a, b, c) (a, b, c)
-# define P4(x, a, b, c, d) (a, b, c, d)
-# define P5(x, a, b, c, d, e) (a, b, c, d, e)
-# define P6(x, a, b, c, d, e, f) (a, b, c, d, e, f)
-# define P7(x, a, b, c, d, e, f, g) (a, b, c, d, e, f, g)
-# define P8(x, a, b, c, d, e, f, g, h) (a, b, c, d, e, f, g, h)
-
-#else /* !NeedFunctionPrototypes */
-
-# define P( protos ) ( /* protos */ )
-
-# define P0() ()
-# define P1(x, a) x a;
-# define P2(x, a, b) x a; b;
-# define P3(x, a, b, c) x a; b; c;
-# define P4(x, a, b, c, d) x a; b; c; d;
-# define P5(x, a, b, c, d, e) x a; b; c; d; e;
-# define P6(x, a, b, c, d, e, f) x a; b; c; d; e; f;
-# define P7(x, a, b, c, d, e, f, g) x a; b; c; d; e; f; g;
-# define P8(x, a, b, c, d, e, f, g, h) x a; b; c; d; e; f; g; h;
-
-#endif /* !NeedFunctionPrototypes */
-
-#endif /* PROTO_H */
--- a/common/libsndfile/src/GSM610/rpe.c
+++ /dev/null
@@ -1,488 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/rpe.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-#include <stdio.h>
-#include <assert.h>
-
-#include "private.h"
-
-#include "gsm.h"
-#include "proto.h"
-
-/* 4.2.13 .. 4.2.17 RPE ENCODING SECTION
- */
-
-/* 4.2.13 */
-
-static void Weighting_filter P2((e, x),
- register word * e, /* signal [-5..0.39.44] IN */
- word * x /* signal [0..39] OUT */
-)
-/*
- * The coefficients of the weighting filter are stored in a table
- * (see table 4.4). The following scaling is used:
- *
- * H[0..10] = integer( real_H[ 0..10] * 8192 );
- */
-{
- /* word wt[ 50 ]; */
-
- register longword L_result;
- register int k /* , i */ ;
-
- /* Initialization of a temporary working array wt[0...49]
- */
-
- /* for (k = 0; k <= 4; k++) wt[k] = 0;
- * for (k = 5; k <= 44; k++) wt[k] = *e++;
- * for (k = 45; k <= 49; k++) wt[k] = 0;
- *
- * (e[-5..-1] and e[40..44] are allocated by the caller,
- * are initially zero and are not written anywhere.)
- */
- e -= 5;
-
- /* Compute the signal x[0..39]
- */
- for (k = 0; k <= 39; k++) {
-
- L_result = 8192 >> 1;
-
- /* for (i = 0; i <= 10; i++) {
- * L_temp = GSM_L_MULT( wt[k+i], gsm_H[i] );
- * L_result = GSM_L_ADD( L_result, L_temp );
- * }
- */
-
-#undef STEP
-#define STEP( i, H ) (e[ k + i ] * (longword)H)
-
- /* Every one of these multiplications is done twice --
- * but I don't see an elegant way to optimize this.
- * Do you?
- */
-
-#ifdef STUPID_COMPILER
- L_result += STEP( 0, -134 ) ;
- L_result += STEP( 1, -374 ) ;
- /* + STEP( 2, 0 ) */
- L_result += STEP( 3, 2054 ) ;
- L_result += STEP( 4, 5741 ) ;
- L_result += STEP( 5, 8192 ) ;
- L_result += STEP( 6, 5741 ) ;
- L_result += STEP( 7, 2054 ) ;
- /* + STEP( 8, 0 ) */
- L_result += STEP( 9, -374 ) ;
- L_result += STEP( 10, -134 ) ;
-#else
- L_result +=
- STEP( 0, -134 )
- + STEP( 1, -374 )
- /* + STEP( 2, 0 ) */
- + STEP( 3, 2054 )
- + STEP( 4, 5741 )
- + STEP( 5, 8192 )
- + STEP( 6, 5741 )
- + STEP( 7, 2054 )
- /* + STEP( 8, 0 ) */
- + STEP( 9, -374 )
- + STEP(10, -134 )
- ;
-#endif
-
- /* L_result = GSM_L_ADD( L_result, L_result ); (* scaling(x2) *)
- * L_result = GSM_L_ADD( L_result, L_result ); (* scaling(x4) *)
- *
- * x[k] = SASR( L_result, 16 );
- */
-
- /* 2 adds vs. >>16 => 14, minus one shift to compensate for
- * those we lost when replacing L_MULT by '*'.
- */
-
- L_result = SASR( L_result, 13 );
- x[k] = ( L_result < MIN_WORD ? MIN_WORD
- : (L_result > MAX_WORD ? MAX_WORD : L_result ));
- }
-}
-
-/* 4.2.14 */
-
-static void RPE_grid_selection P3((x,xM,Mc_out),
- word * x, /* [0..39] IN */
- word * xM, /* [0..12] OUT */
- word * Mc_out /* OUT */
-)
-/*
- * The signal x[0..39] is used to select the RPE grid which is
- * represented by Mc.
- */
-{
- /* register word temp1; */
- register int /* m, */ i;
- register longword L_result, L_temp;
- longword EM; /* xxx should be L_EM? */
- word Mc;
-
- longword L_common_0_3;
-
- EM = 0;
- Mc = 0;
-
- /* for (m = 0; m <= 3; m++) {
- * L_result = 0;
- *
- *
- * for (i = 0; i <= 12; i++) {
- *
- * temp1 = SASR( x[m + 3*i], 2 );
- *
- * assert(temp1 != MIN_WORD);
- *
- * L_temp = GSM_L_MULT( temp1, temp1 );
- * L_result = GSM_L_ADD( L_temp, L_result );
- * }
- *
- * if (L_result > EM) {
- * Mc = m;
- * EM = L_result;
- * }
- * }
- */
-
-#undef STEP
-#define STEP( m, i ) L_temp = SASR( x[m + 3 * i], 2 ); \
- L_result += L_temp * L_temp;
-
- /* common part of 0 and 3 */
-
- L_result = 0;
- STEP( 0, 1 ); STEP( 0, 2 ); STEP( 0, 3 ); STEP( 0, 4 );
- STEP( 0, 5 ); STEP( 0, 6 ); STEP( 0, 7 ); STEP( 0, 8 );
- STEP( 0, 9 ); STEP( 0, 10); STEP( 0, 11); STEP( 0, 12);
- L_common_0_3 = L_result;
-
- /* i = 0 */
-
- STEP( 0, 0 );
- L_result <<= 1; /* implicit in L_MULT */
- EM = L_result;
-
- /* i = 1 */
-
- L_result = 0;
- STEP( 1, 0 );
- STEP( 1, 1 ); STEP( 1, 2 ); STEP( 1, 3 ); STEP( 1, 4 );
- STEP( 1, 5 ); STEP( 1, 6 ); STEP( 1, 7 ); STEP( 1, 8 );
- STEP( 1, 9 ); STEP( 1, 10); STEP( 1, 11); STEP( 1, 12);
- L_result <<= 1;
- if (L_result > EM) {
- Mc = 1;
- EM = L_result;
- }
-
- /* i = 2 */
-
- L_result = 0;
- STEP( 2, 0 );
- STEP( 2, 1 ); STEP( 2, 2 ); STEP( 2, 3 ); STEP( 2, 4 );
- STEP( 2, 5 ); STEP( 2, 6 ); STEP( 2, 7 ); STEP( 2, 8 );
- STEP( 2, 9 ); STEP( 2, 10); STEP( 2, 11); STEP( 2, 12);
- L_result <<= 1;
- if (L_result > EM) {
- Mc = 2;
- EM = L_result;
- }
-
- /* i = 3 */
-
- L_result = L_common_0_3;
- STEP( 3, 12 );
- L_result <<= 1;
- if (L_result > EM) {
- Mc = 3;
- EM = L_result;
- }
-
- /**/
-
- /* Down-sampling by a factor 3 to get the selected xM[0..12]
- * RPE sequence.
- */
- for (i = 0; i <= 12; i ++) xM[i] = x[Mc + 3*i];
- *Mc_out = Mc;
-}
-
-/* 4.12.15 */
-
-static void APCM_quantization_xmaxc_to_exp_mant P3((xmaxc,exp_out,mant_out),
- word xmaxc, /* IN */
- word * exp_out, /* OUT */
- word * mant_out ) /* OUT */
-{
- word exp, mant;
-
- /* Compute exponent and mantissa of the decoded version of xmaxc
- */
-
- exp = 0;
- if (xmaxc > 15) exp = SASR(xmaxc, 3) - 1;
- mant = xmaxc - (exp << 3);
-
- if (mant == 0) {
- exp = -4;
- mant = 7;
- }
- else {
- while (mant <= 7) {
- mant = mant << 1 | 1;
- exp--;
- }
- mant -= 8;
- }
-
- assert( exp >= -4 && exp <= 6 );
- assert( mant >= 0 && mant <= 7 );
-
- *exp_out = exp;
- *mant_out = mant;
-}
-
-static void APCM_quantization P5((xM,xMc,mant_out,exp_out,xmaxc_out),
- word * xM, /* [0..12] IN */
-
- word * xMc, /* [0..12] OUT */
- word * mant_out, /* OUT */
- word * exp_out, /* OUT */
- word * xmaxc_out /* OUT */
-)
-{
- int i, itest;
-
- word xmax, xmaxc, temp, temp1, temp2;
- word exp, mant;
-
-
- /* Find the maximum absolute value xmax of xM[0..12].
- */
-
- xmax = 0;
- for (i = 0; i <= 12; i++) {
- temp = xM[i];
- temp = GSM_ABS(temp);
- if (temp > xmax) xmax = temp;
- }
-
- /* Qantizing and coding of xmax to get xmaxc.
- */
-
- exp = 0;
- temp = SASR( xmax, 9 );
- itest = 0;
-
- for (i = 0; i <= 5; i++) {
-
- itest |= (temp <= 0);
- temp = SASR( temp, 1 );
-
- assert(exp <= 5);
- if (itest == 0) exp++; /* exp = add (exp, 1) */
- }
-
- assert(exp <= 6 && exp >= 0);
- temp = exp + 5;
-
- assert(temp <= 11 && temp >= 0);
- xmaxc = gsm_add( SASR(xmax, temp), exp << 3 );
-
- /* Quantizing and coding of the xM[0..12] RPE sequence
- * to get the xMc[0..12]
- */
-
- APCM_quantization_xmaxc_to_exp_mant( xmaxc, &exp, &mant );
-
- /* This computation uses the fact that the decoded version of xmaxc
- * can be calculated by using the exponent and the mantissa part of
- * xmaxc (logarithmic table).
- * So, this method avoids any division and uses only a scaling
- * of the RPE samples by a function of the exponent. A direct
- * multiplication by the inverse of the mantissa (NRFAC[0..7]
- * found in table 4.5) gives the 3 bit coded version xMc[0..12]
- * of the RPE samples.
- */
-
-
- /* Direct computation of xMc[0..12] using table 4.5
- */
-
- assert( exp <= 4096 && exp >= -4096);
- assert( mant >= 0 && mant <= 7 );
-
- temp1 = 6 - exp; /* normalization by the exponent */
- temp2 = gsm_NRFAC[ mant ]; /* inverse mantissa */
-
- for (i = 0; i <= 12; i++) {
-
- assert(temp1 >= 0 && temp1 < 16);
-
- temp = xM[i] << temp1;
- temp = GSM_MULT( temp, temp2 );
- temp = SASR(temp, 12);
- xMc[i] = temp + 4; /* see note below */
- }
-
- /* NOTE: This equation is used to make all the xMc[i] positive.
- */
-
- *mant_out = mant;
- *exp_out = exp;
- *xmaxc_out = xmaxc;
-}
-
-/* 4.2.16 */
-
-static void APCM_inverse_quantization P4((xMc,mant,exp,xMp),
- register word * xMc, /* [0..12] IN */
- word mant,
- word exp,
- register word * xMp) /* [0..12] OUT */
-/*
- * This part is for decoding the RPE sequence of coded xMc[0..12]
- * samples to obtain the xMp[0..12] array. Table 4.6 is used to get
- * the mantissa of xmaxc (FAC[0..7]).
- */
-{
- int i;
- word temp, temp1, temp2, temp3;
- longword ltmp;
-
- assert( mant >= 0 && mant <= 7 );
-
- temp1 = gsm_FAC[ mant ]; /* see 4.2-15 for mant */
- temp2 = gsm_sub( 6, exp ); /* see 4.2-15 for exp */
- temp3 = gsm_asl( 1, gsm_sub( temp2, 1 ));
-
- for (i = 13; i--;) {
-
- assert( *xMc <= 7 && *xMc >= 0 ); /* 3 bit unsigned */
-
- /* temp = gsm_sub( *xMc++ << 1, 7 ); */
- temp = (*xMc++ << 1) - 7; /* restore sign */
- assert( temp <= 7 && temp >= -7 ); /* 4 bit signed */
-
- temp <<= 12; /* 16 bit signed */
- temp = GSM_MULT_R( temp1, temp );
- temp = GSM_ADD( temp, temp3 );
- *xMp++ = gsm_asr( temp, temp2 );
- }
-}
-
-/* 4.2.17 */
-
-static void RPE_grid_positioning P3((Mc,xMp,ep),
- word Mc, /* grid position IN */
- register word * xMp, /* [0..12] IN */
- register word * ep /* [0..39] OUT */
-)
-/*
- * This procedure computes the reconstructed long term residual signal
- * ep[0..39] for the LTP analysis filter. The inputs are the Mc
- * which is the grid position selection and the xMp[0..12] decoded
- * RPE samples which are upsampled by a factor of 3 by inserting zero
- * values.
- */
-{
- int i = 13;
-
- assert(0 <= Mc && Mc <= 3);
-
- switch (Mc) {
- case 3: *ep++ = 0;
- case 2: do {
- *ep++ = 0;
- case 1: *ep++ = 0;
- case 0: *ep++ = *xMp++;
- } while (--i);
- }
- while (++Mc < 4) *ep++ = 0;
-
- /*
-
- int i, k;
- for (k = 0; k <= 39; k++) ep[k] = 0;
- for (i = 0; i <= 12; i++) {
- ep[ Mc + (3*i) ] = xMp[i];
- }
- */
-}
-
-/* 4.2.18 */
-
-/* This procedure adds the reconstructed long term residual signal
- * ep[0..39] to the estimated signal dpp[0..39] from the long term
- * analysis filter to compute the reconstructed short term residual
- * signal dp[-40..-1]; also the reconstructed short term residual
- * array dp[-120..-41] is updated.
- */
-
-#if 0 /* Has been inlined in code.c */
-void Gsm_Update_of_reconstructed_short_time_residual_signal P3((dpp, ep, dp),
- word * dpp, /* [0...39] IN */
- word * ep, /* [0...39] IN */
- word * dp) /* [-120...-1] IN/OUT */
-{
- int k;
-
- for (k = 0; k <= 79; k++)
- dp[ -120 + k ] = dp[ -80 + k ];
-
- for (k = 0; k <= 39; k++)
- dp[ -40 + k ] = gsm_add( ep[k], dpp[k] );
-}
-#endif /* Has been inlined in code.c */
-
-void Gsm_RPE_Encoding P5((S,e,xmaxc,Mc,xMc),
-
- struct gsm_state * S,
-
- word * e, /* -5..-1][0..39][40..44 IN/OUT */
- word * xmaxc, /* OUT */
- word * Mc, /* OUT */
- word * xMc) /* [0..12] OUT */
-{
- word x[40];
- word xM[13], xMp[13];
- word mant, exp;
-
- Weighting_filter(e, x);
- RPE_grid_selection(x, xM, Mc);
-
- APCM_quantization( xM, xMc, &mant, &exp, xmaxc);
- APCM_inverse_quantization( xMc, mant, exp, xMp);
-
- RPE_grid_positioning( *Mc, xMp, e );
-
-}
-
-void Gsm_RPE_Decoding P5((S, xmaxcr, Mcr, xMcr, erp),
- struct gsm_state * S,
-
- word xmaxcr,
- word Mcr,
- word * xMcr, /* [0..12], 3 bits IN */
- word * erp /* [0..39] OUT */
-)
-{
- word exp, mant;
- word xMp[ 13 ];
-
- APCM_quantization_xmaxc_to_exp_mant( xmaxcr, &exp, &mant );
- APCM_inverse_quantization( xMcr, mant, exp, xMp );
- RPE_grid_positioning( Mcr, xMp, erp );
-
-}
--- a/common/libsndfile/src/GSM610/short_term.c
+++ /dev/null
@@ -1,429 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/short_term.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-#include <stdio.h>
-#include <assert.h>
-
-#include "private.h"
-
-#include "gsm.h"
-#include "proto.h"
-
-/*
- * SHORT TERM ANALYSIS FILTERING SECTION
- */
-
-/* 4.2.8 */
-
-static void Decoding_of_the_coded_Log_Area_Ratios P2((LARc,LARpp),
- word * LARc, /* coded log area ratio [0..7] IN */
- word * LARpp) /* out: decoded .. */
-{
- register word temp1 /* , temp2 */;
- register long ltmp; /* for GSM_ADD */
-
- /* This procedure requires for efficient implementation
- * two tables.
- *
- * INVA[1..8] = integer( (32768 * 8) / real_A[1..8])
- * MIC[1..8] = minimum value of the LARc[1..8]
- */
-
- /* Compute the LARpp[1..8]
- */
-
- /* for (i = 1; i <= 8; i++, B++, MIC++, INVA++, LARc++, LARpp++) {
- *
- * temp1 = GSM_ADD( *LARc, *MIC ) << 10;
- * temp2 = *B << 1;
- * temp1 = GSM_SUB( temp1, temp2 );
- *
- * assert(*INVA != MIN_WORD);
- *
- * temp1 = GSM_MULT_R( *INVA, temp1 );
- * *LARpp = GSM_ADD( temp1, temp1 );
- * }
- */
-
-#undef STEP
-#define STEP( B, MIC, INVA ) \
- temp1 = GSM_ADD( *LARc++, MIC ) << 10; \
- temp1 = GSM_SUB( temp1, B << 1 ); \
- temp1 = GSM_MULT_R( INVA, temp1 ); \
- *LARpp++ = GSM_ADD( temp1, temp1 );
-
- STEP( 0, -32, 13107 );
- STEP( 0, -32, 13107 );
- STEP( 2048, -16, 13107 );
- STEP( -2560, -16, 13107 );
-
- STEP( 94, -8, 19223 );
- STEP( -1792, -8, 17476 );
- STEP( -341, -4, 31454 );
- STEP( -1144, -4, 29708 );
-
- /* NOTE: the addition of *MIC is used to restore
- * the sign of *LARc.
- */
-}
-
-/* 4.2.9 */
-/* Computation of the quantized reflection coefficients
- */
-
-/* 4.2.9.1 Interpolation of the LARpp[1..8] to get the LARp[1..8]
- */
-
-/*
- * Within each frame of 160 analyzed speech samples the short term
- * analysis and synthesis filters operate with four different sets of
- * coefficients, derived from the previous set of decoded LARs(LARpp(j-1))
- * and the actual set of decoded LARs (LARpp(j))
- *
- * (Initial value: LARpp(j-1)[1..8] = 0.)
- */
-
-static void Coefficients_0_12 P3((LARpp_j_1, LARpp_j, LARp),
- register word * LARpp_j_1,
- register word * LARpp_j,
- register word * LARp)
-{
- register int i;
- register longword ltmp;
-
- for (i = 1; i <= 8; i++, LARp++, LARpp_j_1++, LARpp_j++) {
- *LARp = GSM_ADD( SASR( *LARpp_j_1, 2 ), SASR( *LARpp_j, 2 ));
- *LARp = GSM_ADD( *LARp, SASR( *LARpp_j_1, 1));
- }
-}
-
-static void Coefficients_13_26 P3((LARpp_j_1, LARpp_j, LARp),
- register word * LARpp_j_1,
- register word * LARpp_j,
- register word * LARp)
-{
- register int i;
- register longword ltmp;
- for (i = 1; i <= 8; i++, LARpp_j_1++, LARpp_j++, LARp++) {
- *LARp = GSM_ADD( SASR( *LARpp_j_1, 1), SASR( *LARpp_j, 1 ));
- }
-}
-
-static void Coefficients_27_39 P3((LARpp_j_1, LARpp_j, LARp),
- register word * LARpp_j_1,
- register word * LARpp_j,
- register word * LARp)
-{
- register int i;
- register longword ltmp;
-
- for (i = 1; i <= 8; i++, LARpp_j_1++, LARpp_j++, LARp++) {
- *LARp = GSM_ADD( SASR( *LARpp_j_1, 2 ), SASR( *LARpp_j, 2 ));
- *LARp = GSM_ADD( *LARp, SASR( *LARpp_j, 1 ));
- }
-}
-
-
-static void Coefficients_40_159 P2((LARpp_j, LARp),
- register word * LARpp_j,
- register word * LARp)
-{
- register int i;
-
- for (i = 1; i <= 8; i++, LARp++, LARpp_j++)
- *LARp = *LARpp_j;
-}
-
-/* 4.2.9.2 */
-
-static void LARp_to_rp P1((LARp),
- register word * LARp) /* [0..7] IN/OUT */
-/*
- * The input of this procedure is the interpolated LARp[0..7] array.
- * The reflection coefficients, rp[i], are used in the analysis
- * filter and in the synthesis filter.
- */
-{
- register int i;
- register word temp;
- register longword ltmp;
-
- for (i = 1; i <= 8; i++, LARp++) {
-
- /* temp = GSM_ABS( *LARp );
- *
- * if (temp < 11059) temp <<= 1;
- * else if (temp < 20070) temp += 11059;
- * else temp = GSM_ADD( temp >> 2, 26112 );
- *
- * *LARp = *LARp < 0 ? -temp : temp;
- */
-
- if (*LARp < 0) {
- temp = *LARp == MIN_WORD ? MAX_WORD : -(*LARp);
- *LARp = - ((temp < 11059) ? temp << 1
- : ((temp < 20070) ? temp + 11059
- : GSM_ADD( temp >> 2, 26112 )));
- } else {
- temp = *LARp;
- *LARp = (temp < 11059) ? temp << 1
- : ((temp < 20070) ? temp + 11059
- : GSM_ADD( temp >> 2, 26112 ));
- }
- }
-}
-
-
-/* 4.2.10 */
-static void Short_term_analysis_filtering P4((S,rp,k_n,s),
- struct gsm_state * S,
- register word * rp, /* [0..7] IN */
- register int k_n, /* k_end - k_start */
- register word * s /* [0..n-1] IN/OUT */
-)
-/*
- * This procedure computes the short term residual signal d[..] to be fed
- * to the RPE-LTP loop from the s[..] signal and from the local rp[..]
- * array (quantized reflection coefficients). As the call of this
- * procedure can be done in many ways (see the interpolation of the LAR
- * coefficient), it is assumed that the computation begins with index
- * k_start (for arrays d[..] and s[..]) and stops with index k_end
- * (k_start and k_end are defined in 4.2.9.1). This procedure also
- * needs to keep the array u[0..7] in memory for each call.
- */
-{
- register word * u = S->u;
- register int i;
- register word di, zzz, ui, sav, rpi;
- register longword ltmp;
-
- for (; k_n--; s++) {
-
- di = sav = *s;
-
- for (i = 0; i < 8; i++) { /* YYY */
-
- ui = u[i];
- rpi = rp[i];
- u[i] = sav;
-
- zzz = GSM_MULT_R(rpi, di);
- sav = GSM_ADD( ui, zzz);
-
- zzz = GSM_MULT_R(rpi, ui);
- di = GSM_ADD( di, zzz );
- }
-
- *s = di;
- }
-}
-
-#if defined(USE_FLOAT_MUL) && defined(FAST)
-
-static void Fast_Short_term_analysis_filtering P4((S,rp,k_n,s),
- struct gsm_state * S,
- register word * rp, /* [0..7] IN */
- register int k_n, /* k_end - k_start */
- register word * s /* [0..n-1] IN/OUT */
-)
-{
- register word * u = S->u;
- register int i;
-
- float uf[8],
- rpf[8];
-
- register float scalef = 3.0517578125e-5;
- register float sav, di, temp;
-
- for (i = 0; i < 8; ++i) {
- uf[i] = u[i];
- rpf[i] = rp[i] * scalef;
- }
- for (; k_n--; s++) {
- sav = di = *s;
- for (i = 0; i < 8; ++i) {
- register float rpfi = rpf[i];
- register float ufi = uf[i];
-
- uf[i] = sav;
- temp = rpfi * di + ufi;
- di += rpfi * ufi;
- sav = temp;
- }
- *s = di;
- }
- for (i = 0; i < 8; ++i) u[i] = uf[i];
-}
-#endif /* ! (defined (USE_FLOAT_MUL) && defined (FAST)) */
-
-static void Short_term_synthesis_filtering P5((S,rrp,k,wt,sr),
- struct gsm_state * S,
- register word * rrp, /* [0..7] IN */
- register int k, /* k_end - k_start */
- register word * wt, /* [0..k-1] IN */
- register word * sr /* [0..k-1] OUT */
-)
-{
- register word * v = S->v;
- register int i;
- register word sri, tmp1, tmp2;
- register longword ltmp; /* for GSM_ADD & GSM_SUB */
-
- while (k--) {
- sri = *wt++;
- for (i = 8; i--;) {
-
- /* sri = GSM_SUB( sri, gsm_mult_r( rrp[i], v[i] ) );
- */
- tmp1 = rrp[i];
- tmp2 = v[i];
- tmp2 = ( tmp1 == MIN_WORD && tmp2 == MIN_WORD
- ? MAX_WORD
- : 0x0FFFF & (( (longword)tmp1 * (longword)tmp2
- + 16384) >> 15)) ;
-
- sri = GSM_SUB( sri, tmp2 );
-
- /* v[i+1] = GSM_ADD( v[i], gsm_mult_r( rrp[i], sri ) );
- */
- tmp1 = ( tmp1 == MIN_WORD && sri == MIN_WORD
- ? MAX_WORD
- : 0x0FFFF & (( (longword)tmp1 * (longword)sri
- + 16384) >> 15)) ;
-
- v[i+1] = GSM_ADD( v[i], tmp1);
- }
- *sr++ = v[0] = sri;
- }
-}
-
-
-#if defined(FAST) && defined(USE_FLOAT_MUL)
-
-static void Fast_Short_term_synthesis_filtering P5((S,rrp,k,wt,sr),
- struct gsm_state * S,
- register word * rrp, /* [0..7] IN */
- register int k, /* k_end - k_start */
- register word * wt, /* [0..k-1] IN */
- register word * sr /* [0..k-1] OUT */
-)
-{
- register word * v = S->v;
- register int i;
-
- float va[9], rrpa[8];
- register float scalef = 3.0517578125e-5, temp;
-
- for (i = 0; i < 8; ++i) {
- va[i] = v[i];
- rrpa[i] = (float)rrp[i] * scalef;
- }
- while (k--) {
- register float sri = *wt++;
- for (i = 8; i--;) {
- sri -= rrpa[i] * va[i];
- if (sri < -32768.) sri = -32768.;
- else if (sri > 32767.) sri = 32767.;
-
- temp = va[i] + rrpa[i] * sri;
- if (temp < -32768.) temp = -32768.;
- else if (temp > 32767.) temp = 32767.;
- va[i+1] = temp;
- }
- *sr++ = va[0] = sri;
- }
- for (i = 0; i < 9; ++i) v[i] = va[i];
-}
-
-#endif /* defined(FAST) && defined(USE_FLOAT_MUL) */
-
-void Gsm_Short_Term_Analysis_Filter P3((S,LARc,s),
-
- struct gsm_state * S,
-
- word * LARc, /* coded log area ratio [0..7] IN */
- word * s /* signal [0..159] IN/OUT */
-)
-{
- word * LARpp_j = S->LARpp[ S->j ];
- word * LARpp_j_1 = S->LARpp[ S->j ^= 1 ];
-
- word LARp[8];
-
-#undef FILTER
-#if defined(FAST) && defined(USE_FLOAT_MUL)
-# define FILTER (* (S->fast \
- ? Fast_Short_term_analysis_filtering \
- : Short_term_analysis_filtering ))
-
-#else
-# define FILTER Short_term_analysis_filtering
-#endif
-
- Decoding_of_the_coded_Log_Area_Ratios( LARc, LARpp_j );
-
- Coefficients_0_12( LARpp_j_1, LARpp_j, LARp );
- LARp_to_rp( LARp );
- FILTER( S, LARp, 13, s);
-
- Coefficients_13_26( LARpp_j_1, LARpp_j, LARp);
- LARp_to_rp( LARp );
- FILTER( S, LARp, 14, s + 13);
-
- Coefficients_27_39( LARpp_j_1, LARpp_j, LARp);
- LARp_to_rp( LARp );
- FILTER( S, LARp, 13, s + 27);
-
- Coefficients_40_159( LARpp_j, LARp);
- LARp_to_rp( LARp );
- FILTER( S, LARp, 120, s + 40);
-}
-
-void Gsm_Short_Term_Synthesis_Filter P4((S, LARcr, wt, s),
- struct gsm_state * S,
-
- word * LARcr, /* received log area ratios [0..7] IN */
- word * wt, /* received d [0..159] IN */
-
- word * s /* signal s [0..159] OUT */
-)
-{
- word * LARpp_j = S->LARpp[ S->j ];
- word * LARpp_j_1 = S->LARpp[ S->j ^=1 ];
-
- word LARp[8];
-
-#undef FILTER
-#if defined(FAST) && defined(USE_FLOAT_MUL)
-
-# define FILTER (* (S->fast \
- ? Fast_Short_term_synthesis_filtering \
- : Short_term_synthesis_filtering ))
-#else
-# define FILTER Short_term_synthesis_filtering
-#endif
-
- Decoding_of_the_coded_Log_Area_Ratios( LARcr, LARpp_j );
-
- Coefficients_0_12( LARpp_j_1, LARpp_j, LARp );
- LARp_to_rp( LARp );
- FILTER( S, LARp, 13, wt, s );
-
- Coefficients_13_26( LARpp_j_1, LARpp_j, LARp);
- LARp_to_rp( LARp );
- FILTER( S, LARp, 14, wt + 13, s + 13 );
-
- Coefficients_27_39( LARpp_j_1, LARpp_j, LARp);
- LARp_to_rp( LARp );
- FILTER( S, LARp, 13, wt + 27, s + 27 );
-
- Coefficients_40_159( LARpp_j, LARp );
- LARp_to_rp( LARp );
- FILTER(S, LARp, 120, wt + 40, s + 40);
-}
--- a/common/libsndfile/src/GSM610/table.c
+++ /dev/null
@@ -1,63 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/* $Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/table.c,v 1.2 2002/02/13 12:42:02 menno Exp $ */
-
-/* Most of these tables are inlined at their point of use.
- */
-
-/* 4.4 TABLES USED IN THE FIXED POINT IMPLEMENTATION OF THE RPE-LTP
- * CODER AND DECODER
- *
- * (Most of them inlined, so watch out.)
- */
-
-#define GSM_TABLE_C
-#include "private.h"
-#include "gsm.h"
-
-/* Table 4.1 Quantization of the Log.-Area Ratios
- */
-/* i 1 2 3 4 5 6 7 8 */
-word gsm_A[8] = {20480, 20480, 20480, 20480, 13964, 15360, 8534, 9036};
-word gsm_B[8] = { 0, 0, 2048, -2560, 94, -1792, -341, -1144};
-word gsm_MIC[8] = { -32, -32, -16, -16, -8, -8, -4, -4 };
-word gsm_MAC[8] = { 31, 31, 15, 15, 7, 7, 3, 3 };
-
-
-/* Table 4.2 Tabulation of 1/A[1..8]
- */
-word gsm_INVA[8]={ 13107, 13107, 13107, 13107, 19223, 17476, 31454, 29708 };
-
-
-/* Table 4.3a Decision level of the LTP gain quantizer
- */
-/* bc 0 1 2 3 */
-word gsm_DLB[4] = { 6554, 16384, 26214, 32767 };
-
-
-/* Table 4.3b Quantization levels of the LTP gain quantizer
- */
-/* bc 0 1 2 3 */
-word gsm_QLB[4] = { 3277, 11469, 21299, 32767 };
-
-
-/* Table 4.4 Coefficients of the weighting filter
- */
-/* i 0 1 2 3 4 5 6 7 8 9 10 */
-word gsm_H[11] = {-134, -374, 0, 2054, 5741, 8192, 5741, 2054, 0, -374, -134 };
-
-
-/* Table 4.5 Normalized inverse mantissa used to compute xM/xmax
- */
-/* i 0 1 2 3 4 5 6 7 */
-word gsm_NRFAC[8] = { 29128, 26215, 23832, 21846, 20165, 18725, 17476, 16384 };
-
-
-/* Table 4.6 Normalized direct mantissa used to compute xM/xmax
- */
-/* i 0 1 2 3 4 5 6 7 */
-word gsm_FAC[8] = { 18431, 20479, 22527, 24575, 26623, 28671, 30719, 32767 };
--- a/common/libsndfile/src/GSM610/unproto.h
+++ /dev/null
@@ -1,23 +1,0 @@
-/*
- * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
- * Universitaet Berlin. See the accompanying file "COPYRIGHT" for
- * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
- */
-
-/*$Header: /home/cvs/f/fa/faac/faac/common/libsndfile/src/GSM610/Attic/unproto.h,v 1.2 2002/02/13 12:42:02 menno Exp $*/
-
-#ifdef PROTO_H /* sic */
-#undef PROTO_H
-
-#undef P
-#undef P0
-#undef P1
-#undef P2
-#undef P3
-#undef P4
-#undef P5
-#undef P6
-#undef P7
-#undef P8
-
-#endif /* PROTO_H */
--- a/common/libsndfile/src/Makefile.am
+++ /dev/null
@@ -1,23 +1,0 @@
-# This file was automatically generated
-# DO NOT EDIT!
-#
-DIST_SUBDIRS = GSM610 G72x
-SUBDIRS = GSM610 G72x
-
-lib_LTLIBRARIES = libsndfile.la
-include_HEADERS = sndfile.h
-INCLUDES = -I$(srcdir)/../src -I$(srcdir)
-
-noinst_HEADERS = common.h sfendian.h floatcast.h wav.h au.h
-
-COMMON = common.c pcm.c ulaw.c alaw.c float32.c sndfile.c
-FILESPECIFIC = aiff.c au.c au_g72x.c nist.c paf.c raw.c samplitude.c \
- svx.c wav.c wav_gsm610.c wav_ima_adpcm.c \
- wav_ms_adpcm.c voc.c ircam.c
-
-libsndfile_la_SOURCES = $(COMMON) $(FILESPECIFIC) sndfile.h
-libsndfile_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
-libsndfile_la_LIBADD = GSM610/libgsm.la G72x/libg72x.la
-
-# Disable autoheader.
-AUTOHEADER=echo
--- a/common/libsndfile/src/Makefile.in
+++ /dev/null
@@ -1,484 +1,0 @@
-# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-# This file was automatically generated
-# DO NOT EDIT!
-#
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AS = @AS@
-CC = @CC@
-DLLTOOL = @DLLTOOL@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-SHARED_VERSION_INFO = @SHARED_VERSION_INFO@
-VERSION = @VERSION@
-subdirs = @subdirs@
-
-DIST_SUBDIRS = GSM610 G72x
-SUBDIRS = GSM610 G72x
-
-lib_LTLIBRARIES = libsndfile.la
-include_HEADERS = sndfile.h
-INCLUDES = -I$(srcdir)/../src -I$(srcdir)
-
-noinst_HEADERS = common.h sfendian.h floatcast.h wav.h au.h
-
-COMMON = common.c pcm.c ulaw.c alaw.c float32.c sndfile.c
-FILESPECIFIC = aiff.c au.c au_g72x.c nist.c paf.c raw.c samplitude.c svx.c wav.c wav_gsm610.c wav_ima_adpcm.c wav_ms_adpcm.c voc.c ircam.c
-
-
-libsndfile_la_SOURCES = $(COMMON) $(FILESPECIFIC) sndfile.h
-libsndfile_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
-libsndfile_la_LIBADD = GSM610/libgsm.la G72x/libg72x.la
-
-# Disable autoheader.
-AUTOHEADER = echo
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(lib_LTLIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I.
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libsndfile_la_DEPENDENCIES = GSM610/libgsm.la G72x/libg72x.la
-libsndfile_la_OBJECTS = common.lo pcm.lo ulaw.lo alaw.lo float32.lo \
-sndfile.lo aiff.lo au.lo au_g72x.lo nist.lo paf.lo raw.lo samplitude.lo \
-svx.lo wav.lo wav_gsm610.lo wav_ima_adpcm.lo wav_ms_adpcm.lo voc.lo \
-ircam.lo
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-HEADERS = $(include_HEADERS) $(noinst_HEADERS)
-
-DIST_COMMON = ./stamp-h.in Makefile.am Makefile.in config.h.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-SOURCES = $(libsndfile_la_SOURCES)
-OBJECTS = $(libsndfile_la_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-config.h: stamp-h
- @if test ! -f $@; then \
- rm -f stamp-h; \
- $(MAKE) stamp-h; \
- else :; fi
-stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES= CONFIG_HEADERS=src/config.h \
- $(SHELL) ./config.status
- @echo timestamp > stamp-h 2> /dev/null
-$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
- @if test ! -f $@; then \
- rm -f $(srcdir)/stamp-h.in; \
- $(MAKE) $(srcdir)/stamp-h.in; \
- else :; fi
-$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOHEADER)
- @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
-
-mostlyclean-hdr:
-
-clean-hdr:
-
-distclean-hdr:
- -rm -f config.h
-
-maintainer-clean-hdr:
-
-mostlyclean-libLTLIBRARIES:
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-
-distclean-libLTLIBRARIES:
-
-maintainer-clean-libLTLIBRARIES:
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(libdir)
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
- $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
- else :; fi; \
- done
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
- done
-
-.c.o:
- $(COMPILE) -c $<
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
-mostlyclean-compile:
- -rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-libsndfile.la: $(libsndfile_la_OBJECTS) $(libsndfile_la_DEPENDENCIES)
- $(LINK) -rpath $(libdir) $(libsndfile_la_LDFLAGS) $(libsndfile_la_OBJECTS) $(libsndfile_la_LIBADD) $(LIBS)
-
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(includedir)
- @list='$(include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
- echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
- $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- list='$(include_HEADERS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(includedir)/$$p; \
- done
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-
-@SET_MAKE@
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive \
-check-recursive installcheck-recursive info-recursive dvi-recursive:
- @set fnord $(MAKEFLAGS); amf=$$2; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
- @set fnord $(MAKEFLAGS); amf=$$2; \
- dot_seen=no; \
- rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
- rev="$$subdir $$rev"; \
- test "$$subdir" = "." && dot_seen=yes; \
- done; \
- test "$$dot_seen" = "no" && rev=". $$rev"; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
- fi; \
- done; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = src
-
-distdir: $(DISTFILES)
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$d/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
- for subdir in $(DIST_SUBDIRS); do \
- if test "$$subdir" = .; then :; else \
- test -d $(distdir)/$$subdir \
- || mkdir $(distdir)/$$subdir \
- || exit 1; \
- chmod 777 $(distdir)/$$subdir; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
- || exit 1; \
- fi; \
- done
-aiff.lo aiff.o : aiff.c sndfile.h config.h sfendian.h common.h
-alaw.lo alaw.o : alaw.c sndfile.h floatcast.h common.h
-au.lo au.o : au.c sndfile.h config.h sfendian.h common.h au.h
-au_g72x.lo au_g72x.o : au_g72x.c config.h sndfile.h sfendian.h \
- floatcast.h common.h au.h G72x/g72x.h
-common.lo common.o : common.c sndfile.h sfendian.h config.h common.h
-float32.lo float32.o : float32.c sndfile.h config.h sfendian.h common.h
-ircam.lo ircam.o : ircam.c sndfile.h config.h sfendian.h common.h
-nist.lo nist.o : nist.c sndfile.h config.h sfendian.h common.h
-paf.lo paf.o : paf.c config.h sndfile.h sfendian.h floatcast.h common.h
-pcm.lo pcm.o : pcm.c config.h sndfile.h sfendian.h floatcast.h common.h
-raw.lo raw.o : raw.c sndfile.h config.h sfendian.h common.h
-samplitude.lo samplitude.o : samplitude.c sndfile.h config.h sfendian.h \
- common.h
-sndfile.lo sndfile.o : sndfile.c sndfile.h config.h sfendian.h common.h
-svx.lo svx.o : svx.c sndfile.h config.h sfendian.h common.h
-ulaw.lo ulaw.o : ulaw.c sndfile.h floatcast.h common.h
-voc.lo voc.o : voc.c sndfile.h config.h sfendian.h common.h
-wav.lo wav.o : wav.c sndfile.h config.h sfendian.h common.h wav.h
-wav_gsm610.lo wav_gsm610.o : wav_gsm610.c sndfile.h config.h sfendian.h \
- floatcast.h common.h wav.h GSM610/gsm.h
-wav_ima_adpcm.lo wav_ima_adpcm.o : wav_ima_adpcm.c sndfile.h config.h \
- sfendian.h floatcast.h common.h wav.h
-wav_ms_adpcm.lo wav_ms_adpcm.o : wav_ms_adpcm.c sndfile.h config.h \
- sfendian.h floatcast.h common.h wav.h
-
-info-am:
-info: info-recursive
-dvi-am:
-dvi: dvi-recursive
-check-am: all-am
-check: check-recursive
-installcheck-am:
-installcheck: installcheck-recursive
-all-recursive-am: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-install-exec-am: install-libLTLIBRARIES
-install-exec: install-exec-recursive
-
-install-data-am: install-includeHEADERS
-install-data: install-data-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-recursive
-uninstall-am: uninstall-libLTLIBRARIES uninstall-includeHEADERS
-uninstall: uninstall-recursive
-all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h
-all-redirect: all-recursive-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs: installdirs-recursive
-installdirs-am:
- $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-hdr mostlyclean-libLTLIBRARIES \
- mostlyclean-compile mostlyclean-libtool \
- mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-recursive
-
-clean-am: clean-hdr clean-libLTLIBRARIES clean-compile clean-libtool \
- clean-tags clean-generic mostlyclean-am
-
-clean: clean-recursive
-
-distclean-am: distclean-hdr distclean-libLTLIBRARIES distclean-compile \
- distclean-libtool distclean-tags distclean-generic \
- clean-am
- -rm -f libtool
-
-distclean: distclean-recursive
-
-maintainer-clean-am: maintainer-clean-hdr \
- maintainer-clean-libLTLIBRARIES \
- maintainer-clean-compile maintainer-clean-libtool \
- maintainer-clean-tags maintainer-clean-generic \
- distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-recursive
-
-.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
-mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
-clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
-uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
-distclean-compile clean-compile maintainer-clean-compile \
-mostlyclean-libtool distclean-libtool clean-libtool \
-maintainer-clean-libtool uninstall-includeHEADERS \
-install-includeHEADERS install-data-recursive uninstall-data-recursive \
-install-exec-recursive uninstall-exec-recursive installdirs-recursive \
-uninstalldirs-recursive all-recursive check-recursive \
-installcheck-recursive info-recursive dvi-recursive \
-mostlyclean-recursive distclean-recursive clean-recursive \
-maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
-install-exec-am install-exec install-data-am install-data install-am \
-install uninstall-am uninstall all-redirect all-am all installdirs-am \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
--- a/common/libsndfile/src/aiff.c
+++ /dev/null
@@ -1,713 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
-#include <time.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "common.h"
-
-
-/*------------------------------------------------------------------------------
- * Macros to handle big/little endian issues.
- */
-
-#if (CPU_IS_LITTLE_ENDIAN == 1)
- #define MAKE_MARKER(a,b,c,d) ((a)|((b)<<8)|((c)<<16)|((d)<<24))
-#elif (CPU_IS_BIG_ENDIAN == 1)
- #define MAKE_MARKER(a,b,c,d) (((a)<<24)|((b)<<16)|((c)<<8)|(d))
-#else
- #error "Cannot determine endian-ness of processor."
-#endif
-
-#define FORM_MARKER (MAKE_MARKER ('F', 'O', 'R', 'M'))
-#define AIFF_MARKER (MAKE_MARKER ('A', 'I', 'F', 'F'))
-#define AIFC_MARKER (MAKE_MARKER ('A', 'I', 'F', 'C'))
-#define COMM_MARKER (MAKE_MARKER ('C', 'O', 'M', 'M'))
-#define SSND_MARKER (MAKE_MARKER ('S', 'S', 'N', 'D'))
-#define MARK_MARKER (MAKE_MARKER ('M', 'A', 'R', 'K'))
-#define INST_MARKER (MAKE_MARKER ('I', 'N', 'S', 'T'))
-#define APPL_MARKER (MAKE_MARKER ('A', 'P', 'P', 'L'))
-
-#define c_MARKER (MAKE_MARKER ('(', 'c', ')', ' '))
-#define NAME_MARKER (MAKE_MARKER ('N', 'A', 'M', 'E'))
-#define AUTH_MARKER (MAKE_MARKER ('A', 'U', 'T', 'H'))
-#define ANNO_MARKER (MAKE_MARKER ('A', 'N', 'N', 'O'))
-#define COMT_MARKER (MAKE_MARKER ('C', 'O', 'M', 'T'))
-#define FVER_MARKER (MAKE_MARKER ('F', 'V', 'E', 'R'))
-#define SFX_MARKER (MAKE_MARKER ('S', 'F', 'X', '!'))
-
-
-#define PEAK_MARKER (MAKE_MARKER ('P', 'E', 'A', 'K'))
-
-/* Supported AIFC encodings.*/
-#define NONE_MARKER (MAKE_MARKER ('N', 'O', 'N', 'E'))
-#define sowt_MARKER (MAKE_MARKER ('s', 'o', 'w', 't'))
-#define twos_MARKER (MAKE_MARKER ('t', 'w', 'o', 's'))
-#define fl32_MARKER (MAKE_MARKER ('f', 'l', '3', '2'))
-#define FL32_MARKER (MAKE_MARKER ('F', 'L', '3', '2'))
-
-/* Unsupported AIFC encodings.*/
-#define fl64_MARKER (MAKE_MARKER ('f', 'l', '6', '4'))
-#define FL64_MARKER (MAKE_MARKER ('F', 'L', '6', '4'))
-#define MAC3_MARKER (MAKE_MARKER ('M', 'A', 'C', '3'))
-#define MAC6_MARKER (MAKE_MARKER ('M', 'A', 'C', '6'))
-#define ima4_MARKER (MAKE_MARKER ('i', 'm', 'a', '4'))
-#define ulaw_MARKER (MAKE_MARKER ('a', 'l', 'a', 'w'))
-#define alaw_MARKER (MAKE_MARKER ('u', 'l', 'a', 'w'))
-#define ADP4_MARKER (MAKE_MARKER ('A', 'D', 'P', '4'))
-
-/* Predfined chunk sizes. */
-#define AIFF_COMM_SIZE 18
-#define AIFC_COMM_SIZE 24
-#define SSND_CHUNK_SIZE 8
-
-/*------------------------------------------------------------------------------
- * Typedefs for file chunks.
- */
-
-enum
-{ HAVE_FORM = 0x01,
- HAVE_AIFF = 0x02,
- HAVE_COMM = 0x04,
- HAVE_SSND = 0x08
-} ;
-
-typedef struct
-{ unsigned int type ;
- unsigned int size ;
- short numChannels ;
- unsigned int numSampleFrames ;
- short sampleSize ;
- unsigned char sampleRate [10] ;
- unsigned int encoding ;
- char zero_bytes [2] ;
-} COMM_CHUNK ;
-
-typedef struct
-{ unsigned int offset ;
- unsigned int blocksize ;
-} SSND_CHUNK ;
-
-typedef struct
-{ short playMode;
- int beginLoop;
- int endLoop;
-} INST_CHUNK ;
-
-/*------------------------------------------------------------------------------
- * Private static functions.
- */
-
-static int aiff_close (SF_PRIVATE *psf) ;
-
-static int tenbytefloat2int (unsigned char *bytes) ;
-static void uint2tenbytefloat (unsigned int num, unsigned char *bytes) ;
-
-static int aiff_read_comm_chunk (SF_PRIVATE *psf, COMM_CHUNK *comm_fmt) ;
-
-static int aiff_write_header (SF_PRIVATE *psf) ;
-static int aiff_write_tailer (SF_PRIVATE *psf) ;
-
-/*------------------------------------------------------------------------------
-** Public functions.
-*/
-
-int
-aiff_open_read (SF_PRIVATE *psf)
-{ COMM_CHUNK comm_fmt ;
- SSND_CHUNK ssnd_fmt ;
- int marker, dword ;
- long FORMsize, SSNDsize ;
- int filetype, found_chunk = 0, done = 0, error = 0 ;
- char *cptr ;
-
- psf->sf.seekable = SF_TRUE ;
-
- /* Set position to start of file to begin reading header. */
- psf_binheader_readf (psf, "p", 0) ;
-
- memset (&comm_fmt, 0, sizeof (comm_fmt)) ;
-
- /* Until recently AIF* file were all BIG endian. */
- psf->endian = SF_ENDIAN_BIG ;
-
- /* AIFF files can apparently have their chunks in any order. However, they must
- ** a FORM chunk. Approach here is to read allthe chunks one by one and then
- ** check for the mandatory chunks at the end.
- */
- while (! done)
- { psf_binheader_readf (psf, "m", &marker) ;
- switch (marker)
- { case FORM_MARKER :
- if (found_chunk)
- return SFE_AIFF_NO_FORM ;
-
- psf_binheader_readf (psf, "L", &FORMsize) ;
-
- if (FORMsize != psf->filelength - 2 * sizeof (dword))
- { dword = psf->filelength - 2 * sizeof (dword);
- psf_log_printf (psf, "FORM : %d (should be %d)\n", FORMsize, dword) ;
- FORMsize = dword ;
- }
- else
- psf_log_printf (psf, "FORM : %d\n", FORMsize) ;
- found_chunk |= HAVE_FORM ;
- break ;
-
- case AIFC_MARKER :
- case AIFF_MARKER :
- if (! (found_chunk & HAVE_FORM))
- return SFE_AIFF_AIFF_NO_FORM ;
- filetype = marker ;
- psf_log_printf (psf, " %D\n", marker) ;
- found_chunk |= HAVE_AIFF ;
- break ;
-
- case COMM_MARKER :
- error = aiff_read_comm_chunk (psf, &comm_fmt) ;
-
- psf->sf.samplerate = tenbytefloat2int (comm_fmt.sampleRate) ;
- psf->sf.samples = comm_fmt.numSampleFrames ;
- psf->sf.channels = comm_fmt.numChannels ;
- psf->sf.pcmbitwidth = comm_fmt.sampleSize ;
- psf->sf.sections = 1 ;
-
- if (error)
- return error ;
-
- found_chunk |= HAVE_COMM ;
- break ;
-
- case PEAK_MARKER :
- /* Must have COMM chunk before PEAK chunk. */
- if ((found_chunk & (HAVE_FORM | HAVE_AIFF | HAVE_COMM)) != (HAVE_FORM | HAVE_AIFF | HAVE_COMM))
- return SFE_AIFF_PEAK_B4_COMM ;
-
- psf_binheader_readf (psf, "L", &dword) ;
-
- psf_log_printf (psf, "%D : %d\n", marker, dword) ;
- if (dword > sizeof (psf->peak))
- { psf_binheader_readf (psf, "j", dword) ;
- psf_log_printf (psf, "*** File PEAK chunk bigger than sizeof (PEAK_CHUNK).\n") ;
- return SFE_WAV_BAD_PEAK ;
- } ;
- if (dword != sizeof (psf->peak) - sizeof (psf->peak.peak) + psf->sf.channels * sizeof (PEAK_POS))
- { psf_binheader_readf (psf, "j", dword) ;
- psf_log_printf (psf, "*** File PEAK chunk size doesn't fit with number of channels.\n") ;
- return SFE_WAV_BAD_PEAK ;
- } ;
-
- /* read in rest of PEAK chunk. */
- psf_binheader_readf (psf, "LL", &(psf->peak.version), &(psf->peak.timestamp)) ;
-
- if (psf->peak.version != 1)
- psf_log_printf (psf, " version : %d *** (should be version 1)\n", psf->peak.version) ;
- else
- psf_log_printf (psf, " version : %d\n", psf->peak.version) ;
-
- psf_log_printf (psf, " time stamp : %d\n", psf->peak.timestamp) ;
- psf_log_printf (psf, " Ch Position Value\n") ;
-
- cptr = (char *) psf->buffer ;
- for (dword = 0 ; dword < psf->sf.channels ; dword++)
- { psf_binheader_readf (psf, "FL", &(psf->peak.peak[dword].value),
- &(psf->peak.peak[dword].position)) ;
-
- snprintf (cptr, sizeof (psf->buffer), " %2d %-12d %g\n",
- dword, psf->peak.peak[dword].position, psf->peak.peak[dword].value) ;
- cptr [sizeof (psf->buffer) - 1] = 0 ;
- psf_log_printf (psf, cptr) ;
- };
-
- psf->has_peak = SF_TRUE ;
- break ;
-
- case SSND_MARKER :
- psf_binheader_readf (psf, "LLL", &SSNDsize, &(ssnd_fmt.offset), &(ssnd_fmt.blocksize)) ;
-
- psf->dataoffset = ftell (psf->file) ;
- psf->datalength = psf->filelength - psf->dataoffset ;
- if (SSNDsize > psf->datalength + sizeof (SSND_CHUNK))
- psf_log_printf (psf, " SSND : %d (should be %d)\n", SSNDsize, psf->datalength + sizeof (SSND_CHUNK)) ;
- else
- psf_log_printf (psf, " SSND : %d\n", SSNDsize) ;
-
- psf_log_printf (psf, " Offset : %d\n", ssnd_fmt.offset) ;
- psf_log_printf (psf, " Block Size : %d\n", ssnd_fmt.blocksize) ;
-
- found_chunk |= HAVE_SSND ;
-
- if (! psf->sf.seekable)
- break ;
-
- /* Seek to end of SSND chunk. */
- fseek (psf->file, SSNDsize - 8, SEEK_CUR) ;
- break ;
-
- case c_MARKER :
- case ANNO_MARKER :
- case AUTH_MARKER :
- case COMT_MARKER :
- case NAME_MARKER :
- psf_binheader_readf (psf, "L", &dword);
- dword += (dword & 1) ;
- if (dword == 0)
- break ;
- if (dword > sizeof (psf->buffer))
- { psf_log_printf (psf, " *** %D : %d (too big)\n", marker, dword) ;
- return SFE_INTERNAL ;
- } ;
- psf_binheader_readf (psf, "B", psf->buffer, dword) ;
- psf->buffer [dword - 1] = 0 ;
- psf_log_printf (psf, "*** %D : %s\n", marker, psf->buffer) ;
- break ;
-
- case FVER_MARKER :
- case SFX_MARKER :
- psf_binheader_readf (psf, "L", &dword) ;
- psf_log_printf (psf, " %D : %d\n", marker, dword) ;
-
- psf_binheader_readf (psf, "j", dword) ;
- break ;
-
- case APPL_MARKER :
- case INST_MARKER :
- case MARK_MARKER :
- psf_binheader_readf (psf, "L", &dword) ;
- psf_log_printf (psf, " %D : %d\n", marker, dword) ;
-
- psf_binheader_readf (psf, "j", dword) ;
- break ;
-
- default :
- if (isprint ((marker >> 24) & 0xFF) && isprint ((marker >> 16) & 0xFF)
- && isprint ((marker >> 8) & 0xFF) && isprint (marker & 0xFF))
- { psf_binheader_readf (psf, "L", &dword) ;
- psf_log_printf (psf, "%D : %d (unknown marker)\n", marker, dword) ;
-
- psf_binheader_readf (psf, "j", dword) ;
- break ;
- } ;
- if ((dword = ftell (psf->file)) & 0x03)
- { psf_log_printf (psf, " Unknown chunk marker at position %d. Resyncing.\n", dword - 4) ;
-
- psf_binheader_readf (psf, "j", -3) ;
- break ;
- } ;
- psf_log_printf (psf, "*** Unknown chunk marker : %X. Exiting parser.\n", marker) ;
- done = 1 ;
- break ;
- } ; /* switch (marker) */
-
- if ((! psf->sf.seekable) && (found_chunk & HAVE_SSND))
- break ;
-
- if (ferror (psf->file))
- { psf_log_printf (psf, "*** Error on file handle. ***\n") ;
- clearerr (psf->file) ;
- break ;
- } ;
-
- if (ftell (psf->file) >= (long) (psf->filelength - (2 * sizeof (dword))))
- break ;
- } ; /* while (1) */
-
- if (! (found_chunk & HAVE_FORM))
- return SFE_AIFF_NO_FORM ;
-
- if (! (found_chunk & HAVE_AIFF))
- return SFE_AIFF_COMM_NO_FORM ;
-
- if (! (found_chunk & HAVE_COMM))
- return SFE_AIFF_SSND_NO_COMM ;
-
- if (! psf->dataoffset)
- return SFE_AIFF_NO_DATA ;
-
- psf->current = 0 ;
- psf->sf.seekable = SF_TRUE ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
-
- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
-
- fseek (psf->file, psf->dataoffset, SEEK_SET) ;
-
- psf->close = (func_close) aiff_close ;
-
- switch (psf->sf.format & SF_FORMAT_SUBMASK)
- { case SF_FORMAT_PCM :
- case SF_FORMAT_PCM_LE :
- case SF_FORMAT_PCM_BE :
- if (psf->bytewidth == 1)
- psf->chars = SF_CHARS_SIGNED ;
-
- error = pcm_read_init (psf) ;
- break ;
-
- case SF_FORMAT_FLOAT :
- error = float32_read_init (psf) ;
- break ;
-
- default : return SFE_UNIMPLEMENTED ;
- } ;
-
- return error ;
-} /* aiff_open_read */
-
-/*------------------------------------------------------------------------------
- */
-
-int
-aiff_open_write (SF_PRIVATE *psf)
-{ int error ;
-
- if ((psf->sf.format & SF_FORMAT_TYPEMASK) != SF_FORMAT_AIFF)
- return SFE_BAD_OPEN_FORMAT ;
-
- psf->sf.seekable = SF_TRUE ;
- psf->error = 0 ;
-
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
- psf->blockwidth = psf->bytewidth * psf->sf.channels ;
-
- /* Set sample count artifically high and fix later. */
- psf->sf.samples = 0x7FFFFFFF / psf->blockwidth ;
-
- psf->datalength = psf->blockwidth * psf->sf.samples ;
- psf->filelength = 0x7FFFFFFF ;
-
- if ((error = aiff_write_header (psf)))
- return error ;
-
- psf->close = (func_close) aiff_close ;
- psf->write_header = (func_wr_hdr) aiff_write_header ;
-
- switch (psf->sf.format & SF_FORMAT_SUBMASK)
- { case SF_FORMAT_PCM :
- case SF_FORMAT_PCM_LE :
- case SF_FORMAT_PCM_BE :
- if (psf->bytewidth == 1)
- psf->chars = SF_CHARS_SIGNED ;
-
- error = pcm_write_init (psf) ;
- break ;
-
- case SF_FORMAT_FLOAT :
- error = float32_write_init (psf) ;
- break ;
-
- default : return SFE_UNIMPLEMENTED ;
- } ;
-
- return error ;
-} /* aiff_open_write */
-
-/*==========================================================================================
-** Private functions.
-*/
-
-static int
-aiff_close (SF_PRIVATE *psf)
-{
- if (psf->mode == SF_MODE_WRITE)
- { /* Now we know for certain the length of the file we can re-write
- ** correct values for the FORM, COMM and SSND chunks.
- */
-
- aiff_write_tailer (psf) ;
-
- fseek (psf->file, 0, SEEK_END) ;
- psf->filelength = ftell (psf->file) ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- psf->datalength = psf->filelength - psf->dataoffset ;
- psf->sf.samples = psf->datalength / (psf->bytewidth * psf->sf.channels) ;
-
- aiff_write_header (psf) ;
- } ;
-
- if (psf->fdata)
- free (psf->fdata) ;
- psf->fdata = NULL ;
-
- return 0 ;
-} /* aiff_close */
-
-static int
-aiff_read_comm_chunk (SF_PRIVATE *psf, COMM_CHUNK *comm_fmt)
-{ int error = 0, bytesread ;
-
- bytesread = psf_binheader_readf (psf, "L", &(comm_fmt->size)) ;
-
- /* The COMM chunk has an int aligned to an odd word boundary. Some
- ** procesors are not able to deal with this (ie bus fault) so we have
- ** to take special care.
- */
-
- bytesread +=
- psf_binheader_readf (psf, "WLWB", &(comm_fmt->numChannels), &(comm_fmt->numSampleFrames),
- &(comm_fmt->sampleSize), &(comm_fmt->sampleRate), sizeof (comm_fmt->sampleRate)) ;
-
- if (comm_fmt->size == AIFF_COMM_SIZE)
- comm_fmt->encoding = NONE_MARKER ;
- else if (comm_fmt->size >= AIFC_COMM_SIZE)
- { bytesread +=
- psf_binheader_readf (psf, "mB", &(comm_fmt->encoding), &(comm_fmt->zero_bytes), 2) ;
-
- psf_binheader_readf (psf, "B", psf->header, comm_fmt->size - AIFC_COMM_SIZE) ;
- } ;
-
- psf_log_printf (psf, " COMM : %d\n", comm_fmt->size) ;
- psf_log_printf (psf, " Sample Rate : %d\n", tenbytefloat2int (comm_fmt->sampleRate)) ;
- psf_log_printf (psf, " Samples : %d\n", comm_fmt->numSampleFrames) ;
- psf_log_printf (psf, " Channels : %d\n", comm_fmt->numChannels) ;
-
- /* Found some broken 'fl32' files with comm.samplesize == 16. Fix it here. */
-
- if ((comm_fmt->encoding == fl32_MARKER || comm_fmt->encoding == FL32_MARKER) && comm_fmt->sampleSize != 32)
- { psf_log_printf (psf, " Sample Size : %d (should be 32)\n", comm_fmt->sampleSize) ;
- comm_fmt->sampleSize = 32 ;
- }
- else
- psf_log_printf (psf, " Sample Size : %d\n", comm_fmt->sampleSize) ;
-
- switch (comm_fmt->encoding)
- { case NONE_MARKER :
- psf->endian = SF_ENDIAN_BIG ;
- psf->sf.format = (SF_FORMAT_AIFF | SF_FORMAT_PCM) ;
- break ;
-
- case twos_MARKER :
- psf->endian = SF_ENDIAN_BIG ;
- psf->sf.format = (SF_FORMAT_AIFF | SF_FORMAT_PCM_BE) ;
- break ;
-
- case sowt_MARKER :
- psf->endian = SF_ENDIAN_LITTLE ;
- psf->sf.format = (SF_FORMAT_AIFF | SF_FORMAT_PCM_LE) ;
- break ;
-
- case fl32_MARKER :
- case FL32_MARKER :
- psf->endian = SF_ENDIAN_BIG ;
- psf->sf.format = (SF_FORMAT_AIFF | SF_FORMAT_FLOAT) ;
- break ;
-
- default :
- psf_log_printf (psf, "AIFC : Unimplemented format : %D\n", comm_fmt->encoding) ;
- error = SFE_UNIMPLEMENTED ;
- } ;
-
- psf_log_printf (psf, " Encoding : %D\n", comm_fmt->encoding) ;
-
- return error ;
-} /* aiff_read_comm_chunk */
-
-static int
-aiff_write_header (SF_PRIVATE *psf)
-{ unsigned char comm_sample_rate [10], comm_zero_bytes [2] = { 0, 0 } ;
- unsigned int comm_type, comm_size, comm_encoding ;
- int k ;
-
- switch (psf->sf.format & SF_FORMAT_SUBMASK)
- { case SF_FORMAT_PCM : /* Standard big endian AIFF. */
- psf->endian = SF_ENDIAN_BIG ;
- comm_type = AIFF_MARKER ;
- comm_size = AIFF_COMM_SIZE ;
- comm_encoding = 0 ;
- break ;
-
- case SF_FORMAT_PCM_BE : /* Big endian AIFC. */
- psf->endian = SF_ENDIAN_BIG ;
- comm_type = AIFC_MARKER ;
- comm_size = AIFC_COMM_SIZE ;
- comm_encoding = twos_MARKER ;
- break ;
-
- case SF_FORMAT_PCM_LE : /* Little endian AIFC. */
- psf->endian = SF_ENDIAN_LITTLE ;
- comm_type = AIFC_MARKER ;
- comm_size = AIFC_COMM_SIZE ;
- comm_encoding = sowt_MARKER ;
- break ;
-
- case SF_FORMAT_FLOAT : /* Big endian floating point. */
- psf->endian = SF_ENDIAN_BIG ;
- comm_type = AIFC_MARKER ;
- comm_size = AIFC_COMM_SIZE ;
- comm_encoding = FL32_MARKER ; /* Use 'FL32' because its easier to read. */
- psf->has_peak = SF_TRUE ;
- psf->peak_loc = SF_PEAK_START ;
- break ;
-
- default : return SFE_BAD_OPEN_FORMAT ;
- } ;
-
- /* Reset the current header length to zero. */
- psf->header [0] = 0 ;
- psf->headindex = 0 ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- psf_binheader_writef (psf, "mL", FORM_MARKER, psf->filelength - 8) ;
-
- /* Write COMM chunk. */
- psf_binheader_writef (psf, "mmL", comm_type, COMM_MARKER, comm_size) ;
-
- uint2tenbytefloat (psf->sf.samplerate, comm_sample_rate) ;
-
- psf_binheader_writef (psf, "WLW", psf->sf.channels, psf->sf.samples, psf->sf.pcmbitwidth) ;
- psf_binheader_writef (psf, "B", comm_sample_rate, sizeof (comm_sample_rate)) ;
-
- /* AIFC chunks have some extra data. */
- if (comm_type == AIFC_MARKER)
- psf_binheader_writef (psf, "mB", comm_encoding, comm_zero_bytes, sizeof (comm_zero_bytes)) ;
-
- if (psf->has_peak && psf->peak_loc == SF_PEAK_START)
- { psf_binheader_writef (psf, "mL", PEAK_MARKER,
- sizeof (psf->peak) - sizeof (psf->peak.peak) + psf->sf.channels * sizeof (PEAK_POS)) ;
- psf_binheader_writef (psf, "LL", 1, time (NULL)) ;
- for (k = 0 ; k < psf->sf.channels ; k++)
- psf_binheader_writef (psf, "FL", psf->peak.peak[k].value, psf->peak.peak[k].position) ; /* XXXXX */
- } ;
-
- /* Write SSND chunk. */
- psf_binheader_writef (psf, "mLLL", SSND_MARKER, psf->datalength + SSND_CHUNK_SIZE, 0, 0) ;
-
- /* Header cunstruction complete so write it out. */
- fwrite (psf->header, psf->headindex, 1, psf->file) ;
-
- psf->dataoffset = psf->headindex ;
-
- return 0 ;
-} /* aiff_write_header */
-
-static int
-aiff_write_tailer (SF_PRIVATE *psf)
-{ int k ;
-
- /* Reset the current header length to zero. */
- psf->header [0] = 0 ;
- psf->headindex = 0 ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- if (psf->has_peak && psf->peak_loc == SF_PEAK_END)
- { psf_binheader_writef (psf, "mL", PEAK_MARKER,
- sizeof (psf->peak) - sizeof (psf->peak.peak) + psf->sf.channels * sizeof (PEAK_POS)) ;
- psf_binheader_writef (psf, "LL", 1, time (NULL)) ;
- for (k = 0 ; k < psf->sf.channels ; k++)
- psf_binheader_writef (psf, "FL", psf->peak.peak[k].value, psf->peak.peak[k].position) ; /* XXXXX */
- } ;
-
- if (psf->headindex)
- fwrite (psf->header, psf->headindex, 1, psf->file) ;
-
- return 0 ;
-} /* aiff_write_tailer */
-
-/*-
-static void
-endswap_comm_fmt (COMM_CHUNK *comm)
-{ comm->size = ENDSWAP_INT (comm->size) ;
- comm->numChannels = ENDSWAP_SHORT (comm->numChannels) ;
- comm->numSampleFrames = ENDSWAP_INT (comm->numSampleFrames) ;
- comm->sampleSize = ENDSWAP_SHORT (comm->sampleSize) ;
-} /+* endswap_comm_fmt *+/
-
-static void
-endswap_ssnd_fmt (SSND_CHUNK *ssnd)
-{ ssnd->offset = ENDSWAP_INT (ssnd->offset) ;
- ssnd->blocksize = ENDSWAP_INT (ssnd->blocksize) ;
-} /+* endswap_ssnd_fmt *+/
--*/
-
-/*==========================================================================================
-** Rough hack at converting from 80 bit IEEE float in AIFF header to an int and
-** back again. It assumes that all sample rates are between 1 and 800MHz, which
-** should be OK as other sound file formats use a 32 bit integer to store sample
-** rate.
-** There is another (probably better) version in the source code to the SoX but it
-** has a copyright which probably prevents it from being allowable as GPL/LGPL.
-*/
-
-static int
-tenbytefloat2int (unsigned char *bytes)
-{ int val = 3 ;
-
- if (bytes [0] & 0x80) /* Negative number. */
- return 0 ;
-
- if (bytes [0] <= 0x3F) /* Less than 1. */
- return 1 ;
-
- if (bytes [0] > 0x40) /* Way too big. */
- return 0x4000000 ;
-
- if (bytes [0] == 0x40 && bytes [1] > 0x1C) /* Too big. */
- return 800000000 ;
-
- /* Ok, can handle it. */
-
- val = (bytes [2] << 23) | (bytes [3] << 15) | (bytes [4] << 7) | (bytes [5] >> 1) ;
-
- val >>= (29 - bytes [1]) ;
-
- return val ;
-} /* tenbytefloat2int */
-
-static void
-uint2tenbytefloat (unsigned int num, unsigned char *bytes)
-{ int count, mask = 0x40000000 ;
-
- memset (bytes, 0, 10) ;
-
- if (num <= 1)
- { bytes [0] = 0x3F ;
- bytes [1] = 0xFF ;
- bytes [2] = 0x80 ;
- return ;
- } ;
-
- bytes [0] = 0x40 ;
-
- if (num >= mask)
- { bytes [1] = 0x1D ;
- return ;
- } ;
-
- for (count = 0 ; count <= 32 ; count ++)
- { if (num & mask)
- break ;
- mask >>= 1 ;
- } ;
-
- num <<= count + 1 ;
- bytes [1] = 29 - count ;
- bytes [2] = (num >> 24) & 0xFF ;
- bytes [3] = (num >> 16) & 0xFF ;
- bytes [4] = (num >> 8) & 0xFF ;
- bytes [5] = num & 0xFF ;
-
-} /* uint2tenbytefloat */
-
--- a/common/libsndfile/src/alaw.c
+++ /dev/null
@@ -1,588 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <unistd.h>
-
-#include "sndfile.h"
-#include "floatcast.h"
-#include "common.h"
-
-static int alaw_read_alaw2s (SF_PRIVATE *psf, short *ptr, unsigned int len) ;
-static int alaw_read_alaw2i (SF_PRIVATE *psf, int *ptr, unsigned int len) ;
-static int alaw_read_alaw2f (SF_PRIVATE *psf, float *ptr, unsigned int len) ;
-static int alaw_read_alaw2d (SF_PRIVATE *psf, double *ptr, unsigned int len, int normalize) ;
-
-static int alaw_write_s2alaw (SF_PRIVATE *psf, short *ptr, unsigned int len) ;
-static int alaw_write_i2alaw (SF_PRIVATE *psf, int *ptr, unsigned int len) ;
-static int alaw_write_f2alaw (SF_PRIVATE *psf, float *ptr, unsigned int len) ;
-static int alaw_write_d2alaw (SF_PRIVATE *psf, double *ptr, unsigned int len, int normalize) ;
-
-static void alaw2s_array (unsigned char *buffer, unsigned int count, short *ptr, unsigned int index) ;
-static void alaw2i_array (unsigned char *buffer, unsigned int count, int *ptr, unsigned int index) ;
-static void alaw2f_array (unsigned char *buffer, unsigned int count, float *ptr, unsigned int index, float normfact) ;
-static void alaw2d_array (unsigned char *buffer, unsigned int count, double *ptr, unsigned int index, double normfact) ;
-
-static void s2alaw_array (short *buffer, unsigned int count, unsigned char *ptr, unsigned int index) ;
-static void i2alaw_array (int *buffer, unsigned int count, unsigned char *ptr, unsigned int index) ;
-static void f2alaw_array (float *buffer, unsigned int count, unsigned char *ptr, unsigned int index, float normfact) ;
-static void d2alaw_array (double *buffer, unsigned int count, unsigned char *ptr, unsigned int index, double normfact) ;
-
-int
-alaw_read_init (SF_PRIVATE *psf)
-{
- psf->read_short = (func_short) alaw_read_alaw2s ;
- psf->read_int = (func_int) alaw_read_alaw2i ;
- psf->read_float = (func_float) alaw_read_alaw2f ;
- psf->read_double = (func_double) alaw_read_alaw2d ;
-
- return 0 ;
-} /* alaw_read_init */
-
-int
-alaw_write_init (SF_PRIVATE *psf)
-{
- psf->write_short = (func_short) alaw_write_s2alaw ;
- psf->write_int = (func_int) alaw_write_i2alaw ;
- psf->write_float = (func_float) alaw_write_f2alaw ;
- psf->write_double = (func_double) alaw_write_d2alaw ;
-
- return 0 ;
-} /* alaw_read_init */
-
-static int
-alaw_read_alaw2s (SF_PRIVATE *psf, short *ptr, unsigned int len)
-{ unsigned int readcount, thisread, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- alaw2s_array ((unsigned char*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* alaw_read_alaw2s */
-
-static int
-alaw_read_alaw2i (SF_PRIVATE *psf, int *ptr, unsigned int len)
-{ unsigned int readcount, thisread, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- alaw2i_array ((unsigned char*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* alaw_read_alaw2i */
-
-static int
-alaw_read_alaw2f (SF_PRIVATE *psf, float *ptr, unsigned int len)
-{ unsigned int readcount, thisread, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- alaw2f_array ((unsigned char*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* alaw_read_alaw2f */
-
-static int
-alaw_read_alaw2d (SF_PRIVATE *psf, double *ptr, unsigned int len, int normalize)
-{ unsigned int readcount, thisread, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x8000) : 1.0) ;
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- alaw2d_array ((unsigned char*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* alaw_read_alaw2d */
-
-/*=============================================================================================
-*/
-
-static int
-alaw_write_s2alaw (SF_PRIVATE *psf, short *ptr, unsigned int len)
-{ unsigned int writecount, thiswrite, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- s2alaw_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* alaw_write_s2alaw */
-
-static int
-alaw_write_i2alaw (SF_PRIVATE *psf, int *ptr, unsigned int len)
-{ unsigned int writecount, thiswrite, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- i2alaw_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* alaw_write_i2alaw */
-
-static int
-alaw_write_f2alaw (SF_PRIVATE *psf, float *ptr, unsigned int len)
-{ unsigned int writecount, thiswrite, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x8000) : 1.0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- f2alaw_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* alaw_write_f2alaw */
-
-static int
-alaw_write_d2alaw (SF_PRIVATE *psf, double *ptr, unsigned int len, int normalize)
-{ unsigned int writecount, thiswrite, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
- double normfact ;
-
- normfact = (normalize ? ((double) 0x8000) : 1.0) ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- d2alaw_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* alaw_write_d2alaw */
-
-/*=============================================================================================
- * Private static functions and data.
- */
-
-static
-short alaw_decode [128] =
-{ -5504, -5248, -6016, -5760, -4480, -4224, -4992, -4736,
- -7552, -7296, -8064, -7808, -6528, -6272, -7040, -6784,
- -2752, -2624, -3008, -2880, -2240, -2112, -2496, -2368,
- -3776, -3648, -4032, -3904, -3264, -3136, -3520, -3392,
- -22016, -20992, -24064, -23040, -17920, -16896, -19968, -18944,
- -30208, -29184, -32256, -31232, -26112, -25088, -28160, -27136,
- -11008, -10496, -12032, -11520, -8960, -8448, -9984, -9472,
- -15104, -14592, -16128, -15616, -13056, -12544, -14080, -13568,
- -344, -328, -376, -360, -280, -264, -312, -296,
- -472, -456, -504, -488, -408, -392, -440, -424,
- -88, -72, -120, -104, -24, -8, -56, -40,
- -216, -200, -248, -232, -152, -136, -184, -168,
- -1376, -1312, -1504, -1440, -1120, -1056, -1248, -1184,
- -1888, -1824, -2016, -1952, -1632, -1568, -1760, -1696,
- -688, -656, -752, -720, -560, -528, -624, -592,
- -944, -912, -1008, -976, -816, -784, -880, -848
-} ; /* alaw_decode */
-
-static
-unsigned char alaw_encode [2049] =
-{ 0xD5, 0xD4, 0xD7, 0xD6, 0xD1, 0xD0, 0xD3, 0xD2, 0xDD, 0xDC, 0xDF, 0xDE,
- 0xD9, 0xD8, 0xDB, 0xDA, 0xC5, 0xC4, 0xC7, 0xC6, 0xC1, 0xC0, 0xC3, 0xC2,
- 0xCD, 0xCC, 0xCF, 0xCE, 0xC9, 0xC8, 0xCB, 0xCA, 0xF5, 0xF5, 0xF4, 0xF4,
- 0xF7, 0xF7, 0xF6, 0xF6, 0xF1, 0xF1, 0xF0, 0xF0, 0xF3, 0xF3, 0xF2, 0xF2,
- 0xFD, 0xFD, 0xFC, 0xFC, 0xFF, 0xFF, 0xFE, 0xFE, 0xF9, 0xF9, 0xF8, 0xF8,
- 0xFB, 0xFB, 0xFA, 0xFA, 0xE5, 0xE5, 0xE5, 0xE5, 0xE4, 0xE4, 0xE4, 0xE4,
- 0xE7, 0xE7, 0xE7, 0xE7, 0xE6, 0xE6, 0xE6, 0xE6, 0xE1, 0xE1, 0xE1, 0xE1,
- 0xE0, 0xE0, 0xE0, 0xE0, 0xE3, 0xE3, 0xE3, 0xE3, 0xE2, 0xE2, 0xE2, 0xE2,
- 0xED, 0xED, 0xED, 0xED, 0xEC, 0xEC, 0xEC, 0xEC, 0xEF, 0xEF, 0xEF, 0xEF,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xE9, 0xE9, 0xE9, 0xE9, 0xE8, 0xE8, 0xE8, 0xE8,
- 0xEB, 0xEB, 0xEB, 0xEB, 0xEA, 0xEA, 0xEA, 0xEA, 0x95, 0x95, 0x95, 0x95,
- 0x95, 0x95, 0x95, 0x95, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
- 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x96, 0x96, 0x96, 0x96,
- 0x96, 0x96, 0x96, 0x96, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
- 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x93, 0x93, 0x93, 0x93,
- 0x93, 0x93, 0x93, 0x93, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9C, 0x9C, 0x9C, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9C, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
- 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
- 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9A, 0x9A, 0x9A, 0x9A,
- 0x9A, 0x9A, 0x9A, 0x9A, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0xB5, 0xB5, 0xB5, 0xB5,
- 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5,
- 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5,
- 0xB5, 0xB5, 0xB5, 0xB5, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
- 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
- 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
- 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7,
- 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7,
- 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB6, 0xB6, 0xB6, 0xB6,
- 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6,
- 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6,
- 0xB6, 0xB6, 0xB6, 0xB6, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1,
- 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1,
- 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1,
- 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0,
- 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0,
- 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB3, 0xB3, 0xB3, 0xB3,
- 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3,
- 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3,
- 0xB3, 0xB3, 0xB3, 0xB3, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2,
- 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2,
- 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2,
- 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD,
- 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD,
- 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBC, 0xBC, 0xBC, 0xBC,
- 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
- 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
- 0xBC, 0xBC, 0xBC, 0xBC, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
- 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
- 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
- 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
- 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
- 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xB9, 0xB9, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
- 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
- 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
- 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
- 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
- 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBA, 0xBA, 0xBA, 0xBA,
- 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA,
- 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA,
- 0xBA, 0xBA, 0xBA, 0xBA, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
- 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
- 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
- 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
- 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
- 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4,
- 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
- 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
- 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
- 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
- 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
- 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
- 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
- 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
- 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
- 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
- 0xA7, 0xA7, 0xA7, 0xA7, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
- 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
- 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
- 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
- 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
- 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA1, 0xA1, 0xA1, 0xA1,
- 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
- 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
- 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
- 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
- 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
- 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
- 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
- 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
- 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
- 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
- 0xA0, 0xA0, 0xA0, 0xA0, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
- 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
- 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
- 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
- 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
- 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA2, 0xA2, 0xA2, 0xA2,
- 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
- 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
- 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
- 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
- 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
- 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
- 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
- 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
- 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
- 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
- 0xAD, 0xAD, 0xAD, 0xAD, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
- 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
- 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
- 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
- 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
- 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAF, 0xAF, 0xAF, 0xAF,
- 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
- 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
- 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
- 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
- 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
- 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
- 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
- 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
- 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
- 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
- 0xAE, 0xAE, 0xAE, 0xAE, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
- 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
- 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
- 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
- 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
- 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA8, 0xA8, 0xA8, 0xA8,
- 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
- 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
- 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
- 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
- 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
- 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
- 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
- 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
- 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
- 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
- 0xAB, 0xAB, 0xAB, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x2A
-} ; /* alaw_encode */
-
-static void
-alaw2s_array (unsigned char *buffer, unsigned int count, short *ptr, unsigned int index)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { if (buffer [k] & 0x80)
- ptr [index] = -1 * alaw_decode [((int) buffer [k]) & 0x7F] ;
- else
- ptr [index] = alaw_decode [((int) buffer [k]) & 0x7F] ;
- index ++ ;
- } ;
-} /* alaw2s_array */
-
-static void
-alaw2i_array (unsigned char *buffer, unsigned int count, int *ptr, unsigned int index)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { if (buffer [k] & 0x80)
- ptr [index] = -1 * alaw_decode [((int) buffer [k]) & 0x7F] ;
- else
- ptr [index] = alaw_decode [((int) buffer [k]) & 0x7F] ;
- index ++ ;
- } ;
-} /* alaw2i_array */
-
-static void
-alaw2f_array (unsigned char *buffer, unsigned int count, float *ptr, unsigned int index, float normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { if (buffer [k] & 0x80)
- ptr [index] = -normfact * alaw_decode [((int) buffer [k]) & 0x7F] ;
- else
- ptr [index] = normfact * alaw_decode [((int) buffer [k]) & 0x7F] ;
- index ++ ;
- } ;
-} /* alaw2d_array */
-
-static void
-alaw2d_array (unsigned char *buffer, unsigned int count, double *ptr, unsigned int index, double normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { if (buffer [k] & 0x80)
- ptr [index] = -normfact * alaw_decode [((int) buffer [k]) & 0x7F] ;
- else
- ptr [index] = normfact * alaw_decode [((int) buffer [k]) & 0x7F] ;
- index ++ ;
- } ;
-} /* alaw2d_array */
-
-static void
-s2alaw_array (short *ptr, unsigned int index, unsigned char *buffer, unsigned int count)
-{ unsigned int k ;
-
- for (k = 0 ; k < count ; k++)
- { if (ptr [index] >= 0)
- buffer [k] = alaw_encode [ptr [index] / 16] ;
- else
- buffer [k] = 0x7F & alaw_encode [ptr [index] / -16] ;
- index ++ ;
- } ;
-} /* s2alaw_array */
-
-static void
-i2alaw_array (int *ptr, unsigned int index, unsigned char *buffer, unsigned int count)
-{ unsigned int k ;
-
- for (k = 0 ; k < count ; k++)
- { if (ptr [index] >= 0)
- buffer [k] = alaw_encode [ptr [index] / 16] ;
- else
- buffer [k] = 0x7F & alaw_encode [ptr [index] / -16] ;
- index ++ ;
- } ;
-} /* i2alaw_array */
-
-static void
-f2alaw_array (float *ptr, unsigned int index, unsigned char *buffer, unsigned int count, float normfact)
-{ unsigned int k ;
-
- for (k = 0 ; k < count ; k++)
- { if (ptr [index] >= 0)
- buffer [k] = alaw_encode [(FLOAT_TO_INT (normfact * ptr [index])) / 16] ;
- else
- buffer [k] = 0x7F & alaw_encode [(FLOAT_TO_INT (normfact * ptr [index])) / -16] ;
- index ++ ;
- } ;
-} /* f2alaw_array */
-
-static void
-d2alaw_array (double *ptr, unsigned int index, unsigned char *buffer, unsigned int count, double normfact)
-{ unsigned int k ;
-
- for (k = 0 ; k < count ; k++)
- { if (ptr [index] >= 0)
- buffer [k] = alaw_encode [(DOUBLE_TO_INT (normfact * ptr [index])) / 16] ;
- else
- buffer [k] = 0x7F & alaw_encode [(DOUBLE_TO_INT (normfact * ptr [index])) / -16] ;
- index ++ ;
- } ;
-} /* d2alaw_array */
-
--- a/common/libsndfile/src/au.c
+++ /dev/null
@@ -1,449 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "common.h"
-#include "au.h"
-
-/*------------------------------------------------------------------------------
-** Macros to handle big/little endian issues.
-*/
-
-#define DOTSND_MARKER (MAKE_MARKER ('.', 's', 'n', 'd'))
-#define DNSDOT_MARKER (MAKE_MARKER ('d', 'n', 's', '.'))
-
-#define AU_DATA_OFFSET 24
-
-/*------------------------------------------------------------------------------
-** Known AU file encoding types.
-*/
-
-enum
-{ AU_ENCODING_ULAW_8 = 1, /* 8-bit u-law samples */
- AU_ENCODING_PCM_8 = 2, /* 8-bit linear samples */
- AU_ENCODING_PCM_16 = 3, /* 16-bit linear samples */
- AU_ENCODING_PCM_24 = 4, /* 24-bit linear samples */
- AU_ENCODING_PCM_32 = 5, /* 32-bit linear samples */
-
- AU_ENCODING_FLOAT = 6, /* floating-point samples */
- AU_ENCODING_DOUBLE = 7, /* double-precision float samples */
- AU_ENCODING_INDIRECT = 8, /* fragmented sampled data */
- AU_ENCODING_NESTED = 9, /* ? */
- AU_ENCODING_DSP_CORE = 10, /* DSP program */
- AU_ENCODING_DSP_DATA_8 = 11, /* 8-bit fixed-point samples */
- AU_ENCODING_DSP_DATA_16 = 12, /* 16-bit fixed-point samples */
- AU_ENCODING_DSP_DATA_24 = 13, /* 24-bit fixed-point samples */
- AU_ENCODING_DSP_DATA_32 = 14, /* 32-bit fixed-point samples */
-
- AU_ENCODING_DISPLAY = 16, /* non-audio display data */
- AU_ENCODING_MULAW_SQUELCH = 17, /* ? */
- AU_ENCODING_EMPHASIZED = 18, /* 16-bit linear with emphasis */
- AU_ENCODING_NEXT = 19, /* 16-bit linear with compression (NEXT) */
- AU_ENCODING_COMPRESSED_EMPHASIZED = 20, /* A combination of the two above */
- AU_ENCODING_DSP_COMMANDS = 21, /* Music Kit DSP commands */
- AU_ENCODING_DSP_COMMANDS_SAMPLES = 22, /* ? */
-
- AU_ENCODING_ADPCM_G721_32 = 23, /* G721 32 kbs ADPCM - 4 bits per sample. */
- AU_ENCODING_ADPCM_G722 = 24,
- AU_ENCODING_ADPCM_G723_24 = 25, /* G723 24 kbs ADPCM - 3 bits per sample. */
- AU_ENCODING_ADPCM_G723_5 = 26,
-
- AU_ENCODING_ALAW_8 = 27
-} ;
-
-/*------------------------------------------------------------------------------
-** Typedefs.
-*/
-
-typedef struct
-{ int dataoffset ;
- int datasize ;
- int encoding ;
- int samplerate ;
- int channels ;
-} AU_FMT ;
-
-
-/*------------------------------------------------------------------------------
-** Private static functions.
-*/
-
-static int au_close (SF_PRIVATE *psf) ;
-
-static int get_encoding (unsigned int format, unsigned int bitwidth) ;
-static char const* get_encoding_str(int format) ;
-
-static int au_write_header (SF_PRIVATE *psf) ;
-
-/*
-static void endswap_au_fmt (AU_FMT *pau_fmt) ;
-*/
-
-/*------------------------------------------------------------------------------
-** Public functions.
-*/
-
-int
-au_open_read (SF_PRIVATE *psf)
-{ AU_FMT au_fmt ;
- unsigned int marker, dword ;
- int error = SFE_NO_ERROR ;
-
- psf_binheader_readf (psf, "pm", 0, &marker) ;
- psf_log_printf (psf, "%D\n", marker) ;
-
- if (marker == DOTSND_MARKER)
- { psf->endian = SF_ENDIAN_BIG ;
-
- psf_binheader_readf (psf, "LLLLL", &(au_fmt.dataoffset), &(au_fmt.datasize),
- &(au_fmt.encoding), &(au_fmt.samplerate), &(au_fmt.channels)) ;
- }
- else if (marker == DNSDOT_MARKER)
- { psf->endian = SF_ENDIAN_LITTLE ;
- psf_binheader_readf (psf, "lllll", &(au_fmt.dataoffset), &(au_fmt.datasize),
- &(au_fmt.encoding), &(au_fmt.samplerate), &(au_fmt.channels)) ;
- }
- else
- return SFE_AU_NO_DOTSND ;
-
-
- psf_log_printf (psf, " Data Offset : %d\n", au_fmt.dataoffset) ;
-
- if (au_fmt.datasize == 0xFFFFFFFF || au_fmt.dataoffset + au_fmt.datasize == psf->filelength)
- psf_log_printf (psf, " Data Size : %d\n", au_fmt.datasize) ;
- else if (au_fmt.dataoffset + au_fmt.datasize < psf->filelength)
- { psf->filelength = au_fmt.dataoffset + au_fmt.dataoffset ;
- psf_log_printf (psf, " Data Size : %d\n", au_fmt.datasize) ;
- }
- else
- { dword = psf->filelength - au_fmt.dataoffset ;
- psf_log_printf (psf, " Data Size : %d (should be %d)\n", au_fmt.datasize, dword) ;
- au_fmt.datasize = dword ;
- } ;
-
- psf->dataoffset = au_fmt.dataoffset ;
- psf->datalength = psf->filelength - psf->dataoffset ;
-
- psf->current = 0 ;
-
- if (fseek (psf->file, psf->dataoffset, SEEK_SET))
- return SFE_BAD_SEEK ;
-
- psf->close = (func_close) au_close ;
-
- psf->sf.samplerate = au_fmt.samplerate ;
- psf->sf.channels = au_fmt.channels ;
-
- /* Only fill in type major. */
- if (psf->endian == SF_ENDIAN_BIG)
- psf->sf.format = SF_FORMAT_AU ;
- else if (psf->endian == SF_ENDIAN_LITTLE)
- psf->sf.format = SF_FORMAT_AULE ;
-
- psf->sf.sections = 1 ;
-
- psf_log_printf (psf, " Encoding : %d => %s\n", au_fmt.encoding, get_encoding_str (au_fmt.encoding)) ;
-
- psf_log_printf (psf, " Sample Rate : %d\n", au_fmt.samplerate) ;
- psf_log_printf (psf, " Channels : %d\n", au_fmt.channels) ;
-
- switch (au_fmt.encoding)
- { case AU_ENCODING_PCM_8 :
- psf->sf.pcmbitwidth = 8 ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
-
- psf->sf.format |= SF_FORMAT_PCM ;
-
- psf->chars = SF_CHARS_SIGNED ;
-
- if ((error = pcm_read_init (psf)))
- return error ;
- break ;
-
- case AU_ENCODING_PCM_16 :
- psf->sf.pcmbitwidth = 16 ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
-
- psf->sf.format |= SF_FORMAT_PCM ;
-
- if ((error = pcm_read_init (psf)))
- return error ;
- break ;
-
- case AU_ENCODING_PCM_24 :
- psf->sf.pcmbitwidth = 24 ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
-
- psf->sf.format |= SF_FORMAT_PCM ;
-
- if ((error = pcm_read_init (psf)))
- return error ;
- break ;
-
- case AU_ENCODING_PCM_32 :
- psf->sf.pcmbitwidth = 32 ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
-
- psf->sf.format |= SF_FORMAT_PCM ;
-
- if ((error = pcm_read_init (psf)))
- return error ;
- break ;
-
- case AU_ENCODING_FLOAT :
- psf->sf.pcmbitwidth = 32 ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
-
- psf->sf.format |= SF_FORMAT_FLOAT ;
-
- float32_read_init (psf) ;
- break ;
-
- default :
- error = SFE_AU_UNKNOWN_FORMAT ;
- break ;
- } ;
-
- if (error)
- return error ;
-
- if (! psf->sf.samples && psf->blockwidth)
- psf->sf.samples = au_fmt.datasize / psf->blockwidth ;
-
-
- return 0 ;
-} /* au_open_read */
-
-
-/*------------------------------------------------------------------------------
-*/
-
-int
-au_open_write (SF_PRIVATE *psf)
-{ unsigned int encoding, format, subformat ;
- int error = 0 ;
-
- format = psf->sf.format & SF_FORMAT_TYPEMASK ;
- subformat = psf->sf.format & SF_FORMAT_SUBMASK ;
- if (format == SF_FORMAT_AU)
- psf->endian = SF_ENDIAN_BIG ;
- else if (format == SF_FORMAT_AULE)
- psf->endian = SF_ENDIAN_LITTLE ;
- else
- return SFE_BAD_OPEN_FORMAT ;
-
- if (subformat == SF_FORMAT_ULAW || subformat == SF_FORMAT_ALAW ||
- subformat == SF_FORMAT_G721_32 || subformat == SF_FORMAT_G723_24)
- psf->bytewidth = 1 ;
- else
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
-
- psf->sf.seekable = SF_TRUE ;
- psf->error = 0 ;
-
- psf->blockwidth = psf->bytewidth * psf->sf.channels ;
- psf->dataoffset = AU_DATA_OFFSET ;
- psf->datalength = psf->blockwidth * psf->sf.samples ;
- psf->filelength = psf->datalength + psf->dataoffset ;
-
- if (! (encoding = au_write_header (psf)))
- return psf->error ;
-
- psf->close = (func_close) au_close ;
- psf->write_header = (func_wr_hdr) au_write_header ;
-
- switch (encoding)
- { case AU_ENCODING_PCM_8 : /* 8-bit linear PCM. */
- psf->chars = SF_CHARS_SIGNED ;
-
- error = pcm_write_init (psf) ;
- break ;
-
- case AU_ENCODING_PCM_16 : /* 16-bit linear PCM. */
- case AU_ENCODING_PCM_24 : /* 24-bit linear PCM */
- case AU_ENCODING_PCM_32 : /* 32-bit linear PCM. */
- error = pcm_write_init (psf) ;
- break ;
-
- case AU_ENCODING_FLOAT : /* 32-bit linear PCM. */
- error = float32_write_init (psf) ;
- break ;
-
- default : break ;
- } ;
-
- return error ;
-} /* au_open_write */
-
-/*------------------------------------------------------------------------------
-*/
-
-static int
-au_close (SF_PRIVATE *psf)
-{
- if (psf->mode == SF_MODE_WRITE)
- { /* Now we know for certain the length of the file we can
- * re-write correct values for the datasize header element.
- */
-
- fseek (psf->file, 0, SEEK_END) ;
- psf->filelength = ftell (psf->file) ;
-
- psf->datalength = psf->filelength - AU_DATA_OFFSET ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- psf->sf.samples = psf->datalength / psf->blockwidth ;
- au_write_header (psf) ;
- } ;
-
- if (psf->fdata)
- free (psf->fdata) ;
- psf->fdata = NULL ;
-
- return 0 ;
-} /* au_close */
-
-static int
-au_write_header (SF_PRIVATE *psf)
-{ int encoding ;
-
- encoding = get_encoding (psf->sf.format & SF_FORMAT_SUBMASK, psf->bytewidth * 8) ;
- if (! encoding)
- { psf->error = SFE_BAD_OPEN_FORMAT ;
- return encoding ;
- } ;
-
- /* Reset the current header length to zero. */
- psf->header [0] = 0 ;
- psf->headindex = 0 ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- if (psf->endian == SF_ENDIAN_BIG)
- { psf_binheader_writef (psf, "mL", DOTSND_MARKER, AU_DATA_OFFSET) ;
- psf_binheader_writef (psf, "LLLL", psf->datalength, encoding, psf->sf.samplerate, psf->sf.channels) ;
- }
- else if (psf->endian == SF_ENDIAN_LITTLE)
- { psf_binheader_writef (psf, "ml", DNSDOT_MARKER, AU_DATA_OFFSET) ;
- psf_binheader_writef (psf, "llll", psf->datalength, encoding, psf->sf.samplerate, psf->sf.channels) ;
- }
- else
- { psf->error = SFE_BAD_OPEN_FORMAT ;
- return encoding ;
- } ;
-
- /* Header construction complete so write it out. */
- fwrite (psf->header, psf->headindex, 1, psf->file) ;
-
- psf->dataoffset = psf->headindex ;
-
- return encoding ;
-} /* au_write_header */
-
-static int
-get_encoding (unsigned int format, unsigned int bitwidth)
-{ if (format == SF_FORMAT_ULAW)
- return AU_ENCODING_ULAW_8 ;
-
- if (format == SF_FORMAT_ALAW)
- return AU_ENCODING_ALAW_8 ;
-
- if (format == SF_FORMAT_G721_32)
- return AU_ENCODING_ADPCM_G721_32 ;
-
- if (format == SF_FORMAT_G723_24)
- return AU_ENCODING_ADPCM_G723_24 ;
-
- if (format == SF_FORMAT_FLOAT)
- return AU_ENCODING_FLOAT ;
-
- if (format != SF_FORMAT_PCM)
- return 0 ;
-
- /* For PCM encoding, the header encoding field depends on the bitwidth. */
- switch (bitwidth)
- { case 8 : return AU_ENCODING_PCM_8 ;
- case 16 : return AU_ENCODING_PCM_16 ;
- case 24 : return AU_ENCODING_PCM_24 ;
- case 32 : return AU_ENCODING_PCM_32 ;
- default : break ;
- } ;
- return 0 ;
-} /* get_encoding */
-
-/*-
-static void
-endswap_au_fmt (AU_FMT *pau_fmt)
-{ pau_fmt->dataoffset = ENDSWAP_INT (pau_fmt->dataoffset) ;
- pau_fmt->datasize = ENDSWAP_INT (pau_fmt->datasize) ;
- pau_fmt->encoding = ENDSWAP_INT (pau_fmt->encoding) ;
- pau_fmt->samplerate = ENDSWAP_INT (pau_fmt->samplerate) ;
- pau_fmt->channels = ENDSWAP_INT (pau_fmt->channels) ;
-} /+* endswap_au_fmt *+/
--*/
-
-static char const*
-get_encoding_str (int format)
-{ switch (format)
- { case AU_ENCODING_ULAW_8 :
- return "8-bit ISDN u-law" ;
-
- case AU_ENCODING_PCM_8 :
- return "8-bit linear PCM" ;
-
- case AU_ENCODING_PCM_16 :
- return "16-bit linear PCM" ;
-
- case AU_ENCODING_PCM_24 :
- return "24-bit linear PCM" ;
-
- case AU_ENCODING_PCM_32 :
- return "32-bit linear PCM" ;
-
- case AU_ENCODING_FLOAT :
- return "32-bit float" ;
-
- case AU_ENCODING_ALAW_8 :
- return "8-bit ISDN A-law" ;
-
- case AU_ENCODING_ADPCM_G721_32 :
- return "G721 32kbs ADPCM" ;
-
- case AU_ENCODING_ADPCM_G723_24 :
- return "G723 24kbs ADPCM" ;
-
- case AU_ENCODING_NEXT :
- return "Weird NeXT encoding format (unsupported)" ;
- } ;
- return "Unknown!!" ;
-} /* get_encoding_str */
-
-
--- a/common/libsndfile/src/au.h
+++ /dev/null
@@ -1,31 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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 AU_HEADER_FILE
-#define AU_HEADER_FILE
-
-
-enum
-{ AU_H_G721_32 = 200,
- AU_H_G723_24 = 201
-} ;
-
-int au_g72x_reader_init (SF_PRIVATE *psf, int codec) ;
-int au_g72x_writer_init (SF_PRIVATE *psf, int codec) ;
-
-#endif /* AU_HEADER_FILE */
--- a/common/libsndfile/src/au_g72x.c
+++ /dev/null
@@ -1,565 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <math.h>
-
-#include "config.h"
-#include "sndfile.h"
-#include "sfendian.h"
-#include "floatcast.h"
-#include "common.h"
-#include "au.h"
-#include "G72x/g72x.h"
-
-static int au_g72x_read_block (SF_PRIVATE *psf, G72x_DATA *pg72x) ;
-static int au_g72x_read (SF_PRIVATE *psf, G72x_DATA *pg72x, short *ptr, int len) ;
-
-static int au_g72x_write_block (SF_PRIVATE *psf, G72x_DATA *pg72x) ;
-static int au_g72x_write (SF_PRIVATE *psf, G72x_DATA *pg72x, short *ptr, int len) ;
-
-static int au_g72x_read_s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int au_g72x_read_i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int au_g72x_read_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int au_g72x_read_d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static int au_g72x_write_s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int au_g72x_write_i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int au_g72x_write_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int au_g72x_write_d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static long au_g72x_seek (SF_PRIVATE *psf, long offset, int whence) ;
-
-static int au_g72x_close (SF_PRIVATE *psf) ;
-
-
-/*============================================================================================
-** WAV G721 Reader initialisation function.
-*/
-
-int
-au_g72x_reader_init (SF_PRIVATE *psf, int codec)
-{ G72x_DATA *pg72x ;
- int bitspersample ;
-
- psf->sf.seekable = SF_FALSE ;
-
- if (psf->mode != SF_MODE_READ)
- return SFE_BAD_MODE_RW ;
-
- if (! (pg72x = malloc (sizeof (G72x_DATA))))
- return SFE_MALLOC_FAILED ;
-
- psf->fdata = (void*) pg72x ;
-
- pg72x->blockcount = 0 ;
- pg72x->samplecount = 0 ;
-
- switch (codec)
- { case AU_H_G721_32 :
- g72x_reader_init (pg72x, G721_32_BITS_PER_SAMPLE) ;
- pg72x->bytesperblock = G721_32_BYTES_PER_BLOCK ;
- bitspersample = G721_32_BITS_PER_SAMPLE ;
- break ;
-
- case AU_H_G723_24:
- g72x_reader_init (pg72x, G723_24_BITS_PER_SAMPLE) ;
- pg72x->bytesperblock = G723_24_BYTES_PER_BLOCK ;
- bitspersample = G723_24_BITS_PER_SAMPLE ;
- break ;
- default : return 0 ;
- } ;
-
- psf->read_short = (func_short) au_g72x_read_s ;
- psf->read_int = (func_int) au_g72x_read_i ;
- psf->read_float = (func_float) au_g72x_read_f ;
- psf->read_double = (func_double) au_g72x_read_d ;
-
- psf->seek_func = (func_seek) au_g72x_seek ;
- psf->close = (func_close) au_g72x_close ;
-
- if (psf->datalength % pg72x->blocksize)
- pg72x->blocks = (psf->datalength / pg72x->blocksize) + 1 ;
- else
- pg72x->blocks = psf->datalength / pg72x->blocksize ;
-
- psf->sf.samples = (8 * psf->datalength) / bitspersample ;
-
- if ((psf->sf.samples * bitspersample) / 8 != psf->datalength)
- psf_log_printf (psf, "*** Warning : weird psf->datalength.\n") ;
-
- psf->blockwidth = psf->bytewidth = 1 ;
-
- au_g72x_read_block (psf, pg72x) ;
-
- return 0 ;
-} /* au_g72x_reader_init */
-
-/*============================================================================================
-** WAV G721 writer initialisation function.
-*/
-
-int
-au_g72x_writer_init (SF_PRIVATE *psf, int codec)
-{ G72x_DATA *pg72x ;
-
- psf->sf.seekable = SF_FALSE ;
-
- if (psf->mode != SF_MODE_WRITE)
- return SFE_BAD_MODE_RW ;
-
- if (! (pg72x = malloc (sizeof (G72x_DATA))))
- return SFE_MALLOC_FAILED ;
-
- psf->fdata = (void*) pg72x ;
-
- pg72x->blockcount = 0 ;
- pg72x->samplecount = 0 ;
-
- switch (codec)
- { case AU_H_G721_32 :
- g72x_writer_init (pg72x, G721_32_BITS_PER_SAMPLE) ;
- pg72x->bytesperblock = G721_32_BYTES_PER_BLOCK ;
- break ;
-
- case AU_H_G723_24:
- g72x_writer_init (pg72x, G723_24_BITS_PER_SAMPLE) ;
- pg72x->bytesperblock = G723_24_BYTES_PER_BLOCK ;
- break ;
- default : return 0 ;
- } ;
-
- psf->write_short = (func_short) au_g72x_write_s ;
- psf->write_int = (func_int) au_g72x_write_i ;
- psf->write_float = (func_float) au_g72x_write_f ;
- psf->write_double = (func_double) au_g72x_write_d ;
-
- psf->seek_func = (func_seek) au_g72x_seek ;
- psf->close = (func_close) au_g72x_close ;
-
- psf->blockwidth = psf->bytewidth = 1 ;
-
- return 0 ;
-} /* au_g72x_writer_init */
-
-
-
-/*============================================================================================
-** G721 Read Functions.
-*/
-
-static int
-au_g72x_read_block (SF_PRIVATE *psf, G72x_DATA *pg72x)
-{ int k ;
-
- pg72x->blockcount ++ ;
- pg72x->samplecount = 0 ;
-
- if (pg72x->samplecount > pg72x->blocksize)
- { memset (pg72x->samples, 0, G72x_BLOCK_SIZE * sizeof (short)) ;
- return 1 ;
- } ;
-
- if ((k = fread (pg72x->block, 1, pg72x->bytesperblock, psf->file)) != pg72x->bytesperblock)
- psf_log_printf (psf, "*** Warning : short read (%d != %d).\n", k, pg72x->bytesperblock) ;
-
- pg72x->blocksize = k ;
- g72x_decode_block (pg72x) ;
-
- return 1 ;
-} /* au_g72x_read_block */
-
-static int
-au_g72x_read (SF_PRIVATE *psf, G72x_DATA *pg72x, short *ptr, int len)
-{ int count, total = 0, index = 0 ;
-
- while (index < len)
- { if (pg72x->blockcount >= pg72x->blocks && pg72x->samplecount >= pg72x->samplesperblock)
- { memset (&(ptr[index]), 0, (len - index) * sizeof (short)) ;
- return total ;
- } ;
-
- if (pg72x->samplecount >= pg72x->samplesperblock)
- au_g72x_read_block (psf, pg72x) ;
-
- count = pg72x->samplesperblock - pg72x->samplecount ;
- count = (len - index > count) ? count : len - index ;
-
- memcpy (&(ptr[index]), &(pg72x->samples [pg72x->samplecount]), count * sizeof (short)) ;
- index += count ;
- pg72x->samplecount += count ;
- total = index ;
- } ;
-
- return total ;
-} /* au_g72x_read */
-
-static int
-au_g72x_read_s (SF_PRIVATE *psf, short *ptr, int len)
-{ G72x_DATA *pg72x ;
- int total ;
-
- if (! psf->fdata)
- return 0 ;
- pg72x = (G72x_DATA*) psf->fdata ;
-
- total = au_g72x_read (psf, pg72x, ptr, len) ;
-
- return total ;
-} /* au_g72x_read_s */
-
-static int
-au_g72x_read_i (SF_PRIVATE *psf, int *ptr, int len)
-{ G72x_DATA *pg72x ;
- short *sptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- pg72x = (G72x_DATA*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = SF_BUFFER_LEN / sizeof (short) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = au_g72x_read (psf, pg72x, sptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = (int) (sptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* au_g72x_read_i */
-
-static int
-au_g72x_read_f (SF_PRIVATE *psf, float *ptr, int len)
-{ G72x_DATA *pg72x ;
- short *sptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
- float normfact ;
-
- if (! psf->fdata)
- return 0 ;
- pg72x = (G72x_DATA*) psf->fdata ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.0 ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = SF_BUFFER_LEN / sizeof (short) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = au_g72x_read (psf, pg72x, sptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = normfact * sptr [k] ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
-
- return total ;
-} /* au_g72x_read_f */
-
-static int
-au_g72x_read_d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ G72x_DATA *pg72x ;
- short *sptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
- double normfact ;
-
- if (! psf->fdata)
- return 0 ;
- pg72x = (G72x_DATA*) psf->fdata ;
-
- normfact = (normalize) ? 1.0 / ((double) 0x8000) : 1.0 ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = SF_BUFFER_LEN / sizeof (short) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = au_g72x_read (psf, pg72x, sptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = normfact * (double) (sptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
-
- return total ;
-} /* au_g72x_read_d */
-
-static long
-au_g72x_seek (SF_PRIVATE *psf, long offset, int whence)
-{
-
- /* No simple solution. To do properly, would need to seek
- ** to start of file and decode everything up to seek position.
- ** Maybe implement SEEK_SET to 0 only?
- */
- return 0 ;
-
-/*
-** G72x_DATA *pg72x ;
-** int newblock, newsample, samplecount ;
-**
-** if (! psf->fdata)
-** return 0 ;
-** pg72x = (G72x_DATA*) psf->fdata ;
-**
-** if (! (psf->datalength && psf->dataoffset))
-** { psf->error = SFE_BAD_SEEK ;
-** return ((long) -1) ;
-** } ;
-**
-** samplecount = (8 * psf->datalength) / G721_32_BITS_PER_SAMPLE ;
-**
-** switch (whence)
-** { case SEEK_SET :
-** if (offset < 0 || offset > samplecount)
-** { psf->error = SFE_BAD_SEEK ;
-** return ((long) -1) ;
-** } ;
-** newblock = offset / pg72x->samplesperblock ;
-** newsample = offset % pg72x->samplesperblock ;
-** break ;
-**
-** case SEEK_CUR :
-** if (psf->current + offset < 0 || psf->current + offset > samplecount)
-** { psf->error = SFE_BAD_SEEK ;
-** return ((long) -1) ;
-** } ;
-** newblock = (8 * (psf->current + offset)) / pg72x->samplesperblock ;
-** newsample = (8 * (psf->current + offset)) % pg72x->samplesperblock ;
-** break ;
-**
-** case SEEK_END :
-** if (offset > 0 || samplecount + offset < 0)
-** { psf->error = SFE_BAD_SEEK ;
-** return ((long) -1) ;
-** } ;
-** newblock = (samplecount + offset) / pg72x->samplesperblock ;
-** newsample = (samplecount + offset) % pg72x->samplesperblock ;
-** break ;
-**
-** default :
-** psf->error = SFE_BAD_SEEK ;
-** return ((long) -1) ;
-** } ;
-**
-** if (psf->mode == SF_MODE_READ)
-** { fseek (psf->file, (int) (psf->dataoffset + newblock * pg72x->blocksize), SEEK_SET) ;
-** pg72x->blockcount = newblock ;
-** au_g72x_read_block (psf, pg72x) ;
-** pg72x->samplecount = newsample ;
-** }
-** else
-** { /+* What to do about write??? *+/
-** psf->error = SFE_BAD_SEEK ;
-** return ((long) -1) ;
-** } ;
-**
-** psf->current = newblock * pg72x->samplesperblock + newsample ;
-** return psf->current ;
-**
-*/
-} /* au_g72x_seek */
-
-/*==========================================================================================
-** G72x Write Functions.
-*/
-
-static int
-au_g72x_write_block (SF_PRIVATE *psf, G72x_DATA *pg72x)
-{ int k ;
-
- /* Encode the samples. */
- g72x_encode_block (pg72x) ;
-
- /* Write the block to disk. */
- if ((k = fwrite (pg72x->block, 1, pg72x->blocksize, psf->file)) != pg72x->blocksize)
- psf_log_printf (psf, "*** Warning : short write (%d != %d).\n", k, pg72x->blocksize) ;
-
- pg72x->samplecount = 0 ;
- pg72x->blockcount ++ ;
-
- /* Set samples to zero for next block. */
- memset (pg72x->samples, 0, G72x_BLOCK_SIZE * sizeof (short)) ;
-
- return 1 ;
-} /* au_g72x_write_block */
-
-static int
-au_g72x_write (SF_PRIVATE *psf, G72x_DATA *pg72x, short *ptr, int len)
-{ int count, total = 0, index = 0 ;
-
- while (index < len)
- { count = pg72x->samplesperblock - pg72x->samplecount ;
-
- if (count > len - index)
- count = len - index ;
-
- memcpy (&(pg72x->samples [pg72x->samplecount]), &(ptr [index]), count * sizeof (short)) ;
- index += count ;
- pg72x->samplecount += count ;
- total = index ;
-
- if (pg72x->samplecount >= pg72x->samplesperblock)
- au_g72x_write_block (psf, pg72x) ;
- } ;
-
- return total ;
-} /* au_g72x_write */
-
-static int
-au_g72x_write_s (SF_PRIVATE *psf, short *ptr, int len)
-{ G72x_DATA *pg72x ;
- int total ;
-
- if (! psf->fdata)
- return 0 ;
- pg72x = (G72x_DATA*) psf->fdata ;
-
- total = au_g72x_write (psf, pg72x, ptr, len) ;
-
- return total ;
-} /* au_g72x_write_s */
-
-static int
-au_g72x_write_i (SF_PRIVATE *psf, int *ptr, int len)
-{ G72x_DATA *pg72x ;
- short *sptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- pg72x = (G72x_DATA*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- sptr [k] = ptr [index+k] ;
- count = au_g72x_write (psf, pg72x, sptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* au_g72x_write_i */
-
-static int
-au_g72x_write_f (SF_PRIVATE *psf, float *ptr, int len)
-{ G72x_DATA *pg72x ;
- short *sptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
- float normfact ;
-
- if (! psf->fdata)
- return 0 ;
- pg72x = (G72x_DATA*) psf->fdata ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x8000) : 1.0 ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- sptr [k] = FLOAT_TO_SHORT (normfact * ptr [index+k]) ;
- count = au_g72x_write (psf, pg72x, sptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* au_g72x_write_f */
-
-static int
-au_g72x_write_d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ G72x_DATA *pg72x ;
- short *sptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
- double normfact ;
-
- if (! psf->fdata)
- return 0 ;
- pg72x = (G72x_DATA*) psf->fdata ;
-
- normfact = (normalize) ? ((float) 0x8000) : 1.0 ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- sptr [k] = DOUBLE_TO_SHORT (normfact * ptr [index+k]) ;
- count = au_g72x_write (psf, pg72x, sptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* au_g72x_write_d */
-
-static int
-au_g72x_close (SF_PRIVATE *psf)
-{ G72x_DATA *pg72x ;
-
- if (! psf->fdata)
- return 0 ;
-
- pg72x = (G72x_DATA*) psf->fdata ;
-
- if (psf->mode == SF_MODE_WRITE)
- { /* If a block has been partially assembled, write it out
- ** as the final block.
- */
-
- if (pg72x->samplecount && pg72x->samplecount < G72x_BLOCK_SIZE)
- au_g72x_write_block (psf, pg72x) ;
-
- /* Now we know for certain the length of the file we can
- ** re-write correct values for the RIFF and data chunks.
- */
-
- fseek (psf->file, 0, SEEK_END) ;
- psf->filelength = ftell (psf->file) ;
-
- psf->sf.samples = pg72x->samplesperblock * pg72x->blockcount ;
- psf->datalength = psf->filelength - psf->dataoffset ;
-
- if (psf->write_header)
- psf->write_header (psf) ;
- } ;
-
- if (psf->fdata)
- free (psf->fdata) ;
- psf->fdata = NULL ;
-
- return 0 ;
-} /* au_g72x_close */
-
--- a/common/libsndfile/src/common.c
+++ /dev/null
@@ -1,683 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-#include <stdarg.h>
-#include <string.h>
-#include <math.h>
-
-#include "sndfile.h"
-#include "sfendian.h"
-#include "common.h"
-
-/*-----------------------------------------------------------------------------------------------
-** Generic functions for performing endian swapping on short and int arrays.
-*/
-
-void
-endswap_short_array (short *ptr, int len)
-{ int k ;
- for (k = 0 ; k < len ; k++)
- ptr[k] = ((((ptr[k])>>8)&0xFF)|(((ptr[k])&0xFF)<<8)) ;
-} /* endswap_short_array */
-
-void
-endswap_int_array (int *ptr, int len)
-{ int k ;
- for (k = 0 ; k < len ; k++)
- ptr[k] = ((((ptr[k])>>24)&0xFF)|(((ptr[k])>>8)&0xFF00)|
- (((ptr[k])&0xFF00)<<8)|(((ptr[k])&0xFF)<<24)) ;
-} /* endswap_int_array */
-
-/*-----------------------------------------------------------------------------------------------
-** psf_log_printf allows libsndfile internal functions to print to an internal logbuffer which
-** can later be displayed.
-** The format specifiers are as for printf but without the field width and other modifiers.
-** Printing is performed to the logbuffer char array of the SF_PRIVATE struct.
-** Printing is done in such a way as to guarantee that the log never overflows the end of the
-** logbuffer array.
-*/
-
-#define psf_putchar(a,b) \
- if ((a)->logindex < SF_BUFFER_LEN - 1) \
- { (a)->logbuffer [(a)->logindex++] = (b) ; \
- (a)->logbuffer [(a)->logindex] = 0 ; \
- } ;
-
-void
-psf_log_printf (SF_PRIVATE *psf, char *format, ...)
-{ va_list ap ;
- int d, tens, shift ;
- char c, *strptr, istr [5] ;
-
- va_start(ap, format);
-
- /* printf ("psf_log_printf : %s\n", format) ; */
-
- while ((c = *format++))
- { if (c != '%')
- { psf_putchar (psf, c) ;
- continue ;
- } ;
-
- switch((c = *format++))
- { case 's': /* string */
- strptr = va_arg (ap, char *) ;
- while (*strptr)
- psf_putchar (psf, *strptr++) ;
- break;
-
- case 'd': /* int */
- d = va_arg (ap, int) ;
-
- if (d == 0)
- { psf_putchar (psf, '0') ;
- break ;
- }
- if (d < 0)
- { psf_putchar (psf, '-') ;
- d = -d ;
- } ;
- tens = 1 ;
- while (d / tens >= 10)
- tens *= 10 ;
- while (tens > 0)
- { psf_putchar (psf, '0' + d / tens) ;
- d %= tens ;
- tens /= 10 ;
- } ;
- break;
-
- case 'X': /* hex */
- d = va_arg (ap, int) ;
-
- if (d == 0)
- { psf_putchar (psf, '0') ;
- break ;
- } ;
- shift = 28 ;
- while (! ((0xF << shift) & d))
- shift -= 4 ;
- while (shift >= 0)
- { c = (d >> shift) & 0xF ;
- psf_putchar (psf, (c > 9) ? c + 'A' - 10 : c + '0') ;
- shift -= 4 ;
- } ;
- break;
-
- case 'c': /* char */
- c = va_arg (ap, int) & 0xFF ;
- psf_putchar (psf, c);
- break;
-
- case 'D': /* int2str */
- d = va_arg (ap, int);
- if (CPU_IS_LITTLE_ENDIAN)
- { istr [0] = d & 0xFF ;
- istr [1] = (d >> 8) & 0xFF ;
- istr [2] = (d >> 16) & 0xFF ;
- istr [3] = (d >> 24) & 0xFF ;
- }
- else
- { istr [3] = d & 0xFF ;
- istr [2] = (d >> 8) & 0xFF ;
- istr [1] = (d >> 16) & 0xFF ;
- istr [0] = (d >> 24) & 0xFF ;
- } ;
- istr [4] = 0 ;
- strptr = istr ;
- while (*strptr)
- { c = *strptr++ ;
- psf_putchar (psf, c) ;
- } ;
- break;
-
- default :
- psf_putchar (psf, '*') ;
- psf_putchar (psf, c) ;
- psf_putchar (psf, '*') ;
- break ;
- } /* switch */
- } /* while */
-
- va_end(ap);
- return ;
-} /* psf_log_printf */
-
-/*-----------------------------------------------------------------------------------------------
-** ASCII header printf functions.
-** Some formats (ie NIST) use ascii text in their headers.
-** Format specifiers are the same as the standard printf specifiers (uses vsnprintf).
-** If this generates a compile error on any system, the author should be notified
-** so an alternative vsnprintf can be provided.
-*/
-
-void
-psf_asciiheader_printf (SF_PRIVATE *psf, char *format, ...)
-{ va_list argptr ;
- int maxlen ;
- char *start ;
-
- start = (char*) psf->header + strlen ((char*) psf->header) ;
- maxlen = sizeof (psf->header) - strlen ((char*) psf->header) ;
-
- va_start (argptr, format) ;
- vsnprintf (start, maxlen, format, argptr) ;
- va_end (argptr) ;
-
- /* Make sure the string is properly terminated. */
- start [maxlen - 1] = 0 ;
-
- return ;
-} /* psf_asciiheader_printf */
-
-/*-----------------------------------------------------------------------------------------------
-** Binary header writing functions. Returns number of bytes written.
-**
-** Format specifiers for psf_binheader_writef are as follows
-** m - marker - four bytes - no endian manipulation
-**
-** b - byte
-**
-** w - two byte value - little endian
-** W - two byte value - big endian
-** l - four byte value - little endian
-** L - four byte value - big endian
-**
-** s - string preceded by a little endian four byte length
-** S - string preceded by a big endian four byte length
-**
-** f - little endian 32 bit float
-** F - big endian 32 bit float
-**
-** B - binary data (see below)
-** z - zero bytes (se below)
-**
-** To write a word followed by a long (both little endian) use:
-** psf_binheader_writef ("wl", wordval, longval) ;
-**
-** To write binary data use:
-** psf_binheader_writef ("B", &bindata, sizeof (bindata)) ;
-**
-** To write N zero bytes use:
-** psf_binheader_writef ("z", N) ;
-*/
-
-/* These macros may seem a bit messy but do prevent problems with processors which
-** seg. fault when asked to write an int or short to a non-int/short aligned address.
-*/
-
-#if (CPU_IS_BIG_ENDIAN == 1)
-#define PUT_INT(psf,x) if ((psf)->headindex < sizeof ((psf)->header) - 4) \
- { (psf)->header [(psf)->headindex++] = ((x) >> 24) & 0xFF ; \
- (psf)->header [(psf)->headindex++] = ((x) >> 16) & 0xFF ; \
- (psf)->header [(psf)->headindex++] = ((x) >> 8) & 0xFF ; \
- (psf)->header [(psf)->headindex++] = (x) & 0xFF ; }
-
-#define PUT_SHORT(psf,x) if ((psf)->headindex < sizeof ((psf)->header) - 2) \
- { (psf)->header [(psf)->headindex++] = ((x) >> 8) & 0xFF ; \
- (psf)->header [(psf)->headindex++] = (x) & 0xFF ; }
-
-#elif (CPU_IS_LITTLE_ENDIAN == 1)
-#define PUT_INT(psf,x) if ((psf)->headindex < sizeof ((psf)->header) - 4) \
- { (psf)->header [(psf)->headindex++] = (x) & 0xFF ; \
- (psf)->header [(psf)->headindex++] = ((x) >> 8) & 0xFF ; \
- (psf)->header [(psf)->headindex++] = ((x) >> 16) & 0xFF ; \
- (psf)->header [(psf)->headindex++] = ((x) >> 24) & 0xFF ; }
-
-#define PUT_SHORT(psf,x) if ((psf)->headindex < sizeof ((psf)->header) - 2) \
- { (psf)->header [(psf)->headindex++] = (x) & 0xFF ; \
- (psf)->header [(psf)->headindex++] = ((x) >> 8) & 0xFF ; }
-
-#else
-# error "Cannot determine endian-ness of processor."
-#endif
-
-#define PUT_BYTE(psf,x) if ((psf)->headindex < sizeof ((psf)->header) - 1) \
- { (psf)->header [(psf)->headindex++] = (x) & 0xFF ; }
-
-int
-psf_binheader_writef (SF_PRIVATE *psf, char *format, ...)
-{ va_list argptr ;
- unsigned int data ;
- float floatdata ;
- void *bindata ;
- size_t size ;
- char c, *strptr ;
- int count = 0 ;
-
- va_start(argptr, format);
-
- while ((c = *format++))
- { switch (c)
- { case 'm' :
- data = va_arg (argptr, unsigned int) ;
- PUT_INT (psf, data) ;
- count += 4 ;
- break ;
-
- case 'b' :
- data = va_arg (argptr, unsigned int) ;
- PUT_BYTE (psf, data) ;
- count += 1 ;
- break ;
-
- case 'w' :
- data = va_arg (argptr, unsigned int) ;
- data = H2LE_SHORT (data) ;
- PUT_SHORT (psf, data) ;
- count += 2 ;
- break ;
-
- case 'W' :
- data = va_arg (argptr, unsigned int) ;
- data = H2BE_SHORT (data) ;
- PUT_SHORT (psf, data) ;
- count += 2 ;
- break ;
-
- case 'l' :
- data = va_arg (argptr, unsigned int) ;
- data = H2LE_INT (data) ;
- PUT_INT (psf, data) ;
- count += 4 ;
- break ;
-
- case 'L' :
- data = va_arg (argptr, unsigned int) ;
- data = H2BE_INT (data) ;
- PUT_INT (psf, data) ;
- count += 4 ;
- break ;
-
- case 'f' :
- floatdata = (float) va_arg (argptr, double) ;
- float32_write (floatdata, (unsigned char *) &data) ;
- data = H2LE_INT (data) ;
- PUT_INT (psf, data) ;
- count += 4 ;
- break ;
-
- case 'F' :
- floatdata = (float) va_arg (argptr, double) ;
- float32_write (floatdata, (unsigned char *) &data) ;
- data = H2BE_INT (data) ;
- PUT_INT (psf, data) ;
- count += 4 ;
- break ;
-
- case 's' :
- strptr = va_arg (argptr, char *) ;
- size = strlen (strptr) + 1 ;
- size += (size & 1) ;
- data = H2LE_INT (size) ;
- PUT_INT (psf, data) ;
- memcpy (&(psf->header [psf->headindex]), strptr, size) ;
- psf->headindex += size ;
- count += 4 + size ;
- break ;
-
- case 'S' :
- strptr = va_arg (argptr, char *) ;
- size = strlen (strptr) + 1 ;
- size += (size & 1) ;
- data = H2BE_INT (size) ;
- PUT_INT (psf, data) ;
- memcpy (&(psf->header [psf->headindex]), strptr, size) ;
- psf->headindex += size ;
- count += 4 + size ;
- break ;
-
- case 'B' :
- bindata = va_arg (argptr, void *) ;
- size = va_arg (argptr, size_t) ;
- memcpy (&(psf->header [psf->headindex]), bindata, size) ;
- psf->headindex += size ;
- count += size ;
- break ;
-
- case 'z' :
- size = va_arg (argptr, size_t) ;
- count += size ;
- while (size)
- { psf->header [psf->headindex] = 0 ;
- psf->headindex ++ ;
- size -- ;
- } ;
- break ;
-
- default :
- psf_log_printf (psf, "*** Invalid format specifier `%c'\n", c) ;
- psf->error = SFE_INTERNAL ;
- break ;
- } ;
- } ;
-
- va_end(argptr);
- return count ;
-} /* psf_binheader_writef */
-
-/*-----------------------------------------------------------------------------------------------
-** Binary header reading functions. Returns number of bytes read.
-**
-** Format specifiers are the same as for header write function above with the following
-** additions:
-**
-** p - jump a given number of position from start of file.
-**
-** If format is NULL, psf_binheader_readf returns the current offset.
-*/
-
-#if (CPU_IS_BIG_ENDIAN == 1)
-#define GET_INT(psf) ( ((psf)->header [0] << 24) + ((psf)->header [1] << 16) + \
- ((psf)->header [2] << 8) + ((psf)->header [3]) )
-
-#define GET_3BYTE(psf) ( ((psf)->header [0] << 16) + ((psf)->header [1] << 8) + \
- ((psf)->header [2]) )
-
-#define GET_SHORT(psf) ( ((psf)->header [0] << 8) + ((psf)->header [1]) )
-
-#elif (CPU_IS_LITTLE_ENDIAN == 1)
-#define GET_INT(psf) ( ((psf)->header [0] ) + ((psf)->header [1] << 8) + \
- ((psf)->header [2] << 16) + ((psf)->header [3] << 24) )
-
-#define GET_3BYTE(psf) ( ((psf)->header [0] ) + ((psf)->header [1] << 8) + \
- ((psf)->header [2] << 16) )
-
-#define GET_SHORT(psf) ( ((psf)->header [0]) + ((psf)->header [1] << 8) )
-
-#else
-# error "Cannot determine endian-ness of processor."
-#endif
-
-#define GET_BYTE(psf) ( (psf)->header [0] )
-
-int
-psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...)
-{ va_list argptr ;
- unsigned int *longptr, longdata ;
- unsigned short *wordptr, worddata ;
- char *charptr ;
- int position ;
- float *floatptr ;
- size_t size ;
- char c ;
- int count = 0 ;
-
- if (! format)
- return ftell (psf->file) ;
-
- va_start(argptr, format);
-
- while ((c = *format++))
- { switch (c)
- { case 'm' :
- longptr = va_arg (argptr, unsigned int*) ;
- fread (psf->header, 1, sizeof (int), psf->file) ;
- *longptr = GET_INT (psf) ;
- count += 4 ;
- break ;
-
- case 'b' :
- charptr = va_arg (argptr, char*) ;
- fread (psf->header, 1, sizeof (char), psf->file) ;
- *charptr = GET_BYTE (psf) ;
- count += 1 ;
- break ;
-
- case 'w' :
- wordptr = va_arg (argptr, unsigned short*) ;
- fread (psf->header, 1, sizeof (short), psf->file) ;
- worddata = GET_SHORT (psf) ;
- *wordptr = H2LE_SHORT (worddata) ;
- count += 2 ;
- break ;
-
- case 'W' :
- wordptr = va_arg (argptr, unsigned short*) ;
- fread (psf->header, 1, sizeof (short), psf->file) ;
- worddata = GET_SHORT (psf) ;
- *wordptr = H2BE_SHORT (worddata) ;
- count += 2 ;
- break ;
-
- case 'l' :
- longptr = va_arg (argptr, unsigned int*) ;
- fread (psf->header, 1, sizeof (int), psf->file) ;
- longdata = GET_INT (psf) ;
- *longptr = H2LE_INT (longdata) ;
- count += 4 ;
- break ;
-
- case 'L' :
- longptr = va_arg (argptr, unsigned int*) ;
- fread (psf->header, 1, sizeof (int), psf->file) ;
- longdata = GET_INT (psf) ;
- *longptr = H2BE_INT (longdata) ;
- count += 4 ;
- break ;
-
- case 't' :
- longptr = va_arg (argptr, unsigned int*) ;
- fread (psf->header, 1, 3, psf->file) ;
- longdata = GET_3BYTE (psf) ;
- *longptr = H2LE_INT (longdata) ;
- count += 3 ;
- break ;
-
- case 'T' :
- longptr = va_arg (argptr, unsigned int*) ;
- fread (psf->header, 1, 3, psf->file) ;
- longdata = GET_3BYTE (psf) ;
- *longptr = H2BE_INT (longdata) ;
- count += 3 ;
- break ;
-
- case 'f' :
- floatptr = va_arg (argptr, float *) ;
- fread (psf->header, 1, sizeof (float), psf->file) ;
- longdata = GET_INT (psf) ;
- longdata = H2LE_INT (longdata) ;
- *floatptr = float32_read ((unsigned char*) &longdata) ;
- count += 4 ;
- break ;
-
- case 'F' :
- floatptr = va_arg (argptr, float *) ;
- fread (psf->header, 1, sizeof (float), psf->file) ;
- longdata = GET_INT (psf) ;
- longdata = H2BE_INT (longdata) ;
- *floatptr = float32_read ((unsigned char*) &longdata) ;
- count += 4 ;
- break ;
-
- case 's' :
- printf ("Format conversion not implemented yet.\n") ;
- /*
- strptr = va_arg (argptr, char *) ;
- size = strlen (strptr) + 1 ;
- size += (size & 1) ;
- longdata = H2LE_INT (size) ;
- get_int (psf, longdata) ;
- memcpy (&(psf->header [psf->headindex]), strptr, size) ;
- psf->headindex += size ;
- */
- break ;
-
- case 'S' :
- printf ("Format conversion not implemented yet.\n") ;
- /*
- strptr = va_arg (argptr, char *) ;
- size = strlen (strptr) + 1 ;
- size += (size & 1) ;
- longdata = H2BE_INT (size) ;
- get_int (psf, longdata) ;
- memcpy (&(psf->header [psf->headindex]), strptr, size) ;
- psf->headindex += size ;
- */
- break ;
-
- case 'B' :
- charptr = va_arg (argptr, char*) ;
- size = va_arg (argptr, size_t) ;
- if (size > 0)
- { memset (charptr, 0, size) ;
- fread (charptr, 1, size, psf->file) ;
- count += size ;
- } ;
- break ;
-
- case 'z' :
- printf ("Format conversion not implemented yet.\n") ;
- /*
- size = va_arg (argptr, size_t) ;
- while (size)
- { psf->header [psf->headindex] = 0 ;
- psf->headindex ++ ;
- size -- ;
- } ;
- */
- break ;
-
- case 'p' :
- /* Get the seek position first. */
- position = va_arg (argptr, int) ;
- fseek (psf->file, position, SEEK_SET) ;
- count = 0 ;
- break ;
-
- case 'j' :
- /* Get the seek position first. */
- position = va_arg (argptr, int) ;
- fseek (psf->file, position, SEEK_CUR) ;
- count = 0 ;
- break ;
-
- default :
- psf_log_printf (psf, "*** Invalid format specifier `%c'\n", c) ;
- psf->error = SFE_INTERNAL ;
- break ;
- } ;
- } ;
-
- va_end (argptr);
-
- return count ;
-} /* psf_binheader_readf */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-void
-psf_log_SF_INFO (SF_PRIVATE *psf)
-{ psf_log_printf (psf, "---------------------------------\n") ;
-
- psf_log_printf (psf, " Sample rate : %d\n", psf->sf.samplerate) ;
- psf_log_printf (psf, " Samples : %d\n", psf->sf.samples) ;
- psf_log_printf (psf, " Channels : %d\n", psf->sf.channels) ;
-
- psf_log_printf (psf, " Bit width : %d\n", psf->sf.pcmbitwidth) ;
- psf_log_printf (psf, " Format : %X\n", psf->sf.format) ;
- psf_log_printf (psf, " Sections : %d\n", psf->sf.sections) ;
- psf_log_printf (psf, " Seekable : %s\n", psf->sf.seekable ? "TRUE" : "FALSE") ;
-
- psf_log_printf (psf, "---------------------------------\n") ;
-} /* psf_dump_SFINFO */
-
-/*========================================================================================
-** Functions used in the write function for updating the peak chunk.
-*/
-
-/*-void
-peak_update_short (SF_PRIVATE *psf, short *ptr, size_t items)
-{ int chan, k, position ;
- short maxval ;
- float fmaxval ;
-
- for (chan = 0 ; chan < psf->sf.channels ; chan++)
- { maxval = abs (ptr [chan]) ;
- position = 0 ;
- for (k = chan ; k < items ; k += psf->sf.channels)
- if (maxval < abs (ptr [k]))
- { maxval = abs (ptr [k]) ;
- position = k ;
- } ;
-
- fmaxval = maxval / 32767.0 ;
- position /= psf->sf.channels ;
-
- if (fmaxval > psf->peak.peak[chan].value)
- { psf->peak.peak[chan].value = fmaxval ;
- psf->peak.peak[chan].position = psf->current - position ;
- } ;
- } ;
-
- return ;
-} /+* peak_update_short *+/
-
-void
-peak_update_int (SF_PRIVATE *psf, int *ptr, size_t items)
-{ int chan, k, position ;
- int maxval ;
- float fmaxval ;
-
- for (chan = 0 ; chan < psf->sf.channels ; chan++)
- { maxval = abs (ptr [chan]) ;
- position = 0 ;
- for (k = chan ; k < items ; k += psf->sf.channels)
- if (maxval < abs (ptr [k]))
- { maxval = abs (ptr [k]) ;
- position = k ;
- } ;
-
- fmaxval = maxval / 0x7FFFFFFF ;
- position /= psf->sf.channels ;
-
- if (fmaxval > psf->peak.peak[chan].value)
- { psf->peak.peak[chan].value = fmaxval ;
- psf->peak.peak[chan].position = psf->current - position ;
- } ;
- } ;
-
- return ;
-} /+* peak_update_int *+/
-
-void
-peak_update_double (SF_PRIVATE *psf, double *ptr, size_t items)
-{ int chan, k, position ;
- double fmaxval ;
-
- for (chan = 0 ; chan < psf->sf.channels ; chan++)
- { fmaxval = fabs (ptr [chan]) ;
- position = 0 ;
- for (k = chan ; k < items ; k += psf->sf.channels)
- if (fmaxval < fabs (ptr [k]))
- { fmaxval = fabs (ptr [k]) ;
- position = k ;
- } ;
-
- position /= psf->sf.channels ;
-
- if (fmaxval > psf->peak.peak[chan].value)
- { psf->peak.peak[chan].value = fmaxval ;
- psf->peak.peak[chan].position = psf->current - position ;
- } ;
- } ;
-
- return ;
-} /+* peak_update_double *+/
--*/
--- a/common/libsndfile/src/common.h
+++ /dev/null
@@ -1,373 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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 SF_TEXT_LEN (1024)
-
-#define BITWIDTH2BYTES(x) (((x) + 7) / 8)
-
-#define PEAK_CHANNEL_COUNT 16
-
-enum
-{ SF_MODE_READ = 11,
- SF_MODE_WRITE = 12,
- SF_MODE_RW = 13, /* Unlikely that RW will ever be implemented. */
-
- /* PEAK chunk location. */
- SF_PEAK_START = 42,
- SF_PEAK_END = 43,
-
- /* Two endian enums. */
- SF_ENDIAN_LITTLE = 100,
- SF_ENDIAN_BIG = 101,
-
- /* Char type for 8 bit files. */
- SF_CHARS_SIGNED = 200,
- SF_CHARS_UNSIGNED = 201
-} ;
-
-/* Processor floating point capabilities. float32_get_capabilities () in
-** src/float32.c returns one of the latter three values.
-*/
-enum
-{ FLOAT_UNKNOWN = 0x00,
- FLOAT_CAN_RW_LE = 0x23,
- FLOAT_CAN_RW_BE = 0x34,
- FLOAT_BROKEN_LE = 0x35,
- FLOAT_BROKEN_BE = 0x36
-} ;
-
-enum
-{ SF_FALSE = 0,
- SF_TRUE = 1
-} ;
-
-/* Command values for sf_command (). These are obtained using the Python
-** script sf_command.py in the top level directory of the libsndfile sources.
-*/
-enum
-{ SFC_LIB_VERSION = 0x1048C,
- SFC_READ_TEXT = 0x054F0,
- SFC_WRITE_TEXT = 0x0B990,
- SFC_NORM_FLOAT = 0x0914A,
- SFC_NORM_DOUBLE = 0x1226D,
- SFC_SCALE_MODE = 0x0A259,
- SFC_ADD_PEAK = 0x96F53
-} ;
-
-/* Function pointer typedefs. */
-
-typedef int (*func_seek) (void*, long, int) ;
-
-typedef int (*func_short) (void*, short *ptr, unsigned int len) ;
-typedef int (*func_int) (void*, int *ptr, unsigned int len) ;
-typedef int (*func_float) (void*, float *ptr, unsigned int len) ;
-typedef int (*func_double) (void*, double *ptr, unsigned int len, int normalize) ;
-
-typedef int (*func_wr_hdr) (void*) ;
-typedef int (*func_command) (void*, int command, void *data, int datasize) ;
-
-typedef int (*func_close) (void*) ;
-
-/*---------------------------------------------------------------------------------------
-** PEAK_CHUNK - This chunk type is common to both AIFF and WAVE files although their
-** endian encodings are different.
-*/
-
-typedef struct
-{ float value ; /* signed value of peak */
- unsigned int position ; /* the sample frame for the peak */
-} PEAK_POS ;
-
-typedef struct
-{ unsigned int version ; /* version of the PEAK chunk */
- unsigned int timestamp ; /* secs since 1/1/1970 */
- PEAK_POS peak [PEAK_CHANNEL_COUNT] ; /* the peak info */
-} PEAK_CHUNK ;
-
-/*=======================================================================================
-** SF_PRIVATE stuct - a pointer to this struct is passed back to the caller of the
-** sf_open_XXXX functions. The caller however has no knowledge of the struct's
-** contents.
-*/
-
-typedef struct
-{ /* Force the compiler to double align the start of buffer. */
- double buffer [SF_BUFFER_LEN/sizeof(double)] ;
- char filename [SF_FILENAME_LEN] ;
-
- /* logbuffer and logindex should only be changed within the logging functions
- ** of common.c
- */
- char logbuffer [SF_BUFFER_LEN] ;
- unsigned char header [SF_HEADER_LEN] ;
-
- /* For storing text from header. */
- char headertext [SF_TEXT_LEN] ;
-
- /* Guard value. If this changes the buffers above have overflowed. */
- int Magick ;
-
- /* Index variables for maintaining logbuffer and header above. */
- unsigned int logindex ;
- unsigned int headindex, headcurrent ;
- int has_text ;
-
- FILE *file ;
- int error ;
-
- int mode ; /* Open mode : SF_MODE_READ or SF_MODE_WRITE. */
- int endian ; /* File endianness : SF_ENDIAN_LITTLE or SF_ENDIAN_BIG. */
- int chars ; /* Chars are SF_CHARS_SIGNED or SF_CHARS_UNSIGNED. */
- int fl32_endswap ; /* Need to endswap float32s? */
-
- SF_INFO sf ;
-
- int has_peak ; /* Has a PEAK chunk (AIFF and WAVE) been read? */
- int peak_loc ; /* Write a PEAK chunk at the start or end of the file? */
- PEAK_CHUNK peak ;
-
- long dataoffset ; /* Offset in number of bytes from beginning of file. */
- long datalength ; /* Length in bytes of the audio data. */
- long tailstart ; /* Offset to file tailer. */
- 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 ;
-
- int scale_mode ;
- int norm_double ;
- int norm_float ;
-
- func_seek seek_func ;
-
- func_short read_short ;
- func_int read_int ;
- func_float read_float ;
- func_double read_double ;
-
- func_short write_short ;
- func_int write_int ;
- func_float write_float ;
- func_double write_double ;
-
- func_wr_hdr write_header ;
- func_command command ;
- 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_BAD_CONTROL_CMD,
-
- SFE_WAV_NO_RIFF,
- SFE_WAV_NO_WAVE,
- SFE_WAV_NO_FMT,
- SFE_WAV_FMT_SHORT,
- SFE_WAV_FMT_TOO_BIG,
- SFE_WAV_BAD_FACT,
- SFE_WAV_BAD_PEAK,
- SFE_WAV_PEAK_B4_FMT,
- 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_AIFF_NO_FORM,
- SFE_AIFF_COMM_NO_FORM,
- SFE_AIFF_SSND_NO_COMM,
- SFE_AIFF_UNKNOWN_CHUNK,
- SFE_AIFF_COMM_CHUNK_SIZE,
- SFE_AIFF_BAD_COMM_CHUNK,
- SFE_AIFF_PEAK_B4_COMM,
- SFE_AIFF_BAD_PEAK,
- 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_SMTD_NO_SEKD,
- SFE_SMTD_NO_SAMR,
-
- SFE_VOC_NO_CREATIVE,
- SFE_VOC_BAD_VERSION,
- SFE_VOC_BAD_MARKER,
-
- SFE_IRCAM_NO_MARKER,
- SFE_IRCAM_BAD_CHANNELS,
- SFE_IRCAM_UNKNOWN_FORMAT,
-
- SFE_MAX_ERROR /* This must be last in list. */
-} ;
-
-/* Get the float32 capability of the processor at run time.
-** Implemented in src/float32.c.
-*/
-int float32_get_capability (int endianness) ;
-float float32_read (unsigned char *cptr) ;
-void float32_write (float in, unsigned char *out) ;
-
-
-/* Endian swapping routines implemented in src/common.h. */
-
-void endswap_short_array (short *ptr, int len) ;
-void endswap_int_array (int *ptr, int len) ;
-
-/* Functions for writing to the internal logging buffer. */
-
-void psf_log_printf (SF_PRIVATE *psf, char *format, ...) ;
-void psf_log_SF_INFO (SF_PRIVATE *psf) ;
-
-/* Functions used when writing file headers. */
-
-int psf_binheader_writef (SF_PRIVATE *psf, char *format, ...) ;
-void psf_asciiheader_printf (SF_PRIVATE *psf, char *format, ...) ;
-
-/* Functions used when reading file headers. */
-
-int psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) ;
-
-/* Functions used in the write function for updating the peak chunk. */
-
-void peak_update_short (SF_PRIVATE *psf, short *ptr, size_t items) ;
-void peak_update_int (SF_PRIVATE *psf, int *ptr, size_t items) ;
-void peak_update_double (SF_PRIVATE *psf, double *ptr, size_t items) ;
-
-/* Init functions for a number of common data encodings. */
-
-int pcm_read_init (SF_PRIVATE *psf) ;
-int pcm_write_init (SF_PRIVATE *psf) ;
-
-int ulaw_read_init (SF_PRIVATE *psf) ;
-int ulaw_write_init (SF_PRIVATE *psf) ;
-
-int alaw_read_init (SF_PRIVATE *psf) ;
-int alaw_write_init (SF_PRIVATE *psf) ;
-
-int float32_read_init (SF_PRIVATE *psf) ;
-int float32_write_init (SF_PRIVATE *psf) ;
-
-/* Functions for reading and writing different file formats.*/
-
-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) ; /* Headerless version of AU. */
-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 nist_open_read (SF_PRIVATE *psf) ;
-int nist_open_write (SF_PRIVATE *psf) ;
-
-int smpltd_open_read (SF_PRIVATE *psf) ;
-int smpltd_open_write (SF_PRIVATE *psf) ;
-
-int voc_open_read (SF_PRIVATE *psf) ;
-int voc_open_write (SF_PRIVATE *psf) ;
-
-int rx2_open_read (SF_PRIVATE *psf) ;
-int rx2_open_write (SF_PRIVATE *psf) ;
-
-int ircam_open_read (SF_PRIVATE *psf) ;
-int ircam_open_write (SF_PRIVATE *psf) ;
-
-
-/* Win32 does seem to have snprintf and vsnprintf but prepends
-** the names with an underscore. Why?
-*/
-
-#ifdef WIN32
-#define snprintf _snprintf
-#define vsnprintf _vsnprintf
-#endif
-
-#ifdef _WIN32
- #pragma pack(pop,1)
-#endif
-
-#endif /* COMMON_H_INCLUDED */
-
--- a/common/libsndfile/src/config.h.in
+++ /dev/null
@@ -1,87 +1,0 @@
-/* src/config.h.in. Generated automatically from configure.in by autoheader 2.13. */
-
-/* Define to `long' if <sys/types.h> doesn't define. */
-#undef off_t
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-#undef size_t
-
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define to `long' if <sys/types.h> doesn't define. */
-#undef off_t
-
-/* Define to `unsigned' if <sys/types.h> doesn't define. */
-#undef size_t
-
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Set to 1 if the processor is big endian, otherwise set to 0. */
-#undef GUESS_BIG_ENDIAN
-
-/* Set to 1 if the processor is little endian, otherwise set to 0. */
-#undef GUESS_LITTLE_ENDIAN
-
-/* Set to 1 to force the use of code for processors with broken floats */
-/* Otherwise set it to 0. */
-#undef FORCE_BROKEN_FLOAT
-
-/* The number of bytes in a double. */
-#undef SIZEOF_DOUBLE
-
-/* The number of bytes in a float. */
-#undef SIZEOF_FLOAT
-
-/* The number of bytes in a int. */
-#undef SIZEOF_INT
-
-/* The number of bytes in a long. */
-#undef SIZEOF_LONG
-
-/* The number of bytes in a short. */
-#undef SIZEOF_SHORT
-
-/* The number of bytes in a void*. */
-#undef SIZEOF_VOIDP
-
-/* Define if you have the fclose function. */
-#undef HAVE_FCLOSE
-
-/* Define if you have the fopen function. */
-#undef HAVE_FOPEN
-
-/* Define if you have the fread function. */
-#undef HAVE_FREAD
-
-/* Define if you have the free function. */
-#undef HAVE_FREE
-
-/* Define if you have the fseek function. */
-#undef HAVE_FSEEK
-
-/* Define if you have the ftell function. */
-#undef HAVE_FTELL
-
-/* Define if you have the fwrite function. */
-#undef HAVE_FWRITE
-
-/* Define if you have the malloc function. */
-#undef HAVE_MALLOC
-
-/* Define if you have the snprintf function. */
-#undef HAVE_SNPRINTF
-
-/* Define if you have the vsnprintf function. */
-#undef HAVE_VSNPRINTF
-
-/* Define if you have the <endian.h> header file. */
-#undef HAVE_ENDIAN_H
-
-/* Name of package */
-#undef PACKAGE
-
-/* Version number of package */
-#undef VERSION
-
--- a/common/libsndfile/src/float32.c
+++ /dev/null
@@ -1,968 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <math.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "common.h"
-
-/*--------------------------------------------------------------------------------------------
-*/
-
-/*--------------------------------------------------------------------------------------------
-** Prototypes for private functions.
-*/
-
-static int host_read_f2s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int host_read_f2i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int host_read_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int host_read_f2d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static int host_write_s2f (SF_PRIVATE *psf, short *ptr, int len) ;
-static int host_write_i2f (SF_PRIVATE *psf, int *ptr, int len) ;
-static int host_write_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int host_write_d2f (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static void f2s_array (float *buffer, unsigned int count, short *ptr, int index) ;
-static void f2i_array (float *buffer, unsigned int count, int *ptr, int index) ;
-static void f2d_array (float *buffer, unsigned int count, double *ptr, int index) ;
-
-static void s2f_array (short *ptr, int index, float *buffer, unsigned int count) ;
-static void i2f_array (int *ptr, int index, float *buffer, unsigned int count) ;
-static void d2f_array (double *ptr, int index, float *buffer, unsigned int count) ;
-
-static void float32_peak_update (SF_PRIVATE *psf, float *buffer, int count, int index) ;
-
-static int broken_read_f2s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int broken_read_f2i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int broken_read_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int broken_read_f2d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static int broken_write_s2f (SF_PRIVATE *psf, short *ptr, int len) ;
-static int broken_write_i2f (SF_PRIVATE *psf, int *ptr, int len) ;
-static int broken_write_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int broken_write_d2f (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static void bf2f_array (float *buffer, unsigned int count) ;
-static void f2bf_array (float *buffer, unsigned int count) ;
-
-/*--------------------------------------------------------------------------------------------
-** Exported functions.
-*/
-
-int
-float32_read_init (SF_PRIVATE *psf)
-{ static int float_caps = FLOAT_UNKNOWN ;
-
- if (float_caps == FLOAT_UNKNOWN)
- float_caps = float32_get_capability (psf->endian) ;
-
- switch (psf->endian + 0x1000 * float_caps)
- { case (SF_ENDIAN_BIG + 0x1000 * FLOAT_CAN_RW_BE) :
- psf->fl32_endswap = SF_FALSE ;
- psf->read_short = (func_short) host_read_f2s ;
- psf->read_int = (func_int) host_read_f2i ;
- psf->read_float = (func_float) host_read_f ;
- psf->read_double = (func_double) host_read_f2d ;
- break ;
-
- case (SF_ENDIAN_LITTLE + 0x1000 * FLOAT_CAN_RW_LE) :
- psf->fl32_endswap = SF_FALSE ;
- psf->read_short = (func_short) host_read_f2s ;
- psf->read_int = (func_int) host_read_f2i ;
- psf->read_float = (func_float) host_read_f ;
- psf->read_double = (func_double) host_read_f2d ;
- break ;
-
- case (SF_ENDIAN_BIG + 0x1000 * FLOAT_CAN_RW_LE) :
- psf->fl32_endswap = SF_TRUE ;
- psf->read_short = (func_short) host_read_f2s ;
- psf->read_int = (func_int) host_read_f2i ;
- psf->read_float = (func_float) host_read_f ;
- psf->read_double = (func_double) host_read_f2d ;
- break ;
-
- case (SF_ENDIAN_LITTLE + 0x1000 * FLOAT_CAN_RW_BE) :
- psf->fl32_endswap = SF_TRUE ;
- psf->read_short = (func_short) host_read_f2s ;
- psf->read_int = (func_int) host_read_f2i ;
- psf->read_float = (func_float) host_read_f ;
- psf->read_double = (func_double) host_read_f2d ;
- break ;
-
- case (SF_ENDIAN_BIG + 0x1000 * FLOAT_BROKEN_LE) :
- psf->fl32_endswap = SF_TRUE ;
- psf->read_short = (func_short) broken_read_f2s ;
- psf->read_int = (func_int) broken_read_f2i ;
- psf->read_float = (func_float) broken_read_f ;
- psf->read_double = (func_double) broken_read_f2d ;
- break ;
-
- case (SF_ENDIAN_LITTLE + 0x1000 * FLOAT_BROKEN_LE) :
- psf->fl32_endswap = SF_FALSE ;
- psf->read_short = (func_short) broken_read_f2s ;
- psf->read_int = (func_int) broken_read_f2i ;
- psf->read_float = (func_float) broken_read_f ;
- psf->read_double = (func_double) broken_read_f2d ;
- break ;
-
- case (SF_ENDIAN_BIG + 0x1000 * FLOAT_BROKEN_BE) :
- psf->fl32_endswap = SF_FALSE ;
- psf->read_short = (func_short) broken_read_f2s ;
- psf->read_int = (func_int) broken_read_f2i ;
- psf->read_float = (func_float) broken_read_f ;
- psf->read_double = (func_double) broken_read_f2d ;
- break ;
-
- case (SF_ENDIAN_LITTLE + 0x1000 * FLOAT_BROKEN_BE) :
- psf->fl32_endswap = SF_TRUE ;
- psf->read_short = (func_short) broken_read_f2s ;
- psf->read_int = (func_int) broken_read_f2i ;
- psf->read_float = (func_float) broken_read_f ;
- psf->read_double = (func_double) broken_read_f2d ;
- break ;
-
- default : break ;
- } ;
-
- return 0 ;
-} /* float32_read_init */
-
-int
-float32_write_init (SF_PRIVATE *psf)
-{ static int float_caps = FLOAT_UNKNOWN ;
-
- if (float_caps == FLOAT_UNKNOWN)
- float_caps = float32_get_capability (psf->endian) ;
-
- switch (psf->endian + 0x1000 * float_caps)
- { case (SF_ENDIAN_LITTLE + 0x1000 * FLOAT_CAN_RW_LE) :
- psf->fl32_endswap = SF_FALSE ;
- psf->write_short = (func_short) host_write_s2f ;
- psf->write_int = (func_int) host_write_i2f ;
- psf->write_float = (func_float) host_write_f ;
- psf->write_double = (func_double) host_write_d2f ;
- break ;
-
- case (SF_ENDIAN_BIG + 0x1000 * FLOAT_CAN_RW_BE) :
- psf->fl32_endswap = SF_FALSE ;
- psf->write_short = (func_short) host_write_s2f ;
- psf->write_int = (func_int) host_write_i2f ;
- psf->write_float = (func_float) host_write_f ;
- psf->write_double = (func_double) host_write_d2f ;
- break ;
-
- case (SF_ENDIAN_BIG + 0x1000 * FLOAT_CAN_RW_LE) :
- psf->fl32_endswap = SF_TRUE ;
- psf->write_short = (func_short) host_write_s2f ;
- psf->write_int = (func_int) host_write_i2f ;
- psf->write_float = (func_float) host_write_f ;
- psf->write_double = (func_double) host_write_d2f ;
- break ;
-
- case (SF_ENDIAN_LITTLE + 0x1000 * FLOAT_CAN_RW_BE) :
- psf->fl32_endswap = SF_TRUE ;
- psf->write_short = (func_short) host_write_s2f ;
- psf->write_int = (func_int) host_write_i2f ;
- psf->write_float = (func_float) host_write_f ;
- psf->write_double = (func_double) host_write_d2f ;
- break ;
-
- case (SF_ENDIAN_BIG + 0x1000 * FLOAT_BROKEN_LE) :
- psf->fl32_endswap = SF_TRUE ;
- psf->write_short = (func_short) broken_write_s2f ;
- psf->write_int = (func_int) broken_write_i2f ;
- psf->write_float = (func_float) broken_write_f ;
- psf->write_double = (func_double) broken_write_d2f ;
- break ;
-
- case (SF_ENDIAN_LITTLE + 0x1000 * FLOAT_BROKEN_LE) :
- psf->fl32_endswap = SF_FALSE ;
- psf->write_short = (func_short) broken_write_s2f ;
- psf->write_int = (func_int) broken_write_i2f ;
- psf->write_float = (func_float) broken_write_f ;
- psf->write_double = (func_double) broken_write_d2f ;
- break ;
-
- case (SF_ENDIAN_BIG + 0x1000 * FLOAT_BROKEN_BE) :
- psf->fl32_endswap = SF_FALSE ;
- psf->write_short = (func_short) broken_write_s2f ;
- psf->write_int = (func_int) broken_write_i2f ;
- psf->write_float = (func_float) broken_write_f ;
- psf->write_double = (func_double) broken_write_d2f ;
- break ;
-
- case (SF_ENDIAN_LITTLE + 0x1000 * FLOAT_BROKEN_BE) :
- psf->fl32_endswap = SF_TRUE ;
- psf->write_short = (func_short) broken_write_s2f ;
- psf->write_int = (func_int) broken_write_i2f ;
- psf->write_float = (func_float) broken_write_f ;
- psf->write_double = (func_double) broken_write_d2f ;
- break ;
-
- default : break ;
- } ;
-
- return 0 ;
-} /* float32_write_init */
-
-float
-float32_read (unsigned char *cptr)
-{ int exponent, mantissa, negative ;
- float fvalue ;
-
- if (CPU_IS_LITTLE_ENDIAN)
- { negative = cptr [3] & 0x80 ;
- exponent = ((cptr [3] & 0x7F) << 1) | ((cptr [2] & 0x80) ? 1 : 0);
- mantissa = ((cptr [2] & 0x7F) << 16) | (cptr [1] << 8) | (cptr [0]) ;
- }
- else
- { negative = cptr [0] & 0x80 ;
- exponent = ((cptr [0] & 0x7F) << 1) | ((cptr [1] & 0x80) ? 1 : 0);
- mantissa = ((cptr [1] & 0x7F) << 16) | (cptr [2] << 8) | (cptr [3]) ;
- } ;
-
- if (! (exponent || mantissa))
- return 0.0 ;
-
- mantissa |= 0x800000 ;
- exponent = exponent ? exponent - 127 : 0 ;
-
- fvalue = mantissa ? ((float) mantissa) / ((float) 0x800000) : 0.0 ;
-
- if (negative)
- fvalue *= -1 ;
-
- if (exponent > 0)
- fvalue *= (1 << exponent) ;
- else if (exponent < 0)
- fvalue /= (1 << abs (exponent)) ;
-
- return fvalue ;
-} /* float32_read */
-
-void
-float32_write (float in, unsigned char *out)
-{ int exponent, mantissa, negative = 0 ;
-
- *((int*) out) = 0 ;
-
- if (in == 0.0)
- return ;
-
- if (in < 0.0)
- { in *= -1.0 ;
- negative = 1 ;
- } ;
-
- in = frexp (in, &exponent) ;
-
- exponent += 126 ;
-
- in *= (float) 0x1000000 ;
- mantissa = (((int) in) & 0x7FFFFF) ;
-
- if (CPU_IS_LITTLE_ENDIAN)
- { if (negative)
- out [3] |= 0x80 ;
-
- if (exponent & 0x01)
- out [2] |= 0x80 ;
-
- out [0] = mantissa & 0xFF ;
- out [1] = (mantissa >> 8) & 0xFF ;
- out [2] |= (mantissa >> 16) & 0x7F ;
- out [3] |= (exponent >> 1) & 0x7F ;
- }
- else
- { if (negative)
- out [0] |= 0x80 ;
-
- if (exponent & 0x01)
- out [1] |= 0x80 ;
-
- out [3] = mantissa & 0xFF ;
- out [2] = (mantissa >> 8) & 0xFF ;
- out [1] |= (mantissa >> 16) & 0x7F ;
- out [0] |= (exponent >> 1) & 0x7F ;
- }
-
- return ;
-} /* float32_write */
-
-/*==============================================================================================
-** Private functions.
-*/
-
-static void
-float32_peak_update (SF_PRIVATE *psf, float *buffer, int count, int index)
-{ int k, chan, position ;
- float fmaxval;
-
- for (chan = 0 ; chan < psf->sf.channels ; chan++)
- { fmaxval = fabs (buffer [chan]) ;
- position = 0 ;
- for (k = chan ; k < count ; k += psf->sf.channels)
- if (fmaxval < fabs (buffer [k]))
- { fmaxval = fabs (buffer [k]) ;
- position = k ;
- } ;
-
- if (fmaxval > psf->peak.peak[chan].value)
- { psf->peak.peak[chan].value = fmaxval ;
- psf->peak.peak[chan].position = psf->current + index + (position /psf->sf.channels) ;
- } ;
- } ;
-
- return ;
-} /* float32_peak_update */
-
-int
-float32_get_capability (int endianness)
-{ union
- { float f ;
- int i ;
- unsigned char c [4] ;
- } data ;
-
- data.f = 1.23456789 ; /* Some abitrary value. */
-
- if (FORCE_BROKEN_FLOAT || data.i != 0x3f9e0652)
- return (CPU_IS_LITTLE_ENDIAN) ? FLOAT_BROKEN_LE : FLOAT_BROKEN_BE ;
-
- /* If this test is true ints and floats are compatible and little endian. */
- if (data.c [0] == 0x52 && data.c [1] == 0x06 && data.c [2] == 0x9e && data.c [3] == 0x3f)
- return FLOAT_CAN_RW_LE ;
-
- /* If this test is true ints and floats are compatible and big endian. */
- if (data.c [3] == 0x52 && data.c [2] == 0x06 && data.c [1] == 0x9e && data.c [0] == 0x3f)
- return FLOAT_CAN_RW_BE ;
-
- /* Floats are broken. Don't expect reading or writing to be fast. */
- return 0 ;
-} /* float32_get_capability */
-
-/*----------------------------------------------------------------------------------------------
-*/
-
-
-static int
-host_read_f2s (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, readcount / sizeof (int)) ;
-
- f2s_array ((float*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* host_read_f2s */
-
-static int
-host_read_f2i (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, readcount / sizeof (int)) ;
-
- f2i_array ((float*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* host_read_f2i */
-
-static int
-host_read_f (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- if (psf->fl32_endswap != SF_TRUE)
- return fread (ptr, sizeof (float), len, psf->file) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
-
- endswap_int_array ((int*) psf->buffer, readcount / sizeof (int)) ;
-
- memcpy (ptr + index, psf->buffer, thisread) ;
-
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* host_read_f */
-
-static int
-host_read_f2d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, readcount / sizeof (int)) ;
-
- f2d_array ((float*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* host_read_f2d */
-
-static int
-host_write_s2f (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- s2f_array (ptr, index, (float*) (psf->buffer), writecount / psf->bytewidth) ;
-
- float32_peak_update (psf, (float *) (psf->buffer), writecount / psf->bytewidth, index / psf->sf.channels) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, writecount / sizeof (int)) ;
-
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* host_write_s2f */
-
-static int
-host_write_i2f (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- i2f_array (ptr, index, (float*) (psf->buffer), writecount / psf->bytewidth) ;
-
- float32_peak_update (psf, (float *) (psf->buffer), writecount / psf->bytewidth, index / psf->sf.channels) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, writecount / sizeof (int)) ;
-
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* host_write_i2f */
-
-static int
-host_write_f (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- float32_peak_update (psf, ptr, len, 0) ;
-
- if (psf->fl32_endswap != SF_TRUE)
- return fwrite (ptr, sizeof (float), len, psf->file) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
-
- memcpy (psf->buffer, ptr + index, writecount) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, writecount / sizeof (int)) ;
-
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* host_write_f */
-
-static int
-host_write_d2f (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- d2f_array (ptr, index, (float*) (psf->buffer), writecount / psf->bytewidth) ;
-
- float32_peak_update (psf, (float *) (psf->buffer), writecount / psf->bytewidth, index / psf->sf.channels) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, writecount / sizeof (int)) ;
-
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* host_write_d2f */
-
-/*=======================================================================================
-*/
-
-static void
-f2s_array (float *buffer, unsigned int count, short *ptr, int index)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { ptr [index] = ((double) buffer [k]) ;
- index ++ ;
- } ;
-} /* f2s_array */
-
-static void
-f2i_array (float *buffer, unsigned int count, int *ptr, int index)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { ptr [index] = (int) ((double) buffer [k]) ;
- index ++ ;
- } ;
-} /* f2i_array */
-
-static void
-f2d_array (float *buffer, unsigned int count, double *ptr, int index)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { ptr [index] = ((double) buffer [k]) ;
- index ++ ;
- } ;
-} /* f2d_array */
-
-static void
-s2f_array (short *ptr, int index, float *buffer, unsigned int count)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = (float) (ptr [index]) ;
- index ++ ;
- } ;
-
-} /* s2f_array */
-
-static void
-i2f_array (int *ptr, int index, float *buffer, unsigned int count)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = (float) (ptr [index]) ;
- index ++ ;
- } ;
-} /* i2f_array */
-
-static void
-d2f_array (double *ptr, int index, float *buffer, unsigned int count)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = (float) (ptr [index]) ;
- index ++ ;
- } ;
-} /* d2f_array */
-
-/*=======================================================================================
-*/
-
-static int
-broken_read_f2s (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int bytecount, readcount, bufferlen, thisread ;
- int index = 0, total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, readcount / sizeof (int)) ;
-
- bf2f_array ((float *) (psf->buffer), readcount / psf->bytewidth) ;
-
- f2s_array ((float*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* broken_read_f2s */
-
-static int
-broken_read_f2i (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int bytecount, readcount, bufferlen, thisread ;
- int index = 0, total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, readcount / sizeof (int)) ;
-
- bf2f_array ((float *) (psf->buffer), readcount / psf->bytewidth) ;
-
- f2i_array ((float*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* broken_read_f2i */
-
-static int
-broken_read_f (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int bytecount, readcount, bufferlen, thisread ;
- int index = 0, total = 0 ;
-
- /* FIX THIS */
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, readcount / sizeof (int)) ;
-
- bf2f_array ((float *) (psf->buffer), readcount / psf->bytewidth) ;
-
- memcpy (ptr + index, psf->buffer, readcount) ;
-
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* broken_read_f */
-
-static int
-broken_read_f2d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int bytecount, readcount, bufferlen, thisread ;
- int index = 0, total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, readcount / sizeof (int)) ;
-
- bf2f_array ((float *) (psf->buffer), readcount / psf->bytewidth) ;
-
- f2d_array ((float*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* broken_read_f2d */
-
-static int
-broken_write_s2f (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int bytecount, writecount, bufferlen, thiswrite ;
- int index = 0, total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- s2f_array (ptr, index, (float*) (psf->buffer), writecount / psf->bytewidth) ;
-
- float32_peak_update (psf, (float *) (psf->buffer), writecount / psf->bytewidth, index / psf->sf.channels) ;
-
- f2bf_array ((float *) (psf->buffer), writecount / psf->bytewidth) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, writecount / sizeof (int)) ;
-
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* broken_write_s2f */
-
-static int
-broken_write_i2f (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int bytecount, writecount, bufferlen, thiswrite ;
- int index = 0, total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- i2f_array (ptr, index, (float*) (psf->buffer), writecount / psf->bytewidth) ;
-
- float32_peak_update (psf, (float *) (psf->buffer), writecount / psf->bytewidth, index / psf->sf.channels) ;
-
- f2bf_array ((float *) (psf->buffer), writecount / psf->bytewidth) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, writecount / sizeof (int)) ;
-
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* broken_write_i2f */
-
-static int
-broken_write_f (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int bytecount, writecount, bufferlen, thiswrite ;
- int index = 0, total = 0 ;
-
- /* FIX THIS */
- float32_peak_update (psf, ptr, len, 0) ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
-
- memcpy (psf->buffer, ptr + index, writecount) ;
-
- f2bf_array ((float *) (psf->buffer), writecount / psf->bytewidth) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, writecount / sizeof (int)) ;
-
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* broken_write_f */
-
-static int
-broken_write_d2f (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int bytecount, writecount, bufferlen, thiswrite ;
- int index = 0, total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- d2f_array (ptr, index, (float*) (psf->buffer), writecount / psf->bytewidth) ;
-
- float32_peak_update (psf, (float *) (psf->buffer), writecount / psf->bytewidth, index / psf->sf.channels) ;
-
- f2bf_array ((float *) (psf->buffer), writecount / psf->bytewidth) ;
-
- if (psf->fl32_endswap == SF_TRUE)
- endswap_int_array ((int*) psf->buffer, writecount / sizeof (int)) ;
-
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* broken_write_d2f */
-
-/*==============================================================================
-*/
-
-/*----------------------------------------------------------------------------------------------
-*/
-
-static void
-bf2f_array (float *buffer, unsigned int count)
-{ int k ;
-
- for (k = 0 ; k < count ; k++)
- buffer [k] = float32_read ((unsigned char *) (buffer + k)) ;
-} /* bf2f_array */
-
-static void
-f2bf_array (float *buffer, unsigned int count)
-{ int k ;
-
- for (k = 0 ; k < count ; k++)
- float32_write (buffer [k], (unsigned char*) (buffer + k)) ;
-} /* f2bf_array */
-
--- a/common/libsndfile/src/floatcast.h
+++ /dev/null
@@ -1,37 +1,0 @@
-/*
-** Copyright (C) 2001 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.
-*/
-
-/* On Intel Pentium processors (especially PIII and probably P4), converting
-** from float to int is very slow. To meet the C specs, the code produced by
-** most C compilers targeting Pentium needs to change the FPU rounding mode
-** before the float to int conversion is performed.
-**
-** Changing the FPU rounding mode causes the FPU pipeline to be flushed. It
-** is this flushing of the pipeline which is so slow.
-*/
-
-
-/* These macros are place holders for inline functions which will replace
-** them in the near future.
-*/
-
-#define FLOAT_TO_INT(x) ((int)(x))
-#define FLOAT_TO_SHORT(x) ((short)(x))
-
-#define DOUBLE_TO_INT(x) ((int)(x))
-#define DOUBLE_TO_SHORT(x) ((short)(x))
--- a/common/libsndfile/src/ircam.c
+++ /dev/null
@@ -1,332 +1,0 @@
-/*
-** Copyright (C) 2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "common.h"
-
-/*------------------------------------------------------------------------------
-** Macros to handle big/little endian issues.
-*/
-
-/* The IRCAM magic number is weird in that one byte in the number can have
-** values of 0x1, 0x2, 0x03 or 0x04. Hence the need for a marker and a mask.
-*/
-
-#define IRCAM_02_MARKER (MAKE_MARKER (0x00, 0x02, 0xA3, 0x64))
-#define IRCAM_03_MARKER (MAKE_MARKER (0x64, 0xA3, 0x03, 0x00))
-#define IRCAM_04_MARKER (MAKE_MARKER (0x64, 0xA3, 0x04, 0x00))
-
-#define IRCAM_DATA_OFFSET (1024)
-
-/*------------------------------------------------------------------------------
-** Typedefs.
-*/
-
-enum
-{ IRCAM_PCM_16 = 0x00002,
- IRCAM_FLOAT = 0x00004,
- IRCAM_ALAW = 0x10001,
- IRCAM_ULAW = 0x20001,
- IRCAM_PCM_32 = 0x40004
-} ;
-
-
-/*------------------------------------------------------------------------------
-** Private static functions.
-*/
-
-static int ircam_close (SF_PRIVATE *psf) ;
-static int ircam_write_header (SF_PRIVATE *psf) ;
-
-static int get_encoding (SF_PRIVATE *psf) ;
-
-static char* get_encoding_str (int encoding) ;
-
-/*------------------------------------------------------------------------------
-** Public functions.
-*/
-
-int
-ircam_open_read (SF_PRIVATE *psf)
-{ unsigned int marker, encoding ;
- float samplerate ;
- int error = SFE_NO_ERROR ;
-
- psf_binheader_readf (psf, "pm", 0, &marker) ;
-
- if (marker == IRCAM_03_MARKER)
- { psf->endian = SF_ENDIAN_LITTLE ;
-
- if (CPU_IS_LITTLE_ENDIAN)
- marker = ENDSWAP_INT (marker) ;
- psf_log_printf (psf, "marker: 0x%X => little endian\n", marker) ;
-
- psf_binheader_readf (psf, "fll", &samplerate, &(psf->sf.channels), &encoding) ;
-
- psf->sf.samplerate = (int) samplerate ;
- psf_log_printf (psf, " Sample Rate : %d\n", psf->sf.samplerate) ;
- psf_log_printf (psf, " Channels : %d\n", psf->sf.channels) ;
- psf_log_printf (psf, " Encoding : %X => %s\n", encoding, get_encoding_str (encoding)) ;
- }
- else if (marker == IRCAM_02_MARKER || marker == IRCAM_04_MARKER)
- { psf->endian = SF_ENDIAN_BIG ;
-
- if (CPU_IS_BIG_ENDIAN)
- marker = ENDSWAP_INT (marker) ;
- psf_log_printf (psf, "marker: 0x%X => big endian\n", marker) ;
-
- psf_binheader_readf (psf, "FLL", &samplerate, &(psf->sf.channels), &encoding) ;
-
- psf->sf.samplerate = (int) samplerate ;
- psf_log_printf (psf, " Sample Rate : %d\n", psf->sf.samplerate) ;
- psf_log_printf (psf, " Channels : %d\n", psf->sf.channels) ;
- psf_log_printf (psf, " Encoding : %X => %s\n", encoding, get_encoding_str (encoding)) ;
- }
- else
- return SFE_IRCAM_NO_MARKER ;
-
- /* Sanit checking for endian-ness detection. */
- if (psf->sf.channels > 256)
- return SFE_IRCAM_BAD_CHANNELS ;
-
- psf->sf.sections = 1 ;
- psf->sf.seekable = SF_TRUE ;
-
- switch (encoding)
- { case IRCAM_PCM_16 :
- psf->sf.pcmbitwidth = 16 ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
-
- if (psf->endian == SF_ENDIAN_BIG)
- psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_PCM_BE ;
- else
- psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_PCM_LE ;
-
- error = pcm_read_init (psf) ;
- break ;
-
- case IRCAM_PCM_32 :
- psf->sf.pcmbitwidth = 32 ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
-
- if (psf->endian == SF_ENDIAN_BIG)
- psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_PCM_BE ;
- else
- psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_PCM_LE ;
-
- error = pcm_read_init (psf) ;
- break ;
-
- case IRCAM_FLOAT :
- psf->sf.pcmbitwidth = 32 ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
-
- if (psf->endian == SF_ENDIAN_BIG)
- psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_FLOAT_BE ;
- else
- psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_FLOAT_LE ;
-
- error = float32_read_init (psf) ;
- break ;
-
- default :
- error = SFE_IRCAM_UNKNOWN_FORMAT ;
- break ;
- } ;
-
- if (error)
- return error ;
-
- psf->dataoffset = IRCAM_DATA_OFFSET ;
- psf->datalength = psf->filelength - psf->dataoffset ;
-
- if (! psf->sf.samples && psf->blockwidth)
- psf->sf.samples = psf->datalength / psf->blockwidth ;
-
- psf_log_printf (psf, " Samples : %d\n", psf->sf.samples) ;
-
- psf_binheader_readf (psf, "p", IRCAM_DATA_OFFSET) ;
-
- return 0 ;
-} /* ircam_open_read */
-
-/*------------------------------------------------------------------------------
-*/
-
-int
-ircam_open_write (SF_PRIVATE *psf)
-{ unsigned int encoding, subformat ;
- int error = SFE_NO_ERROR ;
-
- if ((psf->sf.format & SF_FORMAT_TYPEMASK) != SF_FORMAT_IRCAM)
- return SFE_BAD_OPEN_FORMAT ;
-
- subformat = psf->sf.format & SF_FORMAT_SUBMASK ;
-
- if (subformat == SF_FORMAT_ULAW || subformat == SF_FORMAT_ALAW)
- psf->bytewidth = 1 ;
- else
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
-
- psf->sf.seekable = SF_TRUE ;
- psf->error = 0 ;
-
- psf->blockwidth = psf->bytewidth * psf->sf.channels ;
- psf->dataoffset = IRCAM_DATA_OFFSET ;
- psf->datalength = psf->blockwidth * psf->sf.samples ;
- psf->filelength = psf->datalength + psf->dataoffset ;
-
- if (! (encoding = ircam_write_header (psf)))
- return psf->error ;
-
- psf->close = (func_close) ircam_close ;
- psf->write_header = (func_wr_hdr) ircam_write_header ;
-
- switch (encoding)
- { case IRCAM_PCM_16 : /* 16-bit linear PCM. */
- case IRCAM_PCM_32 : /* 32-bit linear PCM. */
- error = pcm_write_init (psf) ;
- break ;
-
- case IRCAM_FLOAT : /* 32-bit linear PCM. */
- error = float32_write_init (psf) ;
- break ;
-
- default : break ;
- } ;
-
- return error ;
-} /* ircam_open_write */
-
-/*------------------------------------------------------------------------------
-*/
-
-static int
-ircam_close (SF_PRIVATE *psf)
-{
- return 0 ;
-} /* ircam_close */
-
-static int
-ircam_write_header (SF_PRIVATE *psf)
-{ int encoding ;
- float samplerate ;
-
- /* This also sets psf->endian. */
- encoding = get_encoding (psf) ;
-
- if (! encoding)
- { psf->error = SFE_BAD_OPEN_FORMAT ;
- return encoding ;
- } ;
-
- /* Reset the current header length to zero. */
- psf->header [0] = 0 ;
- psf->headindex = 0 ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- samplerate = psf->sf.samplerate ;
-
- if (psf->endian == SF_ENDIAN_BIG)
- { psf_binheader_writef (psf, "mF", IRCAM_02_MARKER, samplerate) ;
- psf_binheader_writef (psf, "LL", psf->sf.channels, encoding) ;
- }
- else if (psf->endian == SF_ENDIAN_LITTLE)
- { psf_binheader_writef (psf, "mf", IRCAM_03_MARKER, samplerate) ;
- psf_binheader_writef (psf, "ll", psf->sf.channels, encoding) ;
- }
- else
- { psf->error = SFE_BAD_OPEN_FORMAT ;
- return encoding ;
- } ;
-
- psf_binheader_writef (psf, "z", IRCAM_DATA_OFFSET - psf->headindex) ;
-
- /* Header construction complete so write it out. */
- fwrite (psf->header, psf->headindex, 1, psf->file) ;
-
- return encoding ;
-} /* ircam_write_header */
-
-static int
-get_encoding (SF_PRIVATE *psf)
-{ unsigned int format, bitwidth ;
-
- format = psf->sf.format & SF_FORMAT_SUBMASK ;
- bitwidth = psf->bytewidth * 8 ;
-
- /* Default endian-ness is the same as host processor unless overridden. */
- if (format == SF_FORMAT_PCM_BE || format == SF_FORMAT_FLOAT_BE)
- psf->endian = SF_ENDIAN_BIG ;
- else if (format == SF_FORMAT_PCM_LE || format == SF_FORMAT_FLOAT_LE)
- psf->endian = SF_ENDIAN_LITTLE ;
- else if (CPU_IS_BIG_ENDIAN)
- psf->endian = SF_ENDIAN_BIG ;
- else
- psf->endian = SF_ENDIAN_LITTLE ;
-
- switch (format)
- { case SF_FORMAT_ULAW : return IRCAM_ULAW ;
- case SF_FORMAT_ALAW : return IRCAM_ALAW ;
-
- case SF_FORMAT_PCM :
- case SF_FORMAT_PCM_BE :
- case SF_FORMAT_PCM_LE :
- /* For PCM encoding, the header encoding field depends on the bitwidth. */
- switch (bitwidth)
- { case 16 : return IRCAM_PCM_16 ;
- case 32 : return IRCAM_PCM_32 ;
- default : break ;
- } ;
- break ;
-
- case SF_FORMAT_FLOAT :
- case SF_FORMAT_FLOAT_BE :
- case SF_FORMAT_FLOAT_LE :
- return IRCAM_FLOAT ;
-
- default : break ;
- } ;
-
- return 0 ;
-} /* get_encoding */
-
-static char*
-get_encoding_str (int encoding)
-{ switch (encoding)
- { case IRCAM_PCM_16 : return "16 bit PCM" ;
- case IRCAM_FLOAT : return "32 bit float" ;
- case IRCAM_ALAW : return "A law" ;
- case IRCAM_ULAW : return "u law" ;
- case IRCAM_PCM_32 : return "32 bit PCM" ;
- } ;
- return "Unknown encoding" ;
-} /* get_encoding_str */
-
--- a/common/libsndfile/src/nist.c
+++ /dev/null
@@ -1,274 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-/*
-** Some of the information used to read NIST files was gleaned from
-** reading the code of Bill Schottstaedt's sndlib library
-** ftp://ccrma-ftp.stanford.edu/pub/Lisp/sndlib.tar.gz
-** However, no code from that package was used.
-*/
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "common.h"
-
-/*------------------------------------------------------------------------------
-*/
-
-#define NIST_HEADER_LENGTH 1024
-
-/*------------------------------------------------------------------------------
-** Private static functions.
-*/
-
-static int nist_close (SF_PRIVATE *psf) ;
-static void nist_write_header (SF_PRIVATE *psf) ;
-
-/*------------------------------------------------------------------------------
-*/
-
-int
-nist_open_read (SF_PRIVATE *psf)
-{ char *psf_header ;
- int error ;
-
- fseek (psf->file, 0, SEEK_SET) ;
-
- psf_header = (char*) psf->header ;
-
- fgets (psf_header, SF_HEADER_LEN, psf->file) ;
- psf_log_printf (psf, psf_header) ;
- if (strlen (psf_header) != 8 || strcmp (psf_header, "NIST_1A\n"))
- return SFE_NIST_BAD_HEADER ;
-
- fgets (psf_header, SF_HEADER_LEN, psf->file) ;
- psf_log_printf (psf, psf_header) ;
- if (strlen (psf_header) != 8 || atoi (psf_header) != 1024)
- return SFE_NIST_BAD_HEADER ;
-
- while (ftell (psf->file) < 1024 && !ferror (psf->file))
- { fgets (psf_header, SF_HEADER_LEN, psf->file) ;
- psf_log_printf (psf, psf_header) ;
-
- if (strstr (psf_header, "channel_count -i ") == psf_header)
- sscanf (psf_header, "channel_count -i %u", &(psf->sf.channels)) ;
-
- if (strstr (psf_header, "sample_count -i ") == psf_header)
- sscanf (psf_header, "sample_count -i %u", &(psf->sf.samples)) ;
-
- if (strstr (psf_header, "sample_rate -i ") == psf_header)
- sscanf (psf_header, "sample_rate -i %u", &(psf->sf.samplerate)) ;
-
- if (strstr (psf_header, "sample_n_bytes -i ") == psf_header)
- sscanf (psf_header, "sample_n_bytes -i %u", &(psf->bytewidth)) ;
-
- if (strstr (psf_header, "sample_sig_bits -i ") == psf_header)
- sscanf (psf_header, "sample_sig_bits -i %u", &(psf->sf.pcmbitwidth)) ;
-
- if (strstr (psf_header, "sample_byte_format -s") == psf_header)
- { int bytes ;
- char str [8] = { 0, 0, 0, 0, 0, 0, 0, 0 } ;
-
- sscanf (psf_header, "sample_byte_format -s%d %5s", &bytes, str) ;
- if (bytes < 2 || bytes > 4)
- return SFE_NIST_BAD_ENCODING ;
-
- psf->bytewidth = bytes ;
-
- if (strstr (str, "01") == str)
- { psf->endian = SF_ENDIAN_LITTLE ;
- psf->sf.format = SF_FORMAT_NIST | SF_FORMAT_PCM_LE ;
- }
- else if (strstr (str, "10"))
- { psf->endian = SF_ENDIAN_BIG ;
- psf->sf.format = SF_FORMAT_NIST | SF_FORMAT_PCM_BE ;
- } ;
- } ;
-
- if (strstr (psf_header, "sample_coding -s") == psf_header)
- return SFE_NIST_BAD_ENCODING ;
-
- if (strstr (psf_header, "end_head") == psf_header)
- break ;
- } ;
-
- psf->dataoffset = NIST_HEADER_LENGTH ;
- psf->current = 0 ;
- psf->sf.seekable = SF_TRUE ;
- psf->sf.sections = 1 ;
-
- psf->close = (func_close) nist_close ;
-
- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
- psf->datalength = psf->filelength - psf->dataoffset ;
-
- if ((error = pcm_read_init (psf)))
- return error ;
-
- fseek (psf->file, psf->dataoffset, SEEK_SET) ;
-
- return 0 ;
-} /* nist_open_read */
-
-/*------------------------------------------------------------------------------
-*/
-
-int
-nist_open_write (SF_PRIVATE *psf)
-{ int subformat, error ;
-
- if ((psf->sf.format & SF_FORMAT_TYPEMASK) != SF_FORMAT_NIST)
- return SFE_BAD_OPEN_FORMAT ;
-
- subformat = psf->sf.format & SF_FORMAT_SUBMASK ;
-
- if (subformat == SF_FORMAT_PCM_BE)
- psf->endian = SF_ENDIAN_BIG ;
- else if (subformat == SF_FORMAT_PCM_LE)
- psf->endian = SF_ENDIAN_LITTLE ;
- else if (CPU_IS_BIG_ENDIAN && subformat == SF_FORMAT_PCM)
- psf->endian = SF_ENDIAN_BIG ;
- else if (CPU_IS_LITTLE_ENDIAN && subformat == SF_FORMAT_PCM)
- psf->endian = SF_ENDIAN_LITTLE ;
- else
- return SFE_BAD_OPEN_FORMAT ;
-
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
-
- psf->blockwidth = psf->bytewidth * psf->sf.channels ;
- psf->dataoffset = NIST_HEADER_LENGTH ;
- psf->datalength = psf->blockwidth * psf->sf.samples ;
- psf->filelength = psf->datalength + psf->dataoffset ;
- psf->error = 0 ;
-
- if ((error = pcm_write_init (psf)))
- return error ;
-
- psf->close = (func_close) nist_close ;
- psf->write_header = (func_wr_hdr) nist_write_header ;
-
- nist_write_header (psf) ;
-
- return 0 ;
-} /* nist_open_write */
-
-/*------------------------------------------------------------------------------
-*/
-
-static int
-nist_close (SF_PRIVATE *psf)
-{
- if (psf->mode == SF_MODE_WRITE)
- { /* Now we know for certain the length of the file we can
- ** re-write correct values for the datasize header element.
- */
-
- fseek (psf->file, 0, SEEK_END) ;
- psf->filelength = ftell (psf->file) ;
-
- psf->dataoffset = NIST_HEADER_LENGTH ;
- psf->datalength = psf->filelength - psf->dataoffset ;
-
- psf->sf.samples = psf->datalength / psf->blockwidth ;
-
- nist_write_header (psf) ;
- } ;
-
- if (psf->fdata)
- free (psf->fdata) ;
- psf->fdata = NULL ;
-
- return 0 ;
-} /* nist_close */
-
-/*=========================================================================
-*/
-
-static void
-nist_write_header (SF_PRIVATE *psf)
-{ char *end_str ;
-
- if (psf->endian == SF_ENDIAN_BIG)
- end_str = "10" ;
- else if (psf->endian == SF_ENDIAN_LITTLE)
- end_str = "01" ;
- else
- end_str = "error" ;
-
- /* Clear the whole header. */
- memset (psf->header, 0, sizeof (psf->header)) ;
-
- psf_asciiheader_printf (psf, "NIST_1A\n 1024\n") ;
- psf_asciiheader_printf (psf, "channel_count -i %d\n", psf->sf.channels) ;
- psf_asciiheader_printf (psf, "sample_rate -i %d\n", psf->sf.samplerate) ;
- psf_asciiheader_printf (psf, "sample_n_bytes -i %d\n", psf->bytewidth) ;
- psf_asciiheader_printf (psf, "sample_byte_format -s%d %s\n", psf->bytewidth, end_str) ;
- psf_asciiheader_printf (psf, "sample_sig_bits -i %d\n", psf->sf.pcmbitwidth) ;
- psf_asciiheader_printf (psf, "sample_count -i %d\n", psf->sf.samples) ;
- psf_asciiheader_printf (psf, "end_head\n") ;
-
- fseek (psf->file, 0, SEEK_SET) ;
-
- /* Zero fill to dataoffset. */
- psf_binheader_writef (psf, "z", NIST_HEADER_LENGTH - psf->headindex) ;
-
- fwrite (psf->header, psf->headindex, 1, psf->file) ;
-
- return ;
-} /* nist_write_header */
-
-/*-
-
-These were used to parse the sample_byte_format field but were discarded in favour
-os a simpler method using strstr ().
-
-static
-int strictly_ascending (char *str)
-{ int k ;
-
- if (strlen (str) < 2)
- return 0 ;
-
- for (k = 1 ; str [k] ; k++)
- if (str [k] != str [k-1] + 1)
- return 0 ;
-
- return 1 ;
-} /+* strictly_ascending *+/
-
-static int strictly_descending (char *str)
-{ int k ;
-
- if (strlen (str) < 2)
- return 0 ;
-
- for (k = 1 ; str [k] ; k++)
- if (str [k] + 1 != str [k-1])
- return 0 ;
-
- return 1 ;
-} /+* strictly_descending *+/
-
--*/
--- a/common/libsndfile/src/paf.c
+++ /dev/null
@@ -1,798 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "config.h"
-#include "sndfile.h"
-#include "sfendian.h"
-#include "floatcast.h"
-#include "common.h"
-
-/*------------------------------------------------------------------------------
-** Macros to handle big/little endian issues.
-*/
-
-#define FAP_MARKER (MAKE_MARKER ('f', 'a', 'p', ' '))
-#define PAF_MARKER (MAKE_MARKER (' ', 'p', 'a', 'f'))
-
-/*------------------------------------------------------------------------------
-** Other defines.
-*/
-
-#define PAF_HEADER_LENGTH 2048
-
-/*------------------------------------------------------------------------------
-** Typedefs.
-*/
-
-typedef struct
-{ unsigned int version ;
- unsigned int endianness ;
- unsigned int samplerate ;
- unsigned int format ;
- unsigned int channels ;
- unsigned int source ;
-} PAF_FMT ;
-
-typedef struct
-{ unsigned int index, blocks, channels, samplesperblock, blockcount, blocksize, samplecount ;
- unsigned char *block ;
- int *samples ;
- unsigned char data [1] ; /* Data size fixed during malloc (). */
-} PAF24_PRIVATE ;
-
-/*------------------------------------------------------------------------------
-** Private static functions.
-*/
-
-static int paf24_reader_init (SF_PRIVATE *psf) ;
-static int paf24_writer_init (SF_PRIVATE *psf) ;
-
-static int paf24_read_block (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24) ;
-
-static int paf24_close (SF_PRIVATE *psf) ;
-
-static int paf24_read_s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int paf24_read_i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int paf24_read_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int paf24_read_d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static int paf24_write_s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int paf24_write_i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int paf24_write_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int paf24_write_d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static long paf24_seek (SF_PRIVATE *psf, long offset, int whence) ;
-
-/*
-static void endswap_paf_fmt (PAF_FMT *ppaf_fmt) ;
-*/
-
-/*------------------------------------------------------------------------------
-** Public functions.
-*/
-
-int
-paf_open_read (SF_PRIVATE *psf)
-{ PAF_FMT paf_fmt ;
- unsigned int marker ;
- int error ;
-
- psf_binheader_readf (psf, "pm", 0, &marker) ;
-
- psf_log_printf (psf, "Signature : %D\n", marker) ;
-
- if (marker == PAF_MARKER)
- { psf_binheader_readf (psf, "LLLLLL", &(paf_fmt.version), &(paf_fmt.endianness),
- &(paf_fmt.samplerate), &(paf_fmt.format), &(paf_fmt.channels), &(paf_fmt.source)) ;
- }
- else if (marker == FAP_MARKER)
- { psf_binheader_readf (psf, "llllll", &(paf_fmt.version), &(paf_fmt.endianness),
- &(paf_fmt.samplerate), &(paf_fmt.format), &(paf_fmt.channels), &(paf_fmt.source)) ;
- }
- else
- return SFE_PAF_NO_MARKER ;
-
- psf_log_printf (psf, "Version : %d\n", paf_fmt.version) ;
- if (paf_fmt.version != 0)
- { psf_log_printf (psf, "*** Bad version number. should be zero.\n") ;
- return SFE_PAF_VERSION ;
- } ;
-
- psf_log_printf (psf, "Endianness : %d => ", paf_fmt.endianness) ;
- if (paf_fmt.endianness)
- psf_log_printf (psf, "Little\n", paf_fmt.endianness) ;
- else
- psf_log_printf (psf, "Big\n", paf_fmt.endianness) ;
- psf_log_printf (psf, "Sample Rate : %d\n", paf_fmt.samplerate) ;
-
- if (psf->filelength < PAF_HEADER_LENGTH)
- return SFE_PAF_SHORT_HEADER ;
-
- psf->dataoffset = PAF_HEADER_LENGTH ;
- psf->datalength = psf->filelength - psf->dataoffset ;
-
- psf->current = 0 ;
- psf->endian = paf_fmt.endianness ? SF_ENDIAN_LITTLE : SF_ENDIAN_BIG ;
-
- psf_binheader_readf (psf, "p", psf->dataoffset) ;
-
- psf->sf.samplerate = paf_fmt.samplerate ;
- psf->sf.channels = paf_fmt.channels ;
-
- /* Only fill in type major. */
- psf->sf.format = SF_FORMAT_PAF ;
-
- psf->sf.sections = 1 ;
-
- psf_log_printf (psf, "Format : %d => ", paf_fmt.format) ;
-
- switch (paf_fmt.format)
- { case 0 : psf_log_printf (psf, "16 bit linear PCM\n") ;
- psf->sf.pcmbitwidth = 16 ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
-
- psf->sf.format |= paf_fmt.endianness ? SF_FORMAT_PCM_LE : SF_FORMAT_PCM_BE ; ;
-
- if ((error = pcm_read_init (psf)))
- return error ;
-
- psf->blockwidth = psf->bytewidth * psf->sf.channels ;
-
- psf_log_printf (psf, "X blockwidth : %d\n", psf->blockwidth) ;
-
- if (psf->blockwidth)
- psf->sf.samples = psf->datalength / psf->blockwidth ;
- else
- psf_log_printf (psf, "*** Warning : blockwidth == 0.\n") ;
-
- psf_log_printf (psf, "X samples : %d\n", psf->sf.samples) ;
- break ;
-
- case 1 : psf_log_printf (psf, "24 bit linear PCM\n") ;
- psf->sf.pcmbitwidth = 24 ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
-
- psf->sf.format |= paf_fmt.endianness ? SF_FORMAT_PCM_LE : SF_FORMAT_PCM_BE ; ;
-
- psf->read_short = (func_short) paf24_read_s ;
- psf->read_int = (func_int) paf24_read_i ;
- psf->read_float = (func_float) paf24_read_f ;
- psf->read_double = (func_double) paf24_read_d ;
-
- if ((error = paf24_reader_init (psf)))
- return error ;
-
- psf->seek_func = (func_seek) paf24_seek ;
- psf->close = (func_close) paf24_close ;
-
- psf->blockwidth = psf->bytewidth * psf->sf.channels ;
- psf_log_printf (psf, "X blockwidth : %d\n", psf->blockwidth) ;
- psf->sf.samples = 10 * psf->datalength / (32 * psf->sf.channels) ;
- psf_log_printf (psf, "X samples : %d\n", psf->sf.samples) ;
- break ;
-
- default : psf_log_printf (psf, "Unknown\n") ;
- return SFE_PAF_UNKNOWN_FORMAT ;
- break ;
- } ;
-
- psf_log_printf (psf, "Channels : %d\n", paf_fmt.channels) ;
- psf_log_printf (psf, "Source : %d => ", paf_fmt.source) ;
-
- switch (paf_fmt.source)
- { case 1 : psf_log_printf (psf, "Analog Recording\n") ;
- break ;
- case 2 : psf_log_printf (psf, "Digital Transfer\n") ;
- break ;
- case 3 : psf_log_printf (psf, "Multi-track Mixdown\n") ;
- break ;
- case 5 : psf_log_printf (psf, "Audio Resulting From DSP Processing\n") ;
- break ;
- default : psf_log_printf (psf, "Unknown\n") ;
- break ;
- } ;
-
- return 0 ;
-} /* paf_open_read */
-
-/*------------------------------------------------------------------------------
-*/
-
-int
-paf_open_write (SF_PRIVATE *psf)
-{ PAF_FMT paf_fmt ;
- int subformat, error, paf_format ;
-
- if ((psf->sf.format & SF_FORMAT_TYPEMASK) != SF_FORMAT_PAF)
- return SFE_BAD_OPEN_FORMAT ;
-
- subformat = psf->sf.format & SF_FORMAT_SUBMASK ;
-
- if (subformat == SF_FORMAT_PCM_BE)
- psf->endian = SF_ENDIAN_BIG ;
- else if (subformat == SF_FORMAT_PCM_LE)
- psf->endian = SF_ENDIAN_LITTLE ;
- else if (CPU_IS_BIG_ENDIAN && subformat == SF_FORMAT_PCM)
- psf->endian = SF_ENDIAN_BIG ;
- else if (CPU_IS_LITTLE_ENDIAN && subformat == SF_FORMAT_PCM)
- psf->endian = SF_ENDIAN_LITTLE ;
- else
- return SFE_BAD_OPEN_FORMAT ;
-
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
-
- psf->blockwidth = psf->bytewidth * psf->sf.channels ;
- psf->dataoffset = PAF_HEADER_LENGTH ;
- psf->datalength = psf->blockwidth * psf->sf.samples ;
- psf->filelength = psf->datalength + psf->dataoffset ;
- psf->error = 0 ;
-
- switch (psf->sf.pcmbitwidth)
- { case 16 : paf_format = 0 ;
- psf->bytewidth = 2 ;
- break ;
-
- case 24 : paf_format = 1 ;
- psf->bytewidth = 3 ;
- break ;
-
- default : return SFE_PAF_UNKNOWN_FORMAT ;
- } ;
-
- switch (paf_format)
- { case 0 : /* 16-bit linear PCM. */
- if ((error = pcm_write_init (psf)))
- return error ;
- break ;
-
- case 1 : /* 24-bit linear PCM */
- psf->write_short = (func_short) paf24_write_s ;
- psf->write_int = (func_int) paf24_write_i ;
- psf->write_float = (func_float) paf24_write_f ;
- psf->write_double = (func_double) paf24_write_d ;
-
- if ((error = paf24_writer_init (psf)))
- return error ;
-
- psf->seek_func = (func_seek) paf24_seek ;
- psf->close = (func_close) paf24_close ;
- break ;
-
- default : break ;
- } ;
-
- /* Reset the current header length to zero. */
- psf->header [0] = 0 ;
- psf->headindex = 0 ;
-
- if (psf->endian == SF_ENDIAN_BIG)
- { /* Marker, version, endianness, samplerate */
- psf_binheader_writef (psf, "mLLL", PAF_MARKER, 0, 0, psf->sf.samplerate) ;
- /* format, channels, source */
- psf_binheader_writef (psf, "LLL", paf_format, psf->sf.channels, paf_fmt.source) ;
- }
- else if (psf->endian == SF_ENDIAN_LITTLE)
- { /* Marker, version, endianness, samplerate */
- psf_binheader_writef (psf, "mlll", FAP_MARKER, 0, 1, psf->sf.samplerate) ;
- /* format, channels, source */
- psf_binheader_writef (psf, "lll", paf_format, psf->sf.channels, 0) ;
- } ;
-
- /* Zero fill to dataoffset. */
- psf_binheader_writef (psf, "z", psf->dataoffset - psf->headindex) ;
-
- fwrite (psf->header, psf->headindex, 1, psf->file) ;
-
- return 0 ;
-} /* paf_open_write */
-
-/*===============================================================================
-** 24 bit PAF files have a really weird encoding.
-** For a mono file, 10 samples (each being 3 bytes) are packed into a 32 byte
-** block. The 8 ints in this 32 byte block are then endian swapped (as ints)
-** if necessary before being written to disk.
-** For a stereo file, blocks of 10 samples from the same channel are encoded
-** into 32 bytes as fro the mono case. The 32 block bytes are then interleaved
-** on disk.
-** Reading has to reverse the above process :-).
-** Weird!!!
-**
-** The code below attempts to gain efficiency while maintaining readability.
-*/
-
-static int
-paf24_reader_init (SF_PRIVATE *psf)
-{ PAF24_PRIVATE *ppaf24 ;
- unsigned int paf24size ;
-
- paf24size = sizeof (PAF24_PRIVATE) + psf->sf.channels * (32 + 10 * sizeof (int)) ;
- if (! (psf->fdata = malloc (paf24size)))
- return SFE_MALLOC_FAILED ;
-
- ppaf24 = (PAF24_PRIVATE*) psf->fdata ;
- memset (ppaf24, 0, paf24size) ;
-
- ppaf24->channels = psf->sf.channels ;
- ppaf24->block = (unsigned char*) ppaf24->data ;
- ppaf24->samples = (int*) (ppaf24->data + 32 * ppaf24->channels) ;
-
- ppaf24->blocksize = 32 * ppaf24->channels ;
- ppaf24->samplesperblock = 10 ;
-
- if (psf->datalength % ppaf24->blocksize)
- { psf_log_printf (psf, "*** Warning : file seems to be truncated.\n") ;
- ppaf24->blocks = psf->datalength / ppaf24->blocksize + 1 ;
- }
- else
- ppaf24->blocks = psf->datalength / ppaf24->blocksize ;
-
- psf->sf.samples = ppaf24->samplesperblock * ppaf24->blocks ;
-
- paf24_read_block (psf, ppaf24) ; /* Read first block. */
-
- return 0 ;
-} /* paf24_reader_init */
-
-
-static int
-paf24_read_block (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24)
-{ int k, *iptr, newsample, channel ;
- unsigned char *cptr ;
-
- ppaf24->blockcount ++ ;
- ppaf24->samplecount = 0 ;
-
- if (ppaf24->blockcount > ppaf24->blocks)
- { memset (ppaf24->samples, 0, ppaf24->samplesperblock * ppaf24->channels) ;
- return 1 ;
- } ;
-
- /* Read the block. */
-
- if ((k = fread (ppaf24->block, 1, ppaf24->blocksize, psf->file)) != ppaf24->blocksize)
- psf_log_printf (psf, "*** Warning : short read (%d != %d).\n", k, ppaf24->blocksize) ;
-
- /* Do endian swapping if necessary. */
-
- iptr = (int*) (ppaf24->data) ;
- if ((CPU_IS_BIG_ENDIAN && psf->endian == SF_ENDIAN_LITTLE) ||
- (CPU_IS_LITTLE_ENDIAN && psf->endian == SF_ENDIAN_BIG))
- { for (k = 0 ; k < 8 * ppaf24->channels ; k++)
- iptr [k] = ENDSWAP_INT (iptr [k]) ;
- } ;
-
- /* Unpack block. */
-
- for (k = 0 ; k < 10 * ppaf24->channels ; k++)
- { channel = k % ppaf24->channels ;
- cptr = ppaf24->block + 32 * channel + 3 * (k / ppaf24->channels) ;
- newsample = (cptr [0] << 8) | (cptr [1] << 16) | (cptr [2] << 24) ;
- ppaf24->samples [k] = newsample / 256 ;
- } ;
-
- return 1 ;
-} /* paf24_read_block */
-
-static int
-paf24_read (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24, int *ptr, int len)
-{ int count, total = 0, index = 0 ;
-
- while (index < len)
- { if (ppaf24->blockcount >= ppaf24->blocks && ppaf24->samplecount >= ppaf24->samplesperblock)
- { memset (&(ptr[index]), 0, (len - index) * sizeof (int)) ;
- return total ;
- } ;
-
- if (ppaf24->samplecount >= ppaf24->samplesperblock)
- paf24_read_block (psf, ppaf24) ;
-
- count = (ppaf24->samplesperblock - ppaf24->samplecount) * ppaf24->channels ;
- count = (len - index > count) ? count : len - index ;
-
- memcpy (&(ptr[index]), &(ppaf24->samples [ppaf24->samplecount * ppaf24->channels]), count * sizeof (int)) ;
- index += count ;
- ppaf24->samplecount += count / ppaf24->channels ;
- total = index ;
- } ;
-
- return total ;
-} /* paf24_read */
-
-static int
-paf24_read_s (SF_PRIVATE *psf, short *ptr, int len)
-{ PAF24_PRIVATE *ppaf24 ;
- int *iptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- ppaf24 = (PAF24_PRIVATE*) psf->fdata ;
-
- iptr = (int*) psf->buffer ;
- bufferlen = psf->sf.channels * ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (int) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = paf24_read (psf, ppaf24, iptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = (short) (iptr [k] / 256) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* paf24_read_s */
-
-static int
-paf24_read_i (SF_PRIVATE *psf, int *ptr, int len)
-{ PAF24_PRIVATE *ppaf24 ;
- int total ;
-
- if (! psf->fdata)
- return 0 ;
- ppaf24 = (PAF24_PRIVATE*) psf->fdata ;
-
- total = paf24_read (psf, ppaf24, ptr, len) ;
-
- return total ;
-} /* paf24_read_i */
-
-static int
-paf24_read_f (SF_PRIVATE *psf, float *ptr, int len)
-{ PAF24_PRIVATE *ppaf24 ;
- int *iptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- ppaf24 = (PAF24_PRIVATE*) psf->fdata ;
-
- iptr = (int*) psf->buffer ;
- bufferlen = psf->sf.channels * ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (int) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = paf24_read (psf, ppaf24, iptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = (float) (iptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* paf24_read_f */
-
-static int
-paf24_read_d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ PAF24_PRIVATE *ppaf24 ;
- int *iptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- ppaf24 = (PAF24_PRIVATE*) psf->fdata ;
-
- iptr = (int*) psf->buffer ;
- bufferlen = psf->sf.channels * ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (int) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = paf24_read (psf, ppaf24, iptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = (double) (iptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* paf24_read_d */
-
-/*---------------------------------------------------------------------------
-*/
-
-static int
-paf24_writer_init (SF_PRIVATE *psf)
-{ PAF24_PRIVATE *ppaf24 ;
- unsigned int paf24size ;
-
- paf24size = sizeof (PAF24_PRIVATE) + psf->sf.channels * (32 + 10 * sizeof (int)) ;
- if (! (psf->fdata = malloc (paf24size)))
- return SFE_MALLOC_FAILED ;
-
- ppaf24 = (PAF24_PRIVATE*) psf->fdata ;
- memset (ppaf24, 0, paf24size) ;
-
- ppaf24->channels = psf->sf.channels ;
- ppaf24->block = (unsigned char*) ppaf24->data ;
- ppaf24->samples = (int*) (ppaf24->data + 32 * ppaf24->channels) ;
-
- ppaf24->blocksize = 32 * ppaf24->channels ;
- ppaf24->samplesperblock = 10 ;
-
- if (psf->datalength % ppaf24->blocksize)
- { psf_log_printf (psf, "*** Warning : file seems to be truncated.\n") ;
- ppaf24->blocks = psf->datalength / ppaf24->blocksize + 1 ;
- }
- else
- ppaf24->blocks = psf->datalength / ppaf24->blocksize ;
-
- psf->sf.samples = ppaf24->samplesperblock * ppaf24->blocks ;
-
- return 0 ;
-} /* paf24_writer_init */
-
-
-static int
-paf24_write_block (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24)
-{ int k, *iptr, nextsample, channel ;
- unsigned char *cptr ;
-
- /* First pack block. */
-
- for (k = 0 ; k < 10 * ppaf24->channels ; k++)
- { channel = k % ppaf24->channels ;
- cptr = ppaf24->block + 32 * channel + 3 * (k / ppaf24->channels) ;
- nextsample = ppaf24->samples [k] ;
- cptr [0] = nextsample & 0xFF ;
- cptr [1] = (nextsample >> 8) & 0xFF ;
- cptr [2] = (nextsample >> 16) & 0xFF ;
- } ;
-
- /* Do endian swapping if necessary. */
-
- iptr = (int*) (ppaf24->data) ;
- if ((CPU_IS_BIG_ENDIAN && psf->endian == SF_ENDIAN_LITTLE) ||
- (CPU_IS_LITTLE_ENDIAN && psf->endian == SF_ENDIAN_BIG))
- { for (k = 0 ; k < 8 * ppaf24->channels ; k++)
- iptr [k] = ENDSWAP_INT (iptr [k]) ;
- } ;
-
- /* Write block to disk. */
-
- if ((k = fwrite (ppaf24->block, 1, ppaf24->blocksize, psf->file)) != ppaf24->blocksize)
- psf_log_printf (psf, "*** Warning : short write (%d != %d).\n", k, ppaf24->blocksize) ;
-
- ppaf24->blockcount ++ ;
- ppaf24->samplecount = 0 ;
-
- return 1 ;
-} /* paf24_write_block */
-
-static int
-paf24_write (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24, int *ptr, int len)
-{ int count, total = 0, index = 0 ;
-
- while (index < len)
- { count = (ppaf24->samplesperblock - ppaf24->samplecount) * ppaf24->channels ;
-
- if (count > len - index)
- count = len - index ;
-
- memcpy (&(ppaf24->samples [ppaf24->samplecount * ppaf24->channels]), &(ptr [index]), count * sizeof (int)) ;
- index += count ;
- ppaf24->samplecount += count / ppaf24->channels ;
- total = index ;
-
- if (ppaf24->samplecount >= ppaf24->samplesperblock)
- paf24_write_block (psf, ppaf24) ;
- } ;
-
- return total ;
-} /* paf24_write */
-
-static int
-paf24_write_s (SF_PRIVATE *psf, short *ptr, int len)
-{ PAF24_PRIVATE *ppaf24 ;
- int *iptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- ppaf24 = (PAF24_PRIVATE*) psf->fdata ;
-
- iptr = (int*) psf->buffer ;
- bufferlen = psf->sf.channels * ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (int) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- iptr [k] = ((int) ptr [index+k]) * 256 ;
- count = paf24_write (psf, ppaf24, iptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* paf24_write_s */
-
-static int
-paf24_write_i (SF_PRIVATE *psf, int *ptr, int len)
-{ PAF24_PRIVATE *ppaf24 ;
- int total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- ppaf24 = (PAF24_PRIVATE*) psf->fdata ;
-
- total = paf24_write (psf, ppaf24, ptr, len) ;
-
- return total ;
-} /* paf24_write_i */
-
-static int
-paf24_write_f (SF_PRIVATE *psf, float *ptr, int len)
-{ PAF24_PRIVATE *ppaf24 ;
- int *iptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- ppaf24 = (PAF24_PRIVATE*) psf->fdata ;
-
- iptr = (int*) psf->buffer ;
- bufferlen = psf->sf.channels * ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (int) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- iptr [k] = FLOAT_TO_INT (ptr [index+k]) ;
- count = paf24_write (psf, ppaf24, iptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* paf24_write_f */
-
-static int
-paf24_write_d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ PAF24_PRIVATE *ppaf24 ;
- int *iptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- ppaf24 = (PAF24_PRIVATE*) psf->fdata ;
-
- iptr = (int*) psf->buffer ;
- bufferlen = psf->sf.channels * ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (int) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- iptr [k] = DOUBLE_TO_INT (ptr [index+k]) ;
- count = paf24_write (psf, ppaf24, iptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* paf24_write_d */
-
-/*---------------------------------------------------------------------------
-*/
-
-static long
-paf24_seek (SF_PRIVATE *psf, long offset, int whence)
-{ PAF24_PRIVATE *ppaf24 ;
- int newblock, newsample ;
-
- if (! psf->fdata)
- return 0 ;
-
- ppaf24 = (PAF24_PRIVATE*) psf->fdata ;
-
- if (! (psf->blockwidth && psf->datalength && psf->dataoffset))
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- switch (whence)
- { case SEEK_SET :
- if (offset < 0 || offset > ppaf24->blocks * ppaf24->samplesperblock)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- newblock = offset / ppaf24->samplesperblock ;
- newsample = offset % ppaf24->samplesperblock ;
- break ;
-
- case SEEK_CUR :
- if (psf->current + offset < 0 || psf->current + offset > ppaf24->blocks * ppaf24->samplesperblock)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- newblock = (psf->current + offset) / ppaf24->samplesperblock ;
- newsample = (psf->current + offset) % ppaf24->samplesperblock ;
- break ;
-
- case SEEK_END :
- if (offset > 0 || ppaf24->samplesperblock * ppaf24->blocks + offset < 0)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- newblock = (ppaf24->samplesperblock * ppaf24->blocks + offset) / ppaf24->samplesperblock ;
- newsample = (ppaf24->samplesperblock * ppaf24->blocks + offset) % ppaf24->samplesperblock ;
- break ;
-
- default :
- psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- if (psf->mode == SF_MODE_READ)
- { fseek (psf->file, (int) (psf->dataoffset + newblock * ppaf24->blocksize), SEEK_SET) ;
- ppaf24->blockcount = newblock ;
- paf24_read_block (psf, ppaf24) ;
- ppaf24->samplecount = newsample ;
- }
- else
- { /* What to do about write??? */
- psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- psf->current = newblock * ppaf24->samplesperblock + newsample ;
-
- return psf->current ;
-} /* paf24_seek */
-
-/*---------------------------------------------------------------------------
-*/
-
-static int
-paf24_close (SF_PRIVATE *psf)
-{ PAF24_PRIVATE *ppaf24 ;
-
- if (! psf->fdata)
- return 0 ;
-
- ppaf24 = (PAF24_PRIVATE*) psf->fdata ;
-
- if (psf->mode == SF_MODE_WRITE)
- { if (ppaf24->samplecount && ppaf24->samplecount < ppaf24->samplesperblock)
- paf24_write_block (psf, ppaf24) ;
- } ;
-
- free (psf->fdata) ;
- psf->fdata = NULL ;
-
- return 0 ;
-} /* paf24_close */
-
-/*---------------------------------------------------------------------------
-*/
-
-/*-
-static void
-endswap_paf_fmt (PAF_FMT *ppaf_fmt)
-{ ppaf_fmt->version = ENDSWAP_INT (ppaf_fmt->version) ;
- ppaf_fmt->endianness = ENDSWAP_INT (ppaf_fmt->endianness) ;
- ppaf_fmt->samplerate = ENDSWAP_INT (ppaf_fmt->samplerate) ;
- ppaf_fmt->format = ENDSWAP_INT (ppaf_fmt->format) ;
- ppaf_fmt->channels = ENDSWAP_INT (ppaf_fmt->channels) ;
- ppaf_fmt->source = ENDSWAP_INT (ppaf_fmt->source) ;
-} /+* endswap_paf_fmt *+/
--*/
--- a/common/libsndfile/src/pcm.c
+++ /dev/null
@@ -1,2659 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <unistd.h>
-
-#include "config.h"
-#include "sndfile.h"
-#include "sfendian.h"
-#include "floatcast.h"
-#include "common.h"
-
-/* Important!!! Do not assume that sizeof (tribyte) == 3. Some compilers
-** (Metrowerks CodeWarrior for Mac is one) pad the struct with an extra byte.
-*/
-
-typedef struct
-{ char bytes [3] ;
-} tribyte ;
-
-static int pcm_read_sc2s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_read_uc2s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_read_bes2s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_read_les2s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_read_bet2s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_read_let2s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_read_bei2s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_read_lei2s (SF_PRIVATE *psf, short *ptr, int len) ;
-
-static int pcm_read_sc2i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_read_uc2i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_read_bes2i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_read_les2i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_read_bet2i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_read_let2i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_read_bei2i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_read_lei2i (SF_PRIVATE *psf, int *ptr, int len) ;
-
-static int pcm_read_sc2f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_read_uc2f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_read_bes2f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_read_les2f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_read_bet2f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_read_let2f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_read_bei2f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_read_lei2f (SF_PRIVATE *psf, float *ptr, int len) ;
-
-static int pcm_read_sc2d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_read_uc2d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_read_bes2d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_read_les2d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_read_bet2d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_read_let2d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_read_bei2d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_read_lei2d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-
-static int pcm_write_s2sc (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_write_s2uc (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_write_s2bes (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_write_s2les (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_write_s2bet (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_write_s2let (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_write_s2bei (SF_PRIVATE *psf, short *ptr, int len) ;
-static int pcm_write_s2lei (SF_PRIVATE *psf, short *ptr, int len) ;
-
-static int pcm_write_i2sc (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_write_i2uc (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_write_i2bes (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_write_i2les (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_write_i2bet (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_write_i2let (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_write_i2bei (SF_PRIVATE *psf, int *ptr, int len) ;
-static int pcm_write_i2lei (SF_PRIVATE *psf, int *ptr, int len) ;
-
-static int pcm_write_f2sc (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_write_f2uc (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_write_f2bes (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_write_f2les (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_write_f2bet (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_write_f2let (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_write_f2bei (SF_PRIVATE *psf, float *ptr, int len) ;
-static int pcm_write_f2lei (SF_PRIVATE *psf, float *ptr, int len) ;
-
-static int pcm_write_d2sc (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_write_d2uc (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_write_d2bes (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_write_d2les (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_write_d2bet (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_write_d2let (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_write_d2bei (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-static int pcm_write_d2lei (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static void sc2s_array (signed char *buffer, unsigned int count, short *ptr, int index) ;
-static void uc2s_array (unsigned char *buffer, unsigned int count, short *ptr, int index) ;
-static void bet2s_array (tribyte *buffer, unsigned int count, short *ptr, int index) ;
-static void let2s_array (tribyte *buffer, unsigned int count, short *ptr, int index) ;
-static void bei2s_array (int *buffer, unsigned int count, short *ptr, int index) ;
-static void lei2s_array (int *buffer, unsigned int count, short *ptr, int index) ;
-
-static void sc2i_array (signed char *buffer, unsigned int count, int *ptr, int index) ;
-static void uc2i_array (unsigned char *buffer, unsigned int count, int *ptr, int index) ;
-static void bes2i_array (short *buffer, unsigned int count, int *ptr, int index) ;
-static void les2i_array (short *buffer, unsigned int count, int *ptr, int index) ;
-static void bet2i_array (tribyte *buffer, unsigned int count, int *ptr, int index) ;
-static void let2i_array (tribyte *buffer, unsigned int count, int *ptr, int index) ;
-
-static void sc2f_array (signed char *buffer, unsigned int count, float *ptr, int index, float normfact) ;
-static void uc2f_array (unsigned char *buffer, unsigned int count, float *ptr, int index, float normfact) ;
-static void bes2f_array (short *buffer, unsigned int count, float *ptr, int index, float normfact) ;
-static void les2f_array (short *buffer, unsigned int count, float *ptr, int index, float normfact) ;
-static void bet2f_array (tribyte *buffer, unsigned int count, float *ptr, int index, float normfact) ;
-static void let2f_array (tribyte *buffer, unsigned int count, float *ptr, int index, float normfact) ;
-static void bei2f_array (int *buffer, unsigned int count, float *ptr, int index, float normfact) ;
-static void lei2f_array (int *buffer, unsigned int count, float *ptr, int index, float normfact) ;
-
-static void sc2d_array (signed char *buffer, unsigned int count, double *ptr, int index, double normfact) ;
-static void uc2d_array (unsigned char *buffer, unsigned int count, double *ptr, int index, double normfact) ;
-static void bes2d_array (short *buffer, unsigned int count, double *ptr, int index, double normfact) ;
-static void les2d_array (short *buffer, unsigned int count, double *ptr, int index, double normfact) ;
-static void bet2d_array (tribyte *buffer, unsigned int count, double *ptr, int index, double normfact) ;
-static void let2d_array (tribyte *buffer, unsigned int count, double *ptr, int index, double normfact) ;
-static void bei2d_array (int *buffer, unsigned int count, double *ptr, int index, double normfact) ;
-static void lei2d_array (int *buffer, unsigned int count, double *ptr, int index, double normfact) ;
-
-
-static void s2sc_array (short *ptr, int index, signed char *buffer, unsigned int count) ;
-static void s2uc_array (short *ptr, int index, unsigned char *buffer, unsigned int count) ;
-static void s2bet_array (short *ptr, int index, tribyte *buffer, unsigned int count) ;
-static void s2let_array (short *ptr, int index, tribyte *buffer, unsigned int count) ;
-static void s2bei_array (short *ptr, int index, int *buffer, unsigned int count) ;
-static void s2lei_array (short *ptr, int index, int *buffer, unsigned int count) ;
-
-static void i2sc_array (int *ptr, int index, signed char *buffer, unsigned int count) ;
-static void i2uc_array (int *ptr, int index, unsigned char *buffer, unsigned int count) ;
-static void i2bes_array (int *ptr, int index, short *buffer, unsigned int count) ;
-static void i2les_array (int *ptr, int index, short *buffer, unsigned int count) ;
-static void i2bet_array (int *ptr, int index, tribyte *buffer, unsigned int count) ;
-static void i2let_array (int *ptr, int index, tribyte *buffer, unsigned int count) ;
-
-static void f2sc_array (float *ptr, int index, signed char *buffer, unsigned int count, float normfact) ;
-static void f2uc_array (float *ptr, int index, unsigned char *buffer, unsigned int count, float normfact) ;
-static void f2bes_array (float *ptr, int index, short *buffer, unsigned int count, float normfact) ;
-static void f2les_array (float *ptr, int index, short *buffer, unsigned int count, float normfact) ;
-static void f2bet_array (float *ptr, int index, tribyte *buffer, unsigned int count, float normfact) ;
-static void f2let_array (float *ptr, int index, tribyte *buffer, unsigned int count, float normfact) ;
-static void f2bei_array (float *ptr, int index, int *buffer, unsigned int count, float normfact) ;
-static void f2lei_array (float *ptr, int index, int *buffer, unsigned int count, float normfact) ;
-
-static void d2sc_array (double *ptr, int index, signed char *buffer, unsigned int count, double normfact) ;
-static void d2uc_array (double *ptr, int index, unsigned char *buffer, unsigned int count, double normfact) ;
-static void d2bes_array (double *ptr, int index, short *buffer, unsigned int count, double normfact) ;
-static void d2les_array (double *ptr, int index, short *buffer, unsigned int count, double normfact) ;
-static void d2bet_array (double *ptr, int index, tribyte *buffer, unsigned int count, double normfact) ;
-static void d2let_array (double *ptr, int index, tribyte *buffer, unsigned int count, double normfact) ;
-static void d2bei_array (double *ptr, int index, int *buffer, unsigned int count, double normfact) ;
-static void d2lei_array (double *ptr, int index, int *buffer, unsigned int count, double normfact) ;
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-int
-pcm_read_init (SF_PRIVATE *psf)
-{
- if (psf->bytewidth == 1 && psf->chars == SF_CHARS_SIGNED)
- { psf->read_short = (func_short) pcm_read_sc2s ;
- psf->read_int = (func_int) pcm_read_sc2i ;
- psf->read_float = (func_float) pcm_read_sc2f ;
- psf->read_double = (func_double) pcm_read_sc2d ;
- return 0 ;
- }
- else if (psf->bytewidth == 1 && psf->chars == SF_CHARS_UNSIGNED)
- { psf->read_short = (func_short) pcm_read_uc2s ;
- psf->read_int = (func_int) pcm_read_uc2i ;
- psf->read_float = (func_float) pcm_read_uc2f ;
- psf->read_double = (func_double) pcm_read_uc2d ;
- return 0 ;
- } ;
-
- switch (psf->bytewidth * 0x10000 + psf->endian)
- { case (2 * 0x10000 + SF_ENDIAN_BIG) :
- psf->read_short = (func_short) pcm_read_bes2s ;
- psf->read_int = (func_int) pcm_read_bes2i ;
- psf->read_float = (func_float) pcm_read_bes2f ;
- psf->read_double = (func_double) pcm_read_bes2d ;
- break ;
- case (3 * 0x10000 + SF_ENDIAN_BIG) :
- psf->read_short = (func_short) pcm_read_bet2s ;
- psf->read_int = (func_int) pcm_read_bet2i ;
- psf->read_float = (func_float) pcm_read_bet2f ;
- psf->read_double = (func_double) pcm_read_bet2d ;
- break ;
- case (4 * 0x10000 + SF_ENDIAN_BIG) :
- psf->read_short = (func_short) pcm_read_bei2s ;
- psf->read_int = (func_int) pcm_read_bei2i ;
- psf->read_float = (func_float) pcm_read_bei2f ;
- psf->read_double = (func_double) pcm_read_bei2d ;
- break ;
-
- case (2 * 0x10000 + SF_ENDIAN_LITTLE) :
- psf->read_short = (func_short) pcm_read_les2s ;
- psf->read_int = (func_int) pcm_read_les2i ;
- psf->read_float = (func_float) pcm_read_les2f ;
- psf->read_double = (func_double) pcm_read_les2d ;
- break ;
- case (3 * 0x10000 + SF_ENDIAN_LITTLE) :
- psf->read_short = (func_short) pcm_read_let2s ;
- psf->read_int = (func_int) pcm_read_let2i ;
- psf->read_float = (func_float) pcm_read_let2f ;
- psf->read_double = (func_double) pcm_read_let2d ;
- break ;
- case (4 * 0x10000 + SF_ENDIAN_LITTLE) :
- psf->read_short = (func_short) pcm_read_lei2s ;
- psf->read_int = (func_int) pcm_read_lei2i ;
- psf->read_float = (func_float) pcm_read_lei2f ;
- psf->read_double = (func_double) pcm_read_lei2d ;
- break ;
- default : return SFE_UNIMPLEMENTED ;
- } ;
-
- return 0 ;
-} /* pcm_read_init */
-
-int
-pcm_write_init (SF_PRIVATE *psf)
-{
- if (psf->bytewidth == 1 && psf->chars == SF_CHARS_SIGNED)
- { psf->write_short = (func_short) pcm_write_s2sc ;
- psf->write_int = (func_int) pcm_write_i2sc ;
- psf->write_float = (func_float) pcm_write_f2sc ;
- psf->write_double = (func_double) pcm_write_d2sc ;
- return 0 ;
- }
- else if (psf->bytewidth == 1 && psf->chars == SF_CHARS_UNSIGNED)
- { psf->write_short = (func_short) pcm_write_s2uc ;
- psf->write_int = (func_int) pcm_write_i2uc ;
- psf->write_float = (func_float) pcm_write_f2uc ;
- psf->write_double = (func_double) pcm_write_d2uc ;
- return 0 ;
- } ;
-
- switch (psf->bytewidth * 0x10000 + psf->endian)
- { case (2 * 0x10000 + SF_ENDIAN_BIG) :
- psf->write_short = (func_short) pcm_write_s2bes ;
- psf->write_int = (func_int) pcm_write_i2bes ;
- psf->write_float = (func_float) pcm_write_f2bes ;
- psf->write_double = (func_double) pcm_write_d2bes ;
- break ;
-
- case (3 * 0x10000 + SF_ENDIAN_BIG) :
- psf->write_short = (func_short) pcm_write_s2bet ;
- psf->write_int = (func_int) pcm_write_i2bet ;
- psf->write_float = (func_float) pcm_write_f2bet ;
- psf->write_double = (func_double) pcm_write_d2bet ;
- break ;
-
- case (4 * 0x10000 + SF_ENDIAN_BIG) :
- psf->write_short = (func_short) pcm_write_s2bei ;
- psf->write_int = (func_int) pcm_write_i2bei ;
- psf->write_float = (func_float) pcm_write_f2bei ;
- psf->write_double = (func_double) pcm_write_d2bei ;
- break ;
-
- case (2 * 0x10000 + SF_ENDIAN_LITTLE) :
- psf->write_short = (func_short) pcm_write_s2les ;
- psf->write_int = (func_int) pcm_write_i2les ;
- psf->write_float = (func_float) pcm_write_f2les ;
- psf->write_double = (func_double) pcm_write_d2les ;
- break ;
-
- case (3 * 0x10000 + SF_ENDIAN_LITTLE) :
- psf->write_short = (func_short) pcm_write_s2let ;
- psf->write_int = (func_int) pcm_write_i2let ;
- psf->write_float = (func_float) pcm_write_f2let ;
- psf->write_double = (func_double) pcm_write_d2let ;
- break ;
-
- case (4 * 0x10000 + SF_ENDIAN_LITTLE) :
- psf->write_short = (func_short) pcm_write_s2lei ;
- psf->write_int = (func_int) pcm_write_i2lei ;
- psf->write_float = (func_float) pcm_write_f2lei ;
- psf->write_double = (func_double) pcm_write_d2lei ;
- break ;
-
- default : return SFE_UNIMPLEMENTED ;
- } ;
-
- return 0 ;
-} /* pcm_read_init */
-
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static int
-pcm_read_sc2s (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- sc2s_array ((signed char*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_sc2s */
-
-static int
-pcm_read_uc2s (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- uc2s_array ((unsigned char*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_uc2s */
-
-static int
-pcm_read_bes2s (SF_PRIVATE *psf, short *ptr, int len)
-{ int total ;
-
- total = fread (ptr, 1, len * sizeof (short), psf->file) ;
- if (CPU_IS_LITTLE_ENDIAN)
- endswap_short_array (ptr, len) ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_bes2s */
-
-static int
-pcm_read_les2s (SF_PRIVATE *psf, short *ptr, int len)
-{ int total ;
-
- total = fread (ptr, 1, len * sizeof (short), psf->file) ;
- if (CPU_IS_BIG_ENDIAN)
- endswap_short_array (ptr, len) ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_les2s */
-
-static int
-pcm_read_bet2s (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- bet2s_array ((tribyte*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_bet2s */
-
-static int
-pcm_read_let2s (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- let2s_array ((tribyte*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_let2s */
-
-static int
-pcm_read_bei2s (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- bei2s_array ((int*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_bei2s */
-
-static int
-pcm_read_lei2s (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- lei2s_array ((int*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_lei2s */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static int
-pcm_read_sc2i (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- sc2i_array ((signed char*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_sc2i */
-
-static int
-pcm_read_uc2i (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- uc2i_array ((unsigned char*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_uc2i */
-
-static int
-pcm_read_bes2i (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- bes2i_array ((short*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_bes2i */
-
-static int
-pcm_read_les2i (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- les2i_array ((short*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_les2i */
-
-static int
-pcm_read_bet2i (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- bet2i_array ((tribyte*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_bet2i */
-
-static int
-pcm_read_let2i (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- let2i_array ((tribyte*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_let2i */
-
-static int
-pcm_read_bei2i (SF_PRIVATE *psf, int *ptr, int len)
-{ int total ;
-
- total = fread (ptr, 1, len * sizeof (int), psf->file) ;
- if (CPU_IS_LITTLE_ENDIAN)
- endswap_int_array (ptr, len) ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_bei2i */
-
-static int
-pcm_read_lei2i (SF_PRIVATE *psf, int *ptr, int len)
-{ int total ;
-
- total = fread (ptr, 1, len * sizeof (int), psf->file) ;
- if (CPU_IS_BIG_ENDIAN)
- endswap_int_array (ptr, len) ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_lei2i */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static int
-pcm_read_sc2f (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x80) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- sc2f_array ((signed char*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_sc2f */
-
-static int
-pcm_read_uc2f (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x80) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- uc2f_array ((unsigned char*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_uc2f */
-
-static int
-pcm_read_bes2f (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- bes2f_array ((short*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_bes2f */
-
-static int
-pcm_read_les2f (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- les2f_array ((short*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_les2f */
-
-static int
-pcm_read_bet2f (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x800000) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- bet2f_array ((tribyte*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_bet2f */
-
-static int
-pcm_read_let2f (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x800000) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- let2f_array ((tribyte*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_let2f */
-
-static int
-pcm_read_bei2f (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x80000000) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- bei2f_array ((int*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_bei2f */
-
-static int
-pcm_read_lei2f (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x80000000) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- lei2f_array ((int*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_lei2f */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static int
-pcm_read_sc2d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x80) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- sc2d_array ((signed char*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_sc2d */
-
-static int
-pcm_read_uc2d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x80) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- uc2d_array ((unsigned char*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_uc2d */
-
-static int
-pcm_read_bes2d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x8000) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- bes2d_array ((short*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_bes2d */
-
-static int
-pcm_read_les2d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x8000) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- les2d_array ((short*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_les2d */
-
-static int
-pcm_read_bet2d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x800000) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- bet2d_array ((tribyte*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_bet2d */
-
-static int
-pcm_read_let2d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x800000) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- let2d_array ((tribyte*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_let2d */
-
-static int
-pcm_read_bei2d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x80000000) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- bei2d_array ((int*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_bei2d */
-
-static int
-pcm_read_lei2d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int readcount, thisread ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x80000000) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- lei2d_array ((int*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* pcm_read_lei2d */
-
-/*===============================================================================================
-**-----------------------------------------------------------------------------------------------
-**===============================================================================================
-*/
-
-static int
-pcm_write_s2sc (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- s2sc_array (ptr, index, (signed char*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_s2sc */
-
-static int
-pcm_write_s2uc (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- s2uc_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_s2uc */
-
-static int
-pcm_write_s2bes (SF_PRIVATE *psf, short *ptr, int len)
-{ int total ;
-
- if (CPU_IS_LITTLE_ENDIAN)
- endswap_short_array (ptr, len) ;
- total = fwrite (ptr, 1, len * sizeof (short), psf->file) ;
- if (CPU_IS_LITTLE_ENDIAN)
- endswap_short_array (ptr, len) ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_s2bes */
-
-static int
-pcm_write_s2les (SF_PRIVATE *psf, short *ptr, int len)
-{ int total ;
-
- if (CPU_IS_BIG_ENDIAN)
- endswap_short_array (ptr, len) ;
- total = fwrite (ptr, 1, len * sizeof (short), psf->file) ;
- if (CPU_IS_BIG_ENDIAN)
- endswap_short_array (ptr, len) ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_s2les */
-
-static int
-pcm_write_s2bet (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- s2bet_array (ptr, index, (tribyte*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_s2bet */
-
-static int
-pcm_write_s2let (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- s2let_array (ptr, index, (tribyte*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_s2let */
-
-static int
-pcm_write_s2bei (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- s2bei_array (ptr, index, (int*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_s2bei */
-
-static int
-pcm_write_s2lei (SF_PRIVATE *psf, short *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- s2lei_array (ptr, index, (int*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_s2lei */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static int
-pcm_write_i2sc (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- i2sc_array (ptr, index, (signed char*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_i2sc */
-
-static int
-pcm_write_i2uc (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- i2uc_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_i2uc */
-
-static int
-pcm_write_i2bes (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- i2bes_array (ptr, index, (short*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_i2bes */
-
-static int
-pcm_write_i2les (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- i2les_array (ptr, index, (short*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_i2les */
-
-static int
-pcm_write_i2bet (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- i2bet_array (ptr, index, (tribyte*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_i2bet */
-
-static int
-pcm_write_i2let (SF_PRIVATE *psf, int *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- i2let_array (ptr, index, (tribyte*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_i2les */
-
-static int
-pcm_write_i2bei (SF_PRIVATE *psf, int *ptr, int len)
-{ int total ;
-
- if (CPU_IS_LITTLE_ENDIAN)
- endswap_int_array (ptr, len) ;
- total = fwrite (ptr, 1, len * sizeof (int), psf->file) ;
- if (CPU_IS_LITTLE_ENDIAN)
- endswap_int_array (ptr, len) ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_i2bei */
-
-static int
-pcm_write_i2lei (SF_PRIVATE *psf, int *ptr, int len)
-{ int total ;
-
- if (CPU_IS_BIG_ENDIAN)
- endswap_int_array (ptr, len) ;
- total = fwrite (ptr, 1, len * sizeof (int), psf->file) ;
- if (CPU_IS_BIG_ENDIAN)
- endswap_int_array (ptr, len) ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_i2lei */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static int
-pcm_write_f2sc (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x80) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- f2sc_array (ptr, index, (signed char*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_f2sc */
-
-static int
-pcm_write_f2uc (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x80) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- f2uc_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_f2uc */
-
-static int
-pcm_write_f2bes (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x8000) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- f2bes_array (ptr, index, (short*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_f2bes */
-
-static int
-pcm_write_f2les (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x8000) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- f2les_array (ptr, index, (short*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_f2les */
-
-static int
-pcm_write_f2let (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x800000) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- f2let_array (ptr, index, (tribyte*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_f2les */
-
-static int
-pcm_write_f2bet (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x800000) : 1.0 ;
-
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- f2bet_array (ptr, index, (tribyte*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_f2bes */
-
-static int
-pcm_write_f2bei (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x80000000) : 1.0 ;
-
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- f2bei_array (ptr, index, (int*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_f2bei */
-
-static int
-pcm_write_f2lei (SF_PRIVATE *psf, float *ptr, int len)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x80000000) : 1.0 ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- f2lei_array (ptr, index, (int*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_f2lei */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static int
-pcm_write_d2sc (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? ((double) 0x80) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- d2sc_array (ptr, index, (signed char*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_d2sc */
-
-static int
-pcm_write_d2uc (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? ((double) 0x80) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- d2uc_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_d2uc */
-
-static int
-pcm_write_d2bes (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? ((double) 0x8000) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- d2bes_array (ptr, index, (short*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_d2bes */
-
-static int
-pcm_write_d2les (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? ((double) 0x8000) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- d2les_array (ptr, index, (short*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_d2les */
-
-static int
-pcm_write_d2let (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? ((double) 0x800000) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- d2let_array (ptr, index, (tribyte*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_d2les */
-
-static int
-pcm_write_d2bet (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? ((double) 0x800000) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- d2bet_array (ptr, index, (tribyte*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_d2bes */
-
-static int
-pcm_write_d2bei (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? ((double) 0x80000000) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- d2bei_array (ptr, index, (int*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_d2bei */
-
-static int
-pcm_write_d2lei (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ unsigned int writecount, thiswrite ;
- int bytecount, bufferlen ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? ((double) 0x80000000) : 1.0) ;
-
- bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- d2lei_array (ptr, index, (int*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_WRITE ;
-
- return total ;
-} /* pcm_write_d2lei */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static void
-sc2s_array (signed char *buffer, unsigned int count, short *ptr, int index)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { ptr [index] = ((short) buffer [k]) ;
- index ++ ;
- } ;
-} /* sc2s_array */
-
-static void
-uc2s_array (unsigned char *buffer, unsigned int count, short *ptr, int index)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { ptr [index] = ((((short) buffer [k]) - 128) % 256) ;
- index ++ ;
- } ;
-} /* uc2s_array */
-
-static void
-bet2s_array (tribyte *buffer, unsigned int count, short *ptr, int index)
-{ unsigned char *cptr ;
- int k ;
- int value;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = (cptr [0] << 24) + (cptr [1] << 16) + (cptr [2] << 8) ;
- value = BE2H_INT (value) ;
- ptr [index] = (short) (value >> 16) ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* bet2s_array */
-
-static void
-let2s_array (tribyte *buffer, unsigned int count, short *ptr, int index)
-{ unsigned char *cptr ;
- int k ;
- int value;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = (cptr [0] << 8) + (cptr [1] << 16) + (cptr [2] << 24) ;
- value = LE2H_INT (value) ;
- ptr [index] = (short) (value >> 16) ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* let2s_array */
-
-static void
-bei2s_array (int *buffer, unsigned int count, short *ptr, int index)
-{ int k ;
- int value ;
- for (k = 0 ; k < count ; k++)
- { value = BE2H_INT (buffer [k]) ;
- ptr [index] = (short) (value >> 16) ;
- index ++ ;
- } ;
-} /* bei2s_array */
-
-static void
-lei2s_array (int *buffer, unsigned int count, short *ptr, int index)
-{ int k ;
- int value ;
- for (k = 0 ; k < count ; k++)
- { value = LE2H_INT (buffer [k]) ;
- ptr [index] = (short) (value >> 16) ;
- index ++ ;
- } ;
-} /* lei2s_array */
-
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static void
-sc2i_array (signed char *buffer, unsigned int count, int *ptr, int index)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { ptr [index] = ((int) buffer [k]) ;
- index ++ ;
- } ;
-} /* sc2i_array */
-
-static void
-uc2i_array (unsigned char *buffer, unsigned int count, int *ptr, int index)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { ptr [index] = ((((int) buffer [k]) - 128) % 256) ;
- index ++ ;
- } ;
-} /* uc2i_array */
-
-static void
-bes2i_array (short *buffer, unsigned int count, int *ptr, int index)
-{ int k ;
- short value ;
- for (k = 0 ; k < count ; k++)
- { value = BE2H_SHORT (buffer [k]) ;
- ptr [index] = ((int) value) ;
- index ++ ;
- } ;
-} /* bes2i_array */
-
-static void
-les2i_array (short *buffer, unsigned int count, int *ptr, int index)
-{ int k ;
- short value ;
- for (k = 0 ; k < count ; k++)
- { value = LE2H_SHORT (buffer [k]) ;
- ptr [index] = ((int) value) ;
- index ++ ;
- } ;
-} /* les2i_array */
-
-static void
-bet2i_array (tribyte *buffer, unsigned int count, int *ptr, int index)
-{ unsigned char *cptr ;
- int k ;
- int value;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = (cptr [0] << 24) + (cptr [1] << 16) + (cptr [2] << 8) ;
- ptr [index] = value / 256 ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* bet2i_array */
-
-static void
-let2i_array (tribyte *buffer, unsigned int count, int *ptr, int index)
-{ unsigned char *cptr ;
- int k ;
- int value;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = (cptr [0] << 8) + (cptr [1] << 16) + (cptr [2] << 24) ;
- ptr [index] = value / 256 ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* let2i_array */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-
-static void
-sc2f_array (signed char *buffer, unsigned int count, float *ptr, int index, float normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { ptr [index] = ((float) buffer [k]) * normfact ;
- index ++ ;
- } ;
-} /* sc2f_array */
-
-static void
-uc2f_array (unsigned char *buffer, unsigned int count, float *ptr, int index, float normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { ptr [index] = ((((int) buffer [k]) - 128) % 256) * normfact ;
- index ++ ;
- } ;
-} /* uc2f_array */
-
-static void
-bes2f_array (short *buffer, unsigned int count, float *ptr, int index, float normfact)
-{ int k ;
- short value ;
- for (k = 0 ; k < count ; k++)
- { value = BE2H_SHORT (buffer [k]) ;
- ptr [index] = ((float) value) * normfact ;
- index ++ ;
- } ;
-} /* bes2f_array */
-
-static void
-les2f_array (short *buffer, unsigned int count, float *ptr, int index, float normfact)
-{ int k ;
- short value ;
- for (k = 0 ; k < count ; k++)
- { value = LE2H_SHORT (buffer [k]) ;
- ptr [index] = ((float) value) * normfact ;
- index ++ ;
- } ;
-} /* les2f_array */
-
-static void
-bet2f_array (tribyte *buffer, unsigned int count, float *ptr, int index, float normfact)
-{ unsigned char *cptr ;
- int k ;
- int value;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = (cptr [0] << 24) + (cptr [1] << 16) + (cptr [2] << 8) ;
- ptr [index] = ((float) (value / 256)) * normfact ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* bet2f_array */
-
-static void
-let2f_array (tribyte *buffer, unsigned int count, float *ptr, int index, float normfact)
-{ unsigned char *cptr ;
- int k ;
- int value;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = (cptr [0] << 8) + (cptr [1] << 16) + (cptr [2] << 24) ;
- ptr [index] = ((float) (value / 256)) * normfact ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* let2f_array */
-
-static void
-lei2f_array (int *buffer, unsigned int count, float *ptr, int index, float normfact)
-{ int k ;
- int value ;
- for (k = 0 ; k < count ; k++)
- { value = LE2H_INT (buffer [k]) ;
- ptr [index] = ((float) value) * normfact ;
- index ++ ;
- } ;
-} /* lei2f_array */
-
-static void
-bei2f_array (int *buffer, unsigned int count, float *ptr, int index, float normfact)
-{ int k ;
- int value ;
- for (k = 0 ; k < count ; k++)
- { value = BE2H_INT (buffer [k]) ;
- ptr [index] = ((float) value) * normfact ;
- index ++ ;
- } ;
-} /* bei2f_array */
-
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static void
-sc2d_array (signed char *buffer, unsigned int count, double *ptr, int index, double normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { ptr [index] = ((double) buffer [k]) * normfact ;
- index ++ ;
- } ;
-} /* sc2d_array */
-
-static void
-uc2d_array (unsigned char *buffer, unsigned int count, double *ptr, int index, double normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { ptr [index] = ((((int) buffer [k]) - 128) % 256) * normfact ;
- index ++ ;
- } ;
-} /* uc2d_array */
-
-static void
-bes2d_array (short *buffer, unsigned int count, double *ptr, int index, double normfact)
-{ int k ;
- short value ;
- for (k = 0 ; k < count ; k++)
- { value = BE2H_SHORT (buffer [k]) ;
- ptr [index] = ((double) value) * normfact ;
- index ++ ;
- } ;
-} /* bes2d_array */
-
-static void
-les2d_array (short *buffer, unsigned int count, double *ptr, int index, double normfact)
-{ int k ;
- short value ;
- for (k = 0 ; k < count ; k++)
- { value = LE2H_SHORT (buffer [k]) ;
- ptr [index] = ((double) value) * normfact ;
- index ++ ;
- } ;
-} /* les2d_array */
-
-static void
-bet2d_array (tribyte *buffer, unsigned int count, double *ptr, int index, double normfact)
-{ unsigned char *cptr ;
- int k ;
- int value;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = (cptr [0] << 24) + (cptr [1] << 16) + (cptr [2] << 8) ;
- ptr [index] = ((double) (value / 256)) * normfact ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* bet2d_array */
-
-static void
-let2d_array (tribyte *buffer, unsigned int count, double *ptr, int index, double normfact)
-{ unsigned char *cptr ;
- int k ;
- int value;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = (cptr [0] << 8) + (cptr [1] << 16) + (cptr [2] << 24) ;
- ptr [index] = ((double) (value / 256)) * normfact ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* let2d_array */
-
-static void
-bei2d_array (int *buffer, unsigned int count, double *ptr, int index, double normfact)
-{ int k ;
- int value ;
- for (k = 0 ; k < count ; k++)
- { value = BE2H_INT (buffer [k]) ;
- ptr [index] = ((double) value) * normfact ;
- index ++ ;
- } ;
-} /* bei2d_array */
-
-static void
-lei2d_array (int *buffer, unsigned int count, double *ptr, int index, double normfact)
-{ int k ;
- int value ;
- for (k = 0 ; k < count ; k++)
- { value = LE2H_INT (buffer [k]) ;
- ptr [index] = ((double) value) * normfact ;
- index ++ ;
- } ;
-} /* lei2d_array */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static void
-s2sc_array (short *ptr, int index, signed char *buffer, unsigned int count)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = (signed char) (ptr [index]) ;
- index ++ ;
- } ;
-} /* s2sc_array */
-
-static void
-s2uc_array (short *ptr, int index, unsigned char *buffer, unsigned int count)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = (unsigned char) (ptr [index] + 128) ;
- index ++ ;
- } ;
-} /* s2uc_array */
-
-static void
-s2bet_array (short *ptr, int index, tribyte *buffer, unsigned int count)
-{ unsigned char *cptr ;
- int k, value ;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = ptr [index] << 8 ;
- cptr [2] = (unsigned char) (value & 0xFF) ;
- cptr [1] = (unsigned char) ((value >> 8) & 0xFF) ;
- cptr [0] = (unsigned char) ((value >> 16) & 0xFF) ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* s2bet_array */
-
-static void
-s2let_array (short *ptr, int index, tribyte *buffer, unsigned int count)
-{ unsigned char *cptr ;
- int k, value ;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = ptr [index] << 8 ;
- cptr [0] = (unsigned char) (value & 0xFF) ;
- cptr [1] = (unsigned char) ((value >> 8) & 0xFF) ;
- cptr [2] = (unsigned char) ((value >> 16) & 0xFF) ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* s2let_array */
-
-static void
-s2bei_array (short *ptr, int index, int *buffer, unsigned int count)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = H2BE_INT (ptr [index] << 16) ;
- index ++ ;
- } ;
-} /* s2lei_array */
-
-static void
-s2lei_array (short *ptr, int index, int *buffer, unsigned int count)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = H2LE_INT (ptr [index] << 16) ;
- index ++ ;
- } ;
-} /* s2lei_array */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static void
-i2sc_array (int *ptr, int index, signed char *buffer, unsigned int count)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = (signed char) (ptr [index]) ;
- index ++ ;
- } ;
-} /* i2sc_array */
-
-static void
-i2uc_array (int *ptr, int index, unsigned char *buffer, unsigned int count)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = (unsigned char) (ptr [index] + 128) ;
- index ++ ;
- } ;
-} /* i2uc_array */
-
-static void
-i2bes_array (int *ptr, int index, short *buffer, unsigned int count)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = H2BE_SHORT (ptr [index]) ;
- index ++ ;
- } ;
-} /* i2bes_array */
-
-static void
-i2les_array (int *ptr, int index, short *buffer, unsigned int count)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = H2LE_SHORT (ptr [index]) ;
- index ++ ;
- } ;
-} /* i2les_array */
-
-static void
-i2bet_array (int *ptr, int index, tribyte *buffer, unsigned int count)
-{ unsigned char *cptr ;
- int k, value ;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = ptr [index] ;
- cptr [0] = (unsigned char) ((value & 0xFF0000) >> 16) ;
- cptr [1] = (unsigned char) ((value >> 8) & 0xFF) ;
- cptr [2] = (unsigned char) (value & 0xFF) ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* i2bet_array */
-
-static void
-i2let_array (int *ptr, int index, tribyte *buffer, unsigned int count)
-{ unsigned char *cptr ;
- int k, value ;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = ptr [index] ;
- cptr [0] = (unsigned char) (value & 0xFF) ;
- cptr [1] = (unsigned char) ((value >> 8) & 0xFF) ;
- cptr [2] = (unsigned char) ((value >> 16) & 0xFF) ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* i2let_array */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static void
-f2sc_array (float *ptr, int index, signed char *buffer, unsigned int count, float normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = FLOAT_TO_SHORT (ptr [index] * normfact) ;
- index ++ ;
- } ;
-} /* f2sc_array */
-
-static void
-f2uc_array (float *ptr, int index, unsigned char *buffer, unsigned int count, float normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = FLOAT_TO_SHORT (ptr [index] * normfact) + 128 ;
- index ++ ;
- } ;
-} /* f2uc_array */
-
-static void
-f2bes_array (float *ptr, int index, short *buffer, unsigned int count, float normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = H2BE_SHORT (FLOAT_TO_SHORT (ptr [index] * normfact)) ;
- index ++ ;
- } ;
-} /* f2bes_array */
-
-static void
-f2les_array (float *ptr, int index, short *buffer, unsigned int count, float normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = H2LE_SHORT (FLOAT_TO_SHORT (ptr [index] * normfact)) ;
- index ++ ;
- } ;
-} /* f2les_array */
-
-static void
-f2bet_array (float *ptr, int index, tribyte *buffer, unsigned int count, float normfact)
-{ unsigned char *cptr ;
- int k, value ;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = FLOAT_TO_INT (ptr [index] * normfact) ;
- cptr [2] = (unsigned char) (value & 0xFF) ;
- cptr [1] = (unsigned char) ((value >> 8) & 0xFF) ;
- cptr [0] = (unsigned char) ((value >> 16) & 0xFF) ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* f2bet_array */
-
-static void
-f2let_array (float *ptr, int index, tribyte *buffer, unsigned int count, float normfact)
-{ unsigned char *cptr ;
- int k, value ;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = FLOAT_TO_INT (ptr [index] * normfact) ;
- cptr [0] = (unsigned char) (value & 0xFF) ;
- cptr [1] = (unsigned char) ((value >> 8) & 0xFF) ;
- cptr [2] = (unsigned char) ((value >> 16) & 0xFF) ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* f2let_array */
-
-static void
-f2bei_array (float *ptr, int index, int *buffer, unsigned int count, float normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = H2BE_INT (FLOAT_TO_INT (ptr [index] * normfact)) ;
- index ++ ;
- } ;
-} /* f2bei_array */
-
-static
-void f2lei_array (float *ptr, int index, int *buffer, unsigned int count, float normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = H2LE_INT (FLOAT_TO_INT (ptr [index] * normfact)) ;
- index ++ ;
- } ;
-} /* f2lei_array */
-
-/*-----------------------------------------------------------------------------------------------
-*/
-
-static void
-d2sc_array (double *ptr, int index, signed char *buffer, unsigned int count, double normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = DOUBLE_TO_SHORT (ptr [index] * normfact) ;
- index ++ ;
- } ;
-} /* d2sc_array */
-
-static void
-d2uc_array (double *ptr, int index, unsigned char *buffer, unsigned int count, double normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = DOUBLE_TO_SHORT (ptr [index] * normfact) + 128 ;
- index ++ ;
- } ;
-} /* d2uc_array */
-
-static void
-d2bes_array (double *ptr, int index, short *buffer, unsigned int count, double normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = H2BE_SHORT (DOUBLE_TO_SHORT (ptr [index] * normfact)) ;
- index ++ ;
- } ;
-} /* d2bes_array */
-
-static void
-d2les_array (double *ptr, int index, short *buffer, unsigned int count, double normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = H2LE_SHORT (DOUBLE_TO_SHORT (ptr [index] * normfact)) ;
- index ++ ;
- } ;
-} /* d2les_array */
-
-static void
-d2bet_array (double *ptr, int index, tribyte *buffer, unsigned int count, double normfact)
-{ unsigned char *cptr ;
- int k, value ;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = DOUBLE_TO_INT (ptr [index] * normfact) ;
- cptr [2] = (unsigned char) (value & 0xFF) ;
- cptr [1] = (unsigned char) ((value >> 8) & 0xFF) ;
- cptr [0] = (unsigned char) ((value >> 16) & 0xFF) ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* d2bet_array */
-
-static void
-d2let_array (double *ptr, int index, tribyte *buffer, unsigned int count, double normfact)
-{ unsigned char *cptr ;
- int k, value ;
- cptr = (unsigned char*) buffer ;
- for (k = 0 ; k < count ; k++)
- { value = DOUBLE_TO_INT (ptr [index] * normfact) ;
- cptr [0] = (unsigned char) (value & 0xFF) ;
- cptr [1] = (unsigned char) ((value >> 8) & 0xFF) ;
- cptr [2] = (unsigned char) ((value >> 16) & 0xFF) ;
- index ++ ;
- cptr += 3 ;
- } ;
-} /* d2let_array */
-
-static void
-d2bei_array (double *ptr, int index, int *buffer, unsigned int count, double normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = H2BE_INT (DOUBLE_TO_INT (ptr [index] * normfact)) ;
- index ++ ;
- } ;
-} /* d2bei_array */
-
-static
-void d2lei_array (double *ptr, int index, int *buffer, unsigned int count, double normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { buffer [k] = H2LE_INT (DOUBLE_TO_INT (ptr [index] * normfact)) ;
- index ++ ;
- } ;
-} /* d2lei_array */
-
--- a/common/libsndfile/src/raw.c
+++ /dev/null
@@ -1,176 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "common.h"
-
-static long raw_seek (SF_PRIVATE *psf, long offset, int whence) ;
-
-/*------------------------------------------------------------------------------
-** Public functions.
-*/
-
-int raw_open_read (SF_PRIVATE *psf)
-{ unsigned int subformat ;
- int error ;
-
- if(! psf->sf.channels || ! psf->sf.pcmbitwidth)
- return SFE_RAW_READ_BAD_SPEC ;
-
- subformat = psf->sf.format & SF_FORMAT_SUBMASK ;
-
- psf->endian = 0 ;
-
- if (subformat == SF_FORMAT_PCM_BE)
- psf->endian = SF_ENDIAN_BIG ;
- else if (subformat == SF_FORMAT_PCM_LE)
- psf->endian = SF_ENDIAN_LITTLE ;
- else if (subformat == SF_FORMAT_PCM_S8)
- psf->chars = SF_CHARS_SIGNED ;
- else if (subformat == SF_FORMAT_PCM_U8)
- psf->chars = SF_CHARS_UNSIGNED ;
- else
- return SFE_RAW_READ_BAD_SPEC ;
-
- psf->seek_func = (func_seek) raw_seek ;
-
- psf->sf.seekable = SF_TRUE ;
- psf->sf.sections = 1 ;
-
- psf->dataoffset = 0 ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
-
- if ((error = pcm_read_init (psf)))
- return error ;
-
- if (psf->blockwidth)
- psf->sf.samples = psf->filelength / psf->blockwidth ;
-
- psf->datalength = psf->filelength - psf->dataoffset ;
-
- psf->current = 0 ;
-
- return 0 ;
-} /* raw_open_read */
-
-/*------------------------------------------------------------------------------
-*/
-
-int raw_open_write (SF_PRIVATE *psf)
-{ unsigned int subformat, big_endian_file ;
- int error ;
-
- subformat = psf->sf.format & SF_FORMAT_SUBMASK ;
-
- if (subformat == SF_FORMAT_PCM_BE)
- big_endian_file = 1 ;
- else if (subformat == SF_FORMAT_PCM_LE)
- big_endian_file = 0 ;
- else if (subformat == SF_FORMAT_PCM_S8 || subformat == SF_FORMAT_PCM_U8)
- big_endian_file = 0 ;
- else
- return SFE_BAD_OPEN_FORMAT ;
-
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
-
- psf->endian = big_endian_file ? SF_ENDIAN_BIG : SF_ENDIAN_LITTLE ;
- psf->sf.seekable = SF_TRUE ;
- psf->blockwidth = psf->bytewidth * psf->sf.channels ;
- psf->dataoffset = 0 ;
- psf->datalength = psf->blockwidth * psf->sf.samples ;
- psf->filelength = psf->datalength ;
- psf->error = 0 ;
-
- if (subformat == SF_FORMAT_PCM_S8)
- psf->chars = SF_CHARS_SIGNED ;
- else if (subformat == SF_FORMAT_PCM_U8)
- psf->chars = SF_CHARS_UNSIGNED ;
-
- if ((error = pcm_write_init (psf)))
- return error ;
-
- return 0 ;
-} /* raw_open_write */
-
-/*------------------------------------------------------------------------------
-*/
-
-static long
-raw_seek (SF_PRIVATE *psf, long offset, int whence)
-{ long position ;
-
- if (! (psf->blockwidth && psf->datalength))
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- position = ftell (psf->file) ;
- offset = offset * psf->blockwidth ;
-
- switch (whence)
- { case SEEK_SET :
- if (offset < 0 || offset > psf->datalength)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- break ;
-
- case SEEK_CUR :
- if (psf->current + offset < 0 || psf->current + offset > psf->datalength)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- offset = position + offset ;
- break ;
-
- case SEEK_END :
- if (offset > 0 || psf->datalength + offset < 0)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- offset = psf->datalength + offset ;
- break ;
-
- default :
- psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- if (psf->mode == SF_MODE_READ)
- fseek (psf->file, offset, SEEK_SET) ;
- else
- { /* What to do about write??? */
- psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- psf->current = offset / psf->blockwidth ;
-
- return psf->current ;
-} /* raw_seek */
-
--- a/common/libsndfile/src/samplitude.c
+++ /dev/null
@@ -1,125 +1,0 @@
-/*
-** Copyright (C) 2000-2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdarg.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "common.h"
-
-
-/*------------------------------------------------------------------------------
- * Macros to handle big/little endian issues.
-*/
-
-#if (CPU_IS_LITTLE_ENDIAN == 1)
-# define MAKE_MARKER(a,b,c,d) ((a)|((b)<<8)|((c)<<16)|((d)<<24))
-#elif (CPU_IS_BIG_ENDIAN == 1)
-# define MAKE_MARKER(a,b,c,d) (((a)<<24)|((b)<<16)|((c)<<8)|(d))
-#else
-# error "Cannot determine endian-ness of processor."
-#endif
-
-#define SEKD_MARKER (MAKE_MARKER ('S', 'E', 'K', 'D'))
-#define SAMR_MARKER (MAKE_MARKER ('S', 'A', 'M', 'R'))
-
-/*------------------------------------------------------------------------------
- * Typedefs for file chunks.
-*/
-
-typedef struct
-{ unsigned int sekd, samr ;
- int unknown0 ;
- int bitspersample ;
- int unknown1, unknown2 ;
- int poss_len ;
- int samplerate ;
- int channels ;
-} RAP_CHUNK ;
-
-
-/*------------------------------------------------------------------------------
- * Private static functions.
-*/
-
-static int smpltd_close (SF_PRIVATE *psf) ;
-
-
-/*------------------------------------------------------------------------------
-** Public functions.
-*/
-
-int smpltd_open_read (SF_PRIVATE *psf)
-{ RAP_CHUNK rap ;
-
- psf_binheader_readf (psf, "mm", &(rap.sekd), &(rap.samr)) ;
- if (rap.sekd != SEKD_MARKER)
- return SFE_SMTD_NO_SEKD ;
- if (rap.samr != SAMR_MARKER)
- return SFE_SMTD_NO_SAMR ;
-
-/*-
- printf ("Here we are!\n") ;
-
- printf ("unknown0 : %d\n", rap.unknown0) ;
- printf ("bits per sample : %d\n", rap.bitspersample) ;
- printf ("unknown1 : %d\n", rap.unknown1) ;
- printf ("unknown2 : %d\n", rap.unknown2) ;
- printf ("poss_len : %d\n", rap.poss_len) ;
- printf ("sample rate : %d\n", rap.samplerate) ;
- printf ("channels : %d\n", rap.channels) ;
-
--*/
- psf->close = (func_close) smpltd_close ;
-
- return 0 ;
-} /* smpltd_open_read */
-
-int
-smpltd_open_write (SF_PRIVATE *psf)
-{
-
- return 0 ;
-} /* smpltd_open_write */
-
-/*------------------------------------------------------------------------------
-*/
-
-static int
-smpltd_close (SF_PRIVATE *psf)
-{
- if (psf->mode == SF_MODE_WRITE)
- { /* Now we know for certain the length of the file we can re-write
- ** correct values for the FORM, 8SVX and BODY chunks.
- */
-
- } ;
-
- if (psf->fdata)
- free (psf->fdata) ;
- psf->fdata = NULL ;
-
- return 0 ;
-} /* smpltd_close */
-
--- a/common/libsndfile/src/sfendian.h
+++ /dev/null
@@ -1,86 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-#include "config.h"
-
-#if HAVE_ENDIAN_H
- /* This is the best way to do it. Unfortunately Sparc Solaris (and
- ** possibly others) don't have <endian.h>
- */
- #include <endian.h>
- #if (__BYTE_ORDER == __LITTLE_ENDIAN)
- #define CPU_IS_LITTLE_ENDIAN 1
- #define CPU_IS_BIG_ENDIAN 0
- #elif (__BYTE_ORDER == __BIG_ENDIAN)
- #define CPU_IS_LITTLE_ENDIAN 0
- #define CPU_IS_BIG_ENDIAN 1
- #else
- #error "A bit confused about endian-ness! Have <endian.h> but not __BYTEORDER."
- #endif
-#else
- /* If we don't have <endian.h> use the guess based on target processor
- ** from the autoconf process.
- */
- #if GUESS_LITTLE_ENDIAN
- #define CPU_IS_LITTLE_ENDIAN 1
- #define CPU_IS_BIG_ENDIAN 0
- #elif GUESS_BIG_ENDIAN
- #define CPU_IS_LITTLE_ENDIAN 0
- #define CPU_IS_BIG_ENDIAN 1
- #else
- #error "Endian guess seems incorrect."
- #endif
-#endif
-
-#define ENDSWAP_SHORT(x) ((((x)>>8)&0xFF)|(((x)&0xFF)<<8))
-#define ENDSWAP_INT(x) ((((x)>>24)&0xFF)|(((x)>>8)&0xFF00)|(((x)&0xFF00)<<8)|(((x)&0xFF)<<24))
-
-#if (CPU_IS_LITTLE_ENDIAN == 1)
- #define H2LE_SHORT(x) (x)
- #define H2LE_INT(x) (x)
- #define LE2H_SHORT(x) (x)
- #define LE2H_INT(x) (x)
-
- #define BE2H_INT(x) ENDSWAP_INT(x)
- #define BE2H_SHORT(x) ENDSWAP_SHORT(x)
- #define H2BE_INT(x) ENDSWAP_INT(x)
- #define H2BE_SHORT(x) ENDSWAP_SHORT(x)
-
-#elif (CPU_IS_BIG_ENDIAN == 1)
- #define H2LE_SHORT(x) ENDSWAP_SHORT(x)
- #define H2LE_INT(x) ENDSWAP_INT(x)
- #define LE2H_SHORT(x) ENDSWAP_SHORT(x)
- #define LE2H_INT(x) ENDSWAP_INT(x)
-
- #define BE2H_INT(x) (x)
- #define BE2H_SHORT(x) (x)
- #define H2BE_INT(x) (x)
- #define H2BE_SHORT(x) (x)
-
-#else
- #error "Cannot determine endian-ness of processor."
-#endif
-
-#if (CPU_IS_LITTLE_ENDIAN == 1)
-# define MAKE_MARKER(a,b,c,d) ((a)|((b)<<8)|((c)<<16)|((d)<<24))
-#elif (CPU_IS_BIG_ENDIAN == 1)
-# define MAKE_MARKER(a,b,c,d) (((a)<<24)|((b)<<16)|((c)<<8)|(d))
-#else
-# error "Cannot determine endian-ness of processor."
-#endif
-
--- a/common/libsndfile/src/sndfile.c
+++ /dev/null
@@ -1,1635 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <ctype.h>
-#include <math.h>
-
-/* For the Metrowerks CodeWarrior Pro Compiler (mainly MacOS) */
-
-#if (defined (__MWERKS__))
-#include <stat.h>
-#else
-#include <sys/stat.h>
-#endif
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "common.h"
-
-#define SNDFILE_MAGICK 0x1234C0DE
-
-typedef struct
-{ int error ;
- char *str ;
-} ErrorStruct ;
-
-static
-ErrorStruct SndfileErrors [] =
-{
- { SFE_NO_ERROR , "No Error." },
- { SFE_BAD_FILE , "File does not exist or is not a regular file (possibly a pipe?)." },
- { SFE_OPEN_FAILED , "Could not open file." },
- { SFE_BAD_OPEN_FORMAT , "Bad format specified for file open." },
- { SFE_BAD_SNDFILE_PTR , "Not a valid SNDFILE* pointer." },
- { SFE_BAD_SF_INFO_PTR , "NULL SF_INFO pointer passed to libsndfile." },
- { SFE_BAD_INT_FD , "Bad file descriptor." },
- { SFE_BAD_INT_PTR , "Internal error, Bad pointer." },
- { SFE_MALLOC_FAILED , "Internal malloc () failed." },
- { SFE_BAD_SEEK , "Internal fseek() failed." },
- { SFE_NOT_SEEKABLE , "Seek attempted on unseekable file type." },
- { SFE_UNIMPLEMENTED , "File contains data in an unimplemented format." },
- { SFE_BAD_READ_ALIGN , "Attempt to read a non-integer number of channels." },
- { SFE_BAD_WRITE_ALIGN , "Attempt to write a non-integer number of channels." },
- { SFE_UNKNOWN_FORMAT , "File contains data in an unknown format." },
- { SFE_NOT_READMODE , "Read attempted on file currently open for write." },
- { SFE_NOT_WRITEMODE , "Write attempted on file currently open for read." },
- { SFE_BAD_MODE_RW , "This file format does not support read/write mode." },
- { SFE_BAD_SF_INFO , "Internal error : SF_INFO struct incomplete." },
-
- { SFE_SHORT_READ , "Short read error." },
- { SFE_SHORT_WRITE , "Short write error." },
- { SFE_INTERNAL , "Unspecified internal error." },
- { SFE_BAD_CONTROL_CMD , "Bad command passed to function sf_command()." },
-
- { SFE_WAV_NO_RIFF , "Error in WAV file. No 'RIFF' chunk marker." },
- { SFE_WAV_NO_WAVE , "Error in WAV file. No 'WAVE' chunk marker." },
- { SFE_WAV_NO_FMT , "Error in WAV file. No 'fmt ' chunk marker." },
- { SFE_WAV_FMT_SHORT , "Error in WAV file. Short 'fmt ' chunk." },
-
- { SFE_WAV_FMT_TOO_BIG , "Error in WAV file. 'fmt ' chunk too large." },
- { SFE_WAV_BAD_FACT , "Error in WAV file. 'fact' chunk out of place." },
- { SFE_WAV_BAD_PEAK , "Error in WAV file. Bad 'PEAK' chunk." },
- { SFE_WAV_PEAK_B4_FMT , "Error in WAV file. 'PEAK' chunk found before 'fmt ' chunk." },
-
- { SFE_WAV_BAD_FORMAT , "Error in WAV file. Errors in 'fmt ' chunk." },
- { SFE_WAV_BAD_BLOCKALIGN , "Error in WAV file. Block alignment in 'fmt ' chunk is incorrect." },
- { SFE_WAV_NO_DATA , "Error in WAV file. No 'data' chunk marker." },
- { SFE_WAV_UNKNOWN_CHUNK , "Error in WAV file. File contains an unknown chunk marker." },
-
- { SFE_WAV_ADPCM_NOT4BIT , "Error in ADPCM WAV file. Invalid bit width." },
- { SFE_WAV_ADPCM_CHANNELS , "Error in ADPCM WAV file. Invalid number of channels." },
- { SFE_WAV_GSM610_FORMAT , "Error in GSM610 WAV file. Invalid format chunk." },
-
- { SFE_AIFF_NO_FORM , "Error in AIFF file, bad 'FORM' marker." },
- { SFE_AIFF_AIFF_NO_FORM , "Error in AIFF file, 'AIFF' marker without 'FORM'." },
- { SFE_AIFF_COMM_NO_FORM , "Error in AIFF file, 'COMM' marker without 'FORM'." },
- { SFE_AIFF_SSND_NO_COMM , "Error in AIFF file, 'SSND' marker without 'COMM'." },
- { SFE_AIFF_UNKNOWN_CHUNK , "Error in AIFF file, unknown chunk." },
- { SFE_AIFF_COMM_CHUNK_SIZE, "Error in AIFF file, bad 'COMM' chunk size." },
- { SFE_AIFF_BAD_COMM_CHUNK , "Error in AIFF file, bad 'COMM' chunk." },
- { SFE_AIFF_PEAK_B4_COMM , "Error in AIFF file. 'PEAK' chunk found before 'COMM' chunk." },
- { SFE_AIFF_BAD_PEAK , "Error in AIFF file. Bad 'PEAK' chunk." },
- { SFE_AIFF_NO_SSND , "Error in AIFF file, bad 'SSND' chunk." },
- { SFE_AIFF_NO_DATA , "Error in AIFF file, no sound data." },
-
- { SFE_AU_UNKNOWN_FORMAT , "Error in AU file, unknown format." },
- { SFE_AU_NO_DOTSND , "Error in AU file, missing '.snd' or 'dns.' marker." },
-
- { SFE_RAW_READ_BAD_SPEC , "Error while opening RAW file for read. Must specify format, pcmbitwidth and channels." },
- { SFE_RAW_BAD_BITWIDTH , "Error. RAW file bitwidth must be a multiple of 8." },
-
- { SFE_PAF_NO_MARKER , "Error in PAF file, no marker." },
- { SFE_PAF_VERSION , "Error in PAF file, bad version." },
- { SFE_PAF_UNKNOWN_FORMAT , "Error in PAF file, unknown format." },
- { SFE_PAF_SHORT_HEADER , "Error in PAF file. File shorter than minimal header." },
-
- { SFE_SVX_NO_FORM , "Error in 8SVX / 16SV file, no 'FORM' marker." },
- { SFE_SVX_NO_BODY , "Error in 8SVX / 16SV file, no 'BODY' marker." },
- { SFE_SVX_NO_DATA , "Error in 8SVX / 16SV file, no sound data." },
- { SFE_SVX_BAD_COMP , "Error in 8SVX / 16SV file, unsupported compression format." },
-
- { SFE_NIST_BAD_HEADER , "Error in NIST file, bad header." },
- { SFE_NIST_BAD_ENCODING , "Error in NIST file, unsupported compression format." },
-
- { SFE_SMTD_NO_SEKD , "Error in Samplitude file, no 'SEKD' marker." },
- { SFE_SMTD_NO_SAMR , "Error in Samplitude file, no 'SAMR' marker." },
-
- { SFE_VOC_NO_CREATIVE , "Error in VOC file, no 'Creative Voice File' marker." },
- { SFE_VOC_BAD_VERSION , "Error in VOC file, bad version number." },
- { SFE_VOC_BAD_MARKER , "Error in VOC file, bad marker in file." },
-
- { SFE_IRCAM_NO_MARKER , "Error in IRCAM file, bad IRCAM marker." },
- { SFE_IRCAM_BAD_CHANNELS , "Error in IRCAM file, bad channel count." },
- { SFE_IRCAM_UNKNOWN_FORMAT, "Error in IRCAM file, unknow encoding format." },
-
- { SFE_MAX_ERROR , "Maximum error number." }
-} ;
-
-/*------------------------------------------------------------------------------
-*/
-
-static int does_extension_match (const char *ext, const char *test) ;
-static int is_au_snd_file (const char *filename) ;
-static int guess_file_type (SF_PRIVATE *psf, const char *filename) ;
-static int validate_sfinfo (SF_INFO *sfinfo) ;
-static int validate_psf (SF_PRIVATE *psf) ;
-static void save_header_info (SF_PRIVATE *psf) ;
-static void copy_filename (SF_PRIVATE *psf, const char *path) ;
-
-static int hash_command (const char *cmd) ;
-
-/*------------------------------------------------------------------------------
-** Private (static) variables.
-*/
-
-static int sf_errno = 0 ;
-static char sf_logbuffer [SF_BUFFER_LEN] = { 0 } ;
-
-/*------------------------------------------------------------------------------
-*/
-
-#define VALIDATE_SNDFILE_AND_ASSIGN_PSF(a,b) \
- { if (! (a)) \
- return SFE_BAD_SNDFILE_PTR ; \
- (b) = (SF_PRIVATE*) (a) ; \
- if (!((b)->file)) \
- return SFE_BAD_INT_FD ; \
- if ((b)->Magick != SNDFILE_MAGICK) \
- return SFE_BAD_SNDFILE_PTR ; \
- (b)->error = 0 ; \
- }
-
-/*------------------------------------------------------------------------------
-** Public functions.
-*/
-
-SNDFILE*
-sf_open_read (const char *path, SF_INFO *sfinfo)
-{ SF_PRIVATE *psf ;
- int filetype ;
-
- if (! sfinfo)
- { sf_errno = SFE_BAD_SF_INFO_PTR ;
- return NULL ;
- } ;
-
- sf_errno = 0 ;
- sf_logbuffer [0] = 0 ;
-
- psf = malloc (sizeof (SF_PRIVATE)) ;
- if (! psf)
- { sf_errno = SFE_MALLOC_FAILED ;
- return NULL ;
- } ;
-
- memset (psf, 0, sizeof (SF_PRIVATE)) ;
- psf->Magick = SNDFILE_MAGICK ;
-
- if (! strcmp (path, "-"))
- { psf->file = stdin ;
- psf->sf.seekable = SF_FALSE ;
- }
- else
- { /* fopen with 'b' means binary file mode for Win32 systems. */
- if (! (psf->file = fopen (path, "rb")))
- { sf_errno = SFE_OPEN_FAILED ;
- return NULL ;
- } ;
- psf->sf.seekable = SF_TRUE ;
- } ;
-
- if (! psf->file)
- { sf_errno = SFE_OPEN_FAILED ;
- sf_close (psf) ;
- return NULL ;
- } ;
-
- psf->mode = SF_MODE_READ ;
-
- psf_log_printf (psf, "%s\n", path) ;
- if (psf->sf.seekable)
- { fseek (psf->file, 0, SEEK_END) ;
- psf->filelength = ftell (psf->file) ;
- fseek (psf->file, 0, SEEK_SET) ;
- psf_log_printf (psf, "size : %d\n", psf->filelength) ;
- }
- else
- psf->filelength = 0x7FFF0000 ; /* Stupidly big number. */
-
- copy_filename (psf, path) ;
-
- if ((sfinfo->format & SF_FORMAT_TYPEMASK) == SF_FORMAT_RAW && sfinfo->channels && sfinfo->pcmbitwidth)
- filetype = SF_FORMAT_RAW ;
- else
- { memset (sfinfo, 0, sizeof (SF_INFO)) ;
- filetype = guess_file_type (psf, psf->filename) ;
- } ;
-
- switch (filetype)
- { case SF_FORMAT_WAV :
- sf_errno = wav_open_read (psf) ;
- break ;
-
- case SF_FORMAT_AIFF :
- sf_errno = aiff_open_read (psf) ;
- break ;
-
- case SF_FORMAT_AU :
- sf_errno = au_open_read (psf) ;
- break ;
-
- case SF_FORMAT_RAW :
- /* For RAW files, need the sfinfo struct data to
- ** figure out the bitwidth, endian-ness etc.
- */
- memcpy (&(psf->sf), sfinfo, sizeof (SF_INFO)) ;
- sf_errno = raw_open_read (psf) ;
- break ;
-
- case SF_FORMAT_PAF :
- sf_errno = paf_open_read (psf) ;
- break ;
-
- case SF_FORMAT_SVX :
- sf_errno = svx_open_read (psf) ;
- break ;
-
- case SF_FORMAT_NIST :
- sf_errno = nist_open_read (psf) ;
- break ;
-
- case SF_FORMAT_SMPLTD :
- sf_errno = smpltd_open_read (psf) ;
- break ;
-
- case SF_FORMAT_VOC :
- sf_errno = voc_open_read (psf) ;
- break ;
-
- case SF_FORMAT_IRCAM :
- sf_errno = ircam_open_read (psf) ;
- break ;
-
- default :
- sf_errno = SFE_UNKNOWN_FORMAT ;
- } ;
-
- /* Both the file format and the file must be seekable to enable sf_seek(). */
- /*-psf->sf.seekable = (psf->sf.seekable && seekable) ? SF_TRUE : SF_FALSE ;-*/
-
- if (sf_errno)
- { save_header_info (psf) ;
- sf_close (psf) ;
- return NULL ;
- } ;
-
- if (! validate_sfinfo (&(psf->sf)))
- { psf_log_SF_INFO (psf) ;
- save_header_info (psf) ;
- sf_errno = SFE_BAD_SF_INFO ;
- sf_close (psf) ;
- return NULL ;
- } ;
-
- if (! validate_psf (psf))
- { printf ("validate_psf\n") ;
- save_header_info (psf) ;
- sf_errno = SFE_INTERNAL ;
- sf_close (psf) ;
- return NULL ;
- } ;
-
- memcpy (sfinfo, &(psf->sf), sizeof (SF_INFO)) ;
-
- return (SNDFILE*) psf ;
-} /* sf_open_read */
-
-/*------------------------------------------------------------------------------
-*/
-
-SNDFILE*
-sf_open_write (const char *path, const SF_INFO *sfinfo)
-{ SF_PRIVATE *psf ;
-
- if (! sfinfo)
- { sf_errno = SFE_BAD_SF_INFO_PTR ;
- return NULL ;
- } ;
-
- if (! sf_format_check (sfinfo))
- { sf_errno = SFE_BAD_OPEN_FORMAT ;
- return NULL ;
- } ;
-
- sf_errno = 0 ;
- sf_logbuffer [0] = 0 ;
-
- psf = malloc (sizeof (SF_PRIVATE)) ;
- if (! psf)
- { sf_errno = SFE_MALLOC_FAILED ;
- return NULL ;
- } ;
-
- memset (psf, 0, sizeof (SF_PRIVATE)) ;
- memcpy (&(psf->sf), sfinfo, sizeof (SF_INFO)) ;
-
- psf->Magick = SNDFILE_MAGICK ;
-
- if (! strcmp (path, "-"))
- { psf->file = stdout ;
- psf->sf.seekable = SF_FALSE ;
- }
- else
- { /* fopen with 'b' means binary file mode for Win32 systems. */
- if (! (psf->file = fopen (path, "wb")))
- { sf_errno = SFE_OPEN_FAILED ;
- sf_close (psf) ;
- return NULL ;
- } ;
- } ;
-
- psf->mode = SF_MODE_WRITE ;
-
- psf->filelength = ftell (psf->file) ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- copy_filename (psf, path) ;
-
- switch (sfinfo->format & SF_FORMAT_TYPEMASK)
- { case SF_FORMAT_WAV :
- if ((sf_errno = wav_open_write (psf)))
- { sf_close (psf) ;
- return NULL ;
- } ;
- break ;
-
- case SF_FORMAT_AIFF :
- if ((sf_errno = aiff_open_write (psf)))
- { sf_close (psf) ;
- return NULL ;
- } ;
- break ;
-
- case SF_FORMAT_AU :
- case SF_FORMAT_AULE :
- if ((sf_errno = au_open_write (psf)))
- { sf_close (psf) ;
- return NULL ;
- } ;
- break ;
-
- case SF_FORMAT_RAW :
- if ((sf_errno = raw_open_write (psf)))
- { sf_close (psf) ;
- return NULL ;
- } ;
- break ;
-
- case SF_FORMAT_PAF :
- if ((sf_errno = paf_open_write (psf)))
- { sf_close (psf) ;
- return NULL ;
- } ;
- break ;
-
- case SF_FORMAT_SVX :
- if ((sf_errno = svx_open_write (psf)))
- { sf_close (psf) ;
- return NULL ;
- } ;
- break ;
-
- case SF_FORMAT_NIST :
- if ((sf_errno = nist_open_write (psf)))
- { sf_close (psf) ;
- return NULL ;
- } ;
- break ;
-
- case SF_FORMAT_IRCAM :
- if ((sf_errno = ircam_open_write (psf)))
- { sf_close (psf) ;
- return NULL ;
- } ;
- break ;
-
- default :
- sf_errno = SFE_UNKNOWN_FORMAT ;
- sf_close (psf) ;
- return NULL ;
- } ;
-
- return (SNDFILE*) psf ;
-} /* sf_open_write */
-
-/*------------------------------------------------------------------------------
-*/
-
-int
-sf_perror (SNDFILE *sndfile)
-{ SF_PRIVATE *psf ;
- int k, errnum ;
-
- if (! sndfile)
- { errnum = sf_errno ;
- }
- else
- { VALIDATE_SNDFILE_AND_ASSIGN_PSF(sndfile,psf) ;
- errnum = psf->error ;
- } ;
-
- errnum = abs (errnum) ;
- errnum = (errnum >= SFE_MAX_ERROR || errnum < 0) ? 0 : errnum ;
-
- for (k = 0 ; SndfileErrors[k].str ; k++)
- if (errnum == SndfileErrors[k].error)
- { fprintf (stderr, "%s\n", SndfileErrors[k].str) ;
- return SFE_NO_ERROR ;
- } ;
-
- fprintf (stderr, "No error string for error number %d.\n", errnum) ;
- return SFE_NO_ERROR ;
-} /* sf_perror */
-
-
-/*------------------------------------------------------------------------------
-*/
-
-int
-sf_error_str (SNDFILE *sndfile, char *str, size_t maxlen)
-{ SF_PRIVATE *psf ;
- int errnum, k ;
-
- if (! sndfile)
- { errnum = sf_errno ;
- }
- else
- { VALIDATE_SNDFILE_AND_ASSIGN_PSF(sndfile,psf) ;
- errnum = psf->error ;
- } ;
-
- errnum = abs (errnum) ;
- errnum = (errnum >= SFE_MAX_ERROR || errnum < 0) ? 0 : errnum ;
-
- for (k = 0 ; SndfileErrors[k].str ; k++)
- if (errnum == SndfileErrors[k].error)
- { if (str)
- { strncpy (str, SndfileErrors [errnum].str, maxlen) ;
- str [maxlen-1] = 0 ;
- } ;
- return SFE_NO_ERROR ;
- } ;
-
- if (str)
- { strncpy (str, "No error defined for this error number. This is a bug in libsndfile.", maxlen) ;
- str [maxlen-1] = 0 ;
- } ;
-
- return SFE_NO_ERROR ;
-} /* sf_error_str */
-
-/*------------------------------------------------------------------------------
-*/
-
-int
-sf_error_number (int errnum, char *str, size_t maxlen)
-{ int k ;
-
- errnum = abs (errnum) ;
- errnum = (errnum >= SFE_MAX_ERROR || errnum < 0) ? 0 : errnum ;
-
- for (k = 0 ; SndfileErrors[k].str ; k++)
- if (errnum == SndfileErrors[k].error)
- { strncpy (str, SndfileErrors [errnum].str, maxlen) ;
- str [maxlen-1] = 0 ;
- return SFE_NO_ERROR ;
- } ;
-
- strncpy (str, "No error defined for this error number. This is a bug in libsndfile.", maxlen) ;
- str [maxlen-1] = 0 ;
-
- return SFE_NO_ERROR ;
-} /* sf_error_number */
-
-/*------------------------------------------------------------------------------
-*/
-
-int
-sf_format_check (const SF_INFO *info)
-{ int subformat = info->format & SF_FORMAT_SUBMASK ;
-
- /* This is the place where each file format can check if the suppiled
- ** SF_INFO struct is valid.
- ** Return 0 on failure, 1 ons success.
- */
-
- if (info->channels < 1 || info->channels > 256)
- return 0 ;
-
- switch (info->format & SF_FORMAT_TYPEMASK)
- { case SF_FORMAT_WAV :
- if (subformat == SF_FORMAT_PCM && (info->pcmbitwidth >= 8 && info->pcmbitwidth <= 32))
- return 1 ;
- if (subformat == SF_FORMAT_IMA_ADPCM && info->pcmbitwidth == 16 && info->channels <= 2)
- return 1 ;
- if (subformat == SF_FORMAT_MS_ADPCM && info->pcmbitwidth == 16 && info->channels <= 2)
- return 1 ;
- if (subformat == SF_FORMAT_GSM610 && info->pcmbitwidth == 16 && info->channels == 1)
- return 1 ;
- if (subformat == SF_FORMAT_ULAW || subformat == SF_FORMAT_ALAW)
- return 1 ;
- if (subformat == SF_FORMAT_FLOAT && info->pcmbitwidth == 32)
- return 1 ;
- break ;
-
- case SF_FORMAT_AIFF :
- if (subformat == SF_FORMAT_PCM && (info->pcmbitwidth >= 8 && info->pcmbitwidth <= 32))
- return 1 ;
- if (subformat == SF_FORMAT_PCM_LE && (info->pcmbitwidth >= 8 && info->pcmbitwidth <= 32))
- return 1 ;
- if (subformat == SF_FORMAT_PCM_BE && (info->pcmbitwidth >= 8 && info->pcmbitwidth <= 32))
- return 1 ;
- if (subformat == SF_FORMAT_FLOAT && (info->pcmbitwidth == 32))
- return 1 ;
- break ;
-
- case SF_FORMAT_AU :
- case SF_FORMAT_AULE :
- if (subformat == SF_FORMAT_PCM && (info->pcmbitwidth >= 8 && info->pcmbitwidth <= 32))
- return 1 ;
- if (subformat == SF_FORMAT_ULAW || subformat == SF_FORMAT_ALAW)
- return 1 ;
- if (subformat == SF_FORMAT_G721_32 && info->channels == 1)
- return 1 ;
- if (subformat == SF_FORMAT_G723_24 && info->channels == 1)
- return 1 ;
- if (subformat == SF_FORMAT_FLOAT && (info->pcmbitwidth == 32))
- return 1 ;
- break ;
-
- case SF_FORMAT_RAW :
- if (subformat == SF_FORMAT_PCM_S8 && info->pcmbitwidth == 8)
- return 1 ;
- if (subformat == SF_FORMAT_PCM_U8 && info->pcmbitwidth == 8)
- return 1 ;
- if (subformat != SF_FORMAT_PCM_BE && subformat != SF_FORMAT_PCM_LE)
- break ;
- if (! (info->pcmbitwidth % 8) && info->pcmbitwidth <= 32)
- return 1 ;
- break ;
-
- case SF_FORMAT_PAF :
- if (subformat == SF_FORMAT_PCM_S8 && info->pcmbitwidth == 8)
- return 1 ;
- if (subformat != SF_FORMAT_PCM_BE && subformat != SF_FORMAT_PCM_LE && subformat != SF_FORMAT_PCM)
- break ;
- if ((info->pcmbitwidth % 8) == 0 && info->pcmbitwidth <= 24)
- return 1 ;
- break ;
-
- case SF_FORMAT_SVX :
- if (subformat == SF_FORMAT_PCM && (info->pcmbitwidth == 8 || info->pcmbitwidth == 16))
- return 1 ;
- break ;
-
- case SF_FORMAT_NIST :
- if ((subformat == SF_FORMAT_PCM_BE || subformat == SF_FORMAT_PCM_LE || subformat == SF_FORMAT_PCM)
- && info->pcmbitwidth >= 16 && info->pcmbitwidth <= 32)
- return 1 ;
- break ;
-
- case SF_FORMAT_IRCAM :
- if ((subformat == SF_FORMAT_PCM_BE || subformat == SF_FORMAT_PCM_LE || subformat == SF_FORMAT_PCM)
- && info->pcmbitwidth >= 16 && info->pcmbitwidth <= 32)
- return 1 ;
- if ((subformat == SF_FORMAT_FLOAT_BE || subformat == SF_FORMAT_FLOAT_LE || subformat == SF_FORMAT_FLOAT)
- && info->pcmbitwidth == 32)
- return 1 ;
- if (subformat == SF_FORMAT_ULAW || subformat == SF_FORMAT_ALAW)
- return 1 ;
- break ;
-
- default : break ;
- } ;
-
- return 0 ;
-} /* sf_format_check */
-
-/*------------------------------------------------------------------------------
-*/
-
-size_t
-sf_get_header_info (SNDFILE *sndfile, char *buffer, size_t bufferlen, size_t offset)
-{ SF_PRIVATE *psf ;
- int len ;
-
- if (! sndfile)
- { strncpy (buffer, sf_logbuffer, bufferlen - 1) ;
- buffer [bufferlen - 1] = 0 ;
- return strlen (sf_logbuffer) ;
- } ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- len = strlen (psf->logbuffer) ;
- if (offset < 0 || offset >= len)
- return 0 ;
-
- strncpy (buffer, psf->logbuffer, bufferlen - 1) ;
- buffer [bufferlen - 1] = 0 ;
-
- return strlen (psf->logbuffer) ;
-} /* sf_get_header_info */
-
-/*------------------------------------------------------------------------------
-*/
-
-size_t
-sf_get_lib_version (char *buffer, size_t bufferlen)
-{ if (! buffer || ! bufferlen)
- return 0 ;
-
- strncpy (buffer, PACKAGE "-" VERSION, bufferlen - 1) ;
- buffer [bufferlen - 1] = 0 ;
-
- return strlen (buffer) ;
-} /* sf_get_lib_version */
-
-/*------------------------------------------------------------------------------
-*/
-
-int
-sf_command (SNDFILE *sndfile, const char *cmd, void *data, int datasize)
-{ SF_PRIVATE *psf ;
- int command ;
-
- command = hash_command (cmd) ;
-
- if (command == SFC_LIB_VERSION)
- { strncpy (data, PACKAGE "-" VERSION, datasize - 1) ;
- ((char*) data) [datasize - 1] = 0 ;
- return strlen ((char*) data) ;
- } ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- switch (command)
- { case 0 :
- return (psf->error = SFE_BAD_CONTROL_CMD) ;
-
- case SFC_NORM_FLOAT :
- if (! data)
- return (psf->error = SFE_BAD_CONTROL_CMD) ;
- if (! strcmp ("on", data))
- psf->norm_float = SF_TRUE ;
- else if (! strcmp ("off", data))
- psf->norm_float = SF_FALSE ;
- else
- return (psf->error = SFE_BAD_CONTROL_CMD) ;
- break ;
-
- case SFC_NORM_DOUBLE :
- if (! data)
- return (psf->error = SFE_BAD_CONTROL_CMD) ;
- if (! strcmp ("on", data))
- psf->norm_double = SF_TRUE ;
- else if (! strcmp ("off", data))
- psf->norm_double = SF_FALSE ;
- else
- return (psf->error = SFE_BAD_CONTROL_CMD) ;
- break ;
-
- default :
- /* Must be a file specific command. Pass it on. */
- if (psf->command)
- return psf->command (psf, command, data, datasize) ;
-
- psf_log_printf (psf, "*** sf_command : cmd = %08X\n", command) ;
- break ;
- } ;
-
- return 0 ;
-} /* sf_command */
-
-/*------------------------------------------------------------------------------
-*/
-
-double
-sf_signal_max (SNDFILE *sndfile)
-{ SF_PRIVATE *psf ;
- long position ;
- unsigned int k, len, readcount ;
- double max = 0.0, *data, temp ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- /* If the file has a PEAK chunk use that information. */
- if (psf->has_peak)
- { for (k = 0 ; k < psf->sf.channels ; k++)
- if (max < fabs (psf->peak.peak [k].value))
- max = fabs (psf->peak.peak [k].value);
- return max ;
- } ;
-
- /* If the file is not seekable, there is nothing we can do. */
- if (! psf->sf.seekable)
- { psf->error = SFE_NOT_SEEKABLE ;
- return 0.0 ;
- } ;
-
- if (! psf->read_double)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0.0 ;
- } ;
-
- /* Brute force. Read the whole file and find the biggest sample. */
- position = sf_seek (sndfile, 0, SEEK_CUR) ; /* Get current position in file */
- sf_seek (sndfile, 0, SEEK_SET) ; /* Go to start of file. */
-
- len = psf->sf.channels * 1024 ;
-
- data = malloc (len * sizeof (double)) ;
- readcount = len ;
- while (readcount == len)
- { readcount = sf_read_double (sndfile, data, len, 0) ;
- for (k = 0 ; k < len ; k++)
- { temp = data [k] ;
- temp = temp < 0.0 ? -temp : temp ;
- max = temp > max ? temp : max ;
- } ;
- } ;
- free (data) ;
-
- sf_seek (sndfile, position, SEEK_SET) ; /* Return to original position. */
-
- return max ;
-} /* sf_signal_max */
-
-/*------------------------------------------------------------------------------
-*/
-
-long
-sf_seek (SNDFILE *sndfile, long offset, int whence)
-{ SF_PRIVATE *psf ;
- long realseek, position ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (! psf->sf.seekable)
- { psf->error = SFE_NOT_SEEKABLE ;
- return ((long) -1) ;
- } ;
-
- if (psf->seek_func)
- { psf->seek_func (psf, offset, whence) ;
- return psf->current ;
- } ;
-
- if (! (psf->blockwidth && psf->datalength && psf->dataoffset))
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- switch (whence)
- { case SEEK_SET :
- if (offset < 0 || offset * psf->blockwidth > psf->datalength)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- realseek = psf->dataoffset + offset * psf->blockwidth ;
- fseek (psf->file, realseek, SEEK_SET) ;
- position = ftell (psf->file) ;
- break ;
-
- case SEEK_CUR :
- position = (ftell (psf->file) - psf->dataoffset) / psf->blockwidth ;
- if (psf->current + offset > psf->sf.samples)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- realseek = psf->dataoffset + (position + offset) * psf->blockwidth ;
- fseek (psf->file, realseek, SEEK_SET) ;
- position = ftell (psf->file) ;
- break ;
-
- case SEEK_END :
- if (offset > 0 || psf->sf.samples + offset < 0)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- realseek = (psf->sf.samples + offset) * psf->blockwidth + psf->dataoffset ;
-
- fseek (psf->file, realseek, SEEK_SET) ;
- position = ftell (psf->file) ;
- break ;
-
- default :
- psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- psf->current = (position - psf->dataoffset) / psf->blockwidth ;
- return psf->current ;
-} /* sf_seek */
-
-/*------------------------------------------------------------------------------
-*/
-
-size_t
-sf_read_raw (SNDFILE *sndfile, void *ptr, size_t bytes)
-{ SF_PRIVATE *psf ;
- size_t count ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_READ)
- { psf->error = SFE_NOT_READMODE ;
- return 0 ;
- } ;
-
- if (psf->current >= psf->datalength)
- { memset (ptr, 0, bytes) ;
- return 0 ;
- } ;
-
- if (bytes % (psf->sf.channels * psf->bytewidth))
- { psf->error = SFE_BAD_READ_ALIGN ;
- return 0 ;
- } ;
-
- count = fread (ptr, 1, bytes, psf->file) ;
-
- if (count < bytes)
- memset (((char*)ptr) + count, 0, bytes - count) ;
-
- psf->current += count / psf->blockwidth ;
-
- return count ;
-} /* sf_read_raw */
-
-/*------------------------------------------------------------------------------
-*/
-
-size_t
-sf_read_short (SNDFILE *sndfile, short *ptr, size_t len)
-{ SF_PRIVATE *psf ;
- size_t count, extra ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_READ)
- { psf->error = SFE_NOT_READMODE ;
- return 0 ;
- } ;
-
- if (len % psf->sf.channels)
- { psf->error = SFE_BAD_READ_ALIGN ;
- return 0 ;
- } ;
-
- if (psf->current >= psf->sf.samples)
- { memset (ptr, 0, len * sizeof (short)) ;
- return 0 ; /* End of file. */
- } ;
-
- if (! psf->read_short)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->read_short (psf, ptr, len) ;
-
- if (psf->current + count / psf->sf.channels > psf->sf.samples)
- { count = (psf->sf.samples - psf->current) * psf->sf.channels ;
- extra = len - count ;
- memset (ptr + count, 0, extra * sizeof (short)) ;
- psf->current = psf->sf.samples ;
- } ;
-
- psf->current += count / psf->sf.channels ;
-
- return count ;
-} /* sf_read_short */
-
-size_t
-sf_readf_short (SNDFILE *sndfile, short *ptr, size_t frames)
-{ SF_PRIVATE *psf ;
- size_t count, extra ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_READ)
- { psf->error = SFE_NOT_READMODE ;
- return 0 ;
- } ;
-
- if (psf->current >= psf->sf.samples)
- { memset (ptr, 0, frames * psf->sf.channels * sizeof (short)) ;
- return 0 ; /* End of file. */
- } ;
-
- if (! psf->read_short)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->read_short (psf, ptr, frames * psf->sf.channels) ;
-
- if (psf->current + count / psf->sf.channels > psf->sf.samples)
- { count = (psf->sf.samples - psf->current) * psf->sf.channels ;
- extra = frames * psf->sf.channels - count ;
- memset (ptr + count, 0, extra * sizeof (short)) ;
- psf->current = psf->sf.samples ;
- } ;
-
- psf->current += count / psf->sf.channels ;
-
- return count / psf->sf.channels ;
-} /* sf_readf_short */
-
-/*------------------------------------------------------------------------------
-*/
-
-size_t
-sf_read_int (SNDFILE *sndfile, int *ptr, size_t len)
-{ SF_PRIVATE *psf ;
- size_t count, extra ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile,psf) ;
-
- if (psf->mode != SF_MODE_READ)
- { psf->error = SFE_NOT_READMODE ;
- return 0 ;
- } ;
-
- if (len % psf->sf.channels)
- { psf->error = SFE_BAD_READ_ALIGN ;
- return 0 ;
- } ;
-
- if (psf->current >= psf->sf.samples)
- { memset (ptr, 0, len * sizeof (int)) ;
- return 0 ;
- } ;
-
- if (! psf->read_int)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->read_int (psf, ptr, len) ;
-
- if (psf->current + count / psf->sf.channels > psf->sf.samples)
- { count = (psf->sf.samples - psf->current) * psf->sf.channels ;
- extra = len - count ;
- memset (ptr + count, 0, extra * sizeof (int)) ;
- psf->current = psf->sf.samples ;
- } ;
-
- psf->current += count / psf->sf.channels ;
-
- return count ;
-} /* sf_read_int */
-
-size_t
-sf_readf_int (SNDFILE *sndfile, int *ptr, size_t frames)
-{ SF_PRIVATE *psf ;
- size_t count, extra ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile,psf) ;
-
- if (psf->mode != SF_MODE_READ)
- { psf->error = SFE_NOT_READMODE ;
- return 0 ;
- } ;
-
- if (psf->current >= psf->sf.samples)
- { memset (ptr, 0, frames * psf->sf.channels * sizeof (int)) ;
- return 0 ;
- } ;
-
- if (! psf->read_int)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->read_int (psf, ptr, frames * psf->sf.channels) ;
-
- if (psf->current + count / psf->sf.channels > psf->sf.samples)
- { count = (psf->sf.samples - psf->current) * psf->sf.channels ;
- extra = frames * psf->sf.channels - count ;
- memset (ptr + count, 0, extra * sizeof (int)) ;
- psf->current = psf->sf.samples ;
- } ;
-
- psf->current += count / psf->sf.channels ;
-
- return count / psf->sf.channels ;
-} /* sf_readf_int */
-
-/*------------------------------------------------------------------------------
-*/
-
-size_t
-sf_read_float (SNDFILE *sndfile, float *ptr, size_t len)
-{ SF_PRIVATE *psf ;
- size_t count, extra ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile,psf) ;
-
- if (psf->mode != SF_MODE_READ)
- { psf->error = SFE_NOT_READMODE ;
- return 0 ;
- } ;
-
- if (len % psf->sf.channels)
- { psf->error = SFE_BAD_READ_ALIGN ;
- return 0 ;
- } ;
-
- if (psf->current >= psf->sf.samples)
- { memset (ptr, 0, len * sizeof (float)) ;
- return 0 ;
- } ;
-
- if (! psf->read_float)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->read_float (psf, ptr, len) ;
-
- if (psf->current + count / psf->sf.channels > psf->sf.samples)
- { count = (psf->sf.samples - psf->current) * psf->sf.channels ;
- extra = len - count ;
- memset (ptr + count, 0, extra * sizeof (float)) ;
- psf->current = psf->sf.samples ;
- } ;
-
- psf->current += count / psf->sf.channels ;
-
- return count ;
-} /* sf_read_float */
-
-size_t
-sf_readf_float (SNDFILE *sndfile, float *ptr, size_t frames)
-{ SF_PRIVATE *psf ;
- size_t count, extra ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile,psf) ;
-
- if (psf->mode != SF_MODE_READ)
- { psf->error = SFE_NOT_READMODE ;
- return 0 ;
- } ;
-
- if (psf->current >= psf->sf.samples)
- { memset (ptr, 0, frames * psf->sf.channels * sizeof (float)) ;
- return 0 ;
- } ;
-
- if (! psf->read_float)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->read_float (psf, ptr, frames * psf->sf.channels) ;
-
- if (psf->current + count / psf->sf.channels > psf->sf.samples)
- { count = (psf->sf.samples - psf->current) * psf->sf.channels ;
- extra = frames * psf->sf.channels - count ;
- memset (ptr + count, 0, extra * sizeof (float)) ;
- psf->current = psf->sf.samples ;
- } ;
-
- psf->current += count / psf->sf.channels ;
-
- return count / psf->sf.channels ;
-} /* sf_readf_float */
-
-/*------------------------------------------------------------------------------
-*/
-
-size_t
-sf_read_double (SNDFILE *sndfile, double *ptr, size_t len, int normalize)
-{ SF_PRIVATE *psf ;
- size_t count, extra ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_READ)
- { psf->error = SFE_NOT_READMODE ;
- return 0 ;
- } ;
-
- if (len % psf->sf.channels)
- { psf->error = SFE_BAD_READ_ALIGN ;
- return 0 ;
- } ;
-
- if (psf->current >= psf->sf.samples)
- { memset (ptr, 0, len * sizeof (double)) ;
- return 0 ;
- } ;
-
- if (! psf->read_double)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->read_double (psf, ptr, len, normalize) ;
-
- if (psf->current + count / psf->sf.channels > psf->sf.samples)
- { count = (psf->sf.samples - psf->current) * psf->sf.channels ;
- extra = len - count ;
- memset (ptr + count, 0, extra * sizeof (double)) ;
- psf->current = psf->sf.samples ;
- } ;
-
- psf->current += count / psf->sf.channels ;
-
- return count ;
-} /* sf_read_double */
-
-size_t
-sf_readf_double (SNDFILE *sndfile, double *ptr, size_t frames, int normalize)
-{ SF_PRIVATE *psf ;
- size_t count, extra ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_READ)
- { psf->error = SFE_NOT_READMODE ;
- return 0 ;
- } ;
-
- if (psf->current >= psf->sf.samples)
- { memset (ptr, 0, frames * psf->sf.channels * sizeof (double)) ;
- return 0 ;
- } ;
-
- if (! psf->read_double)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->read_double (psf, ptr, frames * psf->sf.channels, normalize) ;
-
- if (psf->current + count / psf->sf.channels > psf->sf.samples)
- { count = (psf->sf.samples - psf->current) * psf->sf.channels ;
- extra = frames * psf->sf.channels - count ;
- memset (ptr + count, 0, extra * sizeof (double)) ;
- psf->current = psf->sf.samples ;
- } ;
-
- psf->current += count / psf->sf.channels ;
-
- return count / psf->sf.channels ;
-} /* sf_readf_double */
-
-/*------------------------------------------------------------------------------
-*/
-
-size_t
-sf_write_raw (SNDFILE *sndfile, void *ptr, size_t len)
-{ SF_PRIVATE *psf ;
- size_t count ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_WRITE)
- { psf->error = SFE_NOT_WRITEMODE ;
- return 0 ;
- } ;
-
- if (len % (psf->sf.channels * psf->bytewidth))
- { psf->error = SFE_BAD_WRITE_ALIGN ;
- return 0 ;
- } ;
-
- count = fwrite (ptr, 1, len, psf->file) ;
-
- psf->current += count / psf->blockwidth ;
-
- return count ;
-} /* sf_write_raw */
-
-/*------------------------------------------------------------------------------
-*/
-
-size_t
-sf_write_short (SNDFILE *sndfile, short *ptr, size_t len)
-{ SF_PRIVATE *psf ;
- size_t count ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_WRITE)
- { psf->error = SFE_NOT_WRITEMODE ;
- return 0 ;
- } ;
-
- if (len % psf->sf.channels)
- { psf->error = SFE_BAD_WRITE_ALIGN ;
- return 0 ;
- } ;
-
- if (! psf->write_short)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->write_short (sndfile, ptr, len) ;
-
- psf->current += count / psf->sf.channels ;
-
- return count ;
-} /* sf_write_short */
-
-size_t
-sf_writef_short (SNDFILE *sndfile, short *ptr, size_t frames)
-{ SF_PRIVATE *psf ;
- size_t count ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_WRITE)
- { psf->error = SFE_NOT_WRITEMODE ;
- return 0 ;
- } ;
-
- if (! psf->write_short)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->write_short (sndfile, ptr, frames * psf->sf.channels) ;
-
- psf->current += count / psf->sf.channels ;
-
- return count / psf->sf.channels ;
-} /* sf_writef_short */
-
-/*------------------------------------------------------------------------------
-*/
-
-size_t
-sf_write_int (SNDFILE *sndfile, int *ptr, size_t len)
-{ SF_PRIVATE *psf ;
- size_t count ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_WRITE)
- { psf->error = SFE_NOT_WRITEMODE ;
- return 0 ;
- } ;
-
- if (len % psf->sf.channels)
- { psf->error = SFE_BAD_WRITE_ALIGN ;
- return 0 ;
- } ;
-
- if (! psf->write_int)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->write_int (sndfile, ptr, len) ;
-
- psf->current += count / psf->sf.channels ;
-
- return count ;
-} /* sf_write_int */
-
-size_t
-sf_writef_int (SNDFILE *sndfile, int *ptr, size_t frames)
-{ SF_PRIVATE *psf ;
- size_t count ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_WRITE)
- { psf->error = SFE_NOT_WRITEMODE ;
- return 0 ;
- } ;
-
- if (! psf->write_int)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->write_int (sndfile, ptr, frames * psf->sf.channels) ;
-
- psf->current += count / psf->sf.channels ;
-
- return count / psf->sf.channels ;
-} /* sf_writef_int */
-
-/*------------------------------------------------------------------------------
-*/
-
-size_t
-sf_write_float (SNDFILE *sndfile, float *ptr, size_t len)
-{ SF_PRIVATE *psf ;
- size_t count ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_WRITE)
- { psf->error = SFE_NOT_WRITEMODE ;
- return 0 ;
- } ;
-
- if (len % psf->sf.channels)
- { psf->error = SFE_BAD_WRITE_ALIGN ;
- return 0 ;
- } ;
-
- if (! psf->write_float)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->write_float (sndfile, ptr, len) ;
-
- psf->current += count / psf->sf.channels ;
-
- return count ;
-} /* sf_write_float */
-
-size_t
-sf_writef_float (SNDFILE *sndfile, float *ptr, size_t frames)
-{ SF_PRIVATE *psf ;
- size_t count ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_WRITE)
- { psf->error = SFE_NOT_WRITEMODE ;
- return 0 ;
- } ;
-
- if (! psf->write_float)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->write_float (sndfile, ptr, frames * psf->sf.channels) ;
-
- psf->current += count / psf->sf.channels ;
-
- return count / psf->sf.channels ;
-} /* sf_writef_float */
-
-/*------------------------------------------------------------------------------
-*/
-
-size_t
-sf_write_double (SNDFILE *sndfile, double *ptr, size_t len, int normalize)
-{ SF_PRIVATE *psf ;
- size_t count ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_WRITE)
- { psf->error = SFE_NOT_WRITEMODE ;
- return 0 ;
- } ;
-
- if (len % psf->sf.channels)
- { psf->error = SFE_BAD_WRITE_ALIGN ;
- return 0 ;
- } ;
-
- if (! psf->write_double)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->write_double (sndfile, ptr, len, normalize) ;
-
- psf->current += count / psf->sf.channels ;
-
- return count ;
-} /* sf_write_double */
-
-size_t
-sf_writef_double (SNDFILE *sndfile, double *ptr, size_t frames, int normalize)
-{ SF_PRIVATE *psf ;
- size_t count ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->mode != SF_MODE_WRITE)
- { psf->error = SFE_NOT_WRITEMODE ;
- return 0 ;
- } ;
-
- if (! psf->write_double)
- { psf->error = SFE_UNIMPLEMENTED ;
- return 0 ;
- } ;
-
- count = psf->write_double (sndfile, ptr, frames * psf->sf.channels, normalize) ;
-
- psf->current += count / psf->sf.channels ;
-
- return count / psf->sf.channels ;
-} /* sf_writef_double */
-
-/*------------------------------------------------------------------------------
-*/
-
-int
-sf_close (SNDFILE *sndfile)
-{ SF_PRIVATE *psf ;
- int error ;
-
- VALIDATE_SNDFILE_AND_ASSIGN_PSF (sndfile, psf) ;
-
- if (psf->close)
- error = psf->close (psf) ;
-
- fclose (psf->file) ;
- memset (psf, 0, sizeof (SF_PRIVATE)) ;
-
- free (psf) ;
-
- return 0 ;
-} /* sf_close */
-
-
-/*=========================================================================
-** Private functions.
-*/
-
-static int
-does_extension_match (const char *ext, const char *test)
-{ char c1, c2 ;
-
- if ((! ext) || (! test))
- return 0 ;
-
- if (strlen (ext) != strlen (test))
- return 0 ;
-
- while (*ext && *test)
- { c1 = tolower (*ext) ;
- c2 = tolower (*test) ;
- if (c1 > c2)
- return 0 ;
- if (c1 < c2)
- return 0 ;
- ext ++ ;
- test ++ ;
- }
-
- return 1 ;
-} /* does_extension_match */
-
-static int
-is_au_snd_file (const char *filename)
-{ const char *cptr ;
-
- if (! (cptr = strrchr (filename, '.')))
- return 0 ;
- cptr ++ ;
-
- if (does_extension_match (cptr, "au"))
- return 1 ;
-
- if (does_extension_match (cptr, "snd"))
- return 1 ;
-
- return 0 ;
-} /* is_au_snd_file */
-
-static int
-guess_file_type (SF_PRIVATE *psf, const char *filename)
-{ unsigned int buffer [3] ;
-
- psf_binheader_readf (psf, "B", &buffer, sizeof (buffer)) ;
-
- if (buffer [0] == MAKE_MARKER ('R','I','F','F') && buffer [2] == MAKE_MARKER ('W','A','V','E'))
- return SF_FORMAT_WAV ;
-
- if (buffer [0] == MAKE_MARKER ('F','O','R','M'))
- { if (buffer [2] == MAKE_MARKER ('A','I','F','F') || buffer [2] == MAKE_MARKER ('A','I','F','C'))
- return SF_FORMAT_AIFF ;
- if (buffer [2] == MAKE_MARKER ('8','S','V','X') || buffer [2] == MAKE_MARKER ('1','6','S','V'))
- return SF_FORMAT_SVX ;
- return 0 ;
- } ;
-
- if ((buffer [0] == MAKE_MARKER ('.','s','n','d') || buffer [0] == MAKE_MARKER ('d','n','s','.')))
- return SF_FORMAT_AU ;
-
- if ((buffer [0] == MAKE_MARKER ('f','a','p',' ') || buffer [0] == MAKE_MARKER (' ','p','a','f')))
- return SF_FORMAT_PAF ;
-
- if (buffer [0] == MAKE_MARKER ('N','I','S','T'))
- return SF_FORMAT_NIST ;
-
- if (buffer [0] == MAKE_MARKER ('S','E','K','D') && buffer [1] == MAKE_MARKER ('S','A','M','R'))
- return SF_FORMAT_SMPLTD ;
-
- if (buffer [0] == MAKE_MARKER ('C','r','e','a') && buffer [1] == MAKE_MARKER ('t','i','v','e'))
- return SF_FORMAT_VOC ;
-
- if ((buffer [0] & MAKE_MARKER (0xFF, 0xFF, 0xF8, 0xFF)) == MAKE_MARKER (0x64, 0xA3, 0x00, 0x00) ||
- (buffer [0] & MAKE_MARKER (0xFF, 0xF8, 0xFF, 0xFF)) == MAKE_MARKER (0x00, 0x00, 0xA3, 0x64))
- return SF_FORMAT_IRCAM ;
-
- if (buffer [0] == MAKE_MARKER ('C', 'A', 'T', ' ') && buffer [2] == MAKE_MARKER ('R', 'E', 'X', '2'))
- return SF_FORMAT_REX2 ;
-
- if (buffer [0] == MAKE_MARKER (0x30, 0x26, 0xB2, 0x75) && buffer [1] == MAKE_MARKER (0x8E, 0x66, 0xCF, 0x11))
- return SF_FORMAT_WMA ;
-
- /* This must be the last one. */
- if (filename && is_au_snd_file (filename))
- return SF_FORMAT_AU | SF_FORMAT_ULAW ;
-
- /* Default to header-less RAW PCM file type. */
- return SF_FORMAT_RAW ;
-} /* guess_file_type */
-
-
-static int
-validate_sfinfo (SF_INFO *sfinfo)
-{ if (! sfinfo->samplerate)
- return 0 ;
- if (! sfinfo->samples)
- return 0 ;
- if (! sfinfo->channels)
- return 0 ;
- if (! sfinfo->pcmbitwidth)
- return 0 ;
- if (! sfinfo->format & SF_FORMAT_TYPEMASK)
- return 0 ;
- if (! sfinfo->format & SF_FORMAT_SUBMASK)
- return 0 ;
- if (! sfinfo->sections)
- return 0 ;
- return 1 ;
-} /* validate_sfinfo */
-
-static int
-validate_psf (SF_PRIVATE *psf)
-{ if (! psf->blockwidth)
- return 0 ;
- if (! psf->bytewidth)
- return 0 ;
- if (! psf->datalength)
- return 0 ;
- if (psf->blockwidth != psf->sf.channels * psf->bytewidth)
- return 0 ;
- return 1 ;
-} /* validate_psf */
-
-static void
-save_header_info (SF_PRIVATE *psf)
-{ memset (sf_logbuffer, 0, sizeof (sf_logbuffer)) ;
- strncpy (sf_logbuffer, psf->logbuffer, sizeof (sf_logbuffer)) ;
-} /* save_header_info */
-
-static void
-copy_filename (SF_PRIVATE *psf, const char *path)
-{ const char *cptr ;
-
- if ((cptr = strrchr (path, '/')) || (cptr = strrchr (path, '\\')))
- cptr ++ ;
- else
- cptr = path ;
-
- memset (psf->filename, 0, SF_FILENAME_LEN) ;
- strncpy (psf->filename, cptr, SF_FILENAME_LEN - 1) ;
- psf->filename [SF_FILENAME_LEN - 1] = 0 ;
-} /* copy_filename */
-
-static int
-hash_command (const char *cmd)
-{ int hash = 0 ;
-
- if (! cmd)
- return 0 ;
-
- while (*cmd)
- { hash = (hash<<1) ^ *cmd ;
- cmd ++ ;
- } ;
-
- return hash ;
-} /* hash_command */
-
--- a/common/libsndfile/src/sndfile.h
+++ /dev/null
@@ -1,238 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-/* sndfile.h -- system-wide definitions */
-
-#ifndef SNDFILE_H
-#define SNDFILE_H
-
-#include <stdio.h>
-#include <stdlib.h>
-
-/* For the Metrowerks CodeWarrior Pro Compiler (mainly MacOS) */
-
-#if (defined (__MWERKS__))
-#include <unix.h>
-#else
-#include <sys/types.h>
-#endif
-
-#if defined (_WIN32)
- #pragma pack(push,1)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* The following file types can be read and written.
-** A file type would consist of a major type (ie SF_FORMAT_WAV) bitwise
-** ORed with a minor type (ie SF_FORMAT_PCM). SF_FORMAT_TYPEMASK and
-** SF_FORMAT_SUBMASK can be used to separate the major and minor file
-** types.
-*/
-
-enum
-{ SF_FORMAT_WAV = 0x10000, /* Microsoft WAV format (little endian). */
- SF_FORMAT_AIFF = 0x20000, /* Apple/SGI AIFF format (big endian). */
- SF_FORMAT_AU = 0x30000, /* Sun/NeXT AU format (big endian). */
- SF_FORMAT_AULE = 0x40000, /* DEC AU format (little endian). */
- SF_FORMAT_RAW = 0x50000, /* RAW PCM data. */
- SF_FORMAT_PAF = 0x60000, /* Ensoniq PARIS file format. */
- SF_FORMAT_SVX = 0x70000, /* Amiga IFF / SVX8 / SV16 format. */
- SF_FORMAT_NIST = 0x80000, /* Sphere NIST format. */
- SF_FORMAT_WMA = 0x90000, /* Windows Media Audio. */
- SF_FORMAT_SMPLTD = 0xA0000, /* Sekd Samplitude. */
- SF_FORMAT_VOC = 0xB0000, /* VOC files. */
- SF_FORMAT_SD2 = 0xC0000, /* Sound Designer 2 */
- SF_FORMAT_REX2 = 0xD0000, /* Propellorheads Rex2 */
- SF_FORMAT_IRCAM = 0xE0000, /* Berkeley/IRCAM/CARL */
-
- /* Subtypes from here on. */
-
- SF_FORMAT_PCM = 0x0001, /* PCM data in 8, 16, 24 or 32 bits. */
- SF_FORMAT_FLOAT = 0x0002, /* 32 bit floats. */
- SF_FORMAT_ULAW = 0x0003, /* U-Law encoded. */
- SF_FORMAT_ALAW = 0x0004, /* A-Law encoded. */
- SF_FORMAT_IMA_ADPCM = 0x0005, /* IMA ADPCM. */
- SF_FORMAT_MS_ADPCM = 0x0006, /* Microsoft ADPCM. */
-
- SF_FORMAT_PCM_BE = 0x0007, /* Big endian PCM data. */
- SF_FORMAT_PCM_LE = 0x0008, /* Little endian PCM data. */
- SF_FORMAT_PCM_S8 = 0x0009, /* Signed 8 bit PCM. */
- SF_FORMAT_PCM_U8 = 0x000A, /* Unsigned 8 bit PCM. */
-
- SF_FORMAT_SVX_FIB = 0x000B, /* SVX Fibonacci Delta encoding. */
- SF_FORMAT_SVX_EXP = 0x000C, /* SVX Exponential Delta encoding. */
-
- SF_FORMAT_GSM610 = 0x000D, /* GSM 6.10 encoding. */
-
- SF_FORMAT_G721_32 = 0x000E, /* 32kbs G721 ADPCM encoding. */
- SF_FORMAT_G723_24 = 0x000F, /* 24kbs G723 ADPCM encoding. */
-
- SF_FORMAT_FLOAT_BE = 0x0010, /* Big endian FLOAT data. */
- SF_FORMAT_FLOAT_LE = 0x0011, /* Little endian FLOAT data. */
-
- SF_FORMAT_SUBMASK = 0xFFFF,
- SF_FORMAT_TYPEMASK = 0x7FFF0000
-} ;
-
-/* The following SF_FORMAT_RAW_* identifiers are deprecated. Use the
-** SF_FORMAT_PCM_* identifiers instead.
-*/
-#define SF_FORMAT_RAW_BE SF_FORMAT_PCM_BE
-#define SF_FORMAT_RAW_LE SF_FORMAT_PCM_LE
-#define SF_FORMAT_RAW_S8 SF_FORMAT_PCM_S8
-#define SF_FORMAT_RAW_U8 SF_FORMAT_PCM_U8
-
-/* A SNDFILE* pointer can be passed around much like stdio.h's FILE* pointer. */
-
-typedef void SNDFILE ;
-
-/* A pointer to a SF_INFO structure is passed to sf_open_read () and filled in.
-** On write, the SF_INFO structure is filled in by the user and passed into
-** sf_open_write ().
-*/
-
-typedef struct
-{ unsigned int samplerate ;
- unsigned int samples ;
- unsigned int channels ;
- unsigned int pcmbitwidth ; /* pcmbitwidth is deprecated. */
- unsigned int format ;
- unsigned int sections ;
- unsigned int seekable ;
-} SF_INFO ;
-
-/* Open the specified file for read or write. On error, this will return
-** a NULL pointer. To find the error number, pass a NULL SNDFILE to
-** sf_perror () or sf_error_str ().
-*/
-
-SNDFILE* sf_open_read (const char *path, SF_INFO *sfinfo) ;
-SNDFILE* sf_open_write (const char *path, const SF_INFO *sfinfo) ;
-
-/* sf_perror () prints out the current error state.
-** sf_error_str () returns the current error message to the caller in the
-** string buffer provided.
-*/
-
-int sf_perror (SNDFILE *sndfile) ;
-int sf_error_str (SNDFILE *sndfile, char* str, size_t len) ;
-
-int sf_error_number (int errnum, char *str, size_t maxlen) ;
-
-
-size_t sf_get_header_info (SNDFILE *sndfile, char* buffer, size_t bufferlen, size_t offset) ;
-
-/* Get the library version string. */
-
-size_t sf_get_lib_version (char* buffer, size_t bufferlen) ;
-
-/* Return TRUE if fields of the SF_INFO struct are a valid combination of values. */
-
-int sf_command (SNDFILE *sndfile, const char *cmd, void *data, int datasize) ;
-
-/* Return TRUE if fields of the SF_INFO struct are a valid combination of values. */
-
-int sf_format_check (const SF_INFO *info) ;
-
-/* Return the maximum absolute sample value in the SNDFILE. */
-
-double sf_signal_max (SNDFILE *sndfile) ;
-
-/* Seek within the waveform data chunk of the SNDFILE. sf_seek () uses
-** the same values for whence (SEEK_SET, SEEK_CUR and SEEK_END) as
-** stdio.h functions lseek () and fseek ().
-** An offset of zero with whence set to SEEK_SET will position the
-** read / write pointer to the first data sample.
-** On success sf_seek returns the current position in (multi-channel)
-** samples from the start of the file.
-** On error sf_seek returns -1.
-*/
-
-long sf_seek (SNDFILE *sndfile, long frames, int whence) ;
-
-/* Functions for reading/writing the waveform data of a sound file.
-*/
-
-size_t sf_read_raw (SNDFILE *sndfile, void *ptr, size_t bytes) ;
-size_t sf_write_raw (SNDFILE *sndfile, void *ptr, size_t bytes) ;
-
-/* Functions for reading and writing the data chunk in terms of frames.
-** The number of items actually read/written = frames * number of channels.
-** sf_xxxx_raw read/writes the raw data bytes from/to the file
-** sf_xxxx_uchar passes data in the unsigned char format
-** sf_xxxx_char passes data in the signed char format
-** sf_xxxx_short passes data in the native short format
-** sf_xxxx_int passes data in the native int format
-** sf_xxxx_float passes data in the native float format
-** sf_xxxx_double passes data in the native double format
-** For the double format, if the normalize flag is TRUE, the read/write
-** operations will use floats/doubles in the rangs [-1.0 .. 1.0] to
-** represent the minimum and maximum values of the waveform irrespective
-** of the bitwidth of the input/output file.
-** All of these read/write function return number of frames read/written.
-*/
-
-size_t sf_readf_short (SNDFILE *sndfile, short *ptr, size_t frames) ;
-size_t sf_writef_short (SNDFILE *sndfile, short *ptr, size_t frames) ;
-
-size_t sf_readf_int (SNDFILE *sndfile, int *ptr, size_t frames) ;
-size_t sf_writef_int (SNDFILE *sndfile, int *ptr, size_t frames) ;
-
-size_t sf_readf_float (SNDFILE *sndfile, float *ptr, size_t frames) ;
-size_t sf_writef_float (SNDFILE *sndfile, float *ptr, size_t frames) ;
-
-size_t sf_readf_double (SNDFILE *sndfile, double *ptr, size_t frames, int normalize) ;
-size_t sf_writef_double(SNDFILE *sndfile, double *ptr, size_t frames, int normalize) ;
-
-/* Functions for reading and writing the data chunk in terms of items.
-** Otherwise similar to above.
-** All of these read/write function return number of items read/written.
-*/
-
-size_t sf_read_short (SNDFILE *sndfile, short *ptr, size_t items) ;
-size_t sf_write_short (SNDFILE *sndfile, short *ptr, size_t items) ;
-
-size_t sf_read_int (SNDFILE *sndfile, int *ptr, size_t items) ;
-size_t sf_write_int (SNDFILE *sndfile, int *ptr, size_t items) ;
-
-size_t sf_read_float (SNDFILE *sndfile, float *ptr, size_t items) ;
-size_t sf_write_float (SNDFILE *sndfile, float *ptr, size_t items) ;
-
-size_t sf_read_double (SNDFILE *sndfile, double *ptr, size_t items, int normalize) ;
-size_t sf_write_double (SNDFILE *sndfile, double *ptr, size_t items, int normalize) ;
-
-/* Close the SNDFILE. Returns 0 on success, or an error number. */
-
-int sf_close (SNDFILE *sndfile) ;
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* __cplusplus */
-
-#ifdef _WIN32
- #pragma pack(pop,1)
-#endif
-
-#endif /* SNDFILE_H */
-
-
-
-
--- a/common/libsndfile/src/stamp-h.in
+++ /dev/null
@@ -1,1 +1,0 @@
-timestamp
--- a/common/libsndfile/src/svx.c
+++ /dev/null
@@ -1,395 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdarg.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "common.h"
-
-
-/*------------------------------------------------------------------------------
- * Macros to handle big/little endian issues.
-*/
-
-#define FORM_MARKER (MAKE_MARKER ('F', 'O', 'R', 'M'))
-#define SVX8_MARKER (MAKE_MARKER ('8', 'S', 'V', 'X'))
-#define SV16_MARKER (MAKE_MARKER ('1', '6', 'S', 'V'))
-#define VHDR_MARKER (MAKE_MARKER ('V', 'H', 'D', 'R'))
-#define BODY_MARKER (MAKE_MARKER ('B', 'O', 'D', 'Y'))
-
-#define ATAK_MARKER (MAKE_MARKER ('A','T','A','K'))
-#define RLSE_MARKER (MAKE_MARKER ('R','L','S','E'))
-
-#define c_MARKER (MAKE_MARKER ('(', 'c', ')', ' '))
-#define NAME_MARKER (MAKE_MARKER ('N', 'A', 'M', 'E'))
-#define AUTH_MARKER (MAKE_MARKER ('A', 'U', 'T', 'H'))
-#define ANNO_MARKER (MAKE_MARKER ('A', 'N', 'N', 'O'))
-#define CHAN_MARKER (MAKE_MARKER ('C', 'H', 'A', 'N'))
-
-/*------------------------------------------------------------------------------
- * Typedefs for file chunks.
-*/
-
-typedef struct
-{ unsigned int oneShotHiSamples, repeatHiSamples, samplesPerHiCycle ;
- unsigned short samplesPerSec ;
- unsigned char octave, compression ;
- unsigned int volume ;
-} VHDR_CHUNK ;
-
-enum {
- HAVE_FORM = 0x01,
-
- HAVE_SVX = 0x02,
- HAVE_VHDR = 0x04,
- HAVE_BODY = 0x08
-} ;
-
-/*------------------------------------------------------------------------------
- * Private static functions.
-*/
-
-static int svx_close (SF_PRIVATE *psf) ;
-static int svx_write_header (SF_PRIVATE *psf) ;
-
-/*
-static void endswap_vhdr_chunk (VHDR_CHUNK *vhdr) ;
-*/
-
-/*------------------------------------------------------------------------------
-** Public functions.
-*/
-
-int
-svx_open_read (SF_PRIVATE *psf)
-{ VHDR_CHUNK vhdr ;
- unsigned int FORMsize, vhdrsize, dword, marker ;
- int filetype = 0, parsestage = 0, done = 0, error ;
- int bytecount = 0, channels ;
-
- psf_binheader_readf (psf, "p", 0) ;
-
- /* Set default number of channels. */
- psf->sf.channels = 1 ;
-
- while (! done)
- { psf_binheader_readf (psf, "m", &marker) ;
- switch (marker)
- { case FORM_MARKER :
- if (parsestage)
- return SFE_SVX_NO_FORM ;
-
- psf_binheader_readf (psf, "L", &FORMsize) ;
-
- if (FORMsize != psf->filelength - 2 * sizeof (dword))
- { dword = psf->filelength - 2 * sizeof (dword);
- psf_log_printf (psf, "FORM : %d (should be %d)\n", FORMsize, dword) ;
- FORMsize = dword ;
- }
- else
- psf_log_printf (psf, "FORM : %d\n", FORMsize) ;
- parsestage |= HAVE_FORM ;
- break ;
-
- case SVX8_MARKER :
- case SV16_MARKER :
- if (! (parsestage & HAVE_FORM))
- return SFE_SVX_NO_FORM ;
- filetype = marker ;
- psf_log_printf (psf, " %D\n", marker) ;
- parsestage |= HAVE_SVX ;
- break ;
-
- case VHDR_MARKER :
- if (! (parsestage & (HAVE_FORM | HAVE_SVX)))
- return SFE_SVX_NO_FORM ;
-
- psf_binheader_readf (psf, "L", &vhdrsize) ;
-
- psf_log_printf (psf, " VHDR : %d\n", vhdrsize) ;
-
- psf_binheader_readf (psf, "LLLWbbL", &(vhdr.oneShotHiSamples), &(vhdr.repeatHiSamples),
- &(vhdr.samplesPerHiCycle), &(vhdr.samplesPerSec), &(vhdr.octave), &(vhdr.compression),
- &(vhdr.volume)) ;
-
- psf_log_printf (psf, " OneShotHiSamples : %d\n", vhdr.oneShotHiSamples) ;
- psf_log_printf (psf, " RepeatHiSamples : %d\n", vhdr.repeatHiSamples) ;
- psf_log_printf (psf, " samplesPerHiCycle : %d\n", vhdr.samplesPerHiCycle) ;
- psf_log_printf (psf, " Sample Rate : %d\n", vhdr.samplesPerSec) ;
- psf_log_printf (psf, " Octave : %d\n", vhdr.octave) ;
-
- psf_log_printf (psf, " Compression : %d => ", vhdr.compression) ;
-
- switch (vhdr.compression)
- { case 0 : psf_log_printf (psf, "None.\n") ;
- break ;
- case 1 : psf_log_printf (psf, "Fibonacci delta\n") ;
- break ;
- case 2 : psf_log_printf (psf, "Exponential delta\n") ;
- break ;
- } ;
-
- psf_log_printf (psf, " Volume : %d\n", vhdr.volume) ;
-
- psf->sf.samplerate = vhdr.samplesPerSec ;
-
- if (filetype == SVX8_MARKER)
- psf->sf.pcmbitwidth = 8 ;
- else if (filetype == SV16_MARKER)
- psf->sf.pcmbitwidth = 16 ;
-
- parsestage |= HAVE_VHDR ;
- break ;
-
- case BODY_MARKER :
- if (! (parsestage & HAVE_VHDR))
- return SFE_SVX_NO_BODY ;
-
- psf_binheader_readf (psf, "L", &(psf->datalength)) ;
- psf->dataoffset = ftell (psf->file) ;
-
- if (psf->datalength > psf->filelength - psf->dataoffset)
- { psf_log_printf (psf, " BODY : %d (should be %d)\n", psf->datalength, psf->filelength - psf->dataoffset) ;
- psf->datalength = psf->filelength - psf->dataoffset ;
- }
- else
- psf_log_printf (psf, " BODY : %d\n", psf->datalength) ;
-
- parsestage |= HAVE_BODY ;
-
- if (! psf->sf.seekable)
- break ;
-
- fseek (psf->file, psf->datalength, SEEK_CUR) ;
- break ;
-
- case NAME_MARKER :
- case ANNO_MARKER :
- if (! (parsestage & HAVE_SVX))
- return SFE_SVX_NO_FORM ;
-
- psf_binheader_readf (psf, "L", &dword) ;
-
- psf_log_printf (psf, " %D : %d\n", marker, dword) ;
-
- psf_binheader_readf (psf, "j", dword) ;
- break ;
-
- case CHAN_MARKER :
- if (! (parsestage & HAVE_SVX))
- return SFE_SVX_NO_FORM ;
-
- psf_binheader_readf (psf, "L", &dword) ;
-
- psf_log_printf (psf, " %D : %d\n", marker, dword) ;
-
- bytecount += psf_binheader_readf (psf, "L", &channels) ;
-
- psf_log_printf (psf, " Channels : %d => %d\n", channels) ;
-
- psf_binheader_readf (psf, "j", dword - bytecount) ;
- break ;
-
-
- case AUTH_MARKER :
- case c_MARKER :
- if (! (parsestage & HAVE_SVX))
- return SFE_SVX_NO_FORM ;
-
- psf_binheader_readf (psf, "L", &dword) ;
-
- psf_log_printf (psf, " %D : %d\n", marker, dword) ;
-
- psf_binheader_readf (psf, "j", dword) ;
- break ;
-
- default :
- if (isprint ((marker >> 24) & 0xFF) && isprint ((marker >> 16) & 0xFF)
- && isprint ((marker >> 8) & 0xFF) && isprint (marker & 0xFF))
- { psf_binheader_readf (psf, "L", &dword) ;
-
- psf_log_printf (psf, "%D : %d (unknown marker)\n", marker, dword) ;
-
- psf_binheader_readf (psf, "j", dword) ;
- break ;
- } ;
- if ((dword = ftell (psf->file)) & 0x03)
- { psf_log_printf (psf, " Unknown chunk marker at position %d. Resynching.\n", dword - 4) ;
-
- psf_binheader_readf (psf, "j", -3) ;
- break ;
- } ;
- psf_log_printf (psf, "*** Unknown chunk marker : %X. Exiting parser.\n", marker) ;
- done = 1 ;
- } ; /* switch (marker) */
-
- if (ferror (psf->file))
- { psf_log_printf (psf, "*** Error on file handle. ***\n", marker) ;
- clearerr (psf->file) ;
- break ;
- } ;
-
- if (! psf->sf.seekable && (parsestage & HAVE_BODY))
- break ;
-
- if (ftell (psf->file) >= (long) (psf->filelength - (2 * sizeof (dword))))
- break ;
- } ; /* while (1) */
-
- if (vhdr.compression)
- return SFE_SVX_BAD_COMP ;
-
- if (! psf->dataoffset)
- return SFE_SVX_NO_DATA ;
-
- psf->sf.format = (SF_FORMAT_SVX | SF_FORMAT_PCM);
- psf->sf.sections = 1 ;
-
- psf->current = 0 ;
- psf->endian = SF_ENDIAN_BIG ; /* All SVX files are big endian. */
- psf->sf.seekable = SF_TRUE ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
-
- psf->blockwidth = psf->sf.channels * psf->bytewidth ;
-
- if (psf->blockwidth)
- psf->sf.samples = psf->datalength / psf->blockwidth ;
-
- fseek (psf->file, psf->dataoffset, SEEK_SET) ;
-
- psf->close = (func_close) svx_close ;
-
- psf->chars = SF_CHARS_SIGNED ;
- if ((error = pcm_read_init (psf)))
- return error ;
-
- return 0 ;
-} /* svx_open_read */
-
-int
-svx_open_write (SF_PRIVATE *psf)
-{ int error ;
-
- if ((psf->sf.format & SF_FORMAT_TYPEMASK) != SF_FORMAT_SVX)
- return SFE_BAD_OPEN_FORMAT ;
- if ((psf->sf.format & SF_FORMAT_SUBMASK) != SF_FORMAT_PCM)
- return SFE_BAD_OPEN_FORMAT ;
- if (psf->sf.pcmbitwidth != 8 && psf->sf.pcmbitwidth != 16)
- return SFE_BAD_OPEN_FORMAT ;
-
- psf->endian = SF_ENDIAN_BIG ; /* All SVX files are big endian. */
- psf->sf.seekable = SF_TRUE ;
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
- psf->blockwidth = psf->bytewidth * psf->sf.channels ;
- psf->datalength = psf->blockwidth * psf->sf.samples ;
- psf->filelength = psf->datalength + psf->dataoffset ;
- psf->error = 0 ;
-
- error = svx_write_header (psf) ;
- if (error)
- return error ;
-
- psf->close = (func_close) svx_close ;
- psf->write_header = (func_wr_hdr) svx_write_header ;
-
- psf->chars = SF_CHARS_SIGNED ;
- if ((error = pcm_write_init (psf)))
- return error ;
-
- return 0 ;
-} /* svx_open_write */
-
-/*------------------------------------------------------------------------------
-*/
-
-static int
-svx_close (SF_PRIVATE *psf)
-{
- if (psf->mode == SF_MODE_WRITE)
- { /* Now we know for certain the length of the file we can re-write
- ** correct values for the FORM, 8SVX and BODY chunks.
- */
-
- fseek (psf->file, 0, SEEK_END) ;
- psf->filelength = ftell (psf->file) ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- psf->datalength = psf->filelength - psf->dataoffset ;
-
- svx_write_header (psf) ;
- } ;
-
- if (psf->fdata)
- free (psf->fdata) ;
- psf->fdata = NULL ;
-
- return 0 ;
-} /* svx_close */
-
-static int
-svx_write_header (SF_PRIVATE *psf)
-{ static char annotation [] = "libsndfile by Erik de Castro Lopo\0\0\0" ;
-
- psf->header [0] = 0 ;
- psf->headindex = 0 ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- /* FORM marker and FORM size. */
- psf_binheader_writef (psf, "mL", FORM_MARKER, psf->filelength - 8) ;
- psf_binheader_writef (psf, "m", (psf->bytewidth == 1) ? SVX8_MARKER : SV16_MARKER) ;
-
- /* VHDR chunk. */
- psf_binheader_writef (psf, "mL", VHDR_MARKER, sizeof (VHDR_CHUNK)) ;
- /* VHDR : oneShotHiSamples, repeatHiSamples, samplesPerHiCycle */
- psf_binheader_writef (psf, "LLL", psf->sf.samples, 0, 0) ;
- /* VHDR : samplesPerSec, octave, compression */
- psf_binheader_writef (psf, "Wbb", psf->sf.samplerate, 1, 0) ;
- /* VHDR : volume */
- psf_binheader_writef (psf, "L", (psf->bytewidth == 1) ? 255 : 0xFFFF) ;
-
- /* Filename and annotation strings. */
- psf_binheader_writef (psf, "mSmS", NAME_MARKER, psf->filename, ANNO_MARKER, annotation) ;
-
- /* BODY marker and size. */
- psf_binheader_writef (psf, "mL", BODY_MARKER, psf->datalength) ;
-
- fwrite (psf->header, psf->headindex, 1, psf->file) ;
-
- psf->dataoffset = psf->headindex ;
-
- return 0 ;
-} /* svx_write_header */
-
-/*-
-static void
-endswap_vhdr_chunk (VHDR_CHUNK *vhdr)
-{ vhdr->oneShotHiSamples = ENDSWAP_INT (vhdr->oneShotHiSamples) ;
- vhdr->repeatHiSamples = ENDSWAP_INT (vhdr->repeatHiSamples) ;
- vhdr->samplesPerHiCycle = ENDSWAP_INT (vhdr->samplesPerHiCycle) ;
- vhdr->samplesPerSec = ENDSWAP_SHORT (vhdr->samplesPerSec) ;
- vhdr->volume = ENDSWAP_INT (vhdr->volume) ;
-} /+* endswap_vhdr_chunk *+/
--*/
-
--- a/common/libsndfile/src/ulaw.c
+++ /dev/null
@@ -1,1100 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <unistd.h>
-
-#include "sndfile.h"
-#include "floatcast.h"
-#include "common.h"
-
-static int ulaw_read_ulaw2s (SF_PRIVATE *psf, short *ptr, unsigned int len) ;
-static int ulaw_read_ulaw2i (SF_PRIVATE *psf, int *ptr, unsigned int len) ;
-static int ulaw_read_ulaw2f (SF_PRIVATE *psf, float *ptr, unsigned int len) ;
-static int ulaw_read_ulaw2d (SF_PRIVATE *psf, double *ptr, unsigned int len, int normalize) ;
-
-static int ulaw_write_s2ulaw (SF_PRIVATE *psf, short *ptr, unsigned int len) ;
-static int ulaw_write_i2ulaw (SF_PRIVATE *psf, int *ptr, unsigned int len) ;
-static int ulaw_write_f2ulaw (SF_PRIVATE *psf, float *ptr, unsigned int len) ;
-static int ulaw_write_d2ulaw (SF_PRIVATE *psf, double *ptr, unsigned int len, int normalize) ;
-
-static void ulaw2s_array (unsigned char *buffer, unsigned int count, short *ptr, unsigned int index) ;
-static void ulaw2i_array (unsigned char *buffer, unsigned int count, int *ptr, unsigned int index) ;
-static void ulaw2f_array (unsigned char *buffer, unsigned int count, float *ptr, unsigned int index, float normfact) ;
-static void ulaw2d_array (unsigned char *buffer, unsigned int count, double *ptr, unsigned int index, double normfact) ;
-
-static void s2ulaw_array (short *buffer, unsigned int count, unsigned char *ptr, unsigned int index) ;
-static void i2ulaw_array (int *buffer, unsigned int count, unsigned char *ptr, unsigned int index) ;
-static void f2ulaw_array (float *buffer, unsigned int count, unsigned char *ptr, unsigned int index, float normfact) ;
-static void d2ulaw_array (double *buffer, unsigned int count, unsigned char *ptr, unsigned int index, double normfact) ;
-
-
-int
-ulaw_read_init (SF_PRIVATE *psf)
-{
- psf->read_short = (func_short) ulaw_read_ulaw2s ;
- psf->read_int = (func_int) ulaw_read_ulaw2i ;
- psf->read_float = (func_float) ulaw_read_ulaw2f ;
- psf->read_double = (func_double) ulaw_read_ulaw2d ;
-
- return 0 ;
-} /* ulaw_read_int */
-
-int
-ulaw_write_init (SF_PRIVATE *psf)
-{
- psf->write_short = (func_short) ulaw_write_s2ulaw ;
- psf->write_int = (func_int) ulaw_write_i2ulaw ;
- psf->write_float = (func_float) ulaw_write_f2ulaw ;
- psf->write_double = (func_double) ulaw_write_d2ulaw ;
-
- return 0 ;
-} /* ulaw_write_int */
-
-static int
-ulaw_read_ulaw2s (SF_PRIVATE *psf, short *ptr, unsigned int len)
-{ unsigned int readcount, thisread, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- ulaw2s_array ((unsigned char*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* ulaw_read_ulaw2s */
-
-static int
-ulaw_read_ulaw2i (SF_PRIVATE *psf, int *ptr, unsigned int len)
-{ unsigned int readcount, thisread, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- ulaw2i_array ((unsigned char*) (psf->buffer), thisread / psf->bytewidth, ptr, index) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* ulaw_read_ulaw2i */
-
-static int
-ulaw_read_ulaw2f (SF_PRIVATE *psf, float *ptr, unsigned int len)
-{ unsigned int readcount, thisread, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- ulaw2f_array ((unsigned char*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* ulaw_read_ulaw2f */
-
-static int
-ulaw_read_ulaw2d (SF_PRIVATE *psf, double *ptr, unsigned int len, int normalize)
-{ unsigned int readcount, thisread, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x8000) : 1.0) ;
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { readcount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- thisread = fread (psf->buffer, 1, readcount, psf->file) ;
- ulaw2d_array ((unsigned char*) (psf->buffer), thisread / psf->bytewidth, ptr, index, normfact) ;
- total += thisread ;
- if (thisread < readcount)
- break ;
- index += thisread / psf->bytewidth ;
- bytecount -= thisread ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* ulaw_read_ulaw2d */
-
-/*=============================================================================================
-*/
-
-static int
-ulaw_write_s2ulaw (SF_PRIVATE *psf, short *ptr, unsigned int len)
-{ unsigned int writecount, thiswrite, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- s2ulaw_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* ulaw_write_s2ulaw */
-
-static int
-ulaw_write_i2ulaw (SF_PRIVATE *psf, int *ptr, unsigned int len)
-{ unsigned int writecount, thiswrite, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- i2ulaw_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* ulaw_write_i2ulaw */
-
-static int
-ulaw_write_f2ulaw (SF_PRIVATE *psf, float *ptr, unsigned int len)
-{ unsigned int writecount, thiswrite, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
- float normfact ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x8000) : 1.0 ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- f2ulaw_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* ulaw_write_f2ulaw */
-
-static int
-ulaw_write_d2ulaw (SF_PRIVATE *psf, double *ptr, unsigned int len, int normalize)
-{ unsigned int writecount, thiswrite, index = 0 ;
- int bytecount, bufferlen ;
- int total = 0 ;
- double normfact ;
-
- normfact = (normalize ? ((double) 0x8000) : 1.0) ;
-
- bufferlen = (SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth ;
- bytecount = len * psf->bytewidth ;
- while (bytecount > 0)
- { writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;
- d2ulaw_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth, normfact) ;
- thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;
- total += thiswrite ;
- if (thiswrite < writecount)
- break ;
- index += thiswrite / psf->bytewidth ;
- bytecount -= thiswrite ;
- } ;
-
- total /= psf->bytewidth ;
- if (total < len)
- psf->error = SFE_SHORT_READ ;
-
- return total ;
-} /* ulaw_write_d2ulaw */
-
-/*=============================================================================================
- * Private static functions and data.
- */
-
-static short ulaw_decode [128] =
-{ -32124, -31100, -30076, -29052, -28028, -27004, -25980, -24956,
- -23932, -22908, -21884, -20860, -19836, -18812, -17788, -16764,
- -15996, -15484, -14972, -14460, -13948, -13436, -12924, -12412,
- -11900, -11388, -10876, -10364, -9852, -9340, -8828, -8316,
- -7932, -7676, -7420, -7164, -6908, -6652, -6396, -6140,
- -5884, -5628, -5372, -5116, -4860, -4604, -4348, -4092,
- -3900, -3772, -3644, -3516, -3388, -3260, -3132, -3004,
- -2876, -2748, -2620, -2492, -2364, -2236, -2108, -1980,
- -1884, -1820, -1756, -1692, -1628, -1564, -1500, -1436,
- -1372, -1308, -1244, -1180, -1116, -1052, -988, -924,
- -876, -844, -812, -780, -748, -716, -684, -652,
- -620, -588, -556, -524, -492, -460, -428, -396,
- -372, -356, -340, -324, -308, -292, -276, -260,
- -244, -228, -212, -196, -180, -164, -148, -132,
- -120, -112, -104, -96, -88, -80, -72, -64,
- -56, -48, -40, -32, -24, -16, -8, 0,
-} ;
-
-static
-unsigned char ulaw_encode [8193] =
-{ 0xFF, 0xFE, 0xFE, 0xFD, 0xFD, 0xFC, 0xFC, 0xFB, 0xFB, 0xFA, 0xFA, 0xF9,
- 0xF9, 0xF8, 0xF8, 0xF7, 0xF7, 0xF6, 0xF6, 0xF5, 0xF5, 0xF4, 0xF4, 0xF3,
- 0xF3, 0xF2, 0xF2, 0xF1, 0xF1, 0xF0, 0xF0, 0xEF, 0xEF, 0xEF, 0xEF, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xED, 0xED, 0xED, 0xED, 0xEC, 0xEC, 0xEC, 0xEC, 0xEB,
- 0xEB, 0xEB, 0xEB, 0xEA, 0xEA, 0xEA, 0xEA, 0xE9, 0xE9, 0xE9, 0xE9, 0xE8,
- 0xE8, 0xE8, 0xE8, 0xE7, 0xE7, 0xE7, 0xE7, 0xE6, 0xE6, 0xE6, 0xE6, 0xE5,
- 0xE5, 0xE5, 0xE5, 0xE4, 0xE4, 0xE4, 0xE4, 0xE3, 0xE3, 0xE3, 0xE3, 0xE2,
- 0xE2, 0xE2, 0xE2, 0xE1, 0xE1, 0xE1, 0xE1, 0xE0, 0xE0, 0xE0, 0xE0, 0xDF,
- 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE,
- 0xDE, 0xDE, 0xDE, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDC,
- 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB,
- 0xDB, 0xDB, 0xDB, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xD9,
- 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
- 0xD8, 0xD8, 0xD8, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD6,
- 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5,
- 0xD5, 0xD5, 0xD5, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD3,
- 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2,
- 0xD2, 0xD2, 0xD2, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD0,
- 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF,
- 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCE,
- 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE,
- 0xCE, 0xCE, 0xCE, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
- 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,
- 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCB,
- 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB,
- 0xCB, 0xCB, 0xCB, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA,
- 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9,
- 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC8,
- 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8,
- 0xC8, 0xC8, 0xC8, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7,
- 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC5,
- 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5,
- 0xC5, 0xC5, 0xC5, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4,
- 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
- 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC2,
- 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2,
- 0xC2, 0xC2, 0xC2, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1,
- 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
- 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBF,
- 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
- 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
- 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
- 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
- 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
- 0xBE, 0xBE, 0xBE, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD,
- 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD,
- 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBC,
- 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
- 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
- 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
- 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
- 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
- 0xBB, 0xBB, 0xBB, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA,
- 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA,
- 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
- 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
- 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
- 0xB8, 0xB8, 0xB8, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7,
- 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7,
- 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB6,
- 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6,
- 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6,
- 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5,
- 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5,
- 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5,
- 0xB5, 0xB5, 0xB5, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
- 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
- 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB3,
- 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3,
- 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3,
- 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2,
- 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2,
- 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2,
- 0xB2, 0xB2, 0xB2, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1,
- 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1,
- 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB0,
- 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0,
- 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0,
- 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
- 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
- 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
- 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
- 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF,
- 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAE,
- 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
- 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
- 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
- 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
- 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE,
- 0xAE, 0xAE, 0xAE, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
- 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
- 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
- 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
- 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
- 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
- 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
- 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
- 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
- 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
- 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAB,
- 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
- 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
- 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
- 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
- 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB,
- 0xAB, 0xAB, 0xAB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
- 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
- 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
- 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
- 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9,
- 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA8,
- 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
- 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
- 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
- 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
- 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8,
- 0xA8, 0xA8, 0xA8, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
- 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
- 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
- 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
- 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
- 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
- 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
- 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
- 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
- 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
- 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA5,
- 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
- 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
- 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
- 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
- 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5,
- 0xA5, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
- 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
- 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
- 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
- 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
- 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
- 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
- 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
- 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
- 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3,
- 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA2,
- 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
- 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
- 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
- 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
- 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2,
- 0xA2, 0xA2, 0xA2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
- 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
- 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
- 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
- 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
- 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
- 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
- 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
- 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
- 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0,
- 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0x9F,
- 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
- 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
- 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
- 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
- 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
- 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
- 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
- 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
- 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
- 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
- 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
- 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
- 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
- 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
- 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
- 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
- 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
- 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
- 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
- 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
- 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
- 0x9E, 0x9E, 0x9E, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D,
- 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D,
- 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D,
- 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D,
- 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D,
- 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D,
- 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D,
- 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D,
- 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D,
- 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D,
- 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
- 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
- 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
- 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
- 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
- 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
- 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
- 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
- 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
- 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
- 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
- 0x9B, 0x9B, 0x9B, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
- 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
- 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
- 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
- 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
- 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
- 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
- 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
- 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
- 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
- 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x98, 0x98, 0x98, 0x98, 0x98,
- 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
- 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
- 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
- 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
- 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
- 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
- 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
- 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
- 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
- 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98,
- 0x98, 0x98, 0x98, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
- 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
- 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
- 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
- 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
- 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
- 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
- 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
- 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
- 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
- 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x96,
- 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
- 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
- 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
- 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
- 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
- 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
- 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
- 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
- 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
- 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96,
- 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x95, 0x95, 0x95, 0x95, 0x95,
- 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
- 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
- 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
- 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
- 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
- 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
- 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
- 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
- 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
- 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
- 0x95, 0x95, 0x95, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
- 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
- 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
- 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
- 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
- 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
- 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
- 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
- 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
- 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94,
- 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x93,
- 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
- 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
- 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
- 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
- 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
- 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
- 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
- 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
- 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
- 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93,
- 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x92, 0x92, 0x92, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
- 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
- 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
- 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
- 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
- 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
- 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
- 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
- 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
- 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91,
- 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x90,
- 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8E, 0x8E, 0x8E, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C,
- 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A,
- 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
- 0x88, 0x88, 0x88, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
- 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x85, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
- 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
- 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00
-} ;
-
-static void
-ulaw2s_array (unsigned char *buffer, unsigned int count, short *ptr, unsigned int index)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { if (buffer [k] & 0x80)
- ptr [index] = -1 * ulaw_decode [((int) buffer [k]) & 0x7F] ;
- else
- ptr [index] = ulaw_decode [((int) buffer [k]) & 0x7F] ;
- index ++ ;
- } ;
-} /* ulaw2s_array */
-
-static void
-ulaw2i_array (unsigned char *buffer, unsigned int count, int *ptr, unsigned int index)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { if (buffer [k] & 0x80)
- ptr [index] = -1 * ulaw_decode [((int) buffer [k]) & 0x7F] ;
- else
- ptr [index] = ulaw_decode [((int) buffer [k]) & 0x7F] ;
- index ++ ;
- } ;
-} /* ulaw2i_array */
-
-static void
-ulaw2f_array (unsigned char *buffer, unsigned int count, float *ptr, unsigned int index, float normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { if (buffer [k] & 0x80)
- ptr [index] = -normfact * ulaw_decode [((int) buffer [k]) & 0x7F] ;
- else
- ptr [index] = normfact * ulaw_decode [((int) buffer [k]) & 0x7F] ;
- index ++ ;
- } ;
-} /* ulaw2f_array */
-
-static void
-ulaw2d_array (unsigned char *buffer, unsigned int count, double *ptr, unsigned int index, double normfact)
-{ int k ;
- for (k = 0 ; k < count ; k++)
- { if (buffer [k] & 0x80)
- ptr [index] = -normfact * ulaw_decode [((int) buffer [k]) & 0x7F] ;
- else
- ptr [index] = normfact * ulaw_decode [((int) buffer [k]) & 0x7F] ;
- index ++ ;
- } ;
-} /* ulaw2d_array */
-
-static void
-s2ulaw_array (short *ptr, unsigned int index, unsigned char *buffer, unsigned int count)
-{ unsigned int k ;
-
- for (k = 0 ; k < count ; k++)
- { if (ptr [index] >= 0)
- buffer [k] = ulaw_encode [ptr [index] / 4] ;
- else
- buffer [k] = 0x7F & ulaw_encode [ptr [index] / -4] ;
- index ++ ;
- } ;
-} /* s2ulaw_array */
-
-static void
-i2ulaw_array (int *ptr, unsigned int index, unsigned char *buffer, unsigned int count)
-{ unsigned int k ;
-
- for (k = 0 ; k < count ; k++)
- { if (ptr [index] >= 0)
- buffer [k] = ulaw_encode [ptr [index] / 4] ;
- else
- buffer [k] = 0x7F & ulaw_encode [ptr [index] / -4] ;
- index ++ ;
- } ;
-} /* i2ulaw_array */
-
-static void
-f2ulaw_array (float *ptr, unsigned int index, unsigned char *buffer, unsigned int count, float normfact)
-{ unsigned int k ;
-
- for (k = 0 ; k < count ; k++)
- { if (ptr [index] >= 0)
- buffer [k] = ulaw_encode [(FLOAT_TO_INT (normfact * ptr [index])) / 4] ;
- else
- buffer [k] = 0x7F & ulaw_encode [(FLOAT_TO_INT (normfact * ptr [index])) / -4] ;
- index ++ ;
- } ;
-} /* f2ulaw_array */
-
-static void
-d2ulaw_array (double *ptr, unsigned int index, unsigned char *buffer, unsigned int count, double normfact)
-{ unsigned int k ;
-
- for (k = 0 ; k < count ; k++)
- { if (ptr [index] >= 0)
- buffer [k] = ulaw_encode [(DOUBLE_TO_INT (normfact * ptr [index])) / 4] ;
- else
- buffer [k] = 0x7F & ulaw_encode [(DOUBLE_TO_INT (normfact * ptr [index])) / -4] ;
- index ++ ;
- } ;
-} /* d2ulaw_array */
-
--- a/common/libsndfile/src/voc.c
+++ /dev/null
@@ -1,376 +1,0 @@
-/*
-** Copyright (C) 2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdarg.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "common.h"
-
-
-/*------------------------------------------------------------------------------
- * Macros to handle big/little endian issues.
-*/
-
-#if (CPU_IS_LITTLE_ENDIAN == 1)
-# define MAKE_MARKER(a,b,c,d) ((a)|((b)<<8)|((c)<<16)|((d)<<24))
-#elif (CPU_IS_BIG_ENDIAN == 1)
-# define MAKE_MARKER(a,b,c,d) (((a)<<24)|((b)<<16)|((c)<<8)|(d))
-#else
-# error "Cannot determine endian-ness of processor."
-#endif
-
-/*------------------------------------------------------------------------------
- * Typedefs for file chunks.
-*/
-
-enum
-{ VOC_TYPE_TERMINATOR = 0,
- VOC_TYPE_SOUND_DATA = 1,
- VOC_TYPE_SOUND_CONTINUE = 2,
- VOC_TYPE_SILENCE = 3,
- VOC_TYPE_MARKER = 4,
- VOC_TYPE_ASCII = 5,
- VOC_TYPE_REPEAT = 6,
- VOC_TYPE_END_REPEAT = 7,
- VOC_TYPE_EXTENDED = 8,
- VOC_TYPE_9 = 9
-} ;
-
-/*------------------------------------------------------------------------------
- * Private static functions.
-*/
-
-static int voc_close (SF_PRIVATE *psf) ;
-
-/*------------------------------------------------------------------------------
-** Public functions.
-*/
-
-int
-voc_open_read (SF_PRIVATE *psf)
-{ char creative [20], type ;
- short version ;
-
- /* Set position to start of file to begin reading header. */
- psf_binheader_readf (psf, "pB", 0, creative, sizeof (creative)) ;
-
- if (creative [sizeof (creative) - 1] != 0x1A)
- return SFE_VOC_NO_CREATIVE ;
-
- /* Terminate the string. */
- creative [sizeof (creative) - 1] = 0 ;
-
- if (strcmp ("Creative Voice File", creative))
- return SFE_VOC_NO_CREATIVE ;
-
- psf_log_printf (psf, "%s\n", creative) ;
-
- psf_binheader_readf (psf, "ww", &(psf->dataoffset), &version) ;
-
- psf_log_printf (psf, "dataoffset : %d\n", psf->dataoffset) ;
- psf_log_printf (psf, "version : %X\n", version) ;
-
- if (version != 0x010A && version != 0x0114)
- return SFE_VOC_BAD_VERSION ;
-
- psf_binheader_readf (psf, "w", &version) ;
- psf_log_printf (psf, "version 2 : %X\n", version) ;
-
- while (1)
- { psf_binheader_readf (psf, "b", &type) ;
-
- switch (type)
- { case VOC_TYPE_TERMINATOR :
- psf_log_printf (psf, " Terminator\n") ;
- break ;
-
- case VOC_TYPE_SOUND_DATA :
- { unsigned char rate_byte, compression ;
- int size ;
-
- psf_binheader_readf (psf, "tbb", &size, &rate_byte, &compression) ;
-
- psf_log_printf (psf, " Sound Data : %d\n", size) ;
- psf_log_printf (psf, " sr : %d => %dHz\n", (rate_byte & 0xFF), 1000000 / (256 - rate_byte)) ;
- psf_log_printf (psf, " comp : %d\n", compression) ;
-
- psf_binheader_readf (psf, "j", size) ;
- } ;
- break ;
-
- case VOC_TYPE_SOUND_CONTINUE :
- { int size ;
-
- psf_binheader_readf (psf, "t", &size) ;
-
- psf_log_printf (psf, " Sound Continue : %d\n", size) ;
-
- psf_binheader_readf (psf, "j", size) ;
- } ;
- break ;
-
- case VOC_TYPE_SILENCE :
- { unsigned char rate_byte ;
- short length ;
-
- psf_log_printf (psf, " Silence\n") ;
- psf_binheader_readf (psf, "wb", &length, &rate_byte) ;
- psf_log_printf (psf, " length : %d\n", length) ;
- psf_log_printf (psf, " sr : %d => %dHz\n", (rate_byte & 0xFF), 1000000 / (256 - rate_byte)) ;
- } ;
- break ;
-
- case VOC_TYPE_MARKER :
- { int size ;
- short value ;
-
- psf_log_printf (psf, " Marker\n") ;
-
- psf_binheader_readf (psf, "tw", &size, &value) ;
-
- psf_log_printf (psf, " size : %d\n", size) ;
- psf_log_printf (psf, " value : %d\n", value) ;
- } ;
- break ;
-
- case VOC_TYPE_ASCII :
- { int size ;
-
- psf_binheader_readf (psf, "t", &size) ;
-
- psf_log_printf (psf, " ASCII : %d\n", size) ;
-
- psf_binheader_readf (psf, "B", psf->header, size) ;
- psf->header [size] = 0 ;
- psf_log_printf (psf, " text : %s\n", psf->header) ;
- } ;
- break ;
-
- case VOC_TYPE_REPEAT :
- { int size ;
- short count ;
-
- psf_binheader_readf (psf, "tw", &size, &count) ;
-
- psf_log_printf (psf, " Marker : %d\n", size) ;
- psf_log_printf (psf, " value : %d\n", count) ;
- } ;
- break ;
-
- case VOC_TYPE_END_REPEAT :
- psf_log_printf (psf, " End Repeat\n") ;
- break ;
-
- case VOC_TYPE_EXTENDED :
- { unsigned char pack, mode ;
- short rate_short ;
- int size, sample_rate ;
-
- psf_binheader_readf (psf, "t", &size) ;
- psf_log_printf (psf, " Extended : %d\n", size) ;
-
- psf_binheader_readf (psf, "wbb", &rate_short, &pack, &mode) ;
- psf_log_printf (psf, " size : %d\n", size) ;
- psf_log_printf (psf, " pack : %d\n", pack) ;
- psf_log_printf (psf, " mode : %d\n", mode) ;
-
- if (mode)
- sample_rate = 128000000 / (65536 - rate_short) ;
- else
- sample_rate = 256000000 / (65536 - rate_short) ;
-
- psf_log_printf (psf, " sr : %d => %dHz\n", (rate_short & 0xFFFF), sample_rate) ;
- psf_binheader_readf (psf, "j", size) ;
- } ;
- break ;
-
- case VOC_TYPE_9 :
- { unsigned char bitwidth, channels, byte6 ;
- int sample_rate, size, bytecount = 0 ;
-
- psf_binheader_readf (psf, "t", &size) ;
- psf_log_printf (psf, " Type 9 : %d\n", size) ;
-
- bytecount = psf_binheader_readf (psf, "lbbb", &sample_rate, &bitwidth, &channels, &byte6) ;
-
- psf_log_printf (psf, " sample rate : %d\n", sample_rate) ;
- psf_log_printf (psf, " bit width : %d\n", bitwidth) ;
- psf_log_printf (psf, " channels : %d\n", channels) ;
-
- psf_binheader_readf (psf, "j", size - bytecount) ;
- } ;
- break ;
-
- default :
- psf_log_printf (psf, "Unknown type : %d\n", type & 0xFF) ;
- return SFE_VOC_BAD_MARKER ;
- } ;
-
- if (ftell (psf->file) >= psf->filelength)
- break ;
- } ;
-
-
-
- psf->sf.seekable = SF_TRUE ;
-
- psf->close = (func_close) voc_close ;
-
- return 0 ;
-} /* voc_open_read */
-
-int
-voc_open_write (SF_PRIVATE *psf)
-{
-
- return 0 ;
-} /* voc_open_write */
-
-/*------------------------------------------------------------------------------
-*/
-
-static int
-voc_close (SF_PRIVATE *psf)
-{
- if (psf->mode == SF_MODE_WRITE)
- { /* Now we know for certain the length of the file we can re-write
- ** correct values for the FORM, 8SVX and BODY chunks.
- */
-
- } ;
-
- if (psf->fdata)
- free (psf->fdata) ;
- psf->fdata = NULL ;
-
- return 0 ;
-} /* voc_close */
-
-
-/*------------------------------------------------------------------------------------
-
-Creative Voice (VOC) file format
---------------------------------
-
-~From: galt@dsd.es.com
-
-(byte numbers are hex!)
-
- HEADER (bytes 00-19)
- Series of DATA BLOCKS (bytes 1A+) [Must end w/ Terminator Block]
-
-- ---------------------------------------------------------------
-
-HEADER:
-=======
- byte # Description
- ------ ------------------------------------------
- 00-12 "Creative Voice File"
- 13 1A (eof to abort printing of file)
- 14-15 Offset of first datablock in .voc file (std 1A 00
- in Intel Notation)
- 16-17 Version number (minor,major) (VOC-HDR puts 0A 01)
- 18-19 1's Comp of Ver. # + 1234h (VOC-HDR puts 29 11)
-
-- ---------------------------------------------------------------
-
-DATA BLOCK:
-===========
-
- Data Block: TYPE(1-byte), SIZE(3-bytes), INFO(0+ bytes)
- NOTE: Terminator Block is an exception -- it has only the TYPE byte.
-
- TYPE Description Size (3-byte int) Info
- ---- ----------- ----------------- -----------------------
- 00 Terminator (NONE) (NONE)
- 01 Sound data 2+length of data *
- 02 Sound continue length of data Voice Data
- 03 Silence 3 **
- 04 Marker 2 Marker# (2 bytes)
- 05 ASCII length of string null terminated string
- 06 Repeat 2 Count# (2 bytes)
- 07 End repeat 0 (NONE)
- 08 Extended 4 ***
-
- *Sound Info Format:
- ---------------------
- 00 Sample Rate
- 01 Compression Type
- 02+ Voice Data
-
- **Silence Info Format:
- ----------------------------
- 00-01 Length of silence - 1
- 02 Sample Rate
-
-
- ***Extended Info Format:
- ---------------------
- 00-01 Time Constant: Mono: 65536 - (256000000/sample_rate)
- Stereo: 65536 - (25600000/(2*sample_rate))
- 02 Pack
- 03 Mode: 0 = mono
- 1 = stereo
-
-
- Marker# -- Driver keeps the most recent marker in a status byte
- Count# -- Number of repetitions + 1
- Count# may be 1 to FFFE for 0 - FFFD repetitions
- or FFFF for endless repetitions
- Sample Rate -- SR byte = 256-(1000000/sample_rate)
- Length of silence -- in units of sampling cycle
- Compression Type -- of voice data
- 8-bits = 0
- 4-bits = 1
- 2.6-bits = 2
- 2-bits = 3
- Multi DAC = 3+(# of channels) [interesting--
- this isn't in the developer's manual]
-
-
----------------------------------------------------------------------------------
-Addendum submitted by Votis Kokavessis:
-
-After some experimenting with .VOC files I found out that there is a Data Block
-Type 9, which is not covered in the VOC.TXT file. Here is what I was able to discover
-about this block type:
-
-
-TYPE: 09
-SIZE: 12 + length of data
-INFO: 12 (twelve) bytes
-
-INFO STRUCTURE:
-
-Bytes 0-1: (Word) Sample Rate (e.g. 44100)
-Bytes 2-3: zero (could be that bytes 0-3 are a DWord for Sample Rate)
-Byte 4: Sample Size in bits (e.g. 16)
-Byte 5: Number of channels (e.g. 1 for mono, 2 for stereo)
-Byte 6: Unknown (equal to 4 in all files I examined)
-Bytes 7-11: zero
-
-
--------------------------------------------------------------------------------------*/
-
--- a/common/libsndfile/src/wav.c
+++ /dev/null
@@ -1,832 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
-#include <time.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "common.h"
-#include "wav.h"
-
-/*------------------------------------------------------------------------------
-** List of known WAV format tags
-*/
-
-enum
-{
- 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_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_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_AF18 = 0x0024, /* Audiofile, Inc. */
- WAVE_FORMAT_APTX = 0x0025, /* Audio Processing Technology */
- WAVE_FORMAT_AUDIOFILE_AF10 = 0x0026, /* Audiofile, Inc. */
-
- 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_ROCKWELL_ADPCM = 0x003B, /* Rockwell International */
- WAVE_FORMAT_ROCKWELL_DIGITALK = 0x003C, /* Rockwell International */
-
- WAVE_FORMAT_G721_ADPCM = 0x0040, /* Antex Electronics Corporation */
- WAVE_FORMAT_MPEG = 0x0050, /* Microsoft Corporation */
-
- WAVE_FORMAT_MPEGLAYER3 = 0x0055, /* MPEG 3 Layer 1 */
-
- 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_CREATIVE_ADPCM = 0x0200, /* Creative Labs, Inc */
-
- WAVE_FORMAT_FM_TOWNS_SND = 0x0300, /* Fujitsu Corp. */
- 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_EXTENSIBLE = 0xFFFE
-} ;
-
-#define FACT_CHUNK_SIZE sizeof (int)
-
-/*------------------------------------------------------------------------------
- * Macros to handle big/little endian issues.
- */
-
-#define RIFF_MARKER (MAKE_MARKER ('R', 'I', 'F', 'F'))
-#define WAVE_MARKER (MAKE_MARKER ('W', 'A', 'V', 'E'))
-#define fmt_MARKER (MAKE_MARKER ('f', 'm', 't', ' '))
-#define data_MARKER (MAKE_MARKER ('d', 'a', 't', 'a'))
-#define fact_MARKER (MAKE_MARKER ('f', 'a', 'c', 't'))
-#define PEAK_MARKER (MAKE_MARKER ('P', 'E', 'A', 'K'))
-
-#define cue_MARKER (MAKE_MARKER ('c', 'u', 'e', ' '))
-#define LIST_MARKER (MAKE_MARKER ('L', 'I', 'S', 'T'))
-#define slnt_MARKER (MAKE_MARKER ('s', 'l', 'n', 't'))
-#define wavl_MARKER (MAKE_MARKER ('w', 'a', 'v', 'l'))
-#define INFO_MARKER (MAKE_MARKER ('I', 'N', 'F', 'O'))
-#define plst_MARKER (MAKE_MARKER ('p', 'l', 's', 't'))
-#define adtl_MARKER (MAKE_MARKER ('a', 'd', 't', 'l'))
-#define labl_MARKER (MAKE_MARKER ('l', 'a', 'b', 'l'))
-#define note_MARKER (MAKE_MARKER ('n', 'o', 't', 'e'))
-#define smpl_MARKER (MAKE_MARKER ('s', 'm', 'p', 'l'))
-#define bext_MARKER (MAKE_MARKER ('b', 'e', 'x', 't'))
-#define MEXT_MARKER (MAKE_MARKER ('M', 'E', 'X', 'T'))
-#define DISP_MARKER (MAKE_MARKER ('D', 'I', 'S', 'P'))
-#define acid_MARKER (MAKE_MARKER ('a', 'c', 'i', 'd'))
-#define PAD_MARKER (MAKE_MARKER ('P', 'A', 'D', ' '))
-#define adtl_MARKER (MAKE_MARKER ('a', 'd', 't', 'l'))
-
-#define ISFT_MARKER (MAKE_MARKER ('I', 'S', 'F', 'T'))
-#define ICRD_MARKER (MAKE_MARKER ('I', 'C', 'R', 'D'))
-#define ICOP_MARKER (MAKE_MARKER ('I', 'C', 'O', 'P'))
-#define IART_MARKER (MAKE_MARKER ('I', 'A', 'R', 'T'))
-#define INAM_MARKER (MAKE_MARKER ('I', 'N', 'A', 'M'))
-#define IENG_MARKER (MAKE_MARKER ('I', 'E', 'N', 'G'))
-#define IART_MARKER (MAKE_MARKER ('I', 'A', 'R', 'T'))
-#define ICOP_MARKER (MAKE_MARKER ('I', 'C', 'O', 'P'))
-#define IPRD_MARKER (MAKE_MARKER ('I', 'P', 'R', 'D'))
-#define ISRC_MARKER (MAKE_MARKER ('I', 'S', 'R', 'C'))
-#define ISBJ_MARKER (MAKE_MARKER ('I', 'S', 'B', 'J'))
-#define ICMT_MARKER (MAKE_MARKER ('I', 'C', 'M', 'T'))
-
-
-
-enum {
- HAVE_RIFF = 0x01,
- HAVE_WAVE = 0x02,
- HAVE_fmt = 0x04,
- HAVE_fact = 0x08,
- HAVE_PEAK = 0x10,
- HAVE_data = 0x20
-} ;
-
-/*------------------------------------------------------------------------------
- * Private static functions.
- */
-
-static int wav_close (SF_PRIVATE *psf) ;
-
-static int read_fmt_chunk (SF_PRIVATE *psf, WAV_FMT *wav_fmt) ;
-static int wav_write_header (SF_PRIVATE *psf) ;
-static int wav_write_tailer (SF_PRIVATE *psf) ;
-
-static int wav_subchunk_parse (SF_PRIVATE *psf, int chunk) ;
-
-static const char* wav_format_str (int k) ;
-
-/*------------------------------------------------------------------------------
-** Public functions.
-*/
-
-int
-wav_open_read (SF_PRIVATE *psf)
-{ WAV_FMT wav_fmt ;
- FACT_CHUNK fact_chunk ;
- unsigned int dword, marker, RIFFsize ;
- int parsestage = 0, error, format = 0 ;
- char *cptr ;
-
- /* Set position to start of file to begin reading header. */
- psf_binheader_readf (psf, "p", 0) ;
-
- while (1)
- { psf_binheader_readf (psf, "m", &marker) ;
- switch (marker)
- { case RIFF_MARKER :
- if (parsestage)
- return SFE_WAV_NO_RIFF ;
-
- psf_binheader_readf (psf, "l", &RIFFsize) ;
-
- if (psf->filelength < RIFFsize + 2 * sizeof (dword))
- { dword = psf->filelength - 2 * sizeof (dword);
- psf_log_printf (psf, "RIFF : %d (should be %d)\n", RIFFsize, dword) ;
- RIFFsize = dword ;
- }
- else
- psf_log_printf (psf, "RIFF : %d\n", RIFFsize) ;
- parsestage |= HAVE_RIFF ;
- break ;
-
- case WAVE_MARKER :
- if ((parsestage & HAVE_RIFF) != HAVE_RIFF)
- return SFE_WAV_NO_WAVE ;
- psf_log_printf (psf, "WAVE\n") ;
- parsestage |= HAVE_WAVE ;
- break ;
-
- case fmt_MARKER :
- if ((parsestage & (HAVE_RIFF | HAVE_WAVE)) != (HAVE_RIFF | HAVE_WAVE))
- return SFE_WAV_NO_FMT ;
- if ((error = read_fmt_chunk (psf, &wav_fmt)))
- return error ;
-
- format = wav_fmt.format ;
- parsestage |= HAVE_fmt ;
- break ;
-
- case data_MARKER :
- if ((parsestage & (HAVE_RIFF | HAVE_WAVE | HAVE_fmt)) != (HAVE_RIFF | HAVE_WAVE | HAVE_fmt))
- return SFE_WAV_NO_DATA ;
-
- psf_binheader_readf (psf, "l", &(psf->datalength)) ;
-
- psf->dataoffset = ftell (psf->file) ;
-
- if (psf->filelength < psf->dataoffset + psf->datalength)
- { psf_log_printf (psf, "data : %d (should be %d)\n", psf->datalength, psf->filelength - psf->dataoffset) ;
- psf->datalength = psf->filelength - psf->dataoffset ;
- }
- else
- psf_log_printf (psf, "data : %d\n", psf->datalength) ;
-
- if (format == WAVE_FORMAT_MS_ADPCM && psf->datalength % 2)
- { psf->datalength ++ ;
- psf_log_printf (psf, "*** Data length odd. Increasing it by 1.\n") ;
- } ;
-
- parsestage |= HAVE_data ;
-
- if (! psf->sf.seekable)
- break ;
-
- /* Seek past data and continue reading header. */
- fseek (psf->file, psf->datalength, SEEK_CUR) ;
-
- dword = ftell (psf->file) ;
- if (dword != (long) (psf->dataoffset + psf->datalength))
- psf_log_printf (psf, "*** fseek past end error ***\n", dword, psf->dataoffset + psf->datalength) ;
- break ;
-
- case fact_MARKER :
- if ((parsestage & (HAVE_RIFF | HAVE_WAVE | HAVE_fmt)) != (HAVE_RIFF | HAVE_WAVE | HAVE_fmt))
- return SFE_WAV_BAD_FACT ;
-
- psf_binheader_readf (psf, "ll", &dword, &(fact_chunk.samples)) ;
-
- if (dword > sizeof (fact_chunk))
- psf_binheader_readf (psf, "j", (int) (dword - sizeof (fact_chunk))) ;
-
- psf_log_printf (psf, "%D : %d\n", marker, dword) ;
- psf_log_printf (psf, " samples : %d\n", fact_chunk.samples) ;
- parsestage |= HAVE_fact ;
- break ;
-
- case PEAK_MARKER :
- if ((parsestage & (HAVE_RIFF | HAVE_WAVE | HAVE_fmt)) != (HAVE_RIFF | HAVE_WAVE | HAVE_fmt))
- return SFE_WAV_PEAK_B4_FMT ;
-
- psf_binheader_readf (psf, "l", &dword) ;
-
- psf_log_printf (psf, "%D : %d\n", marker, dword) ;
- if (dword > sizeof (psf->peak))
- { psf_binheader_readf (psf, "j", dword) ;
- psf_log_printf (psf, "*** File PEAK chunk bigger than sizeof (PEAK_CHUNK).\n") ;
- return SFE_WAV_BAD_PEAK ;
- } ;
- if (dword != sizeof (psf->peak) - sizeof (psf->peak.peak) + psf->sf.channels * sizeof (PEAK_POS))
- { psf_binheader_readf (psf, "j", dword) ;
- psf_log_printf (psf, "*** File PEAK chunk size doesn't fit with number of channels.\n") ;
- return SFE_WAV_BAD_PEAK ;
- } ;
-
- psf_binheader_readf (psf, "ll", &(psf->peak.version), &(psf->peak.timestamp)) ;
-
- if (psf->peak.version != 1)
- psf_log_printf (psf, " version : %d *** (should be version 1)\n", psf->peak.version) ;
- else
- psf_log_printf (psf, " version : %d\n", psf->peak.version) ;
-
- psf_log_printf (psf, " time stamp : %d\n", psf->peak.timestamp) ;
- psf_log_printf (psf, " Ch Position Value\n") ;
-
- cptr = (char *) psf->buffer ;
- for (dword = 0 ; dword < psf->sf.channels ; dword++)
- { psf_binheader_readf (psf, "fl", &(psf->peak.peak[dword].value),
- &(psf->peak.peak[dword].position)) ;
-
- snprintf (cptr, sizeof (psf->buffer), " %2d %-12d %g\n",
- dword, psf->peak.peak[dword].position, psf->peak.peak[dword].value) ;
- cptr [sizeof (psf->buffer) - 1] = 0 ;
- psf_log_printf (psf, cptr) ;
- };
-
- psf->has_peak = SF_TRUE ;
- break ;
-
- case INFO_MARKER :
- case LIST_MARKER :
- psf_log_printf (psf, "%D\n", marker) ;
- if ((error = wav_subchunk_parse (psf, marker)))
- return error ;
- break ;
-
- case bext_MARKER :
- case cue_MARKER :
- case DISP_MARKER :
- case MEXT_MARKER :
- psf_binheader_readf (psf, "l", &dword);
- psf_log_printf (psf, "%D : %d\n", marker, dword) ;
- dword += (dword & 1) ;
- psf_binheader_readf (psf, "j", dword) ;
- break ;
-
- case smpl_MARKER :
- case acid_MARKER :
- case PAD_MARKER :
- psf_binheader_readf (psf, "l", &dword);
- psf_log_printf (psf, " *** %D : %d\n", marker, dword) ;
- dword += (dword & 1) ;
- psf_binheader_readf (psf, "j", dword) ;
- break ;
-
-
- default :
- if (isprint ((marker >> 24) & 0xFF) && isprint ((marker >> 16) & 0xFF)
- && isprint ((marker >> 8) & 0xFF) && isprint (marker & 0xFF))
- { psf_binheader_readf (psf, "l", &dword);
- psf_log_printf (psf, "*** %D : %d (unknown marker)\n", marker, dword) ;
-
- psf_binheader_readf (psf, "j", dword);
- break ;
- } ;
- if (ftell (psf->file) & 0x03)
- { psf_log_printf (psf, " Unknown chunk marker at position %d. Resynching.\n", dword - 4) ;
- psf_binheader_readf (psf, "j", -3) ;
- break ;
- } ;
- psf_log_printf (psf, "*** Unknown chunk marker : %X. Exiting parser.\n", marker) ;
- break ;
- } ; /* switch (dword) */
-
- if (! psf->sf.seekable && (parsestage & HAVE_data))
- break ;
-
- if (ferror (psf->file))
- { psf_log_printf (psf, "*** Error on file handle. ***\n", marker) ;
- clearerr (psf->file) ;
- break ;
- } ;
-
- if (ftell (psf->file) >= (int) (psf->filelength - (2 * sizeof (dword))))
- break ;
- } ; /* while (1) */
-
- if (! psf->dataoffset)
- return SFE_WAV_NO_DATA ;
-
- psf->current = 0 ;
- psf->endian = SF_ENDIAN_LITTLE ; /* All WAV files are little endian. */
- psf->sf.sections = 1 ;
-
- fseek (psf->file, psf->dataoffset, SEEK_SET) ;
-
- psf->close = (func_close) wav_close ;
-
- if (psf->blockwidth)
- { if (psf->filelength - psf->dataoffset < psf->datalength)
- psf->sf.samples = (psf->filelength - psf->dataoffset) / psf->blockwidth ;
- else
- psf->sf.samples = psf->datalength / psf->blockwidth ;
- } ;
-
- switch (format)
- { case WAVE_FORMAT_PCM :
- case WAVE_FORMAT_EXTENSIBLE :
- psf->sf.format = (SF_FORMAT_WAV | SF_FORMAT_PCM) ;
- if (psf->bytewidth == 1)
- psf->chars = SF_CHARS_UNSIGNED ;
-
- if ((error = pcm_read_init (psf)))
- return error ;
- return 0 ;
-
- case WAVE_FORMAT_IEEE_FLOAT :
- psf->sf.format = (SF_FORMAT_WAV | SF_FORMAT_FLOAT) ;
- float32_read_init (psf) ;
- return 0 ;
-
- default : return SFE_UNIMPLEMENTED ;
- } ;
-
- return 0 ;
-} /* wav_open_read */
-
-/*------------------------------------------------------------------------------
- */
-
-int
-wav_open_write (SF_PRIVATE *psf)
-{ unsigned int subformat ;
- int error ;
-
- if ((psf->sf.format & SF_FORMAT_TYPEMASK) != SF_FORMAT_WAV)
- return SFE_BAD_OPEN_FORMAT ;
-
- psf->endian = SF_ENDIAN_LITTLE ; /* All WAV files are little endian. */
- psf->sf.seekable = SF_TRUE ;
- psf->error = 0 ;
-
- subformat = psf->sf.format & SF_FORMAT_SUBMASK ;
- if (subformat == SF_FORMAT_ULAW || subformat == SF_FORMAT_ALAW)
- psf->bytewidth = 1 ;
- else
- psf->bytewidth = BITWIDTH2BYTES (psf->sf.pcmbitwidth) ;
-
- psf->blockwidth = psf->bytewidth * psf->sf.channels ;
-
- /* Set sample count artifically high and fix later. */
- psf->sf.samples = 0x7FFFFFFF / psf->blockwidth ;
- psf->datalength = psf->blockwidth * psf->sf.samples ;
- psf->filelength = 0x7FFFFFFF ;
-
- /* Set standard wav_close and write_header now, may be overridden in wav_write_header. */
- psf->close = (func_close) wav_close ;
- psf->write_header = (func_wr_hdr) wav_write_header ;
-
- if ((error = wav_write_header (psf)))
- return error ;
-
- return 0 ;
-} /* wav_open_write */
-
-/*------------------------------------------------------------------------------
- */
-
-static int
-wav_close (SF_PRIVATE *psf)
-{
- if (psf->mode == SF_MODE_WRITE)
- { /* Now we know for certain the length of the file we can
- * re-write correct values for the RIFF and data chunks.
- */
-
- fseek (psf->file, 0, SEEK_END) ;
- psf->tailstart = ftell (psf->file) ;
- wav_write_tailer (psf) ;
-
- fseek (psf->file, 0, SEEK_END) ;
- psf->filelength = ftell (psf->file) ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- psf->datalength = psf->filelength - psf->dataoffset - (psf->filelength - psf->tailstart) ;
- psf->sf.samples = psf->datalength / (psf->bytewidth * psf->sf.channels) ;
-
- wav_write_header (psf) ;
- } ;
-
- if (psf->fdata)
- free (psf->fdata) ;
- psf->fdata = NULL ;
-
- return 0 ;
-} /* wav_close */
-
-/*=========================================================================
-** Private functions.
-*/
-
-static int
-read_fmt_chunk (SF_PRIVATE *psf, WAV_FMT *wav_fmt)
-{ unsigned int bytesread, k, structsize, bytespersec = 0 ;
-
- memset (wav_fmt, 0, sizeof (WAV_FMT)) ;
-
- psf_binheader_readf (psf, "l", &structsize) ;
-
- psf_log_printf (psf, "fmt : %d\n", structsize) ;
-
- if (structsize < 16)
- return SFE_WAV_FMT_SHORT ;
- if (structsize > sizeof (WAV_FMT))
- return SFE_WAV_FMT_TOO_BIG ;
-
- /* Read the minimal WAV file header here. */
- bytesread =
- psf_binheader_readf (psf, "wwllww", &(wav_fmt->format), &(wav_fmt->min.channels),
- &(wav_fmt->min.samplerate), &(wav_fmt->min.bytespersec),
- &(wav_fmt->min.blockalign), &(wav_fmt->min.bitwidth)) ;
-
- psf_log_printf (psf, " Format : 0x%X => %s\n", wav_fmt->format, wav_format_str (wav_fmt->format)) ;
- psf_log_printf (psf, " Channels : %d\n", wav_fmt->min.channels) ;
- psf_log_printf (psf, " Sample Rate : %d\n", wav_fmt->min.samplerate) ;
- psf_log_printf (psf, " Block Align : %d\n", wav_fmt->min.blockalign) ;
-
- if (wav_fmt->format == WAVE_FORMAT_GSM610 && wav_fmt->min.bitwidth != 0)
- psf_log_printf (psf, " Bit Width : %d (should be 0)\n", wav_fmt->min.bitwidth) ;
- else
- psf_log_printf (psf, " Bit Width : %d\n", wav_fmt->min.bitwidth) ;
-
- psf->sf.samplerate = wav_fmt->min.samplerate ;
- psf->sf.samples = 0 ; /* Correct this when reading data chunk. */
- psf->sf.channels = wav_fmt->min.channels ;
-
- switch (wav_fmt->format)
- { case WAVE_FORMAT_PCM :
- case WAVE_FORMAT_IEEE_FLOAT :
- bytespersec = wav_fmt->min.samplerate * wav_fmt->min.blockalign ;
- if (wav_fmt->min.bytespersec != bytespersec)
- psf_log_printf (psf, " Bytes/sec : %d (should be %d)\n", wav_fmt->min.bytespersec, bytespersec) ;
- else
- psf_log_printf (psf, " Bytes/sec : %d\n", wav_fmt->min.bytespersec) ;
-
- psf->sf.pcmbitwidth = wav_fmt->min.bitwidth ;
- psf->bytewidth = BITWIDTH2BYTES (wav_fmt->min.bitwidth) ;
- break ;
-
- case WAVE_FORMAT_EXTENSIBLE :
- if (wav_fmt->ext.bytespersec / wav_fmt->ext.blockalign != wav_fmt->ext.samplerate)
- psf_log_printf (psf, " Bytes/sec : %d (should be %d)\n", wav_fmt->ext.bytespersec, wav_fmt->ext.samplerate * wav_fmt->ext.blockalign) ;
- else
- psf_log_printf (psf, " Bytes/sec : %d\n", wav_fmt->ext.bytespersec) ;
-
- bytesread +=
- psf_binheader_readf (psf, "wwl", &(wav_fmt->ext.extrabytes), &(wav_fmt->ext.validbits),
- &(wav_fmt->ext.channelmask)) ;
-
- psf_log_printf (psf, " Valid Bits : %d\n", wav_fmt->ext.validbits) ;
- psf_log_printf (psf, " Channel Mask : 0x%X\n", wav_fmt->ext.channelmask) ;
-
- bytesread +=
- psf_binheader_readf (psf, "lww", &(wav_fmt->ext.esf.esf_field1), &(wav_fmt->ext.esf.esf_field2),
- &(wav_fmt->ext.esf.esf_field3)) ;
-
- psf_log_printf (psf, " Subformat\n") ;
- psf_log_printf (psf, " esf_field1 : 0x%X\n", wav_fmt->ext.esf.esf_field1) ;
- psf_log_printf (psf, " esf_field2 : 0x%X\n", wav_fmt->ext.esf.esf_field2) ;
- psf_log_printf (psf, " esf_field3 : 0x%X\n", wav_fmt->ext.esf.esf_field3) ;
- psf_log_printf (psf, " esf_field4 : ") ;
- for (k = 0 ; k < 8 ; k++)
- { bytesread += psf_binheader_readf (psf, "b", &(wav_fmt->ext.esf.esf_field4 [k])) ;
- psf_log_printf (psf, "0x%X ", wav_fmt->ext.esf.esf_field4 [k] & 0xFF) ;
- } ;
- psf_log_printf (psf, "\n") ;
- psf->sf.pcmbitwidth = wav_fmt->ext.bitwidth ;
- psf->bytewidth = BITWIDTH2BYTES (wav_fmt->ext.bitwidth) ;
- break ;
-
- default : break ;
- } ;
-
- if (bytesread > structsize)
- { psf_log_printf (psf, "*** read_fmt_chunk (bytesread > structsize)\n") ;
- return SFE_WAV_FMT_SHORT ;
- }
- else
- fread (psf->buffer, 1, structsize - bytesread, psf->file) ;
-
- psf->blockwidth = wav_fmt->min.channels * psf->bytewidth ;
-
- return 0 ;
-} /* read_fmt_chunk */
-
-static int
-wav_write_header (SF_PRIVATE *psf)
-{ unsigned int fmt_size ;
- int k, error, subformat ;
-
- /* Reset the current header length to zero. */
- psf->header [0] = 0 ;
- psf->headindex = 0 ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- /* RIFF marker, length, WAVE and 'fmt ' markers. */
- psf_binheader_writef (psf, "mlmm", RIFF_MARKER, psf->filelength - 8, WAVE_MARKER, fmt_MARKER) ;
-
- subformat = psf->sf.format & SF_FORMAT_SUBMASK ;
-
- switch (subformat)
- { case SF_FORMAT_PCM :
- psf->sf.format = (SF_FORMAT_WAV | SF_FORMAT_PCM) ;
-
- if (psf->bytewidth == 1)
- psf->chars = SF_CHARS_UNSIGNED ;
-
- if ((error = pcm_write_init (psf)))
- return error ;
-
- fmt_size = 2 + 2 + 4 + 4 + 2 + 2 ;
-
- /* fmt : format, channels, samplerate */
- psf_binheader_writef (psf, "lwwl", fmt_size, WAVE_FORMAT_PCM, psf->sf.channels, psf->sf.samplerate) ;
- /* fmt : bytespersec */
- psf_binheader_writef (psf, "l", psf->sf.samplerate * psf->bytewidth * psf->sf.channels) ;
- /* fmt : blockalign, bitwidth */
- psf_binheader_writef (psf, "ww", psf->bytewidth * psf->sf.channels, psf->sf.pcmbitwidth) ;
- break ;
-
- case SF_FORMAT_FLOAT :
- psf->sf.format = (SF_FORMAT_WAV | SF_FORMAT_FLOAT) ;
-
- /* Add the peak chunk to floating point files. */
- psf->has_peak = SF_TRUE ;
- psf->peak_loc = SF_PEAK_START ;
- float32_write_init (psf) ;
-
- fmt_size = 2 + 2 + 4 + 4 + 2 + 2 ;
-
- /* fmt : format, channels, samplerate */
- psf_binheader_writef (psf, "lwwl", fmt_size, WAVE_FORMAT_IEEE_FLOAT, psf->sf.channels, psf->sf.samplerate) ;
- /* fmt : bytespersec */
- psf_binheader_writef (psf, "l", psf->sf.samplerate * psf->bytewidth * psf->sf.channels) ;
- /* fmt : blockalign, bitwidth */
- psf_binheader_writef (psf, "ww", psf->bytewidth * psf->sf.channels, psf->sf.pcmbitwidth) ;
-
- /* Write 'fact' chunk. */
- psf_binheader_writef (psf, "mll", fact_MARKER, FACT_CHUNK_SIZE, psf->sf.samples) ;
- break ;
-
- default : return SFE_UNIMPLEMENTED ;
- } ;
-
- if (psf->has_peak && psf->peak_loc == SF_PEAK_START)
- { psf_binheader_writef (psf, "ml", PEAK_MARKER,
- sizeof (psf->peak) - sizeof (psf->peak.peak) + psf->sf.channels * sizeof (PEAK_POS)) ;
- psf_binheader_writef (psf, "ll", 1, time (NULL)) ;
- for (k = 0 ; k < psf->sf.channels ; k++)
- psf_binheader_writef (psf, "fl", psf->peak.peak[k].value, psf->peak.peak[k].position) ;
- } ;
-
- psf_binheader_writef (psf, "ml", data_MARKER, psf->datalength) ;
- fwrite (psf->header, psf->headindex, 1, psf->file) ;
-
- psf->dataoffset = psf->headindex ;
-
- return 0 ;
-} /* wav_write_header */
-
-static int
-wav_write_tailer (SF_PRIVATE *psf)
-{ int k ;
-
- /* Reset the current header buffer length to zero. */
- psf->header [0] = 0 ;
- psf->headindex = 0 ;
- fseek (psf->file, 0, SEEK_END) ;
-
- if (psf->has_peak && psf->peak_loc == SF_PEAK_END)
- { psf_binheader_writef (psf, "ml", PEAK_MARKER,
- sizeof (psf->peak) - sizeof (psf->peak.peak) + psf->sf.channels * sizeof (PEAK_POS)) ;
- psf_binheader_writef (psf, "ll", 1, time (NULL)) ;
- for (k = 0 ; k < psf->sf.channels ; k++)
- psf_binheader_writef (psf, "fl", psf->peak.peak[k].value, psf->peak.peak[k].position) ; /* XXXXX */
- } ;
-
- if (psf->headindex > 0)
- fwrite (psf->header, psf->headindex, 1, psf->file) ;
-
- return 0 ;
-} /* wav_write_tailer */
-
-static int
-wav_subchunk_parse (SF_PRIVATE *psf, int chunk)
-{ unsigned int dword, bytesread, length ;
-
- bytesread = psf_binheader_readf (psf, "l", &length);
-
- while (bytesread < length)
- { bytesread += psf_binheader_readf (psf, "m", &chunk);
-
- switch (chunk)
- { case adtl_MARKER :
- case INFO_MARKER :
- /* These markers don't contain anything. */
- psf_log_printf (psf, " %D\n", chunk) ;
- break ;
-
-
- case IART_MARKER :
- case ICMT_MARKER :
- case ICOP_MARKER :
- case ICRD_MARKER :
- case IENG_MARKER :
-
- case INAM_MARKER :
- case IPRD_MARKER :
- case ISBJ_MARKER :
- case ISFT_MARKER :
- case ISRC_MARKER :
- bytesread += psf_binheader_readf (psf, "l", &dword);
- dword += (dword & 1) ;
- if (dword > sizeof (psf->buffer))
- { psf_log_printf (psf, " *** %D : %d (too big)\n", chunk, dword) ;
- return SFE_INTERNAL ;
- } ;
- bytesread += psf_binheader_readf (psf, "B", psf->buffer, dword) ;
- psf->buffer [dword - 1] = 0 ;
- psf_log_printf (psf, " %D : %s\n", chunk, psf->buffer) ;
- break ;
-
- case labl_MARKER :
- case note_MARKER :
- bytesread += psf_binheader_readf (psf, "l", &dword);
- dword += (dword & 1) ;
- psf_binheader_readf (psf, "j", dword) ;
- bytesread += dword ;
- psf_log_printf (psf, " %D : %d\n", chunk, dword) ;
- break ;
-
- default :
- bytesread += psf_binheader_readf (psf, "l", &dword);
- dword += (dword & 1) ;
- bytesread += psf_binheader_readf (psf, "j", dword) ;
- psf_log_printf (psf, " *** %D : %d\n", chunk, dword) ;
- break ;
- } ;
- } ;
-
- return 0 ;
-} /* wav_subchunk_parse */
-
-static char const*
-wav_format_str (int k)
-{ switch (k)
- { case WAVE_FORMAT_UNKNOWN :
- return "WAVE_FORMAT_UNKNOWN" ;
- case WAVE_FORMAT_PCM :
- return "WAVE_FORMAT_PCM " ;
- case WAVE_FORMAT_MS_ADPCM :
- return "WAVE_FORMAT_MS_ADPCM" ;
- case WAVE_FORMAT_IEEE_FLOAT :
- return "WAVE_FORMAT_IEEE_FLOAT" ;
- case WAVE_FORMAT_IBM_CVSD :
- return "WAVE_FORMAT_IBM_CVSD" ;
- case WAVE_FORMAT_ALAW :
- return "WAVE_FORMAT_ALAW" ;
- case WAVE_FORMAT_MULAW :
- return "WAVE_FORMAT_MULAW" ;
- case WAVE_FORMAT_OKI_ADPCM :
- return "WAVE_FORMAT_OKI_ADPCM" ;
- case WAVE_FORMAT_IMA_ADPCM :
- return "WAVE_FORMAT_IMA_ADPCM" ;
- case WAVE_FORMAT_MEDIASPACE_ADPCM :
- return "WAVE_FORMAT_MEDIASPACE_ADPCM" ;
- case WAVE_FORMAT_SIERRA_ADPCM :
- return "WAVE_FORMAT_SIERRA_ADPCM" ;
- case WAVE_FORMAT_G723_ADPCM :
- return "WAVE_FORMAT_G723_ADPCM" ;
- case WAVE_FORMAT_DIGISTD :
- return "WAVE_FORMAT_DIGISTD" ;
- case WAVE_FORMAT_DIGIFIX :
- return "WAVE_FORMAT_DIGIFIX" ;
- case WAVE_FORMAT_DIALOGIC_OKI_ADPCM :
- return "WAVE_FORMAT_DIALOGIC_OKI_ADPCM" ;
- case WAVE_FORMAT_MEDIAVISION_ADPCM :
- return "WAVE_FORMAT_MEDIAVISION_ADPCM" ;
- case WAVE_FORMAT_YAMAHA_ADPCM :
- return "WAVE_FORMAT_YAMAHA_ADPCM" ;
- case WAVE_FORMAT_SONARC :
- return "WAVE_FORMAT_SONARC" ;
- case WAVE_FORMAT_DSPGROUP_TRUESPEECH :
- return "WAVE_FORMAT_DSPGROUP_TRUESPEECH " ;
- case WAVE_FORMAT_ECHOSC1 :
- return "WAVE_FORMAT_ECHOSC1" ;
- case WAVE_FORMAT_AUDIOFILE_AF18 :
- return "WAVE_FORMAT_AUDIOFILE_AF18 " ;
- case WAVE_FORMAT_APTX :
- return "WAVE_FORMAT_APTX" ;
- case WAVE_FORMAT_AUDIOFILE_AF10 :
- return "WAVE_FORMAT_AUDIOFILE_AF10 " ;
- case WAVE_FORMAT_DOLBY_AC2 :
- return "WAVE_FORMAT_DOLBY_AC2" ;
- case WAVE_FORMAT_GSM610 :
- return "WAVE_FORMAT_GSM610" ;
- case WAVE_FORMAT_MSNAUDIO :
- return "WAVE_FORMAT_MSNAUDIO" ;
- case WAVE_FORMAT_ANTEX_ADPCME :
- return "WAVE_FORMAT_ANTEX_ADPCME" ;
- case WAVE_FORMAT_CONTROL_RES_VQLPC :
- return "WAVE_FORMAT_CONTROL_RES_VQLPC" ;
- case WAVE_FORMAT_DIGIREAL :
- return "WAVE_FORMAT_DIGIREAL" ;
- case WAVE_FORMAT_DIGIADPCM :
- return "WAVE_FORMAT_DIGIADPCM" ;
- case WAVE_FORMAT_CONTROL_RES_CR10 :
- return "WAVE_FORMAT_CONTROL_RES_CR10" ;
- case WAVE_FORMAT_NMS_VBXADPCM :
- return "WAVE_FORMAT_NMS_VBXADPCM" ;
- case WAVE_FORMAT_ROCKWELL_ADPCM :
- return "WAVE_FORMAT_ROCKWELL_ADPCM" ;
- case WAVE_FORMAT_ROCKWELL_DIGITALK :
- return "WAVE_FORMAT_ROCKWELL_DIGITALK" ;
- case WAVE_FORMAT_G721_ADPCM :
- return "WAVE_FORMAT_G721_ADPCM" ;
- case WAVE_FORMAT_MPEG :
- return "WAVE_FORMAT_MPEG" ;
- case WAVE_FORMAT_MPEGLAYER3 :
- return "WAVE_FORMAT_MPEGLAYER3" ;
- case IBM_FORMAT_MULAW :
- return "IBM_FORMAT_MULAW" ;
- case IBM_FORMAT_ALAW :
- return "IBM_FORMAT_ALAW" ;
- case IBM_FORMAT_ADPCM :
- return "IBM_FORMAT_ADPCM" ;
- case WAVE_FORMAT_CREATIVE_ADPCM :
- return "WAVE_FORMAT_CREATIVE_ADPCM" ;
- case WAVE_FORMAT_FM_TOWNS_SND :
- return "WAVE_FORMAT_FM_TOWNS_SND" ;
- case WAVE_FORMAT_OLIGSM :
- return "WAVE_FORMAT_OLIGSM" ;
- case WAVE_FORMAT_OLIADPCM :
- return "WAVE_FORMAT_OLIADPCM" ;
- case WAVE_FORMAT_OLICELP :
- return "WAVE_FORMAT_OLICELP" ;
- case WAVE_FORMAT_OLISBC :
- return "WAVE_FORMAT_OLISBC" ;
- case WAVE_FORMAT_OLIOPR :
- return "WAVE_FORMAT_OLIOPR" ;
- case WAVE_FORMAT_EXTENSIBLE :
- return "WAVE_FORMAT_EXTENSIBLE" ;
- break ;
- } ;
- return "Unknown format" ;
-} /* wav_format_str */
--- a/common/libsndfile/src/wav.h
+++ /dev/null
@@ -1,126 +1,0 @@
-#ifndef WAV_H_INCLUDED
-#define WAV_H_INCLUDED
-
-#ifdef _WIN32
- #pragma pack(push,1)
-#endif
-
-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 samplesperblock ;
-} GSM610_WAV_FMT ;
-
-typedef struct
-{ unsigned int esf_field1 ;
- unsigned short esf_field2 ;
- unsigned short esf_field3 ;
- unsigned 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 ;
- EXTENSIBLE_WAV_FMT ext ;
- GSM610_WAV_FMT gsm610 ;
- WAV_FMT_SIZE20 size20 ;
- char padding [512] ;
-} WAV_FMT ;
-
-typedef struct
-{ unsigned int samples ;
-} FACT_CHUNK ;
-
-/*------------------------------------------------------------------------------------
-** Functions defined in wav_ima_adpcm.c
-*/
-
-int wav_ima_reader_init (SF_PRIVATE *psf, WAV_FMT *fmt) ;
-int wav_ima_writer_init (SF_PRIVATE *psf) ;
-
-/*------------------------------------------------------------------------------------
-** Functions defined in wav_ms_adpcm.c
-*/
-
-int wav_msadpcm_reader_init (SF_PRIVATE *psf, WAV_FMT *fmt) ;
-int wav_msadpcm_writer_init (SF_PRIVATE *psf) ;
-
-/*------------------------------------------------------------------------------------
-** Functions defined in wav_gsm610.c
-*/
-
-int wav_gsm610_reader_init (SF_PRIVATE *psf, WAV_FMT *fmt) ;
-int wav_gsm610_writer_init (SF_PRIVATE *psf) ;
-
-#ifdef _WIN32
- #pragma pack(pop,1)
-#endif
-
-#endif
--- a/common/libsndfile/src/wav_gsm610.c
+++ /dev/null
@@ -1,624 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <math.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "floatcast.h"
-#include "common.h"
-#include "wav.h"
-#include "GSM610/gsm.h"
-
-#if (CPU_IS_LITTLE_ENDIAN == 1)
-# define MAKE_MARKER(a,b,c,d) ((a)|((b)<<8)|((c)<<16)|((d)<<24))
-#elif (CPU_IS_BIG_ENDIAN == 1)
-# define MAKE_MARKER(a,b,c,d) (((a)<<24)|((b)<<16)|((c)<<8)|(d))
-#else
-# error "Cannot determine endian-ness of processor."
-#endif
-
-#define RIFF_MARKER (MAKE_MARKER ('R', 'I', 'F', 'F'))
-#define WAVE_MARKER (MAKE_MARKER ('W', 'A', 'V', 'E'))
-#define fmt_MARKER (MAKE_MARKER ('f', 'm', 't', ' '))
-#define fact_MARKER (MAKE_MARKER ('f', 'a', 'c', 't'))
-#define data_MARKER (MAKE_MARKER ('d', 'a', 't', 'a'))
-
-#define WAVE_FORMAT_GSM610 0x0031
-
-#define GSM610_BLOCKSIZE 65
-#define GSM610_SAMPLES 320
-
-typedef struct
-{ unsigned int blocks ;
- int blockcount, samplecount ;
- unsigned char block [GSM610_BLOCKSIZE] ;
- short samples [GSM610_SAMPLES] ;
- gsm gsm_data ;
-} GSM610_PRIVATE ;
-
-
-static int wav_gsm610_read_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610) ;
-static int wav_gsm610_read (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610, short *ptr, int len) ;
-
-static int wav_gsm610_write_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610) ;
-static int wav_gsm610_write (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610, short *ptr, int len) ;
-
-static long wav_gsm610_seek (SF_PRIVATE *psf, long offset, int whence) ;
-
-static int wav_gsm610_read_s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int wav_gsm610_read_i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int wav_gsm610_read_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int wav_gsm610_read_d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static int wav_gsm610_write_s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int wav_gsm610_write_i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int wav_gsm610_write_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int wav_gsm610_write_d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static int wav_gsm610_close (SF_PRIVATE *psf) ;
-static int wav_gsm610_write_header (SF_PRIVATE *psf) ;
-
-/*============================================================================================
-** WAV GSM610 Reader initialisation function.
-*/
-
-int
-wav_gsm610_reader_init (SF_PRIVATE *psf, WAV_FMT *fmt)
-{ GSM610_PRIVATE *pgsm610 ;
- int true = 1 ;
-
- psf->sf.seekable = SF_FALSE ;
- /*-psf->sf.seekable = SF_TRUE ; -*/
- psf->seek_func = (func_seek) wav_gsm610_seek ;
-
- psf->read_short = (func_short) wav_gsm610_read_s ;
- psf->read_int = (func_int) wav_gsm610_read_i ;
- psf->read_float = (func_float) wav_gsm610_read_f ;
- psf->read_double = (func_double) wav_gsm610_read_d ;
-
- if (psf->mode != SF_MODE_READ)
- return SFE_BAD_MODE_RW ;
-
- if (! (pgsm610 = malloc (sizeof (GSM610_PRIVATE))))
- return SFE_MALLOC_FAILED ;
-
- psf->fdata = (void*) pgsm610 ;
-
- memset (pgsm610, 0, sizeof (GSM610_PRIVATE)) ;
-
- if (! (pgsm610->gsm_data = gsm_create ()))
- return SFE_MALLOC_FAILED ;
- gsm_option (pgsm610->gsm_data, GSM_OPT_WAV49, &true) ;
-
- if (psf->datalength % GSM610_BLOCKSIZE)
- { psf_log_printf (psf, "*** Warning : data chunk seems to be truncated.\n") ;
- pgsm610->blocks = psf->datalength / GSM610_BLOCKSIZE + 1 ;
- }
- else
- pgsm610->blocks = psf->datalength / GSM610_BLOCKSIZE ;
-
- psf->sf.samples = GSM610_SAMPLES * pgsm610->blocks ;
-
- wav_gsm610_read_block (psf, pgsm610) ; /* Read first block. */
-
- return 0 ;
-} /* wav_gsm610_reader_init */
-
-/*============================================================================================
-** WAV GSM610 writer initialisation function.
-*/
-
-int
-wav_gsm610_writer_init (SF_PRIVATE *psf)
-{ GSM610_PRIVATE *pgsm610 ;
- int true = 1, samplesperblock, bytespersec ;
-
- if (psf->mode != SF_MODE_WRITE)
- return SFE_BAD_MODE_RW ;
-
- if (! (pgsm610 = malloc (sizeof (GSM610_PRIVATE))))
- return SFE_MALLOC_FAILED ;
-
- psf->fdata = (void*) pgsm610 ;
-
- memset (pgsm610, 0, sizeof (GSM610_PRIVATE)) ;
-
- if (! (pgsm610->gsm_data = gsm_create ()))
- return SFE_MALLOC_FAILED ;
- gsm_option (pgsm610->gsm_data, GSM_OPT_WAV49, &true) ;
-
- pgsm610->blockcount = 0 ;
- pgsm610->samplecount = 0 ;
-
- samplesperblock = GSM610_SAMPLES ;
- bytespersec = psf->sf.samplerate * GSM610_BLOCKSIZE / GSM610_SAMPLES ;
-
- if (bytespersec * GSM610_SAMPLES / GSM610_BLOCKSIZE < psf->sf.samplerate)
- bytespersec ++ ;
-
- psf->datalength = (psf->sf.samples / samplesperblock) * samplesperblock ;
- if (psf->sf.samples % samplesperblock)
- psf->datalength += samplesperblock ;
-
- wav_gsm610_write_header (psf) ;
-
- psf->write_short = (func_short) wav_gsm610_write_s ;
- psf->write_int = (func_int) wav_gsm610_write_i ;
- psf->write_float = (func_float) wav_gsm610_write_f ;
- psf->write_double = (func_double) wav_gsm610_write_d ;
-
- psf->seek_func = NULL ; /* Not seekable */
- psf->close = (func_close) wav_gsm610_close ;
- psf->write_header = (func_wr_hdr) wav_gsm610_write_header ;
-
- return 0 ;
-} /* wav_gsm610_writer_init */
-
-/*============================================================================================
-** GSM 6.10 Read Functions.
-*/
-
-static int
-wav_gsm610_read_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610)
-{ int k ;
-
- pgsm610->blockcount ++ ;
- pgsm610->samplecount = 0 ;
-
- if (pgsm610->blockcount > pgsm610->blocks)
- { memset (pgsm610->samples, 0, GSM610_SAMPLES * sizeof (short)) ;
- return 1 ;
- } ;
-
- if ((k = fread (pgsm610->block, 1, GSM610_BLOCKSIZE, psf->file)) != GSM610_BLOCKSIZE)
- psf_log_printf (psf, "*** Warning : short read (%d != %d).\n", k, GSM610_BLOCKSIZE) ;
-
- if (gsm_decode (pgsm610->gsm_data, pgsm610->block, pgsm610->samples) < 0)
- { psf_log_printf (psf, "Error from gsm_decode() on frame : %d\n", pgsm610->blockcount) ;
- return 0 ;
- } ;
-
- if (gsm_decode (pgsm610->gsm_data, pgsm610->block+(GSM610_BLOCKSIZE+1)/2, pgsm610->samples+GSM610_SAMPLES/2) < 0)
- { psf_log_printf (psf, "Error from gsm_decode() on frame : %d.5\n", pgsm610->blockcount) ;
- return 0 ;
- } ;
-
- return 1 ;
-} /* wav_gsm610_read_block */
-
-static int
-wav_gsm610_read (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610, short *ptr, int len)
-{ int count, total = 0, index = 0 ;
-
- while (index < len)
- { if (pgsm610->blockcount >= pgsm610->blocks && pgsm610->samplecount >= GSM610_SAMPLES)
- { memset (&(ptr[index]), 0, (len - index) * sizeof (short)) ;
- return total ;
- } ;
-
- if (pgsm610->samplecount >= GSM610_SAMPLES)
- wav_gsm610_read_block (psf, pgsm610) ;
-
- count = GSM610_SAMPLES - pgsm610->samplecount ;
- count = (len - index > count) ? count : len - index ;
-
- memcpy (&(ptr[index]), &(pgsm610->samples [pgsm610->samplecount]), count * sizeof (short)) ;
- index += count ;
- pgsm610->samplecount += count ;
- total = index ;
- } ;
-
- return total ;
-} /* wav_gsm610_read */
-
-static int
-wav_gsm610_read_s (SF_PRIVATE *psf, short *ptr, int len)
-{ GSM610_PRIVATE *pgsm610 ;
- int total ;
-
- if (! psf->fdata)
- return 0 ;
- pgsm610 = (GSM610_PRIVATE*) psf->fdata ;
-
- total = wav_gsm610_read (psf, pgsm610, ptr, len) ;
-
- return total ;
-} /* wav_gsm610_read_s */
-
-static int
-wav_gsm610_read_i (SF_PRIVATE *psf, int *ptr, int len)
-{ GSM610_PRIVATE *pgsm610 ;
- short *sptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- pgsm610 = (GSM610_PRIVATE*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = wav_gsm610_read (psf, pgsm610, sptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = (int) (sptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* wav_gsm610_read_i */
-
-static int
-wav_gsm610_read_f (SF_PRIVATE *psf, float *ptr, int len)
-{ GSM610_PRIVATE *pgsm610 ;
- short *sptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
- float normfact ;
-
- if (! psf->fdata)
- return 0 ;
- pgsm610 = (GSM610_PRIVATE*) psf->fdata ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.0 ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = wav_gsm610_read (psf, pgsm610, sptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = normfact * (sptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* wav_gsm610_read_d */
-
-static int
-wav_gsm610_read_d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ GSM610_PRIVATE *pgsm610 ;
- short *sptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x8000) : 1.0) ;
-
- if (! psf->fdata)
- return 0 ;
- pgsm610 = (GSM610_PRIVATE*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = wav_gsm610_read (psf, pgsm610, sptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = normfact * (double) (sptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* wav_gsm610_read_d */
-
-static long
-wav_gsm610_seek (SF_PRIVATE *psf, long offset, int whence)
-{ GSM610_PRIVATE *pgsm610 ;
- int newblock, newsample ;
-
- if (! psf->fdata)
- return 0 ;
- pgsm610 = (GSM610_PRIVATE*) psf->fdata ;
-
- if (! (psf->blockwidth && psf->datalength && psf->dataoffset))
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- switch (whence)
- { case SEEK_SET :
- if (offset < 0 || offset > pgsm610->blocks * GSM610_SAMPLES)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- newblock = offset / GSM610_SAMPLES ;
- newsample = offset % GSM610_SAMPLES ;
- break ;
-
- case SEEK_CUR :
- if (psf->current + offset < 0 || psf->current + offset > pgsm610->blocks * GSM610_SAMPLES)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- newblock = (psf->current + offset) / GSM610_SAMPLES ;
- newsample = (psf->current + offset) % GSM610_SAMPLES ;
- break ;
-
- case SEEK_END :
- if (offset > 0 || GSM610_SAMPLES * pgsm610->blocks + offset < 0)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- newblock = (GSM610_SAMPLES * pgsm610->blocks + offset) / GSM610_SAMPLES ;
- newsample = (GSM610_SAMPLES * pgsm610->blocks + offset) % GSM610_SAMPLES ;
- break ;
-
- default :
- psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- if (psf->mode == SF_MODE_READ)
- { fseek (psf->file, (int) (psf->dataoffset + newblock * GSM610_BLOCKSIZE), SEEK_SET) ;
- pgsm610->blockcount = newblock ;
- wav_gsm610_read_block (psf, pgsm610) ;
- pgsm610->samplecount = newsample ;
- }
- else
- { /* What to do about write??? */
- psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- psf->current = newblock * GSM610_SAMPLES + newsample ;
- return psf->current ;
-} /* wav_gsm610_seek */
-
-/*==========================================================================================
-** GSM 6.10 Write Functions.
-*/
-
-
-
-/*==========================================================================================
-*/
-
-static int
-wav_gsm610_write_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610)
-{ int k ;
-
- /* Encode the samples. */
- gsm_encode (pgsm610->gsm_data, pgsm610->samples, pgsm610->block) ;
- gsm_encode (pgsm610->gsm_data, pgsm610->samples+GSM610_SAMPLES/2, pgsm610->block+GSM610_BLOCKSIZE/2) ;
-
- /* Write the block to disk. */
- if ((k = fwrite (pgsm610->block, 1, GSM610_BLOCKSIZE, psf->file)) != GSM610_BLOCKSIZE)
- psf_log_printf (psf, "*** Warning : short write (%d != %d).\n", k, GSM610_BLOCKSIZE) ;
-
- pgsm610->samplecount = 0 ;
- pgsm610->blockcount ++ ;
-
- /* Set samples to zero for next block. */
- memset (pgsm610->samples, 0, GSM610_SAMPLES * sizeof (short)) ;
-
- return 1 ;
-} /* wav_gsm610_write_block */
-
-static int
-wav_gsm610_write (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610, short *ptr, int len)
-{ int count, total = 0, index = 0 ;
-
- while (index < len)
- { count = GSM610_SAMPLES - pgsm610->samplecount ;
-
- if (count > len - index)
- count = len - index ;
-
- memcpy (&(pgsm610->samples [pgsm610->samplecount]), &(ptr [index]), count * sizeof (short)) ;
- index += count ;
- pgsm610->samplecount += count ;
- total = index ;
-
- if (pgsm610->samplecount >= GSM610_SAMPLES)
- wav_gsm610_write_block (psf, pgsm610) ;
- } ;
-
- return total ;
-} /* wav_gsm610_write */
-
-static int
-wav_gsm610_write_s (SF_PRIVATE *psf, short *ptr, int len)
-{ GSM610_PRIVATE *pgsm610 ;
- int total ;
-
- if (! psf->fdata)
- return 0 ;
- pgsm610 = (GSM610_PRIVATE*) psf->fdata ;
-
- total = wav_gsm610_write (psf, pgsm610, ptr, len) ;
-
- return total ;
-} /* wav_gsm610_write_s */
-
-static int
-wav_gsm610_write_i (SF_PRIVATE *psf, int *ptr, int len)
-{ GSM610_PRIVATE *pgsm610 ;
- short *sptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- pgsm610 = (GSM610_PRIVATE*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- sptr [k] = (short) ptr [index+k] ;
- count = wav_gsm610_write (psf, pgsm610, sptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* wav_gsm610_write_i */
-
-static int
-wav_gsm610_write_f (SF_PRIVATE *psf, float *ptr, int len)
-{ GSM610_PRIVATE *pgsm610 ;
- short *sptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
- float normfact ;
-
- if (! psf->fdata)
- return 0 ;
- pgsm610 = (GSM610_PRIVATE*) psf->fdata ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x8000) : 1.0 ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- sptr [k] = FLOAT_TO_SHORT (normfact * ptr [index+k]) ;
- count = wav_gsm610_write (psf, pgsm610, sptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* wav_gsm610_write_f */
-
-static int
-wav_gsm610_write_d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ GSM610_PRIVATE *pgsm610 ;
- short *sptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? (double) 0x8000 : 1.0) ;
-
- if (! psf->fdata)
- return 0 ;
- pgsm610 = (GSM610_PRIVATE*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- sptr [k] = DOUBLE_TO_SHORT (normfact * ptr [index+k]) ;
- count = wav_gsm610_write (psf, pgsm610, sptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* wav_gsm610_write_d */
-
-static int
-wav_gsm610_write_header (SF_PRIVATE *psf)
-{ int fmt_size, blockalign, samplesperblock, bytespersec ;
-
- blockalign = GSM610_BLOCKSIZE ;
- samplesperblock = GSM610_SAMPLES ;
- bytespersec = (psf->sf.samplerate * blockalign) / samplesperblock ;
-
- /* Reset the current header length to zero. */
- psf->header [0] = 0 ;
- psf->headindex = 0 ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- /* RIFF marker, length, WAVE and 'fmt ' markers. */
- psf_binheader_writef (psf, "mlmm", RIFF_MARKER, psf->filelength - 8, WAVE_MARKER, fmt_MARKER) ;
-
- /* fmt chunk. */
- fmt_size = 2 + 2 + 4 + 4 + 2 + 2 + 2 + 2 ;
-
- /* fmt : size, WAV format type, channels. */
- psf_binheader_writef (psf, "lww", fmt_size, WAVE_FORMAT_GSM610, psf->sf.channels) ;
-
- /* fmt : samplerate, bytespersec. */
- psf_binheader_writef (psf, "ll", psf->sf.samplerate, bytespersec) ;
-
- /* fmt : blockalign, bitwidth, extrabytes, samplesperblock. */
- psf_binheader_writef (psf, "wwww", blockalign, 0, 2, samplesperblock) ;
-
- /* Fact chunk : marker, chunk size, samples */
- psf_binheader_writef (psf, "mll", fact_MARKER, sizeof (int), psf->sf.samples) ;
-
- /* DATA chunk : marker, datalength. */
- psf_binheader_writef (psf, "ml", data_MARKER, psf->datalength) ;
-
- fwrite (psf->header, psf->headindex, 1, psf->file) ;
-
- psf->dataoffset = psf->headindex ;
-
- psf->datalength = (psf->sf.samples / samplesperblock) * samplesperblock ;
- if (psf->sf.samples % samplesperblock)
- psf->datalength += samplesperblock ;
-
- return 0 ;
-} /* wav_gsm610_write_header */
-
-int
-wav_gsm610_close (SF_PRIVATE *psf)
-{ GSM610_PRIVATE *pgsm610 ;
-
- if (! psf->fdata)
- return 0 ;
-
- pgsm610 = (GSM610_PRIVATE*) psf->fdata ;
-
- if (psf->mode == SF_MODE_WRITE)
- { /* If a block has been partially assembled, write it out
- ** as the final block.
- */
-
- if (pgsm610->samplecount && pgsm610->samplecount < GSM610_SAMPLES)
- wav_gsm610_write_block (psf, pgsm610) ;
-
- /* Now we know for certain the length of the file we can
- ** re-write correct values for the RIFF and data chunks.
- */
-
- fseek (psf->file, 0, SEEK_END) ;
- psf->filelength = ftell (psf->file) ;
-
- psf->sf.samples = GSM610_SAMPLES * pgsm610->blockcount ;
- psf->datalength = psf->filelength - psf->dataoffset ;
-
- wav_gsm610_write_header (psf) ;
- } ;
-
- if (pgsm610->gsm_data)
- gsm_destroy (pgsm610->gsm_data) ;
-
- if (psf->fdata)
- free (psf->fdata) ;
- psf->fdata = NULL ;
-
- return 0 ;
-} /* wav_gsm610_close */
-
--- a/common/libsndfile/src/wav_ima_adpcm.c
+++ /dev/null
@@ -1,816 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <math.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "floatcast.h"
-#include "common.h"
-#include "wav.h"
-
-#define RIFF_MARKER (MAKE_MARKER ('R', 'I', 'F', 'F'))
-#define WAVE_MARKER (MAKE_MARKER ('W', 'A', 'V', 'E'))
-#define fmt_MARKER (MAKE_MARKER ('f', 'm', 't', ' '))
-#define fact_MARKER (MAKE_MARKER ('f', 'a', 'c', 't'))
-#define data_MARKER (MAKE_MARKER ('d', 'a', 't', 'a'))
-
-#define WAVE_FORMAT_IMA_ADPCM 0x0011 /* Intel Corporation */
-
-typedef struct
-{ unsigned int channels ;
- unsigned int blocksize ;
- unsigned int samplesperblock ;
-} IMA_ADPCM_PUBLIC ;
-
-typedef struct
-{ unsigned int channels, blocksize, samplesperblock, blocks ;
- int blockcount, samplecount ;
- int previous [2] ;
- int stepindex [2] ;
- unsigned char *block ;
- short *samples ;
- unsigned char data [4] ; /* Dummy size */
-} IMA_ADPCM_PRIVATE ;
-
-/*============================================================================================
-** Predefined IMA ADPCM data.
-*/
-
-static int ima_index_adjust [16] =
-{ -1, -1, -1, -1, /* +0 - +3, decrease the step size */
- 2, 4, 6, 8, /* +4 - +7, increase the step size */
- -1, -1, -1, -1, /* -0 - -3, decrease the step size */
- 2, 4, 6, 8, /* -4 - -7, increase the step size */
-} ;
-
-static int ima_step_size [89] =
-{ 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45,
- 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230,
- 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963,
- 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327,
- 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442,
- 11487, 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794,
- 32767
-} ;
-
-static int ima_reader_init (SF_PRIVATE *psf, IMA_ADPCM_PUBLIC *public) ;
-static int ima_writer_init (SF_PRIVATE *psf, IMA_ADPCM_PUBLIC *public) ;
-
-static int ima_read_block (SF_PRIVATE *psf, IMA_ADPCM_PRIVATE *pima) ;
-static int ima_read (SF_PRIVATE *psf, IMA_ADPCM_PRIVATE *pima, short *ptr, int len) ;
-
-static int ima_write_block (SF_PRIVATE *psf, IMA_ADPCM_PRIVATE *pima) ;
-static int ima_write (SF_PRIVATE *psf, IMA_ADPCM_PRIVATE *pima, short *ptr, int len) ;
-
-static int ima_read_s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int ima_read_i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int ima_read_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int ima_read_d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static int ima_write_s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int ima_write_i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int ima_write_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int ima_write_d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static long ima_seek (SF_PRIVATE *psf, long offset, int whence) ;
-static int wav_ima_close (SF_PRIVATE *psf) ;
-static int wav_ima_write_header (SF_PRIVATE *psf) ;
-
-static unsigned int wav_srate2blocksize (unsigned int srate) ;
-
-/*============================================================================================
-** IMA ADPCM Reader initialisation function.
-*/
-
-int
-wav_ima_reader_init (SF_PRIVATE *psf, WAV_FMT *fmt)
-{ IMA_ADPCM_PUBLIC public ;
-
- public.blocksize = fmt->ima.blockalign ;
- public.channels = fmt->ima.channels ;
- public.samplesperblock = fmt->ima.samplesperblock ;
- return ima_reader_init (psf, &public) ;
-} /* wav_ima_reader_init */
-
-int
-wav_ima_writer_init (SF_PRIVATE *psf)
-{ IMA_ADPCM_PUBLIC public ;
- int error ;
-
- public.blocksize = wav_srate2blocksize (psf->sf.samplerate) ;
- public.channels = psf->sf.channels ;
- public.samplesperblock = 2 * (public.blocksize - 4 * psf->sf.channels) / psf->sf.channels + 1 ;
-
- if ((error = ima_writer_init (psf, &public)))
- return error ;
-
- wav_ima_write_header (psf) ;
-
- psf->write_short = (func_short) ima_write_s ;
- psf->write_int = (func_int) ima_write_i ;
- psf->write_float = (func_float) ima_write_f ;
- psf->write_double = (func_double) ima_write_d ;
- psf->seek_func = (func_seek) ima_seek ;
- psf->close = (func_close) wav_ima_close ;
- psf->write_header = (func_wr_hdr) wav_ima_write_header ;
-
- return 0 ;
-} /* wav_ima_writer_init */
-
-/*============================================================================================
-** IMA ADPCM Read Functions.
-*/
-
-static int
-ima_reader_init (SF_PRIVATE *psf, IMA_ADPCM_PUBLIC *public)
-{ IMA_ADPCM_PRIVATE *pima ;
- unsigned int pimasize, count ;
-
- if (psf->mode != SF_MODE_READ)
- return SFE_BAD_MODE_RW ;
-
- pimasize = sizeof (IMA_ADPCM_PRIVATE) + public->blocksize + 3 * public->channels * public->samplesperblock ;
-
- if (! (pima = malloc (pimasize)))
- return SFE_MALLOC_FAILED ;
-
- psf->fdata = (void*) pima ;
-
- memset (pima, 0, pimasize) ;
-
- pima->block = (unsigned char*) pima->data ;
- pima->samples = (short*) (pima->data + public->blocksize) ;
-
- pima->channels = public->channels ;
- pima->blocksize = public->blocksize ;
- pima->samplesperblock = public->samplesperblock ;
-
- if (psf->datalength % pima->blocksize)
- { psf_log_printf (psf, "*** Warning : data chunk seems to be truncated.\n") ;
- pima->blocks = psf->datalength / pima->blocksize + 1 ;
- }
- else
- pima->blocks = psf->datalength / pima->blocksize ;
-
- count = 2 * (pima->blocksize - 4 * pima->channels) / pima->channels + 1 ;
- if (pima->samplesperblock != count)
- psf_log_printf (psf, "*** Warning : samplesperblock should be %d.\n", count) ;
-
- psf->sf.samples = pima->samplesperblock * pima->blocks ;
-
- ima_read_block (psf, pima) ; /* Read first block. */
-
- psf->read_short = (func_short) ima_read_s ;
- psf->read_int = (func_int) ima_read_i ;
- psf->read_float = (func_float) ima_read_f ;
- psf->read_double = (func_double) ima_read_d ;
-
- psf->seek_func = (func_seek) ima_seek ;
-
- return 0 ;
-} /* ima_reader_init */
-
-static int
-ima_read_block (SF_PRIVATE *psf, IMA_ADPCM_PRIVATE *pima)
-{ int chan, k, current, blockindex, index, indexstart ;
- short step, diff, bytecode, stepindex [2] ;
-
- pima->blockcount ++ ;
- pima->samplecount = 0 ;
-
- if (pima->blockcount > pima->blocks)
- { memset (pima->samples, 0, pima->samplesperblock * pima->channels * sizeof (short)) ;
- return 1 ;
- } ;
-
- if ((k = fread (pima->block, 1, pima->blocksize, psf->file)) != pima->blocksize)
- psf_log_printf (psf, "*** Warning : short read (%d != %d).\n", k, pima->blocksize) ;
-
- /* Read and check the block header. */
-
- for (chan = 0 ; chan < pima->channels ; chan++)
- { current = pima->block [chan*4] | (pima->block [chan*4+1] << 8) ;
- if (current & 0x8000)
- current -= 0x10000 ;
-
- stepindex [chan] = pima->block [chan*4+2] ;
- if (stepindex [chan] < 0)
- stepindex [chan] = 0 ;
- else if (stepindex [chan] > 88)
- stepindex [chan] = 88 ;
-
- if (pima->block [chan*4+3] != 0)
- psf_log_printf (psf, "IMA ADPCM synchronisation error.\n") ;
-
- pima->samples [chan] = current ;
-
- /* psf_log_printf (psf, "block %d : channel %d (current, index) : (%d, %d)\n",
- ** pima->blockcount, chan, current, stepindex [chan]) ;
- */
- } ;
-
- /* Pull apart the packed 4 bit samples and store them in their
- ** correct sample positions.
- */
-
- blockindex = 4 * pima->channels ;
-
- indexstart = pima->channels ;
- while (blockindex < pima->blocksize)
- { for (chan = 0 ; chan < pima->channels ; chan++)
- { index = indexstart + chan ;
- for (k = 0 ; k < 4 ; k++)
- { bytecode = pima->block [blockindex++] ;
- pima->samples [index] = bytecode & 0x0F ;
- index += pima->channels ;
- pima->samples [index] = (bytecode >> 4) & 0x0F ;
- index += pima->channels ;
- } ;
- } ;
- indexstart += 8 * pima->channels ;
- } ;
-
- /* Decode the encoded 4 bit samples. */
-
- for (k = pima->channels ; k < (pima->samplesperblock * pima->channels) ; k ++)
- { chan = (pima->channels > 1) ? (k % 2) : 0 ;
-
- bytecode = pima->samples [k] & 0xF ;
-
- step = ima_step_size [stepindex [chan]] ;
- current = pima->samples [k - pima->channels] ;
-
- diff = step >> 3 ;
- if (bytecode & 1)
- diff += step >> 2 ;
- if (bytecode & 2)
- diff += step >> 1 ;
- if (bytecode & 4)
- diff += step ;
- if (bytecode & 8)
- diff = -diff ;
-
- current += diff ;
-
- if (current > 32767)
- current = 32767;
- else if (current < -32768)
- current = -32768 ;
-
- stepindex [chan] += ima_index_adjust [bytecode] ;
-
- if (stepindex [chan] < 0)
- stepindex [chan] = 0 ;
- else if (stepindex [chan] > 88)
- stepindex [chan] = 88 ;
-
- pima->samples [k] = current ;
- } ;
-
- return 1 ;
-} /* ima_read_block */
-
-static int
-ima_read (SF_PRIVATE *psf, IMA_ADPCM_PRIVATE *pima, short *ptr, int len)
-{ int count, total = 0, index = 0 ;
-
- while (index < len)
- { if (pima->blockcount >= pima->blocks && pima->samplecount >= pima->samplesperblock)
- { memset (&(ptr[index]), 0, (len - index) * sizeof (short)) ;
- return total ;
- } ;
-
- if (pima->samplecount >= pima->samplesperblock)
- ima_read_block (psf, pima) ;
-
- count = (pima->samplesperblock - pima->samplecount) * pima->channels ;
- count = (len - index > count) ? count : len - index ;
-
- memcpy (&(ptr[index]), &(pima->samples [pima->samplecount * pima->channels]), count * sizeof (short)) ;
- index += count ;
- pima->samplecount += count / pima->channels ;
- total = index ;
- } ;
-
- return total ;
-} /* ima_read */
-
-static int
-ima_read_s (SF_PRIVATE *psf, short *ptr, int len)
-{ IMA_ADPCM_PRIVATE *pima ;
- int total ;
-
- if (! psf->fdata)
- return 0 ;
- pima = (IMA_ADPCM_PRIVATE*) psf->fdata ;
-
- total = ima_read (psf, pima, ptr, len) ;
-
- return total ;
-} /* ima_read_s */
-
-static int
-ima_read_i (SF_PRIVATE *psf, int *ptr, int len)
-{ IMA_ADPCM_PRIVATE *pima ;
- short *sptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- pima = (IMA_ADPCM_PRIVATE*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = ima_read (psf, pima, sptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = (int) (sptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* ima_read_i */
-
-static int
-ima_read_f (SF_PRIVATE *psf, float *ptr, int len)
-{ IMA_ADPCM_PRIVATE *pima ;
- short *sptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
- float normfact ;
-
- if (! psf->fdata)
- return 0 ;
- pima = (IMA_ADPCM_PRIVATE*) psf->fdata ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.0 ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = ima_read (psf, pima, sptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = normfact * (float) (sptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* ima_read_f */
-
-static int
-ima_read_d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ IMA_ADPCM_PRIVATE *pima ;
- short *sptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x8000) : 1.0) ;
-
- if (! psf->fdata)
- return 0 ;
- pima = (IMA_ADPCM_PRIVATE*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = ima_read (psf, pima, sptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = normfact * (double) (sptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* ima_read_d */
-
-static long
-ima_seek (SF_PRIVATE *psf, long offset, int whence)
-{ IMA_ADPCM_PRIVATE *pima ;
- int newblock, newsample ;
-
- if (! psf->fdata)
- return 0 ;
- pima = (IMA_ADPCM_PRIVATE*) psf->fdata ;
-
- if (! (psf->blockwidth && psf->datalength && psf->dataoffset))
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- switch (whence)
- { case SEEK_SET :
- if (offset < 0 || offset > pima->blocks * pima->samplesperblock)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- newblock = offset / pima->samplesperblock ;
- newsample = offset % pima->samplesperblock ;
- break ;
-
- case SEEK_CUR :
- if (psf->current + offset < 0 || psf->current + offset > pima->blocks * pima->samplesperblock)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- newblock = (psf->current + offset) / pima->samplesperblock ;
- newsample = (psf->current + offset) % pima->samplesperblock ;
- break ;
-
- case SEEK_END :
- if (offset > 0 || pima->samplesperblock * pima->blocks + offset < 0)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- newblock = (pima->samplesperblock * pima->blocks + offset) / pima->samplesperblock ;
- newsample = (pima->samplesperblock * pima->blocks + offset) % pima->samplesperblock ;
- break ;
-
- default :
- psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- if (psf->mode == SF_MODE_READ)
- { fseek (psf->file, (int) (psf->dataoffset + newblock * pima->blocksize), SEEK_SET) ;
- pima->blockcount = newblock ;
- ima_read_block (psf, pima) ;
- pima->samplecount = newsample ;
- }
- else
- { /* What to do about write??? */
- psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- psf->current = newblock * pima->samplesperblock + newsample ;
- return psf->current ;
-} /* ima_seek */
-
-/*==========================================================================================
-** IMA ADPCM Write Functions.
-*/
-
-static int
-ima_writer_init (SF_PRIVATE *psf, IMA_ADPCM_PUBLIC *public)
-{ IMA_ADPCM_PRIVATE *pima ;
- unsigned int pimasize ;
-
- if (psf->mode != SF_MODE_WRITE)
- return SFE_BAD_MODE_RW ;
-
- public->blocksize = wav_srate2blocksize (psf->sf.samplerate) ;
- public->samplesperblock = 2 * (public->blocksize - 4 * public->channels) / public->channels + 1 ;
-
- pimasize = sizeof (IMA_ADPCM_PRIVATE) + public->blocksize + 3 * public->channels * public->samplesperblock ;
-
- if (! (pima = malloc (pimasize)))
- return SFE_MALLOC_FAILED ;
-
- psf->fdata = (void*) pima ;
-
- memset (pima, 0, pimasize) ;
-
- pima->channels = public->channels ;
- pima->blocksize = public->blocksize ;
- pima->samplesperblock = public->samplesperblock ;
-
- pima->block = (unsigned char*) pima->data ;
- pima->samples = (short*) (pima->data + public->blocksize) ;
-
- pima->samplecount = 0 ;
-
- return 0 ;
-} /* ima_writer_init */
-
-
-
-/*==========================================================================================
-*/
-
-static int
-ima_write_block (SF_PRIVATE *psf, IMA_ADPCM_PRIVATE *pima)
-{ int chan, k, step, diff, vpdiff, blockindex, index, indexstart ;
- short bytecode, mask ;
-
- /* Write the block header. */
-
- for (chan = 0 ; chan < pima->channels ; chan++)
- { pima->block [chan*4] = pima->samples [chan] & 0xFF ;
- pima->block [chan*4+1] = (pima->samples [chan] >> 8) & 0xFF ;
-
- pima->block [chan*4+2] = pima->stepindex [chan] ;
- pima->block [chan*4+3] = 0 ;
- } ;
-
- pima->previous [0] = pima->samples [0] ;
- pima->previous [1] = pima->samples [1] ;
-
- /* Encode the samples as 4 bit. */
-
- for (k = pima->channels ; k < (pima->samplesperblock * pima->channels) ; k ++)
- { chan = (pima->channels > 1) ? (k % 2) : 0 ;
-
- diff = pima->samples [k] - pima->previous [chan] ;
-
- bytecode = 0 ;
- step = ima_step_size [pima->stepindex [chan]] ;
- vpdiff = step >> 3 ;
- if (diff < 0)
- { bytecode = 8 ;
- diff = -diff ;
- } ;
- mask = 4 ;
- while (mask)
- { if (diff >= step)
- { bytecode |= mask ;
- diff -= step ;
- vpdiff += step ;
- } ;
- step >>= 1 ;
- mask >>= 1 ;
- } ;
-
- if (bytecode & 8)
- pima->previous [chan] -= vpdiff ;
- else
- pima->previous [chan] += vpdiff ;
-
- if (pima->previous [chan] > 32767)
- pima->previous [chan] = 32767;
- else if (pima->previous [chan] < -32768)
- pima->previous [chan] = -32768;
-
- pima->stepindex [chan] += ima_index_adjust [bytecode] ;
- if (pima->stepindex [chan] < 0)
- pima->stepindex [chan] = 0 ;
- else if (pima->stepindex [chan] > 88)
- pima->stepindex [chan] = 88 ;
-
- pima->samples [k] = bytecode ;
- } ;
-
- /* Pack the 4 bit encoded samples. */
-
- blockindex = 4 * pima->channels ;
-
- indexstart = pima->channels ;
- while (blockindex < pima->blocksize)
- { for (chan = 0 ; chan < pima->channels ; chan++)
- { index = indexstart + chan ;
- for (k = 0 ; k < 4 ; k++)
- { pima->block [blockindex] = pima->samples [index] & 0x0F ;
- index += pima->channels ;
- pima->block [blockindex] |= (pima->samples [index] << 4) & 0xF0 ;
- index += pima->channels ;
- blockindex ++ ;
- } ;
- } ;
- indexstart += 8 * pima->channels ;
- } ;
-
- /* Write the block to disk. */
-
- if ((k = fwrite (pima->block, 1, pima->blocksize, psf->file)) != pima->blocksize)
- psf_log_printf (psf, "*** Warning : short write (%d != %d).\n", k, pima->blocksize) ;
-
- memset (pima->samples, 0, pima->samplesperblock * sizeof (short)) ;
- pima->samplecount = 0 ;
-
- return 1 ;
-} /* ima_write_block */
-
-static int
-ima_write (SF_PRIVATE *psf, IMA_ADPCM_PRIVATE *pima, short *ptr, int len)
-{ int count, total = 0, index = 0 ;
-
- while (index < len)
- { count = (pima->samplesperblock - pima->samplecount) * pima->channels ;
-
- if (count > len - index)
- count = len - index ;
-
- memcpy (&(pima->samples [pima->samplecount * pima->channels]), &(ptr [index]), count * sizeof (short)) ;
- index += count ;
- pima->samplecount += count / pima->channels ;
- total = index ;
-
- if (pima->samplecount >= pima->samplesperblock)
- ima_write_block (psf, pima) ;
- } ;
-
- return total ;
-} /* ima_write */
-
-static int
-ima_write_s (SF_PRIVATE *psf, short *ptr, int len)
-{ IMA_ADPCM_PRIVATE *pima ;
- int total ;
-
- if (! psf->fdata)
- return 0 ;
- pima = (IMA_ADPCM_PRIVATE*) psf->fdata ;
-
- total = ima_write (psf, pima, ptr, len) ;
-
- return total ;
-} /* ima_write_s */
-
-static int
-ima_write_i (SF_PRIVATE *psf, int *ptr, int len)
-{ IMA_ADPCM_PRIVATE *pima ;
- short *sptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- pima = (IMA_ADPCM_PRIVATE*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- sptr [k] = (short) ptr [index+k] ;
- count = ima_write (psf, pima, sptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* ima_write_i */
-
-static int
-ima_write_f (SF_PRIVATE *psf, float *ptr, int len)
-{ IMA_ADPCM_PRIVATE *pima ;
- short *sptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
- float normfact ;
-
- if (! psf->fdata)
- return 0 ;
- pima = (IMA_ADPCM_PRIVATE*) psf->fdata ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x8000) : 1.0 ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- sptr [k] = FLOAT_TO_SHORT (normfact * ptr [index+k]) ;
- count = ima_write (psf, pima, sptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* ima_write_f */
-
-static int
-ima_write_d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ IMA_ADPCM_PRIVATE *pima ;
- short *sptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? ((double) 0x8000) : 1.0) ;
-
- if (! psf->fdata)
- return 0 ;
- pima = (IMA_ADPCM_PRIVATE*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- sptr [k] = DOUBLE_TO_SHORT (normfact * ptr [index+k]) ;
- count = ima_write (psf, pima, sptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* ima_write_d */
-
-static int
-wav_ima_write_header (SF_PRIVATE *psf)
-{ int fmt_size, blockalign, samplesperblock, bytespersec ;
-
- blockalign = wav_srate2blocksize (psf->sf.samplerate) ;
- samplesperblock = 2 * (blockalign - 4 * psf->sf.channels) / psf->sf.channels + 1 ;
- bytespersec = (psf->sf.samplerate * blockalign) / samplesperblock ;
-
- /* Reset the current header length to zero. */
- psf->header [0] = 0 ;
- psf->headindex = 0 ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- /* RIFF marker, length, WAVE and 'fmt ' markers. */
- psf_binheader_writef (psf, "mlmm", RIFF_MARKER, psf->filelength - 8, WAVE_MARKER, fmt_MARKER) ;
-
- /* fmt chunk. */
- fmt_size = 2 + 2 + 4 + 4 + 2 + 2 + 2 + 2 ;
-
- /* fmt : size, WAV format type, channels. */
- psf_binheader_writef (psf, "lww", fmt_size, WAVE_FORMAT_IMA_ADPCM, psf->sf.channels) ;
-
- /* fmt : samplerate, bytespersec. */
- psf_binheader_writef (psf, "ll", psf->sf.samplerate, bytespersec) ;
-
- /* fmt : blockalign, bitwidth, extrabytes, samplesperblock. */
- psf_binheader_writef (psf, "wwww", blockalign, 4, 2, samplesperblock) ;
-
- /* Fact chunk. */
- psf_binheader_writef (psf, "mll", fact_MARKER, sizeof (int), psf->sf.samples) ;
-
- /* DATA chunk. */
- psf_binheader_writef (psf, "ml", data_MARKER, psf->datalength) ;
-
- fwrite (psf->header, psf->headindex, 1, psf->file) ;
-
- psf->dataoffset = psf->headindex ;
-
- psf->datalength = (psf->sf.samples / samplesperblock) * samplesperblock ;
- if (psf->sf.samples % samplesperblock)
- psf->datalength += samplesperblock ;
-
- return 0 ;
-} /* wav_ima_write_header */
-
-static int
-wav_ima_close (SF_PRIVATE *psf)
-{ IMA_ADPCM_PRIVATE *pima ;
-
- if (! psf->fdata)
- return 0 ;
-
- pima = (IMA_ADPCM_PRIVATE*) psf->fdata ;
-
- if (psf->mode == SF_MODE_WRITE)
- { /* If a block has been partially assembled, write it out
- ** as the final block.
- */
-
- if (pima->samplecount && pima->samplecount < pima->samplesperblock)
- ima_write_block (psf, pima) ;
-
- /* Now we know for certain the length of the file we can
- ** re-write the header.
- */
-
- fseek (psf->file, 0, SEEK_END) ;
- psf->filelength = ftell (psf->file) ;
-
- psf->sf.samples = pima->samplesperblock * pima->blockcount ;
- psf->datalength = psf->filelength - psf->dataoffset ;
-
- wav_ima_write_header (psf) ;
- } ;
-
- if (psf->fdata)
- free (psf->fdata) ;
- psf->fdata = NULL ;
-
- return 0 ;
-} /* wav_ima_close */
-
-static unsigned
-int wav_srate2blocksize (unsigned int srate)
-{ if (srate < 12000)
- return 256 ;
- if (srate < 23000)
- return 512 ;
- return 1024 ;
-} /* wav_srate2blocksize */
--- a/common/libsndfile/src/wav_ms_adpcm.c
+++ /dev/null
@@ -1,895 +1,0 @@
-/*
-** Copyright (C) 1999-2001 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.
-*/
-
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <math.h>
-
-#include "sndfile.h"
-#include "config.h"
-#include "sfendian.h"
-#include "floatcast.h"
-#include "common.h"
-#include "wav.h"
-
-/* These required here because we write the header in this file. */
-
-#define RIFF_MARKER (MAKE_MARKER ('R', 'I', 'F', 'F'))
-#define WAVE_MARKER (MAKE_MARKER ('W', 'A', 'V', 'E'))
-#define fmt_MARKER (MAKE_MARKER ('f', 'm', 't', ' '))
-#define fact_MARKER (MAKE_MARKER ('f', 'a', 'c', 't'))
-#define data_MARKER (MAKE_MARKER ('d', 'a', 't', 'a'))
-
-#define WAVE_FORMAT_MS_ADPCM 0x0002
-
-typedef struct
-{ unsigned int channels, blocksize, samplesperblock, blocks, dataremaining ;
- int blockcount, samplecount ;
- unsigned char *block ;
- short *samples ;
- unsigned char dummydata [4] ; /* Dummy size */
-} MSADPCM_PRIVATE ;
-
-/*============================================================================================
-** MS ADPCM static data and functions.
-*/
-
-static int AdaptationTable [] =
-{ 230, 230, 230, 230, 307, 409, 512, 614,
- 768, 614, 512, 409, 307, 230, 230, 230
-} ;
-
-/* TODO : The first 7 coef's are are always hardcode and must
- appear in the actual WAVE file. They should be read in
- in case a sound program added extras to the list. */
-
-static int AdaptCoeff1 [] =
-{ 256, 512, 0, 192, 240, 460, 392
-} ;
-
-static int AdaptCoeff2 [] =
-{ 0, -256, 0, 64, 0, -208, -232
-} ;
-
-/*============================================================================================
-** MS ADPCM Block Layout.
-** ======================
-** Block is usually 256, 512 or 1024 bytes depending on sample rate.
-** For a mono file, the block is laid out as follows:
-** byte purpose
-** 0 block predictor [0..6]
-** 1,2 initial idelta (positive)
-** 3,4 sample 1
-** 5,6 sample 0
-** 7..n packed bytecodes
-**
-** For a stereo file, the block is laid out as follows:
-** byte purpose
-** 0 block predictor [0..6] for left channel
-** 1 block predictor [0..6] for right channel
-** 2,3 initial idelta (positive) for left channel
-** 4,5 initial idelta (positive) for right channel
-** 6,7 sample 1 for left channel
-** 8,9 sample 1 for right channel
-** 10,11 sample 0 for left channel
-** 12,13 sample 0 for right channel
-** 14..n packed bytecodes
-*/
-
-/*============================================================================================
-** Static functions.
-*/
-
-static int msadpcm_decode_block (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms) ;
-static int msadpcm_read (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms, short *ptr, int len) ;
-
-static int msadpcm_encode_block (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms) ;
-static int msadpcm_write (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms, short *ptr, int len) ;
-
-static int msadpcm_read_s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int msadpcm_read_i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int msadpcm_read_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int msadpcm_read_d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static int msadpcm_write_s (SF_PRIVATE *psf, short *ptr, int len) ;
-static int msadpcm_write_i (SF_PRIVATE *psf, int *ptr, int len) ;
-static int msadpcm_write_f (SF_PRIVATE *psf, float *ptr, int len) ;
-static int msadpcm_write_d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
-
-static long msadpcm_seek (SF_PRIVATE *psf, long offset, int whence) ;
-static int msadpcm_close (SF_PRIVATE *psf) ;
-
-static int msadpcm_write_header (SF_PRIVATE *psf) ;
-
-static unsigned int srate2blocksize (unsigned int srate_chan_product) ;
-static void choose_predictor (unsigned int channels, short *data, int *bpred, int *idelta) ;
-
-/*============================================================================================
-** MS ADPCM Read Functions.
-*/
-
-int
-wav_msadpcm_reader_init (SF_PRIVATE *psf, WAV_FMT *fmt)
-{ MSADPCM_PRIVATE *pms ;
- unsigned int pmssize ;
- int count ;
-
- pmssize = sizeof (MSADPCM_PRIVATE) + fmt->msadpcm.blockalign + 3 * fmt->msadpcm.channels * fmt->msadpcm.samplesperblock ;
-
- if (! (psf->fdata = malloc (pmssize)))
- return SFE_MALLOC_FAILED ;
- pms = (MSADPCM_PRIVATE*) psf->fdata ;
- memset (pms, 0, pmssize) ;
-
- pms->block = (unsigned char*) pms->dummydata ;
- pms->samples = (short*) (pms->dummydata + fmt->msadpcm.blockalign) ;
-
- pms->channels = fmt->msadpcm.channels ;
- pms->blocksize = fmt->msadpcm.blockalign ;
- pms->samplesperblock = fmt->msadpcm.samplesperblock ;
-
- pms->dataremaining = psf->datalength ;
-
- if (psf->datalength % pms->blocksize)
- pms->blocks = psf->datalength / pms->blocksize + 1 ;
- else
- pms->blocks = psf->datalength / pms->blocksize ;
-
- count = 2 * (pms->blocksize - 6 * pms->channels) / pms->channels ;
- if (pms->samplesperblock != count)
- psf_log_printf (psf, "*** Warning : samplesperblock shoud be %d.\n", count) ;
-
- psf->sf.samples = (psf->datalength / pms->blocksize) * pms->samplesperblock ;
-
- psf_log_printf (psf, " bpred idelta\n") ;
-
- msadpcm_decode_block (psf, pms) ;
-
- psf->read_short = (func_short) msadpcm_read_s ;
- psf->read_int = (func_int) msadpcm_read_i ;
- psf->read_float = (func_float) msadpcm_read_f ;
- psf->read_double = (func_double) msadpcm_read_d ;
-
- psf->seek_func = (func_seek) msadpcm_seek ;
-
- return 0 ;
-} /* wav_msadpcm_reader_init */
-
-static int
-msadpcm_decode_block (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms)
-{ int chan, k, blockindex, sampleindex ;
- short bytecode, bpred [2], chan_idelta [2] ;
-
- int predict ;
- int current ;
- int idelta ;
-
- pms->blockcount ++ ;
- pms->samplecount = 0 ;
-
- if (pms->blockcount > pms->blocks)
- { memset (pms->samples, 0, pms->samplesperblock * pms->channels) ;
- return 1 ;
- } ;
-
- if ((k = fread (pms->block, 1, pms->blocksize, psf->file)) != pms->blocksize)
- psf_log_printf (psf, "*** Warning : short read (%d != %d).\n", k, pms->blocksize) ;
-
- /* Read and check the block header. */
-
- if (pms->channels == 1)
- { bpred [0] = pms->block [0] ;
-
- if (bpred [0] >= 7)
- psf_log_printf (psf, "MS ADPCM synchronisation error (%d).\n", bpred [0]) ;
-
- chan_idelta [0] = pms->block [1] | (pms->block [2] << 8) ;
- chan_idelta [1] = 0 ;
-
- psf_log_printf (psf, "(%d) (%d)\n", bpred [0], chan_idelta [0]) ;
-
- pms->samples [1] = pms->block [3] | (pms->block [4] << 8) ;
- pms->samples [0] = pms->block [5] | (pms->block [6] << 8) ;
- blockindex = 7 ;
- }
- else
- { bpred [0] = pms->block [0] ;
- bpred [1] = pms->block [1] ;
-
- if (bpred [0] >= 7 || bpred [1] >= 7)
- psf_log_printf (psf, "MS ADPCM synchronisation error (%d %d).\n", bpred [0], bpred [1]) ;
-
- chan_idelta [0] = pms->block [2] | (pms->block [3] << 8) ;
- chan_idelta [1] = pms->block [4] | (pms->block [5] << 8) ;
-
- psf_log_printf (psf, "(%d, %d) (%d, %d)\n", bpred [0], bpred [1], chan_idelta [0], chan_idelta [1]) ;
-
- pms->samples [2] = pms->block [6] | (pms->block [7] << 8) ;
- pms->samples [3] = pms->block [8] | (pms->block [9] << 8) ;
-
- pms->samples [0] = pms->block [10] | (pms->block [11] << 8) ;
- pms->samples [1] = pms->block [12] | (pms->block [13] << 8) ;
-
- blockindex = 14 ;
- } ;
-
- if (chan_idelta [0] & 0x8000)
- chan_idelta [0] -= 0x10000 ;
- if (chan_idelta [1] & 0x8000)
- chan_idelta [1] -= 0x10000 ;
-
- /* Pull apart the packed 4 bit samples and store them in their
- ** correct sample positions.
- */
-
- sampleindex = 2 * pms->channels ;
- while (blockindex < pms->blocksize)
- { bytecode = pms->block [blockindex++] ;
- pms->samples [sampleindex++] = (bytecode >> 4) & 0x0F ;
- pms->samples [sampleindex++] = bytecode & 0x0F ;
- } ;
-
- /* Decode the encoded 4 bit samples. */
-
- for (k = 2 * pms->channels ; k < (pms->samplesperblock * pms->channels) ; k ++)
- { chan = (pms->channels > 1) ? (k % 2) : 0 ;
-
- bytecode = pms->samples [k] & 0xF ;
-
- /** Compute next Adaptive Scale Factor (ASF) **/
- idelta = chan_idelta [chan] ;
- chan_idelta [chan] = (AdaptationTable [bytecode] * idelta) >> 8 ; /* => / 256 => FIXED_POINT_ADAPTATION_BASE == 256 */
- if (chan_idelta [chan] < 16)
- chan_idelta [chan] = 16 ;
- if (bytecode & 0x8)
- bytecode -= 0x10 ;
-
- predict = ((pms->samples [k - pms->channels] * AdaptCoeff1 [bpred [chan]])
- + (pms->samples [k - 2 * pms->channels] * AdaptCoeff2 [bpred [chan]])) >> 8 ; /* => / 256 => FIXED_POINT_COEFF_BASE == 256 */
- current = (bytecode * idelta) + predict;
-
- if (current > 32767)
- current = 32767 ;
- else if (current < -32768)
- current = -32768 ;
-
- pms->samples [k] = current ;
- } ;
-
- return 1 ;
-} /* msadpcm_decode_block */
-
-static int
-msadpcm_read (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms, short *ptr, int len)
-{ int count, total = 0, index = 0 ;
-
- while (index < len)
- { if (pms->blockcount >= pms->blocks && pms->samplecount >= pms->samplesperblock)
- { memset (&(ptr[index]), 0, (len - index) * sizeof (short)) ;
- return total ;
- } ;
-
- if (pms->samplecount >= pms->samplesperblock)
- msadpcm_decode_block (psf, pms) ;
-
- count = (pms->samplesperblock - pms->samplecount) * pms->channels ;
- count = (len - index > count) ? count : len - index ;
-
- memcpy (&(ptr[index]), &(pms->samples [pms->samplecount * pms->channels]), count * sizeof (short)) ;
- index += count ;
- pms->samplecount += count / pms->channels ;
- total = index ;
- } ;
-
- return total ;
-} /* msadpcm_read */
-
-static int
-msadpcm_read_s (SF_PRIVATE *psf, short *ptr, int len)
-{ MSADPCM_PRIVATE *pms ;
- int total ;
-
- if (! psf->fdata)
- return 0 ;
- pms = (MSADPCM_PRIVATE*) psf->fdata ;
-
- total = msadpcm_read (psf, pms, ptr, len) ;
-
- return total ;
-} /* msadpcm_read_s */
-
-static int
-msadpcm_read_i (SF_PRIVATE *psf, int *ptr, int len)
-{ MSADPCM_PRIVATE *pms ;
- short *sptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- pms = (MSADPCM_PRIVATE*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = msadpcm_read (psf, pms, sptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = (int) (sptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* msadpcm_read_i */
-
-static int
-msadpcm_read_f (SF_PRIVATE *psf, float *ptr, int len)
-{ MSADPCM_PRIVATE *pms ;
- short *sptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
- float normfact ;
-
- if (! psf->fdata)
- return 0 ;
- pms = (MSADPCM_PRIVATE*) psf->fdata ;
-
- normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.0 ;
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = msadpcm_read (psf, pms, sptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = normfact * (float) (sptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* msadpcm_read_f */
-
-static int
-msadpcm_read_d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ MSADPCM_PRIVATE *pms ;
- short *sptr ;
- int k, bufferlen, readcount = 0, count ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? 1.0 / ((double) 0x8000) : 1.0) ;
-
- if (! psf->fdata)
- return 0 ;
- pms = (MSADPCM_PRIVATE*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { readcount = (len >= bufferlen) ? bufferlen : len ;
- count = msadpcm_read (psf, pms, sptr, readcount) ;
- for (k = 0 ; k < readcount ; k++)
- ptr [index+k] = normfact * (double) (sptr [k]) ;
- index += readcount ;
- total += count ;
- len -= readcount ;
- } ;
- return total ;
-} /* msadpcm_read_d */
-
-static long
-msadpcm_seek (SF_PRIVATE *psf, long offset, int whence)
-{ MSADPCM_PRIVATE *pms ;
- int newblock, newsample ;
-
- if (! psf->fdata)
- return 0 ;
- pms = (MSADPCM_PRIVATE*) psf->fdata ;
-
- if (! (psf->blockwidth && psf->datalength && psf->dataoffset))
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- switch (whence)
- { case SEEK_SET :
- if (offset < 0 || offset > pms->blocks * pms->samplesperblock)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- newblock = offset / pms->samplesperblock ;
- newsample = offset % pms->samplesperblock ;
- break ;
-
- case SEEK_CUR :
- if (psf->current + offset < 0 || psf->current + offset > pms->blocks * pms->samplesperblock)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- newblock = (psf->current + offset) / pms->samplesperblock ;
- newsample = (psf->current + offset) % pms->samplesperblock ;
- break ;
-
- case SEEK_END :
- if (offset > 0 || pms->samplesperblock * pms->blocks + offset < 0)
- { psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
- newblock = (pms->samplesperblock * pms->blocks + offset) / pms->samplesperblock ;
- newsample = (pms->samplesperblock * pms->blocks + offset) % pms->samplesperblock ;
- break ;
-
- default :
- psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- if (psf->mode == SF_MODE_READ)
- { fseek (psf->file, (int) (psf->dataoffset + newblock * pms->blocksize), SEEK_SET) ;
- pms->blockcount = newblock ;
- msadpcm_decode_block (psf, pms) ;
- pms->samplecount = newsample ;
- }
- else
- { /* What to do about write??? */
- psf->error = SFE_BAD_SEEK ;
- return ((long) -1) ;
- } ;
-
- psf->current = newblock * pms->samplesperblock + newsample ;
- return psf->current ;
-} /* msadpcm_seek */
-
-/*==========================================================================================
-** MS ADPCM Write Functions.
-*/
-
-int
-wav_msadpcm_writer_init (SF_PRIVATE *psf)
-{ MSADPCM_PRIVATE *pms ;
- unsigned int pmssize, blockalign, samplesperblock ;
-
- blockalign = srate2blocksize (psf->sf.samplerate * psf->sf.channels) ;
- samplesperblock = 2 + 2 * (blockalign - 7 * psf->sf.channels) / psf->sf.channels ;
-
- pmssize = sizeof (MSADPCM_PRIVATE) + blockalign + 3 * psf->sf.channels * samplesperblock ;
-
- if (! (psf->fdata = malloc (pmssize)))
- return SFE_MALLOC_FAILED ;
- pms = (MSADPCM_PRIVATE*) psf->fdata ;
- memset (pms, 0, pmssize) ;
-
- pms->channels = psf->sf.channels ;
- pms->blocksize = blockalign ;
- pms->samplesperblock = samplesperblock ;
-
- pms->block = (unsigned char*) pms->dummydata ;
- pms->samples = (short*) (pms->dummydata + blockalign) ;
-
- pms->samplecount = 0 ;
-
- msadpcm_write_header (psf) ;
-
- psf->write_short = (func_short) msadpcm_write_s ;
- psf->write_int = (func_int) msadpcm_write_i ;
- psf->write_float = (func_float) msadpcm_write_f ;
- psf->write_double = (func_double) msadpcm_write_d ;
-
- psf->seek_func = (func_seek) msadpcm_seek ;
- psf->close = (func_close) msadpcm_close ;
- psf->write_header = (func_wr_hdr) msadpcm_write_header ;
-
- return 0 ;
-} /* wav_msadpcm_writer_init */
-
-/*==========================================================================================
-*/
-
-static int
-msadpcm_encode_block (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms)
-{ unsigned int blockindex ;
- unsigned char byte ;
- int chan, k, predict, bpred [2], idelta [2], errordelta, newsamp ;
-
- choose_predictor (pms->channels, pms->samples, bpred, idelta) ;
-
- /* Write the block header. */
-
- if (pms->channels == 1)
- { pms->block [0] = bpred [0] ;
- pms->block [1] = idelta [0] & 0xFF ;
- pms->block [2] = idelta [0] >> 8 ;
- pms->block [3] = pms->samples [1] & 0xFF ;
- pms->block [4] = pms->samples [1] >> 8 ;
- pms->block [5] = pms->samples [0] & 0xFF ;
- pms->block [6] = pms->samples [0] >> 8 ;
-
- blockindex = 7 ;
- byte = 0 ;
-
- /* Encode the samples as 4 bit. */
-
- for (k = 2 ; k < pms->samplesperblock ; k++)
- { predict = (pms->samples [k-1] * AdaptCoeff1 [bpred [0]] + pms->samples [k-2] * AdaptCoeff2 [bpred [0]]) >> 8 ;
- errordelta = (pms->samples [k] - predict) / idelta [0] ;
- if (errordelta < -8)
- errordelta = -8 ;
- else if (errordelta > 7)
- errordelta = 7 ;
- newsamp = predict + (idelta [0] * errordelta) ;
- if (newsamp > 32767)
- newsamp = 32767 ;
- else if (newsamp < -32768)
- newsamp = -32768 ;
- if (errordelta < 0)
- errordelta += 0x10 ;
-
- byte = (byte << 4) | (errordelta & 0xF) ;
- if (k % 2)
- { pms->block [blockindex++] = byte ;
- byte = 0 ;
- } ;
-
- idelta [0] = (idelta [0] * AdaptationTable [errordelta]) >> 8 ;
- if (idelta [0] < 16)
- idelta [0] = 16 ;
- pms->samples [k] = newsamp ;
- } ;
- }
- else
- { /* Stereo file. */
- pms->block [0] = bpred [0] ;
- pms->block [1] = bpred [1] ;
-
- pms->block [2] = idelta [0] & 0xFF ;
- pms->block [3] = idelta [0] >> 8 ;
- pms->block [4] = idelta [1] & 0xFF ;
- pms->block [5] = idelta [1] >> 8 ;
-
- pms->block [6] = pms->samples [2] & 0xFF ;
- pms->block [7] = pms->samples [2] >> 8 ;
- pms->block [8] = pms->samples [3] & 0xFF ;
- pms->block [9] = pms->samples [3] >> 8 ;
-
- pms->block [10] = pms->samples [0] & 0xFF ;
- pms->block [11] = pms->samples [0] >> 8 ;
- pms->block [12] = pms->samples [1] & 0xFF ;
- pms->block [13] = pms->samples [1] >> 8 ;
-
- blockindex = 14 ;
- byte = 0 ;
- chan = 1 ;
-
- for (k = 4 ; k < 2 * pms->samplesperblock ; k++)
- { chan = k & 1 ;
-
- predict = (pms->samples [k-2] * AdaptCoeff1 [bpred [chan]] + pms->samples [k-4] * AdaptCoeff2 [bpred [chan]]) >> 8 ;
- errordelta = (pms->samples [k] - predict) / idelta [chan] ;
-
-
- if (errordelta < -8)
- errordelta = -8 ;
- else if (errordelta > 7)
- errordelta = 7 ;
- newsamp = predict + (idelta [chan] * errordelta) ;
- if (newsamp > 32767)
- newsamp = 32767 ;
- else if (newsamp < -32768)
- newsamp = -32768 ;
- if (errordelta < 0)
- errordelta += 0x10 ;
-
- byte = (byte << 4) | (errordelta & 0xF) ;
-
- if (chan)
- { pms->block [blockindex++] = byte ;
- byte = 0 ;
- } ;
-
- idelta [chan] = (idelta [chan] * AdaptationTable [errordelta]) >> 8 ;
- if (idelta [chan] < 16)
- idelta [chan] = 16 ;
- pms->samples [k] = newsamp ;
- } ;
- } ;
-
- /* Write the block to disk. */
-
- if ((k = fwrite (pms->block, 1, pms->blocksize, psf->file)) != pms->blocksize)
- psf_log_printf (psf, "*** Warning : short write (%d != %d).\n", k, pms->blocksize) ;
-
- memset (pms->samples, 0, pms->samplesperblock * sizeof (short)) ;
-
- pms->blockcount ++ ;
- pms->samplecount = 0 ;
-
- return 1 ;
-} /* msadpcm_encode_block */
-
-static int
-msadpcm_write (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms, short *ptr, int len)
-{ int count, total = 0, index = 0 ;
-
- while (index < len)
- { count = (pms->samplesperblock - pms->samplecount) * pms->channels ;
-
- if (count > len - index)
- count = len - index ;
-
- memcpy (&(pms->samples [pms->samplecount * pms->channels]), &(ptr [index]), count * sizeof (short)) ;
- index += count ;
- pms->samplecount += count / pms->channels ;
- total = index ;
-
- if (pms->samplecount >= pms->samplesperblock)
- msadpcm_encode_block (psf, pms) ;
- } ;
-
- return total ;
-} /* msadpcm_write */
-
-static int
-msadpcm_write_s (SF_PRIVATE *psf, short *ptr, int len)
-{ MSADPCM_PRIVATE *pms ;
- int total ;
-
- if (! psf->fdata)
- return 0 ;
- pms = (MSADPCM_PRIVATE*) psf->fdata ;
-
- total = msadpcm_write (psf, pms, ptr, len) ;
-
- return total ;
-} /* msadpcm_write_s */
-
-static int
-msadpcm_write_i (SF_PRIVATE *psf, int *ptr, int len)
-{ MSADPCM_PRIVATE *pms ;
- short *sptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
-
- if (! psf->fdata)
- return 0 ;
- pms = (MSADPCM_PRIVATE*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- sptr [k] = (short) ptr [index+k] ;
- count = msadpcm_write (psf, pms, sptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* msadpcm_write_i */
-
-static int
-msadpcm_write_f (SF_PRIVATE *psf, float *ptr, int len)
-{ MSADPCM_PRIVATE *pms ;
- short *sptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
- float normfact ;
-
- if (! psf->fdata)
- return 0 ;
- pms = (MSADPCM_PRIVATE*) psf->fdata ;
-
- normfact = (psf->norm_float == SF_TRUE) ? ((float) 0x8000) : 1.0 ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- sptr [k] = FLOAT_TO_SHORT (normfact * ptr [index+k]) ;
- count = msadpcm_write (psf, pms, sptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* msadpcm_write_f */
-
-static int
-msadpcm_write_d (SF_PRIVATE *psf, double *ptr, int len, int normalize)
-{ MSADPCM_PRIVATE *pms ;
- short *sptr ;
- int k, bufferlen, writecount = 0, count ;
- int index = 0, total = 0 ;
- double normfact ;
-
- normfact = (normalize ? ((double) 0x8000) : 1.0) ;
-
- if (! psf->fdata)
- return 0 ;
- pms = (MSADPCM_PRIVATE*) psf->fdata ;
-
- sptr = (short*) psf->buffer ;
- bufferlen = ((SF_BUFFER_LEN / psf->blockwidth) * psf->blockwidth) / sizeof (short) ;
- while (len > 0)
- { writecount = (len >= bufferlen) ? bufferlen : len ;
- for (k = 0 ; k < writecount ; k++)
- sptr [k] = DOUBLE_TO_SHORT (normfact * ptr [index+k]) ;
- count = msadpcm_write (psf, pms, sptr, writecount) ;
- index += writecount ;
- total += count ;
- len -= writecount ;
- } ;
- return total ;
-} /* msadpcm_write_d */
-
-/*========================================================================================
-*/
-
-static int
-msadpcm_write_header (SF_PRIVATE *psf)
-{ int k, fmt_size, blockalign, samplesperblock, bytespersec, extrabytes ;
-
- blockalign = srate2blocksize (psf->sf.samplerate * psf->sf.channels) ;
- samplesperblock = 2 + 2 * (blockalign - 7 * psf->sf.channels) / psf->sf.channels ;
- bytespersec = (psf->sf.samplerate * blockalign) / samplesperblock ;
-
- /* Reset the current header length to zero. */
- psf->header [0] = 0 ;
- psf->headindex = 0 ;
- fseek (psf->file, 0, SEEK_SET) ;
-
- /* RIFF marker, length, WAVE and 'fmt ' markers. */
- psf_binheader_writef (psf, "mlmm", RIFF_MARKER, psf->filelength - 8, WAVE_MARKER, fmt_MARKER) ;
-
- /* fmt chunk. */
- extrabytes = 2 + 2 + 7 * (2 + 2) ;
- fmt_size = 2 + 2 + 4 + 4 + 2 + 2 + 2 + extrabytes ;
-
- /* fmt : size, WAV format type, channels. */
- psf_binheader_writef (psf, "lww", fmt_size, WAVE_FORMAT_MS_ADPCM, psf->sf.channels) ;
-
- /* fmt : samplerate, bytespersec. */
- psf_binheader_writef (psf, "ll", psf->sf.samplerate, bytespersec) ;
-
- /* fmt : blockalign, bitwidth, extrabytes, samplesperblock. */
- psf_binheader_writef (psf, "wwwww", blockalign, 4, extrabytes, samplesperblock, 7) ;
-
- for (k = 0 ; k < 7 ; k++)
- psf_binheader_writef (psf, "ww", AdaptCoeff1 [k], AdaptCoeff2 [k]) ;
-
- /* Fact chunk. */
- psf_binheader_writef (psf, "mll", fact_MARKER, sizeof (int), psf->sf.samples) ;
-
- /* DATA chunk. */
- psf_binheader_writef (psf, "ml", data_MARKER, psf->datalength) ;
-
- fwrite (psf->header, psf->headindex, 1, psf->file) ;
-
- psf->dataoffset = psf->headindex ;
-
- psf->datalength = (psf->sf.samples / samplesperblock) * samplesperblock ;
- if (psf->sf.samples % samplesperblock)
- psf->datalength += samplesperblock ;
-
- return 0 ;
-} /* msadpcm_write_header */
-
-static int
-msadpcm_close (SF_PRIVATE *psf)
-{ MSADPCM_PRIVATE *pms ;
-
- if (! psf->fdata)
- return 0 ;
-
- pms = (MSADPCM_PRIVATE*) psf->fdata ;
-
- if (psf->mode == SF_MODE_WRITE)
- { /* Now we know static int for certain the length of the file we can
- ** re-write the header.
- */
-
- if (pms->samplecount && pms->samplecount < pms->samplesperblock)
- msadpcm_encode_block (psf, pms) ;
-
- fseek (psf->file, 0, SEEK_END) ;
- psf->filelength = ftell (psf->file) ;
-
- psf->sf.samples = pms->samplesperblock * pms->blockcount ;
- psf->datalength = psf->filelength - psf->dataoffset ;
-
- msadpcm_write_header (psf) ;
- } ;
-
- if (psf->fdata)
- free (psf->fdata) ;
- psf->fdata = NULL ;
-
- return 0 ;
-} /* msadpcm_close */
-
-/*========================================================================================
-** Static functions.
-*/
-
-static unsigned int
-srate2blocksize (unsigned int srate_chan_product)
-{ if (srate_chan_product < 12000)
- return 256 ;
- if (srate_chan_product < 23000)
- return 512 ;
- if (srate_chan_product < 44000)
- return 1024 ;
- return 2048 ;
-} /* srate2blocksize */
-
-/*----------------------------------------------------------------------------------------
-** Choosing the block predictor.
-** Each block requires a predictor and an idelta for each channel.
-** The predictor is in the range [0..6] which is an index into the two AdaptCoeff tables.
-** The predictor is chosen by trying all of the possible predictors on a small set of
-** samples at the beginning of the block. The predictor with the smallest average
-** abs (idelta) is chosen as the best predictor for this block.
-** The value of idelta is chosen to to give a 4 bit code value of +/- 4 (approx. half the
-** max. code value). If the average abs (idelta) is zero, the sixth predictor is chosen.
-** If the value of idelta is less then 16 it is set to 16.
-**
-** Microsoft uses an IDELTA_COUNT (number of sample pairs used to choose best predictor)
-** value of 3. The best possible results would be obtained by using all the samples to
-** choose the predictor.
-*/
-
-#define IDELTA_COUNT 3
-
-static void
-choose_predictor (unsigned int channels, short *data, int *block_pred, int *idelta)
-{ unsigned int chan, k, bpred, idelta_sum, best_bpred, best_idelta ;
-
- for (chan = 0 ; chan < channels; chan++)
- { best_bpred = best_idelta = 0 ;
-
- for (bpred = 0 ; bpred < 7 ; bpred++)
- { idelta_sum = 0 ;
- for (k = 2 ; k < 2 + IDELTA_COUNT ; k++)
- idelta_sum += abs (data [k*channels] - ((data [(k-1)*channels] * AdaptCoeff1 [bpred] + data [(k-2)*channels] * AdaptCoeff2 [bpred]) >> 8)) ;
- idelta_sum /= (4 * IDELTA_COUNT) ;
-
- if (bpred == 0 || idelta_sum < best_idelta)
- { best_bpred = bpred ;
- best_idelta = idelta_sum ;
- } ;
-
- if (! idelta_sum)
- { best_bpred = bpred ;
- best_idelta = 16 ;
- break ;
- } ;
-
- } ; /* for bpred ... */
- if (best_idelta < 16)
- best_idelta = 16 ;
-
- block_pred [chan] = best_bpred ;
- idelta [chan] = best_idelta ;
- } ;
-
- return ;
-} /* choose_predictor */