1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-26 07:10:09 +01:00

Locate and position the current Audacity source code, and clear a variety of old junk out of the way into junk-branches

This commit is contained in:
ra
2010-01-23 19:44:49 +00:00
commit e74978ba77
1011 changed files with 781704 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
; LADSPA_plugins-win Installer
; Vaughan Johnson, September 2006
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
[Setup]
AppName=LADSPA_plugins-win
AppVerName=LADSPA_plugins-win-0.4.15
AppPublisher=Audacity Team
AppPublisherURL=http://audacity.sourceforge.net
AppSupportURL=http://audacity.sourceforge.net
AppUpdatesURL=http://audacity.sourceforge.net
DefaultDirName={pf}\Audacity\Plug-Ins
; Don't do the dir exists warning. We want it to already exist.
DirExistsWarning=no
DefaultGroupName=LADSPA_plugins-win
DisableProgramGroupPage=yes
LicenseFile=..\..\LICENSE.txt
InfoBeforeFile=readme_LADSPA_plugins-win.txt
OutputDir=.\Installer
OutputBaseFilename=LADSPA_plugins-win-0.4.15
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "basque"; MessagesFile: "compiler:Languages\Basque.isl"
Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl"
Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl"
Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl"
Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl"
Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl"
Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"
Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "slovak"; MessagesFile: "compiler:Languages\Slovak.isl"
Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl"
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
[Files]
; Note that {app} is the plugins directory.
Source: "readme_LADSPA_plugins-win.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: ".\Release\*.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: ".\Release\FFTW_docs\*"; DestDir: "{app}\FFTW_docs"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

View File

@@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LADSPA_plugins-win", "LADSPA_plugins-win.vcproj", "{9ECDF3B4-5266-4F8D-8AB4-53087BBBB2E6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9ECDF3B4-5266-4F8D-8AB4-53087BBBB2E6}.Debug|Win32.ActiveCfg = Debug|Win32
{9ECDF3B4-5266-4F8D-8AB4-53087BBBB2E6}.Debug|Win32.Build.0 = Debug|Win32
{9ECDF3B4-5266-4F8D-8AB4-53087BBBB2E6}.Release|Win32.ActiveCfg = Release|Win32
{9ECDF3B4-5266-4F8D-8AB4-53087BBBB2E6}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="LADSPA_plugins-win"
ProjectGUID="{9ECDF3B4-5266-4F8D-8AB4-53087BBBB2E6}"
RootNamespace="LADSPA_plugins-win"
Keyword="MakeFileProj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="0"
>
<Tool
Name="VCNMakeTool"
BuildCommandLine="nmake CONFIG=$(ConfigurationName) OUTDIR=$(OutDir)"
ReBuildCommandLine="nmake CONFIG=$(ConfigurationName) OUTDIR=$(OutDir) clean all"
CleanCommandLine="nmake CONFIG=$(ConfigurationName) OUTDIR=$(OutDir) clean"
Output=""
PreprocessorDefinitions="WIN32;_DEBUG"
IncludeSearchPath=""
ForcedIncludes=""
AssemblySearchPath=""
ForcedUsingAssemblies=""
CompileAsManaged=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="0"
>
<Tool
Name="VCNMakeTool"
BuildCommandLine="nmake CONFIG=$(ConfigurationName) OUTDIR=$(OutDir)"
ReBuildCommandLine="nmake CONFIG=$(ConfigurationName) OUTDIR=$(OutDir) clean all"
CleanCommandLine="nmake CONFIG=$(ConfigurationName) OUTDIR=$(OutDir) clean"
Output=""
PreprocessorDefinitions="WIN32;NDEBUG"
IncludeSearchPath=""
ForcedIncludes=""
AssemblySearchPath=""
ForcedUsingAssemblies=""
CompileAsManaged=""
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<File
RelativePath=".\makefile"
>
</File>
<File
RelativePath=".\makefile.inc"
>
</File>
<File
RelativePath=".\readme.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -0,0 +1,30 @@
/* configwin.h
Vaughan Johnson (vaughan @ audacityteam . org)
October 2003
Some definitions for Windows LADSPA plug-ins, the LADSPA_plugins-win project.
So far, we don't want all the declarations in config.h.
Note that MSVC doesn't define fabsf, powf, or sqrtf for C, only C++,
so the GVerb.dsp project has the /TP global compiler option, to
tell it to treat the .c files as .cpp files, per
"http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_.2f.tc.2c_2f.tp.asp"
*/
#ifndef _CONFIG_H
#define _CONFIG_H
// Fix "inline" keyword for MSVC.
#define inline __inline
// MSVC's math.h does not define isnan.
// According to "http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/vclrfNotNumberNANItems.asp",
// this test should work.
static inline int isnan(double x) { return (int)(x != x); }
#define _USE_MATH_DEFINES
#define FFTW3
#define WIN32
#include "LADSPA_plugins-win/ladspa.h"
#endif _CONFIG_H

View File

@@ -0,0 +1,333 @@
/*
* Copyright (c) 2003, 2006 Matteo Frigo
* Copyright (c) 2003, 2006 Massachusetts Institute of Technology
*
* The following statement of license applies *only* to this header file,
* and *not* to the other files distributed with FFTW or derived therefrom:
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/***************************** NOTE TO USERS *********************************
*
* THIS IS A HEADER FILE, NOT A MANUAL
*
* If you want to know how to use FFTW, please read the manual,
* online at http://www.fftw.org/doc/ and also included with FFTW.
* For a quick start, see the manual's tutorial section.
*
* (Reading header files to learn how to use a library is a habit
* stemming from code lacking a proper manual. Arguably, it's a
* *bad* habit in most cases, because header files can contain
* interfaces that are not part of the public, stable API.)
*
****************************************************************************/
/* header file for fftw3 */
/* (The following is the CVS ID for this file, *not* the version
number of FFTW:) */
/* $Id: fftw3.h,v 1.1 2006-06-27 07:00:02 vjohnson Exp $ */
#ifndef FFTW3_H
#define FFTW3_H
#include <stdio.h>
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
/* If <complex.h> is included, use the C99 complex type. Otherwise
define a type bit-compatible with C99 complex */
#if !defined(FFTW_NO_Complex) && defined(_Complex_I) && defined(complex) && defined(I)
# define FFTW_DEFINE_COMPLEX(R, C) typedef R _Complex C
#else
# define FFTW_DEFINE_COMPLEX(R, C) typedef R C[2]
#endif
#define FFTW_CONCAT(prefix, name) prefix ## name
#define FFTW_MANGLE_DOUBLE(name) FFTW_CONCAT(fftw_, name)
#define FFTW_MANGLE_FLOAT(name) FFTW_CONCAT(fftwf_, name)
#define FFTW_MANGLE_LONG_DOUBLE(name) FFTW_CONCAT(fftwl_, name)
/* IMPORTANT: for Windows compilers, you should add a line
*/
#define FFTW_DLL
/*
here and in kernel/ifftw.h if you are compiling/using FFTW as a
DLL, in order to do the proper importing/exporting, or
alternatively compile with -DFFTW_DLL or the equivalent
command-line flag. This is not necessary under MinGW/Cygwin, where
libtool does the imports/exports automatically. */
#if defined(FFTW_DLL) && (defined(_WIN32) || defined(__WIN32__))
/* annoying Windows syntax for shared-library declarations */
# if defined(COMPILING_FFTW) /* defined in api.h when compiling FFTW */
# define FFTW_EXTERN extern __declspec(dllexport)
# else /* user is calling FFTW; import symbol */
# define FFTW_EXTERN extern __declspec(dllimport)
# endif
#else
# define FFTW_EXTERN extern
#endif
enum fftw_r2r_kind_do_not_use_me {
FFTW_R2HC=0, FFTW_HC2R=1, FFTW_DHT=2,
FFTW_REDFT00=3, FFTW_REDFT01=4, FFTW_REDFT10=5, FFTW_REDFT11=6,
FFTW_RODFT00=7, FFTW_RODFT01=8, FFTW_RODFT10=9, FFTW_RODFT11=10
};
struct fftw_iodim_do_not_use_me {
int n; /* dimension size */
int is; /* input stride */
int os; /* output stride */
};
/*
huge second-order macro that defines prototypes for all API
functions. We expand this macro for each supported precision
X: name-mangling macro
R: real data type
C: complex data type
*/
#define FFTW_DEFINE_API(X, R, C) \
\
FFTW_DEFINE_COMPLEX(R, C); \
\
typedef struct X(plan_s) *X(plan); \
\
typedef struct fftw_iodim_do_not_use_me X(iodim); \
\
typedef enum fftw_r2r_kind_do_not_use_me X(r2r_kind); \
\
FFTW_EXTERN void X(execute)(const X(plan) p); \
\
FFTW_EXTERN X(plan) X(plan_dft)(int rank, const int *n, \
C *in, C *out, int sign, unsigned flags); \
\
FFTW_EXTERN X(plan) X(plan_dft_1d)(int n, C *in, C *out, int sign, \
unsigned flags); \
FFTW_EXTERN X(plan) X(plan_dft_2d)(int nx, int ny, \
C *in, C *out, int sign, unsigned flags); \
FFTW_EXTERN X(plan) X(plan_dft_3d)(int nx, int ny, int nz, \
C *in, C *out, int sign, unsigned flags); \
\
FFTW_EXTERN X(plan) X(plan_many_dft)(int rank, const int *n, \
int howmany, \
C *in, const int *inembed, \
int istride, int idist, \
C *out, const int *onembed, \
int ostride, int odist, \
int sign, unsigned flags); \
\
FFTW_EXTERN X(plan) X(plan_guru_dft)(int rank, const X(iodim) *dims, \
int howmany_rank, \
const X(iodim) *howmany_dims, \
C *in, C *out, \
int sign, unsigned flags); \
FFTW_EXTERN X(plan) X(plan_guru_split_dft)(int rank, const X(iodim) *dims, \
int howmany_rank, \
const X(iodim) *howmany_dims, \
R *ri, R *ii, R *ro, R *io, \
unsigned flags); \
\
FFTW_EXTERN void X(execute_dft)(const X(plan) p, C *in, C *out); \
FFTW_EXTERN void X(execute_split_dft)(const X(plan) p, R *ri, R *ii, \
R *ro, R *io); \
\
FFTW_EXTERN X(plan) X(plan_many_dft_r2c)(int rank, const int *n, \
int howmany, \
R *in, const int *inembed, \
int istride, int idist, \
C *out, const int *onembed, \
int ostride, int odist, \
unsigned flags); \
\
FFTW_EXTERN X(plan) X(plan_dft_r2c)(int rank, const int *n, \
R *in, C *out, unsigned flags); \
\
FFTW_EXTERN X(plan) X(plan_dft_r2c_1d)(int n,R *in,C *out,unsigned flags); \
FFTW_EXTERN X(plan) X(plan_dft_r2c_2d)(int nx, int ny, \
R *in, C *out, unsigned flags); \
FFTW_EXTERN X(plan) X(plan_dft_r2c_3d)(int nx, int ny, \
int nz, \
R *in, C *out, unsigned flags); \
\
\
FFTW_EXTERN X(plan) X(plan_many_dft_c2r)(int rank, const int *n, \
int howmany, \
C *in, const int *inembed, \
int istride, int idist, \
R *out, const int *onembed, \
int ostride, int odist, \
unsigned flags); \
\
FFTW_EXTERN X(plan) X(plan_dft_c2r)(int rank, const int *n, \
C *in, R *out, unsigned flags); \
\
FFTW_EXTERN X(plan) X(plan_dft_c2r_1d)(int n,C *in,R *out,unsigned flags); \
FFTW_EXTERN X(plan) X(plan_dft_c2r_2d)(int nx, int ny, \
C *in, R *out, unsigned flags); \
FFTW_EXTERN X(plan) X(plan_dft_c2r_3d)(int nx, int ny, \
int nz, \
C *in, R *out, unsigned flags); \
\
FFTW_EXTERN X(plan) X(plan_guru_dft_r2c)(int rank, const X(iodim) *dims, \
int howmany_rank, \
const X(iodim) *howmany_dims, \
R *in, C *out, \
unsigned flags); \
FFTW_EXTERN X(plan) X(plan_guru_dft_c2r)(int rank, const X(iodim) *dims, \
int howmany_rank, \
const X(iodim) *howmany_dims, \
C *in, R *out, \
unsigned flags); \
\
FFTW_EXTERN X(plan) X(plan_guru_split_dft_r2c)( \
int rank, const X(iodim) *dims, \
int howmany_rank, \
const X(iodim) *howmany_dims, \
R *in, R *ro, R *io, \
unsigned flags); \
FFTW_EXTERN X(plan) X(plan_guru_split_dft_c2r)( \
int rank, const X(iodim) *dims, \
int howmany_rank, \
const X(iodim) *howmany_dims, \
R *ri, R *ii, R *out, \
unsigned flags); \
\
FFTW_EXTERN void X(execute_dft_r2c)(const X(plan) p, R *in, C *out); \
FFTW_EXTERN void X(execute_dft_c2r)(const X(plan) p, C *in, R *out); \
\
FFTW_EXTERN void X(execute_split_dft_r2c)(const X(plan) p, \
R *in, R *ro, R *io); \
FFTW_EXTERN void X(execute_split_dft_c2r)(const X(plan) p, \
R *ri, R *ii, R *out); \
\
FFTW_EXTERN X(plan) X(plan_many_r2r)(int rank, const int *n, \
int howmany, \
R *in, const int *inembed, \
int istride, int idist, \
R *out, const int *onembed, \
int ostride, int odist, \
const X(r2r_kind) *kind, unsigned flags); \
\
FFTW_EXTERN X(plan) X(plan_r2r)(int rank, const int *n, R *in, R *out, \
const X(r2r_kind) *kind, unsigned flags); \
\
FFTW_EXTERN X(plan) X(plan_r2r_1d)(int n, R *in, R *out, \
X(r2r_kind) kind, unsigned flags); \
FFTW_EXTERN X(plan) X(plan_r2r_2d)(int nx, int ny, R *in, R *out, \
X(r2r_kind) kindx, X(r2r_kind) kindy, \
unsigned flags); \
FFTW_EXTERN X(plan) X(plan_r2r_3d)(int nx, int ny, int nz, \
R *in, R *out, X(r2r_kind) kindx, \
X(r2r_kind) kindy, X(r2r_kind) kindz, \
unsigned flags); \
\
FFTW_EXTERN X(plan) X(plan_guru_r2r)(int rank, const X(iodim) *dims, \
int howmany_rank, \
const X(iodim) *howmany_dims, \
R *in, R *out, \
const X(r2r_kind) *kind, unsigned flags); \
FFTW_EXTERN void X(execute_r2r)(const X(plan) p, R *in, R *out); \
\
FFTW_EXTERN void X(destroy_plan)(X(plan) p); \
FFTW_EXTERN void X(forget_wisdom)(void); \
FFTW_EXTERN void X(cleanup)(void); \
\
FFTW_EXTERN void X(set_timelimit)(double); \
\
FFTW_EXTERN void X(plan_with_nthreads)(int nthreads); \
FFTW_EXTERN int X(init_threads)(void); \
FFTW_EXTERN void X(cleanup_threads)(void); \
\
FFTW_EXTERN void X(export_wisdom_to_file)(FILE *output_file); \
FFTW_EXTERN char *X(export_wisdom_to_string)(void); \
FFTW_EXTERN void X(export_wisdom)(void (*write_char)(char c, void *), \
void *data); \
FFTW_EXTERN int X(import_system_wisdom)(void); \
FFTW_EXTERN int X(import_wisdom_from_file)(FILE *input_file); \
FFTW_EXTERN int X(import_wisdom_from_string)(const char *input_string); \
FFTW_EXTERN int X(import_wisdom)(int (*read_char)(void *), void *data); \
\
FFTW_EXTERN void X(fprint_plan)(const X(plan) p, FILE *output_file); \
FFTW_EXTERN void X(print_plan)(const X(plan) p); \
\
FFTW_EXTERN void *X(malloc)(size_t n); \
FFTW_EXTERN void X(free)(void *p); \
\
FFTW_EXTERN void X(flops)(const X(plan) p, \
double *add, double *mul, double *fmas); \
FFTW_EXTERN double X(estimate_cost)(const X(plan) p); \
\
FFTW_EXTERN const char X(version)[]; \
FFTW_EXTERN const char X(cc)[]; \
FFTW_EXTERN const char X(codelet_optim)[];
/* end of FFTW_DEFINE_API macro */
FFTW_DEFINE_API(FFTW_MANGLE_DOUBLE, double, fftw_complex)
FFTW_DEFINE_API(FFTW_MANGLE_FLOAT, float, fftwf_complex)
FFTW_DEFINE_API(FFTW_MANGLE_LONG_DOUBLE, long double, fftwl_complex)
#define FFTW_FORWARD (-1)
#define FFTW_BACKWARD (+1)
#define FFTW_NO_TIMELIMIT (-1.0)
/* documented flags */
#define FFTW_MEASURE (0U)
#define FFTW_DESTROY_INPUT (1U << 0)
#define FFTW_UNALIGNED (1U << 1)
#define FFTW_CONSERVE_MEMORY (1U << 2)
#define FFTW_EXHAUSTIVE (1U << 3) /* NO_EXHAUSTIVE is default */
#define FFTW_PRESERVE_INPUT (1U << 4) /* cancels FFTW_DESTROY_INPUT */
#define FFTW_PATIENT (1U << 5) /* IMPATIENT is default */
#define FFTW_ESTIMATE (1U << 6)
/* undocumented beyond-guru flags */
#define FFTW_ESTIMATE_PATIENT (1U << 7)
#define FFTW_BELIEVE_PCOST (1U << 8)
#define FFTW_NO_DFT_R2HC (1U << 9)
#define FFTW_NO_NONTHREADED (1U << 10)
#define FFTW_NO_BUFFERING (1U << 11)
#define FFTW_NO_INDIRECT_OP (1U << 12)
#define FFTW_ALLOW_LARGE_GENERIC (1U << 13) /* NO_LARGE_GENERIC is default */
#define FFTW_NO_RANK_SPLITS (1U << 14)
#define FFTW_NO_VRANK_SPLITS (1U << 15)
#define FFTW_NO_VRECURSE (1U << 16)
#define FFTW_NO_SIMD (1U << 17)
#define FFTW_NO_SLOW (1U << 18)
#define FFTW_NO_FIXED_RADIX_LARGE_N (1U << 19)
#define FFTW_ALLOW_PRUNING (1U << 20)
#ifdef __cplusplus
} /* extern "C" */
#endif /* __cplusplus */
#endif /* FFTW3_H */

View File

@@ -0,0 +1,26 @@
/* wchar_t type related definitions.
Copyright (C) 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C 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.
The GNU C 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 the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _BITS_WCHAR_H
#define _BITS_WCHAR_H 1
#define __WCHAR_MIN (-2147483647 - 1)
#define __WCHAR_MAX (2147483647)
#endif /* bits/wchar.h */

View File

@@ -0,0 +1,19 @@
/* Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C 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.
The GNU C 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 the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#define __WORDSIZE 32

View File

@@ -0,0 +1,349 @@
/* Copyright (C) 1991,1992,1993,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C 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.
The GNU C 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 the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _FEATURES_H
#define _FEATURES_H 1
/* These are defined by the user (or the compiler)
to specify the desired environment:
__STRICT_ANSI__ ISO Standard C.
_ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
_POSIX_SOURCE IEEE Std 1003.1.
_POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
if >=199309L, add IEEE Std 1003.1b-1993;
if >=199506L, add IEEE Std 1003.1c-1995;
if >=200112L, all of IEEE 1003.1-2004
_XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
Single Unix conformance is wanted, to 600 for the
upcoming sixth revision.
_XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
_LARGEFILE_SOURCE Some more functions for correct standard I/O.
_LARGEFILE64_SOURCE Additional functionality from LFS for large files.
_FILE_OFFSET_BITS=N Select default filesystem interface.
_BSD_SOURCE ISO C, POSIX, and 4.3BSD things.
_SVID_SOURCE ISO C, POSIX, and SVID things.
_ATFILE_SOURCE Additional *at interfaces.
_GNU_SOURCE All of the above, plus GNU extensions.
_REENTRANT Select additionally reentrant object.
_THREAD_SAFE Same as _REENTRANT, often used by other systems.
_FORTIFY_SOURCE If set to numeric value > 0 additional security
measures are defined, according to level.
The `-ansi' switch to the GNU C compiler defines __STRICT_ANSI__.
If none of these are defined, the default is to have _SVID_SOURCE,
_BSD_SOURCE, and _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
199506L. If more than one of these are defined, they accumulate.
For example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE
together give you ISO C, 1003.1, and 1003.2, but nothing else.
These are defined by this file and are used by the
header files to decide what to declare or define:
__USE_ISOC99 Define ISO C99 things.
__USE_POSIX Define IEEE Std 1003.1 things.
__USE_POSIX2 Define IEEE Std 1003.2 things.
__USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
__USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
__USE_XOPEN Define XPG things.
__USE_XOPEN_EXTENDED Define X/Open Unix things.
__USE_UNIX98 Define Single Unix V2 things.
__USE_XOPEN2K Define XPG6 things.
__USE_LARGEFILE Define correct standard I/O things.
__USE_LARGEFILE64 Define LFS things with separate names.
__USE_FILE_OFFSET64 Define 64bit interface as default.
__USE_BSD Define 4.3BSD things.
__USE_SVID Define SVID things.
__USE_MISC Define things common to BSD and System V Unix.
__USE_ATFILE Define *at interfaces and AT_* constants for them.
__USE_GNU Define GNU extensions.
__USE_REENTRANT Define reentrant/thread-safe *_r functions.
__USE_FORTIFY_LEVEL Additional security measures used, according to level.
__FAVOR_BSD Favor 4.3BSD things in cases of conflict.
The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
defined by this file unconditionally. `__GNU_LIBRARY__' is provided
only for compatibility. All new code should use the other symbols
to test for features.
All macros listed above as possibly being defined by this file are
explicitly undefined if they are not explicitly defined.
Feature-test macros that are not defined by the user or compiler
but are implied by the other feature-test macros defined (or by the
lack of any definitions) are defined by the file. */
/* Undefine everything, so we get a clean slate. */
#undef __USE_ISOC99
#undef __USE_POSIX
#undef __USE_POSIX2
#undef __USE_POSIX199309
#undef __USE_POSIX199506
#undef __USE_XOPEN
#undef __USE_XOPEN_EXTENDED
#undef __USE_UNIX98
#undef __USE_XOPEN2K
#undef __USE_LARGEFILE
#undef __USE_LARGEFILE64
#undef __USE_FILE_OFFSET64
#undef __USE_BSD
#undef __USE_SVID
#undef __USE_MISC
#undef __USE_ATFILE
#undef __USE_GNU
#undef __USE_REENTRANT
#undef __USE_FORTIFY_LEVEL
#undef __FAVOR_BSD
#undef __KERNEL_STRICT_NAMES
/* Suppress kernel-name space pollution unless user expressedly asks
for it. */
#ifndef _LOOSE_KERNEL_NAMES
# define __KERNEL_STRICT_NAMES
#endif
/* Always use ISO C things. */
#define __USE_ANSI 1
/* Convenience macros to test the versions of glibc and gcc.
Use them like this:
#if __GNUC_PREREQ (2,8)
... code requiring gcc 2.8 or later ...
#endif
Note - they won't work for gcc1 or glibc1, since the _MINOR macros
were not defined then. */
#if defined __GNUC__ && defined __GNUC_MINOR__
# define __GNUC_PREREQ(maj, min) \
((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
#else
# define __GNUC_PREREQ(maj, min) 0
#endif
/* If _BSD_SOURCE was defined by the user, favor BSD over POSIX. */
#if defined _BSD_SOURCE && \
!(defined _POSIX_SOURCE || defined _POSIX_C_SOURCE || \
defined _XOPEN_SOURCE || defined _XOPEN_SOURCE_EXTENDED || \
defined _GNU_SOURCE || defined _SVID_SOURCE)
# define __FAVOR_BSD 1
#endif
/* If _GNU_SOURCE was defined by the user, turn on all the other features. */
#ifdef _GNU_SOURCE
# undef _ISOC99_SOURCE
# define _ISOC99_SOURCE 1
# undef _POSIX_SOURCE
# define _POSIX_SOURCE 1
# undef _POSIX_C_SOURCE
# define _POSIX_C_SOURCE 199506L
# undef _XOPEN_SOURCE
# define _XOPEN_SOURCE 600
# undef _XOPEN_SOURCE_EXTENDED
# define _XOPEN_SOURCE_EXTENDED 1
# undef _LARGEFILE64_SOURCE
# define _LARGEFILE64_SOURCE 1
# undef _BSD_SOURCE
# define _BSD_SOURCE 1
# undef _SVID_SOURCE
# define _SVID_SOURCE 1
# undef _ATFILE_SOURCE
# define _ATFILE_SOURCE 1
#endif
/* If nothing (other than _GNU_SOURCE) is defined,
define _BSD_SOURCE and _SVID_SOURCE. */
#if (!defined __STRICT_ANSI__ && !defined _ISOC99_SOURCE && \
!defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE && \
!defined _XOPEN_SOURCE && !defined _XOPEN_SOURCE_EXTENDED && \
!defined _BSD_SOURCE && !defined _SVID_SOURCE)
# define _BSD_SOURCE 1
# define _SVID_SOURCE 1
#endif
/* This is to enable the ISO C99 extension. Also recognize the old macro
which was used prior to the standard acceptance. This macro will
eventually go away and the features enabled by default once the ISO C99
standard is widely adopted. */
#if (defined _ISOC99_SOURCE || defined _ISOC9X_SOURCE \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
# define __USE_ISOC99 1
#endif
/* If none of the ANSI/POSIX macros are defined, use POSIX.1 and POSIX.2
(and IEEE Std 1003.1b-1993 unless _XOPEN_SOURCE is defined). */
#if ((!defined __STRICT_ANSI__ || (_XOPEN_SOURCE - 0) >= 500) && \
!defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE)
# define _POSIX_SOURCE 1
# if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500
# define _POSIX_C_SOURCE 2
# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 600
# define _POSIX_C_SOURCE 199506L
# else
# define _POSIX_C_SOURCE 200112L
# endif
#endif
#if defined _POSIX_SOURCE || _POSIX_C_SOURCE >= 1 || defined _XOPEN_SOURCE
# define __USE_POSIX 1
#endif
#if defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 2 || defined _XOPEN_SOURCE
# define __USE_POSIX2 1
#endif
#if (_POSIX_C_SOURCE - 0) >= 199309L
# define __USE_POSIX199309 1
#endif
#if (_POSIX_C_SOURCE - 0) >= 199506L
# define __USE_POSIX199506 1
#endif
#if (_POSIX_C_SOURCE - 0) >= 200112L
# define __USE_XOPEN2K 1
#endif
#ifdef _XOPEN_SOURCE
# define __USE_XOPEN 1
# if (_XOPEN_SOURCE - 0) >= 500
# define __USE_XOPEN_EXTENDED 1
# define __USE_UNIX98 1
# undef _LARGEFILE_SOURCE
# define _LARGEFILE_SOURCE 1
# if (_XOPEN_SOURCE - 0) >= 600
# define __USE_XOPEN2K 1
# undef __USE_ISOC99
# define __USE_ISOC99 1
# endif
# else
# ifdef _XOPEN_SOURCE_EXTENDED
# define __USE_XOPEN_EXTENDED 1
# endif
# endif
#endif
#ifdef _LARGEFILE_SOURCE
# define __USE_LARGEFILE 1
#endif
#ifdef _LARGEFILE64_SOURCE
# define __USE_LARGEFILE64 1
#endif
#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64
# define __USE_FILE_OFFSET64 1
#endif
#if defined _BSD_SOURCE || defined _SVID_SOURCE
# define __USE_MISC 1
#endif
#ifdef _BSD_SOURCE
# define __USE_BSD 1
#endif
#ifdef _SVID_SOURCE
# define __USE_SVID 1
#endif
#ifdef _ATFILE_SOURCE
# define __USE_ATFILE 1
#endif
#ifdef _GNU_SOURCE
# define __USE_GNU 1
#endif
#if defined _REENTRANT || defined _THREAD_SAFE
# define __USE_REENTRANT 1
#endif
#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
&& __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
# if _FORTIFY_SOURCE > 1
# define __USE_FORTIFY_LEVEL 2
# else
# define __USE_FORTIFY_LEVEL 1
# endif
#else
# define __USE_FORTIFY_LEVEL 0
#endif
/* We do support the IEC 559 math functionality, real and complex. */
#define __STDC_IEC_559__ 1
#define __STDC_IEC_559_COMPLEX__ 1
/* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1. */
#define __STDC_ISO_10646__ 200009L
/* This macro indicates that the installed library is the GNU C Library.
For historic reasons the value now is 6 and this will stay from now
on. The use of this variable is deprecated. Use __GLIBC__ and
__GLIBC_MINOR__ now (see below) when you want to test for a specific
GNU C library version and use the values in <gnu/lib-names.h> to get
the sonames of the shared libraries. */
#undef __GNU_LIBRARY__
#define __GNU_LIBRARY__ 6
/* Major and minor version number of the GNU C library package. Use
these macros to test for features in specific releases. */
#define __GLIBC__ 2
#define __GLIBC_MINOR__ 4
#define __GLIBC_PREREQ(maj, min) \
((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
/* Decide whether a compiler supports the long long datatypes. */
#if defined __GNUC__ \
|| (defined __PGI && defined __i386__ ) \
|| (defined __INTEL_COMPILER && (defined __i386__ || defined __ia64__)) \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
# define __GLIBC_HAVE_LONG_LONG 1
#endif
/* This is here only because every header file already includes this one. */
#ifndef __ASSEMBLER__
# ifndef _SYS_CDEFS_H
# include <sys/cdefs.h>
# endif
/* If we don't have __REDIRECT, prototypes will be missing if
__USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
# if defined __USE_FILE_OFFSET64 && !defined __REDIRECT
# define __USE_LARGEFILE 1
# define __USE_LARGEFILE64 1
# endif
#endif /* !ASSEMBLER */
/* Decide whether we can define 'extern inline' functions in headers. */
#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
&& !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__
# define __USE_EXTERN_INLINES 1
#endif
/* This is here only because every header file already includes this one.
Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
<gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
that will always return failure (and set errno to ENOSYS). */
#include <gnu/stubs.h>
#endif /* features.h */

View File

@@ -0,0 +1,2 @@
/* This is a placeholder used only while compiling libc.
The installed gnu/stubs.h file is created by make install. */

View File

@@ -0,0 +1,320 @@
/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C 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.
The GNU C 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 the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
/*
* ISO C99: 7.18 Integer types <stdint.h>
*/
#ifndef _STDINT_H
#define _STDINT_H 1
#include <features.h>
#include <bits/wchar.h>
#include <bits/wordsize.h>
/* Exact integral types. */
/* Signed. */
/* There is some amount of overlap with <sys/types.h> as known by inet code */
#ifndef __int8_t_defined
# define __int8_t_defined
typedef signed char int8_t;
typedef short int int16_t;
typedef int int32_t;
# if __WORDSIZE == 64
typedef long int int64_t;
# else
__extension__
typedef long long int int64_t;
# endif
#endif
/* Unsigned. */
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
#ifndef __uint32_t_defined
typedef unsigned int uint32_t;
# define __uint32_t_defined
#endif
#if __WORDSIZE == 64
typedef unsigned long int uint64_t;
#else
__extension__
typedef unsigned long long int uint64_t;
#endif
/* Small types. */
/* Signed. */
typedef signed char int_least8_t;
typedef short int int_least16_t;
typedef int int_least32_t;
#if __WORDSIZE == 64
typedef long int int_least64_t;
#else
__extension__
typedef long long int int_least64_t;
#endif
/* Unsigned. */
typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;
#if __WORDSIZE == 64
typedef unsigned long int uint_least64_t;
#else
__extension__
typedef unsigned long long int uint_least64_t;
#endif
/* Fast types. */
/* Signed. */
typedef signed char int_fast8_t;
#if __WORDSIZE == 64
typedef long int int_fast16_t;
typedef long int int_fast32_t;
typedef long int int_fast64_t;
#else
typedef int int_fast16_t;
typedef int int_fast32_t;
__extension__
typedef long long int int_fast64_t;
#endif
/* Unsigned. */
typedef unsigned char uint_fast8_t;
#if __WORDSIZE == 64
typedef unsigned long int uint_fast16_t;
typedef unsigned long int uint_fast32_t;
typedef unsigned long int uint_fast64_t;
#else
typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
__extension__
typedef unsigned long long int uint_fast64_t;
#endif
/* Types for `void *' pointers. */
#if __WORDSIZE == 64
# ifndef __intptr_t_defined
typedef long int intptr_t;
# define __intptr_t_defined
# endif
typedef unsigned long int uintptr_t;
#else
# ifndef __intptr_t_defined
typedef int intptr_t;
# define __intptr_t_defined
# endif
typedef unsigned int uintptr_t;
#endif
/* Largest integral types. */
#if __WORDSIZE == 64
typedef long int intmax_t;
typedef unsigned long int uintmax_t;
#else
__extension__
typedef long long int intmax_t;
__extension__
typedef unsigned long long int uintmax_t;
#endif
/* The ISO C99 standard specifies that in C++ implementations these
macros should only be defined if explicitly requested. */
#if !defined __cplusplus || defined __STDC_LIMIT_MACROS
# if __WORDSIZE == 64
# define __INT64_C(c) c ## L
# define __UINT64_C(c) c ## UL
# else
# define __INT64_C(c) c ## LL
# define __UINT64_C(c) c ## ULL
# endif
/* Limits of integral types. */
/* Minimum of signed integral types. */
# define INT8_MIN (-128)
# define INT16_MIN (-32767-1)
# define INT32_MIN (-2147483647-1)
# define INT64_MIN (-__INT64_C(9223372036854775807)-1)
/* Maximum of signed integral types. */
# define INT8_MAX (127)
# define INT16_MAX (32767)
# define INT32_MAX (2147483647)
# define INT64_MAX (__INT64_C(9223372036854775807))
/* Maximum of unsigned integral types. */
# define UINT8_MAX (255)
# define UINT16_MAX (65535)
# define UINT32_MAX (4294967295U)
# define UINT64_MAX (__UINT64_C(18446744073709551615))
/* Minimum of signed integral types having a minimum size. */
# define INT_LEAST8_MIN (-128)
# define INT_LEAST16_MIN (-32767-1)
# define INT_LEAST32_MIN (-2147483647-1)
# define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1)
/* Maximum of signed integral types having a minimum size. */
# define INT_LEAST8_MAX (127)
# define INT_LEAST16_MAX (32767)
# define INT_LEAST32_MAX (2147483647)
# define INT_LEAST64_MAX (__INT64_C(9223372036854775807))
/* Maximum of unsigned integral types having a minimum size. */
# define UINT_LEAST8_MAX (255)
# define UINT_LEAST16_MAX (65535)
# define UINT_LEAST32_MAX (4294967295U)
# define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615))
/* Minimum of fast signed integral types having a minimum size. */
# define INT_FAST8_MIN (-128)
# if __WORDSIZE == 64
# define INT_FAST16_MIN (-9223372036854775807L-1)
# define INT_FAST32_MIN (-9223372036854775807L-1)
# else
# define INT_FAST16_MIN (-2147483647-1)
# define INT_FAST32_MIN (-2147483647-1)
# endif
# define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1)
/* Maximum of fast signed integral types having a minimum size. */
# define INT_FAST8_MAX (127)
# if __WORDSIZE == 64
# define INT_FAST16_MAX (9223372036854775807L)
# define INT_FAST32_MAX (9223372036854775807L)
# else
# define INT_FAST16_MAX (2147483647)
# define INT_FAST32_MAX (2147483647)
# endif
# define INT_FAST64_MAX (__INT64_C(9223372036854775807))
/* Maximum of fast unsigned integral types having a minimum size. */
# define UINT_FAST8_MAX (255)
# if __WORDSIZE == 64
# define UINT_FAST16_MAX (18446744073709551615UL)
# define UINT_FAST32_MAX (18446744073709551615UL)
# else
# define UINT_FAST16_MAX (4294967295U)
# define UINT_FAST32_MAX (4294967295U)
# endif
# define UINT_FAST64_MAX (__UINT64_C(18446744073709551615))
/* Values to test for integral types holding `void *' pointer. */
# if __WORDSIZE == 64
# define INTPTR_MIN (-9223372036854775807L-1)
# define INTPTR_MAX (9223372036854775807L)
# define UINTPTR_MAX (18446744073709551615UL)
# else
# define INTPTR_MIN (-2147483647-1)
# define INTPTR_MAX (2147483647)
# define UINTPTR_MAX (4294967295U)
# endif
/* Minimum for largest signed integral type. */
# define INTMAX_MIN (-__INT64_C(9223372036854775807)-1)
/* Maximum for largest signed integral type. */
# define INTMAX_MAX (__INT64_C(9223372036854775807))
/* Maximum for largest unsigned integral type. */
# define UINTMAX_MAX (__UINT64_C(18446744073709551615))
/* Limits of other integer types. */
/* Limits of `ptrdiff_t' type. */
# if __WORDSIZE == 64
# define PTRDIFF_MIN (-9223372036854775807L-1)
# define PTRDIFF_MAX (9223372036854775807L)
# else
# define PTRDIFF_MIN (-2147483647-1)
# define PTRDIFF_MAX (2147483647)
# endif
/* Limits of `sig_atomic_t'. */
# define SIG_ATOMIC_MIN (-2147483647-1)
# define SIG_ATOMIC_MAX (2147483647)
/* Limit of `size_t' type. */
# if __WORDSIZE == 64
# define SIZE_MAX (18446744073709551615UL)
# else
# define SIZE_MAX (4294967295U)
# endif
/* Limits of `wchar_t'. */
# ifndef WCHAR_MIN
/* These constants might also be defined in <wchar.h>. */
# define WCHAR_MIN __WCHAR_MIN
# define WCHAR_MAX __WCHAR_MAX
# endif
/* Limits of `wint_t'. */
# define WINT_MIN (0u)
# define WINT_MAX (4294967295u)
#endif /* C++ && limit macros */
/* The ISO C99 standard specifies that in C++ implementations these
should only be defined if explicitly requested. */
#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
/* Signed. */
# define INT8_C(c) c
# define INT16_C(c) c
# define INT32_C(c) c
# if __WORDSIZE == 64
# define INT64_C(c) c ## L
# else
# define INT64_C(c) c ## LL
# endif
/* Unsigned. */
# define UINT8_C(c) c ## U
# define UINT16_C(c) c ## U
# define UINT32_C(c) c ## U
# if __WORDSIZE == 64
# define UINT64_C(c) c ## UL
# else
# define UINT64_C(c) c ## ULL
# endif
/* Maximal type. */
# if __WORDSIZE == 64
# define INTMAX_C(c) c ## L
# define UINTMAX_C(c) c ## UL
# else
# define INTMAX_C(c) c ## LL
# define UINTMAX_C(c) c ## ULL
# endif
#endif /* C++ && constant macros */
#endif /* stdint.h */

View File

@@ -0,0 +1,338 @@
/* Copyright (C) 1992-2001, 2002, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C 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.
The GNU C 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 the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _SYS_CDEFS_H
#define _SYS_CDEFS_H 1
/* We are almost always included from features.h. */
#ifndef _FEATURES_H
# include <features.h>
#endif
/* The GNU libc does not support any K&R compilers or the traditional mode
of ISO C compilers anymore. Check for some of the combinations not
anymore supported. */
#if defined __GNUC__ && !defined __STDC__
# error "You need a ISO C conforming compiler to use the glibc headers"
#endif
/* Some user header file might have defined this before. */
#undef __P
#undef __PMT
#ifdef __GNUC__
/* GCC can always grok prototypes. For C++ programs we add throw()
to help it optimize the function calls. But this works only with
gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
as non-throwing using a function attribute since programs can use
the -fexceptions options for C code as well. */
# if !defined __cplusplus && __GNUC_PREREQ (3, 3)
# define __THROW __attribute__ ((__nothrow__))
# define __NTH(fct) __attribute__ ((__nothrow__)) fct
# else
# if defined __cplusplus && __GNUC_PREREQ (2,8)
# define __THROW throw ()
# define __NTH(fct) fct throw ()
# else
# define __THROW
# define __NTH(fct) fct
# endif
# endif
#else /* Not GCC. */
# define __inline /* No inline functions. */
# define __THROW
# define __NTH(fct) fct
# define __const const
# define __signed signed
# define __volatile volatile
#endif /* GCC. */
/* These two macros are not used in glibc anymore. They are kept here
only because some other projects expect the macros to be defined. */
#define __P(args) args
#define __PMT(args) args
/* For these things, GCC behaves the ANSI way normally,
and the non-ANSI way under -traditional. */
#define __CONCAT(x,y) x ## y
#define __STRING(x) #x
/* This is not a typedef so `const __ptr_t' does the right thing. */
#define __ptr_t void *
#define __long_double_t long double
/* C++ needs to know that types and declarations are C, not C++. */
#ifdef __cplusplus
# define __BEGIN_DECLS extern "C" {
# define __END_DECLS }
#else
# define __BEGIN_DECLS
# define __END_DECLS
#endif
/* The standard library needs the functions from the ISO C90 standard
in the std namespace. At the same time we want to be safe for
future changes and we include the ISO C99 code in the non-standard
namespace __c99. The C++ wrapper header take case of adding the
definitions to the global namespace. */
#if defined __cplusplus && defined _GLIBCPP_USE_NAMESPACES
# define __BEGIN_NAMESPACE_STD namespace std {
# define __END_NAMESPACE_STD }
# define __USING_NAMESPACE_STD(name) using std::name;
# define __BEGIN_NAMESPACE_C99 namespace __c99 {
# define __END_NAMESPACE_C99 }
# define __USING_NAMESPACE_C99(name) using __c99::name;
#else
/* For compatibility we do not add the declarations into any
namespace. They will end up in the global namespace which is what
old code expects. */
# define __BEGIN_NAMESPACE_STD
# define __END_NAMESPACE_STD
# define __USING_NAMESPACE_STD(name)
# define __BEGIN_NAMESPACE_C99
# define __END_NAMESPACE_C99
# define __USING_NAMESPACE_C99(name)
#endif
/* Support for bounded pointers. */
#ifndef __BOUNDED_POINTERS__
# define __bounded /* nothing */
# define __unbounded /* nothing */
# define __ptrvalue /* nothing */
#endif
/* Fortify support. */
#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
#define __bos0(ptr) __builtin_object_size (ptr, 0)
#define __warndecl(name, msg) extern void name (void)
/* Support for flexible arrays. */
#if __GNUC_PREREQ (2,97)
/* GCC 2.97 supports C99 flexible array members. */
# define __flexarr []
#else
# ifdef __GNUC__
# define __flexarr [0]
# else
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
# define __flexarr []
# else
/* Some other non-C99 compiler. Approximate with [1]. */
# define __flexarr [1]
# endif
# endif
#endif
/* __asm__ ("xyz") is used throughout the headers to rename functions
at the assembly language level. This is wrapped by the __REDIRECT
macro, in order to support compilers that can do this some other
way. When compilers don't support asm-names at all, we have to do
preprocessor tricks instead (which don't have exactly the right
semantics, but it's the best we can do).
Example:
int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */
#if defined __GNUC__ && __GNUC__ >= 2
# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias))
# ifdef __cplusplus
# define __REDIRECT_NTH(name, proto, alias) \
name proto __THROW __asm__ (__ASMNAME (#alias))
# else
# define __REDIRECT_NTH(name, proto, alias) \
name proto __asm__ (__ASMNAME (#alias)) __THROW
# endif
# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
# define __ASMNAME2(prefix, cname) __STRING (prefix) cname
/*
#elif __SOME_OTHER_COMPILER__
# define __REDIRECT(name, proto, alias) name proto; \
_Pragma("let " #name " = " #alias)
*/
#endif
/* GCC has various useful declarations that can be made with the
`__attribute__' syntax. All of the ways we use this do fine if
they are omitted for compilers that don't understand it. */
#if !defined __GNUC__ || __GNUC__ < 2
# define __attribute__(xyz) /* Ignore */
#endif
/* At some point during the gcc 2.96 development the `malloc' attribute
for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings. */
#if __GNUC_PREREQ (2,96)
# define __attribute_malloc__ __attribute__ ((__malloc__))
#else
# define __attribute_malloc__ /* Ignore */
#endif
/* At some point during the gcc 2.96 development the `pure' attribute
for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings. */
#if __GNUC_PREREQ (2,96)
# define __attribute_pure__ __attribute__ ((__pure__))
#else
# define __attribute_pure__ /* Ignore */
#endif
/* At some point during the gcc 3.1 development the `used' attribute
for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings. */
#if __GNUC_PREREQ (3,1)
# define __attribute_used__ __attribute__ ((__used__))
# define __attribute_noinline__ __attribute__ ((__noinline__))
#else
# define __attribute_used__ __attribute__ ((__unused__))
# define __attribute_noinline__ /* Ignore */
#endif
/* gcc allows marking deprecated functions. */
#if __GNUC_PREREQ (3,2)
# define __attribute_deprecated__ __attribute__ ((__deprecated__))
#else
# define __attribute_deprecated__ /* Ignore */
#endif
/* At some point during the gcc 2.8 development the `format_arg' attribute
for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings.
If several `format_arg' attributes are given for the same function, in
gcc-3.0 and older, all but the last one are ignored. In newer gccs,
all designated arguments are considered. */
#if __GNUC_PREREQ (2,8)
# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))
#else
# define __attribute_format_arg__(x) /* Ignore */
#endif
/* At some point during the gcc 2.97 development the `strfmon' format
attribute for functions was introduced. We don't want to use it
unconditionally (although this would be possible) since it
generates warnings. */
#if __GNUC_PREREQ (2,97)
# define __attribute_format_strfmon__(a,b) \
__attribute__ ((__format__ (__strfmon__, a, b)))
#else
# define __attribute_format_strfmon__(a,b) /* Ignore */
#endif
/* The nonull function attribute allows to mark pointer parameters which
must not be NULL. */
#if __GNUC_PREREQ (3,3)
# define __nonnull(params) __attribute__ ((__nonnull__ params))
#else
# define __nonnull(params)
#endif
/* If fortification mode, we warn about unused results of certain
function calls which can lead to problems. */
#if __GNUC_PREREQ (3,4)
# define __attribute_warn_unused_result__ \
__attribute__ ((__warn_unused_result__))
# if __USE_FORTIFY_LEVEL > 0
# define __wur __attribute_warn_unused_result__
# endif
#else
# define __attribute_warn_unused_result__ /* empty */
#endif
#ifndef __wur
# define __wur /* Ignore */
#endif
/* Forces a function to be always inlined. */
#if __GNUC_PREREQ (3,2)
# define __always_inline __inline __attribute__ ((__always_inline__))
#else
# define __always_inline __inline
#endif
/* It is possible to compile containing GCC extensions even if GCC is
run in pedantic mode if the uses are carefully marked using the
`__extension__' keyword. But this is not generally available before
version 2.8. */
#if !__GNUC_PREREQ (2,8)
# define __extension__ /* Ignore */
#endif
/* __restrict is known in EGCS 1.2 and above. */
#if !__GNUC_PREREQ (2,92)
# define __restrict /* Ignore */
#endif
/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is
array_name[restrict]
GCC 3.1 supports this. */
#if __GNUC_PREREQ (3,1) && !defined __GNUG__
# define __restrict_arr __restrict
#else
# ifdef __GNUC__
# define __restrict_arr /* Not supported in old GCC. */
# else
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
# define __restrict_arr restrict
# else
/* Some other non-C99 compiler. */
# define __restrict_arr /* Not supported. */
# endif
# endif
#endif
#include <bits/wordsize.h>
#if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH
# define __LDBL_COMPAT 1
# ifdef __REDIRECT
# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias)
# define __LDBL_REDIR(name, proto) \
__LDBL_REDIR1 (name, proto, __nldbl_##name)
# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias)
# define __LDBL_REDIR_NTH(name, proto) \
__LDBL_REDIR1_NTH (name, proto, __nldbl_##name)
# define __LDBL_REDIR1_DECL(name, alias) \
extern __typeof (name) name __asm (__ASMNAME (#alias));
# define __LDBL_REDIR_DECL(name) \
extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name));
# endif
#endif
#if !defined __LDBL_COMPAT || !defined __REDIRECT
# define __LDBL_REDIR1(name, proto, alias) name proto
# define __LDBL_REDIR(name, proto) name proto
# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW
# define __LDBL_REDIR_NTH(name, proto) name proto __THROW
# define __LDBL_REDIR_DECL(name)
#endif
#endif /* sys/cdefs.h */

View File

@@ -0,0 +1,606 @@
/* ladspa.h
Linux Audio Developer's Simple Plugin API Version 1.1[provisional,
LGPL]. Copyright (C) 2000-2002 Richard W.E. Furse, Paul
Barton-Davis, Stefan Westerfeld.
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. */
#ifndef LADSPA_INCLUDED
#define LADSPA_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
/*****************************************************************************/
/* Overview:
There is a large number of synthesis packages in use or development
on the Linux platform at this time. This API (`The Linux Audio
Developer's Simple Plugin API') attempts to give programmers the
ability to write simple `plugin' audio processors in C/C++ and link
them dynamically (`plug') into a range of these packages (`hosts').
It should be possible for any host and any plugin to communicate
completely through this interface.
This API is deliberately short and simple. To achieve compatibility
with a range of promising Linux sound synthesis packages it
attempts to find the `greatest common divisor' in their logical
behaviour. Having said this, certain limiting decisions are
implicit, notably the use of a fixed type (LADSPA_Data) for all
data transfer and absence of a parameterised `initialisation'
phase. See below for the LADSPA_Data typedef.
Plugins are expected to distinguish between control and audio
data. Plugins have `ports' that are inputs or outputs for audio or
control data and each plugin is `run' for a `block' corresponding
to a short time interval measured in samples. Audio data is
communicated using arrays of LADSPA_Data, allowing a block of audio
to be processed by the plugin in a single pass. Control data is
communicated using single LADSPA_Data values. Control data has a
single value at the start of a call to the `run()' or `run_adding()'
function, and may be considered to remain this value for its
duration. The plugin may assume that all its input and output ports
have been connected to the relevant data location (see the
`connect_port()' function below) before it is asked to run.
Plugins will reside in shared object files suitable for dynamic
linking by dlopen() and family. The file will provide a number of
`plugin types' that can be used to instantiate actual plugins
(sometimes known as `plugin instances') that can be connected
together to perform tasks.
This API contains very limited error-handling. */
/*****************************************************************************/
/* Fundamental data type passed in and out of plugin. This data type
is used to communicate audio samples and control values. It is
assumed that the plugin will work sensibly given any numeric input
value although it may have a preferred range (see hints below).
For audio it is generally assumed that 1.0f is the `0dB' reference
amplitude and is a `normal' signal level. */
typedef float LADSPA_Data;
/*****************************************************************************/
/* Special Plugin Properties:
Optional features of the plugin type are encapsulated in the
LADSPA_Properties type. This is assembled by ORing individual
properties together. */
typedef int LADSPA_Properties;
/* Property LADSPA_PROPERTY_REALTIME indicates that the plugin has a
real-time dependency (e.g. listens to a MIDI device) and so its
output must not be cached or subject to significant latency. */
#define LADSPA_PROPERTY_REALTIME 0x1
/* Property LADSPA_PROPERTY_INPLACE_BROKEN indicates that the plugin
may cease to work correctly if the host elects to use the same data
location for both input and output (see connect_port()). This
should be avoided as enabling this flag makes it impossible for
hosts to use the plugin to process audio `in-place.' */
#define LADSPA_PROPERTY_INPLACE_BROKEN 0x2
/* Property LADSPA_PROPERTY_HARD_RT_CAPABLE indicates that the plugin
is capable of running not only in a conventional host but also in a
`hard real-time' environment. To qualify for this the plugin must
satisfy all of the following:
(1) The plugin must not use malloc(), free() or other heap memory
management within its run() or run_adding() functions. All new
memory used in run() must be managed via the stack. These
restrictions only apply to the run() function.
(2) The plugin will not attempt to make use of any library
functions with the exceptions of functions in the ANSI standard C
and C maths libraries, which the host is expected to provide.
(3) The plugin will not access files, devices, pipes, sockets, IPC
or any other mechanism that might result in process or thread
blocking.
(4) The plugin will take an amount of time to execute a run() or
run_adding() call approximately of form (A+B*SampleCount) where A
and B depend on the machine and host in use. This amount of time
may not depend on input signals or plugin state. The host is left
the responsibility to perform timings to estimate upper bounds for
A and B. */
#define LADSPA_PROPERTY_HARD_RT_CAPABLE 0x4
#define LADSPA_IS_REALTIME(x) ((x) & LADSPA_PROPERTY_REALTIME)
#define LADSPA_IS_INPLACE_BROKEN(x) ((x) & LADSPA_PROPERTY_INPLACE_BROKEN)
#define LADSPA_IS_HARD_RT_CAPABLE(x) ((x) & LADSPA_PROPERTY_HARD_RT_CAPABLE)
/*****************************************************************************/
/* Plugin Ports:
Plugins have `ports' that are inputs or outputs for audio or
data. Ports can communicate arrays of LADSPA_Data (for audio
inputs/outputs) or single LADSPA_Data values (for control
input/outputs). This information is encapsulated in the
LADSPA_PortDescriptor type which is assembled by ORing individual
properties together.
Note that a port must be an input or an output port but not both
and that a port must be a control or audio port but not both. */
typedef int LADSPA_PortDescriptor;
/* Property LADSPA_PORT_INPUT indicates that the port is an input. */
#define LADSPA_PORT_INPUT 0x1
/* Property LADSPA_PORT_OUTPUT indicates that the port is an output. */
#define LADSPA_PORT_OUTPUT 0x2
/* Property LADSPA_PORT_CONTROL indicates that the port is a control
port. */
#define LADSPA_PORT_CONTROL 0x4
/* Property LADSPA_PORT_AUDIO indicates that the port is a audio
port. */
#define LADSPA_PORT_AUDIO 0x8
#define LADSPA_IS_PORT_INPUT(x) ((x) & LADSPA_PORT_INPUT)
#define LADSPA_IS_PORT_OUTPUT(x) ((x) & LADSPA_PORT_OUTPUT)
#define LADSPA_IS_PORT_CONTROL(x) ((x) & LADSPA_PORT_CONTROL)
#define LADSPA_IS_PORT_AUDIO(x) ((x) & LADSPA_PORT_AUDIO)
/*****************************************************************************/
/* Plugin Port Range Hints:
The host may wish to provide a representation of data entering or
leaving a plugin (e.g. to generate a GUI automatically). To make
this more meaningful, the plugin should provide `hints' to the host
describing the usual values taken by the data.
Note that these are only hints. The host may ignore them and the
plugin must not assume that data supplied to it is meaningful. If
the plugin receives invalid input data it is expected to continue
to run without failure and, where possible, produce a sensible
output (e.g. a high-pass filter given a negative cutoff frequency
might switch to an all-pass mode).
Hints are meaningful for all input and output ports but hints for
input control ports are expected to be particularly useful.
More hint information is encapsulated in the
LADSPA_PortRangeHintDescriptor type which is assembled by ORing
individual hint types together. Hints may require further
LowerBound and UpperBound information.
All the hint information for a particular port is aggregated in the
LADSPA_PortRangeHint structure. */
typedef int LADSPA_PortRangeHintDescriptor;
/* Hint LADSPA_HINT_BOUNDED_BELOW indicates that the LowerBound field
of the LADSPA_PortRangeHint should be considered meaningful. The
value in this field should be considered the (inclusive) lower
bound of the valid range. If LADSPA_HINT_SAMPLE_RATE is also
specified then the value of LowerBound should be multiplied by the
sample rate. */
#define LADSPA_HINT_BOUNDED_BELOW 0x1
/* Hint LADSPA_HINT_BOUNDED_ABOVE indicates that the UpperBound field
of the LADSPA_PortRangeHint should be considered meaningful. The
value in this field should be considered the (inclusive) upper
bound of the valid range. If LADSPA_HINT_SAMPLE_RATE is also
specified then the value of UpperBound should be multiplied by the
sample rate. */
#define LADSPA_HINT_BOUNDED_ABOVE 0x2
/* Hint LADSPA_HINT_TOGGLED indicates that the data item should be
considered a Boolean toggle. Data less than or equal to zero should
be considered `off' or `false,' and data above zero should be
considered `on' or `true.' LADSPA_HINT_TOGGLED may not be used in
conjunction with any other hint except LADSPA_HINT_DEFAULT_0 or
LADSPA_HINT_DEFAULT_1. */
#define LADSPA_HINT_TOGGLED 0x4
/* Hint LADSPA_HINT_SAMPLE_RATE indicates that any bounds specified
should be interpreted as multiples of the sample rate. For
instance, a frequency range from 0Hz to the Nyquist frequency (half
the sample rate) could be requested by this hint in conjunction
with LowerBound = 0 and UpperBound = 0.5. Hosts that support bounds
at all must support this hint to retain meaning. */
#define LADSPA_HINT_SAMPLE_RATE 0x8
/* Hint LADSPA_HINT_LOGARITHMIC indicates that it is likely that the
user will find it more intuitive to view values using a logarithmic
scale. This is particularly useful for frequencies and gains. */
#define LADSPA_HINT_LOGARITHMIC 0x10
/* Hint LADSPA_HINT_INTEGER indicates that a user interface would
probably wish to provide a stepped control taking only integer
values. Any bounds set should be slightly wider than the actual
integer range required to avoid floating point rounding errors. For
instance, the integer set {0,1,2,3} might be described as [-0.1,
3.1]. */
#define LADSPA_HINT_INTEGER 0x20
/* The various LADSPA_HINT_HAS_DEFAULT_* hints indicate a `normal'
value for the port that is sensible as a default. For instance,
this value is suitable for use as an initial value in a user
interface or as a value the host might assign to a control port
when the user has not provided one. Defaults are encoded using a
mask so only one default may be specified for a port. Some of the
hints make use of lower and upper bounds, in which case the
relevant bound or bounds must be available and
LADSPA_HINT_SAMPLE_RATE must be applied as usual. The resulting
default must be rounded if LADSPA_HINT_INTEGER is present. Default
values were introduced in LADSPA v1.1. */
#define LADSPA_HINT_DEFAULT_MASK 0x3C0
/* This default values indicates that no default is provided. */
#define LADSPA_HINT_DEFAULT_NONE 0x0
/* This default hint indicates that the suggested lower bound for the
port should be used. */
#define LADSPA_HINT_DEFAULT_MINIMUM 0x40
/* This default hint indicates that a low value between the suggested
lower and upper bounds should be chosen. For ports with
LADSPA_HINT_LOGARITHMIC, this should be exp(log(lower) * 0.75 +
log(upper) * 0.25). Otherwise, this should be (lower * 0.75 + upper
* 0.25). */
#define LADSPA_HINT_DEFAULT_LOW 0x80
/* This default hint indicates that a middle value between the
suggested lower and upper bounds should be chosen. For ports with
LADSPA_HINT_LOGARITHMIC, this should be exp(log(lower) * 0.5 +
log(upper) * 0.5). Otherwise, this should be (lower * 0.5 + upper *
0.5). */
#define LADSPA_HINT_DEFAULT_MIDDLE 0xC0
/* This default hint indicates that a high value between the suggested
lower and upper bounds should be chosen. For ports with
LADSPA_HINT_LOGARITHMIC, this should be exp(log(lower) * 0.25 +
log(upper) * 0.75). Otherwise, this should be (lower * 0.25 + upper
* 0.75). */
#define LADSPA_HINT_DEFAULT_HIGH 0x100
/* This default hint indicates that the suggested upper bound for the
port should be used. */
#define LADSPA_HINT_DEFAULT_MAXIMUM 0x140
/* This default hint indicates that the number 0 should be used. Note
that this default may be used in conjunction with
LADSPA_HINT_TOGGLED. */
#define LADSPA_HINT_DEFAULT_0 0x200
/* This default hint indicates that the number 1 should be used. Note
that this default may be used in conjunction with
LADSPA_HINT_TOGGLED. */
#define LADSPA_HINT_DEFAULT_1 0x240
/* This default hint indicates that the number 100 should be used. */
#define LADSPA_HINT_DEFAULT_100 0x280
/* This default hint indicates that the Hz frequency of `concert A'
should be used. This will be 440 unless the host uses an unusual
tuning convention, in which case it may be within a few Hz. */
#define LADSPA_HINT_DEFAULT_440 0x2C0
#define LADSPA_IS_HINT_BOUNDED_BELOW(x) ((x) & LADSPA_HINT_BOUNDED_BELOW)
#define LADSPA_IS_HINT_BOUNDED_ABOVE(x) ((x) & LADSPA_HINT_BOUNDED_ABOVE)
#define LADSPA_IS_HINT_TOGGLED(x) ((x) & LADSPA_HINT_TOGGLED)
#define LADSPA_IS_HINT_SAMPLE_RATE(x) ((x) & LADSPA_HINT_SAMPLE_RATE)
#define LADSPA_IS_HINT_LOGARITHMIC(x) ((x) & LADSPA_HINT_LOGARITHMIC)
#define LADSPA_IS_HINT_INTEGER(x) ((x) & LADSPA_HINT_INTEGER)
#define LADSPA_IS_HINT_HAS_DEFAULT(x) ((x) & LADSPA_HINT_DEFAULT_MASK)
#define LADSPA_IS_HINT_DEFAULT_MINIMUM(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
== LADSPA_HINT_DEFAULT_MINIMUM)
#define LADSPA_IS_HINT_DEFAULT_LOW(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
== LADSPA_HINT_DEFAULT_LOW)
#define LADSPA_IS_HINT_DEFAULT_MIDDLE(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
== LADSPA_HINT_DEFAULT_MIDDLE)
#define LADSPA_IS_HINT_DEFAULT_HIGH(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
== LADSPA_HINT_DEFAULT_HIGH)
#define LADSPA_IS_HINT_DEFAULT_MAXIMUM(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
== LADSPA_HINT_DEFAULT_MAXIMUM)
#define LADSPA_IS_HINT_DEFAULT_0(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
== LADSPA_HINT_DEFAULT_0)
#define LADSPA_IS_HINT_DEFAULT_1(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
== LADSPA_HINT_DEFAULT_1)
#define LADSPA_IS_HINT_DEFAULT_100(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
== LADSPA_HINT_DEFAULT_100)
#define LADSPA_IS_HINT_DEFAULT_440(x) (((x) & LADSPA_HINT_DEFAULT_MASK) \
== LADSPA_HINT_DEFAULT_440)
typedef struct _LADSPA_PortRangeHint {
/* Hints about the port. */
LADSPA_PortRangeHintDescriptor HintDescriptor;
/* Meaningful when hint LADSPA_HINT_BOUNDED_BELOW is active. When
LADSPA_HINT_SAMPLE_RATE is also active then this value should be
multiplied by the relevant sample rate. */
LADSPA_Data LowerBound;
/* Meaningful when hint LADSPA_HINT_BOUNDED_ABOVE is active. When
LADSPA_HINT_SAMPLE_RATE is also active then this value should be
multiplied by the relevant sample rate. */
LADSPA_Data UpperBound;
} LADSPA_PortRangeHint;
/*****************************************************************************/
/* Plugin Handles:
This plugin handle indicates a particular instance of the plugin
concerned. It is valid to compare this to NULL (0 for C++) but
otherwise the host should not attempt to interpret it. The plugin
may use it to reference internal instance data. */
typedef void * LADSPA_Handle;
/*****************************************************************************/
/* Descriptor for a Type of Plugin:
This structure is used to describe a plugin type. It provides a
number of functions to examine the type, instantiate it, link it to
buffers and workspaces and to run it. */
typedef struct _LADSPA_Descriptor {
/* This numeric identifier indicates the plugin type
uniquely. Plugin programmers may reserve ranges of IDs from a
central body to avoid clashes. Hosts may assume that IDs are
below 0x1000000. */
unsigned long UniqueID;
/* This identifier can be used as a unique, case-sensitive
identifier for the plugin type within the plugin file. Plugin
types should be identified by file and label rather than by index
or plugin name, which may be changed in new plugin
versions. Labels must not contain white-space characters. */
const char * Label;
/* This indicates a number of properties of the plugin. */
LADSPA_Properties Properties;
/* This member points to the null-terminated name of the plugin
(e.g. "Sine Oscillator"). */
const char * Name;
/* This member points to the null-terminated string indicating the
maker of the plugin. This can be an empty string but not NULL. */
const char * Maker;
/* This member points to the null-terminated string indicating any
copyright applying to the plugin. If no Copyright applies the
string "None" should be used. */
const char * Copyright;
/* This indicates the number of ports (input AND output) present on
the plugin. */
unsigned long PortCount;
/* This member indicates an array of port descriptors. Valid indices
vary from 0 to PortCount-1. */
const LADSPA_PortDescriptor * PortDescriptors;
/* This member indicates an array of null-terminated strings
describing ports (e.g. "Frequency (Hz)"). Valid indices vary from
0 to PortCount-1. */
const char * const * PortNames;
/* This member indicates an array of range hints for each port (see
above). Valid indices vary from 0 to PortCount-1. */
const LADSPA_PortRangeHint * PortRangeHints;
/* This may be used by the plugin developer to pass any custom
implementation data into an instantiate call. It must not be used
or interpreted by the host. It is expected that most plugin
writers will not use this facility as LADSPA_Handle should be
used to hold instance data. */
void * ImplementationData;
/* This member is a function pointer that instantiates a plugin. A
handle is returned indicating the new plugin instance. The
instantiation function accepts a sample rate as a parameter. The
plugin descriptor from which this instantiate function was found
must also be passed. This function must return NULL if
instantiation fails.
Note that instance initialisation should generally occur in
activate() rather than here. */
LADSPA_Handle (*instantiate)(const struct _LADSPA_Descriptor * Descriptor,
unsigned long SampleRate);
/* This member is a function pointer that connects a port on an
instantiated plugin to a memory location at which a block of data
for the port will be read/written. The data location is expected
to be an array of LADSPA_Data for audio ports or a single
LADSPA_Data value for control ports. Memory issues will be
managed by the host. The plugin must read/write the data at these
locations every time run() or run_adding() is called and the data
present at the time of this connection call should not be
considered meaningful.
connect_port() may be called more than once for a plugin instance
to allow the host to change the buffers that the plugin is
reading or writing. These calls may be made before or after
activate() or deactivate() calls.
connect_port() must be called at least once for each port before
run() or run_adding() is called. When working with blocks of
LADSPA_Data the plugin should pay careful attention to the block
size passed to the run function as the block allocated may only
just be large enough to contain the block of samples.
Plugin writers should be aware that the host may elect to use the
same buffer for more than one port and even use the same buffer
for both input and output (see LADSPA_PROPERTY_INPLACE_BROKEN).
However, overlapped buffers or use of a single buffer for both
audio and control data may result in unexpected behaviour. */
void (*connect_port)(LADSPA_Handle Instance,
unsigned long Port,
LADSPA_Data * DataLocation);
/* This member is a function pointer that initialises a plugin
instance and activates it for use. This is separated from
instantiate() to aid real-time support and so that hosts can
reinitialise a plugin instance by calling deactivate() and then
activate(). In this case the plugin instance must reset all state
information dependent on the history of the plugin instance
except for any data locations provided by connect_port() and any
gain set by set_run_adding_gain(). If there is nothing for
activate() to do then the plugin writer may provide a NULL rather
than an empty function.
When present, hosts must call this function once before run() (or
run_adding()) is called for the first time. This call should be
made as close to the run() call as possible and indicates to
real-time plugins that they are now live. Plugins should not rely
on a prompt call to run() after activate(). activate() may not be
called again unless deactivate() is called first. Note that
connect_port() may be called before or after a call to
activate(). */
void (*activate)(LADSPA_Handle Instance);
/* This method is a function pointer that runs an instance of a
plugin for a block. Two parameters are required: the first is a
handle to the particular instance to be run and the second
indicates the block size (in samples) for which the plugin
instance may run.
Note that if an activate() function exists then it must be called
before run() or run_adding(). If deactivate() is called for a
plugin instance then the plugin instance may not be reused until
activate() has been called again.
If the plugin has the property LADSPA_PROPERTY_HARD_RT_CAPABLE
then there are various things that the plugin should not do
within the run() or run_adding() functions (see above). */
void (*run)(LADSPA_Handle Instance,
unsigned long SampleCount);
/* This method is a function pointer that runs an instance of a
plugin for a block. This has identical behaviour to run() except
in the way data is output from the plugin. When run() is used,
values are written directly to the memory areas associated with
the output ports. However when run_adding() is called, values
must be added to the values already present in the memory
areas. Furthermore, output values written must be scaled by the
current gain set by set_run_adding_gain() (see below) before
addition.
run_adding() is optional. When it is not provided by a plugin,
this function pointer must be set to NULL. When it is provided,
the function set_run_adding_gain() must be provided also. */
void (*run_adding)(LADSPA_Handle Instance,
unsigned long SampleCount);
/* This method is a function pointer that sets the output gain for
use when run_adding() is called (see above). If this function is
never called the gain is assumed to default to 1. Gain
information should be retained when activate() or deactivate()
are called.
This function should be provided by the plugin if and only if the
run_adding() function is provided. When it is absent this
function pointer must be set to NULL. */
void (*set_run_adding_gain)(LADSPA_Handle Instance,
LADSPA_Data Gain);
/* This is the counterpart to activate() (see above). If there is
nothing for deactivate() to do then the plugin writer may provide
a NULL rather than an empty function.
Hosts must deactivate all activated units after they have been
run() (or run_adding()) for the last time. This call should be
made as close to the last run() call as possible and indicates to
real-time plugins that they are no longer live. Plugins should
not rely on prompt deactivation. Note that connect_port() may be
called before or after a call to deactivate().
Deactivation is not similar to pausing as the plugin instance
will be reinitialised when activate() is called to reuse it. */
void (*deactivate)(LADSPA_Handle Instance);
/* Once an instance of a plugin has been finished with it can be
deleted using the following function. The instance handle passed
ceases to be valid after this call.
If activate() was called for a plugin instance then a
corresponding call to deactivate() must be made before cleanup()
is called. */
void (*cleanup)(LADSPA_Handle Instance);
} LADSPA_Descriptor;
/**********************************************************************/
/* Accessing a Plugin: */
/* The exact mechanism by which plugins are loaded is host-dependent,
however all most hosts will need to know is the name of shared
object file containing the plugin types. To allow multiple hosts to
share plugin types, hosts may wish to check for environment
variable LADSPA_PATH. If present, this should contain a
colon-separated path indicating directories that should be searched
(in order) when loading plugin types.
A plugin programmer must include a function called
"ladspa_descriptor" with the following function prototype within
the shared object file. This function will have C-style linkage (if
you are using C++ this is taken care of by the `extern "C"' clause
at the top of the file).
A host will find the plugin shared object file by one means or
another, find the ladspa_descriptor() function, call it, and
proceed from there.
Plugin types are accessed by index (not ID) using values from 0
upwards. Out of range indexes must result in this function
returning NULL, so the plugin count can be determined by checking
for the least index that results in NULL being returned. */
#ifdef WIN32
#define _WINDOWS_DLL_EXPORT_ __declspec(dllexport)
#else
#define _WINDOWS_DLL_EXPORT_
#endif
_WINDOWS_DLL_EXPORT_
const LADSPA_Descriptor * ladspa_descriptor(unsigned long Index);
/* Datatype corresponding to the ladspa_descriptor() function. */
typedef const LADSPA_Descriptor *
(*LADSPA_Descriptor_Function)(unsigned long Index);
/**********************************************************************/
#ifdef __cplusplus
}
#endif
#endif /* LADSPA_INCLUDED */
/* EOF */

View File

@@ -0,0 +1,635 @@
LIBRARY libfftw3-3.dll
EXPORTS
dfftw_cleanup_
dfftw_cleanup__
dfftw_cleanup_threads__
dfftw_destroy_plan_
dfftw_destroy_plan__
dfftw_execute_
dfftw_execute__
dfftw_execute_dft_
dfftw_execute_dft__
dfftw_execute_dft_c2r_
dfftw_execute_dft_c2r__
dfftw_execute_dft_r2c_
dfftw_execute_dft_r2c__
dfftw_execute_r2r_
dfftw_execute_r2r__
dfftw_execute_split_dft_
dfftw_execute_split_dft__
dfftw_execute_split_dft_c2r_
dfftw_execute_split_dft_c2r__
dfftw_execute_split_dft_r2c_
dfftw_execute_split_dft_r2c__
dfftw_export_wisdom_
dfftw_export_wisdom__
dfftw_flops_
dfftw_flops__
dfftw_forget_wisdom_
dfftw_forget_wisdom__
dfftw_import_system_wisdom_
dfftw_import_system_wisdom__
dfftw_import_wisdom_
dfftw_import_wisdom__
dfftw_init_threads__
dfftw_plan_dft_
dfftw_plan_dft_1d_
dfftw_plan_dft_1d__
dfftw_plan_dft_2d_
dfftw_plan_dft_2d__
dfftw_plan_dft_3d_
dfftw_plan_dft_3d__
dfftw_plan_dft__
dfftw_plan_dft_c2r_
dfftw_plan_dft_c2r_1d_
dfftw_plan_dft_c2r_1d__
dfftw_plan_dft_c2r_2d_
dfftw_plan_dft_c2r_2d__
dfftw_plan_dft_c2r_3d_
dfftw_plan_dft_c2r_3d__
dfftw_plan_dft_c2r__
dfftw_plan_dft_r2c_
dfftw_plan_dft_r2c_1d_
dfftw_plan_dft_r2c_1d__
dfftw_plan_dft_r2c_2d_
dfftw_plan_dft_r2c_2d__
dfftw_plan_dft_r2c_3d_
dfftw_plan_dft_r2c_3d__
dfftw_plan_dft_r2c__
dfftw_plan_guru_dft_
dfftw_plan_guru_dft__
dfftw_plan_guru_dft_c2r_
dfftw_plan_guru_dft_c2r__
dfftw_plan_guru_dft_r2c_
dfftw_plan_guru_dft_r2c__
dfftw_plan_guru_r2r_
dfftw_plan_guru_r2r__
dfftw_plan_guru_split_dft_
dfftw_plan_guru_split_dft__
dfftw_plan_guru_split_dft_c2r_
dfftw_plan_guru_split_dft_c2r__
dfftw_plan_guru_split_dft_r2c_
dfftw_plan_guru_split_dft_r2c__
dfftw_plan_many_dft_
dfftw_plan_many_dft__
dfftw_plan_many_dft_c2r_
dfftw_plan_many_dft_c2r__
dfftw_plan_many_dft_r2c_
dfftw_plan_many_dft_r2c__
dfftw_plan_many_r2r_
dfftw_plan_many_r2r__
dfftw_plan_r2r_
dfftw_plan_r2r_1d_
dfftw_plan_r2r_1d__
dfftw_plan_r2r_2d_
dfftw_plan_r2r_2d__
dfftw_plan_r2r_3d_
dfftw_plan_r2r_3d__
dfftw_plan_r2r__
dfftw_plan_with_nthreads__
dfftw_print_plan_
dfftw_print_plan__
fftw_alignment_of
fftw_assertion_failed
fftw_check_alignment_of_sse2_mp
fftw_choose_radix
fftw_cleanup
fftw_cleanup_threads
fftw_codelet_e01_8
fftw_codelet_e10_8
fftw_codelet_hb_10
fftw_codelet_hb_12
fftw_codelet_hb_15
fftw_codelet_hb_16
fftw_codelet_hb_2
fftw_codelet_hb_3
fftw_codelet_hb_32
fftw_codelet_hb_4
fftw_codelet_hb_5
fftw_codelet_hb_6
fftw_codelet_hb_64
fftw_codelet_hb_7
fftw_codelet_hb_8
fftw_codelet_hb_9
fftw_codelet_hc2rIII_10
fftw_codelet_hc2rIII_12
fftw_codelet_hc2rIII_15
fftw_codelet_hc2rIII_16
fftw_codelet_hc2rIII_2
fftw_codelet_hc2rIII_3
fftw_codelet_hc2rIII_32
fftw_codelet_hc2rIII_4
fftw_codelet_hc2rIII_5
fftw_codelet_hc2rIII_6
fftw_codelet_hc2rIII_64
fftw_codelet_hc2rIII_7
fftw_codelet_hc2rIII_8
fftw_codelet_hc2rIII_9
fftw_codelet_hc2r_10
fftw_codelet_hc2r_11
fftw_codelet_hc2r_12
fftw_codelet_hc2r_128
fftw_codelet_hc2r_13
fftw_codelet_hc2r_14
fftw_codelet_hc2r_15
fftw_codelet_hc2r_16
fftw_codelet_hc2r_3
fftw_codelet_hc2r_32
fftw_codelet_hc2r_4
fftw_codelet_hc2r_5
fftw_codelet_hc2r_6
fftw_codelet_hc2r_64
fftw_codelet_hc2r_7
fftw_codelet_hc2r_8
fftw_codelet_hc2r_9
fftw_codelet_hf2_16
fftw_codelet_hf2_32
fftw_codelet_hf2_4
fftw_codelet_hf2_64
fftw_codelet_hf2_8
fftw_codelet_hf_10
fftw_codelet_hf_12
fftw_codelet_hf_15
fftw_codelet_hf_16
fftw_codelet_hf_2
fftw_codelet_hf_3
fftw_codelet_hf_32
fftw_codelet_hf_4
fftw_codelet_hf_5
fftw_codelet_hf_6
fftw_codelet_hf_64
fftw_codelet_hf_7
fftw_codelet_hf_8
fftw_codelet_hf_9
fftw_codelet_n1_10
fftw_codelet_n1_11
fftw_codelet_n1_12
fftw_codelet_n1_13
fftw_codelet_n1_14
fftw_codelet_n1_15
fftw_codelet_n1_16
fftw_codelet_n1_2
fftw_codelet_n1_3
fftw_codelet_n1_32
fftw_codelet_n1_4
fftw_codelet_n1_5
fftw_codelet_n1_6
fftw_codelet_n1_64
fftw_codelet_n1_7
fftw_codelet_n1_8
fftw_codelet_n1_9
fftw_codelet_n1bv_10
fftw_codelet_n1bv_11
fftw_codelet_n1bv_12
fftw_codelet_n1bv_13
fftw_codelet_n1bv_14
fftw_codelet_n1bv_15
fftw_codelet_n1bv_16
fftw_codelet_n1bv_2
fftw_codelet_n1bv_3
fftw_codelet_n1bv_32
fftw_codelet_n1bv_4
fftw_codelet_n1bv_5
fftw_codelet_n1bv_6
fftw_codelet_n1bv_64
fftw_codelet_n1bv_7
fftw_codelet_n1bv_8
fftw_codelet_n1bv_9
fftw_codelet_n1fv_10
fftw_codelet_n1fv_11
fftw_codelet_n1fv_12
fftw_codelet_n1fv_13
fftw_codelet_n1fv_14
fftw_codelet_n1fv_15
fftw_codelet_n1fv_16
fftw_codelet_n1fv_2
fftw_codelet_n1fv_3
fftw_codelet_n1fv_32
fftw_codelet_n1fv_4
fftw_codelet_n1fv_5
fftw_codelet_n1fv_6
fftw_codelet_n1fv_64
fftw_codelet_n1fv_7
fftw_codelet_n1fv_8
fftw_codelet_n1fv_9
fftw_codelet_n2bv_10
fftw_codelet_n2bv_12
fftw_codelet_n2bv_14
fftw_codelet_n2bv_16
fftw_codelet_n2bv_2
fftw_codelet_n2bv_32
fftw_codelet_n2bv_4
fftw_codelet_n2bv_6
fftw_codelet_n2bv_64
fftw_codelet_n2bv_8
fftw_codelet_n2fv_10
fftw_codelet_n2fv_12
fftw_codelet_n2fv_14
fftw_codelet_n2fv_16
fftw_codelet_n2fv_2
fftw_codelet_n2fv_32
fftw_codelet_n2fv_4
fftw_codelet_n2fv_6
fftw_codelet_n2fv_64
fftw_codelet_n2fv_8
fftw_codelet_n2sv_16
fftw_codelet_n2sv_32
fftw_codelet_n2sv_4
fftw_codelet_n2sv_64
fftw_codelet_n2sv_8
fftw_codelet_q1_2
fftw_codelet_q1_3
fftw_codelet_q1_4
fftw_codelet_q1_5
fftw_codelet_q1_6
fftw_codelet_q1_8
fftw_codelet_q1bv_2
fftw_codelet_q1bv_4
fftw_codelet_q1bv_8
fftw_codelet_q1fv_2
fftw_codelet_q1fv_4
fftw_codelet_q1fv_8
fftw_codelet_r2hcII_10
fftw_codelet_r2hcII_12
fftw_codelet_r2hcII_15
fftw_codelet_r2hcII_16
fftw_codelet_r2hcII_2
fftw_codelet_r2hcII_3
fftw_codelet_r2hcII_32
fftw_codelet_r2hcII_4
fftw_codelet_r2hcII_5
fftw_codelet_r2hcII_6
fftw_codelet_r2hcII_64
fftw_codelet_r2hcII_7
fftw_codelet_r2hcII_8
fftw_codelet_r2hcII_9
fftw_codelet_r2hc_10
fftw_codelet_r2hc_11
fftw_codelet_r2hc_12
fftw_codelet_r2hc_128
fftw_codelet_r2hc_13
fftw_codelet_r2hc_14
fftw_codelet_r2hc_15
fftw_codelet_r2hc_16
fftw_codelet_r2hc_2
fftw_codelet_r2hc_3
fftw_codelet_r2hc_32
fftw_codelet_r2hc_4
fftw_codelet_r2hc_5
fftw_codelet_r2hc_6
fftw_codelet_r2hc_64
fftw_codelet_r2hc_7
fftw_codelet_r2hc_8
fftw_codelet_r2hc_9
fftw_codelet_t1_10
fftw_codelet_t1_12
fftw_codelet_t1_15
fftw_codelet_t1_16
fftw_codelet_t1_2
fftw_codelet_t1_3
fftw_codelet_t1_32
fftw_codelet_t1_4
fftw_codelet_t1_5
fftw_codelet_t1_6
fftw_codelet_t1_64
fftw_codelet_t1_7
fftw_codelet_t1_8
fftw_codelet_t1_9
fftw_codelet_t1bv_10
fftw_codelet_t1bv_12
fftw_codelet_t1bv_15
fftw_codelet_t1bv_16
fftw_codelet_t1bv_2
fftw_codelet_t1bv_3
fftw_codelet_t1bv_32
fftw_codelet_t1bv_4
fftw_codelet_t1bv_5
fftw_codelet_t1bv_6
fftw_codelet_t1bv_64
fftw_codelet_t1bv_7
fftw_codelet_t1bv_8
fftw_codelet_t1bv_9
fftw_codelet_t1fv_10
fftw_codelet_t1fv_12
fftw_codelet_t1fv_15
fftw_codelet_t1fv_16
fftw_codelet_t1fv_2
fftw_codelet_t1fv_3
fftw_codelet_t1fv_32
fftw_codelet_t1fv_4
fftw_codelet_t1fv_5
fftw_codelet_t1fv_6
fftw_codelet_t1fv_64
fftw_codelet_t1fv_7
fftw_codelet_t1fv_8
fftw_codelet_t1fv_9
fftw_codelet_t1sv_16
fftw_codelet_t1sv_2
fftw_codelet_t1sv_32
fftw_codelet_t1sv_4
fftw_codelet_t1sv_8
fftw_codelet_t2_16
fftw_codelet_t2_32
fftw_codelet_t2_4
fftw_codelet_t2_64
fftw_codelet_t2_8
fftw_codelet_t2bv_16
fftw_codelet_t2bv_2
fftw_codelet_t2bv_32
fftw_codelet_t2bv_4
fftw_codelet_t2bv_64
fftw_codelet_t2bv_8
fftw_codelet_t2fv_16
fftw_codelet_t2fv_2
fftw_codelet_t2fv_32
fftw_codelet_t2fv_4
fftw_codelet_t2fv_64
fftw_codelet_t2fv_8
fftw_codelet_t2sv_16
fftw_codelet_t2sv_32
fftw_codelet_t2sv_4
fftw_codelet_t2sv_8
fftw_codelet_t3bv_16
fftw_codelet_t3bv_32
fftw_codelet_t3bv_4
fftw_codelet_t3bv_8
fftw_codelet_t3fv_16
fftw_codelet_t3fv_32
fftw_codelet_t3fv_4
fftw_codelet_t3fv_8
fftw_compute_nbuf
fftw_compute_tilesz
fftw_configure_planner
fftw_cpy1d
fftw_cpy2d
fftw_cpy2d_ci
fftw_cpy2d_co
fftw_cpy2d_pair
fftw_cpy2d_pair_ci
fftw_cpy2d_pair_co
fftw_cpy2d_tiled
fftw_cpy2d_tiledbuf
fftw_ct_applicable
fftw_ct_generic_register
fftw_ct_genericbuf_register
fftw_ct_uglyp
fftw_destroy_plan
fftw_dft_bluestein_register
fftw_dft_buffered_register
fftw_dft_conf_standard
fftw_dft_generic_register
fftw_dft_indirect_register
fftw_dft_indirect_transpose_register
fftw_dft_nop_register
fftw_dft_r2hc_register
fftw_dft_rader_register
fftw_dft_rank_geq2_register
fftw_dft_solve
fftw_dft_thr_vrank_geq1_register
fftw_dft_vrank_geq1_register
fftw_dft_zerotens
fftw_dht_r2hc_register
fftw_dht_rader_register
fftw_dimcmp
fftw_elapsed_since
fftw_estimate_cost
fftw_execute
fftw_execute_dft
fftw_execute_dft_c2r
fftw_execute_dft_r2c
fftw_execute_r2r
fftw_execute_split_dft
fftw_execute_split_dft_c2r
fftw_execute_split_dft_r2c
fftw_export_wisdom
fftw_export_wisdom_to_file
fftw_export_wisdom_to_string
fftw_extract_reim
fftw_factors_into
fftw_find_generator
fftw_first_divisor
fftw_flops
fftw_forget_wisdom
fftw_fprint_plan
fftw_free
fftw_get_crude_time
fftw_guru_kosherp
fftw_hash
fftw_have_sse2
fftw_hc2hc_applicable
fftw_hc2hc_generic_register
fftw_hc2hc_mkcldrn
fftw_iabs
fftw_iestimate_cost
fftw_ifree
fftw_ifree0
fftw_imax
fftw_imin
fftw_import_system_wisdom
fftw_import_wisdom
fftw_import_wisdom_from_file
fftw_import_wisdom_from_string
fftw_init_threads
fftw_is_prime
fftw_isqrt
fftw_ithreads_init
fftw_join_taint
fftw_kdft_dif_register
fftw_kdft_difsq_register
fftw_kdft_dit_register
fftw_kdft_register
fftw_kernel_free
fftw_kernel_malloc
fftw_khc2hc_register
fftw_khc2r_register
fftw_kr2hc_register
fftw_kr2r_register
fftw_malloc
fftw_malloc_plain
fftw_many_kosherp
fftw_map_r2r_kind
fftw_mapflags
fftw_md5INT
fftw_md5begin
fftw_md5end
fftw_md5int
fftw_md5putb
fftw_md5putc
fftw_md5puts
fftw_md5unsigned
fftw_measure_execution_time
fftw_mkapiplan
fftw_mkplan
fftw_mkplan_d
fftw_mkplan_dft
fftw_mkplan_dftw
fftw_mkplan_f_d
fftw_mkplan_hc2hc
fftw_mkplan_rdft
fftw_mkplan_rdft2
fftw_mkplanner
fftw_mkprinter
fftw_mkprinter_file
fftw_mkproblem
fftw_mkproblem_dft
fftw_mkproblem_dft_d
fftw_mkproblem_rdft
fftw_mkproblem_rdft2
fftw_mkproblem_rdft2_d
fftw_mkproblem_rdft_0_d
fftw_mkproblem_rdft_1
fftw_mkproblem_rdft_1_d
fftw_mkproblem_rdft_d
fftw_mkscanner
fftw_mksolver
fftw_mksolver_ct
fftw_mksolver_ct_threads
fftw_mksolver_ctsq
fftw_mksolver_dft_direct
fftw_mksolver_dft_directbuf
fftw_mksolver_hc2hc
fftw_mksolver_hc2hc_threads
fftw_mksolver_rdft2_hc2r_direct
fftw_mksolver_rdft2_r2hc_direct
fftw_mksolver_rdft_hc2r_direct
fftw_mksolver_rdft_r2hc_direct
fftw_mksolver_rdft_r2r_direct
fftw_mkstride
fftw_mktensor
fftw_mktensor_0d
fftw_mktensor_1d
fftw_mktensor_2d
fftw_mktensor_3d
fftw_mktensor_iodims
fftw_mktensor_rowmajor
fftw_mktriggen
fftw_next_prime
fftw_null_awake
fftw_ops_add
fftw_ops_add2
fftw_ops_cpy
fftw_ops_madd
fftw_ops_madd2
fftw_ops_other
fftw_ops_zero
fftw_pickdim
fftw_plan_awake
fftw_plan_destroy_internal
fftw_plan_dft
fftw_plan_dft_1d
fftw_plan_dft_2d
fftw_plan_dft_3d
fftw_plan_dft_c2r
fftw_plan_dft_c2r_1d
fftw_plan_dft_c2r_2d
fftw_plan_dft_c2r_3d
fftw_plan_dft_r2c
fftw_plan_dft_r2c_1d
fftw_plan_dft_r2c_2d
fftw_plan_dft_r2c_3d
fftw_plan_guru_dft
fftw_plan_guru_dft_c2r
fftw_plan_guru_dft_r2c
fftw_plan_guru_r2r
fftw_plan_guru_split_dft
fftw_plan_guru_split_dft_c2r
fftw_plan_guru_split_dft_r2c
fftw_plan_many_dft
fftw_plan_many_dft_c2r
fftw_plan_many_dft_r2c
fftw_plan_many_r2r
fftw_plan_null_destroy
fftw_plan_r2r
fftw_plan_r2r_1d
fftw_plan_r2r_2d
fftw_plan_r2r_3d
fftw_plan_with_nthreads
fftw_planner_destroy
fftw_power_mod
fftw_print_plan
fftw_printer_destroy
fftw_problem_destroy
fftw_rader_tl_delete
fftw_rader_tl_find
fftw_rader_tl_insert
fftw_rdft2_buffered_register
fftw_rdft2_inplace_strides
fftw_rdft2_nop_register
fftw_rdft2_pad
fftw_rdft2_radix2_register
fftw_rdft2_rank0_register
fftw_rdft2_rank_geq2_register
fftw_rdft2_solve
fftw_rdft2_strides
fftw_rdft2_tensor_max_index
fftw_rdft2_thr_vrank_geq1_register
fftw_rdft2_vrank_geq1_register
fftw_rdft_buffered_register
fftw_rdft_conf_standard
fftw_rdft_dht_register
fftw_rdft_generic_register
fftw_rdft_indirect_register
fftw_rdft_kind_str
fftw_rdft_nop_register
fftw_rdft_rank0_register
fftw_rdft_rank_geq2_register
fftw_rdft_solve
fftw_rdft_thr_vrank_geq1_register
fftw_rdft_vrank3_transpose_register
fftw_rdft_vrank_geq1_register
fftw_rdft_zerotens
fftw_redft00e_r2hc_pad_register
fftw_regsolver_ct_directw
fftw_regsolver_hc2hc_direct
fftw_regsolver_hc2hc_directbuf
fftw_reodft00e_splitradix_register
fftw_reodft010e_r2hc_register
fftw_reodft11e_r2hc_odd_register
fftw_reodft11e_radix2_r2hc_register
fftw_reodft_conf_standard
fftw_rodft00e_r2hc_pad_register
fftw_safe_mulmod
fftw_scanner_destroy
fftw_set_timelimit
fftw_solver_destroy
fftw_solver_register
fftw_solver_use
fftw_solvtab_exec
fftw_spawn_loop
fftw_stride_destroy
fftw_taint
fftw_tensor_append
fftw_tensor_compress
fftw_tensor_compress_contiguous
fftw_tensor_copy
fftw_tensor_copy_except
fftw_tensor_copy_inplace
fftw_tensor_copy_sub
fftw_tensor_destroy
fftw_tensor_destroy2
fftw_tensor_destroy4
fftw_tensor_inplace_strides
fftw_tensor_inplace_strides2
fftw_tensor_kosherp
fftw_tensor_max_index
fftw_tensor_md5
fftw_tensor_min_istride
fftw_tensor_min_ostride
fftw_tensor_min_stride
fftw_tensor_print
fftw_tensor_split
fftw_tensor_strides_decrease
fftw_tensor_sz
fftw_tensor_tornk1
fftw_the_planner
fftw_threads_cleanup
fftw_threads_conf_standard
fftw_threads_setmax
fftw_tile2d
fftw_transpose
fftw_transpose_tiled
fftw_transpose_tiledbuf
fftw_triggen_destroy
fftw_twiddle_awake
fftw_twiddle_length
fftw_twiddle_shift

View File

@@ -0,0 +1,635 @@
LIBRARY libfftw3f-3.dll
EXPORTS
fftwf_alignment_of
fftwf_assertion_failed
fftwf_check_alignment_of_sse_mpmp
fftwf_choose_radix
fftwf_cleanup
fftwf_cleanup_threads
fftwf_codelet_e01_8
fftwf_codelet_e10_8
fftwf_codelet_hb_10
fftwf_codelet_hb_12
fftwf_codelet_hb_15
fftwf_codelet_hb_16
fftwf_codelet_hb_2
fftwf_codelet_hb_3
fftwf_codelet_hb_32
fftwf_codelet_hb_4
fftwf_codelet_hb_5
fftwf_codelet_hb_6
fftwf_codelet_hb_64
fftwf_codelet_hb_7
fftwf_codelet_hb_8
fftwf_codelet_hb_9
fftwf_codelet_hc2rIII_10
fftwf_codelet_hc2rIII_12
fftwf_codelet_hc2rIII_15
fftwf_codelet_hc2rIII_16
fftwf_codelet_hc2rIII_2
fftwf_codelet_hc2rIII_3
fftwf_codelet_hc2rIII_32
fftwf_codelet_hc2rIII_4
fftwf_codelet_hc2rIII_5
fftwf_codelet_hc2rIII_6
fftwf_codelet_hc2rIII_64
fftwf_codelet_hc2rIII_7
fftwf_codelet_hc2rIII_8
fftwf_codelet_hc2rIII_9
fftwf_codelet_hc2r_10
fftwf_codelet_hc2r_11
fftwf_codelet_hc2r_12
fftwf_codelet_hc2r_128
fftwf_codelet_hc2r_13
fftwf_codelet_hc2r_14
fftwf_codelet_hc2r_15
fftwf_codelet_hc2r_16
fftwf_codelet_hc2r_3
fftwf_codelet_hc2r_32
fftwf_codelet_hc2r_4
fftwf_codelet_hc2r_5
fftwf_codelet_hc2r_6
fftwf_codelet_hc2r_64
fftwf_codelet_hc2r_7
fftwf_codelet_hc2r_8
fftwf_codelet_hc2r_9
fftwf_codelet_hf2_16
fftwf_codelet_hf2_32
fftwf_codelet_hf2_4
fftwf_codelet_hf2_64
fftwf_codelet_hf2_8
fftwf_codelet_hf_10
fftwf_codelet_hf_12
fftwf_codelet_hf_15
fftwf_codelet_hf_16
fftwf_codelet_hf_2
fftwf_codelet_hf_3
fftwf_codelet_hf_32
fftwf_codelet_hf_4
fftwf_codelet_hf_5
fftwf_codelet_hf_6
fftwf_codelet_hf_64
fftwf_codelet_hf_7
fftwf_codelet_hf_8
fftwf_codelet_hf_9
fftwf_codelet_n1_10
fftwf_codelet_n1_11
fftwf_codelet_n1_12
fftwf_codelet_n1_13
fftwf_codelet_n1_14
fftwf_codelet_n1_15
fftwf_codelet_n1_16
fftwf_codelet_n1_2
fftwf_codelet_n1_3
fftwf_codelet_n1_32
fftwf_codelet_n1_4
fftwf_codelet_n1_5
fftwf_codelet_n1_6
fftwf_codelet_n1_64
fftwf_codelet_n1_7
fftwf_codelet_n1_8
fftwf_codelet_n1_9
fftwf_codelet_n1bv_10
fftwf_codelet_n1bv_11
fftwf_codelet_n1bv_12
fftwf_codelet_n1bv_13
fftwf_codelet_n1bv_14
fftwf_codelet_n1bv_15
fftwf_codelet_n1bv_16
fftwf_codelet_n1bv_2
fftwf_codelet_n1bv_3
fftwf_codelet_n1bv_32
fftwf_codelet_n1bv_4
fftwf_codelet_n1bv_5
fftwf_codelet_n1bv_6
fftwf_codelet_n1bv_64
fftwf_codelet_n1bv_7
fftwf_codelet_n1bv_8
fftwf_codelet_n1bv_9
fftwf_codelet_n1fv_10
fftwf_codelet_n1fv_11
fftwf_codelet_n1fv_12
fftwf_codelet_n1fv_13
fftwf_codelet_n1fv_14
fftwf_codelet_n1fv_15
fftwf_codelet_n1fv_16
fftwf_codelet_n1fv_2
fftwf_codelet_n1fv_3
fftwf_codelet_n1fv_32
fftwf_codelet_n1fv_4
fftwf_codelet_n1fv_5
fftwf_codelet_n1fv_6
fftwf_codelet_n1fv_64
fftwf_codelet_n1fv_7
fftwf_codelet_n1fv_8
fftwf_codelet_n1fv_9
fftwf_codelet_n2bv_10
fftwf_codelet_n2bv_12
fftwf_codelet_n2bv_14
fftwf_codelet_n2bv_16
fftwf_codelet_n2bv_2
fftwf_codelet_n2bv_32
fftwf_codelet_n2bv_4
fftwf_codelet_n2bv_6
fftwf_codelet_n2bv_64
fftwf_codelet_n2bv_8
fftwf_codelet_n2fv_10
fftwf_codelet_n2fv_12
fftwf_codelet_n2fv_14
fftwf_codelet_n2fv_16
fftwf_codelet_n2fv_2
fftwf_codelet_n2fv_32
fftwf_codelet_n2fv_4
fftwf_codelet_n2fv_6
fftwf_codelet_n2fv_64
fftwf_codelet_n2fv_8
fftwf_codelet_n2sv_16
fftwf_codelet_n2sv_32
fftwf_codelet_n2sv_4
fftwf_codelet_n2sv_64
fftwf_codelet_n2sv_8
fftwf_codelet_q1_2
fftwf_codelet_q1_3
fftwf_codelet_q1_4
fftwf_codelet_q1_5
fftwf_codelet_q1_6
fftwf_codelet_q1_8
fftwf_codelet_q1bv_2
fftwf_codelet_q1bv_4
fftwf_codelet_q1bv_8
fftwf_codelet_q1fv_2
fftwf_codelet_q1fv_4
fftwf_codelet_q1fv_8
fftwf_codelet_r2hcII_10
fftwf_codelet_r2hcII_12
fftwf_codelet_r2hcII_15
fftwf_codelet_r2hcII_16
fftwf_codelet_r2hcII_2
fftwf_codelet_r2hcII_3
fftwf_codelet_r2hcII_32
fftwf_codelet_r2hcII_4
fftwf_codelet_r2hcII_5
fftwf_codelet_r2hcII_6
fftwf_codelet_r2hcII_64
fftwf_codelet_r2hcII_7
fftwf_codelet_r2hcII_8
fftwf_codelet_r2hcII_9
fftwf_codelet_r2hc_10
fftwf_codelet_r2hc_11
fftwf_codelet_r2hc_12
fftwf_codelet_r2hc_128
fftwf_codelet_r2hc_13
fftwf_codelet_r2hc_14
fftwf_codelet_r2hc_15
fftwf_codelet_r2hc_16
fftwf_codelet_r2hc_2
fftwf_codelet_r2hc_3
fftwf_codelet_r2hc_32
fftwf_codelet_r2hc_4
fftwf_codelet_r2hc_5
fftwf_codelet_r2hc_6
fftwf_codelet_r2hc_64
fftwf_codelet_r2hc_7
fftwf_codelet_r2hc_8
fftwf_codelet_r2hc_9
fftwf_codelet_t1_10
fftwf_codelet_t1_12
fftwf_codelet_t1_15
fftwf_codelet_t1_16
fftwf_codelet_t1_2
fftwf_codelet_t1_3
fftwf_codelet_t1_32
fftwf_codelet_t1_4
fftwf_codelet_t1_5
fftwf_codelet_t1_6
fftwf_codelet_t1_64
fftwf_codelet_t1_7
fftwf_codelet_t1_8
fftwf_codelet_t1_9
fftwf_codelet_t1bv_10
fftwf_codelet_t1bv_12
fftwf_codelet_t1bv_15
fftwf_codelet_t1bv_16
fftwf_codelet_t1bv_2
fftwf_codelet_t1bv_3
fftwf_codelet_t1bv_32
fftwf_codelet_t1bv_4
fftwf_codelet_t1bv_5
fftwf_codelet_t1bv_6
fftwf_codelet_t1bv_64
fftwf_codelet_t1bv_7
fftwf_codelet_t1bv_8
fftwf_codelet_t1bv_9
fftwf_codelet_t1fv_10
fftwf_codelet_t1fv_12
fftwf_codelet_t1fv_15
fftwf_codelet_t1fv_16
fftwf_codelet_t1fv_2
fftwf_codelet_t1fv_3
fftwf_codelet_t1fv_32
fftwf_codelet_t1fv_4
fftwf_codelet_t1fv_5
fftwf_codelet_t1fv_6
fftwf_codelet_t1fv_64
fftwf_codelet_t1fv_7
fftwf_codelet_t1fv_8
fftwf_codelet_t1fv_9
fftwf_codelet_t1sv_16
fftwf_codelet_t1sv_2
fftwf_codelet_t1sv_32
fftwf_codelet_t1sv_4
fftwf_codelet_t1sv_8
fftwf_codelet_t2_16
fftwf_codelet_t2_32
fftwf_codelet_t2_4
fftwf_codelet_t2_64
fftwf_codelet_t2_8
fftwf_codelet_t2bv_16
fftwf_codelet_t2bv_2
fftwf_codelet_t2bv_32
fftwf_codelet_t2bv_4
fftwf_codelet_t2bv_64
fftwf_codelet_t2bv_8
fftwf_codelet_t2fv_16
fftwf_codelet_t2fv_2
fftwf_codelet_t2fv_32
fftwf_codelet_t2fv_4
fftwf_codelet_t2fv_64
fftwf_codelet_t2fv_8
fftwf_codelet_t2sv_16
fftwf_codelet_t2sv_32
fftwf_codelet_t2sv_4
fftwf_codelet_t2sv_8
fftwf_codelet_t3bv_16
fftwf_codelet_t3bv_32
fftwf_codelet_t3bv_4
fftwf_codelet_t3bv_8
fftwf_codelet_t3fv_16
fftwf_codelet_t3fv_32
fftwf_codelet_t3fv_4
fftwf_codelet_t3fv_8
fftwf_compute_nbuf
fftwf_compute_tilesz
fftwf_configure_planner
fftwf_cpy1d
fftwf_cpy2d
fftwf_cpy2d_ci
fftwf_cpy2d_co
fftwf_cpy2d_pair
fftwf_cpy2d_pair_ci
fftwf_cpy2d_pair_co
fftwf_cpy2d_tiled
fftwf_cpy2d_tiledbuf
fftwf_ct_applicable
fftwf_ct_generic_register
fftwf_ct_genericbuf_register
fftwf_ct_uglyp
fftwf_destroy_plan
fftwf_dft_bluestein_register
fftwf_dft_buffered_register
fftwf_dft_conf_standard
fftwf_dft_generic_register
fftwf_dft_indirect_register
fftwf_dft_indirect_transpose_register
fftwf_dft_nop_register
fftwf_dft_r2hc_register
fftwf_dft_rader_register
fftwf_dft_rank_geq2_register
fftwf_dft_solve
fftwf_dft_thr_vrank_geq1_register
fftwf_dft_vrank_geq1_register
fftwf_dft_zerotens
fftwf_dht_r2hc_register
fftwf_dht_rader_register
fftwf_dimcmp
fftwf_elapsed_since
fftwf_estimate_cost
fftwf_execute
fftwf_execute_dft
fftwf_execute_dft_c2r
fftwf_execute_dft_r2c
fftwf_execute_r2r
fftwf_execute_split_dft
fftwf_execute_split_dft_c2r
fftwf_execute_split_dft_r2c
fftwf_export_wisdom
fftwf_export_wisdom_to_file
fftwf_export_wisdom_to_string
fftwf_extract_reim
fftwf_factors_into
fftwf_find_generator
fftwf_first_divisor
fftwf_flops
fftwf_forget_wisdom
fftwf_fprint_plan
fftwf_free
fftwf_get_crude_time
fftwf_guru_kosherp
fftwf_hash
fftwf_have_sse
fftwf_hc2hc_applicable
fftwf_hc2hc_generic_register
fftwf_hc2hc_mkcldrn
fftwf_iabs
fftwf_iestimate_cost
fftwf_ifree
fftwf_ifree0
fftwf_imax
fftwf_imin
fftwf_import_system_wisdom
fftwf_import_wisdom
fftwf_import_wisdom_from_file
fftwf_import_wisdom_from_string
fftwf_init_threads
fftwf_is_prime
fftwf_isqrt
fftwf_ithreads_init
fftwf_join_taint
fftwf_kdft_dif_register
fftwf_kdft_difsq_register
fftwf_kdft_dit_register
fftwf_kdft_register
fftwf_kernel_free
fftwf_kernel_malloc
fftwf_khc2hc_register
fftwf_khc2r_register
fftwf_kr2hc_register
fftwf_kr2r_register
fftwf_malloc
fftwf_malloc_plain
fftwf_many_kosherp
fftwf_map_r2r_kind
fftwf_mapflags
fftwf_md5INT
fftwf_md5begin
fftwf_md5end
fftwf_md5int
fftwf_md5putb
fftwf_md5putc
fftwf_md5puts
fftwf_md5unsigned
fftwf_measure_execution_time
fftwf_mkapiplan
fftwf_mkplan
fftwf_mkplan_d
fftwf_mkplan_dft
fftwf_mkplan_dftw
fftwf_mkplan_f_d
fftwf_mkplan_hc2hc
fftwf_mkplan_rdft
fftwf_mkplan_rdft2
fftwf_mkplanner
fftwf_mkprinter
fftwf_mkprinter_file
fftwf_mkproblem
fftwf_mkproblem_dft
fftwf_mkproblem_dft_d
fftwf_mkproblem_rdft
fftwf_mkproblem_rdft2
fftwf_mkproblem_rdft2_d
fftwf_mkproblem_rdft_0_d
fftwf_mkproblem_rdft_1
fftwf_mkproblem_rdft_1_d
fftwf_mkproblem_rdft_d
fftwf_mkscanner
fftwf_mksolver
fftwf_mksolver_ct
fftwf_mksolver_ct_threads
fftwf_mksolver_ctsq
fftwf_mksolver_dft_direct
fftwf_mksolver_dft_directbuf
fftwf_mksolver_hc2hc
fftwf_mksolver_hc2hc_threads
fftwf_mksolver_rdft2_hc2r_direct
fftwf_mksolver_rdft2_r2hc_direct
fftwf_mksolver_rdft_hc2r_direct
fftwf_mksolver_rdft_r2hc_direct
fftwf_mksolver_rdft_r2r_direct
fftwf_mkstride
fftwf_mktensor
fftwf_mktensor_0d
fftwf_mktensor_1d
fftwf_mktensor_2d
fftwf_mktensor_3d
fftwf_mktensor_iodims
fftwf_mktensor_rowmajor
fftwf_mktriggen
fftwf_next_prime
fftwf_null_awake
fftwf_ops_add
fftwf_ops_add2
fftwf_ops_cpy
fftwf_ops_madd
fftwf_ops_madd2
fftwf_ops_other
fftwf_ops_zero
fftwf_pickdim
fftwf_plan_awake
fftwf_plan_destroy_internal
fftwf_plan_dft
fftwf_plan_dft_1d
fftwf_plan_dft_2d
fftwf_plan_dft_3d
fftwf_plan_dft_c2r
fftwf_plan_dft_c2r_1d
fftwf_plan_dft_c2r_2d
fftwf_plan_dft_c2r_3d
fftwf_plan_dft_r2c
fftwf_plan_dft_r2c_1d
fftwf_plan_dft_r2c_2d
fftwf_plan_dft_r2c_3d
fftwf_plan_guru_dft
fftwf_plan_guru_dft_c2r
fftwf_plan_guru_dft_r2c
fftwf_plan_guru_r2r
fftwf_plan_guru_split_dft
fftwf_plan_guru_split_dft_c2r
fftwf_plan_guru_split_dft_r2c
fftwf_plan_many_dft
fftwf_plan_many_dft_c2r
fftwf_plan_many_dft_r2c
fftwf_plan_many_r2r
fftwf_plan_null_destroy
fftwf_plan_r2r
fftwf_plan_r2r_1d
fftwf_plan_r2r_2d
fftwf_plan_r2r_3d
fftwf_plan_with_nthreads
fftwf_planner_destroy
fftwf_power_mod
fftwf_print_plan
fftwf_printer_destroy
fftwf_problem_destroy
fftwf_rader_tl_delete
fftwf_rader_tl_find
fftwf_rader_tl_insert
fftwf_rdft2_buffered_register
fftwf_rdft2_inplace_strides
fftwf_rdft2_nop_register
fftwf_rdft2_pad
fftwf_rdft2_radix2_register
fftwf_rdft2_rank0_register
fftwf_rdft2_rank_geq2_register
fftwf_rdft2_solve
fftwf_rdft2_strides
fftwf_rdft2_tensor_max_index
fftwf_rdft2_thr_vrank_geq1_register
fftwf_rdft2_vrank_geq1_register
fftwf_rdft_buffered_register
fftwf_rdft_conf_standard
fftwf_rdft_dht_register
fftwf_rdft_generic_register
fftwf_rdft_indirect_register
fftwf_rdft_kind_str
fftwf_rdft_nop_register
fftwf_rdft_rank0_register
fftwf_rdft_rank_geq2_register
fftwf_rdft_solve
fftwf_rdft_thr_vrank_geq1_register
fftwf_rdft_vrank3_transpose_register
fftwf_rdft_vrank_geq1_register
fftwf_rdft_zerotens
fftwf_redft00e_r2hc_pad_register
fftwf_regsolver_ct_directw
fftwf_regsolver_hc2hc_direct
fftwf_regsolver_hc2hc_directbuf
fftwf_reodft00e_splitradix_register
fftwf_reodft010e_r2hc_register
fftwf_reodft11e_r2hc_odd_register
fftwf_reodft11e_radix2_r2hc_register
fftwf_reodft_conf_standard
fftwf_rodft00e_r2hc_pad_register
fftwf_safe_mulmod
fftwf_scanner_destroy
fftwf_set_timelimit
fftwf_solver_destroy
fftwf_solver_register
fftwf_solver_use
fftwf_solvtab_exec
fftwf_spawn_loop
fftwf_stride_destroy
fftwf_taint
fftwf_tensor_append
fftwf_tensor_compress
fftwf_tensor_compress_contiguous
fftwf_tensor_copy
fftwf_tensor_copy_except
fftwf_tensor_copy_inplace
fftwf_tensor_copy_sub
fftwf_tensor_destroy
fftwf_tensor_destroy2
fftwf_tensor_destroy4
fftwf_tensor_inplace_strides
fftwf_tensor_inplace_strides2
fftwf_tensor_kosherp
fftwf_tensor_max_index
fftwf_tensor_md5
fftwf_tensor_min_istride
fftwf_tensor_min_ostride
fftwf_tensor_min_stride
fftwf_tensor_print
fftwf_tensor_split
fftwf_tensor_strides_decrease
fftwf_tensor_sz
fftwf_tensor_tornk1
fftwf_the_planner
fftwf_threads_cleanup
fftwf_threads_conf_standard
fftwf_threads_setmax
fftwf_tile2d
fftwf_transpose
fftwf_transpose_tiled
fftwf_transpose_tiledbuf
fftwf_triggen_destroy
fftwf_twiddle_awake
fftwf_twiddle_length
fftwf_twiddle_shift
sfftw_cleanup_
sfftw_cleanup__
sfftw_cleanup_threads__
sfftw_destroy_plan_
sfftw_destroy_plan__
sfftw_execute_
sfftw_execute__
sfftw_execute_dft_
sfftw_execute_dft__
sfftw_execute_dft_c2r_
sfftw_execute_dft_c2r__
sfftw_execute_dft_r2c_
sfftw_execute_dft_r2c__
sfftw_execute_r2r_
sfftw_execute_r2r__
sfftw_execute_split_dft_
sfftw_execute_split_dft__
sfftw_execute_split_dft_c2r_
sfftw_execute_split_dft_c2r__
sfftw_execute_split_dft_r2c_
sfftw_execute_split_dft_r2c__
sfftw_export_wisdom_
sfftw_export_wisdom__
sfftw_flops_
sfftw_flops__
sfftw_forget_wisdom_
sfftw_forget_wisdom__
sfftw_import_system_wisdom_
sfftw_import_system_wisdom__
sfftw_import_wisdom_
sfftw_import_wisdom__
sfftw_init_threads__
sfftw_plan_dft_
sfftw_plan_dft_1d_
sfftw_plan_dft_1d__
sfftw_plan_dft_2d_
sfftw_plan_dft_2d__
sfftw_plan_dft_3d_
sfftw_plan_dft_3d__
sfftw_plan_dft__
sfftw_plan_dft_c2r_
sfftw_plan_dft_c2r_1d_
sfftw_plan_dft_c2r_1d__
sfftw_plan_dft_c2r_2d_
sfftw_plan_dft_c2r_2d__
sfftw_plan_dft_c2r_3d_
sfftw_plan_dft_c2r_3d__
sfftw_plan_dft_c2r__
sfftw_plan_dft_r2c_
sfftw_plan_dft_r2c_1d_
sfftw_plan_dft_r2c_1d__
sfftw_plan_dft_r2c_2d_
sfftw_plan_dft_r2c_2d__
sfftw_plan_dft_r2c_3d_
sfftw_plan_dft_r2c_3d__
sfftw_plan_dft_r2c__
sfftw_plan_guru_dft_
sfftw_plan_guru_dft__
sfftw_plan_guru_dft_c2r_
sfftw_plan_guru_dft_c2r__
sfftw_plan_guru_dft_r2c_
sfftw_plan_guru_dft_r2c__
sfftw_plan_guru_r2r_
sfftw_plan_guru_r2r__
sfftw_plan_guru_split_dft_
sfftw_plan_guru_split_dft__
sfftw_plan_guru_split_dft_c2r_
sfftw_plan_guru_split_dft_c2r__
sfftw_plan_guru_split_dft_r2c_
sfftw_plan_guru_split_dft_r2c__
sfftw_plan_many_dft_
sfftw_plan_many_dft__
sfftw_plan_many_dft_c2r_
sfftw_plan_many_dft_c2r__
sfftw_plan_many_dft_r2c_
sfftw_plan_many_dft_r2c__
sfftw_plan_many_r2r_
sfftw_plan_many_r2r__
sfftw_plan_r2r_
sfftw_plan_r2r_1d_
sfftw_plan_r2r_1d__
sfftw_plan_r2r_2d_
sfftw_plan_r2r_2d__
sfftw_plan_r2r_3d_
sfftw_plan_r2r_3d__
sfftw_plan_r2r__
sfftw_plan_with_nthreads__
sfftw_print_plan_
sfftw_print_plan__

View File

@@ -0,0 +1,507 @@
LIBRARY libfftw3l-3.dll
EXPORTS
fftwl_alignment_of
fftwl_assertion_failed
fftwl_choose_radix
fftwl_cleanup
fftwl_cleanup_threads
fftwl_codelet_e01_8
fftwl_codelet_e10_8
fftwl_codelet_hb_10
fftwl_codelet_hb_12
fftwl_codelet_hb_15
fftwl_codelet_hb_16
fftwl_codelet_hb_2
fftwl_codelet_hb_3
fftwl_codelet_hb_32
fftwl_codelet_hb_4
fftwl_codelet_hb_5
fftwl_codelet_hb_6
fftwl_codelet_hb_64
fftwl_codelet_hb_7
fftwl_codelet_hb_8
fftwl_codelet_hb_9
fftwl_codelet_hc2rIII_10
fftwl_codelet_hc2rIII_12
fftwl_codelet_hc2rIII_15
fftwl_codelet_hc2rIII_16
fftwl_codelet_hc2rIII_2
fftwl_codelet_hc2rIII_3
fftwl_codelet_hc2rIII_32
fftwl_codelet_hc2rIII_4
fftwl_codelet_hc2rIII_5
fftwl_codelet_hc2rIII_6
fftwl_codelet_hc2rIII_64
fftwl_codelet_hc2rIII_7
fftwl_codelet_hc2rIII_8
fftwl_codelet_hc2rIII_9
fftwl_codelet_hc2r_10
fftwl_codelet_hc2r_11
fftwl_codelet_hc2r_12
fftwl_codelet_hc2r_128
fftwl_codelet_hc2r_13
fftwl_codelet_hc2r_14
fftwl_codelet_hc2r_15
fftwl_codelet_hc2r_16
fftwl_codelet_hc2r_3
fftwl_codelet_hc2r_32
fftwl_codelet_hc2r_4
fftwl_codelet_hc2r_5
fftwl_codelet_hc2r_6
fftwl_codelet_hc2r_64
fftwl_codelet_hc2r_7
fftwl_codelet_hc2r_8
fftwl_codelet_hc2r_9
fftwl_codelet_hf2_16
fftwl_codelet_hf2_32
fftwl_codelet_hf2_4
fftwl_codelet_hf2_64
fftwl_codelet_hf2_8
fftwl_codelet_hf_10
fftwl_codelet_hf_12
fftwl_codelet_hf_15
fftwl_codelet_hf_16
fftwl_codelet_hf_2
fftwl_codelet_hf_3
fftwl_codelet_hf_32
fftwl_codelet_hf_4
fftwl_codelet_hf_5
fftwl_codelet_hf_6
fftwl_codelet_hf_64
fftwl_codelet_hf_7
fftwl_codelet_hf_8
fftwl_codelet_hf_9
fftwl_codelet_n1_10
fftwl_codelet_n1_11
fftwl_codelet_n1_12
fftwl_codelet_n1_13
fftwl_codelet_n1_14
fftwl_codelet_n1_15
fftwl_codelet_n1_16
fftwl_codelet_n1_2
fftwl_codelet_n1_3
fftwl_codelet_n1_32
fftwl_codelet_n1_4
fftwl_codelet_n1_5
fftwl_codelet_n1_6
fftwl_codelet_n1_64
fftwl_codelet_n1_7
fftwl_codelet_n1_8
fftwl_codelet_n1_9
fftwl_codelet_q1_2
fftwl_codelet_q1_3
fftwl_codelet_q1_4
fftwl_codelet_q1_5
fftwl_codelet_q1_6
fftwl_codelet_q1_8
fftwl_codelet_r2hcII_10
fftwl_codelet_r2hcII_12
fftwl_codelet_r2hcII_15
fftwl_codelet_r2hcII_16
fftwl_codelet_r2hcII_2
fftwl_codelet_r2hcII_3
fftwl_codelet_r2hcII_32
fftwl_codelet_r2hcII_4
fftwl_codelet_r2hcII_5
fftwl_codelet_r2hcII_6
fftwl_codelet_r2hcII_64
fftwl_codelet_r2hcII_7
fftwl_codelet_r2hcII_8
fftwl_codelet_r2hcII_9
fftwl_codelet_r2hc_10
fftwl_codelet_r2hc_11
fftwl_codelet_r2hc_12
fftwl_codelet_r2hc_128
fftwl_codelet_r2hc_13
fftwl_codelet_r2hc_14
fftwl_codelet_r2hc_15
fftwl_codelet_r2hc_16
fftwl_codelet_r2hc_2
fftwl_codelet_r2hc_3
fftwl_codelet_r2hc_32
fftwl_codelet_r2hc_4
fftwl_codelet_r2hc_5
fftwl_codelet_r2hc_6
fftwl_codelet_r2hc_64
fftwl_codelet_r2hc_7
fftwl_codelet_r2hc_8
fftwl_codelet_r2hc_9
fftwl_codelet_t1_10
fftwl_codelet_t1_12
fftwl_codelet_t1_15
fftwl_codelet_t1_16
fftwl_codelet_t1_2
fftwl_codelet_t1_3
fftwl_codelet_t1_32
fftwl_codelet_t1_4
fftwl_codelet_t1_5
fftwl_codelet_t1_6
fftwl_codelet_t1_64
fftwl_codelet_t1_7
fftwl_codelet_t1_8
fftwl_codelet_t1_9
fftwl_codelet_t2_16
fftwl_codelet_t2_32
fftwl_codelet_t2_4
fftwl_codelet_t2_64
fftwl_codelet_t2_8
fftwl_compute_nbuf
fftwl_compute_tilesz
fftwl_configure_planner
fftwl_cpy1d
fftwl_cpy2d
fftwl_cpy2d_ci
fftwl_cpy2d_co
fftwl_cpy2d_pair
fftwl_cpy2d_pair_ci
fftwl_cpy2d_pair_co
fftwl_cpy2d_tiled
fftwl_cpy2d_tiledbuf
fftwl_ct_applicable
fftwl_ct_generic_register
fftwl_ct_genericbuf_register
fftwl_ct_uglyp
fftwl_destroy_plan
fftwl_dft_bluestein_register
fftwl_dft_buffered_register
fftwl_dft_conf_standard
fftwl_dft_generic_register
fftwl_dft_indirect_register
fftwl_dft_indirect_transpose_register
fftwl_dft_nop_register
fftwl_dft_r2hc_register
fftwl_dft_rader_register
fftwl_dft_rank_geq2_register
fftwl_dft_solve
fftwl_dft_thr_vrank_geq1_register
fftwl_dft_vrank_geq1_register
fftwl_dft_zerotens
fftwl_dht_r2hc_register
fftwl_dht_rader_register
fftwl_dimcmp
fftwl_elapsed_since
fftwl_estimate_cost
fftwl_execute
fftwl_execute_dft
fftwl_execute_dft_c2r
fftwl_execute_dft_r2c
fftwl_execute_r2r
fftwl_execute_split_dft
fftwl_execute_split_dft_c2r
fftwl_execute_split_dft_r2c
fftwl_export_wisdom
fftwl_export_wisdom_to_file
fftwl_export_wisdom_to_string
fftwl_extract_reim
fftwl_factors_into
fftwl_find_generator
fftwl_first_divisor
fftwl_flops
fftwl_forget_wisdom
fftwl_fprint_plan
fftwl_free
fftwl_get_crude_time
fftwl_guru_kosherp
fftwl_hash
fftwl_hc2hc_applicable
fftwl_hc2hc_generic_register
fftwl_hc2hc_mkcldrn
fftwl_iabs
fftwl_iestimate_cost
fftwl_ifree
fftwl_ifree0
fftwl_imax
fftwl_imin
fftwl_import_system_wisdom
fftwl_import_wisdom
fftwl_import_wisdom_from_file
fftwl_import_wisdom_from_string
fftwl_init_threads
fftwl_is_prime
fftwl_isqrt
fftwl_ithreads_init
fftwl_kdft_dif_register
fftwl_kdft_difsq_register
fftwl_kdft_dit_register
fftwl_kdft_register
fftwl_kernel_free
fftwl_kernel_malloc
fftwl_khc2hc_register
fftwl_khc2r_register
fftwl_kr2hc_register
fftwl_kr2r_register
fftwl_malloc
fftwl_malloc_plain
fftwl_many_kosherp
fftwl_map_r2r_kind
fftwl_mapflags
fftwl_md5INT
fftwl_md5begin
fftwl_md5end
fftwl_md5int
fftwl_md5putb
fftwl_md5putc
fftwl_md5puts
fftwl_md5unsigned
fftwl_measure_execution_time
fftwl_mkapiplan
fftwl_mkplan
fftwl_mkplan_d
fftwl_mkplan_dft
fftwl_mkplan_dftw
fftwl_mkplan_f_d
fftwl_mkplan_hc2hc
fftwl_mkplan_rdft
fftwl_mkplan_rdft2
fftwl_mkplanner
fftwl_mkprinter
fftwl_mkprinter_file
fftwl_mkproblem
fftwl_mkproblem_dft
fftwl_mkproblem_dft_d
fftwl_mkproblem_rdft
fftwl_mkproblem_rdft2
fftwl_mkproblem_rdft2_d
fftwl_mkproblem_rdft_0_d
fftwl_mkproblem_rdft_1
fftwl_mkproblem_rdft_1_d
fftwl_mkproblem_rdft_d
fftwl_mkscanner
fftwl_mksolver
fftwl_mksolver_ct
fftwl_mksolver_ct_threads
fftwl_mksolver_ctsq
fftwl_mksolver_dft_direct
fftwl_mksolver_dft_directbuf
fftwl_mksolver_hc2hc
fftwl_mksolver_hc2hc_threads
fftwl_mksolver_rdft2_hc2r_direct
fftwl_mksolver_rdft2_r2hc_direct
fftwl_mksolver_rdft_hc2r_direct
fftwl_mksolver_rdft_r2hc_direct
fftwl_mksolver_rdft_r2r_direct
fftwl_mktensor
fftwl_mktensor_0d
fftwl_mktensor_1d
fftwl_mktensor_2d
fftwl_mktensor_3d
fftwl_mktensor_iodims
fftwl_mktensor_rowmajor
fftwl_mktriggen
fftwl_next_prime
fftwl_null_awake
fftwl_ops_add
fftwl_ops_add2
fftwl_ops_cpy
fftwl_ops_madd
fftwl_ops_madd2
fftwl_ops_other
fftwl_ops_zero
fftwl_pickdim
fftwl_plan_awake
fftwl_plan_destroy_internal
fftwl_plan_dft
fftwl_plan_dft_1d
fftwl_plan_dft_2d
fftwl_plan_dft_3d
fftwl_plan_dft_c2r
fftwl_plan_dft_c2r_1d
fftwl_plan_dft_c2r_2d
fftwl_plan_dft_c2r_3d
fftwl_plan_dft_r2c
fftwl_plan_dft_r2c_1d
fftwl_plan_dft_r2c_2d
fftwl_plan_dft_r2c_3d
fftwl_plan_guru_dft
fftwl_plan_guru_dft_c2r
fftwl_plan_guru_dft_r2c
fftwl_plan_guru_r2r
fftwl_plan_guru_split_dft
fftwl_plan_guru_split_dft_c2r
fftwl_plan_guru_split_dft_r2c
fftwl_plan_many_dft
fftwl_plan_many_dft_c2r
fftwl_plan_many_dft_r2c
fftwl_plan_many_r2r
fftwl_plan_null_destroy
fftwl_plan_r2r
fftwl_plan_r2r_1d
fftwl_plan_r2r_2d
fftwl_plan_r2r_3d
fftwl_plan_with_nthreads
fftwl_planner_destroy
fftwl_power_mod
fftwl_print_plan
fftwl_printer_destroy
fftwl_problem_destroy
fftwl_rader_tl_delete
fftwl_rader_tl_find
fftwl_rader_tl_insert
fftwl_rdft2_buffered_register
fftwl_rdft2_inplace_strides
fftwl_rdft2_nop_register
fftwl_rdft2_pad
fftwl_rdft2_radix2_register
fftwl_rdft2_rank0_register
fftwl_rdft2_rank_geq2_register
fftwl_rdft2_solve
fftwl_rdft2_strides
fftwl_rdft2_tensor_max_index
fftwl_rdft2_thr_vrank_geq1_register
fftwl_rdft2_vrank_geq1_register
fftwl_rdft_buffered_register
fftwl_rdft_conf_standard
fftwl_rdft_dht_register
fftwl_rdft_generic_register
fftwl_rdft_indirect_register
fftwl_rdft_kind_str
fftwl_rdft_nop_register
fftwl_rdft_rank0_register
fftwl_rdft_rank_geq2_register
fftwl_rdft_solve
fftwl_rdft_thr_vrank_geq1_register
fftwl_rdft_vrank3_transpose_register
fftwl_rdft_vrank_geq1_register
fftwl_rdft_zerotens
fftwl_redft00e_r2hc_pad_register
fftwl_regsolver_ct_directw
fftwl_regsolver_hc2hc_direct
fftwl_regsolver_hc2hc_directbuf
fftwl_reodft00e_splitradix_register
fftwl_reodft010e_r2hc_register
fftwl_reodft11e_r2hc_odd_register
fftwl_reodft11e_radix2_r2hc_register
fftwl_reodft_conf_standard
fftwl_rodft00e_r2hc_pad_register
fftwl_safe_mulmod
fftwl_scanner_destroy
fftwl_set_timelimit
fftwl_solver_destroy
fftwl_solver_register
fftwl_solver_use
fftwl_solvtab_exec
fftwl_spawn_loop
fftwl_tensor_append
fftwl_tensor_compress
fftwl_tensor_compress_contiguous
fftwl_tensor_copy
fftwl_tensor_copy_except
fftwl_tensor_copy_inplace
fftwl_tensor_copy_sub
fftwl_tensor_destroy
fftwl_tensor_destroy2
fftwl_tensor_destroy4
fftwl_tensor_inplace_strides
fftwl_tensor_inplace_strides2
fftwl_tensor_kosherp
fftwl_tensor_max_index
fftwl_tensor_md5
fftwl_tensor_min_istride
fftwl_tensor_min_ostride
fftwl_tensor_min_stride
fftwl_tensor_print
fftwl_tensor_split
fftwl_tensor_strides_decrease
fftwl_tensor_sz
fftwl_tensor_tornk1
fftwl_the_planner
fftwl_threads_cleanup
fftwl_threads_conf_standard
fftwl_threads_setmax
fftwl_tile2d
fftwl_transpose
fftwl_transpose_tiled
fftwl_transpose_tiledbuf
fftwl_triggen_destroy
fftwl_twiddle_awake
fftwl_twiddle_length
fftwl_twiddle_shift
lfftw_cleanup_
lfftw_cleanup__
lfftw_cleanup_threads__
lfftw_destroy_plan_
lfftw_destroy_plan__
lfftw_execute_
lfftw_execute__
lfftw_execute_dft_
lfftw_execute_dft__
lfftw_execute_dft_c2r_
lfftw_execute_dft_c2r__
lfftw_execute_dft_r2c_
lfftw_execute_dft_r2c__
lfftw_execute_r2r_
lfftw_execute_r2r__
lfftw_execute_split_dft_
lfftw_execute_split_dft__
lfftw_execute_split_dft_c2r_
lfftw_execute_split_dft_c2r__
lfftw_execute_split_dft_r2c_
lfftw_execute_split_dft_r2c__
lfftw_export_wisdom_
lfftw_export_wisdom__
lfftw_flops_
lfftw_flops__
lfftw_forget_wisdom_
lfftw_forget_wisdom__
lfftw_import_system_wisdom_
lfftw_import_system_wisdom__
lfftw_import_wisdom_
lfftw_import_wisdom__
lfftw_init_threads__
lfftw_plan_dft_
lfftw_plan_dft_1d_
lfftw_plan_dft_1d__
lfftw_plan_dft_2d_
lfftw_plan_dft_2d__
lfftw_plan_dft_3d_
lfftw_plan_dft_3d__
lfftw_plan_dft__
lfftw_plan_dft_c2r_
lfftw_plan_dft_c2r_1d_
lfftw_plan_dft_c2r_1d__
lfftw_plan_dft_c2r_2d_
lfftw_plan_dft_c2r_2d__
lfftw_plan_dft_c2r_3d_
lfftw_plan_dft_c2r_3d__
lfftw_plan_dft_c2r__
lfftw_plan_dft_r2c_
lfftw_plan_dft_r2c_1d_
lfftw_plan_dft_r2c_1d__
lfftw_plan_dft_r2c_2d_
lfftw_plan_dft_r2c_2d__
lfftw_plan_dft_r2c_3d_
lfftw_plan_dft_r2c_3d__
lfftw_plan_dft_r2c__
lfftw_plan_guru_dft_
lfftw_plan_guru_dft__
lfftw_plan_guru_dft_c2r_
lfftw_plan_guru_dft_c2r__
lfftw_plan_guru_dft_r2c_
lfftw_plan_guru_dft_r2c__
lfftw_plan_guru_r2r_
lfftw_plan_guru_r2r__
lfftw_plan_guru_split_dft_
lfftw_plan_guru_split_dft__
lfftw_plan_guru_split_dft_c2r_
lfftw_plan_guru_split_dft_c2r__
lfftw_plan_guru_split_dft_r2c_
lfftw_plan_guru_split_dft_r2c__
lfftw_plan_many_dft_
lfftw_plan_many_dft__
lfftw_plan_many_dft_c2r_
lfftw_plan_many_dft_c2r__
lfftw_plan_many_dft_r2c_
lfftw_plan_many_dft_r2c__
lfftw_plan_many_r2r_
lfftw_plan_many_r2r__
lfftw_plan_r2r_
lfftw_plan_r2r_1d_
lfftw_plan_r2r_1d__
lfftw_plan_r2r_2d_
lfftw_plan_r2r_2d__
lfftw_plan_r2r_3d_
lfftw_plan_r2r_3d__
lfftw_plan_r2r__
lfftw_plan_with_nthreads__
lfftw_print_plan_
lfftw_print_plan__

View File

@@ -0,0 +1,26 @@
#
# Builds the real makefile
#
all: so_files build
so_files:
-mkdir so_files
-move ..\*.so.c so_files
build: ..\*.c
-rename ..\config.h configold.h
cd "$(OUTDIR)"
echo >unistd.h /* dummy file */
echo !include ..\makefile.inc >submake
echo dlls: $(?F:.c=.dll) >>submake
echo objs: $(?F:.c=.obj) >>submake
for %%a in ($(?B)) do @echo %%a.obj: ..\..\%%a.c >>submake
$(MAKE) CONFIG=$(CONFIG) submake
cd ..
-rename ..\configold.h config.h
clean:
cd "$(OUTDIR)"
-del *.dll *.exp *.lib *.obj *.pdb *.ilk unistd.h submake
cd ..

View File

@@ -0,0 +1,82 @@
#
#
#
CFLAGS = /LD /I ..\glibc_includes /I .. /I ..\.. /I ..\..\gverb /I . /FI ..\config.h
LDFLAGS = /NOLOGO /DLL /MANIFEST:NO /SUBSYSTEM:WINDOWS /MACHINE:X86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib util.lib libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib
!IF "$(CONFIG)" == "Debug"
CFLAGS = $(CFLAGS) /Zi /Od
LDFLAGS = $(LDFLAGS) /DEBUG
!ELSE
CFLAGS = $(CFLAGS) /O2 /Ob2
LDFLAGS = $(LDFLAGS)
!ENDIF
all: libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib util.lib dlls
#
# Inference rules
#
{..\..}.c.obj:
$(CC) $(CFLAGS) /c $<
.obj.dll:
link $(LDFLAGS) /OUT:$(<B).dll $<
#
# Must create the libraries for FFTW
#
libfftw3-3.lib: ..\libfftw3-3.def
lib /MACHINE:X86 /OUT:$@ /DEF:$?
libfftw3f-3.lib: ..\libfftw3f-3.def
lib /MACHINE:X86 /OUT:$@ /DEF:$?
libfftw3l-3.lib: ..\libfftw3l-3.def
lib /MACHINE:X86 /OUT:$@ /DEF:$?
#
# A few of them get ignored
#
analogue_osc_1416.dll: analogue_osc_1416.obj
echo ***EXCLUDED FROM BUILD*** analogue_osc_1416.dll
fm_osc_1415.dll: fm_osc_1415.obj
echo ***EXCLUDED FROM BUILD*** fm_osc_1415.dll
gsm_1215.dll: gsm_1215.obj
echo ***EXCLUDED FROM BUILD*** gsm_1215.dll
hermes_filter_1200.dll: hermes_filter_1200.obj
echo ***EXCLUDED FROM BUILD*** hermes_filter_1200.dll
#
# Special dependencies for util.lib
#
{..\..\util}.c.obj:
$(CC) $(CFLAGS) /c $<
util.lib: db.obj iir.obj pitchscale.obj rms.obj
lib /MACHINE:X86 /OUT:$@ $(?F: = )
db.obj: ..\..\util\db.c
iir.obj: ..\..\util\iir.c
pitchscale.obj: ..\..\util\pitchscale.c
rms.obj: ..\..\util\rms.c
#
# Special dependencies for gverb
#
{..\..\gverb}.c.obj:
$(CC) $(CFLAGS) /c $<
gverb_1216.dll: gverb_1216.obj gverb.obj gverbdsp.obj
link $(LDFLAGS) /OUT:$@ $?
gverb.obj: ..\..\gverb\gverb.c
gverbdsp.obj: ..\..\gverb\gverbdsp.c

View File

@@ -0,0 +1,116 @@
"readme_LADSPA_plugins-win.txt"
Leland Lucius
Vaughan Johnson (vaughan @ audacityteam . org)
Updated September 27, 2006
LADSPA_plugins-win is a project to port Steve Harris's LADSPA plugins
(http://plugin.org.uk/) to Windows OS as DLLs.
LADSPA_plugins-win is a part of Audacity (http://audacity.sourceforge.net)
and is licensed under the Audacity license, which is the GNU GPL. See
http://audacity.sourceforge.net/about/license or audacity\LICENSE.txt.
The primary goal is to port these plugins for use in the Windows version of
Audacity (http://audacity.sourceforge.net/), but the plugins should work in
any LADSPA host on Windows (if there are any others).
INSTALL THE PLUGINS:
The latest LADSPA_plugins-win installer is
"LADSPA_plugins-win-0.4.15.exe".
Run the installer. For the installation location, select the
Plug-Ins subdirectory of the Audacity you want to add them to.
The standard location is the default.
If you have multiple installed copies of Audacity (e.g., stable and
beta), run the LADSPA_plugins-win installer for each one.
Note that if you do multiple installations, there will be only one
item in the Windows Control Panel > Add/Remove Programs, and that will
remove the last one you installed. To remove the others, find and run the
"unins000.exe" file in the directory where you installed the plugins.
REQUIREMENTS FOR BUILDING THE PLUGINS:
* Microsoft Visual Studio 2005.
* audacity\win\LADSPA_plugins-win directory from, e.g.,
http://audacity.sourceforge.net/download/beta_source
* Latest plugin distro from http://plugin.org.uk.
* If you wish to use the following plugins, you will need to get the
libfftw3f-3.dll from http://www.fftw.org/ and place it
in the Audacity plugin directory:
imp_1199.dll
mbeq_1197.dll
pitch_scale_1193.dll
pitch_scale_1194.dll
The installer includes these plugins and the necessary
FFTW DLL and documentation (by permission of
Steven G. Johnson of FFTW, 9/26/2006).
Because the GNU C library ("GLIBC", http://www.gnu.org/software/libc/libc.html)
#include files typically are part of Linux but not Windows, we need to track
those too, so another goal is to make it easy to update for new releases of
GLIBC include files. GLIBC is a big download that changes infrequently,
and that code requires more changes to work properly on Windows. So, we don't
keep the same directory structure as the GLIBC release, but instead keep
them in a simple directory structure that best fits the #include statements
in Steve's code.
LADSPA_plugins-win has been proven with these versions:
* glibc-2.4
* fftw-3.1.2-dll.zip from http://www.fftw.org/install/windows.html
* swh-plugins-0.4.15 from http://plugin.org.uk
BUILD THE PLUGINS:
1. Put the LADSPA_plugins-win directory inside the latest distro
from http://plugin.org.uk.
The glibc and fftw headers and defs are already included
with LADSPA_plugins-win.
2. Open "LADSPA_plugins-win.sln". Build. DLLs will appear in Debug and/or
Release subdirectories of LADSPA_plugins-win.
3. To use them, move the DLLs to the Audacity\Plug-Ins folder.
BUILD THE INSTALLER (requires Inno Setup 5):
1. Build the Release configuration of the plugins.
2. Move the Release folder from the distro's copy of LADSPA_plugins-win to
audacity\win\LADSPA_plugins-win.
3. Download the latest FFTW for Windows from
http://www.fftw.org/install/windows.html.
3a. Move this file into audacity\win\LADSPA_plugins-win\Release:
libfftw3f-3.dll
3b. Make a new folder,
audacity\win\LADSPA_plugins-win\Release\FFTW_docs.
Copy all the documentation (files with no extension) to
that folder. Currently, the list is:
COPYING
COPYRIGHT
NEWS
README
README-bench
README-WINDOWS
4. Open and compile the LADSPA_plugins-win.iss file in
audacity\win\LADSPA_plugins-win. The installer will appear in
audacity\win\LADSPA_plugins-win\Installer.