mirror of https://github.com/PCSX2/pcsx2.git
Introduce end-of-line normalization
Signed-off-by: Gregory Hainaut <gregory.hainaut@gmail.com>
This commit is contained in:
parent
a42a236961
commit
6462393aaf
|
@ -0,0 +1,8 @@
|
||||||
|
# Set the default behavior, in case people don't have core.autocrlf set.
|
||||||
|
* text=auto
|
||||||
|
|
||||||
|
# Declare files that will always have CRLF line endings on checkout.
|
||||||
|
*.sln text eol=crlf
|
||||||
|
*.props text eol=crlf
|
||||||
|
*.vcxproj text eol=crlf
|
||||||
|
*.vcxproj.filters text eol=crlf
|
|
@ -1,21 +1,21 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
||||||
<OutDir>$(SvnRootDir)\deps\$(PlatformName)\$(Configuration)\</OutDir>
|
<OutDir>$(SvnRootDir)\deps\$(PlatformName)\$(Configuration)\</OutDir>
|
||||||
<IntDir>$(PlatformName)\$(Configuration)\</IntDir>
|
<IntDir>$(PlatformName)\$(Configuration)\</IntDir>
|
||||||
<ExtensionsToDeleteOnClean>*.bsc;*.idb;*.sbr;*.res;*.pch;*.pdb;*.obj;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath);$(ExtensionsToDeleteOnClean)</ExtensionsToDeleteOnClean>
|
<ExtensionsToDeleteOnClean>*.bsc;*.idb;*.sbr;*.res;*.pch;*.pdb;*.obj;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath);$(ExtensionsToDeleteOnClean)</ExtensionsToDeleteOnClean>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup>
|
<ItemDefinitionGroup>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>__WIN32__;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>__WIN32__;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<StructMemberAlignment>16Bytes</StructMemberAlignment>
|
<StructMemberAlignment>16Bytes</StructMemberAlignment>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<CompileAs>Default</CompileAs>
|
<CompileAs>Default</CompileAs>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,28 +1,28 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
||||||
<OutDir>$(SvnRootDir)\deps\$(PlatformName)\$(Configuration)\</OutDir>
|
<OutDir>$(SvnRootDir)\deps\$(PlatformName)\$(Configuration)\</OutDir>
|
||||||
<IntDir>$(PlatformName)\$(Configuration)\</IntDir>
|
<IntDir>$(PlatformName)\$(Configuration)\</IntDir>
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup>
|
<ItemDefinitionGroup>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>__WIN32__;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>__WIN32__;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<StructMemberAlignment>16Bytes</StructMemberAlignment>
|
<StructMemberAlignment>16Bytes</StructMemberAlignment>
|
||||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
|
<OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<ImportLibrary>$(OutDir)$(ProjectName).lib</ImportLibrary>
|
<ImportLibrary>$(OutDir)$(ProjectName).lib</ImportLibrary>
|
||||||
</Link>
|
</Link>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<AdditionalIncludeDirectories>$(SvnRootDir)/common/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SvnRootDir)/common/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,18 +1,18 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup Label="UserMacros">
|
<PropertyGroup Label="UserMacros">
|
||||||
<ProjectRootDir>$(ProjectDir)</ProjectRootDir>
|
<ProjectRootDir>$(ProjectDir)</ProjectRootDir>
|
||||||
<SvnRootDir>$(ProjectRootDir)\..\..</SvnRootDir>
|
<SvnRootDir>$(ProjectRootDir)\..\..</SvnRootDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BuildMacro Include="ProjectRootDir">
|
<BuildMacro Include="ProjectRootDir">
|
||||||
<Value>$(ProjectRootDir)</Value>
|
<Value>$(ProjectRootDir)</Value>
|
||||||
</BuildMacro>
|
</BuildMacro>
|
||||||
<BuildMacro Include="SvnRootDir">
|
<BuildMacro Include="SvnRootDir">
|
||||||
<Value>$(SvnRootDir)</Value>
|
<Value>$(SvnRootDir)</Value>
|
||||||
</BuildMacro>
|
</BuildMacro>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,43 +1,43 @@
|
||||||
|
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
This program, "bzip2", the associated library "libbzip2", and all
|
This program, "bzip2", the associated library "libbzip2", and all
|
||||||
documentation, are copyright (C) 1996-2006 Julian R Seward. All
|
documentation, are copyright (C) 1996-2006 Julian R Seward. All
|
||||||
rights reserved.
|
rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
are met:
|
are met:
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright
|
1. Redistributions of source code must retain the above copyright
|
||||||
notice, this list of conditions and the following disclaimer.
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
2. The origin of this software must not be misrepresented; you must
|
2. The origin of this software must not be misrepresented; you must
|
||||||
not claim that you wrote the original software. If you use this
|
not claim that you wrote the original software. If you use this
|
||||||
software in a product, an acknowledgment in the product
|
software in a product, an acknowledgment in the product
|
||||||
documentation would be appreciated but is not required.
|
documentation would be appreciated but is not required.
|
||||||
|
|
||||||
3. Altered source versions must be plainly marked as such, and must
|
3. Altered source versions must be plainly marked as such, and must
|
||||||
not be misrepresented as being the original software.
|
not be misrepresented as being the original software.
|
||||||
|
|
||||||
4. The name of the author may not be used to endorse or promote
|
4. The name of the author may not be used to endorse or promote
|
||||||
products derived from this software without specific prior written
|
products derived from this software without specific prior written
|
||||||
permission.
|
permission.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
Julian Seward, Cambridge, UK.
|
Julian Seward, Cambridge, UK.
|
||||||
jseward@bzip.org
|
jseward@bzip.org
|
||||||
bzip2/libbzip2 version 1.0.4 of 20 December 2006
|
bzip2/libbzip2 version 1.0.4 of 20 December 2006
|
||||||
|
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
|
|
|
@ -1,205 +1,205 @@
|
||||||
|
|
||||||
This is the README for bzip2/libzip2.
|
This is the README for bzip2/libzip2.
|
||||||
This version is fully compatible with the previous public releases.
|
This version is fully compatible with the previous public releases.
|
||||||
|
|
||||||
------------------------------------------------------------------
|
------------------------------------------------------------------
|
||||||
This file is part of bzip2/libbzip2, a program and library for
|
This file is part of bzip2/libbzip2, a program and library for
|
||||||
lossless, block-sorting data compression.
|
lossless, block-sorting data compression.
|
||||||
|
|
||||||
bzip2/libbzip2 version 1.0.4 of 20 December 2006
|
bzip2/libbzip2 version 1.0.4 of 20 December 2006
|
||||||
Copyright (C) 1996-2006 Julian Seward <jseward@bzip.org>
|
Copyright (C) 1996-2006 Julian Seward <jseward@bzip.org>
|
||||||
|
|
||||||
Please read the WARNING, DISCLAIMER and PATENTS sections in this file.
|
Please read the WARNING, DISCLAIMER and PATENTS sections in this file.
|
||||||
|
|
||||||
This program is released under the terms of the license contained
|
This program is released under the terms of the license contained
|
||||||
in the file LICENSE.
|
in the file LICENSE.
|
||||||
------------------------------------------------------------------
|
------------------------------------------------------------------
|
||||||
|
|
||||||
Complete documentation is available in Postscript form (manual.ps),
|
Complete documentation is available in Postscript form (manual.ps),
|
||||||
PDF (manual.pdf) or html (manual.html). A plain-text version of the
|
PDF (manual.pdf) or html (manual.html). A plain-text version of the
|
||||||
manual page is available as bzip2.txt.
|
manual page is available as bzip2.txt.
|
||||||
|
|
||||||
|
|
||||||
HOW TO BUILD -- UNIX
|
HOW TO BUILD -- UNIX
|
||||||
|
|
||||||
Type 'make'. This builds the library libbz2.a and then the programs
|
Type 'make'. This builds the library libbz2.a and then the programs
|
||||||
bzip2 and bzip2recover. Six self-tests are run. If the self-tests
|
bzip2 and bzip2recover. Six self-tests are run. If the self-tests
|
||||||
complete ok, carry on to installation:
|
complete ok, carry on to installation:
|
||||||
|
|
||||||
To install in /usr/local/bin, /usr/local/lib, /usr/local/man and
|
To install in /usr/local/bin, /usr/local/lib, /usr/local/man and
|
||||||
/usr/local/include, type
|
/usr/local/include, type
|
||||||
|
|
||||||
make install
|
make install
|
||||||
|
|
||||||
To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type
|
To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type
|
||||||
|
|
||||||
make install PREFIX=/xxx/yyy
|
make install PREFIX=/xxx/yyy
|
||||||
|
|
||||||
If you are (justifiably) paranoid and want to see what 'make install'
|
If you are (justifiably) paranoid and want to see what 'make install'
|
||||||
is going to do, you can first do
|
is going to do, you can first do
|
||||||
|
|
||||||
make -n install or
|
make -n install or
|
||||||
make -n install PREFIX=/xxx/yyy respectively.
|
make -n install PREFIX=/xxx/yyy respectively.
|
||||||
|
|
||||||
The -n instructs make to show the commands it would execute, but not
|
The -n instructs make to show the commands it would execute, but not
|
||||||
actually execute them.
|
actually execute them.
|
||||||
|
|
||||||
|
|
||||||
HOW TO BUILD -- UNIX, shared library libbz2.so.
|
HOW TO BUILD -- UNIX, shared library libbz2.so.
|
||||||
|
|
||||||
Do 'make -f Makefile-libbz2_so'. This Makefile seems to work for
|
Do 'make -f Makefile-libbz2_so'. This Makefile seems to work for
|
||||||
Linux-ELF (RedHat 7.2 on an x86 box), with gcc. I make no claims
|
Linux-ELF (RedHat 7.2 on an x86 box), with gcc. I make no claims
|
||||||
that it works for any other platform, though I suspect it probably
|
that it works for any other platform, though I suspect it probably
|
||||||
will work for most platforms employing both ELF and gcc.
|
will work for most platforms employing both ELF and gcc.
|
||||||
|
|
||||||
bzip2-shared, a client of the shared library, is also built, but not
|
bzip2-shared, a client of the shared library, is also built, but not
|
||||||
self-tested. So I suggest you also build using the normal Makefile,
|
self-tested. So I suggest you also build using the normal Makefile,
|
||||||
since that conducts a self-test. A second reason to prefer the
|
since that conducts a self-test. A second reason to prefer the
|
||||||
version statically linked to the library is that, on x86 platforms,
|
version statically linked to the library is that, on x86 platforms,
|
||||||
building shared objects makes a valuable register (%ebx) unavailable
|
building shared objects makes a valuable register (%ebx) unavailable
|
||||||
to gcc, resulting in a slowdown of 10%-20%, at least for bzip2.
|
to gcc, resulting in a slowdown of 10%-20%, at least for bzip2.
|
||||||
|
|
||||||
Important note for people upgrading .so's from 0.9.0/0.9.5 to version
|
Important note for people upgrading .so's from 0.9.0/0.9.5 to version
|
||||||
1.0.X. All the functions in the library have been renamed, from (eg)
|
1.0.X. All the functions in the library have been renamed, from (eg)
|
||||||
bzCompress to BZ2_bzCompress, to avoid namespace pollution.
|
bzCompress to BZ2_bzCompress, to avoid namespace pollution.
|
||||||
Unfortunately this means that the libbz2.so created by
|
Unfortunately this means that the libbz2.so created by
|
||||||
Makefile-libbz2_so will not work with any program which used an older
|
Makefile-libbz2_so will not work with any program which used an older
|
||||||
version of the library. I do encourage library clients to make the
|
version of the library. I do encourage library clients to make the
|
||||||
effort to upgrade to use version 1.0, since it is both faster and more
|
effort to upgrade to use version 1.0, since it is both faster and more
|
||||||
robust than previous versions.
|
robust than previous versions.
|
||||||
|
|
||||||
|
|
||||||
HOW TO BUILD -- Windows 95, NT, DOS, Mac, etc.
|
HOW TO BUILD -- Windows 95, NT, DOS, Mac, etc.
|
||||||
|
|
||||||
It's difficult for me to support compilation on all these platforms.
|
It's difficult for me to support compilation on all these platforms.
|
||||||
My approach is to collect binaries for these platforms, and put them
|
My approach is to collect binaries for these platforms, and put them
|
||||||
on the master web site (http://www.bzip.org). Look there. However
|
on the master web site (http://www.bzip.org). Look there. However
|
||||||
(FWIW), bzip2-1.0.X is very standard ANSI C and should compile
|
(FWIW), bzip2-1.0.X is very standard ANSI C and should compile
|
||||||
unmodified with MS Visual C. If you have difficulties building, you
|
unmodified with MS Visual C. If you have difficulties building, you
|
||||||
might want to read README.COMPILATION.PROBLEMS.
|
might want to read README.COMPILATION.PROBLEMS.
|
||||||
|
|
||||||
At least using MS Visual C++ 6, you can build from the unmodified
|
At least using MS Visual C++ 6, you can build from the unmodified
|
||||||
sources by issuing, in a command shell:
|
sources by issuing, in a command shell:
|
||||||
|
|
||||||
nmake -f makefile.msc
|
nmake -f makefile.msc
|
||||||
|
|
||||||
(you may need to first run the MSVC-provided script VCVARS32.BAT
|
(you may need to first run the MSVC-provided script VCVARS32.BAT
|
||||||
so as to set up paths to the MSVC tools correctly).
|
so as to set up paths to the MSVC tools correctly).
|
||||||
|
|
||||||
|
|
||||||
VALIDATION
|
VALIDATION
|
||||||
|
|
||||||
Correct operation, in the sense that a compressed file can always be
|
Correct operation, in the sense that a compressed file can always be
|
||||||
decompressed to reproduce the original, is obviously of paramount
|
decompressed to reproduce the original, is obviously of paramount
|
||||||
importance. To validate bzip2, I used a modified version of Mark
|
importance. To validate bzip2, I used a modified version of Mark
|
||||||
Nelson's churn program. Churn is an automated test driver which
|
Nelson's churn program. Churn is an automated test driver which
|
||||||
recursively traverses a directory structure, using bzip2 to compress
|
recursively traverses a directory structure, using bzip2 to compress
|
||||||
and then decompress each file it encounters, and checking that the
|
and then decompress each file it encounters, and checking that the
|
||||||
decompressed data is the same as the original.
|
decompressed data is the same as the original.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Please read and be aware of the following:
|
Please read and be aware of the following:
|
||||||
|
|
||||||
WARNING:
|
WARNING:
|
||||||
|
|
||||||
This program and library (attempts to) compress data by
|
This program and library (attempts to) compress data by
|
||||||
performing several non-trivial transformations on it.
|
performing several non-trivial transformations on it.
|
||||||
Unless you are 100% familiar with *all* the algorithms
|
Unless you are 100% familiar with *all* the algorithms
|
||||||
contained herein, and with the consequences of modifying them,
|
contained herein, and with the consequences of modifying them,
|
||||||
you should NOT meddle with the compression or decompression
|
you should NOT meddle with the compression or decompression
|
||||||
machinery. Incorrect changes can and very likely *will*
|
machinery. Incorrect changes can and very likely *will*
|
||||||
lead to disastrous loss of data.
|
lead to disastrous loss of data.
|
||||||
|
|
||||||
|
|
||||||
DISCLAIMER:
|
DISCLAIMER:
|
||||||
|
|
||||||
I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE
|
I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE
|
||||||
USE OF THIS PROGRAM/LIBRARY, HOWSOEVER CAUSED.
|
USE OF THIS PROGRAM/LIBRARY, HOWSOEVER CAUSED.
|
||||||
|
|
||||||
Every compression of a file implies an assumption that the
|
Every compression of a file implies an assumption that the
|
||||||
compressed file can be decompressed to reproduce the original.
|
compressed file can be decompressed to reproduce the original.
|
||||||
Great efforts in design, coding and testing have been made to
|
Great efforts in design, coding and testing have been made to
|
||||||
ensure that this program works correctly. However, the complexity
|
ensure that this program works correctly. However, the complexity
|
||||||
of the algorithms, and, in particular, the presence of various
|
of the algorithms, and, in particular, the presence of various
|
||||||
special cases in the code which occur with very low but non-zero
|
special cases in the code which occur with very low but non-zero
|
||||||
probability make it impossible to rule out the possibility of bugs
|
probability make it impossible to rule out the possibility of bugs
|
||||||
remaining in the program. DO NOT COMPRESS ANY DATA WITH THIS
|
remaining in the program. DO NOT COMPRESS ANY DATA WITH THIS
|
||||||
PROGRAM UNLESS YOU ARE PREPARED TO ACCEPT THE POSSIBILITY, HOWEVER
|
PROGRAM UNLESS YOU ARE PREPARED TO ACCEPT THE POSSIBILITY, HOWEVER
|
||||||
SMALL, THAT THE DATA WILL NOT BE RECOVERABLE.
|
SMALL, THAT THE DATA WILL NOT BE RECOVERABLE.
|
||||||
|
|
||||||
That is not to say this program is inherently unreliable.
|
That is not to say this program is inherently unreliable.
|
||||||
Indeed, I very much hope the opposite is true. bzip2/libbzip2
|
Indeed, I very much hope the opposite is true. bzip2/libbzip2
|
||||||
has been carefully constructed and extensively tested.
|
has been carefully constructed and extensively tested.
|
||||||
|
|
||||||
|
|
||||||
PATENTS:
|
PATENTS:
|
||||||
|
|
||||||
To the best of my knowledge, bzip2/libbzip2 does not use any
|
To the best of my knowledge, bzip2/libbzip2 does not use any
|
||||||
patented algorithms. However, I do not have the resources
|
patented algorithms. However, I do not have the resources
|
||||||
to carry out a patent search. Therefore I cannot give any
|
to carry out a patent search. Therefore I cannot give any
|
||||||
guarantee of the above statement.
|
guarantee of the above statement.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WHAT'S NEW IN 0.9.0 (as compared to 0.1pl2) ?
|
WHAT'S NEW IN 0.9.0 (as compared to 0.1pl2) ?
|
||||||
|
|
||||||
* Approx 10% faster compression, 30% faster decompression
|
* Approx 10% faster compression, 30% faster decompression
|
||||||
* -t (test mode) is a lot quicker
|
* -t (test mode) is a lot quicker
|
||||||
* Can decompress concatenated compressed files
|
* Can decompress concatenated compressed files
|
||||||
* Programming interface, so programs can directly read/write .bz2 files
|
* Programming interface, so programs can directly read/write .bz2 files
|
||||||
* Less restrictive (BSD-style) licensing
|
* Less restrictive (BSD-style) licensing
|
||||||
* Flag handling more compatible with GNU gzip
|
* Flag handling more compatible with GNU gzip
|
||||||
* Much more documentation, i.e., a proper user manual
|
* Much more documentation, i.e., a proper user manual
|
||||||
* Hopefully, improved portability (at least of the library)
|
* Hopefully, improved portability (at least of the library)
|
||||||
|
|
||||||
WHAT'S NEW IN 0.9.5 ?
|
WHAT'S NEW IN 0.9.5 ?
|
||||||
|
|
||||||
* Compression speed is much less sensitive to the input
|
* Compression speed is much less sensitive to the input
|
||||||
data than in previous versions. Specifically, the very
|
data than in previous versions. Specifically, the very
|
||||||
slow performance caused by repetitive data is fixed.
|
slow performance caused by repetitive data is fixed.
|
||||||
* Many small improvements in file and flag handling.
|
* Many small improvements in file and flag handling.
|
||||||
* A Y2K statement.
|
* A Y2K statement.
|
||||||
|
|
||||||
WHAT'S NEW IN 1.0.0 ?
|
WHAT'S NEW IN 1.0.0 ?
|
||||||
|
|
||||||
See the CHANGES file.
|
See the CHANGES file.
|
||||||
|
|
||||||
WHAT'S NEW IN 1.0.2 ?
|
WHAT'S NEW IN 1.0.2 ?
|
||||||
|
|
||||||
See the CHANGES file.
|
See the CHANGES file.
|
||||||
|
|
||||||
WHAT'S NEW IN 1.0.3 ?
|
WHAT'S NEW IN 1.0.3 ?
|
||||||
|
|
||||||
See the CHANGES file.
|
See the CHANGES file.
|
||||||
|
|
||||||
WHAT'S NEW IN 1.0.4 ?
|
WHAT'S NEW IN 1.0.4 ?
|
||||||
|
|
||||||
See the CHANGES file.
|
See the CHANGES file.
|
||||||
|
|
||||||
|
|
||||||
I hope you find bzip2 useful. Feel free to contact me at
|
I hope you find bzip2 useful. Feel free to contact me at
|
||||||
jseward@bzip.org
|
jseward@bzip.org
|
||||||
if you have any suggestions or queries. Many people mailed me with
|
if you have any suggestions or queries. Many people mailed me with
|
||||||
comments, suggestions and patches after the releases of bzip-0.15,
|
comments, suggestions and patches after the releases of bzip-0.15,
|
||||||
bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1,
|
bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1,
|
||||||
1.0.2 and 1.0.3, and the changes in bzip2 are largely a result of this
|
1.0.2 and 1.0.3, and the changes in bzip2 are largely a result of this
|
||||||
feedback. I thank you for your comments.
|
feedback. I thank you for your comments.
|
||||||
|
|
||||||
bzip2's "home" is http://www.bzip.org/
|
bzip2's "home" is http://www.bzip.org/
|
||||||
|
|
||||||
Julian Seward
|
Julian Seward
|
||||||
jseward@bzip.org
|
jseward@bzip.org
|
||||||
Cambridge, UK.
|
Cambridge, UK.
|
||||||
|
|
||||||
18 July 1996 (version 0.15)
|
18 July 1996 (version 0.15)
|
||||||
25 August 1996 (version 0.21)
|
25 August 1996 (version 0.21)
|
||||||
7 August 1997 (bzip2, version 0.1)
|
7 August 1997 (bzip2, version 0.1)
|
||||||
29 August 1997 (bzip2, version 0.1pl2)
|
29 August 1997 (bzip2, version 0.1pl2)
|
||||||
23 August 1998 (bzip2, version 0.9.0)
|
23 August 1998 (bzip2, version 0.9.0)
|
||||||
8 June 1999 (bzip2, version 0.9.5)
|
8 June 1999 (bzip2, version 0.9.5)
|
||||||
4 Sept 1999 (bzip2, version 0.9.5d)
|
4 Sept 1999 (bzip2, version 0.9.5d)
|
||||||
5 May 2000 (bzip2, version 1.0pre8)
|
5 May 2000 (bzip2, version 1.0pre8)
|
||||||
30 December 2001 (bzip2, version 1.0.2pre1)
|
30 December 2001 (bzip2, version 1.0.2pre1)
|
||||||
15 February 2005 (bzip2, version 1.0.3)
|
15 February 2005 (bzip2, version 1.0.3)
|
||||||
20 December 2006 (bzip2, version 1.0.4)
|
20 December 2006 (bzip2, version 1.0.4)
|
||||||
|
|
|
@ -1,96 +1,96 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Devel|Win32">
|
<ProjectConfiguration Include="Devel|Win32">
|
||||||
<Configuration>Devel</Configuration>
|
<Configuration>Devel</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{F4EB4AB2-C595-4B05-8BC0-059024BC796C}</ProjectGuid>
|
<ProjectGuid>{F4EB4AB2-C595-4B05-8BC0-059024BC796C}</ProjectGuid>
|
||||||
<RootNamespace>bzip2</RootNamespace>
|
<RootNamespace>bzip2</RootNamespace>
|
||||||
<ProjectName>bzip2</ProjectName>
|
<ProjectName>bzip2</ProjectName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v110_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v110_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v110_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdparty.props" />
|
<Import Project="..\3rdparty.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Devel.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Devel.props" />
|
||||||
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdparty.props" />
|
<Import Project="..\3rdparty.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Release.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Release.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdparty.props" />
|
<Import Project="..\3rdparty.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Debug.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Debug.props" />
|
||||||
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>
|
||||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(ProjectName)-dev</TargetName>
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(ProjectName)-dev</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup>
|
<ItemDefinitionGroup>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="blocksort.c" />
|
<ClCompile Include="blocksort.c" />
|
||||||
<ClCompile Include="bzlib.c" />
|
<ClCompile Include="bzlib.c" />
|
||||||
<ClCompile Include="compress.c" />
|
<ClCompile Include="compress.c" />
|
||||||
<ClCompile Include="crctable.c" />
|
<ClCompile Include="crctable.c" />
|
||||||
<ClCompile Include="decompress.c" />
|
<ClCompile Include="decompress.c" />
|
||||||
<ClCompile Include="huffman.c" />
|
<ClCompile Include="huffman.c" />
|
||||||
<ClCompile Include="randtable.c" />
|
<ClCompile Include="randtable.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="bzlib.h" />
|
<ClInclude Include="bzlib.h" />
|
||||||
<ClInclude Include="bzlib_private.h" />
|
<ClInclude Include="bzlib_private.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,44 +1,44 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Header Files">
|
<Filter Include="Header Files">
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="blocksort.c">
|
<ClCompile Include="blocksort.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="bzlib.c">
|
<ClCompile Include="bzlib.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="compress.c">
|
<ClCompile Include="compress.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="crctable.c">
|
<ClCompile Include="crctable.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="decompress.c">
|
<ClCompile Include="decompress.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="huffman.c">
|
<ClCompile Include="huffman.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="randtable.c">
|
<ClCompile Include="randtable.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="bzlib.h">
|
<ClInclude Include="bzlib.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="bzlib_private.h">
|
<ClInclude Include="bzlib_private.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,165 +1,165 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Devel|Win32">
|
<ProjectConfiguration Include="Devel|Win32">
|
||||||
<Configuration>Devel</Configuration>
|
<Configuration>Devel</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectName>libjpeg7</ProjectName>
|
<ProjectName>libjpeg7</ProjectName>
|
||||||
<ProjectGuid>{BC236261-77E8-4567-8D09-45CD02965EB6}</ProjectGuid>
|
<ProjectGuid>{BC236261-77E8-4567-8D09-45CD02965EB6}</ProjectGuid>
|
||||||
<RootNamespace>libjpeg</RootNamespace>
|
<RootNamespace>libjpeg</RootNamespace>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v110_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v110_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v110_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
|
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdparty.props" />
|
<Import Project="..\3rdparty.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Devel.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Devel.props" />
|
||||||
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdparty.props" />
|
<Import Project="..\3rdparty.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Release.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Release.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdparty.props" />
|
<Import Project="..\3rdparty.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Debug.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Debug.props" />
|
||||||
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(ProjectName)-dev</TargetName>
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(ProjectName)-dev</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="jaricom.c" />
|
<ClCompile Include="jaricom.c" />
|
||||||
<ClCompile Include="jcapimin.c" />
|
<ClCompile Include="jcapimin.c" />
|
||||||
<ClCompile Include="jcapistd.c" />
|
<ClCompile Include="jcapistd.c" />
|
||||||
<ClCompile Include="jcarith.c" />
|
<ClCompile Include="jcarith.c" />
|
||||||
<ClCompile Include="jccoefct.c" />
|
<ClCompile Include="jccoefct.c" />
|
||||||
<ClCompile Include="jccolor.c" />
|
<ClCompile Include="jccolor.c" />
|
||||||
<ClCompile Include="jcdctmgr.c" />
|
<ClCompile Include="jcdctmgr.c" />
|
||||||
<ClCompile Include="jchuff.c" />
|
<ClCompile Include="jchuff.c" />
|
||||||
<ClCompile Include="jcinit.c" />
|
<ClCompile Include="jcinit.c" />
|
||||||
<ClCompile Include="jcmainct.c" />
|
<ClCompile Include="jcmainct.c" />
|
||||||
<ClCompile Include="jcmarker.c" />
|
<ClCompile Include="jcmarker.c" />
|
||||||
<ClCompile Include="jcmaster.c" />
|
<ClCompile Include="jcmaster.c" />
|
||||||
<ClCompile Include="jcomapi.c" />
|
<ClCompile Include="jcomapi.c" />
|
||||||
<ClCompile Include="jcparam.c" />
|
<ClCompile Include="jcparam.c" />
|
||||||
<ClCompile Include="jcprepct.c" />
|
<ClCompile Include="jcprepct.c" />
|
||||||
<ClCompile Include="jcsample.c" />
|
<ClCompile Include="jcsample.c" />
|
||||||
<ClCompile Include="jctrans.c" />
|
<ClCompile Include="jctrans.c" />
|
||||||
<ClCompile Include="jdapimin.c" />
|
<ClCompile Include="jdapimin.c" />
|
||||||
<ClCompile Include="jdapistd.c" />
|
<ClCompile Include="jdapistd.c" />
|
||||||
<ClCompile Include="jdarith.c" />
|
<ClCompile Include="jdarith.c" />
|
||||||
<ClCompile Include="jdatadst.c" />
|
<ClCompile Include="jdatadst.c" />
|
||||||
<ClCompile Include="jdatasrc.c" />
|
<ClCompile Include="jdatasrc.c" />
|
||||||
<ClCompile Include="jdcoefct.c" />
|
<ClCompile Include="jdcoefct.c" />
|
||||||
<ClCompile Include="jdcolor.c" />
|
<ClCompile Include="jdcolor.c" />
|
||||||
<ClCompile Include="jddctmgr.c" />
|
<ClCompile Include="jddctmgr.c" />
|
||||||
<ClCompile Include="jdhuff.c" />
|
<ClCompile Include="jdhuff.c" />
|
||||||
<ClCompile Include="jdinput.c" />
|
<ClCompile Include="jdinput.c" />
|
||||||
<ClCompile Include="jdmainct.c" />
|
<ClCompile Include="jdmainct.c" />
|
||||||
<ClCompile Include="jdmarker.c" />
|
<ClCompile Include="jdmarker.c" />
|
||||||
<ClCompile Include="jdmaster.c" />
|
<ClCompile Include="jdmaster.c" />
|
||||||
<ClCompile Include="jdmerge.c" />
|
<ClCompile Include="jdmerge.c" />
|
||||||
<ClCompile Include="jdpostct.c" />
|
<ClCompile Include="jdpostct.c" />
|
||||||
<ClCompile Include="jdsample.c" />
|
<ClCompile Include="jdsample.c" />
|
||||||
<ClCompile Include="jdtrans.c" />
|
<ClCompile Include="jdtrans.c" />
|
||||||
<ClCompile Include="jerror.c" />
|
<ClCompile Include="jerror.c" />
|
||||||
<ClCompile Include="jfdctflt.c" />
|
<ClCompile Include="jfdctflt.c" />
|
||||||
<ClCompile Include="jfdctfst.c" />
|
<ClCompile Include="jfdctfst.c" />
|
||||||
<ClCompile Include="jfdctint.c" />
|
<ClCompile Include="jfdctint.c" />
|
||||||
<ClCompile Include="jidctflt.c" />
|
<ClCompile Include="jidctflt.c" />
|
||||||
<ClCompile Include="jidctfst.c" />
|
<ClCompile Include="jidctfst.c" />
|
||||||
<ClCompile Include="jidctint.c" />
|
<ClCompile Include="jidctint.c" />
|
||||||
<ClCompile Include="jmemansi.c" />
|
<ClCompile Include="jmemansi.c" />
|
||||||
<ClCompile Include="jmemmgr.c" />
|
<ClCompile Include="jmemmgr.c" />
|
||||||
<ClCompile Include="jquant1.c" />
|
<ClCompile Include="jquant1.c" />
|
||||||
<ClCompile Include="jquant2.c" />
|
<ClCompile Include="jquant2.c" />
|
||||||
<ClCompile Include="jutils.c" />
|
<ClCompile Include="jutils.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="jconfig.h" />
|
<ClInclude Include="jconfig.h" />
|
||||||
<ClInclude Include="jdct.h" />
|
<ClInclude Include="jdct.h" />
|
||||||
<ClInclude Include="jerror.h" />
|
<ClInclude Include="jerror.h" />
|
||||||
<ClInclude Include="jinclude.h" />
|
<ClInclude Include="jinclude.h" />
|
||||||
<ClInclude Include="jmemsys.h" />
|
<ClInclude Include="jmemsys.h" />
|
||||||
<ClInclude Include="jmorecfg.h" />
|
<ClInclude Include="jmorecfg.h" />
|
||||||
<ClInclude Include="jpegint.h" />
|
<ClInclude Include="jpegint.h" />
|
||||||
<ClInclude Include="jpeglib.h" />
|
<ClInclude Include="jpeglib.h" />
|
||||||
<ClInclude Include="jversion.h" />
|
<ClInclude Include="jversion.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="change.log" />
|
<None Include="change.log" />
|
||||||
<None Include="filelist.txt" />
|
<None Include="filelist.txt" />
|
||||||
<None Include="README" />
|
<None Include="README" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
|
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,183 +1,183 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="jaricom.c">
|
<ClCompile Include="jaricom.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jcapimin.c">
|
<ClCompile Include="jcapimin.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jcapistd.c">
|
<ClCompile Include="jcapistd.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jcarith.c">
|
<ClCompile Include="jcarith.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jccoefct.c">
|
<ClCompile Include="jccoefct.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jccolor.c">
|
<ClCompile Include="jccolor.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jcdctmgr.c">
|
<ClCompile Include="jcdctmgr.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jchuff.c">
|
<ClCompile Include="jchuff.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jcinit.c">
|
<ClCompile Include="jcinit.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jcmainct.c">
|
<ClCompile Include="jcmainct.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jcmarker.c">
|
<ClCompile Include="jcmarker.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jcmaster.c">
|
<ClCompile Include="jcmaster.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jcomapi.c">
|
<ClCompile Include="jcomapi.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jcparam.c">
|
<ClCompile Include="jcparam.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jcprepct.c">
|
<ClCompile Include="jcprepct.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jcsample.c">
|
<ClCompile Include="jcsample.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jctrans.c">
|
<ClCompile Include="jctrans.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdapimin.c">
|
<ClCompile Include="jdapimin.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdapistd.c">
|
<ClCompile Include="jdapistd.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdarith.c">
|
<ClCompile Include="jdarith.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdatadst.c">
|
<ClCompile Include="jdatadst.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdatasrc.c">
|
<ClCompile Include="jdatasrc.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdcoefct.c">
|
<ClCompile Include="jdcoefct.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdcolor.c">
|
<ClCompile Include="jdcolor.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jddctmgr.c">
|
<ClCompile Include="jddctmgr.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdhuff.c">
|
<ClCompile Include="jdhuff.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdinput.c">
|
<ClCompile Include="jdinput.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdmainct.c">
|
<ClCompile Include="jdmainct.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdmarker.c">
|
<ClCompile Include="jdmarker.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdmaster.c">
|
<ClCompile Include="jdmaster.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdmerge.c">
|
<ClCompile Include="jdmerge.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdpostct.c">
|
<ClCompile Include="jdpostct.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdsample.c">
|
<ClCompile Include="jdsample.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jdtrans.c">
|
<ClCompile Include="jdtrans.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jerror.c">
|
<ClCompile Include="jerror.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jfdctflt.c">
|
<ClCompile Include="jfdctflt.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jfdctfst.c">
|
<ClCompile Include="jfdctfst.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jfdctint.c">
|
<ClCompile Include="jfdctint.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jidctflt.c">
|
<ClCompile Include="jidctflt.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jidctfst.c">
|
<ClCompile Include="jidctfst.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jidctint.c">
|
<ClCompile Include="jidctint.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jmemansi.c">
|
<ClCompile Include="jmemansi.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jmemmgr.c">
|
<ClCompile Include="jmemmgr.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jquant1.c">
|
<ClCompile Include="jquant1.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jquant2.c">
|
<ClCompile Include="jquant2.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="jutils.c">
|
<ClCompile Include="jutils.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="jconfig.h">
|
<ClInclude Include="jconfig.h">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="jdct.h">
|
<ClInclude Include="jdct.h">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="jerror.h">
|
<ClInclude Include="jerror.h">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="jinclude.h">
|
<ClInclude Include="jinclude.h">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="jmemsys.h">
|
<ClInclude Include="jmemsys.h">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="jmorecfg.h">
|
<ClInclude Include="jmorecfg.h">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="jpegint.h">
|
<ClInclude Include="jpegint.h">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="jpeglib.h">
|
<ClInclude Include="jpeglib.h">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="jversion.h">
|
<ClInclude Include="jversion.h">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="change.log" />
|
<None Include="change.log" />
|
||||||
<None Include="filelist.txt" />
|
<None Include="filelist.txt" />
|
||||||
<None Include="README" />
|
<None Include="README" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,219 +1,219 @@
|
||||||
40
|
40
|
||||||
targetIdent
|
targetIdent
|
||||||
0
|
0
|
||||||
MProject
|
MProject
|
||||||
1
|
1
|
||||||
MComponent
|
MComponent
|
||||||
0
|
0
|
||||||
2
|
2
|
||||||
WString
|
WString
|
||||||
4
|
4
|
||||||
NEXE
|
NEXE
|
||||||
3
|
3
|
||||||
WString
|
WString
|
||||||
5
|
5
|
||||||
nc2en
|
nc2en
|
||||||
1
|
1
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
4
|
4
|
||||||
MCommand
|
MCommand
|
||||||
0
|
0
|
||||||
5
|
5
|
||||||
MCommand
|
MCommand
|
||||||
1118
|
1118
|
||||||
pngstest --strict --log ../../contrib/pngsuite/basn0g01.png ../../contrib/pngsuite/basn0g02.png ../../contrib/pngsuite/basn0g04.png ../../contrib/pngsuite/basn0g08.png ../../contrib/pngsuite/basn0g16.png ../../contrib/pngsuite/basn2c08.png ../../contrib/pngsuite/basn2c16.png ../../contrib/pngsuite/basn3p01.png ../../contrib/pngsuite/basn3p02.png ../../contrib/pngsuite/basn3p04.png ../../contrib/pngsuite/basn3p08.png ../../contrib/pngsuite/basn4a08.png ../../contrib/pngsuite/basn4a16.png ../../contrib/pngsuite/basn6a08.png ../../contrib/pngsuite/basn6a16.png ../../contrib/pngsuite/ftbbn0g04.png ../../contrib/pngsuite/ftbbn0g01.png ../../contrib/pngsuite/ftbbn0g02.png ../../contrib/pngsuite/ftbbn2c16.png ../../contrib/pngsuite/ftbbn3p08.png ../../contrib/pngsuite/ftbgn2c16.png ../../contrib/pngsuite/ftbgn3p08.png ../../contrib/pngsuite/ftbrn2c08.png ../../contrib/pngsuite/ftbwn0g16.png ../../contrib/pngsuite/ftbwn3p08.png ../../contrib/pngsuite/ftbyn3p08.png ../../contrib/pngsuite/ftp0n0g08.png ../../contrib/pngsuite/ftp0n2c08.png ../../contrib/pngsuite/ftp0n3p08.png ../../contrib/pngsuite/ftp1n3p08.png
|
pngstest --strict --log ../../contrib/pngsuite/basn0g01.png ../../contrib/pngsuite/basn0g02.png ../../contrib/pngsuite/basn0g04.png ../../contrib/pngsuite/basn0g08.png ../../contrib/pngsuite/basn0g16.png ../../contrib/pngsuite/basn2c08.png ../../contrib/pngsuite/basn2c16.png ../../contrib/pngsuite/basn3p01.png ../../contrib/pngsuite/basn3p02.png ../../contrib/pngsuite/basn3p04.png ../../contrib/pngsuite/basn3p08.png ../../contrib/pngsuite/basn4a08.png ../../contrib/pngsuite/basn4a16.png ../../contrib/pngsuite/basn6a08.png ../../contrib/pngsuite/basn6a16.png ../../contrib/pngsuite/ftbbn0g04.png ../../contrib/pngsuite/ftbbn0g01.png ../../contrib/pngsuite/ftbbn0g02.png ../../contrib/pngsuite/ftbbn2c16.png ../../contrib/pngsuite/ftbbn3p08.png ../../contrib/pngsuite/ftbgn2c16.png ../../contrib/pngsuite/ftbgn3p08.png ../../contrib/pngsuite/ftbrn2c08.png ../../contrib/pngsuite/ftbwn0g16.png ../../contrib/pngsuite/ftbwn3p08.png ../../contrib/pngsuite/ftbyn3p08.png ../../contrib/pngsuite/ftp0n0g08.png ../../contrib/pngsuite/ftp0n2c08.png ../../contrib/pngsuite/ftp0n3p08.png ../../contrib/pngsuite/ftp1n3p08.png
|
||||||
6
|
6
|
||||||
MItem
|
MItem
|
||||||
12
|
12
|
||||||
pngstest.exe
|
pngstest.exe
|
||||||
7
|
7
|
||||||
WString
|
WString
|
||||||
4
|
4
|
||||||
NEXE
|
NEXE
|
||||||
8
|
8
|
||||||
WVList
|
WVList
|
||||||
6
|
6
|
||||||
9
|
9
|
||||||
MVState
|
MVState
|
||||||
10
|
10
|
||||||
WString
|
WString
|
||||||
7
|
7
|
||||||
WINLINK
|
WINLINK
|
||||||
11
|
11
|
||||||
WString
|
WString
|
||||||
11
|
11
|
||||||
?????Stack:
|
?????Stack:
|
||||||
1
|
1
|
||||||
12
|
12
|
||||||
WString
|
WString
|
||||||
4
|
4
|
||||||
768k
|
768k
|
||||||
0
|
0
|
||||||
13
|
13
|
||||||
MVState
|
MVState
|
||||||
14
|
14
|
||||||
WString
|
WString
|
||||||
7
|
7
|
||||||
WINLINK
|
WINLINK
|
||||||
15
|
15
|
||||||
WString
|
WString
|
||||||
28
|
28
|
||||||
?????Library directories(;):
|
?????Library directories(;):
|
||||||
1
|
1
|
||||||
16
|
16
|
||||||
WString
|
WString
|
||||||
8
|
8
|
||||||
$(%zlib)
|
$(%zlib)
|
||||||
0
|
0
|
||||||
17
|
17
|
||||||
MVState
|
MVState
|
||||||
18
|
18
|
||||||
WString
|
WString
|
||||||
7
|
7
|
||||||
WINLINK
|
WINLINK
|
||||||
19
|
19
|
||||||
WString
|
WString
|
||||||
18
|
18
|
||||||
?????Libraries(,):
|
?????Libraries(,):
|
||||||
1
|
1
|
||||||
20
|
20
|
||||||
WString
|
WString
|
||||||
19
|
19
|
||||||
libpng.lib zlib.lib
|
libpng.lib zlib.lib
|
||||||
0
|
0
|
||||||
21
|
21
|
||||||
MVState
|
MVState
|
||||||
22
|
22
|
||||||
WString
|
WString
|
||||||
7
|
7
|
||||||
WINLINK
|
WINLINK
|
||||||
23
|
23
|
||||||
WString
|
WString
|
||||||
11
|
11
|
||||||
?????Stack:
|
?????Stack:
|
||||||
0
|
0
|
||||||
24
|
24
|
||||||
WString
|
WString
|
||||||
4
|
4
|
||||||
768k
|
768k
|
||||||
0
|
0
|
||||||
25
|
25
|
||||||
MVState
|
MVState
|
||||||
26
|
26
|
||||||
WString
|
WString
|
||||||
7
|
7
|
||||||
WINLINK
|
WINLINK
|
||||||
27
|
27
|
||||||
WString
|
WString
|
||||||
28
|
28
|
||||||
?????Library directories(;):
|
?????Library directories(;):
|
||||||
0
|
0
|
||||||
28
|
28
|
||||||
WString
|
WString
|
||||||
8
|
8
|
||||||
$(%zlib)
|
$(%zlib)
|
||||||
0
|
0
|
||||||
29
|
29
|
||||||
MVState
|
MVState
|
||||||
30
|
30
|
||||||
WString
|
WString
|
||||||
7
|
7
|
||||||
WINLINK
|
WINLINK
|
||||||
31
|
31
|
||||||
WString
|
WString
|
||||||
18
|
18
|
||||||
?????Libraries(,):
|
?????Libraries(,):
|
||||||
0
|
0
|
||||||
32
|
32
|
||||||
WString
|
WString
|
||||||
19
|
19
|
||||||
libpng.lib zlib.lib
|
libpng.lib zlib.lib
|
||||||
0
|
0
|
||||||
33
|
33
|
||||||
WVList
|
WVList
|
||||||
1
|
1
|
||||||
34
|
34
|
||||||
ActionStates
|
ActionStates
|
||||||
35
|
35
|
||||||
WString
|
WString
|
||||||
4
|
4
|
||||||
&Run
|
&Run
|
||||||
36
|
36
|
||||||
WVList
|
WVList
|
||||||
0
|
0
|
||||||
-1
|
-1
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
0
|
0
|
||||||
37
|
37
|
||||||
WPickList
|
WPickList
|
||||||
2
|
2
|
||||||
38
|
38
|
||||||
MItem
|
MItem
|
||||||
3
|
3
|
||||||
*.c
|
*.c
|
||||||
39
|
39
|
||||||
WString
|
WString
|
||||||
4
|
4
|
||||||
COBJ
|
COBJ
|
||||||
40
|
40
|
||||||
WVList
|
WVList
|
||||||
2
|
2
|
||||||
41
|
41
|
||||||
MVState
|
MVState
|
||||||
42
|
42
|
||||||
WString
|
WString
|
||||||
3
|
3
|
||||||
WCC
|
WCC
|
||||||
43
|
43
|
||||||
WString
|
WString
|
||||||
25
|
25
|
||||||
n????Include directories:
|
n????Include directories:
|
||||||
1
|
1
|
||||||
44
|
44
|
||||||
WString
|
WString
|
||||||
39
|
39
|
||||||
"$(%zlib);$(%watcom)/h;$(%watcom)/h/nt"
|
"$(%zlib);$(%watcom)/h;$(%watcom)/h/nt"
|
||||||
0
|
0
|
||||||
45
|
45
|
||||||
MVState
|
MVState
|
||||||
46
|
46
|
||||||
WString
|
WString
|
||||||
3
|
3
|
||||||
WCC
|
WCC
|
||||||
47
|
47
|
||||||
WString
|
WString
|
||||||
25
|
25
|
||||||
n????Include directories:
|
n????Include directories:
|
||||||
0
|
0
|
||||||
48
|
48
|
||||||
WString
|
WString
|
||||||
39
|
39
|
||||||
"$(%zlib);$(%watcom)/h;$(%watcom)/h/nt"
|
"$(%zlib);$(%watcom)/h;$(%watcom)/h/nt"
|
||||||
0
|
0
|
||||||
49
|
49
|
||||||
WVList
|
WVList
|
||||||
0
|
0
|
||||||
-1
|
-1
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
0
|
0
|
||||||
50
|
50
|
||||||
MItem
|
MItem
|
||||||
33
|
33
|
||||||
..\..\contrib\libtests\pngstest.c
|
..\..\contrib\libtests\pngstest.c
|
||||||
51
|
51
|
||||||
WString
|
WString
|
||||||
4
|
4
|
||||||
COBJ
|
COBJ
|
||||||
52
|
52
|
||||||
WVList
|
WVList
|
||||||
0
|
0
|
||||||
53
|
53
|
||||||
WVList
|
WVList
|
||||||
0
|
0
|
||||||
38
|
38
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
0
|
0
|
||||||
|
|
|
@ -1,60 +1,60 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "libpng.vcproj", "{0008960E-E0DD-41A6-8265-00B31DDB4C21}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "libpng.vcproj", "{0008960E-E0DD-41A6-8265-00B31DDB4C21}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{2D4F8105-7D21-454C-9932-B47CAB71A5C0} = {2D4F8105-7D21-454C-9932-B47CAB71A5C0}
|
{2D4F8105-7D21-454C-9932-B47CAB71A5C0} = {2D4F8105-7D21-454C-9932-B47CAB71A5C0}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngtest", "pngtest.vcproj", "{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngtest", "pngtest.vcproj", "{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{0008960E-E0DD-41A6-8265-00B31DDB4C21} = {0008960E-E0DD-41A6-8265-00B31DDB4C21}
|
{0008960E-E0DD-41A6-8265-00B31DDB4C21} = {0008960E-E0DD-41A6-8265-00B31DDB4C21}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib.vcproj", "{2D4F8105-7D21-454C-9932-B47CAB71A5C0}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib.vcproj", "{2D4F8105-7D21-454C-9932-B47CAB71A5C0}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
GlobalSection(SolutionConfiguration) = preSolution
|
||||||
DLL Debug = DLL Debug
|
DLL Debug = DLL Debug
|
||||||
DLL Release = DLL Release
|
DLL Release = DLL Release
|
||||||
DLL VB = DLL VB
|
DLL VB = DLL VB
|
||||||
LIB Debug = LIB Debug
|
LIB Debug = LIB Debug
|
||||||
LIB Release = LIB Release
|
LIB Release = LIB Release
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfiguration) = postSolution
|
GlobalSection(ProjectConfiguration) = postSolution
|
||||||
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
||||||
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.DLL Debug.Build.0 = DLL Debug|Win32
|
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.DLL Debug.Build.0 = DLL Debug|Win32
|
||||||
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.DLL Release.ActiveCfg = DLL Release|Win32
|
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.DLL Release.ActiveCfg = DLL Release|Win32
|
||||||
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.DLL Release.Build.0 = DLL Release|Win32
|
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.DLL Release.Build.0 = DLL Release|Win32
|
||||||
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.DLL VB.ActiveCfg = DLL VB|Win32
|
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.DLL VB.ActiveCfg = DLL VB|Win32
|
||||||
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.DLL VB.Build.0 = DLL VB|Win32
|
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.DLL VB.Build.0 = DLL VB|Win32
|
||||||
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.LIB Debug.ActiveCfg = LIB Debug|Win32
|
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.LIB Debug.ActiveCfg = LIB Debug|Win32
|
||||||
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.LIB Debug.Build.0 = LIB Debug|Win32
|
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.LIB Debug.Build.0 = LIB Debug|Win32
|
||||||
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.LIB Release.ActiveCfg = LIB Release|Win32
|
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.LIB Release.ActiveCfg = LIB Release|Win32
|
||||||
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.LIB Release.Build.0 = LIB Release|Win32
|
{0008960E-E0DD-41A6-8265-00B31DDB4C21}.LIB Release.Build.0 = LIB Release|Win32
|
||||||
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
||||||
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.DLL Debug.Build.0 = DLL Debug|Win32
|
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.DLL Debug.Build.0 = DLL Debug|Win32
|
||||||
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.DLL Release.ActiveCfg = DLL Release|Win32
|
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.DLL Release.ActiveCfg = DLL Release|Win32
|
||||||
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.DLL Release.Build.0 = DLL Release|Win32
|
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.DLL Release.Build.0 = DLL Release|Win32
|
||||||
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.DLL VB.ActiveCfg = DLL VB|Win32
|
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.DLL VB.ActiveCfg = DLL VB|Win32
|
||||||
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.DLL VB.Build.0 = DLL VB|Win32
|
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.DLL VB.Build.0 = DLL VB|Win32
|
||||||
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.LIB Debug.ActiveCfg = LIB Debug|Win32
|
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.LIB Debug.ActiveCfg = LIB Debug|Win32
|
||||||
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.LIB Debug.Build.0 = LIB Debug|Win32
|
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.LIB Debug.Build.0 = LIB Debug|Win32
|
||||||
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.LIB Release.ActiveCfg = LIB Release|Win32
|
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.LIB Release.ActiveCfg = LIB Release|Win32
|
||||||
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.LIB Release.Build.0 = LIB Release|Win32
|
{FD1C2F86-9EEF-47BD-95A4-530917E17FDA}.LIB Release.Build.0 = LIB Release|Win32
|
||||||
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.DLL Debug.ActiveCfg = DLL Debug|Win32
|
||||||
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.DLL Debug.Build.0 = DLL Debug|Win32
|
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.DLL Debug.Build.0 = DLL Debug|Win32
|
||||||
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.DLL Release.ActiveCfg = DLL Release|Win32
|
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.DLL Release.ActiveCfg = DLL Release|Win32
|
||||||
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.DLL Release.Build.0 = DLL Release|Win32
|
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.DLL Release.Build.0 = DLL Release|Win32
|
||||||
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.DLL VB.ActiveCfg = DLL Release|Win32
|
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.DLL VB.ActiveCfg = DLL Release|Win32
|
||||||
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.DLL VB.Build.0 = DLL Release|Win32
|
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.DLL VB.Build.0 = DLL Release|Win32
|
||||||
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.LIB Debug.ActiveCfg = LIB Debug|Win32
|
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.LIB Debug.ActiveCfg = LIB Debug|Win32
|
||||||
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.LIB Debug.Build.0 = LIB Debug|Win32
|
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.LIB Debug.Build.0 = LIB Debug|Win32
|
||||||
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.LIB Release.ActiveCfg = LIB Release|Win32
|
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.LIB Release.ActiveCfg = LIB Release|Win32
|
||||||
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.LIB Release.Build.0 = LIB Release|Win32
|
{2D4F8105-7D21-454C-9932-B47CAB71A5C0}.LIB Release.Build.0 = LIB Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
|
@ -1,419 +1,419 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="7.10"
|
Version="7.10"
|
||||||
Name="libpng"
|
Name="libpng"
|
||||||
RootNamespace="libpng">
|
RootNamespace="libpng">
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"/>
|
Name="Win32"/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="DLL Release|Win32"
|
Name="DLL Release|Win32"
|
||||||
OutputDirectory=".\Win32_DLL_Release"
|
OutputDirectory=".\Win32_DLL_Release"
|
||||||
IntermediateDirectory=".\Win32_DLL_Release"
|
IntermediateDirectory=".\Win32_DLL_Release"
|
||||||
ConfigurationType="2">
|
ConfigurationType="2">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;PNG_BUILD_DLL;ZLIB_DLL;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;PNG_BUILD_DLL;ZLIB_DLL;_CRT_SECURE_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
UsePrecompiledHeader="3"
|
UsePrecompiledHeader="3"
|
||||||
PrecompiledHeaderThrough="pngpriv.h"
|
PrecompiledHeaderThrough="pngpriv.h"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
CompileAs="0"/>
|
CompileAs="0"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/libpng16.dll"
|
OutputFile="$(OutDir)/libpng16.dll"
|
||||||
LinkIncremental="1"/>
|
LinkIncremental="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/>
|
CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="1033"
|
Culture="1033"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib;$(IntDir)"/>
|
AdditionalIncludeDirectories="..\..;..\..\..\zlib;$(IntDir)"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="DLL Debug|Win32"
|
Name="DLL Debug|Win32"
|
||||||
OutputDirectory=".\Win32_DLL_Debug"
|
OutputDirectory=".\Win32_DLL_Debug"
|
||||||
IntermediateDirectory=".\Win32_DLL_Debug"
|
IntermediateDirectory=".\Win32_DLL_Debug"
|
||||||
ConfigurationType="2">
|
ConfigurationType="2">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;DEBUG;PNG_DEBUG=1;PNG_BUILD_DLL;ZLIB_DLL;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;DEBUG;PNG_DEBUG=1;PNG_BUILD_DLL;ZLIB_DLL;_CRT_SECURE_NO_WARNINGS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="3"
|
||||||
UsePrecompiledHeader="3"
|
UsePrecompiledHeader="3"
|
||||||
PrecompiledHeaderThrough="pngpriv.h"
|
PrecompiledHeaderThrough="pngpriv.h"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
CompileAs="0"/>
|
CompileAs="0"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/libpng16d.dll"
|
OutputFile="$(OutDir)/libpng16d.dll"
|
||||||
GenerateDebugInformation="TRUE"/>
|
GenerateDebugInformation="TRUE"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/>
|
CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="_DEBUG,PNG_DEBUG=1"
|
PreprocessorDefinitions="_DEBUG,PNG_DEBUG=1"
|
||||||
Culture="1033"
|
Culture="1033"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib;$(IntDir)"/>
|
AdditionalIncludeDirectories="..\..;..\..\..\zlib;$(IntDir)"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="DLL VB|Win32"
|
Name="DLL VB|Win32"
|
||||||
OutputDirectory=".\Win32_DLL_VB"
|
OutputDirectory=".\Win32_DLL_VB"
|
||||||
IntermediateDirectory=".\Win32_DLL_VB"
|
IntermediateDirectory=".\Win32_DLL_VB"
|
||||||
ConfigurationType="2">
|
ConfigurationType="2">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;PNG_BUILD_DLL;ZLIB_DLL;PNGAPI=__stdcall;PNG_NO_MODULEDEF;PNG_LIBPNG_SPECIALBUILD;PNG_USER_PRIVATEBUILD;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;PNG_BUILD_DLL;ZLIB_DLL;PNGAPI=__stdcall;PNG_NO_MODULEDEF;PNG_LIBPNG_SPECIALBUILD;PNG_USER_PRIVATEBUILD;_CRT_SECURE_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
UsePrecompiledHeader="3"
|
UsePrecompiledHeader="3"
|
||||||
PrecompiledHeaderThrough="pngpriv.h"
|
PrecompiledHeaderThrough="pngpriv.h"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
CompileAs="0"/>
|
CompileAs="0"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/libpng16vb.dll"
|
OutputFile="$(OutDir)/libpng16vb.dll"
|
||||||
LinkIncremental="1"/>
|
LinkIncremental="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/>
|
CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
AdditionalOptions="/d PNG_NO_PEDANTIC_WARNINGS /d PNG_LIBPNG_DLLFNAME_POSTFIX=""""VB"""" /d PNG_LIBPNG_SPECIALBUILD=""""__stdcall calling convention used for exported functions"""""
|
AdditionalOptions="/d PNG_NO_PEDANTIC_WARNINGS /d PNG_LIBPNG_DLLFNAME_POSTFIX=""""VB"""" /d PNG_LIBPNG_SPECIALBUILD=""""__stdcall calling convention used for exported functions"""""
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="1033"
|
Culture="1033"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib;$(IntDir)"/>
|
AdditionalIncludeDirectories="..\..;..\..\..\zlib;$(IntDir)"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="LIB Release|Win32"
|
Name="LIB Release|Win32"
|
||||||
OutputDirectory=".\Win32_LIB_Release"
|
OutputDirectory=".\Win32_LIB_Release"
|
||||||
IntermediateDirectory=".\Win32_LIB_Release"
|
IntermediateDirectory=".\Win32_LIB_Release"
|
||||||
ConfigurationType="4">
|
ConfigurationType="4">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
UsePrecompiledHeader="3"
|
UsePrecompiledHeader="3"
|
||||||
PrecompiledHeaderThrough="pngpriv.h"
|
PrecompiledHeaderThrough="pngpriv.h"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
CompileAs="0"/>
|
CompileAs="0"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLibrarianTool"
|
Name="VCLibrarianTool"
|
||||||
OutputFile="$(OutDir)/libpng.lib"/>
|
OutputFile="$(OutDir)/libpng.lib"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/>
|
CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="LIB Debug|Win32"
|
Name="LIB Debug|Win32"
|
||||||
OutputDirectory=".\Win32_LIB_Debug"
|
OutputDirectory=".\Win32_LIB_Debug"
|
||||||
IntermediateDirectory=".\Win32_LIB_Debug"
|
IntermediateDirectory=".\Win32_LIB_Debug"
|
||||||
ConfigurationType="4">
|
ConfigurationType="4">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;DEBUG;PNG_DEBUG=1;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;DEBUG;PNG_DEBUG=1;_CRT_SECURE_NO_WARNINGS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
UsePrecompiledHeader="3"
|
UsePrecompiledHeader="3"
|
||||||
PrecompiledHeaderThrough="pngpriv.h"
|
PrecompiledHeaderThrough="pngpriv.h"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
CompileAs="0"/>
|
CompileAs="0"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLibrarianTool"
|
Name="VCLibrarianTool"
|
||||||
OutputFile="$(OutDir)/libpngd.lib"/>
|
OutputFile="$(OutDir)/libpngd.lib"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/>
|
CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\png.c">
|
RelativePath="..\..\png.c">
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Release|Win32">
|
Name="DLL Release|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
UsePrecompiledHeader="0"/>
|
UsePrecompiledHeader="0"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Debug|Win32">
|
Name="DLL Debug|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
UsePrecompiledHeader="0"/>
|
UsePrecompiledHeader="0"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL VB|Win32">
|
Name="DLL VB|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
UsePrecompiledHeader="0"/>
|
UsePrecompiledHeader="0"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Release|Win32">
|
Name="LIB Release|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
UsePrecompiledHeader="0"/>
|
UsePrecompiledHeader="0"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Debug|Win32">
|
Name="LIB Debug|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
UsePrecompiledHeader="0"/>
|
UsePrecompiledHeader="0"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngerror.c">
|
RelativePath="..\..\pngerror.c">
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Release|Win32">
|
Name="DLL Release|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
UsePrecompiledHeader="1"/>
|
UsePrecompiledHeader="1"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Debug|Win32">
|
Name="DLL Debug|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
UsePrecompiledHeader="1"/>
|
UsePrecompiledHeader="1"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL VB|Win32">
|
Name="DLL VB|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
UsePrecompiledHeader="1"/>
|
UsePrecompiledHeader="1"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Release|Win32">
|
Name="LIB Release|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
UsePrecompiledHeader="1"/>
|
UsePrecompiledHeader="1"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Debug|Win32">
|
Name="LIB Debug|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
UsePrecompiledHeader="1"/>
|
UsePrecompiledHeader="1"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngget.c">
|
RelativePath="..\..\pngget.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngmem.c">
|
RelativePath="..\..\pngmem.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngpread.c">
|
RelativePath="..\..\pngpread.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngread.c">
|
RelativePath="..\..\pngread.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngrio.c">
|
RelativePath="..\..\pngrio.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngrtran.c">
|
RelativePath="..\..\pngrtran.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngrutil.c">
|
RelativePath="..\..\pngrutil.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngset.c">
|
RelativePath="..\..\pngset.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngtrans.c">
|
RelativePath="..\..\pngtrans.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngwio.c">
|
RelativePath="..\..\pngwio.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngwrite.c">
|
RelativePath="..\..\pngwrite.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngwtran.c">
|
RelativePath="..\..\pngwtran.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngwutil.c">
|
RelativePath="..\..\pngwutil.c">
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl">
|
Filter="h;hpp;hxx;hm;inl">
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\png.h">
|
RelativePath="..\..\png.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngconf.h">
|
RelativePath="..\..\pngconf.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngpriv.h">
|
RelativePath="..\..\pngpriv.h">
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
|
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\scripts\pngwin.rc">
|
RelativePath="..\..\scripts\pngwin.rc">
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Release|Win32"
|
Name="LIB Release|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Debug|Win32"
|
Name="LIB Debug|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\PRJ0041.mak">
|
RelativePath=".\PRJ0041.mak">
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Release|Win32">
|
Name="DLL Release|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Create dummy include files to prevent "Cannot find missing dependency..." warnings."
|
Description="Create dummy include files to prevent "Cannot find missing dependency..." warnings."
|
||||||
CommandLine="nmake -f PRJ0041.mak IntDir=$(IntDir)"
|
CommandLine="nmake -f PRJ0041.mak IntDir=$(IntDir)"
|
||||||
Outputs="$(IntDir)\alloc.h;$(IntDir)\fp.h;$(IntDir)\m68881.h;$(IntDir)\mem.h;$(IntDir)\pngusr.h;$(IntDir)\strings.h;$(IntDir)\unistd.h;$(IntDir)\unixio.h"/>
|
Outputs="$(IntDir)\alloc.h;$(IntDir)\fp.h;$(IntDir)\m68881.h;$(IntDir)\mem.h;$(IntDir)\pngusr.h;$(IntDir)\strings.h;$(IntDir)\unistd.h;$(IntDir)\unixio.h"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Debug|Win32">
|
Name="DLL Debug|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Create dummy include files to prevent "Cannot find missing dependency..." warnings."
|
Description="Create dummy include files to prevent "Cannot find missing dependency..." warnings."
|
||||||
CommandLine="nmake -f PRJ0041.mak IntDir=$(IntDir)"
|
CommandLine="nmake -f PRJ0041.mak IntDir=$(IntDir)"
|
||||||
Outputs="$(IntDir)\alloc.h;$(IntDir)\fp.h;$(IntDir)\m68881.h;$(IntDir)\mem.h;$(IntDir)\pngusr.h;$(IntDir)\strings.h;$(IntDir)\unistd.h;$(IntDir)\unixio.h"/>
|
Outputs="$(IntDir)\alloc.h;$(IntDir)\fp.h;$(IntDir)\m68881.h;$(IntDir)\mem.h;$(IntDir)\pngusr.h;$(IntDir)\strings.h;$(IntDir)\unistd.h;$(IntDir)\unixio.h"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL VB|Win32">
|
Name="DLL VB|Win32">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Create dummy include files to prevent "Cannot find missing dependency..." warnings."
|
Description="Create dummy include files to prevent "Cannot find missing dependency..." warnings."
|
||||||
CommandLine="nmake -f PRJ0041.mak IntDir=$(IntDir)"
|
CommandLine="nmake -f PRJ0041.mak IntDir=$(IntDir)"
|
||||||
Outputs="$(IntDir)\alloc.h;$(IntDir)\fp.h;$(IntDir)\m68881.h;$(IntDir)\mem.h;$(IntDir)\pngusr.h;$(IntDir)\strings.h;$(IntDir)\unistd.h;$(IntDir)\unixio.h"/>
|
Outputs="$(IntDir)\alloc.h;$(IntDir)\fp.h;$(IntDir)\m68881.h;$(IntDir)\mem.h;$(IntDir)\pngusr.h;$(IntDir)\strings.h;$(IntDir)\unistd.h;$(IntDir)\unixio.h"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="README.txt">
|
RelativePath="README.txt">
|
||||||
</File>
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|
|
@ -1,267 +1,267 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="7.10"
|
Version="7.10"
|
||||||
Name="pngtest"
|
Name="pngtest"
|
||||||
RootNamespace="pngtest">
|
RootNamespace="pngtest">
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"/>
|
Name="Win32"/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="DLL Release|Win32"
|
Name="DLL Release|Win32"
|
||||||
OutputDirectory=".\Win32_DLL_Release\Test"
|
OutputDirectory=".\Win32_DLL_Release\Test"
|
||||||
IntermediateDirectory=".\Win32_DLL_Release\Test"
|
IntermediateDirectory=".\Win32_DLL_Release\Test"
|
||||||
ConfigurationType="1">
|
ConfigurationType="1">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;PNG_DLL;PNG_NO_STDIO;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;PNG_DLL;PNG_NO_STDIO;_CRT_SECURE_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
CompileAs="0"/>
|
CompileAs="0"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Testing..."
|
Description="Testing..."
|
||||||
CommandLine="set path=$(OutDir)\..;$(OutDir)\..\ZLib
|
CommandLine="set path=$(OutDir)\..;$(OutDir)\..\ZLib
|
||||||
$(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
$(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
||||||
Outputs="$(IntDir)\pngout.png"/>
|
Outputs="$(IntDir)\pngout.png"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/pngtest.exe"
|
OutputFile="$(OutDir)/pngtest.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SubSystem="1"/>
|
SubSystem="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="DLL Debug|Win32"
|
Name="DLL Debug|Win32"
|
||||||
OutputDirectory=".\Win32_DLL_Debug\Test"
|
OutputDirectory=".\Win32_DLL_Debug\Test"
|
||||||
IntermediateDirectory=".\Win32_DLL_Debug\Test"
|
IntermediateDirectory=".\Win32_DLL_Debug\Test"
|
||||||
ConfigurationType="1">
|
ConfigurationType="1">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;PNG_DLL;PNG_NO_STDIO;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;PNG_DLL;PNG_NO_STDIO;_CRT_SECURE_NO_WARNINGS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="3"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
CompileAs="0"/>
|
CompileAs="0"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Testing..."
|
Description="Testing..."
|
||||||
CommandLine="set path=$(OutDir)\..;$(OutDir)\..\ZLib
|
CommandLine="set path=$(OutDir)\..;$(OutDir)\..\ZLib
|
||||||
$(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
$(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
||||||
Outputs="$(IntDir)\pngout.png"/>
|
Outputs="$(IntDir)\pngout.png"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/pngtest.exe"
|
OutputFile="$(OutDir)/pngtest.exe"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="TRUE"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="DLL VB|Win32"
|
Name="DLL VB|Win32"
|
||||||
OutputDirectory=".\Win32_DLL_VB\Test"
|
OutputDirectory=".\Win32_DLL_VB\Test"
|
||||||
IntermediateDirectory=".\Win32_DLL_VB\Test"
|
IntermediateDirectory=".\Win32_DLL_VB\Test"
|
||||||
ConfigurationType="1">
|
ConfigurationType="1">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;PNG_DLL;PNG_NO_STDIO;PNGAPI=__stdcall;PNG_USER_PRIVATEBUILD;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;PNG_DLL;PNG_NO_STDIO;PNGAPI=__stdcall;PNG_USER_PRIVATEBUILD;_CRT_SECURE_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
WarningLevel="2"
|
WarningLevel="2"
|
||||||
CallingConvention="2"
|
CallingConvention="2"
|
||||||
CompileAs="0"/>
|
CompileAs="0"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Testing..."
|
Description="Testing..."
|
||||||
CommandLine="set path=$(OutDir)\..;$(OutDir)\..\..\Win32_DLL_Release\ZLib
|
CommandLine="set path=$(OutDir)\..;$(OutDir)\..\..\Win32_DLL_Release\ZLib
|
||||||
$(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
$(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
||||||
Outputs="$(IntDir)\pngout.png"/>
|
Outputs="$(IntDir)\pngout.png"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/pngtest.exe"
|
OutputFile="$(OutDir)/pngtest.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
IgnoreDefaultLibraryNames="$(IntDir)\libpng16b.lib"
|
IgnoreDefaultLibraryNames="$(IntDir)\libpng16b.lib"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="LIB Release|Win32"
|
Name="LIB Release|Win32"
|
||||||
OutputDirectory=".\Win32_LIB_Release\Test"
|
OutputDirectory=".\Win32_LIB_Release\Test"
|
||||||
IntermediateDirectory=".\Win32_LIB_Release\Test"
|
IntermediateDirectory=".\Win32_LIB_Release\Test"
|
||||||
ConfigurationType="1">
|
ConfigurationType="1">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
CompileAs="0"/>
|
CompileAs="0"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Testing..."
|
Description="Testing..."
|
||||||
CommandLine="set path=$(OutDir)\..;$(OutDir)\..\ZLib
|
CommandLine="set path=$(OutDir)\..;$(OutDir)\..\ZLib
|
||||||
$(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
$(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
||||||
Outputs="$(IntDir)\pngout.png"/>
|
Outputs="$(IntDir)\pngout.png"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/pngtest.exe"
|
OutputFile="$(OutDir)/pngtest.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="LIB Debug|Win32"
|
Name="LIB Debug|Win32"
|
||||||
OutputDirectory=".\Win32_LIB_Debug\Test"
|
OutputDirectory=".\Win32_LIB_Debug\Test"
|
||||||
IntermediateDirectory=".\Win32_LIB_Debug\Test"
|
IntermediateDirectory=".\Win32_LIB_Debug\Test"
|
||||||
ConfigurationType="1">
|
ConfigurationType="1">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\scripts;..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
CompileAs="0"/>
|
CompileAs="0"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Testing..."
|
Description="Testing..."
|
||||||
CommandLine="set path=$(OutDir)\..;$(OutDir)\..\ZLib
|
CommandLine="set path=$(OutDir)\..;$(OutDir)\..\ZLib
|
||||||
$(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
$(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png"
|
||||||
Outputs="$(IntDir)\pngout.png"/>
|
Outputs="$(IntDir)\pngout.png"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/pngtest.exe"
|
OutputFile="$(OutDir)/pngtest.exe"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="TRUE"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\pngtest.c">
|
RelativePath="..\..\pngtest.c">
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|
|
@ -1,391 +1,391 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="7.10"
|
Version="7.10"
|
||||||
Name="zlib">
|
Name="zlib">
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"/>
|
Name="Win32"/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="DLL Release|Win32"
|
Name="DLL Release|Win32"
|
||||||
OutputDirectory=".\Win32_DLL_Release\ZLib"
|
OutputDirectory=".\Win32_DLL_Release\ZLib"
|
||||||
IntermediateDirectory=".\Win32_DLL_Release\ZLib"
|
IntermediateDirectory=".\Win32_DLL_Release\ZLib"
|
||||||
ConfigurationType="2">
|
ConfigurationType="2">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
CompileAs="1"/>
|
CompileAs="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)\zlib1.dll"
|
OutputFile="$(OutDir)\zlib1.dll"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
ModuleDefinitionFile="..\..\..\zlib\win32\zlib.def"/>
|
ModuleDefinitionFile="..\..\..\zlib\win32\zlib.def"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="1033"/>
|
Culture="1033"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="DLL Debug|Win32"
|
Name="DLL Debug|Win32"
|
||||||
OutputDirectory=".\Win32_DLL_Debug\ZLib"
|
OutputDirectory=".\Win32_DLL_Debug\ZLib"
|
||||||
IntermediateDirectory=".\Win32_DLL_Debug\ZLib"
|
IntermediateDirectory=".\Win32_DLL_Debug\ZLib"
|
||||||
ConfigurationType="2">
|
ConfigurationType="2">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="3"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
CompileAs="1"/>
|
CompileAs="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)\zlib1d.dll"
|
OutputFile="$(OutDir)\zlib1d.dll"
|
||||||
ModuleDefinitionFile="..\..\..\zlib\win32\zlib.def"
|
ModuleDefinitionFile="..\..\..\zlib\win32\zlib.def"
|
||||||
GenerateDebugInformation="TRUE"/>
|
GenerateDebugInformation="TRUE"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="_DEBUG"
|
PreprocessorDefinitions="_DEBUG"
|
||||||
Culture="1033"/>
|
Culture="1033"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCWebDeploymentTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="LIB Release|Win32"
|
Name="LIB Release|Win32"
|
||||||
OutputDirectory=".\Win32_LIB_Release\ZLib"
|
OutputDirectory=".\Win32_LIB_Release\ZLib"
|
||||||
IntermediateDirectory=".\Win32_LIB_Release\ZLib"
|
IntermediateDirectory=".\Win32_LIB_Release\ZLib"
|
||||||
ConfigurationType="4">
|
ConfigurationType="4">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="TRUE"
|
EnableFunctionLevelLinking="TRUE"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
CompileAs="1"/>
|
CompileAs="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLibrarianTool"
|
Name="VCLibrarianTool"
|
||||||
OutputFile="$(OutDir)\zlib.lib"/>
|
OutputFile="$(OutDir)\zlib.lib"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="LIB Debug|Win32"
|
Name="LIB Debug|Win32"
|
||||||
OutputDirectory=".\Win32_LIB_Debug\ZLib"
|
OutputDirectory=".\Win32_LIB_Debug\ZLib"
|
||||||
IntermediateDirectory=".\Win32_LIB_Debug\ZLib"
|
IntermediateDirectory=".\Win32_LIB_Debug\ZLib"
|
||||||
ConfigurationType="4">
|
ConfigurationType="4">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\..\..\zlib"
|
AdditionalIncludeDirectories="..\..\..\zlib"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
CompileAs="1"/>
|
CompileAs="1"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLibrarianTool"
|
Name="VCLibrarianTool"
|
||||||
OutputFile="$(OutDir)\zlibd.lib"/>
|
OutputFile="$(OutDir)\zlibd.lib"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCMIDLTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCPostBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCPreBuildEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCPreLinkEventTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\adler32.c">
|
RelativePath="..\..\..\zlib\adler32.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\compress.c">
|
RelativePath="..\..\..\zlib\compress.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\crc32.c">
|
RelativePath="..\..\..\zlib\crc32.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\deflate.c">
|
RelativePath="..\..\..\zlib\deflate.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\gzlib.c">
|
RelativePath="..\..\..\zlib\gzlib.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\gzclose.c">
|
RelativePath="..\..\..\zlib\gzclose.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\gzread.c">
|
RelativePath="..\..\..\zlib\gzread.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\gzwrite.c">
|
RelativePath="..\..\..\zlib\gzwrite.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\infback.c">
|
RelativePath="..\..\..\zlib\infback.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\inffast.c">
|
RelativePath="..\..\..\zlib\inffast.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\inflate.c">
|
RelativePath="..\..\..\zlib\inflate.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\inftrees.c">
|
RelativePath="..\..\..\zlib\inftrees.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\trees.c">
|
RelativePath="..\..\..\zlib\trees.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\uncompr.c">
|
RelativePath="..\..\..\zlib\uncompr.c">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\win32\zlib.def">
|
RelativePath="..\..\..\zlib\win32\zlib.def">
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Release|Win32"
|
Name="LIB Release|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Debug|Win32"
|
Name="LIB Debug|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\zutil.c">
|
RelativePath="..\..\..\zlib\zutil.c">
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl">
|
Filter="h;hpp;hxx;hm;inl">
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\crc32.h">
|
RelativePath="..\..\..\zlib\crc32.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\deflate.h">
|
RelativePath="..\..\..\zlib\deflate.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\inffast.h">
|
RelativePath="..\..\..\zlib\inffast.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\inffixed.h">
|
RelativePath="..\..\..\zlib\inffixed.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\inflate.h">
|
RelativePath="..\..\..\zlib\inflate.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\inftrees.h">
|
RelativePath="..\..\..\zlib\inftrees.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\trees.h">
|
RelativePath="..\..\..\zlib\trees.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\zconf.h">
|
RelativePath="..\..\..\zlib\zconf.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\zlib.h">
|
RelativePath="..\..\..\zlib\zlib.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\zutil.h">
|
RelativePath="..\..\..\zlib\zutil.h">
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
|
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\win32\zlib1.rc">
|
RelativePath="..\..\..\zlib\win32\zlib1.rc">
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Release|Win32"
|
Name="LIB Release|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Debug|Win32"
|
Name="LIB Debug|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCResourceCompilerTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Assembler Files (Unsupported)"
|
Name="Assembler Files (Unsupported)"
|
||||||
Filter="asm;obj;c;cpp;cxx;h;hpp;hxx">
|
Filter="asm;obj;c;cpp;cxx;h;hpp;hxx">
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\contrib\masmx86\gvmat32.asm">
|
RelativePath="..\..\..\zlib\contrib\masmx86\gvmat32.asm">
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Release|Win32"
|
Name="DLL Release|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Debug|Win32"
|
Name="DLL Debug|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Release|Win32"
|
Name="LIB Release|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Debug|Win32"
|
Name="LIB Debug|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\contrib\masmx86\gvmat32c.c">
|
RelativePath="..\..\..\zlib\contrib\masmx86\gvmat32c.c">
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Release|Win32"
|
Name="DLL Release|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"/>
|
Name="VCCLCompilerTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Debug|Win32"
|
Name="DLL Debug|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"/>
|
Name="VCCLCompilerTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Release|Win32"
|
Name="LIB Release|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"/>
|
Name="VCCLCompilerTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Debug|Win32"
|
Name="LIB Debug|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"/>
|
Name="VCCLCompilerTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\zlib\contrib\masmx86\inffas32.asm">
|
RelativePath="..\..\..\zlib\contrib\masmx86\inffas32.asm">
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Release|Win32"
|
Name="DLL Release|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="DLL Debug|Win32"
|
Name="DLL Debug|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Release|Win32"
|
Name="LIB Release|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="LIB Debug|Win32"
|
Name="LIB Debug|Win32"
|
||||||
ExcludedFromBuild="TRUE">
|
ExcludedFromBuild="TRUE">
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<File
|
<File
|
||||||
RelativePath="README.txt">
|
RelativePath="README.txt">
|
||||||
</File>
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|
|
@ -1,61 +1,61 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{EB33566E-DA7F-4D28-9077-88C0B7C77E35}</ProjectGuid>
|
<ProjectGuid>{EB33566E-DA7F-4D28-9077-88C0B7C77E35}</ProjectGuid>
|
||||||
<RootNamespace>pnglibconf</RootNamespace>
|
<RootNamespace>pnglibconf</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(SolutionDir)\zlib.props" />
|
<Import Project="$(SolutionDir)\zlib.props" />
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<CustomBuildBeforeTargets>Build</CustomBuildBeforeTargets>
|
<CustomBuildBeforeTargets>Build</CustomBuildBeforeTargets>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Command>copy ..\..\..\scripts\pnglibconf.h.prebuilt ..\..\..\pnglibconf.h</Command>
|
<Command>copy ..\..\..\scripts\pnglibconf.h.prebuilt ..\..\..\pnglibconf.h</Command>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Generating pnglibconf.h</Message>
|
<Message>Generating pnglibconf.h</Message>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Outputs>..\..\..\pnglibconf.h</Outputs>
|
<Outputs>..\..\..\pnglibconf.h</Outputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Inputs>..\..\..\scripts\pnglibconf.h.prebuilt</Inputs>
|
<Inputs>..\..\..\scripts\pnglibconf.h.prebuilt</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,219 +1,219 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug Library|Win32">
|
<ProjectConfiguration Include="Debug Library|Win32">
|
||||||
<Configuration>Debug Library</Configuration>
|
<Configuration>Debug Library</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release Library|Win32">
|
<ProjectConfiguration Include="Release Library|Win32">
|
||||||
<Configuration>Release Library</Configuration>
|
<Configuration>Release Library</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{277AC57F-313B-4D06-B119-A3CDB672D2FF}</ProjectGuid>
|
<ProjectGuid>{277AC57F-313B-4D06-B119-A3CDB672D2FF}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>pngstest</RootNamespace>
|
<RootNamespace>pngstest</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(SolutionDir)\zlib.props" />
|
<Import Project="$(SolutionDir)\zlib.props" />
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>libpng16.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing libpng simplified API test program</Message>
|
<Message>Executing libpng simplified API test program</Message>
|
||||||
<Command>"$(OutDir)pngstest.exe" --strict --log --touch "$(IntDir)pngstest.out" ../../../contrib/pngsuite/basn0g01.png ../../../contrib/pngsuite/basn0g02.png ../../../contrib/pngsuite/basn0g04.png ../../../contrib/pngsuite/basn0g08.png ../../../contrib/pngsuite/basn0g16.png ../../../contrib/pngsuite/basn2c08.png ../../../contrib/pngsuite/basn2c16.png ../../../contrib/pngsuite/basn3p01.png ../../../contrib/pngsuite/basn3p02.png ../../../contrib/pngsuite/basn3p04.png ../../../contrib/pngsuite/basn3p08.png ../../../contrib/pngsuite/basn4a08.png ../../../contrib/pngsuite/basn4a16.png ../../../contrib/pngsuite/basn6a08.png ../../../contrib/pngsuite/basn6a16.png ../../../contrib/pngsuite/ftbbn0g01.png ../../../contrib/pngsuite/ftbbn0g02.png ../../../contrib/pngsuite/ftbbn0g04.png ../../../contrib/pngsuite/ftbbn2c16.png ../../../contrib/pngsuite/ftbbn3p08.png ../../../contrib/pngsuite/ftbgn2c16.png ../../../contrib/pngsuite/ftbgn3p08.png ../../../contrib/pngsuite/ftbrn2c08.png ../../../contrib/pngsuite/ftbwn0g16.png ../../../contrib/pngsuite/ftbwn3p08.png ../../../contrib/pngsuite/ftbyn3p08.png ../../../contrib/pngsuite/ftp0n0g08.png ../../../contrib/pngsuite/ftp0n2c08.png ../../../contrib/pngsuite/ftp0n3p08.png ../../../contrib/pngsuite/ftp1n3p08.png</Command>
|
<Command>"$(OutDir)pngstest.exe" --strict --log --touch "$(IntDir)pngstest.out" ../../../contrib/pngsuite/basn0g01.png ../../../contrib/pngsuite/basn0g02.png ../../../contrib/pngsuite/basn0g04.png ../../../contrib/pngsuite/basn0g08.png ../../../contrib/pngsuite/basn0g16.png ../../../contrib/pngsuite/basn2c08.png ../../../contrib/pngsuite/basn2c16.png ../../../contrib/pngsuite/basn3p01.png ../../../contrib/pngsuite/basn3p02.png ../../../contrib/pngsuite/basn3p04.png ../../../contrib/pngsuite/basn3p08.png ../../../contrib/pngsuite/basn4a08.png ../../../contrib/pngsuite/basn4a16.png ../../../contrib/pngsuite/basn6a08.png ../../../contrib/pngsuite/basn6a16.png ../../../contrib/pngsuite/ftbbn0g01.png ../../../contrib/pngsuite/ftbbn0g02.png ../../../contrib/pngsuite/ftbbn0g04.png ../../../contrib/pngsuite/ftbbn2c16.png ../../../contrib/pngsuite/ftbbn3p08.png ../../../contrib/pngsuite/ftbgn2c16.png ../../../contrib/pngsuite/ftbgn3p08.png ../../../contrib/pngsuite/ftbrn2c08.png ../../../contrib/pngsuite/ftbwn0g16.png ../../../contrib/pngsuite/ftbwn3p08.png ../../../contrib/pngsuite/ftbyn3p08.png ../../../contrib/pngsuite/ftp0n0g08.png ../../../contrib/pngsuite/ftp0n2c08.png ../../../contrib/pngsuite/ftp0n3p08.png ../../../contrib/pngsuite/ftp1n3p08.png</Command>
|
||||||
<Outputs>$(IntDir)pngstest.out</Outputs>
|
<Outputs>$(IntDir)pngstest.out</Outputs>
|
||||||
<Inputs>$(OutDir)pngstest.exe</Inputs>
|
<Inputs>$(OutDir)pngstest.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing libpng simplified API test program</Message>
|
<Message>Executing libpng simplified API test program</Message>
|
||||||
<Command>"$(OutDir)pngstest.exe" --strict --log --touch "$(IntDir)pngstest.out" ../../../contrib/pngsuite/basn0g01.png ../../../contrib/pngsuite/basn0g02.png ../../../contrib/pngsuite/basn0g04.png ../../../contrib/pngsuite/basn0g08.png ../../../contrib/pngsuite/basn0g16.png ../../../contrib/pngsuite/basn2c08.png ../../../contrib/pngsuite/basn2c16.png ../../../contrib/pngsuite/basn3p01.png ../../../contrib/pngsuite/basn3p02.png ../../../contrib/pngsuite/basn3p04.png ../../../contrib/pngsuite/basn3p08.png ../../../contrib/pngsuite/basn4a08.png ../../../contrib/pngsuite/basn4a16.png ../../../contrib/pngsuite/basn6a08.png ../../../contrib/pngsuite/basn6a16.png ../../../contrib/pngsuite/ftbbn0g01.png ../../../contrib/pngsuite/ftbbn0g02.png ../../../contrib/pngsuite/ftbbn0g04.png ../../../contrib/pngsuite/ftbbn2c16.png ../../../contrib/pngsuite/ftbbn3p08.png ../../../contrib/pngsuite/ftbgn2c16.png ../../../contrib/pngsuite/ftbgn3p08.png ../../../contrib/pngsuite/ftbrn2c08.png ../../../contrib/pngsuite/ftbwn0g16.png ../../../contrib/pngsuite/ftbwn3p08.png ../../../contrib/pngsuite/ftbyn3p08.png ../../../contrib/pngsuite/ftp0n0g08.png ../../../contrib/pngsuite/ftp0n2c08.png ../../../contrib/pngsuite/ftp0n3p08.png ../../../contrib/pngsuite/ftp1n3p08.png</Command>
|
<Command>"$(OutDir)pngstest.exe" --strict --log --touch "$(IntDir)pngstest.out" ../../../contrib/pngsuite/basn0g01.png ../../../contrib/pngsuite/basn0g02.png ../../../contrib/pngsuite/basn0g04.png ../../../contrib/pngsuite/basn0g08.png ../../../contrib/pngsuite/basn0g16.png ../../../contrib/pngsuite/basn2c08.png ../../../contrib/pngsuite/basn2c16.png ../../../contrib/pngsuite/basn3p01.png ../../../contrib/pngsuite/basn3p02.png ../../../contrib/pngsuite/basn3p04.png ../../../contrib/pngsuite/basn3p08.png ../../../contrib/pngsuite/basn4a08.png ../../../contrib/pngsuite/basn4a16.png ../../../contrib/pngsuite/basn6a08.png ../../../contrib/pngsuite/basn6a16.png ../../../contrib/pngsuite/ftbbn0g01.png ../../../contrib/pngsuite/ftbbn0g02.png ../../../contrib/pngsuite/ftbbn0g04.png ../../../contrib/pngsuite/ftbbn2c16.png ../../../contrib/pngsuite/ftbbn3p08.png ../../../contrib/pngsuite/ftbgn2c16.png ../../../contrib/pngsuite/ftbgn3p08.png ../../../contrib/pngsuite/ftbrn2c08.png ../../../contrib/pngsuite/ftbwn0g16.png ../../../contrib/pngsuite/ftbwn3p08.png ../../../contrib/pngsuite/ftbyn3p08.png ../../../contrib/pngsuite/ftp0n0g08.png ../../../contrib/pngsuite/ftp0n2c08.png ../../../contrib/pngsuite/ftp0n3p08.png ../../../contrib/pngsuite/ftp1n3p08.png</Command>
|
||||||
<Outputs>$(IntDir)pngstest.out</Outputs>
|
<Outputs>$(IntDir)pngstest.out</Outputs>
|
||||||
<Inputs>$(OutDir)pngstest.exe</Inputs>
|
<Inputs>$(OutDir)pngstest.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>libpng16.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing libpng simplified API test program</Message>
|
<Message>Executing libpng simplified API test program</Message>
|
||||||
<Command>"$(OutDir)pngstest.exe" --strict --log --touch "$(IntDir)pngstest.out" ../../../contrib/pngsuite/basn0g01.png ../../../contrib/pngsuite/basn0g02.png ../../../contrib/pngsuite/basn0g04.png ../../../contrib/pngsuite/basn0g08.png ../../../contrib/pngsuite/basn0g16.png ../../../contrib/pngsuite/basn2c08.png ../../../contrib/pngsuite/basn2c16.png ../../../contrib/pngsuite/basn3p01.png ../../../contrib/pngsuite/basn3p02.png ../../../contrib/pngsuite/basn3p04.png ../../../contrib/pngsuite/basn3p08.png ../../../contrib/pngsuite/basn4a08.png ../../../contrib/pngsuite/basn4a16.png ../../../contrib/pngsuite/basn6a08.png ../../../contrib/pngsuite/basn6a16.png ../../../contrib/pngsuite/ftbbn0g01.png ../../../contrib/pngsuite/ftbbn0g02.png ../../../contrib/pngsuite/ftbbn0g04.png ../../../contrib/pngsuite/ftbbn2c16.png ../../../contrib/pngsuite/ftbbn3p08.png ../../../contrib/pngsuite/ftbgn2c16.png ../../../contrib/pngsuite/ftbgn3p08.png ../../../contrib/pngsuite/ftbrn2c08.png ../../../contrib/pngsuite/ftbwn0g16.png ../../../contrib/pngsuite/ftbwn3p08.png ../../../contrib/pngsuite/ftbyn3p08.png ../../../contrib/pngsuite/ftp0n0g08.png ../../../contrib/pngsuite/ftp0n2c08.png ../../../contrib/pngsuite/ftp0n3p08.png ../../../contrib/pngsuite/ftp1n3p08.png</Command>
|
<Command>"$(OutDir)pngstest.exe" --strict --log --touch "$(IntDir)pngstest.out" ../../../contrib/pngsuite/basn0g01.png ../../../contrib/pngsuite/basn0g02.png ../../../contrib/pngsuite/basn0g04.png ../../../contrib/pngsuite/basn0g08.png ../../../contrib/pngsuite/basn0g16.png ../../../contrib/pngsuite/basn2c08.png ../../../contrib/pngsuite/basn2c16.png ../../../contrib/pngsuite/basn3p01.png ../../../contrib/pngsuite/basn3p02.png ../../../contrib/pngsuite/basn3p04.png ../../../contrib/pngsuite/basn3p08.png ../../../contrib/pngsuite/basn4a08.png ../../../contrib/pngsuite/basn4a16.png ../../../contrib/pngsuite/basn6a08.png ../../../contrib/pngsuite/basn6a16.png ../../../contrib/pngsuite/ftbbn0g01.png ../../../contrib/pngsuite/ftbbn0g02.png ../../../contrib/pngsuite/ftbbn0g04.png ../../../contrib/pngsuite/ftbbn2c16.png ../../../contrib/pngsuite/ftbbn3p08.png ../../../contrib/pngsuite/ftbgn2c16.png ../../../contrib/pngsuite/ftbgn3p08.png ../../../contrib/pngsuite/ftbrn2c08.png ../../../contrib/pngsuite/ftbwn0g16.png ../../../contrib/pngsuite/ftbwn3p08.png ../../../contrib/pngsuite/ftbyn3p08.png ../../../contrib/pngsuite/ftp0n0g08.png ../../../contrib/pngsuite/ftp0n2c08.png ../../../contrib/pngsuite/ftp0n3p08.png ../../../contrib/pngsuite/ftp1n3p08.png</Command>
|
||||||
<Outputs>$(IntDir)pngstest.out</Outputs>
|
<Outputs>$(IntDir)pngstest.out</Outputs>
|
||||||
<Inputs>$(OutDir)pngstest.exe</Inputs>
|
<Inputs>$(OutDir)pngstest.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing libpng simplified API test program</Message>
|
<Message>Executing libpng simplified API test program</Message>
|
||||||
<Command>"$(OutDir)pngstest.exe" --strict --log --touch "$(IntDir)pngstest.out" ../../../contrib/pngsuite/basn0g01.png ../../../contrib/pngsuite/basn0g02.png ../../../contrib/pngsuite/basn0g04.png ../../../contrib/pngsuite/basn0g08.png ../../../contrib/pngsuite/basn0g16.png ../../../contrib/pngsuite/basn2c08.png ../../../contrib/pngsuite/basn2c16.png ../../../contrib/pngsuite/basn3p01.png ../../../contrib/pngsuite/basn3p02.png ../../../contrib/pngsuite/basn3p04.png ../../../contrib/pngsuite/basn3p08.png ../../../contrib/pngsuite/basn4a08.png ../../../contrib/pngsuite/basn4a16.png ../../../contrib/pngsuite/basn6a08.png ../../../contrib/pngsuite/basn6a16.png ../../../contrib/pngsuite/ftbbn0g01.png ../../../contrib/pngsuite/ftbbn0g02.png ../../../contrib/pngsuite/ftbbn0g04.png ../../../contrib/pngsuite/ftbbn2c16.png ../../../contrib/pngsuite/ftbbn3p08.png ../../../contrib/pngsuite/ftbgn2c16.png ../../../contrib/pngsuite/ftbgn3p08.png ../../../contrib/pngsuite/ftbrn2c08.png ../../../contrib/pngsuite/ftbwn0g16.png ../../../contrib/pngsuite/ftbwn3p08.png ../../../contrib/pngsuite/ftbyn3p08.png ../../../contrib/pngsuite/ftp0n0g08.png ../../../contrib/pngsuite/ftp0n2c08.png ../../../contrib/pngsuite/ftp0n3p08.png ../../../contrib/pngsuite/ftp1n3p08.png</Command>
|
<Command>"$(OutDir)pngstest.exe" --strict --log --touch "$(IntDir)pngstest.out" ../../../contrib/pngsuite/basn0g01.png ../../../contrib/pngsuite/basn0g02.png ../../../contrib/pngsuite/basn0g04.png ../../../contrib/pngsuite/basn0g08.png ../../../contrib/pngsuite/basn0g16.png ../../../contrib/pngsuite/basn2c08.png ../../../contrib/pngsuite/basn2c16.png ../../../contrib/pngsuite/basn3p01.png ../../../contrib/pngsuite/basn3p02.png ../../../contrib/pngsuite/basn3p04.png ../../../contrib/pngsuite/basn3p08.png ../../../contrib/pngsuite/basn4a08.png ../../../contrib/pngsuite/basn4a16.png ../../../contrib/pngsuite/basn6a08.png ../../../contrib/pngsuite/basn6a16.png ../../../contrib/pngsuite/ftbbn0g01.png ../../../contrib/pngsuite/ftbbn0g02.png ../../../contrib/pngsuite/ftbbn0g04.png ../../../contrib/pngsuite/ftbbn2c16.png ../../../contrib/pngsuite/ftbbn3p08.png ../../../contrib/pngsuite/ftbgn2c16.png ../../../contrib/pngsuite/ftbgn3p08.png ../../../contrib/pngsuite/ftbrn2c08.png ../../../contrib/pngsuite/ftbwn0g16.png ../../../contrib/pngsuite/ftbwn3p08.png ../../../contrib/pngsuite/ftbyn3p08.png ../../../contrib/pngsuite/ftp0n0g08.png ../../../contrib/pngsuite/ftp0n2c08.png ../../../contrib/pngsuite/ftp0n3p08.png ../../../contrib/pngsuite/ftp1n3p08.png</Command>
|
||||||
<Outputs>$(IntDir)pngstest.out</Outputs>
|
<Outputs>$(IntDir)pngstest.out</Outputs>
|
||||||
<Inputs>$(OutDir)pngstest.exe</Inputs>
|
<Inputs>$(OutDir)pngstest.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\..\..\contrib\libtests\pngstest.c" />
|
<ClCompile Include="..\..\..\contrib\libtests\pngstest.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,220 +1,220 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug Library|Win32">
|
<ProjectConfiguration Include="Debug Library|Win32">
|
||||||
<Configuration>Debug Library</Configuration>
|
<Configuration>Debug Library</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release Library|Win32">
|
<ProjectConfiguration Include="Release Library|Win32">
|
||||||
<Configuration>Release Library</Configuration>
|
<Configuration>Release Library</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}</ProjectGuid>
|
<ProjectGuid>{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>pngtest</RootNamespace>
|
<RootNamespace>pngtest</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(SolutionDir)\zlib.props" />
|
<Import Project="$(SolutionDir)\zlib.props" />
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>libpng16.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing PNG test program</Message>
|
<Message>Executing PNG test program</Message>
|
||||||
<Command>"$(OutDir)pngtest.exe" ..\..\..\pngtest.png "$(IntDir)pngout.png"</Command>
|
<Command>"$(OutDir)pngtest.exe" ..\..\..\pngtest.png "$(IntDir)pngout.png"</Command>
|
||||||
<Outputs>$(IntDir)pngout.png</Outputs>
|
<Outputs>$(IntDir)pngout.png</Outputs>
|
||||||
<Inputs>..\..\..\pngtest.png;$(OutDir)pngtest.exe</Inputs>
|
<Inputs>..\..\..\pngtest.png;$(OutDir)pngtest.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing PNG test program</Message>
|
<Message>Executing PNG test program</Message>
|
||||||
<Command>"$(OutDir)pngtest.exe" ..\..\..\pngtest.png "$(IntDir)pngout.png"</Command>
|
<Command>"$(OutDir)pngtest.exe" ..\..\..\pngtest.png "$(IntDir)pngout.png"</Command>
|
||||||
<Outputs>$(IntDir)pngout.png</Outputs>
|
<Outputs>$(IntDir)pngout.png</Outputs>
|
||||||
<Inputs>..\..\..\pngtest.png;$(OutDir)pngtest.exe</Inputs>
|
<Inputs>..\..\..\pngtest.png;$(OutDir)pngtest.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||||
<AdditionalDependencies>libpng16.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing PNG test program</Message>
|
<Message>Executing PNG test program</Message>
|
||||||
<Command>"$(OutDir)pngtest.exe" ..\..\..\pngtest.png "$(IntDir)pngout.png"</Command>
|
<Command>"$(OutDir)pngtest.exe" ..\..\..\pngtest.png "$(IntDir)pngout.png"</Command>
|
||||||
<Outputs>$(IntDir)pngout.png</Outputs>
|
<Outputs>$(IntDir)pngout.png</Outputs>
|
||||||
<Inputs>..\..\..\pngtest.png;$(OutDir)pngtest.exe</Inputs>
|
<Inputs>..\..\..\pngtest.png;$(OutDir)pngtest.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
||||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing PNG test program</Message>
|
<Message>Executing PNG test program</Message>
|
||||||
<Command>$(OutDir)pngtest.exe ..\..\..\pngtest.png $(IntDir)pngout.png</Command>
|
<Command>$(OutDir)pngtest.exe ..\..\..\pngtest.png $(IntDir)pngout.png</Command>
|
||||||
<Command>"$(OutDir)pngtest.exe" ..\..\..\pngtest.png "$(IntDir)pngout.png"</Command>
|
<Command>"$(OutDir)pngtest.exe" ..\..\..\pngtest.png "$(IntDir)pngout.png"</Command>
|
||||||
<Outputs>$(IntDir)pngout.png</Outputs>
|
<Outputs>$(IntDir)pngout.png</Outputs>
|
||||||
<Inputs>..\..\..\pngtest.png;$(OutDir)pngtest.exe</Inputs>
|
<Inputs>..\..\..\pngtest.png;$(OutDir)pngtest.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\..\..\pngtest.c" />
|
<ClCompile Include="..\..\..\pngtest.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,219 +1,219 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug Library|Win32">
|
<ProjectConfiguration Include="Debug Library|Win32">
|
||||||
<Configuration>Debug Library</Configuration>
|
<Configuration>Debug Library</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release Library|Win32">
|
<ProjectConfiguration Include="Release Library|Win32">
|
||||||
<Configuration>Release Library</Configuration>
|
<Configuration>Release Library</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}</ProjectGuid>
|
<ProjectGuid>{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>pngunknown</RootNamespace>
|
<RootNamespace>pngunknown</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(SolutionDir)\zlib.props" />
|
<Import Project="$(SolutionDir)\zlib.props" />
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>libpng16.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing PNG validation program</Message>
|
<Message>Executing PNG validation program</Message>
|
||||||
<Command>"$(OutDir)pngunknown.exe" --strict --default --touch "$(IntDir)pngunknown.out" ../../../pngtest.png</Command>
|
<Command>"$(OutDir)pngunknown.exe" --strict --default --touch "$(IntDir)pngunknown.out" ../../../pngtest.png</Command>
|
||||||
<Outputs>$(IntDir)pngunknown.out</Outputs>
|
<Outputs>$(IntDir)pngunknown.out</Outputs>
|
||||||
<Inputs>$(OutDir)pngunknown.exe</Inputs>
|
<Inputs>$(OutDir)pngunknown.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing PNG validation program</Message>
|
<Message>Executing PNG validation program</Message>
|
||||||
<Command>"$(OutDir)pngunknown.exe" --strict --default --touch "$(IntDir)pngunknown.out" ../../../pngtest.png</Command>
|
<Command>"$(OutDir)pngunknown.exe" --strict --default --touch "$(IntDir)pngunknown.out" ../../../pngtest.png</Command>
|
||||||
<Outputs>$(IntDir)pngunknown.out</Outputs>
|
<Outputs>$(IntDir)pngunknown.out</Outputs>
|
||||||
<Inputs>$(OutDir)pngunknown.exe</Inputs>
|
<Inputs>$(OutDir)pngunknown.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>libpng16.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing PNG validation program</Message>
|
<Message>Executing PNG validation program</Message>
|
||||||
<Command>"$(OutDir)pngunknown.exe" --strict --default --touch "$(IntDir)pngunknown.out" ../../../pngtest.png</Command>
|
<Command>"$(OutDir)pngunknown.exe" --strict --default --touch "$(IntDir)pngunknown.out" ../../../pngtest.png</Command>
|
||||||
<Outputs>$(IntDir)pngunknown.out</Outputs>
|
<Outputs>$(IntDir)pngunknown.out</Outputs>
|
||||||
<Inputs>$(OutDir)pngunknown.exe</Inputs>
|
<Inputs>$(OutDir)pngunknown.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing PNG validation program</Message>
|
<Message>Executing PNG validation program</Message>
|
||||||
<Command>"$(OutDir)pngunknown.exe" --strict --default --touch "$(IntDir)pngunknown.out" ../../../pngtest.png</Command>
|
<Command>"$(OutDir)pngunknown.exe" --strict --default --touch "$(IntDir)pngunknown.out" ../../../pngtest.png</Command>
|
||||||
<Outputs>$(IntDir)pngunknown.out</Outputs>
|
<Outputs>$(IntDir)pngunknown.out</Outputs>
|
||||||
<Inputs>$(OutDir)pngunknown.exe</Inputs>
|
<Inputs>$(OutDir)pngunknown.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\..\..\contrib\libtests\pngunknown.c" />
|
<ClCompile Include="..\..\..\contrib\libtests\pngunknown.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,219 +1,219 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug Library|Win32">
|
<ProjectConfiguration Include="Debug Library|Win32">
|
||||||
<Configuration>Debug Library</Configuration>
|
<Configuration>Debug Library</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release Library|Win32">
|
<ProjectConfiguration Include="Release Library|Win32">
|
||||||
<Configuration>Release Library</Configuration>
|
<Configuration>Release Library</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}</ProjectGuid>
|
<ProjectGuid>{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>pngvalid</RootNamespace>
|
<RootNamespace>pngvalid</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(SolutionDir)\zlib.props" />
|
<Import Project="$(SolutionDir)\zlib.props" />
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
<CustomBuildAfterTargets />
|
<CustomBuildAfterTargets />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing PNG validation program</Message>
|
<Message>Executing PNG validation program</Message>
|
||||||
<Command>"$(OutDir)pngvalid.exe" --touch "$(IntDir)pngvalid.out"</Command>
|
<Command>"$(OutDir)pngvalid.exe" --touch "$(IntDir)pngvalid.out"</Command>
|
||||||
<Outputs>$(IntDir)pngvalid.out</Outputs>
|
<Outputs>$(IntDir)pngvalid.out</Outputs>
|
||||||
<Inputs>$(OutDir)pngvalid.exe</Inputs>
|
<Inputs>$(OutDir)pngvalid.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing PNG validation program</Message>
|
<Message>Executing PNG validation program</Message>
|
||||||
<Command>"$(OutDir)pngvalid.exe" --touch "$(IntDir)pngvalid.out"</Command>
|
<Command>"$(OutDir)pngvalid.exe" --touch "$(IntDir)pngvalid.out"</Command>
|
||||||
<Outputs>$(IntDir)pngvalid.out</Outputs>
|
<Outputs>$(IntDir)pngvalid.out</Outputs>
|
||||||
<Inputs>$(OutDir)pngvalid.exe</Inputs>
|
<Inputs>$(OutDir)pngvalid.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing PNG validation program</Message>
|
<Message>Executing PNG validation program</Message>
|
||||||
<Command>"$(OutDir)pngvalid.exe" --touch "$(IntDir)pngvalid.out"</Command>
|
<Command>"$(OutDir)pngvalid.exe" --touch "$(IntDir)pngvalid.out"</Command>
|
||||||
<Outputs>$(IntDir)pngvalid.out</Outputs>
|
<Outputs>$(IntDir)pngvalid.out</Outputs>
|
||||||
<Inputs>$(OutDir)pngvalid.exe</Inputs>
|
<Inputs>$(OutDir)pngvalid.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level4</WarningLevel>
|
<WarningLevel>Level4</WarningLevel>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4127</DisableSpecificWarnings>
|
||||||
<CompileAsManaged>false</CompileAsManaged>
|
<CompileAsManaged>false</CompileAsManaged>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<StringPooling>true</StringPooling>
|
<StringPooling>true</StringPooling>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Console</SubSystem>
|
<SubSystem>Console</SubSystem>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
<AdditionalDependencies>libpng16.lib;zlib.lib</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories>
|
||||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||||
</Link>
|
</Link>
|
||||||
<CustomBuildStep>
|
<CustomBuildStep>
|
||||||
<Message>Executing PNG validation program</Message>
|
<Message>Executing PNG validation program</Message>
|
||||||
<Command>"$(OutDir)pngvalid.exe" --touch "$(IntDir)pngvalid.out"</Command>
|
<Command>"$(OutDir)pngvalid.exe" --touch "$(IntDir)pngvalid.out"</Command>
|
||||||
<Outputs>$(IntDir)pngvalid.out</Outputs>
|
<Outputs>$(IntDir)pngvalid.out</Outputs>
|
||||||
<Inputs>$(OutDir)pngvalid.exe</Inputs>
|
<Inputs>$(OutDir)pngvalid.exe</Inputs>
|
||||||
</CustomBuildStep>
|
</CustomBuildStep>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\..\..\contrib\libtests\pngvalid.c" />
|
<ClCompile Include="..\..\..\contrib\libtests\pngvalid.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,109 +1,109 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||||
# Visual Studio 2010
|
# Visual Studio 2010
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib\zlib.vcxproj", "{60F89955-91C6-3A36-8000-13C592FEC2DF}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib\zlib.vcxproj", "{60F89955-91C6-3A36-8000-13C592FEC2DF}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pnglibconf", "pnglibconf\pnglibconf.vcxproj", "{EB33566E-DA7F-4D28-9077-88C0B7C77E35}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pnglibconf", "pnglibconf\pnglibconf.vcxproj", "{EB33566E-DA7F-4D28-9077-88C0B7C77E35}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "libpng\libpng.vcxproj", "{D6973076-9317-4EF2-A0B8-B7A18AC0713E}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "libpng\libpng.vcxproj", "{D6973076-9317-4EF2-A0B8-B7A18AC0713E}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF}
|
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF}
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35}
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngtest", "pngtest\pngtest.vcxproj", "{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngtest", "pngtest\pngtest.vcxproj", "{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF}
|
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF}
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35}
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35}
|
||||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {D6973076-9317-4EF2-A0B8-B7A18AC0713E}
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {D6973076-9317-4EF2-A0B8-B7A18AC0713E}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngvalid", "pngvalid\pngvalid.vcxproj", "{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngvalid", "pngvalid\pngvalid.vcxproj", "{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF}
|
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF}
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35}
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35}
|
||||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {D6973076-9317-4EF2-A0B8-B7A18AC0713E}
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {D6973076-9317-4EF2-A0B8-B7A18AC0713E}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngstest", "pngstest\pngstest.vcxproj", "{277AC57F-313B-4D06-B119-A3CDB672D2FF}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngstest", "pngstest\pngstest.vcxproj", "{277AC57F-313B-4D06-B119-A3CDB672D2FF}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF}
|
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF}
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35}
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35}
|
||||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {D6973076-9317-4EF2-A0B8-B7A18AC0713E}
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {D6973076-9317-4EF2-A0B8-B7A18AC0713E}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngunknown", "pngunknown\pngunknown.vcxproj", "{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngunknown", "pngunknown\pngunknown.vcxproj", "{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF}
|
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF}
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35}
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35}
|
||||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {D6973076-9317-4EF2-A0B8-B7A18AC0713E}
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {D6973076-9317-4EF2-A0B8-B7A18AC0713E}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug Library|Win32 = Debug Library|Win32
|
Debug Library|Win32 = Debug Library|Win32
|
||||||
Debug|Win32 = Debug|Win32
|
Debug|Win32 = Debug|Win32
|
||||||
Release Library|Win32 = Release Library|Win32
|
Release Library|Win32 = Release Library|Win32
|
||||||
Release|Win32 = Release|Win32
|
Release|Win32 = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
||||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
||||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|Win32.ActiveCfg = Debug|Win32
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|Win32.Build.0 = Debug|Win32
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
||||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release Library|Win32.Build.0 = Release Library|Win32
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release Library|Win32.Build.0 = Release Library|Win32
|
||||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|Win32.ActiveCfg = Release|Win32
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|Win32.Build.0 = Release|Win32
|
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|Win32.Build.0 = Release|Win32
|
||||||
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
||||||
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
||||||
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Debug|Win32.ActiveCfg = Debug|Win32
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Debug|Win32.Build.0 = Debug|Win32
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
||||||
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release Library|Win32.Build.0 = Release Library|Win32
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release Library|Win32.Build.0 = Release Library|Win32
|
||||||
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release|Win32.ActiveCfg = Release|Win32
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release|Win32.Build.0 = Release|Win32
|
{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release|Win32.Build.0 = Release|Win32
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug|Win32.ActiveCfg = Debug|Win32
|
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug|Win32.Build.0 = Debug|Win32
|
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release Library|Win32.Build.0 = Release Library|Win32
|
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release Library|Win32.Build.0 = Release Library|Win32
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release|Win32.ActiveCfg = Release|Win32
|
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release|Win32.Build.0 = Release|Win32
|
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release|Win32.Build.0 = Release|Win32
|
||||||
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
||||||
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
||||||
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Debug|Win32.ActiveCfg = Debug|Win32
|
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Debug|Win32.Build.0 = Debug|Win32
|
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
||||||
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Release Library|Win32.Build.0 = Release Library|Win32
|
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Release Library|Win32.Build.0 = Release Library|Win32
|
||||||
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Release|Win32.ActiveCfg = Release|Win32
|
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Release|Win32.Build.0 = Release|Win32
|
{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Release|Win32.Build.0 = Release|Win32
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Debug Library|Win32.ActiveCfg = Release|Win32
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Debug Library|Win32.ActiveCfg = Release|Win32
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Debug Library|Win32.Build.0 = Release|Win32
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Debug Library|Win32.Build.0 = Release|Win32
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Debug|Win32.ActiveCfg = Release|Win32
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Debug|Win32.ActiveCfg = Release|Win32
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Debug|Win32.Build.0 = Release|Win32
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Debug|Win32.Build.0 = Release|Win32
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Release Library|Win32.ActiveCfg = Release|Win32
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Release Library|Win32.ActiveCfg = Release|Win32
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Release Library|Win32.Build.0 = Release|Win32
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Release Library|Win32.Build.0 = Release|Win32
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Release|Win32.ActiveCfg = Release|Win32
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Release|Win32.Build.0 = Release|Win32
|
{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Release|Win32.Build.0 = Release|Win32
|
||||||
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
||||||
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
||||||
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Debug|Win32.ActiveCfg = Debug|Win32
|
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Debug|Win32.Build.0 = Debug|Win32
|
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
||||||
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Release Library|Win32.Build.0 = Release Library|Win32
|
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Release Library|Win32.Build.0 = Release Library|Win32
|
||||||
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Release|Win32.ActiveCfg = Release|Win32
|
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Release|Win32.Build.0 = Release|Win32
|
{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Release|Win32.Build.0 = Release|Win32
|
||||||
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Debug Library|Win32.ActiveCfg = Debug Library|Win32
|
||||||
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Debug Library|Win32.Build.0 = Debug Library|Win32
|
||||||
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Debug|Win32.ActiveCfg = Debug|Win32
|
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Debug|Win32.Build.0 = Debug|Win32
|
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Release Library|Win32.ActiveCfg = Release Library|Win32
|
||||||
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Release Library|Win32.Build.0 = Release Library|Win32
|
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Release Library|Win32.Build.0 = Release Library|Win32
|
||||||
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Release|Win32.ActiveCfg = Release|Win32
|
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Release|Win32.Build.0 = Release|Win32
|
{C5D3156C-8C8C-4936-B35F-2B829BA36FEC}.Release|Win32.Build.0 = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
|
@ -1,169 +1,169 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug Library|Win32">
|
<ProjectConfiguration Include="Debug Library|Win32">
|
||||||
<Configuration>Debug Library</Configuration>
|
<Configuration>Debug Library</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release Library|Win32">
|
<ProjectConfiguration Include="Release Library|Win32">
|
||||||
<Configuration>Release Library</Configuration>
|
<Configuration>Release Library</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="$(ZLibSrcDir)\adler32.c" />
|
<ClCompile Include="$(ZLibSrcDir)\adler32.c" />
|
||||||
<ClCompile Include="$(ZLibSrcDir)\compress.c" />
|
<ClCompile Include="$(ZLibSrcDir)\compress.c" />
|
||||||
<ClCompile Include="$(ZLibSrcDir)\crc32.c" />
|
<ClCompile Include="$(ZLibSrcDir)\crc32.c" />
|
||||||
<ClCompile Include="$(ZLibSrcDir)\deflate.c" />
|
<ClCompile Include="$(ZLibSrcDir)\deflate.c" />
|
||||||
<ClCompile Include="$(ZLibSrcDir)\infback.c" />
|
<ClCompile Include="$(ZLibSrcDir)\infback.c" />
|
||||||
<ClCompile Include="$(ZLibSrcDir)\inffast.c" />
|
<ClCompile Include="$(ZLibSrcDir)\inffast.c" />
|
||||||
<ClCompile Include="$(ZLibSrcDir)\inflate.c" />
|
<ClCompile Include="$(ZLibSrcDir)\inflate.c" />
|
||||||
<ClCompile Include="$(ZLibSrcDir)\inftrees.c" />
|
<ClCompile Include="$(ZLibSrcDir)\inftrees.c" />
|
||||||
<ClCompile Include="$(ZLibSrcDir)\trees.c" />
|
<ClCompile Include="$(ZLibSrcDir)\trees.c" />
|
||||||
<ClCompile Include="$(ZLibSrcDir)\uncompr.c" />
|
<ClCompile Include="$(ZLibSrcDir)\uncompr.c" />
|
||||||
<ClCompile Include="$(ZLibSrcDir)\zutil.c" />
|
<ClCompile Include="$(ZLibSrcDir)\zutil.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{60F89955-91C6-3A36-8000-13C592FEC2DF}</ProjectGuid>
|
<ProjectGuid>{60F89955-91C6-3A36-8000-13C592FEC2DF}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>zlib</RootNamespace>
|
<RootNamespace>zlib</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(SolutionDir)\zlib.props" />
|
<Import Project="$(SolutionDir)\zlib.props" />
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<LinkIncremental>true</LinkIncremental>
|
<LinkIncremental>true</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;Z_SOLO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;Z_SOLO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
<WarningLevel>TurnOffAllWarnings</WarningLevel>
|
<WarningLevel>TurnOffAllWarnings</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;Z_SOLO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;Z_SOLO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<WarningLevel>TurnOffAllWarnings</WarningLevel>
|
<WarningLevel>TurnOffAllWarnings</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;Z_SOLO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;Z_SOLO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
</Link>
|
</Link>
|
||||||
<Lib>
|
<Lib>
|
||||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
||||||
</Lib>
|
</Lib>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||||
<BrowseInformation>true</BrowseInformation>
|
<BrowseInformation>true</BrowseInformation>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<TreatWarningAsError>true</TreatWarningAsError>
|
<TreatWarningAsError>true</TreatWarningAsError>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;Z_SOLO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;Z_SOLO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
</Link>
|
</Link>
|
||||||
<Lib>
|
<Lib>
|
||||||
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
<LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
|
||||||
</Lib>
|
</Lib>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,87 +1,87 @@
|
||||||
# makefile for libpng using gcc (generic, static library)
|
# makefile for libpng using gcc (generic, static library)
|
||||||
# Copyright (C) 2008, 2014 Glenn Randers-Pehrson
|
# Copyright (C) 2008, 2014 Glenn Randers-Pehrson
|
||||||
# Copyright (C) 2000 Cosmin Truta
|
# Copyright (C) 2000 Cosmin Truta
|
||||||
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
|
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
|
||||||
#
|
#
|
||||||
# This code is released under the libpng license.
|
# This code is released under the libpng license.
|
||||||
# For conditions of distribution and use, see the disclaimer
|
# For conditions of distribution and use, see the disclaimer
|
||||||
# and license in png.h
|
# and license in png.h
|
||||||
|
|
||||||
# Location of the zlib library and include files
|
# Location of the zlib library and include files
|
||||||
ZLIBINC = ../zlib
|
ZLIBINC = ../zlib
|
||||||
ZLIBLIB = ../zlib
|
ZLIBLIB = ../zlib
|
||||||
|
|
||||||
# Compiler, linker, lib and other tools
|
# Compiler, linker, lib and other tools
|
||||||
CC = gcc
|
CC = gcc
|
||||||
LD = $(CC)
|
LD = $(CC)
|
||||||
AR_RC = ar rcs
|
AR_RC = ar rcs
|
||||||
RANLIB = ranlib
|
RANLIB = ranlib
|
||||||
CP = cp
|
CP = cp
|
||||||
RM_F = rm -f
|
RM_F = rm -f
|
||||||
|
|
||||||
WARNMORE = -Wwrite-strings -Wpointer-arith -Wshadow \
|
WARNMORE = -Wwrite-strings -Wpointer-arith -Wshadow \
|
||||||
-Wmissing-declarations -Wtraditional -Wcast-align \
|
-Wmissing-declarations -Wtraditional -Wcast-align \
|
||||||
-Wstrict-prototypes -Wmissing-prototypes # -Wconversion
|
-Wstrict-prototypes -Wmissing-prototypes # -Wconversion
|
||||||
CPPFLAGS = -I$(ZLIBINC) # -DPNG_DEBUG=5
|
CPPFLAGS = -I$(ZLIBINC) # -DPNG_DEBUG=5
|
||||||
CFLAGS = -W -Wall -O2 # $(WARNMORE) -g
|
CFLAGS = -W -Wall -O2 # $(WARNMORE) -g
|
||||||
LDFLAGS =
|
LDFLAGS =
|
||||||
LIBS = -lz -lm
|
LIBS = -lz -lm
|
||||||
|
|
||||||
# File extensions
|
# File extensions
|
||||||
EXEEXT =
|
EXEEXT =
|
||||||
|
|
||||||
# Pre-built configuration
|
# Pre-built configuration
|
||||||
# See scripts/pnglibconf.mak for more options
|
# See scripts/pnglibconf.mak for more options
|
||||||
PNGLIBCONF_H_PREBUILT = scripts/pnglibconf.h.prebuilt
|
PNGLIBCONF_H_PREBUILT = scripts/pnglibconf.h.prebuilt
|
||||||
|
|
||||||
# Variables
|
# Variables
|
||||||
OBJS = png.o pngerror.o pngget.o pngmem.o pngpread.o \
|
OBJS = png.o pngerror.o pngget.o pngmem.o pngpread.o \
|
||||||
pngread.o pngrio.o pngrtran.o pngrutil.o pngset.o \
|
pngread.o pngrio.o pngrtran.o pngrutil.o pngset.o \
|
||||||
pngtrans.o pngwio.o pngwrite.o pngwtran.o pngwutil.o
|
pngtrans.o pngwio.o pngwrite.o pngwtran.o pngwutil.o
|
||||||
|
|
||||||
# Targets
|
# Targets
|
||||||
all: static
|
all: static
|
||||||
|
|
||||||
pnglibconf.h: $(PNGLIBCONF_H_PREBUILT)
|
pnglibconf.h: $(PNGLIBCONF_H_PREBUILT)
|
||||||
$(CP) $(PNGLIBCONF_H_PREBUILT) $@
|
$(CP) $(PNGLIBCONF_H_PREBUILT) $@
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
|
$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
|
||||||
|
|
||||||
static: libpng.a pngtest$(EXEEXT)
|
static: libpng.a pngtest$(EXEEXT)
|
||||||
|
|
||||||
shared:
|
shared:
|
||||||
@echo This is a generic makefile that cannot create shared libraries.
|
@echo This is a generic makefile that cannot create shared libraries.
|
||||||
@echo Please use a configuration that is specific to your platform.
|
@echo Please use a configuration that is specific to your platform.
|
||||||
@false
|
@false
|
||||||
|
|
||||||
libpng.a: $(OBJS)
|
libpng.a: $(OBJS)
|
||||||
$(AR_RC) $@ $(OBJS)
|
$(AR_RC) $@ $(OBJS)
|
||||||
$(RANLIB) $@
|
$(RANLIB) $@
|
||||||
|
|
||||||
test: pngtest$(EXEEXT)
|
test: pngtest$(EXEEXT)
|
||||||
./pngtest$(EXEEXT)
|
./pngtest$(EXEEXT)
|
||||||
|
|
||||||
pngtest$(EXEEXT): pngtest.o libpng.a
|
pngtest$(EXEEXT): pngtest.o libpng.a
|
||||||
$(LD) $(LDFLAGS) -L$(ZLIBLIB) -o $@ pngtest.o libpng.a $(LIBS)
|
$(LD) $(LDFLAGS) -L$(ZLIBLIB) -o $@ pngtest.o libpng.a $(LIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM_F) *.o libpng.a pngtest$(EXEEXT) pngout.png pnglibconf.h
|
$(RM_F) *.o libpng.a pngtest$(EXEEXT) pngout.png pnglibconf.h
|
||||||
|
|
||||||
png.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
png.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngerror.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngerror.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngget.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngget.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngmem.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngmem.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngpread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngpread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngrio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngrio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngrtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngrtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngrutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngrutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngset.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngset.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngtrans.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngtrans.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngwio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngwio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngwrite.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngwrite.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngwtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngwtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
pngwutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
pngwutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
||||||
|
|
||||||
pngtest.o: png.h pngconf.h pnglibconf.h
|
pngtest.o: png.h pngconf.h pnglibconf.h
|
||||||
|
|
|
@ -1,240 +1,240 @@
|
||||||
# Doxyfile 1.4.6
|
# Doxyfile 1.4.6
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Project related configuration options
|
# Project related configuration options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
PROJECT_NAME = PortAudio
|
PROJECT_NAME = PortAudio
|
||||||
PROJECT_NUMBER = 2.0
|
PROJECT_NUMBER = 2.0
|
||||||
OUTPUT_DIRECTORY = ./doc/
|
OUTPUT_DIRECTORY = ./doc/
|
||||||
CREATE_SUBDIRS = NO
|
CREATE_SUBDIRS = NO
|
||||||
OUTPUT_LANGUAGE = English
|
OUTPUT_LANGUAGE = English
|
||||||
USE_WINDOWS_ENCODING = NO
|
USE_WINDOWS_ENCODING = NO
|
||||||
BRIEF_MEMBER_DESC = YES
|
BRIEF_MEMBER_DESC = YES
|
||||||
REPEAT_BRIEF = YES
|
REPEAT_BRIEF = YES
|
||||||
ABBREVIATE_BRIEF = "The $name class" \
|
ABBREVIATE_BRIEF = "The $name class" \
|
||||||
"The $name widget" \
|
"The $name widget" \
|
||||||
"The $name file" \
|
"The $name file" \
|
||||||
is \
|
is \
|
||||||
provides \
|
provides \
|
||||||
specifies \
|
specifies \
|
||||||
contains \
|
contains \
|
||||||
represents \
|
represents \
|
||||||
a \
|
a \
|
||||||
an \
|
an \
|
||||||
the
|
the
|
||||||
ALWAYS_DETAILED_SEC = NO
|
ALWAYS_DETAILED_SEC = NO
|
||||||
INLINE_INHERITED_MEMB = NO
|
INLINE_INHERITED_MEMB = NO
|
||||||
FULL_PATH_NAMES = NO
|
FULL_PATH_NAMES = NO
|
||||||
STRIP_FROM_PATH =
|
STRIP_FROM_PATH =
|
||||||
STRIP_FROM_INC_PATH =
|
STRIP_FROM_INC_PATH =
|
||||||
SHORT_NAMES = NO
|
SHORT_NAMES = NO
|
||||||
JAVADOC_AUTOBRIEF = NO
|
JAVADOC_AUTOBRIEF = NO
|
||||||
MULTILINE_CPP_IS_BRIEF = NO
|
MULTILINE_CPP_IS_BRIEF = NO
|
||||||
DETAILS_AT_TOP = NO
|
DETAILS_AT_TOP = NO
|
||||||
INHERIT_DOCS = YES
|
INHERIT_DOCS = YES
|
||||||
SEPARATE_MEMBER_PAGES = NO
|
SEPARATE_MEMBER_PAGES = NO
|
||||||
TAB_SIZE = 8
|
TAB_SIZE = 8
|
||||||
ALIASES =
|
ALIASES =
|
||||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||||
OPTIMIZE_OUTPUT_JAVA = NO
|
OPTIMIZE_OUTPUT_JAVA = NO
|
||||||
BUILTIN_STL_SUPPORT = NO
|
BUILTIN_STL_SUPPORT = NO
|
||||||
DISTRIBUTE_GROUP_DOC = NO
|
DISTRIBUTE_GROUP_DOC = NO
|
||||||
SUBGROUPING = YES
|
SUBGROUPING = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Build related configuration options
|
# Build related configuration options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
EXTRACT_ALL = NO
|
EXTRACT_ALL = NO
|
||||||
EXTRACT_PRIVATE = NO
|
EXTRACT_PRIVATE = NO
|
||||||
EXTRACT_STATIC = NO
|
EXTRACT_STATIC = NO
|
||||||
EXTRACT_LOCAL_CLASSES = YES
|
EXTRACT_LOCAL_CLASSES = YES
|
||||||
EXTRACT_LOCAL_METHODS = NO
|
EXTRACT_LOCAL_METHODS = NO
|
||||||
HIDE_UNDOC_MEMBERS = NO
|
HIDE_UNDOC_MEMBERS = NO
|
||||||
HIDE_UNDOC_CLASSES = NO
|
HIDE_UNDOC_CLASSES = NO
|
||||||
HIDE_FRIEND_COMPOUNDS = NO
|
HIDE_FRIEND_COMPOUNDS = NO
|
||||||
HIDE_IN_BODY_DOCS = NO
|
HIDE_IN_BODY_DOCS = NO
|
||||||
INTERNAL_DOCS = NO
|
INTERNAL_DOCS = NO
|
||||||
CASE_SENSE_NAMES = YES
|
CASE_SENSE_NAMES = YES
|
||||||
HIDE_SCOPE_NAMES = NO
|
HIDE_SCOPE_NAMES = NO
|
||||||
SHOW_INCLUDE_FILES = YES
|
SHOW_INCLUDE_FILES = YES
|
||||||
INLINE_INFO = YES
|
INLINE_INFO = YES
|
||||||
SORT_MEMBER_DOCS = YES
|
SORT_MEMBER_DOCS = YES
|
||||||
SORT_BRIEF_DOCS = NO
|
SORT_BRIEF_DOCS = NO
|
||||||
SORT_BY_SCOPE_NAME = NO
|
SORT_BY_SCOPE_NAME = NO
|
||||||
GENERATE_TODOLIST = NO
|
GENERATE_TODOLIST = NO
|
||||||
GENERATE_TESTLIST = NO
|
GENERATE_TESTLIST = NO
|
||||||
GENERATE_BUGLIST = NO
|
GENERATE_BUGLIST = NO
|
||||||
GENERATE_DEPRECATEDLIST= YES
|
GENERATE_DEPRECATEDLIST= YES
|
||||||
ENABLED_SECTIONS =
|
ENABLED_SECTIONS =
|
||||||
MAX_INITIALIZER_LINES = 30
|
MAX_INITIALIZER_LINES = 30
|
||||||
SHOW_USED_FILES = YES
|
SHOW_USED_FILES = YES
|
||||||
SHOW_DIRECTORIES = YES
|
SHOW_DIRECTORIES = YES
|
||||||
FILE_VERSION_FILTER =
|
FILE_VERSION_FILTER =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to warning and progress messages
|
# configuration options related to warning and progress messages
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
QUIET = NO
|
QUIET = NO
|
||||||
WARNINGS = YES
|
WARNINGS = YES
|
||||||
WARN_IF_UNDOCUMENTED = YES
|
WARN_IF_UNDOCUMENTED = YES
|
||||||
WARN_IF_DOC_ERROR = YES
|
WARN_IF_DOC_ERROR = YES
|
||||||
WARN_NO_PARAMDOC = NO
|
WARN_NO_PARAMDOC = NO
|
||||||
WARN_FORMAT = "$file:$line: $text"
|
WARN_FORMAT = "$file:$line: $text"
|
||||||
WARN_LOGFILE =
|
WARN_LOGFILE =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the input files
|
# configuration options related to the input files
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
INPUT = doc/src \
|
INPUT = doc/src \
|
||||||
include \
|
include \
|
||||||
bindings/java \
|
bindings/java \
|
||||||
examples
|
examples
|
||||||
FILE_PATTERNS = *.h \
|
FILE_PATTERNS = *.h \
|
||||||
*.c \
|
*.c \
|
||||||
*.cpp \
|
*.cpp \
|
||||||
*.java \
|
*.java \
|
||||||
*.dox
|
*.dox
|
||||||
RECURSIVE = YES
|
RECURSIVE = YES
|
||||||
EXCLUDE = src/hostapi/wasapi/mingw-include
|
EXCLUDE = src/hostapi/wasapi/mingw-include
|
||||||
EXCLUDE_SYMLINKS = NO
|
EXCLUDE_SYMLINKS = NO
|
||||||
EXCLUDE_PATTERNS =
|
EXCLUDE_PATTERNS =
|
||||||
EXAMPLE_PATH =
|
EXAMPLE_PATH =
|
||||||
EXAMPLE_PATTERNS =
|
EXAMPLE_PATTERNS =
|
||||||
EXAMPLE_RECURSIVE = NO
|
EXAMPLE_RECURSIVE = NO
|
||||||
IMAGE_PATH = doc/src/images
|
IMAGE_PATH = doc/src/images
|
||||||
INPUT_FILTER =
|
INPUT_FILTER =
|
||||||
FILTER_PATTERNS =
|
FILTER_PATTERNS =
|
||||||
FILTER_SOURCE_FILES = NO
|
FILTER_SOURCE_FILES = NO
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to source browsing
|
# configuration options related to source browsing
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
SOURCE_BROWSER = YES
|
SOURCE_BROWSER = YES
|
||||||
INLINE_SOURCES = NO
|
INLINE_SOURCES = NO
|
||||||
STRIP_CODE_COMMENTS = YES
|
STRIP_CODE_COMMENTS = YES
|
||||||
REFERENCED_BY_RELATION = YES
|
REFERENCED_BY_RELATION = YES
|
||||||
REFERENCES_RELATION = YES
|
REFERENCES_RELATION = YES
|
||||||
USE_HTAGS = NO
|
USE_HTAGS = NO
|
||||||
VERBATIM_HEADERS = YES
|
VERBATIM_HEADERS = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the alphabetical class index
|
# configuration options related to the alphabetical class index
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
ALPHABETICAL_INDEX = NO
|
ALPHABETICAL_INDEX = NO
|
||||||
COLS_IN_ALPHA_INDEX = 5
|
COLS_IN_ALPHA_INDEX = 5
|
||||||
IGNORE_PREFIX =
|
IGNORE_PREFIX =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the HTML output
|
# configuration options related to the HTML output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_HTML = YES
|
GENERATE_HTML = YES
|
||||||
HTML_OUTPUT = html
|
HTML_OUTPUT = html
|
||||||
HTML_FILE_EXTENSION = .html
|
HTML_FILE_EXTENSION = .html
|
||||||
HTML_HEADER =
|
HTML_HEADER =
|
||||||
HTML_FOOTER =
|
HTML_FOOTER =
|
||||||
HTML_STYLESHEET =
|
HTML_STYLESHEET =
|
||||||
HTML_ALIGN_MEMBERS = YES
|
HTML_ALIGN_MEMBERS = YES
|
||||||
GENERATE_HTMLHELP = NO
|
GENERATE_HTMLHELP = NO
|
||||||
CHM_FILE =
|
CHM_FILE =
|
||||||
HHC_LOCATION =
|
HHC_LOCATION =
|
||||||
GENERATE_CHI = NO
|
GENERATE_CHI = NO
|
||||||
BINARY_TOC = NO
|
BINARY_TOC = NO
|
||||||
TOC_EXPAND = NO
|
TOC_EXPAND = NO
|
||||||
DISABLE_INDEX = NO
|
DISABLE_INDEX = NO
|
||||||
ENUM_VALUES_PER_LINE = 4
|
ENUM_VALUES_PER_LINE = 4
|
||||||
GENERATE_TREEVIEW = NO
|
GENERATE_TREEVIEW = NO
|
||||||
TREEVIEW_WIDTH = 250
|
TREEVIEW_WIDTH = 250
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the LaTeX output
|
# configuration options related to the LaTeX output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_LATEX = NO
|
GENERATE_LATEX = NO
|
||||||
LATEX_OUTPUT = latex
|
LATEX_OUTPUT = latex
|
||||||
LATEX_CMD_NAME = latex
|
LATEX_CMD_NAME = latex
|
||||||
MAKEINDEX_CMD_NAME = makeindex
|
MAKEINDEX_CMD_NAME = makeindex
|
||||||
COMPACT_LATEX = NO
|
COMPACT_LATEX = NO
|
||||||
PAPER_TYPE = a4wide
|
PAPER_TYPE = a4wide
|
||||||
EXTRA_PACKAGES =
|
EXTRA_PACKAGES =
|
||||||
LATEX_HEADER =
|
LATEX_HEADER =
|
||||||
PDF_HYPERLINKS = NO
|
PDF_HYPERLINKS = NO
|
||||||
USE_PDFLATEX = NO
|
USE_PDFLATEX = NO
|
||||||
LATEX_BATCHMODE = NO
|
LATEX_BATCHMODE = NO
|
||||||
LATEX_HIDE_INDICES = NO
|
LATEX_HIDE_INDICES = NO
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the RTF output
|
# configuration options related to the RTF output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_RTF = NO
|
GENERATE_RTF = NO
|
||||||
RTF_OUTPUT = rtf
|
RTF_OUTPUT = rtf
|
||||||
COMPACT_RTF = NO
|
COMPACT_RTF = NO
|
||||||
RTF_HYPERLINKS = NO
|
RTF_HYPERLINKS = NO
|
||||||
RTF_STYLESHEET_FILE =
|
RTF_STYLESHEET_FILE =
|
||||||
RTF_EXTENSIONS_FILE =
|
RTF_EXTENSIONS_FILE =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the man page output
|
# configuration options related to the man page output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_MAN = NO
|
GENERATE_MAN = NO
|
||||||
MAN_OUTPUT = man
|
MAN_OUTPUT = man
|
||||||
MAN_EXTENSION = .3
|
MAN_EXTENSION = .3
|
||||||
MAN_LINKS = NO
|
MAN_LINKS = NO
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the XML output
|
# configuration options related to the XML output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_XML = NO
|
GENERATE_XML = NO
|
||||||
XML_OUTPUT = xml
|
XML_OUTPUT = xml
|
||||||
XML_SCHEMA =
|
XML_SCHEMA =
|
||||||
XML_DTD =
|
XML_DTD =
|
||||||
XML_PROGRAMLISTING = YES
|
XML_PROGRAMLISTING = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options for the AutoGen Definitions output
|
# configuration options for the AutoGen Definitions output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_AUTOGEN_DEF = NO
|
GENERATE_AUTOGEN_DEF = NO
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the Perl module output
|
# configuration options related to the Perl module output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_PERLMOD = NO
|
GENERATE_PERLMOD = NO
|
||||||
PERLMOD_LATEX = NO
|
PERLMOD_LATEX = NO
|
||||||
PERLMOD_PRETTY = YES
|
PERLMOD_PRETTY = YES
|
||||||
PERLMOD_MAKEVAR_PREFIX =
|
PERLMOD_MAKEVAR_PREFIX =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to the preprocessor
|
# Configuration options related to the preprocessor
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
ENABLE_PREPROCESSING = YES
|
ENABLE_PREPROCESSING = YES
|
||||||
MACRO_EXPANSION = NO
|
MACRO_EXPANSION = NO
|
||||||
EXPAND_ONLY_PREDEF = NO
|
EXPAND_ONLY_PREDEF = NO
|
||||||
SEARCH_INCLUDES = YES
|
SEARCH_INCLUDES = YES
|
||||||
INCLUDE_PATH =
|
INCLUDE_PATH =
|
||||||
INCLUDE_FILE_PATTERNS =
|
INCLUDE_FILE_PATTERNS =
|
||||||
PREDEFINED =
|
PREDEFINED =
|
||||||
EXPAND_AS_DEFINED =
|
EXPAND_AS_DEFINED =
|
||||||
SKIP_FUNCTION_MACROS = YES
|
SKIP_FUNCTION_MACROS = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration::additions related to external references
|
# Configuration::additions related to external references
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
TAGFILES =
|
TAGFILES =
|
||||||
GENERATE_TAGFILE =
|
GENERATE_TAGFILE =
|
||||||
ALLEXTERNALS = NO
|
ALLEXTERNALS = NO
|
||||||
EXTERNAL_GROUPS = YES
|
EXTERNAL_GROUPS = YES
|
||||||
PERL_PATH = /usr/bin/perl
|
PERL_PATH = /usr/bin/perl
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to the dot tool
|
# Configuration options related to the dot tool
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
CLASS_DIAGRAMS = NO
|
CLASS_DIAGRAMS = NO
|
||||||
HIDE_UNDOC_RELATIONS = NO
|
HIDE_UNDOC_RELATIONS = NO
|
||||||
HAVE_DOT = NO
|
HAVE_DOT = NO
|
||||||
CLASS_GRAPH = YES
|
CLASS_GRAPH = YES
|
||||||
COLLABORATION_GRAPH = YES
|
COLLABORATION_GRAPH = YES
|
||||||
GROUP_GRAPHS = YES
|
GROUP_GRAPHS = YES
|
||||||
UML_LOOK = NO
|
UML_LOOK = NO
|
||||||
TEMPLATE_RELATIONS = YES
|
TEMPLATE_RELATIONS = YES
|
||||||
INCLUDE_GRAPH = YES
|
INCLUDE_GRAPH = YES
|
||||||
INCLUDED_BY_GRAPH = YES
|
INCLUDED_BY_GRAPH = YES
|
||||||
CALL_GRAPH = NO
|
CALL_GRAPH = NO
|
||||||
GRAPHICAL_HIERARCHY = YES
|
GRAPHICAL_HIERARCHY = YES
|
||||||
DIRECTORY_GRAPH = YES
|
DIRECTORY_GRAPH = YES
|
||||||
DOT_IMAGE_FORMAT = png
|
DOT_IMAGE_FORMAT = png
|
||||||
DOT_PATH =
|
DOT_PATH =
|
||||||
DOTFILE_DIRS =
|
DOTFILE_DIRS =
|
||||||
MAX_DOT_GRAPH_WIDTH = 1024
|
MAX_DOT_GRAPH_WIDTH = 1024
|
||||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||||
MAX_DOT_GRAPH_DEPTH = 1000
|
MAX_DOT_GRAPH_DEPTH = 1000
|
||||||
DOT_TRANSPARENT = NO
|
DOT_TRANSPARENT = NO
|
||||||
DOT_MULTI_TARGETS = NO
|
DOT_MULTI_TARGETS = NO
|
||||||
GENERATE_LEGEND = YES
|
GENERATE_LEGEND = YES
|
||||||
DOT_CLEANUP = YES
|
DOT_CLEANUP = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration::additions related to the search engine
|
# Configuration::additions related to the search engine
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
SEARCHENGINE = NO
|
SEARCHENGINE = NO
|
||||||
|
|
|
@ -1,243 +1,243 @@
|
||||||
# Doxyfile 1.4.6
|
# Doxyfile 1.4.6
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Project related configuration options
|
# Project related configuration options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
PROJECT_NAME = PortAudio
|
PROJECT_NAME = PortAudio
|
||||||
PROJECT_NUMBER = 2.0
|
PROJECT_NUMBER = 2.0
|
||||||
OUTPUT_DIRECTORY = ./doc/
|
OUTPUT_DIRECTORY = ./doc/
|
||||||
CREATE_SUBDIRS = NO
|
CREATE_SUBDIRS = NO
|
||||||
OUTPUT_LANGUAGE = English
|
OUTPUT_LANGUAGE = English
|
||||||
USE_WINDOWS_ENCODING = NO
|
USE_WINDOWS_ENCODING = NO
|
||||||
BRIEF_MEMBER_DESC = YES
|
BRIEF_MEMBER_DESC = YES
|
||||||
REPEAT_BRIEF = YES
|
REPEAT_BRIEF = YES
|
||||||
ABBREVIATE_BRIEF = "The $name class" \
|
ABBREVIATE_BRIEF = "The $name class" \
|
||||||
"The $name widget" \
|
"The $name widget" \
|
||||||
"The $name file" \
|
"The $name file" \
|
||||||
is \
|
is \
|
||||||
provides \
|
provides \
|
||||||
specifies \
|
specifies \
|
||||||
contains \
|
contains \
|
||||||
represents \
|
represents \
|
||||||
a \
|
a \
|
||||||
an \
|
an \
|
||||||
the
|
the
|
||||||
ALWAYS_DETAILED_SEC = NO
|
ALWAYS_DETAILED_SEC = NO
|
||||||
INLINE_INHERITED_MEMB = NO
|
INLINE_INHERITED_MEMB = NO
|
||||||
FULL_PATH_NAMES = NO
|
FULL_PATH_NAMES = NO
|
||||||
STRIP_FROM_PATH =
|
STRIP_FROM_PATH =
|
||||||
STRIP_FROM_INC_PATH =
|
STRIP_FROM_INC_PATH =
|
||||||
SHORT_NAMES = NO
|
SHORT_NAMES = NO
|
||||||
JAVADOC_AUTOBRIEF = NO
|
JAVADOC_AUTOBRIEF = NO
|
||||||
MULTILINE_CPP_IS_BRIEF = NO
|
MULTILINE_CPP_IS_BRIEF = NO
|
||||||
DETAILS_AT_TOP = NO
|
DETAILS_AT_TOP = NO
|
||||||
INHERIT_DOCS = YES
|
INHERIT_DOCS = YES
|
||||||
SEPARATE_MEMBER_PAGES = NO
|
SEPARATE_MEMBER_PAGES = NO
|
||||||
TAB_SIZE = 8
|
TAB_SIZE = 8
|
||||||
ALIASES =
|
ALIASES =
|
||||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||||
OPTIMIZE_OUTPUT_JAVA = NO
|
OPTIMIZE_OUTPUT_JAVA = NO
|
||||||
BUILTIN_STL_SUPPORT = NO
|
BUILTIN_STL_SUPPORT = NO
|
||||||
DISTRIBUTE_GROUP_DOC = NO
|
DISTRIBUTE_GROUP_DOC = NO
|
||||||
SUBGROUPING = YES
|
SUBGROUPING = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Build related configuration options
|
# Build related configuration options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
EXTRACT_ALL = YES
|
EXTRACT_ALL = YES
|
||||||
EXTRACT_PRIVATE = NO
|
EXTRACT_PRIVATE = NO
|
||||||
EXTRACT_STATIC = NO
|
EXTRACT_STATIC = NO
|
||||||
EXTRACT_LOCAL_CLASSES = YES
|
EXTRACT_LOCAL_CLASSES = YES
|
||||||
EXTRACT_LOCAL_METHODS = NO
|
EXTRACT_LOCAL_METHODS = NO
|
||||||
HIDE_UNDOC_MEMBERS = NO
|
HIDE_UNDOC_MEMBERS = NO
|
||||||
HIDE_UNDOC_CLASSES = NO
|
HIDE_UNDOC_CLASSES = NO
|
||||||
HIDE_FRIEND_COMPOUNDS = NO
|
HIDE_FRIEND_COMPOUNDS = NO
|
||||||
HIDE_IN_BODY_DOCS = NO
|
HIDE_IN_BODY_DOCS = NO
|
||||||
INTERNAL_DOCS = YES
|
INTERNAL_DOCS = YES
|
||||||
CASE_SENSE_NAMES = YES
|
CASE_SENSE_NAMES = YES
|
||||||
HIDE_SCOPE_NAMES = NO
|
HIDE_SCOPE_NAMES = NO
|
||||||
SHOW_INCLUDE_FILES = YES
|
SHOW_INCLUDE_FILES = YES
|
||||||
INLINE_INFO = YES
|
INLINE_INFO = YES
|
||||||
SORT_MEMBER_DOCS = YES
|
SORT_MEMBER_DOCS = YES
|
||||||
SORT_BRIEF_DOCS = NO
|
SORT_BRIEF_DOCS = NO
|
||||||
SORT_BY_SCOPE_NAME = NO
|
SORT_BY_SCOPE_NAME = NO
|
||||||
GENERATE_TODOLIST = YES
|
GENERATE_TODOLIST = YES
|
||||||
GENERATE_TESTLIST = YES
|
GENERATE_TESTLIST = YES
|
||||||
GENERATE_BUGLIST = YES
|
GENERATE_BUGLIST = YES
|
||||||
GENERATE_DEPRECATEDLIST= YES
|
GENERATE_DEPRECATEDLIST= YES
|
||||||
ENABLED_SECTIONS = INTERNAL
|
ENABLED_SECTIONS = INTERNAL
|
||||||
MAX_INITIALIZER_LINES = 30
|
MAX_INITIALIZER_LINES = 30
|
||||||
SHOW_USED_FILES = YES
|
SHOW_USED_FILES = YES
|
||||||
SHOW_DIRECTORIES = YES
|
SHOW_DIRECTORIES = YES
|
||||||
FILE_VERSION_FILTER =
|
FILE_VERSION_FILTER =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to warning and progress messages
|
# configuration options related to warning and progress messages
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
QUIET = NO
|
QUIET = NO
|
||||||
WARNINGS = YES
|
WARNINGS = YES
|
||||||
WARN_IF_UNDOCUMENTED = YES
|
WARN_IF_UNDOCUMENTED = YES
|
||||||
WARN_IF_DOC_ERROR = YES
|
WARN_IF_DOC_ERROR = YES
|
||||||
WARN_NO_PARAMDOC = NO
|
WARN_NO_PARAMDOC = NO
|
||||||
WARN_FORMAT = "$file:$line: $text"
|
WARN_FORMAT = "$file:$line: $text"
|
||||||
WARN_LOGFILE =
|
WARN_LOGFILE =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the input files
|
# configuration options related to the input files
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
INPUT = doc/src \
|
INPUT = doc/src \
|
||||||
include \
|
include \
|
||||||
bindings/java \
|
bindings/java \
|
||||||
examples \
|
examples \
|
||||||
src \
|
src \
|
||||||
test \
|
test \
|
||||||
qa
|
qa
|
||||||
FILE_PATTERNS = *.h \
|
FILE_PATTERNS = *.h \
|
||||||
*.c \
|
*.c \
|
||||||
*.cpp \
|
*.cpp \
|
||||||
*.java \
|
*.java \
|
||||||
*.dox
|
*.dox
|
||||||
RECURSIVE = YES
|
RECURSIVE = YES
|
||||||
EXCLUDE = src/hostapi/wasapi/mingw-include
|
EXCLUDE = src/hostapi/wasapi/mingw-include
|
||||||
EXCLUDE_SYMLINKS = NO
|
EXCLUDE_SYMLINKS = NO
|
||||||
EXCLUDE_PATTERNS =
|
EXCLUDE_PATTERNS =
|
||||||
EXAMPLE_PATH =
|
EXAMPLE_PATH =
|
||||||
EXAMPLE_PATTERNS =
|
EXAMPLE_PATTERNS =
|
||||||
EXAMPLE_RECURSIVE = NO
|
EXAMPLE_RECURSIVE = NO
|
||||||
IMAGE_PATH = doc/src/images
|
IMAGE_PATH = doc/src/images
|
||||||
INPUT_FILTER =
|
INPUT_FILTER =
|
||||||
FILTER_PATTERNS =
|
FILTER_PATTERNS =
|
||||||
FILTER_SOURCE_FILES = NO
|
FILTER_SOURCE_FILES = NO
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to source browsing
|
# configuration options related to source browsing
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
SOURCE_BROWSER = NO
|
SOURCE_BROWSER = NO
|
||||||
INLINE_SOURCES = NO
|
INLINE_SOURCES = NO
|
||||||
STRIP_CODE_COMMENTS = YES
|
STRIP_CODE_COMMENTS = YES
|
||||||
REFERENCED_BY_RELATION = YES
|
REFERENCED_BY_RELATION = YES
|
||||||
REFERENCES_RELATION = YES
|
REFERENCES_RELATION = YES
|
||||||
USE_HTAGS = NO
|
USE_HTAGS = NO
|
||||||
VERBATIM_HEADERS = YES
|
VERBATIM_HEADERS = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the alphabetical class index
|
# configuration options related to the alphabetical class index
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
ALPHABETICAL_INDEX = NO
|
ALPHABETICAL_INDEX = NO
|
||||||
COLS_IN_ALPHA_INDEX = 5
|
COLS_IN_ALPHA_INDEX = 5
|
||||||
IGNORE_PREFIX =
|
IGNORE_PREFIX =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the HTML output
|
# configuration options related to the HTML output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_HTML = YES
|
GENERATE_HTML = YES
|
||||||
HTML_OUTPUT = html
|
HTML_OUTPUT = html
|
||||||
HTML_FILE_EXTENSION = .html
|
HTML_FILE_EXTENSION = .html
|
||||||
HTML_HEADER =
|
HTML_HEADER =
|
||||||
HTML_FOOTER =
|
HTML_FOOTER =
|
||||||
HTML_STYLESHEET =
|
HTML_STYLESHEET =
|
||||||
HTML_ALIGN_MEMBERS = YES
|
HTML_ALIGN_MEMBERS = YES
|
||||||
GENERATE_HTMLHELP = NO
|
GENERATE_HTMLHELP = NO
|
||||||
CHM_FILE =
|
CHM_FILE =
|
||||||
HHC_LOCATION =
|
HHC_LOCATION =
|
||||||
GENERATE_CHI = NO
|
GENERATE_CHI = NO
|
||||||
BINARY_TOC = NO
|
BINARY_TOC = NO
|
||||||
TOC_EXPAND = NO
|
TOC_EXPAND = NO
|
||||||
DISABLE_INDEX = NO
|
DISABLE_INDEX = NO
|
||||||
ENUM_VALUES_PER_LINE = 4
|
ENUM_VALUES_PER_LINE = 4
|
||||||
GENERATE_TREEVIEW = NO
|
GENERATE_TREEVIEW = NO
|
||||||
TREEVIEW_WIDTH = 250
|
TREEVIEW_WIDTH = 250
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the LaTeX output
|
# configuration options related to the LaTeX output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_LATEX = NO
|
GENERATE_LATEX = NO
|
||||||
LATEX_OUTPUT = latex
|
LATEX_OUTPUT = latex
|
||||||
LATEX_CMD_NAME = latex
|
LATEX_CMD_NAME = latex
|
||||||
MAKEINDEX_CMD_NAME = makeindex
|
MAKEINDEX_CMD_NAME = makeindex
|
||||||
COMPACT_LATEX = NO
|
COMPACT_LATEX = NO
|
||||||
PAPER_TYPE = a4wide
|
PAPER_TYPE = a4wide
|
||||||
EXTRA_PACKAGES =
|
EXTRA_PACKAGES =
|
||||||
LATEX_HEADER =
|
LATEX_HEADER =
|
||||||
PDF_HYPERLINKS = NO
|
PDF_HYPERLINKS = NO
|
||||||
USE_PDFLATEX = NO
|
USE_PDFLATEX = NO
|
||||||
LATEX_BATCHMODE = NO
|
LATEX_BATCHMODE = NO
|
||||||
LATEX_HIDE_INDICES = NO
|
LATEX_HIDE_INDICES = NO
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the RTF output
|
# configuration options related to the RTF output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_RTF = NO
|
GENERATE_RTF = NO
|
||||||
RTF_OUTPUT = rtf
|
RTF_OUTPUT = rtf
|
||||||
COMPACT_RTF = NO
|
COMPACT_RTF = NO
|
||||||
RTF_HYPERLINKS = NO
|
RTF_HYPERLINKS = NO
|
||||||
RTF_STYLESHEET_FILE =
|
RTF_STYLESHEET_FILE =
|
||||||
RTF_EXTENSIONS_FILE =
|
RTF_EXTENSIONS_FILE =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the man page output
|
# configuration options related to the man page output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_MAN = NO
|
GENERATE_MAN = NO
|
||||||
MAN_OUTPUT = man
|
MAN_OUTPUT = man
|
||||||
MAN_EXTENSION = .3
|
MAN_EXTENSION = .3
|
||||||
MAN_LINKS = NO
|
MAN_LINKS = NO
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the XML output
|
# configuration options related to the XML output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_XML = NO
|
GENERATE_XML = NO
|
||||||
XML_OUTPUT = xml
|
XML_OUTPUT = xml
|
||||||
XML_SCHEMA =
|
XML_SCHEMA =
|
||||||
XML_DTD =
|
XML_DTD =
|
||||||
XML_PROGRAMLISTING = YES
|
XML_PROGRAMLISTING = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options for the AutoGen Definitions output
|
# configuration options for the AutoGen Definitions output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_AUTOGEN_DEF = NO
|
GENERATE_AUTOGEN_DEF = NO
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the Perl module output
|
# configuration options related to the Perl module output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_PERLMOD = NO
|
GENERATE_PERLMOD = NO
|
||||||
PERLMOD_LATEX = NO
|
PERLMOD_LATEX = NO
|
||||||
PERLMOD_PRETTY = YES
|
PERLMOD_PRETTY = YES
|
||||||
PERLMOD_MAKEVAR_PREFIX =
|
PERLMOD_MAKEVAR_PREFIX =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to the preprocessor
|
# Configuration options related to the preprocessor
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
ENABLE_PREPROCESSING = YES
|
ENABLE_PREPROCESSING = YES
|
||||||
MACRO_EXPANSION = NO
|
MACRO_EXPANSION = NO
|
||||||
EXPAND_ONLY_PREDEF = NO
|
EXPAND_ONLY_PREDEF = NO
|
||||||
SEARCH_INCLUDES = YES
|
SEARCH_INCLUDES = YES
|
||||||
INCLUDE_PATH =
|
INCLUDE_PATH =
|
||||||
INCLUDE_FILE_PATTERNS =
|
INCLUDE_FILE_PATTERNS =
|
||||||
PREDEFINED =
|
PREDEFINED =
|
||||||
EXPAND_AS_DEFINED =
|
EXPAND_AS_DEFINED =
|
||||||
SKIP_FUNCTION_MACROS = YES
|
SKIP_FUNCTION_MACROS = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration::additions related to external references
|
# Configuration::additions related to external references
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
TAGFILES =
|
TAGFILES =
|
||||||
GENERATE_TAGFILE =
|
GENERATE_TAGFILE =
|
||||||
ALLEXTERNALS = NO
|
ALLEXTERNALS = NO
|
||||||
EXTERNAL_GROUPS = YES
|
EXTERNAL_GROUPS = YES
|
||||||
PERL_PATH = /usr/bin/perl
|
PERL_PATH = /usr/bin/perl
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to the dot tool
|
# Configuration options related to the dot tool
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
CLASS_DIAGRAMS = NO
|
CLASS_DIAGRAMS = NO
|
||||||
HIDE_UNDOC_RELATIONS = NO
|
HIDE_UNDOC_RELATIONS = NO
|
||||||
HAVE_DOT = NO
|
HAVE_DOT = NO
|
||||||
CLASS_GRAPH = YES
|
CLASS_GRAPH = YES
|
||||||
COLLABORATION_GRAPH = YES
|
COLLABORATION_GRAPH = YES
|
||||||
GROUP_GRAPHS = YES
|
GROUP_GRAPHS = YES
|
||||||
UML_LOOK = NO
|
UML_LOOK = NO
|
||||||
TEMPLATE_RELATIONS = YES
|
TEMPLATE_RELATIONS = YES
|
||||||
INCLUDE_GRAPH = YES
|
INCLUDE_GRAPH = YES
|
||||||
INCLUDED_BY_GRAPH = YES
|
INCLUDED_BY_GRAPH = YES
|
||||||
CALL_GRAPH = NO
|
CALL_GRAPH = NO
|
||||||
GRAPHICAL_HIERARCHY = YES
|
GRAPHICAL_HIERARCHY = YES
|
||||||
DIRECTORY_GRAPH = YES
|
DIRECTORY_GRAPH = YES
|
||||||
DOT_IMAGE_FORMAT = png
|
DOT_IMAGE_FORMAT = png
|
||||||
DOT_PATH =
|
DOT_PATH =
|
||||||
DOTFILE_DIRS =
|
DOTFILE_DIRS =
|
||||||
MAX_DOT_GRAPH_WIDTH = 1024
|
MAX_DOT_GRAPH_WIDTH = 1024
|
||||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||||
MAX_DOT_GRAPH_DEPTH = 1000
|
MAX_DOT_GRAPH_DEPTH = 1000
|
||||||
DOT_TRANSPARENT = NO
|
DOT_TRANSPARENT = NO
|
||||||
DOT_MULTI_TARGETS = NO
|
DOT_MULTI_TARGETS = NO
|
||||||
GENERATE_LEGEND = YES
|
GENERATE_LEGEND = YES
|
||||||
DOT_CLEANUP = YES
|
DOT_CLEANUP = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration::additions related to the search engine
|
# Configuration::additions related to the search engine
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
SEARCHENGINE = NO
|
SEARCHENGINE = NO
|
||||||
|
|
|
@ -1,81 +1,81 @@
|
||||||
Portable header file to contain:
|
Portable header file to contain:
|
||||||
>>>>>
|
>>>>>
|
||||||
/*
|
/*
|
||||||
* PortAudio Portable Real-Time Audio Library
|
* PortAudio Portable Real-Time Audio Library
|
||||||
* PortAudio API Header File
|
* PortAudio API Header File
|
||||||
* Latest version available at: http://www.portaudio.com
|
* Latest version available at: http://www.portaudio.com
|
||||||
*
|
*
|
||||||
* Copyright (c) 1999-2006 Ross Bencina and Phil Burk
|
* Copyright (c) 1999-2006 Ross Bencina and Phil Burk
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
* a copy of this software and associated documentation files
|
* a copy of this software and associated documentation files
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
* (the "Software"), to deal in the Software without restriction,
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
* including without limitation the rights to use, copy, modify, merge,
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
* and to permit persons to whom the Software is furnished to do so,
|
||||||
* subject to the following conditions:
|
* subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be
|
* The above copyright notice and this permission notice shall be
|
||||||
* included in all copies or substantial portions of the Software.
|
* included in all copies or substantial portions of the Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
||||||
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The text above constitutes the entire PortAudio license; however,
|
* The text above constitutes the entire PortAudio license; however,
|
||||||
* the PortAudio community also makes the following non-binding requests:
|
* the PortAudio community also makes the following non-binding requests:
|
||||||
*
|
*
|
||||||
* Any person wishing to distribute modifications to the Software is
|
* Any person wishing to distribute modifications to the Software is
|
||||||
* requested to send the modifications to the original developer so that
|
* requested to send the modifications to the original developer so that
|
||||||
* they can be incorporated into the canonical version. It is also
|
* they can be incorporated into the canonical version. It is also
|
||||||
* requested that these non-binding requests be included along with the
|
* requested that these non-binding requests be included along with the
|
||||||
* license above.
|
* license above.
|
||||||
*/
|
*/
|
||||||
<<<<<
|
<<<<<
|
||||||
|
|
||||||
|
|
||||||
Implementation files to contain:
|
Implementation files to contain:
|
||||||
>>>>>
|
>>>>>
|
||||||
/*
|
/*
|
||||||
* PortAudio Portable Real-Time Audio Library
|
* PortAudio Portable Real-Time Audio Library
|
||||||
* Latest version at: http://www.portaudio.com
|
* Latest version at: http://www.portaudio.com
|
||||||
* <platform> Implementation
|
* <platform> Implementation
|
||||||
* Copyright (c) 1999-2000 <author(s)>
|
* Copyright (c) 1999-2000 <author(s)>
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
* a copy of this software and associated documentation files
|
* a copy of this software and associated documentation files
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
* (the "Software"), to deal in the Software without restriction,
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
* including without limitation the rights to use, copy, modify, merge,
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
* and to permit persons to whom the Software is furnished to do so,
|
||||||
* subject to the following conditions:
|
* subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be
|
* The above copyright notice and this permission notice shall be
|
||||||
* included in all copies or substantial portions of the Software.
|
* included in all copies or substantial portions of the Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
||||||
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The text above constitutes the entire PortAudio license; however,
|
* The text above constitutes the entire PortAudio license; however,
|
||||||
* the PortAudio community also makes the following non-binding requests:
|
* the PortAudio community also makes the following non-binding requests:
|
||||||
*
|
*
|
||||||
* Any person wishing to distribute modifications to the Software is
|
* Any person wishing to distribute modifications to the Software is
|
||||||
* requested to send the modifications to the original developer so that
|
* requested to send the modifications to the original developer so that
|
||||||
* they can be incorporated into the canonical version. It is also
|
* they can be incorporated into the canonical version. It is also
|
||||||
* requested that these non-binding requests be included along with the
|
* requested that these non-binding requests be included along with the
|
||||||
* license above.
|
* license above.
|
||||||
*/
|
*/
|
||||||
<<<<<
|
<<<<<
|
|
@ -1,257 +1,257 @@
|
||||||
#
|
#
|
||||||
# PortAudio V19 Makefile.in
|
# PortAudio V19 Makefile.in
|
||||||
#
|
#
|
||||||
# Dominic Mazzoni
|
# Dominic Mazzoni
|
||||||
# Modifications by Mikael Magnusson
|
# Modifications by Mikael Magnusson
|
||||||
# Modifications by Stelios Bounanos
|
# Modifications by Stelios Bounanos
|
||||||
#
|
#
|
||||||
|
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
top_builddir = .
|
top_builddir = .
|
||||||
PREFIX = @prefix@
|
PREFIX = @prefix@
|
||||||
prefix = $(PREFIX)
|
prefix = $(PREFIX)
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
bindir = @bindir@
|
bindir = @bindir@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CXX = @CXX@
|
CXX = @CXX@
|
||||||
CFLAGS = @CFLAGS@ @DEFS@
|
CFLAGS = @CFLAGS@ @DEFS@
|
||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
AR = @AR@
|
AR = @AR@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
LIBTOOL = @LIBTOOL@
|
LIBTOOL = @LIBTOOL@
|
||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
SHARED_FLAGS = @SHARED_FLAGS@
|
SHARED_FLAGS = @SHARED_FLAGS@
|
||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
DLL_LIBS = @DLL_LIBS@
|
DLL_LIBS = @DLL_LIBS@
|
||||||
CXXFLAGS = @CXXFLAGS@
|
CXXFLAGS = @CXXFLAGS@
|
||||||
NASM = @NASM@
|
NASM = @NASM@
|
||||||
NASMOPT = @NASMOPT@
|
NASMOPT = @NASMOPT@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
LT_CURRENT=@LT_CURRENT@
|
LT_CURRENT=@LT_CURRENT@
|
||||||
LT_REVISION=@LT_REVISION@
|
LT_REVISION=@LT_REVISION@
|
||||||
LT_AGE=@LT_AGE@
|
LT_AGE=@LT_AGE@
|
||||||
|
|
||||||
OTHER_OBJS = @OTHER_OBJS@
|
OTHER_OBJS = @OTHER_OBJS@
|
||||||
INCLUDES = @INCLUDES@
|
INCLUDES = @INCLUDES@
|
||||||
|
|
||||||
PALIB = libportaudio.la
|
PALIB = libportaudio.la
|
||||||
PAINC = include/portaudio.h
|
PAINC = include/portaudio.h
|
||||||
|
|
||||||
PA_LDFLAGS = $(LDFLAGS) $(SHARED_FLAGS) -rpath $(libdir) -no-undefined \
|
PA_LDFLAGS = $(LDFLAGS) $(SHARED_FLAGS) -rpath $(libdir) -no-undefined \
|
||||||
-export-symbols-regex "(Pa|PaMacCore|PaJack|PaAlsa|PaAsio|PaOSS)_.*" \
|
-export-symbols-regex "(Pa|PaMacCore|PaJack|PaAlsa|PaAsio|PaOSS)_.*" \
|
||||||
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
|
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
|
||||||
|
|
||||||
COMMON_OBJS = \
|
COMMON_OBJS = \
|
||||||
src/common/pa_allocation.o \
|
src/common/pa_allocation.o \
|
||||||
src/common/pa_converters.o \
|
src/common/pa_converters.o \
|
||||||
src/common/pa_cpuload.o \
|
src/common/pa_cpuload.o \
|
||||||
src/common/pa_dither.o \
|
src/common/pa_dither.o \
|
||||||
src/common/pa_debugprint.o \
|
src/common/pa_debugprint.o \
|
||||||
src/common/pa_front.o \
|
src/common/pa_front.o \
|
||||||
src/common/pa_process.o \
|
src/common/pa_process.o \
|
||||||
src/common/pa_stream.o \
|
src/common/pa_stream.o \
|
||||||
src/common/pa_trace.o \
|
src/common/pa_trace.o \
|
||||||
src/hostapi/skeleton/pa_hostapi_skeleton.o
|
src/hostapi/skeleton/pa_hostapi_skeleton.o
|
||||||
|
|
||||||
LOOPBACK_OBJS = \
|
LOOPBACK_OBJS = \
|
||||||
qa/loopback/src/audio_analyzer.o \
|
qa/loopback/src/audio_analyzer.o \
|
||||||
qa/loopback/src/biquad_filter.o \
|
qa/loopback/src/biquad_filter.o \
|
||||||
qa/loopback/src/paqa_tools.o \
|
qa/loopback/src/paqa_tools.o \
|
||||||
qa/loopback/src/test_audio_analyzer.o \
|
qa/loopback/src/test_audio_analyzer.o \
|
||||||
qa/loopback/src/write_wav.o \
|
qa/loopback/src/write_wav.o \
|
||||||
qa/loopback/src/paqa.o
|
qa/loopback/src/paqa.o
|
||||||
|
|
||||||
EXAMPLES = \
|
EXAMPLES = \
|
||||||
bin/pa_devs \
|
bin/pa_devs \
|
||||||
bin/pa_fuzz \
|
bin/pa_fuzz \
|
||||||
bin/paex_pink \
|
bin/paex_pink \
|
||||||
bin/paex_read_write_wire \
|
bin/paex_read_write_wire \
|
||||||
bin/paex_record \
|
bin/paex_record \
|
||||||
bin/paex_saw \
|
bin/paex_saw \
|
||||||
bin/paex_sine \
|
bin/paex_sine \
|
||||||
bin/paex_write_sine \
|
bin/paex_write_sine \
|
||||||
bin/paex_write_sine_nonint
|
bin/paex_write_sine_nonint
|
||||||
|
|
||||||
SELFTESTS = \
|
SELFTESTS = \
|
||||||
bin/paqa_devs \
|
bin/paqa_devs \
|
||||||
bin/paqa_errs \
|
bin/paqa_errs \
|
||||||
bin/paqa_latency
|
bin/paqa_latency
|
||||||
|
|
||||||
TESTS = \
|
TESTS = \
|
||||||
bin/patest1 \
|
bin/patest1 \
|
||||||
bin/patest_buffer \
|
bin/patest_buffer \
|
||||||
bin/patest_callbackstop \
|
bin/patest_callbackstop \
|
||||||
bin/patest_clip \
|
bin/patest_clip \
|
||||||
bin/patest_dither \
|
bin/patest_dither \
|
||||||
bin/patest_hang \
|
bin/patest_hang \
|
||||||
bin/patest_in_overflow \
|
bin/patest_in_overflow \
|
||||||
bin/patest_latency \
|
bin/patest_latency \
|
||||||
bin/patest_leftright \
|
bin/patest_leftright \
|
||||||
bin/patest_longsine \
|
bin/patest_longsine \
|
||||||
bin/patest_many \
|
bin/patest_many \
|
||||||
bin/patest_maxsines \
|
bin/patest_maxsines \
|
||||||
bin/patest_mono \
|
bin/patest_mono \
|
||||||
bin/patest_multi_sine \
|
bin/patest_multi_sine \
|
||||||
bin/patest_out_underflow \
|
bin/patest_out_underflow \
|
||||||
bin/patest_prime \
|
bin/patest_prime \
|
||||||
bin/patest_ringmix \
|
bin/patest_ringmix \
|
||||||
bin/patest_sine8 \
|
bin/patest_sine8 \
|
||||||
bin/patest_sine_channelmaps \
|
bin/patest_sine_channelmaps \
|
||||||
bin/patest_sine_formats \
|
bin/patest_sine_formats \
|
||||||
bin/patest_sine_time \
|
bin/patest_sine_time \
|
||||||
bin/patest_sine_srate \
|
bin/patest_sine_srate \
|
||||||
bin/patest_start_stop \
|
bin/patest_start_stop \
|
||||||
bin/patest_stop \
|
bin/patest_stop \
|
||||||
bin/patest_stop_playout \
|
bin/patest_stop_playout \
|
||||||
bin/patest_toomanysines \
|
bin/patest_toomanysines \
|
||||||
bin/patest_two_rates \
|
bin/patest_two_rates \
|
||||||
bin/patest_underflow \
|
bin/patest_underflow \
|
||||||
bin/patest_wire \
|
bin/patest_wire \
|
||||||
bin/pa_minlat
|
bin/pa_minlat
|
||||||
|
|
||||||
# Most of these don't compile yet. Put them in TESTS, above, if
|
# Most of these don't compile yet. Put them in TESTS, above, if
|
||||||
# you want to try to compile them...
|
# you want to try to compile them...
|
||||||
ALL_TESTS = \
|
ALL_TESTS = \
|
||||||
$(TESTS) \
|
$(TESTS) \
|
||||||
bin/patest_sync \
|
bin/patest_sync \
|
||||||
bin/debug_convert \
|
bin/debug_convert \
|
||||||
bin/debug_dither_calc \
|
bin/debug_dither_calc \
|
||||||
bin/debug_dual \
|
bin/debug_dual \
|
||||||
bin/debug_multi_in \
|
bin/debug_multi_in \
|
||||||
bin/debug_multi_out \
|
bin/debug_multi_out \
|
||||||
bin/debug_record \
|
bin/debug_record \
|
||||||
bin/debug_record_reuse \
|
bin/debug_record_reuse \
|
||||||
bin/debug_sine_amp \
|
bin/debug_sine_amp \
|
||||||
bin/debug_sine \
|
bin/debug_sine \
|
||||||
bin/debug_sine_formats \
|
bin/debug_sine_formats \
|
||||||
bin/debug_srate \
|
bin/debug_srate \
|
||||||
bin/debug_test1
|
bin/debug_test1
|
||||||
|
|
||||||
OBJS := $(COMMON_OBJS) $(OTHER_OBJS)
|
OBJS := $(COMMON_OBJS) $(OTHER_OBJS)
|
||||||
|
|
||||||
LTOBJS := $(OBJS:.o=.lo)
|
LTOBJS := $(OBJS:.o=.lo)
|
||||||
|
|
||||||
SRC_DIRS = \
|
SRC_DIRS = \
|
||||||
src/common \
|
src/common \
|
||||||
src/hostapi/alsa \
|
src/hostapi/alsa \
|
||||||
src/hostapi/asihpi \
|
src/hostapi/asihpi \
|
||||||
src/hostapi/asio \
|
src/hostapi/asio \
|
||||||
src/hostapi/coreaudio \
|
src/hostapi/coreaudio \
|
||||||
src/hostapi/dsound \
|
src/hostapi/dsound \
|
||||||
src/hostapi/jack \
|
src/hostapi/jack \
|
||||||
src/hostapi/oss \
|
src/hostapi/oss \
|
||||||
src/hostapi/wasapi \
|
src/hostapi/wasapi \
|
||||||
src/hostapi/wdmks \
|
src/hostapi/wdmks \
|
||||||
src/hostapi/wmme \
|
src/hostapi/wmme \
|
||||||
src/os/unix \
|
src/os/unix \
|
||||||
src/os/win
|
src/os/win
|
||||||
|
|
||||||
SUBDIRS =
|
SUBDIRS =
|
||||||
@ENABLE_CXX_TRUE@SUBDIRS += bindings/cpp
|
@ENABLE_CXX_TRUE@SUBDIRS += bindings/cpp
|
||||||
|
|
||||||
all: lib/$(PALIB) all-recursive tests examples selftests
|
all: lib/$(PALIB) all-recursive tests examples selftests
|
||||||
|
|
||||||
tests: bin-stamp $(TESTS)
|
tests: bin-stamp $(TESTS)
|
||||||
|
|
||||||
examples: bin-stamp $(EXAMPLES)
|
examples: bin-stamp $(EXAMPLES)
|
||||||
|
|
||||||
selftests: bin-stamp $(SELFTESTS)
|
selftests: bin-stamp $(SELFTESTS)
|
||||||
|
|
||||||
loopback: bin-stamp bin/paloopback
|
loopback: bin-stamp bin/paloopback
|
||||||
|
|
||||||
# With ASIO enabled we must link libportaudio and all test programs with CXX
|
# With ASIO enabled we must link libportaudio and all test programs with CXX
|
||||||
lib/$(PALIB): lib-stamp $(LTOBJS) $(MAKEFILE) $(PAINC)
|
lib/$(PALIB): lib-stamp $(LTOBJS) $(MAKEFILE) $(PAINC)
|
||||||
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) $(PA_LDFLAGS) -o lib/$(PALIB) $(LTOBJS) $(DLL_LIBS)
|
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) $(PA_LDFLAGS) -o lib/$(PALIB) $(LTOBJS) $(DLL_LIBS)
|
||||||
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) $(PA_LDFLAGS) -o lib/$(PALIB) $(LTOBJS) $(DLL_LIBS)
|
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) $(PA_LDFLAGS) -o lib/$(PALIB) $(LTOBJS) $(DLL_LIBS)
|
||||||
|
|
||||||
$(ALL_TESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) test/%.c
|
$(ALL_TESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) test/%.c
|
||||||
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
|
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
|
||||||
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
|
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
|
||||||
|
|
||||||
$(EXAMPLES): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) examples/%.c
|
$(EXAMPLES): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) examples/%.c
|
||||||
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
|
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
|
||||||
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
|
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
|
||||||
|
|
||||||
$(SELFTESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) qa/%.c
|
$(SELFTESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) qa/%.c
|
||||||
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
|
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
|
||||||
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
|
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
|
||||||
|
|
||||||
bin/paloopback: lib/$(PALIB) $(MAKEFILE) $(PAINC) $(LOOPBACK_OBJS)
|
bin/paloopback: lib/$(PALIB) $(MAKEFILE) $(PAINC) $(LOOPBACK_OBJS)
|
||||||
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
|
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
|
||||||
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
|
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
|
||||||
|
|
||||||
install: lib/$(PALIB) portaudio-2.0.pc
|
install: lib/$(PALIB) portaudio-2.0.pc
|
||||||
$(INSTALL) -d $(DESTDIR)$(libdir)
|
$(INSTALL) -d $(DESTDIR)$(libdir)
|
||||||
$(LIBTOOL) --mode=install $(INSTALL) lib/$(PALIB) $(DESTDIR)$(libdir)
|
$(LIBTOOL) --mode=install $(INSTALL) lib/$(PALIB) $(DESTDIR)$(libdir)
|
||||||
$(INSTALL) -d $(DESTDIR)$(includedir)
|
$(INSTALL) -d $(DESTDIR)$(includedir)
|
||||||
for include in $(INCLUDES); do \
|
for include in $(INCLUDES); do \
|
||||||
$(INSTALL_DATA) -m 644 $(top_srcdir)/include/$$include $(DESTDIR)$(includedir)/$$include; \
|
$(INSTALL_DATA) -m 644 $(top_srcdir)/include/$$include $(DESTDIR)$(includedir)/$$include; \
|
||||||
done
|
done
|
||||||
$(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
|
$(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
|
||||||
$(INSTALL) -m 644 portaudio-2.0.pc $(DESTDIR)$(libdir)/pkgconfig/portaudio-2.0.pc
|
$(INSTALL) -m 644 portaudio-2.0.pc $(DESTDIR)$(libdir)/pkgconfig/portaudio-2.0.pc
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "------------------------------------------------------------"
|
@echo "------------------------------------------------------------"
|
||||||
@echo "PortAudio was successfully installed."
|
@echo "PortAudio was successfully installed."
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "On some systems (e.g. Linux) you should run 'ldconfig' now"
|
@echo "On some systems (e.g. Linux) you should run 'ldconfig' now"
|
||||||
@echo "to make the shared object available. You may also need to"
|
@echo "to make the shared object available. You may also need to"
|
||||||
@echo "modify your LD_LIBRARY_PATH environment variable to include"
|
@echo "modify your LD_LIBRARY_PATH environment variable to include"
|
||||||
@echo "the directory $(libdir)"
|
@echo "the directory $(libdir)"
|
||||||
@echo "------------------------------------------------------------"
|
@echo "------------------------------------------------------------"
|
||||||
@echo ""
|
@echo ""
|
||||||
$(MAKE) install-recursive
|
$(MAKE) install-recursive
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(PALIB)
|
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(PALIB)
|
||||||
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(includedir)/portaudio.h
|
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(includedir)/portaudio.h
|
||||||
$(MAKE) uninstall-recursive
|
$(MAKE) uninstall-recursive
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(LIBTOOL) --mode=clean rm -f $(LTOBJS) $(LOOPBACK_OBJS) $(ALL_TESTS) lib/$(PALIB)
|
$(LIBTOOL) --mode=clean rm -f $(LTOBJS) $(LOOPBACK_OBJS) $(ALL_TESTS) lib/$(PALIB)
|
||||||
$(RM) bin-stamp lib-stamp
|
$(RM) bin-stamp lib-stamp
|
||||||
-$(RM) -r bin lib
|
-$(RM) -r bin lib
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
$(RM) config.log config.status Makefile libtool portaudio-2.0.pc
|
$(RM) config.log config.status Makefile libtool portaudio-2.0.pc
|
||||||
|
|
||||||
%.o: %.c $(MAKEFILE) $(PAINC)
|
%.o: %.c $(MAKEFILE) $(PAINC)
|
||||||
$(CC) -c $(CFLAGS) $< -o $@
|
$(CC) -c $(CFLAGS) $< -o $@
|
||||||
|
|
||||||
%.lo: %.c $(MAKEFILE) $(PAINC)
|
%.lo: %.c $(MAKEFILE) $(PAINC)
|
||||||
$(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) $< -o $@
|
$(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) $< -o $@
|
||||||
|
|
||||||
%.lo: %.cpp $(MAKEFILE) $(PAINC)
|
%.lo: %.cpp $(MAKEFILE) $(PAINC)
|
||||||
$(LIBTOOL) --mode=compile --tag=CXX $(CXX) -c $(CXXFLAGS) $< -o $@
|
$(LIBTOOL) --mode=compile --tag=CXX $(CXX) -c $(CXXFLAGS) $< -o $@
|
||||||
|
|
||||||
%.o: %.cpp $(MAKEFILE) $(PAINC)
|
%.o: %.cpp $(MAKEFILE) $(PAINC)
|
||||||
$(CXX) -c $(CXXFLAGS) $< -o $@
|
$(CXX) -c $(CXXFLAGS) $< -o $@
|
||||||
|
|
||||||
%.o: %.asm
|
%.o: %.asm
|
||||||
$(NASM) $(NASMOPT) -o $@ $<
|
$(NASM) $(NASMOPT) -o $@ $<
|
||||||
|
|
||||||
bin-stamp:
|
bin-stamp:
|
||||||
-mkdir bin
|
-mkdir bin
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
lib-stamp:
|
lib-stamp:
|
||||||
-mkdir lib
|
-mkdir lib
|
||||||
-mkdir -p $(SRC_DIRS)
|
-mkdir -p $(SRC_DIRS)
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
Makefile: Makefile.in config.status
|
Makefile: Makefile.in config.status
|
||||||
$(SHELL) config.status
|
$(SHELL) config.status
|
||||||
|
|
||||||
all-recursive:
|
all-recursive:
|
||||||
if test -n "$(SUBDIRS)" ; then for dir in "$(SUBDIRS)"; do $(MAKE) -C $$dir all; done ; fi
|
if test -n "$(SUBDIRS)" ; then for dir in "$(SUBDIRS)"; do $(MAKE) -C $$dir all; done ; fi
|
||||||
|
|
||||||
install-recursive:
|
install-recursive:
|
||||||
if test -n "$(SUBDIRS)" ; then for dir in "$(SUBDIRS)"; do $(MAKE) -C $$dir install; done ; fi
|
if test -n "$(SUBDIRS)" ; then for dir in "$(SUBDIRS)"; do $(MAKE) -C $$dir install; done ; fi
|
||||||
|
|
||||||
uninstall-recursive:
|
uninstall-recursive:
|
||||||
if test -n "$(SUBDIRS)" ; then for dir in "$(SUBDIRS)"; do $(MAKE) -C $$dir uninstall; done ; fi
|
if test -n "$(SUBDIRS)" ; then for dir in "$(SUBDIRS)"; do $(MAKE) -C $$dir uninstall; done ; fi
|
||||||
|
|
|
@ -1,98 +1,98 @@
|
||||||
README for PortAudio
|
README for PortAudio
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PortAudio Portable Real-Time Audio Library
|
* PortAudio Portable Real-Time Audio Library
|
||||||
* Latest Version at: http://www.portaudio.com
|
* Latest Version at: http://www.portaudio.com
|
||||||
*
|
*
|
||||||
* Copyright (c) 1999-2008 Phil Burk and Ross Bencina
|
* Copyright (c) 1999-2008 Phil Burk and Ross Bencina
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
* a copy of this software and associated documentation files
|
* a copy of this software and associated documentation files
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
* (the "Software"), to deal in the Software without restriction,
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
* including without limitation the rights to use, copy, modify, merge,
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
* and to permit persons to whom the Software is furnished to do so,
|
||||||
* subject to the following conditions:
|
* subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be
|
* The above copyright notice and this permission notice shall be
|
||||||
* included in all copies or substantial portions of the Software.
|
* included in all copies or substantial portions of the Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
||||||
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The text above constitutes the entire PortAudio license; however,
|
* The text above constitutes the entire PortAudio license; however,
|
||||||
* the PortAudio community also makes the following non-binding requests:
|
* the PortAudio community also makes the following non-binding requests:
|
||||||
*
|
*
|
||||||
* Any person wishing to distribute modifications to the Software is
|
* Any person wishing to distribute modifications to the Software is
|
||||||
* requested to send the modifications to the original developer so that
|
* requested to send the modifications to the original developer so that
|
||||||
* they can be incorporated into the canonical version. It is also
|
* they can be incorporated into the canonical version. It is also
|
||||||
* requested that these non-binding requests be included along with the
|
* requested that these non-binding requests be included along with the
|
||||||
* license above.
|
* license above.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
PortAudio is a portable audio I/O library designed for cross-platform
|
PortAudio is a portable audio I/O library designed for cross-platform
|
||||||
support of audio. It uses either a callback mechanism to request audio
|
support of audio. It uses either a callback mechanism to request audio
|
||||||
processing, or blocking read/write calls to buffer data between the
|
processing, or blocking read/write calls to buffer data between the
|
||||||
native audio subsystem and the client. Audio can be processed in various
|
native audio subsystem and the client. Audio can be processed in various
|
||||||
formats, including 32 bit floating point, and will be converted to the
|
formats, including 32 bit floating point, and will be converted to the
|
||||||
native format internally.
|
native format internally.
|
||||||
|
|
||||||
Documentation:
|
Documentation:
|
||||||
Documentation is available in "/doc/html/index.html"
|
Documentation is available in "/doc/html/index.html"
|
||||||
Also see "src/common/portaudio.h" for API spec.
|
Also see "src/common/portaudio.h" for API spec.
|
||||||
Also see http://www.portaudio.com/docs/
|
Also see http://www.portaudio.com/docs/
|
||||||
And see the "test/" directory for many examples of usage
|
And see the "test/" directory for many examples of usage
|
||||||
(we suggest "test/patest_saw.c" for an example)
|
(we suggest "test/patest_saw.c" for an example)
|
||||||
|
|
||||||
For information on compiling programs with PortAudio, please see the
|
For information on compiling programs with PortAudio, please see the
|
||||||
tutorial at:
|
tutorial at:
|
||||||
|
|
||||||
http://portaudio.com/trac/wiki/TutorialDir/TutorialStart
|
http://portaudio.com/trac/wiki/TutorialDir/TutorialStart
|
||||||
|
|
||||||
We have an active mailing list for user and developer discussions.
|
We have an active mailing list for user and developer discussions.
|
||||||
Please feel free to join. See http://www.portaudio.com for details.
|
Please feel free to join. See http://www.portaudio.com for details.
|
||||||
|
|
||||||
|
|
||||||
Important Files and Folders:
|
Important Files and Folders:
|
||||||
include/portaudio.h = header file for PortAudio API. Specifies API.
|
include/portaudio.h = header file for PortAudio API. Specifies API.
|
||||||
src/common/ = platform independant code, host independant
|
src/common/ = platform independant code, host independant
|
||||||
code for all implementations.
|
code for all implementations.
|
||||||
src/os = os specific (but host api neutral) code
|
src/os = os specific (but host api neutral) code
|
||||||
src/hostapi = implementations for different host apis
|
src/hostapi = implementations for different host apis
|
||||||
|
|
||||||
|
|
||||||
Host API Implementations:
|
Host API Implementations:
|
||||||
src/hostapi/alsa = Advanced Linux Sound Architecture (ALSA)
|
src/hostapi/alsa = Advanced Linux Sound Architecture (ALSA)
|
||||||
src/hostapi/asihpi = AudioScience HPI
|
src/hostapi/asihpi = AudioScience HPI
|
||||||
src/hostapi/asio = ASIO for Windows and Macintosh
|
src/hostapi/asio = ASIO for Windows and Macintosh
|
||||||
src/hostapi/coreaudio = Macintosh Core Audio for OS X
|
src/hostapi/coreaudio = Macintosh Core Audio for OS X
|
||||||
src/hostapi/dsound = Windows Direct Sound
|
src/hostapi/dsound = Windows Direct Sound
|
||||||
src/hostapi/jack = JACK Audio Connection Kit
|
src/hostapi/jack = JACK Audio Connection Kit
|
||||||
src/hostapi/oss = Unix Open Sound System (OSS)
|
src/hostapi/oss = Unix Open Sound System (OSS)
|
||||||
src/hostapi/wasapi = Windows Vista WASAPI
|
src/hostapi/wasapi = Windows Vista WASAPI
|
||||||
src/hostapi/wdmks = Windows WDM Kernel Streaming
|
src/hostapi/wdmks = Windows WDM Kernel Streaming
|
||||||
src/hostapi/wmme = Windows MultiMedia Extensions (MME)
|
src/hostapi/wmme = Windows MultiMedia Extensions (MME)
|
||||||
|
|
||||||
|
|
||||||
Test Programs:
|
Test Programs:
|
||||||
test/pa_fuzz.c = guitar fuzz box
|
test/pa_fuzz.c = guitar fuzz box
|
||||||
test/pa_devs.c = print a list of available devices
|
test/pa_devs.c = print a list of available devices
|
||||||
test/pa_minlat.c = determine minimum latency for your machine
|
test/pa_minlat.c = determine minimum latency for your machine
|
||||||
test/paqa_devs.c = self test that opens all devices
|
test/paqa_devs.c = self test that opens all devices
|
||||||
test/paqa_errs.c = test error detection and reporting
|
test/paqa_errs.c = test error detection and reporting
|
||||||
test/patest_clip.c = hear a sine wave clipped and unclipped
|
test/patest_clip.c = hear a sine wave clipped and unclipped
|
||||||
test/patest_dither.c = hear effects of dithering (extremely subtle)
|
test/patest_dither.c = hear effects of dithering (extremely subtle)
|
||||||
test/patest_pink.c = fun with pink noise
|
test/patest_pink.c = fun with pink noise
|
||||||
test/patest_record.c = record and playback some audio
|
test/patest_record.c = record and playback some audio
|
||||||
test/patest_maxsines.c = how many sine waves can we play? Tests Pa_GetCPULoad().
|
test/patest_maxsines.c = how many sine waves can we play? Tests Pa_GetCPULoad().
|
||||||
test/patest_sine.c = output a sine wave in a simple PA app
|
test/patest_sine.c = output a sine wave in a simple PA app
|
||||||
test/patest_sync.c = test syncronization of audio and video
|
test/patest_sync.c = test syncronization of audio and video
|
||||||
test/patest_wire.c = pass input to output, wire simulator
|
test/patest_wire.c = pass input to output, wire simulator
|
||||||
|
|
|
@ -1,197 +1,197 @@
|
||||||
import sys, os.path
|
import sys, os.path
|
||||||
|
|
||||||
def rsplit(toSplit, sub, max=-1):
|
def rsplit(toSplit, sub, max=-1):
|
||||||
""" str.rsplit seems to have been introduced in 2.4 :( """
|
""" str.rsplit seems to have been introduced in 2.4 :( """
|
||||||
l = []
|
l = []
|
||||||
i = 0
|
i = 0
|
||||||
while i != max:
|
while i != max:
|
||||||
try: idx = toSplit.rindex(sub)
|
try: idx = toSplit.rindex(sub)
|
||||||
except ValueError: break
|
except ValueError: break
|
||||||
|
|
||||||
toSplit, splitOff = toSplit[:idx], toSplit[idx + len(sub):]
|
toSplit, splitOff = toSplit[:idx], toSplit[idx + len(sub):]
|
||||||
l.insert(0, splitOff)
|
l.insert(0, splitOff)
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
l.insert(0, toSplit)
|
l.insert(0, toSplit)
|
||||||
return l
|
return l
|
||||||
|
|
||||||
sconsDir = os.path.join("build", "scons")
|
sconsDir = os.path.join("build", "scons")
|
||||||
SConscript(os.path.join(sconsDir, "SConscript_common"))
|
SConscript(os.path.join(sconsDir, "SConscript_common"))
|
||||||
Import("Platform", "Posix", "ApiVer")
|
Import("Platform", "Posix", "ApiVer")
|
||||||
|
|
||||||
# SConscript_opts exports PortAudio options
|
# SConscript_opts exports PortAudio options
|
||||||
optsDict = SConscript(os.path.join(sconsDir, "SConscript_opts"))
|
optsDict = SConscript(os.path.join(sconsDir, "SConscript_opts"))
|
||||||
optionsCache = os.path.join(sconsDir, "options.cache") # Save options between runs in this cache
|
optionsCache = os.path.join(sconsDir, "options.cache") # Save options between runs in this cache
|
||||||
options = Options(optionsCache, args=ARGUMENTS)
|
options = Options(optionsCache, args=ARGUMENTS)
|
||||||
for k in ("Installation Dirs", "Build Targets", "Host APIs", "Build Parameters", "Bindings"):
|
for k in ("Installation Dirs", "Build Targets", "Host APIs", "Build Parameters", "Bindings"):
|
||||||
options.AddOptions(*optsDict[k])
|
options.AddOptions(*optsDict[k])
|
||||||
# Propagate options into environment
|
# Propagate options into environment
|
||||||
env = Environment(options=options)
|
env = Environment(options=options)
|
||||||
# Save options for next run
|
# Save options for next run
|
||||||
options.Save(optionsCache, env)
|
options.Save(optionsCache, env)
|
||||||
# Generate help text for options
|
# Generate help text for options
|
||||||
env.Help(options.GenerateHelpText(env))
|
env.Help(options.GenerateHelpText(env))
|
||||||
|
|
||||||
buildDir = os.path.join("#", sconsDir, env["PLATFORM"])
|
buildDir = os.path.join("#", sconsDir, env["PLATFORM"])
|
||||||
|
|
||||||
# Determine parameters to build tools
|
# Determine parameters to build tools
|
||||||
if Platform in Posix:
|
if Platform in Posix:
|
||||||
threadCFlags = ''
|
threadCFlags = ''
|
||||||
if Platform != 'darwin':
|
if Platform != 'darwin':
|
||||||
threadCFlags = "-pthread "
|
threadCFlags = "-pthread "
|
||||||
baseLinkFlags = threadCFlags
|
baseLinkFlags = threadCFlags
|
||||||
baseCxxFlags = baseCFlags = "-Wall -pedantic -pipe " + threadCFlags
|
baseCxxFlags = baseCFlags = "-Wall -pedantic -pipe " + threadCFlags
|
||||||
debugCxxFlags = debugCFlags = "-g"
|
debugCxxFlags = debugCFlags = "-g"
|
||||||
optCxxFlags = optCFlags = "-O2"
|
optCxxFlags = optCFlags = "-O2"
|
||||||
env.Append(CCFLAGS = baseCFlags)
|
env.Append(CCFLAGS = baseCFlags)
|
||||||
env.Append(CXXFLAGS = baseCxxFlags)
|
env.Append(CXXFLAGS = baseCxxFlags)
|
||||||
env.Append(LINKFLAGS = baseLinkFlags)
|
env.Append(LINKFLAGS = baseLinkFlags)
|
||||||
if env["enableDebug"]:
|
if env["enableDebug"]:
|
||||||
env.AppendUnique(CCFLAGS=debugCFlags.split())
|
env.AppendUnique(CCFLAGS=debugCFlags.split())
|
||||||
env.AppendUnique(CXXFLAGS=debugCxxFlags.split())
|
env.AppendUnique(CXXFLAGS=debugCxxFlags.split())
|
||||||
if env["enableOptimize"]:
|
if env["enableOptimize"]:
|
||||||
env.AppendUnique(CCFLAGS=optCFlags.split())
|
env.AppendUnique(CCFLAGS=optCFlags.split())
|
||||||
env.AppendUnique(CXXFLAGS=optCxxFlags.split())
|
env.AppendUnique(CXXFLAGS=optCxxFlags.split())
|
||||||
if not env["enableAsserts"]:
|
if not env["enableAsserts"]:
|
||||||
env.AppendUnique(CPPDEFINES=["-DNDEBUG"])
|
env.AppendUnique(CPPDEFINES=["-DNDEBUG"])
|
||||||
if env["customCFlags"]:
|
if env["customCFlags"]:
|
||||||
env.Append(CCFLAGS=Split(env["customCFlags"]))
|
env.Append(CCFLAGS=Split(env["customCFlags"]))
|
||||||
if env["customCxxFlags"]:
|
if env["customCxxFlags"]:
|
||||||
env.Append(CXXFLAGS=Split(env["customCxxFlags"]))
|
env.Append(CXXFLAGS=Split(env["customCxxFlags"]))
|
||||||
if env["customLinkFlags"]:
|
if env["customLinkFlags"]:
|
||||||
env.Append(LINKFLAGS=Split(env["customLinkFlags"]))
|
env.Append(LINKFLAGS=Split(env["customLinkFlags"]))
|
||||||
|
|
||||||
env.Append(CPPPATH=[os.path.join("#", "include"), "common"])
|
env.Append(CPPPATH=[os.path.join("#", "include"), "common"])
|
||||||
|
|
||||||
# Store all signatures in one file, otherwise .sconsign files will get installed along with our own files
|
# Store all signatures in one file, otherwise .sconsign files will get installed along with our own files
|
||||||
env.SConsignFile(os.path.join(sconsDir, ".sconsign"))
|
env.SConsignFile(os.path.join(sconsDir, ".sconsign"))
|
||||||
|
|
||||||
env.SConscriptChdir(False)
|
env.SConscriptChdir(False)
|
||||||
sources, sharedLib, staticLib, tests, portEnv, hostApis = env.SConscript(os.path.join("src", "SConscript"),
|
sources, sharedLib, staticLib, tests, portEnv, hostApis = env.SConscript(os.path.join("src", "SConscript"),
|
||||||
build_dir=buildDir, duplicate=False, exports=["env"])
|
build_dir=buildDir, duplicate=False, exports=["env"])
|
||||||
|
|
||||||
if Platform in Posix:
|
if Platform in Posix:
|
||||||
prefix = env["prefix"]
|
prefix = env["prefix"]
|
||||||
includeDir = os.path.join(prefix, "include")
|
includeDir = os.path.join(prefix, "include")
|
||||||
libDir = os.path.join(prefix, "lib")
|
libDir = os.path.join(prefix, "lib")
|
||||||
env.Alias("install", includeDir)
|
env.Alias("install", includeDir)
|
||||||
env.Alias("install", libDir)
|
env.Alias("install", libDir)
|
||||||
|
|
||||||
# pkg-config
|
# pkg-config
|
||||||
|
|
||||||
def installPkgconfig(env, target, source):
|
def installPkgconfig(env, target, source):
|
||||||
tgt = str(target[0])
|
tgt = str(target[0])
|
||||||
src = str(source[0])
|
src = str(source[0])
|
||||||
f = open(src)
|
f = open(src)
|
||||||
try: txt = f.read()
|
try: txt = f.read()
|
||||||
finally: f.close()
|
finally: f.close()
|
||||||
txt = txt.replace("@prefix@", prefix)
|
txt = txt.replace("@prefix@", prefix)
|
||||||
txt = txt.replace("@exec_prefix@", prefix)
|
txt = txt.replace("@exec_prefix@", prefix)
|
||||||
txt = txt.replace("@libdir@", libDir)
|
txt = txt.replace("@libdir@", libDir)
|
||||||
txt = txt.replace("@includedir@", includeDir)
|
txt = txt.replace("@includedir@", includeDir)
|
||||||
txt = txt.replace("@LIBS@", " ".join(["-l%s" % l for l in portEnv["LIBS"]]))
|
txt = txt.replace("@LIBS@", " ".join(["-l%s" % l for l in portEnv["LIBS"]]))
|
||||||
txt = txt.replace("@THREAD_CFLAGS@", threadCFlags)
|
txt = txt.replace("@THREAD_CFLAGS@", threadCFlags)
|
||||||
|
|
||||||
f = open(tgt, "w")
|
f = open(tgt, "w")
|
||||||
try: f.write(txt)
|
try: f.write(txt)
|
||||||
finally: f.close()
|
finally: f.close()
|
||||||
|
|
||||||
pkgconfigTgt = "portaudio-%d.0.pc" % int(ApiVer.split(".", 1)[0])
|
pkgconfigTgt = "portaudio-%d.0.pc" % int(ApiVer.split(".", 1)[0])
|
||||||
env.Command(os.path.join(libDir, "pkgconfig", pkgconfigTgt),
|
env.Command(os.path.join(libDir, "pkgconfig", pkgconfigTgt),
|
||||||
os.path.join("#", pkgconfigTgt + ".in"), installPkgconfig)
|
os.path.join("#", pkgconfigTgt + ".in"), installPkgconfig)
|
||||||
|
|
||||||
# Default to None, since if the user disables all targets and no Default is set, all targets
|
# Default to None, since if the user disables all targets and no Default is set, all targets
|
||||||
# are built by default
|
# are built by default
|
||||||
env.Default(None)
|
env.Default(None)
|
||||||
if env["enableTests"]:
|
if env["enableTests"]:
|
||||||
env.Default(tests)
|
env.Default(tests)
|
||||||
if env["enableShared"]:
|
if env["enableShared"]:
|
||||||
env.Default(sharedLib)
|
env.Default(sharedLib)
|
||||||
|
|
||||||
if Platform in Posix:
|
if Platform in Posix:
|
||||||
def symlink(env, target, source):
|
def symlink(env, target, source):
|
||||||
trgt = str(target[0])
|
trgt = str(target[0])
|
||||||
src = str(source[0])
|
src = str(source[0])
|
||||||
|
|
||||||
if os.path.islink(trgt) or os.path.exists(trgt):
|
if os.path.islink(trgt) or os.path.exists(trgt):
|
||||||
os.remove(trgt)
|
os.remove(trgt)
|
||||||
os.symlink(os.path.basename(src), trgt)
|
os.symlink(os.path.basename(src), trgt)
|
||||||
|
|
||||||
major, minor, micro = [int(c) for c in ApiVer.split(".")]
|
major, minor, micro = [int(c) for c in ApiVer.split(".")]
|
||||||
|
|
||||||
soFile = "%s.%s" % (os.path.basename(str(sharedLib[0])), ApiVer)
|
soFile = "%s.%s" % (os.path.basename(str(sharedLib[0])), ApiVer)
|
||||||
env.InstallAs(target=os.path.join(libDir, soFile), source=sharedLib)
|
env.InstallAs(target=os.path.join(libDir, soFile), source=sharedLib)
|
||||||
# Install symlinks
|
# Install symlinks
|
||||||
symTrgt = os.path.join(libDir, soFile)
|
symTrgt = os.path.join(libDir, soFile)
|
||||||
env.Command(os.path.join(libDir, "libportaudio.so.%d.%d" % (major, minor)),
|
env.Command(os.path.join(libDir, "libportaudio.so.%d.%d" % (major, minor)),
|
||||||
symTrgt, symlink)
|
symTrgt, symlink)
|
||||||
symTrgt = rsplit(symTrgt, ".", 1)[0]
|
symTrgt = rsplit(symTrgt, ".", 1)[0]
|
||||||
env.Command(os.path.join(libDir, "libportaudio.so.%d" % major), symTrgt, symlink)
|
env.Command(os.path.join(libDir, "libportaudio.so.%d" % major), symTrgt, symlink)
|
||||||
symTrgt = rsplit(symTrgt, ".", 1)[0]
|
symTrgt = rsplit(symTrgt, ".", 1)[0]
|
||||||
env.Command(os.path.join(libDir, "libportaudio.so"), symTrgt, symlink)
|
env.Command(os.path.join(libDir, "libportaudio.so"), symTrgt, symlink)
|
||||||
|
|
||||||
if env["enableStatic"]:
|
if env["enableStatic"]:
|
||||||
env.Default(staticLib)
|
env.Default(staticLib)
|
||||||
env.Install(libDir, staticLib)
|
env.Install(libDir, staticLib)
|
||||||
|
|
||||||
env.Install(includeDir, os.path.join("include", "portaudio.h"))
|
env.Install(includeDir, os.path.join("include", "portaudio.h"))
|
||||||
|
|
||||||
|
|
||||||
if env["enableCxx"]:
|
if env["enableCxx"]:
|
||||||
env.SConscriptChdir(True)
|
env.SConscriptChdir(True)
|
||||||
cxxEnv = env.Copy()
|
cxxEnv = env.Copy()
|
||||||
sharedLibs, staticLibs, headers = env.SConscript(os.path.join("bindings", "cpp", "SConscript"),
|
sharedLibs, staticLibs, headers = env.SConscript(os.path.join("bindings", "cpp", "SConscript"),
|
||||||
exports={"env": cxxEnv, "buildDir": buildDir}, build_dir=os.path.join(buildDir, "portaudiocpp"), duplicate=False)
|
exports={"env": cxxEnv, "buildDir": buildDir}, build_dir=os.path.join(buildDir, "portaudiocpp"), duplicate=False)
|
||||||
if env["enableStatic"]:
|
if env["enableStatic"]:
|
||||||
env.Default(staticLibs)
|
env.Default(staticLibs)
|
||||||
env.Install(libDir, staticLibs)
|
env.Install(libDir, staticLibs)
|
||||||
if env["enableShared"]:
|
if env["enableShared"]:
|
||||||
env.Default(sharedLibs)
|
env.Default(sharedLibs)
|
||||||
env.Install(libDir, sharedLibs)
|
env.Install(libDir, sharedLibs)
|
||||||
env.Install(os.path.join(includeDir, "portaudiocpp"), headers)
|
env.Install(os.path.join(includeDir, "portaudiocpp"), headers)
|
||||||
|
|
||||||
# Generate portaudio_config.h header with compile-time definitions of which PA
|
# Generate portaudio_config.h header with compile-time definitions of which PA
|
||||||
# back-ends are available, and which includes back-end extension headers
|
# back-ends are available, and which includes back-end extension headers
|
||||||
|
|
||||||
# Host-specific headers
|
# Host-specific headers
|
||||||
hostApiHeaders = {"ALSA": "pa_linux_alsa.h",
|
hostApiHeaders = {"ALSA": "pa_linux_alsa.h",
|
||||||
"ASIO": "pa_asio.h",
|
"ASIO": "pa_asio.h",
|
||||||
"COREAUDIO": "pa_mac_core.h",
|
"COREAUDIO": "pa_mac_core.h",
|
||||||
"JACK": "pa_jack.h",
|
"JACK": "pa_jack.h",
|
||||||
"WMME": "pa_winwmme.h",
|
"WMME": "pa_winwmme.h",
|
||||||
}
|
}
|
||||||
|
|
||||||
def buildConfigH(target, source, env):
|
def buildConfigH(target, source, env):
|
||||||
"""builder for portaudio_config.h"""
|
"""builder for portaudio_config.h"""
|
||||||
global hostApiHeaders, hostApis
|
global hostApiHeaders, hostApis
|
||||||
out = ""
|
out = ""
|
||||||
for hostApi in hostApis:
|
for hostApi in hostApis:
|
||||||
out += "#define PA_HAVE_%s\n" % hostApi
|
out += "#define PA_HAVE_%s\n" % hostApi
|
||||||
|
|
||||||
hostApiSpecificHeader = hostApiHeaders.get(hostApi, None)
|
hostApiSpecificHeader = hostApiHeaders.get(hostApi, None)
|
||||||
if hostApiSpecificHeader:
|
if hostApiSpecificHeader:
|
||||||
out += "#include \"%s\"\n" % hostApiSpecificHeader
|
out += "#include \"%s\"\n" % hostApiSpecificHeader
|
||||||
|
|
||||||
out += "\n"
|
out += "\n"
|
||||||
# Strip the last newline
|
# Strip the last newline
|
||||||
if out and out[-1] == "\n":
|
if out and out[-1] == "\n":
|
||||||
out = out[:-1]
|
out = out[:-1]
|
||||||
|
|
||||||
f = file(str(target[0]), 'w')
|
f = file(str(target[0]), 'w')
|
||||||
try: f.write(out)
|
try: f.write(out)
|
||||||
finally: f.close()
|
finally: f.close()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
# Define the builder for the config header
|
# Define the builder for the config header
|
||||||
env.Append(BUILDERS={"portaudioConfig": env.Builder(
|
env.Append(BUILDERS={"portaudioConfig": env.Builder(
|
||||||
action=Action(buildConfigH), target_factory=env.fs.File)})
|
action=Action(buildConfigH), target_factory=env.fs.File)})
|
||||||
|
|
||||||
confH = env.portaudioConfig(File("portaudio_config.h", "include"),
|
confH = env.portaudioConfig(File("portaudio_config.h", "include"),
|
||||||
File("portaudio.h", "include"))
|
File("portaudio.h", "include"))
|
||||||
env.Default(confH)
|
env.Default(confH)
|
||||||
env.Install(os.path.join(includeDir, "portaudio"), confH)
|
env.Install(os.path.join(includeDir, "portaudio"), confH)
|
||||||
|
|
||||||
for api in hostApis:
|
for api in hostApis:
|
||||||
if api in hostApiHeaders:
|
if api in hostApiHeaders:
|
||||||
env.Install(os.path.join(includeDir, "portaudio"),
|
env.Install(os.path.join(includeDir, "portaudio"),
|
||||||
File(hostApiHeaders[api], "include"))
|
File(hostApiHeaders[api], "include"))
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,18 +1,18 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup Label="UserMacros">
|
<PropertyGroup Label="UserMacros">
|
||||||
<ProjectRootDir>$(ProjectDir)\..\..</ProjectRootDir>
|
<ProjectRootDir>$(ProjectDir)\..\..</ProjectRootDir>
|
||||||
<SvnRootDir>$(ProjectRootDir)\..\..</SvnRootDir>
|
<SvnRootDir>$(ProjectRootDir)\..\..</SvnRootDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BuildMacro Include="ProjectRootDir">
|
<BuildMacro Include="ProjectRootDir">
|
||||||
<Value>$(ProjectRootDir)</Value>
|
<Value>$(ProjectRootDir)</Value>
|
||||||
</BuildMacro>
|
</BuildMacro>
|
||||||
<BuildMacro Include="SvnRootDir">
|
<BuildMacro Include="SvnRootDir">
|
||||||
<Value>$(SvnRootDir)</Value>
|
<Value>$(SvnRootDir)</Value>
|
||||||
</BuildMacro>
|
</BuildMacro>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,50 +1,50 @@
|
||||||
EXPORTS
|
EXPORTS
|
||||||
|
|
||||||
;
|
;
|
||||||
Pa_GetVersion @1
|
Pa_GetVersion @1
|
||||||
Pa_GetVersionText @2
|
Pa_GetVersionText @2
|
||||||
Pa_GetErrorText @3
|
Pa_GetErrorText @3
|
||||||
Pa_Initialize @4
|
Pa_Initialize @4
|
||||||
Pa_Terminate @5
|
Pa_Terminate @5
|
||||||
Pa_GetHostApiCount @6
|
Pa_GetHostApiCount @6
|
||||||
Pa_GetDefaultHostApi @7
|
Pa_GetDefaultHostApi @7
|
||||||
Pa_GetHostApiInfo @8
|
Pa_GetHostApiInfo @8
|
||||||
Pa_HostApiTypeIdToHostApiIndex @9
|
Pa_HostApiTypeIdToHostApiIndex @9
|
||||||
Pa_HostApiDeviceIndexToDeviceIndex @10
|
Pa_HostApiDeviceIndexToDeviceIndex @10
|
||||||
Pa_GetLastHostErrorInfo @11
|
Pa_GetLastHostErrorInfo @11
|
||||||
Pa_GetDeviceCount @12
|
Pa_GetDeviceCount @12
|
||||||
Pa_GetDefaultInputDevice @13
|
Pa_GetDefaultInputDevice @13
|
||||||
Pa_GetDefaultOutputDevice @14
|
Pa_GetDefaultOutputDevice @14
|
||||||
Pa_GetDeviceInfo @15
|
Pa_GetDeviceInfo @15
|
||||||
Pa_IsFormatSupported @16
|
Pa_IsFormatSupported @16
|
||||||
Pa_OpenStream @17
|
Pa_OpenStream @17
|
||||||
Pa_OpenDefaultStream @18
|
Pa_OpenDefaultStream @18
|
||||||
Pa_CloseStream @19
|
Pa_CloseStream @19
|
||||||
Pa_SetStreamFinishedCallback @20
|
Pa_SetStreamFinishedCallback @20
|
||||||
Pa_StartStream @21
|
Pa_StartStream @21
|
||||||
Pa_StopStream @22
|
Pa_StopStream @22
|
||||||
Pa_AbortStream @23
|
Pa_AbortStream @23
|
||||||
Pa_IsStreamStopped @24
|
Pa_IsStreamStopped @24
|
||||||
Pa_IsStreamActive @25
|
Pa_IsStreamActive @25
|
||||||
Pa_GetStreamInfo @26
|
Pa_GetStreamInfo @26
|
||||||
Pa_GetStreamTime @27
|
Pa_GetStreamTime @27
|
||||||
Pa_GetStreamCpuLoad @28
|
Pa_GetStreamCpuLoad @28
|
||||||
Pa_ReadStream @29
|
Pa_ReadStream @29
|
||||||
Pa_WriteStream @30
|
Pa_WriteStream @30
|
||||||
Pa_GetStreamReadAvailable @31
|
Pa_GetStreamReadAvailable @31
|
||||||
Pa_GetStreamWriteAvailable @32
|
Pa_GetStreamWriteAvailable @32
|
||||||
Pa_GetSampleSize @33
|
Pa_GetSampleSize @33
|
||||||
Pa_Sleep @34
|
Pa_Sleep @34
|
||||||
PaAsio_GetAvailableBufferSizes @50
|
PaAsio_GetAvailableBufferSizes @50
|
||||||
PaAsio_ShowControlPanel @51
|
PaAsio_ShowControlPanel @51
|
||||||
PaUtil_InitializeX86PlainConverters @52
|
PaUtil_InitializeX86PlainConverters @52
|
||||||
PaAsio_GetInputChannelName @53
|
PaAsio_GetInputChannelName @53
|
||||||
PaAsio_GetOutputChannelName @54
|
PaAsio_GetOutputChannelName @54
|
||||||
PaUtil_SetDebugPrintFunction @55
|
PaUtil_SetDebugPrintFunction @55
|
||||||
PaWasapi_GetDeviceDefaultFormat @56
|
PaWasapi_GetDeviceDefaultFormat @56
|
||||||
PaWasapi_GetDeviceRole @57
|
PaWasapi_GetDeviceRole @57
|
||||||
PaWasapi_ThreadPriorityBoost @58
|
PaWasapi_ThreadPriorityBoost @58
|
||||||
PaWasapi_ThreadPriorityRevert @59
|
PaWasapi_ThreadPriorityRevert @59
|
||||||
PaWasapi_GetFramesPerHostBuffer @60
|
PaWasapi_GetFramesPerHostBuffer @60
|
||||||
PaWasapi_GetJackDescription @61
|
PaWasapi_GetJackDescription @61
|
||||||
PaWasapi_GetJackCount @62
|
PaWasapi_GetJackCount @62
|
|
@ -1,46 +1,46 @@
|
||||||
EXPORTS
|
EXPORTS
|
||||||
|
|
||||||
;
|
;
|
||||||
Pa_GetVersion @1
|
Pa_GetVersion @1
|
||||||
Pa_GetVersionText @2
|
Pa_GetVersionText @2
|
||||||
Pa_GetErrorText @3
|
Pa_GetErrorText @3
|
||||||
Pa_Initialize @4
|
Pa_Initialize @4
|
||||||
Pa_Terminate @5
|
Pa_Terminate @5
|
||||||
Pa_GetHostApiCount @6
|
Pa_GetHostApiCount @6
|
||||||
Pa_GetDefaultHostApi @7
|
Pa_GetDefaultHostApi @7
|
||||||
Pa_GetHostApiInfo @8
|
Pa_GetHostApiInfo @8
|
||||||
Pa_HostApiTypeIdToHostApiIndex @9
|
Pa_HostApiTypeIdToHostApiIndex @9
|
||||||
Pa_HostApiDeviceIndexToDeviceIndex @10
|
Pa_HostApiDeviceIndexToDeviceIndex @10
|
||||||
Pa_GetLastHostErrorInfo @11
|
Pa_GetLastHostErrorInfo @11
|
||||||
Pa_GetDeviceCount @12
|
Pa_GetDeviceCount @12
|
||||||
Pa_GetDefaultInputDevice @13
|
Pa_GetDefaultInputDevice @13
|
||||||
Pa_GetDefaultOutputDevice @14
|
Pa_GetDefaultOutputDevice @14
|
||||||
Pa_GetDeviceInfo @15
|
Pa_GetDeviceInfo @15
|
||||||
Pa_IsFormatSupported @16
|
Pa_IsFormatSupported @16
|
||||||
Pa_OpenStream @17
|
Pa_OpenStream @17
|
||||||
Pa_OpenDefaultStream @18
|
Pa_OpenDefaultStream @18
|
||||||
Pa_CloseStream @19
|
Pa_CloseStream @19
|
||||||
Pa_SetStreamFinishedCallback @20
|
Pa_SetStreamFinishedCallback @20
|
||||||
Pa_StartStream @21
|
Pa_StartStream @21
|
||||||
Pa_StopStream @22
|
Pa_StopStream @22
|
||||||
Pa_AbortStream @23
|
Pa_AbortStream @23
|
||||||
Pa_IsStreamStopped @24
|
Pa_IsStreamStopped @24
|
||||||
Pa_IsStreamActive @25
|
Pa_IsStreamActive @25
|
||||||
Pa_GetStreamInfo @26
|
Pa_GetStreamInfo @26
|
||||||
Pa_GetStreamTime @27
|
Pa_GetStreamTime @27
|
||||||
Pa_GetStreamCpuLoad @28
|
Pa_GetStreamCpuLoad @28
|
||||||
Pa_ReadStream @29
|
Pa_ReadStream @29
|
||||||
Pa_WriteStream @30
|
Pa_WriteStream @30
|
||||||
Pa_GetStreamReadAvailable @31
|
Pa_GetStreamReadAvailable @31
|
||||||
Pa_GetStreamWriteAvailable @32
|
Pa_GetStreamWriteAvailable @32
|
||||||
Pa_GetSampleSize @33
|
Pa_GetSampleSize @33
|
||||||
Pa_Sleep @34
|
Pa_Sleep @34
|
||||||
PaUtil_InitializeX86PlainConverters @52
|
PaUtil_InitializeX86PlainConverters @52
|
||||||
PaUtil_SetDebugPrintFunction @55
|
PaUtil_SetDebugPrintFunction @55
|
||||||
PaWasapi_GetDeviceDefaultFormat @56
|
PaWasapi_GetDeviceDefaultFormat @56
|
||||||
PaWasapi_GetDeviceRole @57
|
PaWasapi_GetDeviceRole @57
|
||||||
PaWasapi_ThreadPriorityBoost @58
|
PaWasapi_ThreadPriorityBoost @58
|
||||||
PaWasapi_ThreadPriorityRevert @59
|
PaWasapi_ThreadPriorityRevert @59
|
||||||
PaWasapi_GetFramesPerHostBuffer @60
|
PaWasapi_GetFramesPerHostBuffer @60
|
||||||
PaWasapi_GetJackDescription @61
|
PaWasapi_GetJackDescription @61
|
||||||
PaWasapi_GetJackCount @62
|
PaWasapi_GetJackCount @62
|
File diff suppressed because it is too large
Load Diff
|
@ -1,182 +1,182 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
<UniqueIdentifier>{5cc0e5d8-728d-40a7-8083-5b983fd1aee7}</UniqueIdentifier>
|
<UniqueIdentifier>{5cc0e5d8-728d-40a7-8083-5b983fd1aee7}</UniqueIdentifier>
|
||||||
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
|
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\common">
|
<Filter Include="Source Files\common">
|
||||||
<UniqueIdentifier>{a858f4ea-8d6b-4443-90f9-c2dd3b140b6b}</UniqueIdentifier>
|
<UniqueIdentifier>{a858f4ea-8d6b-4443-90f9-c2dd3b140b6b}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\hostapi">
|
<Filter Include="Source Files\hostapi">
|
||||||
<UniqueIdentifier>{0ce101a1-ed76-41ee-82e4-64060016158b}</UniqueIdentifier>
|
<UniqueIdentifier>{0ce101a1-ed76-41ee-82e4-64060016158b}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\hostapi\ASIO">
|
<Filter Include="Source Files\hostapi\ASIO">
|
||||||
<UniqueIdentifier>{add87864-e960-4687-b000-d88213e2b2d4}</UniqueIdentifier>
|
<UniqueIdentifier>{add87864-e960-4687-b000-d88213e2b2d4}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\hostapi\ASIO\ASIOSDK">
|
<Filter Include="Source Files\hostapi\ASIO\ASIOSDK">
|
||||||
<UniqueIdentifier>{6766d178-09d3-4194-9e43-0311d503035c}</UniqueIdentifier>
|
<UniqueIdentifier>{6766d178-09d3-4194-9e43-0311d503035c}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\hostapi\dsound">
|
<Filter Include="Source Files\hostapi\dsound">
|
||||||
<UniqueIdentifier>{07c0df04-c6c4-4eb9-b645-d56ade6252fd}</UniqueIdentifier>
|
<UniqueIdentifier>{07c0df04-c6c4-4eb9-b645-d56ade6252fd}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\hostapi\wmme">
|
<Filter Include="Source Files\hostapi\wmme">
|
||||||
<UniqueIdentifier>{ee059c3c-2663-474c-bc48-385c1db73147}</UniqueIdentifier>
|
<UniqueIdentifier>{ee059c3c-2663-474c-bc48-385c1db73147}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\hostapi\wasapi">
|
<Filter Include="Source Files\hostapi\wasapi">
|
||||||
<UniqueIdentifier>{1782b100-f22f-4c73-812d-a3c654dc9825}</UniqueIdentifier>
|
<UniqueIdentifier>{1782b100-f22f-4c73-812d-a3c654dc9825}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\os">
|
<Filter Include="Source Files\os">
|
||||||
<UniqueIdentifier>{1af05f1a-04d9-40b1-890c-1a34a9d0192e}</UniqueIdentifier>
|
<UniqueIdentifier>{1af05f1a-04d9-40b1-890c-1a34a9d0192e}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\os\win">
|
<Filter Include="Source Files\os\win">
|
||||||
<UniqueIdentifier>{b6f829a2-cf78-4f0e-b051-8fccf66c5213}</UniqueIdentifier>
|
<UniqueIdentifier>{b6f829a2-cf78-4f0e-b051-8fccf66c5213}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Resource Files">
|
<Filter Include="Resource Files">
|
||||||
<UniqueIdentifier>{b10684c7-978c-4840-be31-71d29889162c}</UniqueIdentifier>
|
<UniqueIdentifier>{b10684c7-978c-4840-be31-71d29889162c}</UniqueIdentifier>
|
||||||
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
|
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Header Files">
|
<Filter Include="Header Files">
|
||||||
<UniqueIdentifier>{78689f06-8c26-4417-93e2-b809a8c41ee7}</UniqueIdentifier>
|
<UniqueIdentifier>{78689f06-8c26-4417-93e2-b809a8c41ee7}</UniqueIdentifier>
|
||||||
<Extensions>h;hpp;hxx;hm;inl</Extensions>
|
<Extensions>h;hpp;hxx;hm;inl</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\hostapi\wdmks">
|
<Filter Include="Source Files\hostapi\wdmks">
|
||||||
<UniqueIdentifier>{0d9360dd-9d00-434a-ab46-7a89b2d35fd0}</UniqueIdentifier>
|
<UniqueIdentifier>{0d9360dd-9d00-434a-ab46-7a89b2d35fd0}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\..\src\common\pa_allocation.c">
|
<ClCompile Include="..\..\src\common\pa_allocation.c">
|
||||||
<Filter>Source Files\common</Filter>
|
<Filter>Source Files\common</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\common\pa_converters.c">
|
<ClCompile Include="..\..\src\common\pa_converters.c">
|
||||||
<Filter>Source Files\common</Filter>
|
<Filter>Source Files\common</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\common\pa_cpuload.c">
|
<ClCompile Include="..\..\src\common\pa_cpuload.c">
|
||||||
<Filter>Source Files\common</Filter>
|
<Filter>Source Files\common</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\common\pa_debugprint.c">
|
<ClCompile Include="..\..\src\common\pa_debugprint.c">
|
||||||
<Filter>Source Files\common</Filter>
|
<Filter>Source Files\common</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\common\pa_dither.c">
|
<ClCompile Include="..\..\src\common\pa_dither.c">
|
||||||
<Filter>Source Files\common</Filter>
|
<Filter>Source Files\common</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\common\pa_front.c">
|
<ClCompile Include="..\..\src\common\pa_front.c">
|
||||||
<Filter>Source Files\common</Filter>
|
<Filter>Source Files\common</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\common\pa_process.c">
|
<ClCompile Include="..\..\src\common\pa_process.c">
|
||||||
<Filter>Source Files\common</Filter>
|
<Filter>Source Files\common</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\common\pa_ringbuffer.c">
|
<ClCompile Include="..\..\src\common\pa_ringbuffer.c">
|
||||||
<Filter>Source Files\common</Filter>
|
<Filter>Source Files\common</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\common\pa_stream.c">
|
<ClCompile Include="..\..\src\common\pa_stream.c">
|
||||||
<Filter>Source Files\common</Filter>
|
<Filter>Source Files\common</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\common\pa_trace.c">
|
<ClCompile Include="..\..\src\common\pa_trace.c">
|
||||||
<Filter>Source Files\common</Filter>
|
<Filter>Source Files\common</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\asio\pa_asio.cpp">
|
<ClCompile Include="..\..\src\hostapi\asio\pa_asio.cpp">
|
||||||
<Filter>Source Files\hostapi\ASIO</Filter>
|
<Filter>Source Files\hostapi\ASIO</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\common\asio.cpp">
|
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\common\asio.cpp">
|
||||||
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\host\ASIOConvertSamples.cpp">
|
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\host\ASIOConvertSamples.cpp">
|
||||||
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\host\asiodrivers.cpp">
|
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\host\asiodrivers.cpp">
|
||||||
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\host\pc\asiolist.cpp">
|
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\host\pc\asiolist.cpp">
|
||||||
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\common\combase.cpp">
|
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\common\combase.cpp">
|
||||||
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\common\debugmessage.cpp">
|
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\common\debugmessage.cpp">
|
||||||
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\common\register.cpp">
|
<ClCompile Include="..\..\src\hostapi\asio\ASIOSDK\common\register.cpp">
|
||||||
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\dsound\pa_win_ds.c">
|
<ClCompile Include="..\..\src\hostapi\dsound\pa_win_ds.c">
|
||||||
<Filter>Source Files\hostapi\dsound</Filter>
|
<Filter>Source Files\hostapi\dsound</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\dsound\pa_win_ds_dynlink.c">
|
<ClCompile Include="..\..\src\hostapi\dsound\pa_win_ds_dynlink.c">
|
||||||
<Filter>Source Files\hostapi\dsound</Filter>
|
<Filter>Source Files\hostapi\dsound</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\wmme\pa_win_wmme.c">
|
<ClCompile Include="..\..\src\hostapi\wmme\pa_win_wmme.c">
|
||||||
<Filter>Source Files\hostapi\wmme</Filter>
|
<Filter>Source Files\hostapi\wmme</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\wasapi\pa_win_wasapi.c">
|
<ClCompile Include="..\..\src\hostapi\wasapi\pa_win_wasapi.c">
|
||||||
<Filter>Source Files\hostapi\wasapi</Filter>
|
<Filter>Source Files\hostapi\wasapi</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\os\win\pa_win_hostapis.c">
|
<ClCompile Include="..\..\src\os\win\pa_win_hostapis.c">
|
||||||
<Filter>Source Files\os\win</Filter>
|
<Filter>Source Files\os\win</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\os\win\pa_win_util.c">
|
<ClCompile Include="..\..\src\os\win\pa_win_util.c">
|
||||||
<Filter>Source Files\os\win</Filter>
|
<Filter>Source Files\os\win</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\os\win\pa_win_waveformat.c">
|
<ClCompile Include="..\..\src\os\win\pa_win_waveformat.c">
|
||||||
<Filter>Source Files\os\win</Filter>
|
<Filter>Source Files\os\win</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\os\win\pa_win_wdmks_utils.c">
|
<ClCompile Include="..\..\src\os\win\pa_win_wdmks_utils.c">
|
||||||
<Filter>Source Files\os\win</Filter>
|
<Filter>Source Files\os\win</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\os\win\pa_x86_plain_converters.c">
|
<ClCompile Include="..\..\src\os\win\pa_x86_plain_converters.c">
|
||||||
<Filter>Source Files\os\win</Filter>
|
<Filter>Source Files\os\win</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\hostapi\wdmks\pa_win_wdmks.c">
|
<ClCompile Include="..\..\src\hostapi\wdmks\pa_win_wdmks.c">
|
||||||
<Filter>Source Files\hostapi\wdmks</Filter>
|
<Filter>Source Files\hostapi\wdmks</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\os\win\pa_win_coinitialize.c">
|
<ClCompile Include="..\..\src\os\win\pa_win_coinitialize.c">
|
||||||
<Filter>Source Files\os\win</Filter>
|
<Filter>Source Files\os\win</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="portaudio.def">
|
<None Include="portaudio.def">
|
||||||
<Filter>Resource Files</Filter>
|
<Filter>Resource Files</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="portaudio_noasio.def">
|
<None Include="portaudio_noasio.def">
|
||||||
<Filter>Resource Files</Filter>
|
<Filter>Resource Files</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="..\..\src\hostapi\wdmks\readme.txt">
|
<None Include="..\..\src\hostapi\wdmks\readme.txt">
|
||||||
<Filter>Source Files\hostapi\wdmks</Filter>
|
<Filter>Source Files\hostapi\wdmks</Filter>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\..\include\pa_asio.h">
|
<ClInclude Include="..\..\include\pa_asio.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\include\pa_jack.h">
|
<ClInclude Include="..\..\include\pa_jack.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\include\pa_linux_alsa.h">
|
<ClInclude Include="..\..\include\pa_linux_alsa.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\include\pa_mac_core.h">
|
<ClInclude Include="..\..\include\pa_mac_core.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\include\pa_win_ds.h">
|
<ClInclude Include="..\..\include\pa_win_ds.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\include\pa_win_wasapi.h">
|
<ClInclude Include="..\..\include\pa_win_wasapi.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\include\pa_win_waveformat.h">
|
<ClInclude Include="..\..\include\pa_win_waveformat.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\include\pa_win_wmme.h">
|
<ClInclude Include="..\..\include\pa_win_wmme.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\include\portaudio.h">
|
<ClInclude Include="..\..\include\portaudio.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\src\os\win\pa_win_coinitialize.h">
|
<ClInclude Include="..\..\src\os\win\pa_win_coinitialize.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\include\pa_win_wdmks.h">
|
<ClInclude Include="..\..\include\pa_win_wdmks.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,112 +1,112 @@
|
||||||
Hello
|
Hello
|
||||||
|
|
||||||
This is a small list of steps in order to build portaudio
|
This is a small list of steps in order to build portaudio
|
||||||
(Currently v19-devel) into a VS2005 DLL and lib file.
|
(Currently v19-devel) into a VS2005 DLL and lib file.
|
||||||
This DLL contains all 5 current Win32 PA APIS (MME/DS/ASIO/WASAPI/WDMKS)
|
This DLL contains all 5 current Win32 PA APIS (MME/DS/ASIO/WASAPI/WDMKS)
|
||||||
|
|
||||||
1)Copy the source dirs that comes with the ASIO SDK inside src\hostapi\asio\ASIOSDK
|
1)Copy the source dirs that comes with the ASIO SDK inside src\hostapi\asio\ASIOSDK
|
||||||
so you should now have example:
|
so you should now have example:
|
||||||
|
|
||||||
portaudio19svn\src\hostapi\asio\ASIOSDK\common
|
portaudio19svn\src\hostapi\asio\ASIOSDK\common
|
||||||
portaudio19svn\src\hostapi\asio\ASIOSDK\host
|
portaudio19svn\src\hostapi\asio\ASIOSDK\host
|
||||||
portaudio19svn\src\hostapi\asio\ASIOSDK\host\sample
|
portaudio19svn\src\hostapi\asio\ASIOSDK\host\sample
|
||||||
portaudio19svn\src\hostapi\asio\ASIOSDK\host\pc
|
portaudio19svn\src\hostapi\asio\ASIOSDK\host\pc
|
||||||
portaudio19svn\src\hostapi\asio\ASIOSDK\host\mac (not needed)
|
portaudio19svn\src\hostapi\asio\ASIOSDK\host\mac (not needed)
|
||||||
|
|
||||||
You dont need "driver"
|
You dont need "driver"
|
||||||
|
|
||||||
To build without ASIO (or another Host API) see the "Building without ASIO support" section below.
|
To build without ASIO (or another Host API) see the "Building without ASIO support" section below.
|
||||||
|
|
||||||
2)
|
2)
|
||||||
*If you have Visual Studio 6.0*, please make sure you have it updated with the latest (and final)
|
*If you have Visual Studio 6.0*, please make sure you have it updated with the latest (and final)
|
||||||
microsoft libraries for it, namely:
|
microsoft libraries for it, namely:
|
||||||
|
|
||||||
Service pack 5:
|
Service pack 5:
|
||||||
Latest known URL:
|
Latest known URL:
|
||||||
http://msdn2.microsoft.com/en-us/vstudio/aa718363.aspx
|
http://msdn2.microsoft.com/en-us/vstudio/aa718363.aspx
|
||||||
Yes there EXISTS a service pack 6 , but the processor pack (below) isnt compatible with it.
|
Yes there EXISTS a service pack 6 , but the processor pack (below) isnt compatible with it.
|
||||||
|
|
||||||
Processor Pack(only works with above SP5)
|
Processor Pack(only works with above SP5)
|
||||||
Latest known URL:
|
Latest known URL:
|
||||||
http://msdn2.microsoft.com/en-us/vstudio/Aa718349.aspx
|
http://msdn2.microsoft.com/en-us/vstudio/Aa718349.aspx
|
||||||
This isn't absolutely required for portaudio, but if you plan on using SSE intrinsics and similar things.
|
This isn't absolutely required for portaudio, but if you plan on using SSE intrinsics and similar things.
|
||||||
Up to you to decide upon Service pack 5 or 6 depending on your need for intrinsics.
|
Up to you to decide upon Service pack 5 or 6 depending on your need for intrinsics.
|
||||||
|
|
||||||
Platform SDK (Feb 2003) :
|
Platform SDK (Feb 2003) :
|
||||||
Latest known URL:
|
Latest known URL:
|
||||||
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
|
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
|
||||||
(This will allow your code base to be x64 friendly, with correct defines
|
(This will allow your code base to be x64 friendly, with correct defines
|
||||||
for LONG_PTR and such)
|
for LONG_PTR and such)
|
||||||
NOTE A) Yes you have to use IE activex scripts to install that - wont work in Firefox, you
|
NOTE A) Yes you have to use IE activex scripts to install that - wont work in Firefox, you
|
||||||
may have to temporarily change tyour default browser(aint life unfair)
|
may have to temporarily change tyour default browser(aint life unfair)
|
||||||
NOTE B) Dont forget to hit "Register PSDK Directories with Visual Studio".
|
NOTE B) Dont forget to hit "Register PSDK Directories with Visual Studio".
|
||||||
you can make sure its right in VC6 if you open tools/options/directories/include files and you see SDK 2003 as the FIRST entry
|
you can make sure its right in VC6 if you open tools/options/directories/include files and you see SDK 2003 as the FIRST entry
|
||||||
(it must be the same for libs)
|
(it must be the same for libs)
|
||||||
|
|
||||||
DirectX 9.0 SDK Update - (Summer 2003)
|
DirectX 9.0 SDK Update - (Summer 2003)
|
||||||
Latest known URL:
|
Latest known URL:
|
||||||
http://www.microsoft.com/downloads/details.aspx?familyid=9216652f-51e0-402e-b7b5-feb68d00f298&displaylang=en
|
http://www.microsoft.com/downloads/details.aspx?familyid=9216652f-51e0-402e-b7b5-feb68d00f298&displaylang=en
|
||||||
Again register the links in VC6, and check inside vc6 if headers are in second place right after SDk 2003
|
Again register the links in VC6, and check inside vc6 if headers are in second place right after SDk 2003
|
||||||
|
|
||||||
*If you have 7.0(VC.NET/2001) or 7.1(VC.2003) *
|
*If you have 7.0(VC.NET/2001) or 7.1(VC.2003) *
|
||||||
then I suggest you open portaudio.dsp (and convert if needed)
|
then I suggest you open portaudio.dsp (and convert if needed)
|
||||||
|
|
||||||
*If you have Visual Studio 2005 * (or later), I suggest you open the portaudio.sln file
|
*If you have Visual Studio 2005 * (or later), I suggest you open the portaudio.sln file
|
||||||
which contains 2 projects (portaudio & portaudio_static) each with 6 configurations: Win32/x64 in both Debug, Release and ReleaseMinDependency,
|
which contains 2 projects (portaudio & portaudio_static) each with 6 configurations: Win32/x64 in both Debug, Release and ReleaseMinDependency,
|
||||||
last of which removes dependency of all but basic OS system DLLs.
|
last of which removes dependency of all but basic OS system DLLs.
|
||||||
|
|
||||||
hit compile and hope for the best.
|
hit compile and hope for the best.
|
||||||
|
|
||||||
3)Now in any project, in which you require portaudio,
|
3)Now in any project, in which you require portaudio,
|
||||||
you can just link with portaudio_x86.lib, (or _x64) and of course include the
|
you can just link with portaudio_x86.lib, (or _x64) and of course include the
|
||||||
relevant headers
|
relevant headers
|
||||||
(portaudio.h, and/or pa_asio.h , pa_x86_plain_converters.h) See (*)
|
(portaudio.h, and/or pa_asio.h , pa_x86_plain_converters.h) See (*)
|
||||||
|
|
||||||
4) Your new exe should now use portaudio_xXX.dll.
|
4) Your new exe should now use portaudio_xXX.dll.
|
||||||
|
|
||||||
|
|
||||||
Have fun!
|
Have fun!
|
||||||
|
|
||||||
(*): you may want to add/remove some DLL entry points.
|
(*): you may want to add/remove some DLL entry points.
|
||||||
Right now those 6 entries are _not_ from portaudio.h
|
Right now those 6 entries are _not_ from portaudio.h
|
||||||
|
|
||||||
(from portaudio.def)
|
(from portaudio.def)
|
||||||
(...)
|
(...)
|
||||||
PaAsio_GetAvailableLatencyValues @50
|
PaAsio_GetAvailableLatencyValues @50
|
||||||
PaAsio_ShowControlPanel @51
|
PaAsio_ShowControlPanel @51
|
||||||
PaUtil_InitializeX86PlainConverters @52
|
PaUtil_InitializeX86PlainConverters @52
|
||||||
PaAsio_GetInputChannelName @53
|
PaAsio_GetInputChannelName @53
|
||||||
PaAsio_GetOutputChannelName @54
|
PaAsio_GetOutputChannelName @54
|
||||||
PaUtil_SetLogPrintFunction @55
|
PaUtil_SetLogPrintFunction @55
|
||||||
|
|
||||||
|
|
||||||
*** Building without ASIO support ***
|
*** Building without ASIO support ***
|
||||||
|
|
||||||
To build PortAudio without ASIO support you need to:
|
To build PortAudio without ASIO support you need to:
|
||||||
A. Make sure your project doesn't try to build any ASIO SDK files.
|
A. Make sure your project doesn't try to build any ASIO SDK files.
|
||||||
If you're using one of the shipped projects, remove the ASIO related files
|
If you're using one of the shipped projects, remove the ASIO related files
|
||||||
from the project.
|
from the project.
|
||||||
|
|
||||||
B. Make sure your project doesn't try to build the PortAudio ASIO
|
B. Make sure your project doesn't try to build the PortAudio ASIO
|
||||||
implementation files:
|
implementation files:
|
||||||
src/hostapi/pa_asio.cpp
|
src/hostapi/pa_asio.cpp
|
||||||
src/hostapi/iasiothiscallresolver.cpp
|
src/hostapi/iasiothiscallresolver.cpp
|
||||||
If you're using one of the shipped projects remove them from the project.
|
If you're using one of the shipped projects remove them from the project.
|
||||||
|
|
||||||
C. Set the PA_USE_ASIO preprocessor symbol to zero (i.e. PA_USE_ASIO=0) in the project properties.
|
C. Set the PA_USE_ASIO preprocessor symbol to zero (i.e. PA_USE_ASIO=0) in the project properties.
|
||||||
In VS2005 this can be added under
|
In VS2005 this can be added under
|
||||||
Project Properties > Configuration Properties > C/C++ > Preprocessor > Preprocessor Definitions
|
Project Properties > Configuration Properties > C/C++ > Preprocessor > Preprocessor Definitions
|
||||||
|
|
||||||
Setting PA_USE_ASIO=0 stops src/os/win/pa_win_hostapis.c
|
Setting PA_USE_ASIO=0 stops src/os/win/pa_win_hostapis.c
|
||||||
from trying to initialize the PA ASIO implementation.
|
from trying to initialize the PA ASIO implementation.
|
||||||
|
|
||||||
D. Remove PaAsio_* entry points from portaudio.def, or comment them out with ;
|
D. Remove PaAsio_* entry points from portaudio.def, or comment them out with ;
|
||||||
|
|
||||||
|
|
||||||
A similar procedure can be used to omit any of the other host APIs from the
|
A similar procedure can be used to omit any of the other host APIs from the
|
||||||
build. The relevant preprocessor symbols used by pa_win_hostapis.c are:
|
build. The relevant preprocessor symbols used by pa_win_hostapis.c are:
|
||||||
PA_USE_WMME, PA_USE_DSOUND, PA_USE_ASIO, PA_USE_WASAPI and PA_USE_WDMKS
|
PA_USE_WMME, PA_USE_DSOUND, PA_USE_ASIO, PA_USE_WASAPI and PA_USE_WDMKS
|
||||||
|
|
||||||
-----
|
-----
|
||||||
David Viens, davidv@plogue.com
|
David Viens, davidv@plogue.com
|
||||||
Robert Bielik, robert@xponaut.se
|
Robert Bielik, robert@xponaut.se
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,162 +1,162 @@
|
||||||
/** @page api_overview PortAudio API Overview
|
/** @page api_overview PortAudio API Overview
|
||||||
|
|
||||||
This page provides a top-down overview of the entire PortAudio API. It describes how all of the PortAudio data types and functions fit together. It provides links to the documentation for each function and data type. You can find all of the detailed documentation for each API function and data type on the portaudio.h page.
|
This page provides a top-down overview of the entire PortAudio API. It describes how all of the PortAudio data types and functions fit together. It provides links to the documentation for each function and data type. You can find all of the detailed documentation for each API function and data type on the portaudio.h page.
|
||||||
|
|
||||||
@section introduction Introduction
|
@section introduction Introduction
|
||||||
|
|
||||||
PortAudio provides a uniform application programming interface (API) across all supported platforms. You can think of the PortAudio library as a wrapper that converts calls to the PortAudio API into calls to platform-specific native audio APIs. Operating systems often offer more than one native audio API and some APIs (such as JACK) may be available on multiple target operating systems. PortAudio supports all the major native audio APIs on each supported platform. The diagram below illustrates the relationship between your application, PortAudio, and the supported native audio APIs:
|
PortAudio provides a uniform application programming interface (API) across all supported platforms. You can think of the PortAudio library as a wrapper that converts calls to the PortAudio API into calls to platform-specific native audio APIs. Operating systems often offer more than one native audio API and some APIs (such as JACK) may be available on multiple target operating systems. PortAudio supports all the major native audio APIs on each supported platform. The diagram below illustrates the relationship between your application, PortAudio, and the supported native audio APIs:
|
||||||
|
|
||||||
@image html portaudio-external-architecture-diagram.png
|
@image html portaudio-external-architecture-diagram.png
|
||||||
|
|
||||||
PortAudio provides a uniform interface to native audio APIs. However, it doesn't always provide totally uniform functionality. There are cases where PortAudio is limited by the capabilities of the underlying native audio API. For example, PortAudio doesn't provide sample rate conversion if you request a sample rate that is not supported by the native audio API. Another example is that the ASIO SDK only allows one device to be open at a time, so PortAudio/ASIO doesn't currently support opening multiple ASIO devices simultaneously.
|
PortAudio provides a uniform interface to native audio APIs. However, it doesn't always provide totally uniform functionality. There are cases where PortAudio is limited by the capabilities of the underlying native audio API. For example, PortAudio doesn't provide sample rate conversion if you request a sample rate that is not supported by the native audio API. Another example is that the ASIO SDK only allows one device to be open at a time, so PortAudio/ASIO doesn't currently support opening multiple ASIO devices simultaneously.
|
||||||
|
|
||||||
@section key_abstractions Key abstractions: Host APIs, Devices and Streams
|
@section key_abstractions Key abstractions: Host APIs, Devices and Streams
|
||||||
|
|
||||||
The PortAudio processing model includes three main abstractions: <i>Host APIs</i>, audio <i>Devices</i> and audio <i>Streams</i>.
|
The PortAudio processing model includes three main abstractions: <i>Host APIs</i>, audio <i>Devices</i> and audio <i>Streams</i>.
|
||||||
|
|
||||||
Host APIs represent platform-specific native audio APIs. Some examples of Host APIs are Core Audio on Mac OS, WMME and DirectSound on Windows and OSS and ALSA on Linux. The diagram in the previous section shows many of the supported native APIs. Sometimes it's useful to know which Host APIs you're dealing with, but it is easy to use PortAudio without ever interacting directly with the Host API abstraction.
|
Host APIs represent platform-specific native audio APIs. Some examples of Host APIs are Core Audio on Mac OS, WMME and DirectSound on Windows and OSS and ALSA on Linux. The diagram in the previous section shows many of the supported native APIs. Sometimes it's useful to know which Host APIs you're dealing with, but it is easy to use PortAudio without ever interacting directly with the Host API abstraction.
|
||||||
|
|
||||||
Devices represent individual hardware audio interfaces or audio ports on the host platform. Devices have names and certain capabilities such as supported sample rates and the number of supported input and output channels. PortAudio provides functions to enumerate available Devices and to query for Device capabilities.
|
Devices represent individual hardware audio interfaces or audio ports on the host platform. Devices have names and certain capabilities such as supported sample rates and the number of supported input and output channels. PortAudio provides functions to enumerate available Devices and to query for Device capabilities.
|
||||||
|
|
||||||
Streams manage active audio input and output from and to Devices. Streams may be half duplex (input or output) or full duplex (simultaneous input and output). Streams operate at a specific sample rate with particular sample formats, buffer sizes and internal buffering latencies. You specify these parameters when you open the Stream. Audio data is communicated between a Stream and your application via a user provided asynchronous callback function or by invoking synchronous read and write functions.
|
Streams manage active audio input and output from and to Devices. Streams may be half duplex (input or output) or full duplex (simultaneous input and output). Streams operate at a specific sample rate with particular sample formats, buffer sizes and internal buffering latencies. You specify these parameters when you open the Stream. Audio data is communicated between a Stream and your application via a user provided asynchronous callback function or by invoking synchronous read and write functions.
|
||||||
|
|
||||||
PortAudio supports audio input and output in a variety of sample formats: 8, 16, 24 and 32 bit integer formats and 32 bit floating point, irrespective of the formats supported by the native audio API. PortAudio also supports multichannel buffers in both interleaved and non-interleaved (separate buffer per channel) formats and automatically performs conversion when necessary. If requested, PortAudio can clamp out-of range samples and/or dither to a native format.
|
PortAudio supports audio input and output in a variety of sample formats: 8, 16, 24 and 32 bit integer formats and 32 bit floating point, irrespective of the formats supported by the native audio API. PortAudio also supports multichannel buffers in both interleaved and non-interleaved (separate buffer per channel) formats and automatically performs conversion when necessary. If requested, PortAudio can clamp out-of range samples and/or dither to a native format.
|
||||||
|
|
||||||
The PortAudio API offers the following functionality:
|
The PortAudio API offers the following functionality:
|
||||||
- Initialize and terminate the library
|
- Initialize and terminate the library
|
||||||
- Enumerate available Host APIs
|
- Enumerate available Host APIs
|
||||||
- Enumerate available Devices either globally, or within each Host API
|
- Enumerate available Devices either globally, or within each Host API
|
||||||
- Discover default or recommended Devices and Device settings
|
- Discover default or recommended Devices and Device settings
|
||||||
- Discover Device capabilities such as supported audio data formats and sample rates
|
- Discover Device capabilities such as supported audio data formats and sample rates
|
||||||
- Create and control audio Streams to acquire audio from and output audio to Devices
|
- Create and control audio Streams to acquire audio from and output audio to Devices
|
||||||
- Provide Stream timing information to support synchronising audio with other parts of your application
|
- Provide Stream timing information to support synchronising audio with other parts of your application
|
||||||
- Retrieve version and error information.
|
- Retrieve version and error information.
|
||||||
|
|
||||||
These functions are described in more detail below.
|
These functions are described in more detail below.
|
||||||
|
|
||||||
|
|
||||||
@section top_level_functions Initialization, termination and utility functions
|
@section top_level_functions Initialization, termination and utility functions
|
||||||
|
|
||||||
The PortAudio library must be initialized before it can be used and terminated to clean up afterwards. You initialize PortAudio by calling Pa_Initialize() and clean up by calling Pa_Terminate().
|
The PortAudio library must be initialized before it can be used and terminated to clean up afterwards. You initialize PortAudio by calling Pa_Initialize() and clean up by calling Pa_Terminate().
|
||||||
|
|
||||||
You can query PortAudio for version information using Pa_GetVersion() to get a numeric version number and Pa_GetVersionText() to get a string.
|
You can query PortAudio for version information using Pa_GetVersion() to get a numeric version number and Pa_GetVersionText() to get a string.
|
||||||
|
|
||||||
The size in bytes of the various sample formats represented by the @ref PaSampleFormat enumeration can be obtained using Pa_GetSampleSize().
|
The size in bytes of the various sample formats represented by the @ref PaSampleFormat enumeration can be obtained using Pa_GetSampleSize().
|
||||||
|
|
||||||
Pa_Sleep() sleeps for a specified number of milliseconds. This isn't intended for use in production systems; it's provided only as a simple portable way to implement tests and examples where the main thread sleeps while audio is acquired or played by an asynchronous callback function.
|
Pa_Sleep() sleeps for a specified number of milliseconds. This isn't intended for use in production systems; it's provided only as a simple portable way to implement tests and examples where the main thread sleeps while audio is acquired or played by an asynchronous callback function.
|
||||||
|
|
||||||
@section host_apis Host APIs
|
@section host_apis Host APIs
|
||||||
|
|
||||||
A Host API acts as a top-level grouping for all of the Devices offered by a single native platform audio API. Each Host API has a unique type identifier, a name, zero or more Devices, and nominated default input and output Devices.
|
A Host API acts as a top-level grouping for all of the Devices offered by a single native platform audio API. Each Host API has a unique type identifier, a name, zero or more Devices, and nominated default input and output Devices.
|
||||||
|
|
||||||
Host APIs are usually referenced by index: an integer of type @ref PaHostApiIndex that ranges between zero and Pa_GetHostApiCount() - 1. You can enumerate all available Host APIs by counting across this range.
|
Host APIs are usually referenced by index: an integer of type @ref PaHostApiIndex that ranges between zero and Pa_GetHostApiCount() - 1. You can enumerate all available Host APIs by counting across this range.
|
||||||
|
|
||||||
You can retrieve the index of the default Host API by calling Pa_GetDefaultHostApi().
|
You can retrieve the index of the default Host API by calling Pa_GetDefaultHostApi().
|
||||||
|
|
||||||
Information about a Host API, such as it's name and default devices, is stored in a @ref PaHostApiInfo structure. You can retrieve a pointer to a particular Host API's @ref PaHostApiInfo structure by calling Pa_GetHostApiInfo() with the Host API's index as a parameter.
|
Information about a Host API, such as it's name and default devices, is stored in a @ref PaHostApiInfo structure. You can retrieve a pointer to a particular Host API's @ref PaHostApiInfo structure by calling Pa_GetHostApiInfo() with the Host API's index as a parameter.
|
||||||
|
|
||||||
Most PortAudio functions reference Host APIs by @ref PaHostApiIndex indices. Each Host API also has a unique type identifier defined in the @ref PaHostApiTypeId enumeration.
|
Most PortAudio functions reference Host APIs by @ref PaHostApiIndex indices. Each Host API also has a unique type identifier defined in the @ref PaHostApiTypeId enumeration.
|
||||||
You can call Pa_HostApiTypeIdToHostApiIndex() to retrieve the current @ref PaHostApiIndex for a particular @ref PaHostApiTypeId.
|
You can call Pa_HostApiTypeIdToHostApiIndex() to retrieve the current @ref PaHostApiIndex for a particular @ref PaHostApiTypeId.
|
||||||
|
|
||||||
@section devices Devices
|
@section devices Devices
|
||||||
|
|
||||||
A Device represents an audio endpoint provided by a particular native audio API. This usually corresponds to a specific input or output port on a hardware audio interface, or to the interface as a whole. Each Host API operates independently, so a single physical audio port may be addressable via different Devices exposed by different Host APIs.
|
A Device represents an audio endpoint provided by a particular native audio API. This usually corresponds to a specific input or output port on a hardware audio interface, or to the interface as a whole. Each Host API operates independently, so a single physical audio port may be addressable via different Devices exposed by different Host APIs.
|
||||||
|
|
||||||
A Device has a name, is associated with a Host API, and has a maximum number of supported input and output channels. PortAudio provides recommended default latency values and a default sample rate for each Device. To obtain more detailed information about device capabilities you can call Pa_IsFormatSupported() to query whether it is possible to open a Stream using particular Devices, parameters and sample rate.
|
A Device has a name, is associated with a Host API, and has a maximum number of supported input and output channels. PortAudio provides recommended default latency values and a default sample rate for each Device. To obtain more detailed information about device capabilities you can call Pa_IsFormatSupported() to query whether it is possible to open a Stream using particular Devices, parameters and sample rate.
|
||||||
|
|
||||||
Although each Device conceptually belongs to a specific Host API, most PortAudio functions and data structures refer to Devices using a global, Host API-independent index of type @ref PaDeviceIndex – an integer of that ranges between zero and Pa_GetDeviceCount() - 1. The reasons for this are partly historical but it also makes it easy for applications to ignore the Host API abstraction and just work with Devices and Streams.
|
Although each Device conceptually belongs to a specific Host API, most PortAudio functions and data structures refer to Devices using a global, Host API-independent index of type @ref PaDeviceIndex – an integer of that ranges between zero and Pa_GetDeviceCount() - 1. The reasons for this are partly historical but it also makes it easy for applications to ignore the Host API abstraction and just work with Devices and Streams.
|
||||||
|
|
||||||
If you want to enumerate Devices belonging to a particular Host API you can count between 0 and PaHostApiInfo::deviceCount - 1. You can convert this Host API-specific index value to a global @ref PaDeviceIndex value by calling Pa_HostApiDeviceIndexToDeviceIndex().
|
If you want to enumerate Devices belonging to a particular Host API you can count between 0 and PaHostApiInfo::deviceCount - 1. You can convert this Host API-specific index value to a global @ref PaDeviceIndex value by calling Pa_HostApiDeviceIndexToDeviceIndex().
|
||||||
|
|
||||||
Information about a Device is stored in a @ref PaDeviceInfo structure. You can retrieve a pointer to a Devices's @ref PaDeviceInfo structure by calling Pa_GetDeviceInfo() with the Device's index as a parameter.
|
Information about a Device is stored in a @ref PaDeviceInfo structure. You can retrieve a pointer to a Devices's @ref PaDeviceInfo structure by calling Pa_GetDeviceInfo() with the Device's index as a parameter.
|
||||||
|
|
||||||
You can retrieve the indices of the global default input and output devices using Pa_GetDefaultInputDevice() and Pa_GetDefaultOutputDevice(). Default Devices for each Host API are stored in the Host API's @ref PaHostApiInfo structures.
|
You can retrieve the indices of the global default input and output devices using Pa_GetDefaultInputDevice() and Pa_GetDefaultOutputDevice(). Default Devices for each Host API are stored in the Host API's @ref PaHostApiInfo structures.
|
||||||
|
|
||||||
For an example of enumerating devices and printing information about their capabilities see the pa_devs.c program in the test directory of the PortAudio distribution.
|
For an example of enumerating devices and printing information about their capabilities see the pa_devs.c program in the test directory of the PortAudio distribution.
|
||||||
|
|
||||||
@section streams Streams
|
@section streams Streams
|
||||||
|
|
||||||
A Stream represents an active flow of audio data between your application and one or more audio Devices. A Stream operates at a specific sample rate with specific sample formats and buffer sizes.
|
A Stream represents an active flow of audio data between your application and one or more audio Devices. A Stream operates at a specific sample rate with specific sample formats and buffer sizes.
|
||||||
|
|
||||||
@subsection io_methods I/O Methods: callback and read/write
|
@subsection io_methods I/O Methods: callback and read/write
|
||||||
|
|
||||||
PortAudio offers two methods for communicating audio data between an open Stream and your Application: (1) an asynchronous callback interface, where PortAudio calls a user defined callback function when new audio data is available or required, and (2) synchronous read and write functions which can be used in a blocking or non-blocking manner. You choose between the two methods when you open a Stream. The two methods are discussed in more detail below.
|
PortAudio offers two methods for communicating audio data between an open Stream and your Application: (1) an asynchronous callback interface, where PortAudio calls a user defined callback function when new audio data is available or required, and (2) synchronous read and write functions which can be used in a blocking or non-blocking manner. You choose between the two methods when you open a Stream. The two methods are discussed in more detail below.
|
||||||
|
|
||||||
@subsection opening_and_closing_streams Opening and Closing Streams
|
@subsection opening_and_closing_streams Opening and Closing Streams
|
||||||
|
|
||||||
You call Pa_OpenStream() to open a Stream, specifying the Device(s) to use, the number of input and output channels, sample formats, suggested latency values and flags that control dithering, clipping and overflow handling. You specify many of these parameters in two PaStreamParameters structures, one for input and one for output. If you're using the callback I/O method you also pass a callback buffer size, callback function pointer and user data pointer.
|
You call Pa_OpenStream() to open a Stream, specifying the Device(s) to use, the number of input and output channels, sample formats, suggested latency values and flags that control dithering, clipping and overflow handling. You specify many of these parameters in two PaStreamParameters structures, one for input and one for output. If you're using the callback I/O method you also pass a callback buffer size, callback function pointer and user data pointer.
|
||||||
|
|
||||||
Devices may be full duplex (supporting simultaneous input and output) or half duplex (supporting input or output) – usually this reflects the structure of the underlying native audio API. When opening a Stream you can specify one full duplex Device for both input and output, or two different Devices for input and output. Some Host APIs only support full-duplex operation with a full-duplex device (e.g. ASIO) but most are able to aggregate two half duplex devices into a full duplex Stream. PortAudio requires that all devices specified in a call to Pa_OpenStream() belong to the same Host API.
|
Devices may be full duplex (supporting simultaneous input and output) or half duplex (supporting input or output) – usually this reflects the structure of the underlying native audio API. When opening a Stream you can specify one full duplex Device for both input and output, or two different Devices for input and output. Some Host APIs only support full-duplex operation with a full-duplex device (e.g. ASIO) but most are able to aggregate two half duplex devices into a full duplex Stream. PortAudio requires that all devices specified in a call to Pa_OpenStream() belong to the same Host API.
|
||||||
|
|
||||||
A successful call to Pa_OpenStream() creates a pointer to a @ref PaStream – an opaque handle representing the open Stream. All PortAudio API functions that operate on open Streams take a pointer to a @ref PaStream as their first parameter.
|
A successful call to Pa_OpenStream() creates a pointer to a @ref PaStream – an opaque handle representing the open Stream. All PortAudio API functions that operate on open Streams take a pointer to a @ref PaStream as their first parameter.
|
||||||
|
|
||||||
PortAudio also provides Pa_OpenDefaultStream() – a simpler alternative to Pa_OpenStream() which you can use when you want to open the default audio Device(s) with default latency parameters.
|
PortAudio also provides Pa_OpenDefaultStream() – a simpler alternative to Pa_OpenStream() which you can use when you want to open the default audio Device(s) with default latency parameters.
|
||||||
|
|
||||||
You call Pa_CloseStream() to close a Stream when you've finished using it.
|
You call Pa_CloseStream() to close a Stream when you've finished using it.
|
||||||
|
|
||||||
@subsection starting_and_stopping_streams Starting and Stopping Streams
|
@subsection starting_and_stopping_streams Starting and Stopping Streams
|
||||||
|
|
||||||
Newly opened Streams are initially stopped. You call Pa_StartStream() to start a Stream. You can stop a running Stream using Pa_StopStream() or Pa_AbortStream() (the Stop function plays out all internally queued audio data, while Abort tries to stop as quickly as possible). An open Stream can be started and stopped multiple times. You can call Pa_IsStreamStopped() to query whether a Stream is running or stopped.
|
Newly opened Streams are initially stopped. You call Pa_StartStream() to start a Stream. You can stop a running Stream using Pa_StopStream() or Pa_AbortStream() (the Stop function plays out all internally queued audio data, while Abort tries to stop as quickly as possible). An open Stream can be started and stopped multiple times. You can call Pa_IsStreamStopped() to query whether a Stream is running or stopped.
|
||||||
|
|
||||||
By calling Pa_SetStreamFinishedCallback() it is possible to register a special @ref PaStreamFinishedCallback that will be called when the Stream has completed playing any internally queued buffers. This can be used in conjunction with the @ref paComplete stream callback return value (see below) to avoid blocking on a call to Pa_StopStream() while queued audio data is still playing.
|
By calling Pa_SetStreamFinishedCallback() it is possible to register a special @ref PaStreamFinishedCallback that will be called when the Stream has completed playing any internally queued buffers. This can be used in conjunction with the @ref paComplete stream callback return value (see below) to avoid blocking on a call to Pa_StopStream() while queued audio data is still playing.
|
||||||
|
|
||||||
@subsection callback_io_method The Callback I/O Method
|
@subsection callback_io_method The Callback I/O Method
|
||||||
|
|
||||||
So-called 'callback Streams' operate by periodically invoking a callback function you supply to Pa_OpenStream(). The callback function must implement the @ref PaStreamCallback signature. It gets called by PortAudio every time PortAudio needs your application to consume or produce audio data. The callback is passed pointers to buffers containing the audio to process. The format (interleave, sample data type) and size of these buffers is determined by the parameters passed to Pa_OpenStream() when the Stream was opened.
|
So-called 'callback Streams' operate by periodically invoking a callback function you supply to Pa_OpenStream(). The callback function must implement the @ref PaStreamCallback signature. It gets called by PortAudio every time PortAudio needs your application to consume or produce audio data. The callback is passed pointers to buffers containing the audio to process. The format (interleave, sample data type) and size of these buffers is determined by the parameters passed to Pa_OpenStream() when the Stream was opened.
|
||||||
|
|
||||||
Stream callbacks usually return @ref paContinue to indicate that PortAudio should keep the stream running. It is possible to deactivate a Stream from the stream callback by returning either @ref paComplete or @ref paAbort. In this case the Stream enters a deactivated state after the last buffer has finished playing (@ref paComplete) or as soon as possible (@ref paAbort). You can detect the deactivated state by calling Pa_IsStreamActive() or by using Pa_SetStreamFinishedCallback() to subscribe to a stream finished notification. Note that even if the stream callback returns @ref paComplete it's still necessary to call Pa_StopStream() or Pa_AbortStream() to enter the stopped state.
|
Stream callbacks usually return @ref paContinue to indicate that PortAudio should keep the stream running. It is possible to deactivate a Stream from the stream callback by returning either @ref paComplete or @ref paAbort. In this case the Stream enters a deactivated state after the last buffer has finished playing (@ref paComplete) or as soon as possible (@ref paAbort). You can detect the deactivated state by calling Pa_IsStreamActive() or by using Pa_SetStreamFinishedCallback() to subscribe to a stream finished notification. Note that even if the stream callback returns @ref paComplete it's still necessary to call Pa_StopStream() or Pa_AbortStream() to enter the stopped state.
|
||||||
|
|
||||||
Many of the tests in the /tests directory of the PortAudio distribution implement PortAudio stream callbacks. For example see: patest_sine.c (audio output), patest_record.c (audio input), patest_wire.c (audio pass-through) and pa_fuzz.c (simple audio effects processing).
|
Many of the tests in the /tests directory of the PortAudio distribution implement PortAudio stream callbacks. For example see: patest_sine.c (audio output), patest_record.c (audio input), patest_wire.c (audio pass-through) and pa_fuzz.c (simple audio effects processing).
|
||||||
|
|
||||||
<strong>IMPORTANT:</strong> The stream callback function often needs to operate with very high or real-time priority. As a result there are strict requirements placed on the type of code that can be executed in a stream callback. In general this means avoiding any code that might block, including: acquiring locks, calling OS API functions including allocating memory. With the exception of Pa_GetStreamCpuLoad() you may not call PortAudio API functions from within the stream callback.
|
<strong>IMPORTANT:</strong> The stream callback function often needs to operate with very high or real-time priority. As a result there are strict requirements placed on the type of code that can be executed in a stream callback. In general this means avoiding any code that might block, including: acquiring locks, calling OS API functions including allocating memory. With the exception of Pa_GetStreamCpuLoad() you may not call PortAudio API functions from within the stream callback.
|
||||||
|
|
||||||
@subsection read_write_io_method The Read/Write I/O Method
|
@subsection read_write_io_method The Read/Write I/O Method
|
||||||
|
|
||||||
As an alternative to the callback I/O method, PortAudio provides a synchronous read/write interface for acquiring and playing audio. This can be useful for applications that don't require the lowest possibly latency, or don't warrant the increased complexity of synchronising with an asynchronous callback funciton. This I/O method is also useful when calling PortAudio from programming languages that don't support asynchronous callbacks.
|
As an alternative to the callback I/O method, PortAudio provides a synchronous read/write interface for acquiring and playing audio. This can be useful for applications that don't require the lowest possibly latency, or don't warrant the increased complexity of synchronising with an asynchronous callback funciton. This I/O method is also useful when calling PortAudio from programming languages that don't support asynchronous callbacks.
|
||||||
|
|
||||||
To open a Stream in read/write mode you pass a NULL stream callback function pointer to Pa_OpenStream().
|
To open a Stream in read/write mode you pass a NULL stream callback function pointer to Pa_OpenStream().
|
||||||
|
|
||||||
To write audio data to a Stream call Pa_WriteStream() and to read data call Pa_ReadStream(). These functions will block if the internal buffers are full, making them safe to call in a tight loop. If you want to avoid blocking you can query the amount of available read or write space using Pa_GetStreamReadAvailable() or Pa_GetStreamWriteAvailable() and use the returned values to limit the amount of data you read or write.
|
To write audio data to a Stream call Pa_WriteStream() and to read data call Pa_ReadStream(). These functions will block if the internal buffers are full, making them safe to call in a tight loop. If you want to avoid blocking you can query the amount of available read or write space using Pa_GetStreamReadAvailable() or Pa_GetStreamWriteAvailable() and use the returned values to limit the amount of data you read or write.
|
||||||
|
|
||||||
For examples of the read/write I/O method see the following examples in the /tests directory of the PortAudio distribution: patest_read_record.c (audio input), patest_write_sine.c (audio output), patest_read_write_wire.c (audio pass-through).
|
For examples of the read/write I/O method see the following examples in the /tests directory of the PortAudio distribution: patest_read_record.c (audio input), patest_write_sine.c (audio output), patest_read_write_wire.c (audio pass-through).
|
||||||
|
|
||||||
@subsection stream_info Retrieving Stream Information
|
@subsection stream_info Retrieving Stream Information
|
||||||
|
|
||||||
You can retrieve information about an open Stream by calling Pa_GetStreamInfo(). This returns a @ref PaStreamInfo structure containing the actual input and output latency and sample rate of the stream. It's possible for these values to be different from the suggested values passed to Pa_OpenStream().
|
You can retrieve information about an open Stream by calling Pa_GetStreamInfo(). This returns a @ref PaStreamInfo structure containing the actual input and output latency and sample rate of the stream. It's possible for these values to be different from the suggested values passed to Pa_OpenStream().
|
||||||
|
|
||||||
When using a callback stream you can call Pa_GetStreamCpuLoad() to retrieve a rough estimate of the amount of CPU time your callback function is using.
|
When using a callback stream you can call Pa_GetStreamCpuLoad() to retrieve a rough estimate of the amount of CPU time your callback function is using.
|
||||||
|
|
||||||
@subsection stream_timing Stream Timing Information
|
@subsection stream_timing Stream Timing Information
|
||||||
|
|
||||||
When using the callback I/O method your stream callback function receives timing information via a pointer to a PaStreamCallbackTimeInfo structure. This structure contains the current time along with the estimated hardware capture and playback time of the first sample of the input and output buffers. All times are measured in seconds relative to a Stream-specific clock. The current Stream clock time can be retrieved using Pa_GetStreamTime().
|
When using the callback I/O method your stream callback function receives timing information via a pointer to a PaStreamCallbackTimeInfo structure. This structure contains the current time along with the estimated hardware capture and playback time of the first sample of the input and output buffers. All times are measured in seconds relative to a Stream-specific clock. The current Stream clock time can be retrieved using Pa_GetStreamTime().
|
||||||
|
|
||||||
You can use the stream callback @ref PaStreamCallbackTimeInfo times in conjunction with timestamps returned by Pa_GetStreamTime() to implement time synchronization schemes such as time aligning your GUI display with rendered audio, or maintaining synchronization between MIDI and audio playback.
|
You can use the stream callback @ref PaStreamCallbackTimeInfo times in conjunction with timestamps returned by Pa_GetStreamTime() to implement time synchronization schemes such as time aligning your GUI display with rendered audio, or maintaining synchronization between MIDI and audio playback.
|
||||||
|
|
||||||
@section error_handling Error Handling
|
@section error_handling Error Handling
|
||||||
|
|
||||||
Most PortAudio functions return error codes using values from the @ref PaError enumeration. All error codes are negative values. Some functions return values greater than or equal to zero for normal results and a negative error code in case of error.
|
Most PortAudio functions return error codes using values from the @ref PaError enumeration. All error codes are negative values. Some functions return values greater than or equal to zero for normal results and a negative error code in case of error.
|
||||||
|
|
||||||
You can convert @ref PaError error codes to human readable text by calling Pa_GetErrorText().
|
You can convert @ref PaError error codes to human readable text by calling Pa_GetErrorText().
|
||||||
|
|
||||||
PortAudio usually tries to translate error conditions into portable @ref PaError error codes. However if an unexpected error is encountered the @ref paUnanticipatedHostError code may be returned. In this case a further mechanism is provided to query for Host API-specific error information. If PortAudio returns @ref paUnanticipatedHostError you can call Pa_GetLastHostErrorInfo() to retrieve a pointer to a @ref PaHostErrorInfo structure that provides more information, including the Host API that encountered the error, a native API error code and error text.
|
PortAudio usually tries to translate error conditions into portable @ref PaError error codes. However if an unexpected error is encountered the @ref paUnanticipatedHostError code may be returned. In this case a further mechanism is provided to query for Host API-specific error information. If PortAudio returns @ref paUnanticipatedHostError you can call Pa_GetLastHostErrorInfo() to retrieve a pointer to a @ref PaHostErrorInfo structure that provides more information, including the Host API that encountered the error, a native API error code and error text.
|
||||||
|
|
||||||
@section host_api_extensions Host API and Platform-specific Extensions
|
@section host_api_extensions Host API and Platform-specific Extensions
|
||||||
|
|
||||||
The public PortAudio API only exposes functionality that can be provided across all target platforms. In some cases individual native audio APIs offer unique functionality. Some PortAudio Host APIs expose this functionality via Host API-specific extensions. Examples include access to low-level buffering and priority parameters, opening a Stream with only a subset of a Device's channels, or accessing channel metadata such as channel names.
|
The public PortAudio API only exposes functionality that can be provided across all target platforms. In some cases individual native audio APIs offer unique functionality. Some PortAudio Host APIs expose this functionality via Host API-specific extensions. Examples include access to low-level buffering and priority parameters, opening a Stream with only a subset of a Device's channels, or accessing channel metadata such as channel names.
|
||||||
|
|
||||||
Host API-specific extensions are provided in the form of additional functions and data structures defined in Host API-specific header files found in the /include directory.
|
Host API-specific extensions are provided in the form of additional functions and data structures defined in Host API-specific header files found in the /include directory.
|
||||||
|
|
||||||
The @ref PaStreamParameters structure passed to Pa_IsFormatSupported() and Pa_OpenStream() has a field named @ref PaStreamParameters::hostApiSpecificStreamInfo that is sometimes used to pass low level information when opening a Stream.
|
The @ref PaStreamParameters structure passed to Pa_IsFormatSupported() and Pa_OpenStream() has a field named @ref PaStreamParameters::hostApiSpecificStreamInfo that is sometimes used to pass low level information when opening a Stream.
|
||||||
|
|
||||||
See the documentation for the individual Host API-specific header files for details of the extended functionality they expose:
|
See the documentation for the individual Host API-specific header files for details of the extended functionality they expose:
|
||||||
|
|
||||||
- pa_asio.h
|
- pa_asio.h
|
||||||
- pa_jack.h
|
- pa_jack.h
|
||||||
- pa_linux_alsa.h
|
- pa_linux_alsa.h
|
||||||
- pa_mac_core.h
|
- pa_mac_core.h
|
||||||
- pa_win_ds.h
|
- pa_win_ds.h
|
||||||
- pa_win_wasapi.h
|
- pa_win_wasapi.h
|
||||||
- pa_win_wmme.h
|
- pa_win_wmme.h
|
||||||
- pa_win_waveformat.h
|
- pa_win_waveformat.h
|
||||||
|
|
||||||
*/
|
*/
|
|
@ -1,38 +1,38 @@
|
||||||
/** @page License PortAudio License
|
/** @page License PortAudio License
|
||||||
|
|
||||||
PortAudio Portable Real-Time Audio Library <br>
|
PortAudio Portable Real-Time Audio Library <br>
|
||||||
Copyright (c) 1999-2011 Ross Bencina, Phil Burk
|
Copyright (c) 1999-2011 Ross Bencina, Phil Burk
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files
|
a copy of this software and associated documentation files
|
||||||
(the "Software"), to deal in the Software without restriction,
|
(the "Software"), to deal in the Software without restriction,
|
||||||
including without limitation the rights to use, copy, modify, merge,
|
including without limitation the rights to use, copy, modify, merge,
|
||||||
publish, distribute, sublicense, and/or sell copies of the Software,
|
publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
and to permit persons to whom the Software is furnished to do so,
|
and to permit persons to whom the Software is furnished to do so,
|
||||||
subject to the following conditions:
|
subject to the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be
|
The above copyright notice and this permission notice shall be
|
||||||
included in all copies or substantial portions of the Software.
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
||||||
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||||
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
The text above constitutes the entire PortAudio license; however,
|
The text above constitutes the entire PortAudio license; however,
|
||||||
the PortAudio community also makes the following non-binding requests:
|
the PortAudio community also makes the following non-binding requests:
|
||||||
|
|
||||||
Any person wishing to distribute modifications to the Software is
|
Any person wishing to distribute modifications to the Software is
|
||||||
requested to send the modifications to the original developer so that
|
requested to send the modifications to the original developer so that
|
||||||
they can be incorporated into the canonical version. It is also
|
they can be incorporated into the canonical version. It is also
|
||||||
requested that these non-binding requests be included along with the
|
requested that these non-binding requests be included along with the
|
||||||
license above.
|
license above.
|
||||||
|
|
||||||
*/
|
*/
|
|
@ -1,55 +1,55 @@
|
||||||
/*
|
/*
|
||||||
define all of the file groups used to structure the documentation.
|
define all of the file groups used to structure the documentation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@defgroup public_header Public API definitions for users of PortAudio
|
@defgroup public_header Public API definitions for users of PortAudio
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@internal
|
@internal
|
||||||
@defgroup common_src Source code common to all implementations
|
@defgroup common_src Source code common to all implementations
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@internal
|
@internal
|
||||||
@defgroup win_src Source code common to all Windows implementations
|
@defgroup win_src Source code common to all Windows implementations
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@internal
|
@internal
|
||||||
@defgroup unix_src Source code common to all Unix implementations
|
@defgroup unix_src Source code common to all Unix implementations
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@internal
|
@internal
|
||||||
@defgroup macosx_src Source code common to all Macintosh implementations
|
@defgroup macosx_src Source code common to all Macintosh implementations
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@internal
|
@internal
|
||||||
@defgroup hostapi_src Source code for specific Host APIs
|
@defgroup hostapi_src Source code for specific Host APIs
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@internal
|
@internal
|
||||||
@defgroup test_src Test programs
|
@defgroup test_src Test programs
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@defgroup examples_src Example programs demonstrating PortAudio usage
|
@defgroup examples_src Example programs demonstrating PortAudio usage
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@internal
|
@internal
|
||||||
@page srcguide A guide to the PortAudio sources
|
@page srcguide A guide to the PortAudio sources
|
||||||
|
|
||||||
- \ref public_header
|
- \ref public_header
|
||||||
- \ref examples_src
|
- \ref examples_src
|
||||||
- \ref common_src
|
- \ref common_src
|
||||||
- \ref win_src
|
- \ref win_src
|
||||||
- \ref unix_src
|
- \ref unix_src
|
||||||
- \ref macosx_src
|
- \ref macosx_src
|
||||||
- \ref hostapi_src
|
- \ref hostapi_src
|
||||||
- \ref test_src
|
- \ref test_src
|
||||||
*/
|
*/
|
|
@ -1,77 +1,77 @@
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
import string
|
import string
|
||||||
|
|
||||||
paRootDirectory = '../../'
|
paRootDirectory = '../../'
|
||||||
paHtmlDocDirectory = os.path.join( paRootDirectory, "doc", "html" )
|
paHtmlDocDirectory = os.path.join( paRootDirectory, "doc", "html" )
|
||||||
|
|
||||||
## Script to check documentation status
|
## Script to check documentation status
|
||||||
## this script assumes that html doxygen documentation has been generated
|
## this script assumes that html doxygen documentation has been generated
|
||||||
##
|
##
|
||||||
## it then walks the entire portaudio source tree and check that
|
## it then walks the entire portaudio source tree and check that
|
||||||
## - every source file (.c,.h,.cpp) has a doxygen comment block containing
|
## - every source file (.c,.h,.cpp) has a doxygen comment block containing
|
||||||
## - a @file directive
|
## - a @file directive
|
||||||
## - a @brief directive
|
## - a @brief directive
|
||||||
## - a @ingroup directive
|
## - a @ingroup directive
|
||||||
## - it also checks that a corresponding html documentation file has been generated.
|
## - it also checks that a corresponding html documentation file has been generated.
|
||||||
##
|
##
|
||||||
## This can be used as a first-level check to make sure the documentation is in order.
|
## This can be used as a first-level check to make sure the documentation is in order.
|
||||||
##
|
##
|
||||||
## The idea is to get a list of which files are missing doxygen documentation.
|
## The idea is to get a list of which files are missing doxygen documentation.
|
||||||
|
|
||||||
|
|
||||||
# recurse from top and return a list of all with the given
|
# recurse from top and return a list of all with the given
|
||||||
# extensions. ignore .svn directories. return absolute paths
|
# extensions. ignore .svn directories. return absolute paths
|
||||||
def recursiveFindFiles( top, extensions, includePaths ):
|
def recursiveFindFiles( top, extensions, includePaths ):
|
||||||
result = []
|
result = []
|
||||||
for (dirpath, dirnames, filenames) in os.walk(top):
|
for (dirpath, dirnames, filenames) in os.walk(top):
|
||||||
if not '.svn' in dirpath:
|
if not '.svn' in dirpath:
|
||||||
for f in filenames:
|
for f in filenames:
|
||||||
if os.path.splitext(f)[1] in extensions:
|
if os.path.splitext(f)[1] in extensions:
|
||||||
if includePaths:
|
if includePaths:
|
||||||
result.append( os.path.abspath( os.path.join( dirpath, f ) ) )
|
result.append( os.path.abspath( os.path.join( dirpath, f ) ) )
|
||||||
else:
|
else:
|
||||||
result.append( f )
|
result.append( f )
|
||||||
return result
|
return result
|
||||||
|
|
||||||
# generate the html file name that doxygen would use for
|
# generate the html file name that doxygen would use for
|
||||||
# a particular source file. this is a brittle conversion
|
# a particular source file. this is a brittle conversion
|
||||||
# which i worked out by trial and error
|
# which i worked out by trial and error
|
||||||
def doxygenHtmlDocFileName( sourceFile ):
|
def doxygenHtmlDocFileName( sourceFile ):
|
||||||
return sourceFile.replace( '_', '__' ).replace( '.', '_8' ) + '.html'
|
return sourceFile.replace( '_', '__' ).replace( '.', '_8' ) + '.html'
|
||||||
|
|
||||||
|
|
||||||
sourceFiles = recursiveFindFiles( paRootDirectory, [ '.c', '.h', '.cpp' ], True );
|
sourceFiles = recursiveFindFiles( paRootDirectory, [ '.c', '.h', '.cpp' ], True );
|
||||||
docFiles = recursiveFindFiles( paHtmlDocDirectory, [ '.html' ], False );
|
docFiles = recursiveFindFiles( paHtmlDocDirectory, [ '.html' ], False );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
currentFile = ""
|
currentFile = ""
|
||||||
|
|
||||||
def printError( f, message ):
|
def printError( f, message ):
|
||||||
global currentFile
|
global currentFile
|
||||||
if f != currentFile:
|
if f != currentFile:
|
||||||
currentFile = f
|
currentFile = f
|
||||||
print f, ":"
|
print f, ":"
|
||||||
print "\t!", message
|
print "\t!", message
|
||||||
|
|
||||||
|
|
||||||
for f in sourceFiles:
|
for f in sourceFiles:
|
||||||
if not doxygenHtmlDocFileName( os.path.basename(f) ) in docFiles:
|
if not doxygenHtmlDocFileName( os.path.basename(f) ) in docFiles:
|
||||||
printError( f, "no doxygen generated doc page" )
|
printError( f, "no doxygen generated doc page" )
|
||||||
|
|
||||||
s = file( f, 'rt' ).read()
|
s = file( f, 'rt' ).read()
|
||||||
|
|
||||||
if not '/**' in s:
|
if not '/**' in s:
|
||||||
printError( f, "no doxygen /** block" )
|
printError( f, "no doxygen /** block" )
|
||||||
|
|
||||||
if not '@file' in s:
|
if not '@file' in s:
|
||||||
printError( f, "no doxygen @file tag" )
|
printError( f, "no doxygen @file tag" )
|
||||||
|
|
||||||
if not '@brief' in s:
|
if not '@brief' in s:
|
||||||
printError( f, "no doxygen @brief tag" )
|
printError( f, "no doxygen @brief tag" )
|
||||||
|
|
||||||
if not '@ingroup' in s:
|
if not '@ingroup' in s:
|
||||||
printError( f, "no doxygen @ingroup tag" )
|
printError( f, "no doxygen @ingroup tag" )
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
rem Use Astyle to fix style in 'C' files
|
rem Use Astyle to fix style in 'C' files
|
||||||
cd %1%
|
cd %1%
|
||||||
|
|
||||||
fixlines -p *.c
|
fixlines -p *.c
|
||||||
fixlines -p *.cpp
|
fixlines -p *.cpp
|
||||||
fixlines -p *.cc
|
fixlines -p *.cc
|
||||||
|
|
||||||
astyle --style=ansi -c -o --convert-tabs --indent-preprocessor *.c
|
astyle --style=ansi -c -o --convert-tabs --indent-preprocessor *.c
|
||||||
astyle --style=ansi -c -o --convert-tabs --indent-preprocessor *.cpp
|
astyle --style=ansi -c -o --convert-tabs --indent-preprocessor *.cpp
|
||||||
astyle --style=ansi -c -o --convert-tabs --indent-preprocessor *.cc
|
astyle --style=ansi -c -o --convert-tabs --indent-preprocessor *.cc
|
||||||
del *.orig
|
del *.orig
|
||||||
@rem convert line terminators to Unix style LFs
|
@rem convert line terminators to Unix style LFs
|
||||||
fixlines -u *.c
|
fixlines -u *.c
|
||||||
fixlines -u *.cpp
|
fixlines -u *.cpp
|
||||||
fixlines -u *.cc
|
fixlines -u *.cc
|
||||||
fixlines -u *.h
|
fixlines -u *.h
|
||||||
del *.bak
|
del *.bak
|
||||||
|
|
||||||
cd ..\
|
cd ..\
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
rem Use Astyle to fix style in a file
|
rem Use Astyle to fix style in a file
|
||||||
fixlines -p %1%
|
fixlines -p %1%
|
||||||
astyle --style=ansi -c -o --convert-tabs --indent-preprocessor %1%
|
astyle --style=ansi -c -o --convert-tabs --indent-preprocessor %1%
|
||||||
del %1%.orig
|
del %1%.orig
|
||||||
@rem convert line terminators to Unix style LFs
|
@rem convert line terminators to Unix style LFs
|
||||||
fixlines -u %1%
|
fixlines -u %1%
|
||||||
del %1%.bak
|
del %1%.bak
|
||||||
|
|
|
@ -1,105 +1,105 @@
|
||||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||||
<meta name="GENERATOR" content="Mozilla/4.79 [en] (Windows NT 5.0; U) [Netscape]">
|
<meta name="GENERATOR" content="Mozilla/4.79 [en] (Windows NT 5.0; U) [Netscape]">
|
||||||
<meta name="Author" content="Phil Burk">
|
<meta name="Author" content="Phil Burk">
|
||||||
<meta name="Description" content="PortAudio is a cross platform, open-source, audio I/O library.It provides a very simple API for recording and/or playing sound using a simple callback function.">
|
<meta name="Description" content="PortAudio is a cross platform, open-source, audio I/O library.It provides a very simple API for recording and/or playing sound using a simple callback function.">
|
||||||
<meta name="KeyWords" content="audio, library, portable, open-source, DirectSound,sound, music, JSyn, synthesis,">
|
<meta name="KeyWords" content="audio, library, portable, open-source, DirectSound,sound, music, JSyn, synthesis,">
|
||||||
<title>PortAudio Implementations for DirectSound</title>
|
<title>PortAudio Implementations for DirectSound</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<center><table COLS=1 WIDTH="100%" BGCOLOR="#FADA7A" >
|
<center><table COLS=1 WIDTH="100%" BGCOLOR="#FADA7A" >
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<center>
|
<center>
|
||||||
<h1>
|
<h1>
|
||||||
PortAudio - Portable Audio Library</h1></center>
|
PortAudio - Portable Audio Library</h1></center>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table></center>
|
</table></center>
|
||||||
|
|
||||||
<p>PortAudio is a cross platform, <a href="#License">open-source</a>, audio
|
<p>PortAudio is a cross platform, <a href="#License">open-source</a>, audio
|
||||||
I/O library proposed by <b>Ross Bencina</b> to the <a href="http://shoko.calarts.edu/~glmrboy/musicdsp/music-dsp.html">music-dsp</a>
|
I/O library proposed by <b>Ross Bencina</b> to the <a href="http://shoko.calarts.edu/~glmrboy/musicdsp/music-dsp.html">music-dsp</a>
|
||||||
mailing list. It lets you write simple audio programs in 'C' that will
|
mailing list. It lets you write simple audio programs in 'C' that will
|
||||||
compile and run on <b>Windows, Macintosh, Unix, BeOS</b>. PortAudio is
|
compile and run on <b>Windows, Macintosh, Unix, BeOS</b>. PortAudio is
|
||||||
intended to promote the exchange of audio synthesis software between developers
|
intended to promote the exchange of audio synthesis software between developers
|
||||||
on different platforms.
|
on different platforms.
|
||||||
<p>For complete information on PortAudio and to download the latest releases,
|
<p>For complete information on PortAudio and to download the latest releases,
|
||||||
please visit "<b><font size=+2><a href="http://www.portaudio.com">http://www.portaudio.com</a></font></b>".
|
please visit "<b><font size=+2><a href="http://www.portaudio.com">http://www.portaudio.com</a></font></b>".
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<center>
|
<center>
|
||||||
<h2>
|
<h2>
|
||||||
<b><a href="doc/html/index.html">Click here for Documentation</a></b></h2></center>
|
<b><a href="doc/html/index.html">Click here for Documentation</a></b></h2></center>
|
||||||
|
|
||||||
<h2>
|
<h2>
|
||||||
<b><font size=+2></font></b></h2>
|
<b><font size=+2></font></b></h2>
|
||||||
|
|
||||||
<h2>
|
<h2>
|
||||||
<b><font size=+2>Contacts and E-Mail List</font></b></h2>
|
<b><font size=+2>Contacts and E-Mail List</font></b></h2>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
If you are using or implementing PortAudio then please join the <b><font size=+1><a href="http://techweb.rfa.org/mailman/listinfo/portaudio">PortAudio
|
If you are using or implementing PortAudio then please join the <b><font size=+1><a href="http://techweb.rfa.org/mailman/listinfo/portaudio">PortAudio
|
||||||
mail list</a></font><font size=+2> </font></b>.</li>
|
mail list</a></font><font size=+2> </font></b>.</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
If you find bugs in one of these implementations, or have suggestions,
|
If you find bugs in one of these implementations, or have suggestions,
|
||||||
please e-mail them to <a href="mailto:philburk@softsynth.com">Phil Burk</a>.</li>
|
please e-mail them to <a href="mailto:philburk@softsynth.com">Phil Burk</a>.</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
If you make improvements to the library, please send them to us so we can
|
If you make improvements to the library, please send them to us so we can
|
||||||
incorporate the improvements.</li>
|
incorporate the improvements.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>
|
<h2>
|
||||||
<a NAME="License"></a>License</h2>
|
<a NAME="License"></a>License</h2>
|
||||||
|
|
||||||
<table width="600">
|
<table width="600">
|
||||||
<tr><td>
|
<tr><td>
|
||||||
<p>
|
<p>
|
||||||
PortAudio Portable Real-Time Audio Library
|
PortAudio Portable Real-Time Audio Library
|
||||||
<br>Copyright © 1999-2006 Ross Bencina and Phil Burk
|
<br>Copyright © 1999-2006 Ross Bencina and Phil Burk
|
||||||
</p>
|
</p>
|
||||||
<p>Permission is hereby granted, free of charge, to any person obtaining
|
<p>Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the "Software"),
|
a copy of this software and associated documentation files (the "Software"),
|
||||||
to deal in the Software without restriction, including without limitation
|
to deal in the Software without restriction, including without limitation
|
||||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
and/or sell copies of the Software, and to permit persons to whom the Software
|
and/or sell copies of the Software, and to permit persons to whom the Software
|
||||||
is furnished to do so, subject to the following conditions:
|
is furnished to do so, subject to the following conditions:
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The above copyright notice and this permission notice shall be included
|
The above copyright notice and this permission notice shall be included
|
||||||
in all copies or substantial portions of the Software.
|
in all copies or substantial portions of the Software.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND ON INFRINGEMENT.
|
FITNESS FOR A PARTICULAR PURPOSE AND ON INFRINGEMENT.
|
||||||
<br>IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
<br>IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
|
||||||
OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
||||||
THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p><i>
|
<p><i>
|
||||||
The text above constitutes the entire PortAudio license; however,
|
The text above constitutes the entire PortAudio license; however,
|
||||||
the PortAudio community also makes the following non-binding requests:
|
the PortAudio community also makes the following non-binding requests:
|
||||||
</i></p>
|
</i></p>
|
||||||
<p><i>
|
<p><i>
|
||||||
Any person wishing to distribute modifications to the Software is
|
Any person wishing to distribute modifications to the Software is
|
||||||
requested to send the modifications to the original developer so that
|
requested to send the modifications to the original developer so that
|
||||||
they can be incorporated into the canonical version. It is also
|
they can be incorporated into the canonical version. It is also
|
||||||
requested that these non-binding requests be included along with the
|
requested that these non-binding requests be included along with the
|
||||||
license above.
|
license above.
|
||||||
</i></p>
|
</i></p>
|
||||||
|
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,49 +1,49 @@
|
||||||
README for PABLIO
|
README for PABLIO
|
||||||
Portable Audio Blocking I/O Library
|
Portable Audio Blocking I/O Library
|
||||||
Author: Phil Burk
|
Author: Phil Burk
|
||||||
|
|
||||||
PABLIO is a simplified interface to PortAudio that provides
|
PABLIO is a simplified interface to PortAudio that provides
|
||||||
read/write style blocking I/O.
|
read/write style blocking I/O.
|
||||||
|
|
||||||
PABLIO is DEPRECATED. We recommend that people use the blocking I/O calls
|
PABLIO is DEPRECATED. We recommend that people use the blocking I/O calls
|
||||||
that are now part of the PortAudio API. These are Pa_ReadStream() and
|
that are now part of the PortAudio API. These are Pa_ReadStream() and
|
||||||
Pa_WriteStream().
|
Pa_WriteStream().
|
||||||
|
|
||||||
http://portaudio.com/docs/v19-doxydocs/blocking_read_write.html
|
http://portaudio.com/docs/v19-doxydocs/blocking_read_write.html
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* More information on PortAudio at: http://www.portaudio.com
|
* More information on PortAudio at: http://www.portaudio.com
|
||||||
* Copyright (c) 1999-2000 Phil Burk
|
* Copyright (c) 1999-2000 Phil Burk
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
* a copy of this software and associated documentation files
|
* a copy of this software and associated documentation files
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
* (the "Software"), to deal in the Software without restriction,
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
* including without limitation the rights to use, copy, modify, merge,
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
* and to permit persons to whom the Software is furnished to do so,
|
||||||
* subject to the following conditions:
|
* subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be
|
* The above copyright notice and this permission notice shall be
|
||||||
* included in all copies or substantial portions of the Software.
|
* included in all copies or substantial portions of the Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
||||||
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The text above constitutes the entire PortAudio license; however,
|
* The text above constitutes the entire PortAudio license; however,
|
||||||
* the PortAudio community also makes the following non-binding requests:
|
* the PortAudio community also makes the following non-binding requests:
|
||||||
*
|
*
|
||||||
* Any person wishing to distribute modifications to the Software is
|
* Any person wishing to distribute modifications to the Software is
|
||||||
* requested to send the modifications to the original developer so that
|
* requested to send the modifications to the original developer so that
|
||||||
* they can be incorporated into the canonical version. It is also
|
* they can be incorporated into the canonical version. It is also
|
||||||
* requested that these non-binding requests be included along with the
|
* requested that these non-binding requests be included along with the
|
||||||
* license above.
|
* license above.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,35 +1,35 @@
|
||||||
LIBRARY PABLIO
|
LIBRARY PABLIO
|
||||||
DESCRIPTION 'PABLIO Portable Audio Blocking I/O'
|
DESCRIPTION 'PABLIO Portable Audio Blocking I/O'
|
||||||
|
|
||||||
EXPORTS
|
EXPORTS
|
||||||
; Explicit exports can go here
|
; Explicit exports can go here
|
||||||
Pa_Initialize @1
|
Pa_Initialize @1
|
||||||
Pa_Terminate @2
|
Pa_Terminate @2
|
||||||
Pa_GetHostError @3
|
Pa_GetHostError @3
|
||||||
Pa_GetErrorText @4
|
Pa_GetErrorText @4
|
||||||
Pa_CountDevices @5
|
Pa_CountDevices @5
|
||||||
Pa_GetDefaultInputDeviceID @6
|
Pa_GetDefaultInputDeviceID @6
|
||||||
Pa_GetDefaultOutputDeviceID @7
|
Pa_GetDefaultOutputDeviceID @7
|
||||||
Pa_GetDeviceInfo @8
|
Pa_GetDeviceInfo @8
|
||||||
Pa_OpenStream @9
|
Pa_OpenStream @9
|
||||||
Pa_OpenDefaultStream @10
|
Pa_OpenDefaultStream @10
|
||||||
Pa_CloseStream @11
|
Pa_CloseStream @11
|
||||||
Pa_StartStream @12
|
Pa_StartStream @12
|
||||||
Pa_StopStream @13
|
Pa_StopStream @13
|
||||||
Pa_StreamActive @14
|
Pa_StreamActive @14
|
||||||
Pa_StreamTime @15
|
Pa_StreamTime @15
|
||||||
Pa_GetCPULoad @16
|
Pa_GetCPULoad @16
|
||||||
Pa_GetMinNumBuffers @17
|
Pa_GetMinNumBuffers @17
|
||||||
Pa_Sleep @18
|
Pa_Sleep @18
|
||||||
|
|
||||||
OpenAudioStream @19
|
OpenAudioStream @19
|
||||||
CloseAudioStream @20
|
CloseAudioStream @20
|
||||||
WriteAudioStream @21
|
WriteAudioStream @21
|
||||||
ReadAudioStream @22
|
ReadAudioStream @22
|
||||||
|
|
||||||
Pa_GetSampleSize @23
|
Pa_GetSampleSize @23
|
||||||
|
|
||||||
;123456789012345678901234567890123456
|
;123456789012345678901234567890123456
|
||||||
;000000000111111111122222222223333333
|
;000000000111111111122222222223333333
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
prefix=@prefix@
|
prefix=@prefix@
|
||||||
exec_prefix=@exec_prefix@
|
exec_prefix=@exec_prefix@
|
||||||
libdir=@libdir@
|
libdir=@libdir@
|
||||||
includedir=@includedir@
|
includedir=@includedir@
|
||||||
|
|
||||||
Name: PortAudio
|
Name: PortAudio
|
||||||
Description: Portable audio I/O
|
Description: Portable audio I/O
|
||||||
Requires:
|
Requires:
|
||||||
Version: 19
|
Version: 19
|
||||||
|
|
||||||
Libs: -L${libdir} -lportaudio @LIBS@
|
Libs: -L${libdir} -lportaudio @LIBS@
|
||||||
Cflags: -I${includedir} @THREAD_CFLAGS@
|
Cflags: -I${includedir} @THREAD_CFLAGS@
|
||||||
|
|
|
@ -1,220 +1,220 @@
|
||||||
import os.path, copy, sys
|
import os.path, copy, sys
|
||||||
|
|
||||||
def checkSymbol(conf, header, library=None, symbol=None, autoAdd=True, critical=False, pkgName=None):
|
def checkSymbol(conf, header, library=None, symbol=None, autoAdd=True, critical=False, pkgName=None):
|
||||||
""" Check for symbol in library, optionally look only for header.
|
""" Check for symbol in library, optionally look only for header.
|
||||||
@param conf: Configure instance.
|
@param conf: Configure instance.
|
||||||
@param header: The header file where the symbol is declared.
|
@param header: The header file where the symbol is declared.
|
||||||
@param library: The library in which the symbol exists, if None it is taken to be the standard C library.
|
@param library: The library in which the symbol exists, if None it is taken to be the standard C library.
|
||||||
@param symbol: The symbol to look for, if None only the header will be looked up.
|
@param symbol: The symbol to look for, if None only the header will be looked up.
|
||||||
@param autoAdd: Automatically link with this library if check is positive.
|
@param autoAdd: Automatically link with this library if check is positive.
|
||||||
@param critical: Raise on error?
|
@param critical: Raise on error?
|
||||||
@param pkgName: Optional name of pkg-config entry for library, to determine build parameters.
|
@param pkgName: Optional name of pkg-config entry for library, to determine build parameters.
|
||||||
@return: True/False
|
@return: True/False
|
||||||
"""
|
"""
|
||||||
origEnv = conf.env.Copy() # Copy unmodified environment so we can restore it upon error
|
origEnv = conf.env.Copy() # Copy unmodified environment so we can restore it upon error
|
||||||
env = conf.env
|
env = conf.env
|
||||||
if library is None:
|
if library is None:
|
||||||
library = "c" # Standard library
|
library = "c" # Standard library
|
||||||
autoAdd = False
|
autoAdd = False
|
||||||
|
|
||||||
if pkgName is not None:
|
if pkgName is not None:
|
||||||
origLibs = copy.copy(env.get("LIBS", None))
|
origLibs = copy.copy(env.get("LIBS", None))
|
||||||
|
|
||||||
try: env.ParseConfig("pkg-config --silence-errors %s --cflags --libs" % pkgName)
|
try: env.ParseConfig("pkg-config --silence-errors %s --cflags --libs" % pkgName)
|
||||||
except: pass
|
except: pass
|
||||||
else:
|
else:
|
||||||
# I see no other way of checking that the parsing succeeded, if it did add no more linking parameters
|
# I see no other way of checking that the parsing succeeded, if it did add no more linking parameters
|
||||||
if env.get("LIBS", None) != origLibs:
|
if env.get("LIBS", None) != origLibs:
|
||||||
autoAdd = False
|
autoAdd = False
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not conf.CheckCHeader(header, include_quotes="<>"):
|
if not conf.CheckCHeader(header, include_quotes="<>"):
|
||||||
raise ConfigurationError("missing header %s" % header)
|
raise ConfigurationError("missing header %s" % header)
|
||||||
if symbol is not None and not conf.CheckLib(library, symbol, language="C", autoadd=autoAdd):
|
if symbol is not None and not conf.CheckLib(library, symbol, language="C", autoadd=autoAdd):
|
||||||
raise ConfigurationError("missing symbol %s in library %s" % (symbol, library))
|
raise ConfigurationError("missing symbol %s in library %s" % (symbol, library))
|
||||||
except ConfigurationError:
|
except ConfigurationError:
|
||||||
conf.env = origEnv
|
conf.env = origEnv
|
||||||
if not critical:
|
if not critical:
|
||||||
return False
|
return False
|
||||||
raise
|
raise
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
import SCons.Errors
|
import SCons.Errors
|
||||||
|
|
||||||
# Import common variables
|
# Import common variables
|
||||||
|
|
||||||
# Could use '#' to refer to top-level SConstruct directory, but looks like env.SConsignFile doesn't interpret this at least :(
|
# Could use '#' to refer to top-level SConstruct directory, but looks like env.SConsignFile doesn't interpret this at least :(
|
||||||
sconsDir = os.path.abspath(os.path.join("build", "scons"))
|
sconsDir = os.path.abspath(os.path.join("build", "scons"))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
Import("Platform", "Posix", "ConfigurationError", "ApiVer")
|
Import("Platform", "Posix", "ConfigurationError", "ApiVer")
|
||||||
except SCons.Errors.UserError:
|
except SCons.Errors.UserError:
|
||||||
# The common objects must be exported first
|
# The common objects must be exported first
|
||||||
SConscript(os.path.join(sconsDir, "SConscript_common"))
|
SConscript(os.path.join(sconsDir, "SConscript_common"))
|
||||||
Import("Platform", "Posix", "ConfigurationError", "ApiVer")
|
Import("Platform", "Posix", "ConfigurationError", "ApiVer")
|
||||||
|
|
||||||
Import("env")
|
Import("env")
|
||||||
|
|
||||||
# This will be manipulated
|
# This will be manipulated
|
||||||
env = env.Copy()
|
env = env.Copy()
|
||||||
|
|
||||||
# We operate with a set of needed libraries and optional libraries, the latter stemming from host API implementations.
|
# We operate with a set of needed libraries and optional libraries, the latter stemming from host API implementations.
|
||||||
# For libraries of both types we record a set of values that is used to look for the library in question, during
|
# For libraries of both types we record a set of values that is used to look for the library in question, during
|
||||||
# configuration. If the corresponding library for a host API implementation isn't found, the implementation is left out.
|
# configuration. If the corresponding library for a host API implementation isn't found, the implementation is left out.
|
||||||
neededLibs = []
|
neededLibs = []
|
||||||
optionalImpls = {}
|
optionalImpls = {}
|
||||||
if Platform in Posix:
|
if Platform in Posix:
|
||||||
env.Append(CPPPATH=os.path.join("os", "unix"))
|
env.Append(CPPPATH=os.path.join("os", "unix"))
|
||||||
neededLibs += [("pthread", "pthread.h", "pthread_create"), ("m", "math.h", "sin")]
|
neededLibs += [("pthread", "pthread.h", "pthread_create"), ("m", "math.h", "sin")]
|
||||||
if env["useALSA"]:
|
if env["useALSA"]:
|
||||||
optionalImpls["ALSA"] = ("asound", "alsa/asoundlib.h", "snd_pcm_open")
|
optionalImpls["ALSA"] = ("asound", "alsa/asoundlib.h", "snd_pcm_open")
|
||||||
if env["useJACK"]:
|
if env["useJACK"]:
|
||||||
optionalImpls["JACK"] = ("jack", "jack/jack.h", "jack_client_new")
|
optionalImpls["JACK"] = ("jack", "jack/jack.h", "jack_client_new")
|
||||||
if env["useOSS"]:
|
if env["useOSS"]:
|
||||||
# TODO: It looks like the prefix for soundcard.h depends on the platform
|
# TODO: It looks like the prefix for soundcard.h depends on the platform
|
||||||
optionalImpls["OSS"] = ("oss", "sys/soundcard.h", None)
|
optionalImpls["OSS"] = ("oss", "sys/soundcard.h", None)
|
||||||
if Platform == 'netbsd':
|
if Platform == 'netbsd':
|
||||||
optionalImpls["OSS"] = ("ossaudio", "sys/soundcard.h", "_oss_ioctl")
|
optionalImpls["OSS"] = ("ossaudio", "sys/soundcard.h", "_oss_ioctl")
|
||||||
if env["useASIHPI"]:
|
if env["useASIHPI"]:
|
||||||
optionalImpls["ASIHPI"] = ("hpi", "asihpi/hpi.h", "HPI_SubSysCreate")
|
optionalImpls["ASIHPI"] = ("hpi", "asihpi/hpi.h", "HPI_SubSysCreate")
|
||||||
if env["useCOREAUDIO"]:
|
if env["useCOREAUDIO"]:
|
||||||
optionalImpls["COREAUDIO"] = ("CoreAudio", "CoreAudio/CoreAudio.h", None)
|
optionalImpls["COREAUDIO"] = ("CoreAudio", "CoreAudio/CoreAudio.h", None)
|
||||||
else:
|
else:
|
||||||
raise ConfigurationError("unknown platform %s" % Platform)
|
raise ConfigurationError("unknown platform %s" % Platform)
|
||||||
|
|
||||||
if Platform == "darwin":
|
if Platform == "darwin":
|
||||||
env.Append(LINKFLAGS="-framework CoreFoundation -framework CoreServices -framework CoreAudio -framework AudioToolBox -framework AudioUnit")
|
env.Append(LINKFLAGS="-framework CoreFoundation -framework CoreServices -framework CoreAudio -framework AudioToolBox -framework AudioUnit")
|
||||||
elif Platform == "cygwin":
|
elif Platform == "cygwin":
|
||||||
env.Append(LIBS=["winmm"])
|
env.Append(LIBS=["winmm"])
|
||||||
elif Platform == "irix":
|
elif Platform == "irix":
|
||||||
neededLibs += [("audio", "dmedia/audio.h", "alOpenPort"), ("dmedia", "dmedia/dmedia.h", "dmGetUST")]
|
neededLibs += [("audio", "dmedia/audio.h", "alOpenPort"), ("dmedia", "dmedia/dmedia.h", "dmGetUST")]
|
||||||
env.Append(CPPDEFINES=["PA_USE_SGI"])
|
env.Append(CPPDEFINES=["PA_USE_SGI"])
|
||||||
|
|
||||||
def CheckCTypeSize(context, tp):
|
def CheckCTypeSize(context, tp):
|
||||||
""" Check size of C type.
|
""" Check size of C type.
|
||||||
@param context: A configuration context.
|
@param context: A configuration context.
|
||||||
@param tp: The type to check.
|
@param tp: The type to check.
|
||||||
@return: Size of type, in bytes.
|
@return: Size of type, in bytes.
|
||||||
"""
|
"""
|
||||||
context.Message("Checking the size of C type %s..." % tp)
|
context.Message("Checking the size of C type %s..." % tp)
|
||||||
ret = context.TryRun("""
|
ret = context.TryRun("""
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
printf("%%d", sizeof(%s));
|
printf("%%d", sizeof(%s));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
""" % tp, ".c")
|
""" % tp, ".c")
|
||||||
if not ret[0]:
|
if not ret[0]:
|
||||||
context.Result(" Couldn't obtain size of type %s!" % tp)
|
context.Result(" Couldn't obtain size of type %s!" % tp)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
assert ret[1]
|
assert ret[1]
|
||||||
sz = int(ret[1])
|
sz = int(ret[1])
|
||||||
context.Result("%d" % sz)
|
context.Result("%d" % sz)
|
||||||
return sz
|
return sz
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if sys.byteorder == "little":
|
if sys.byteorder == "little":
|
||||||
env.Append(CPPDEFINES=["PA_LITTLE_ENDIAN"])
|
env.Append(CPPDEFINES=["PA_LITTLE_ENDIAN"])
|
||||||
elif sys.byteorder == "big":
|
elif sys.byteorder == "big":
|
||||||
env.Append(CPPDEFINES=["PA_BIG_ENDIAN"])
|
env.Append(CPPDEFINES=["PA_BIG_ENDIAN"])
|
||||||
else:
|
else:
|
||||||
raise ConfigurationError("unknown byte order: %s" % sys.byteorder)
|
raise ConfigurationError("unknown byte order: %s" % sys.byteorder)
|
||||||
"""
|
"""
|
||||||
if env["enableDebugOutput"]:
|
if env["enableDebugOutput"]:
|
||||||
env.Append(CPPDEFINES=["PA_ENABLE_DEBUG_OUTPUT"])
|
env.Append(CPPDEFINES=["PA_ENABLE_DEBUG_OUTPUT"])
|
||||||
|
|
||||||
# Start configuration
|
# Start configuration
|
||||||
|
|
||||||
# Use an absolute path for conf_dir, otherwise it gets created both relative to current directory and build directory
|
# Use an absolute path for conf_dir, otherwise it gets created both relative to current directory and build directory
|
||||||
conf = env.Configure(log_file=os.path.join(sconsDir, "sconf.log"), custom_tests={"CheckCTypeSize": CheckCTypeSize},
|
conf = env.Configure(log_file=os.path.join(sconsDir, "sconf.log"), custom_tests={"CheckCTypeSize": CheckCTypeSize},
|
||||||
conf_dir=os.path.join(sconsDir, ".sconf_temp"))
|
conf_dir=os.path.join(sconsDir, ".sconf_temp"))
|
||||||
conf.env.Append(CPPDEFINES=["SIZEOF_SHORT=%d" % conf.CheckCTypeSize("short")])
|
conf.env.Append(CPPDEFINES=["SIZEOF_SHORT=%d" % conf.CheckCTypeSize("short")])
|
||||||
conf.env.Append(CPPDEFINES=["SIZEOF_INT=%d" % conf.CheckCTypeSize("int")])
|
conf.env.Append(CPPDEFINES=["SIZEOF_INT=%d" % conf.CheckCTypeSize("int")])
|
||||||
conf.env.Append(CPPDEFINES=["SIZEOF_LONG=%d" % conf.CheckCTypeSize("long")])
|
conf.env.Append(CPPDEFINES=["SIZEOF_LONG=%d" % conf.CheckCTypeSize("long")])
|
||||||
if checkSymbol(conf, "time.h", "rt", "clock_gettime"):
|
if checkSymbol(conf, "time.h", "rt", "clock_gettime"):
|
||||||
conf.env.Append(CPPDEFINES=["HAVE_CLOCK_GETTIME"])
|
conf.env.Append(CPPDEFINES=["HAVE_CLOCK_GETTIME"])
|
||||||
if checkSymbol(conf, "time.h", symbol="nanosleep"):
|
if checkSymbol(conf, "time.h", symbol="nanosleep"):
|
||||||
conf.env.Append(CPPDEFINES=["HAVE_NANOSLEEP"])
|
conf.env.Append(CPPDEFINES=["HAVE_NANOSLEEP"])
|
||||||
if conf.CheckCHeader("sys/soundcard.h"):
|
if conf.CheckCHeader("sys/soundcard.h"):
|
||||||
conf.env.Append(CPPDEFINES=["HAVE_SYS_SOUNDCARD_H"])
|
conf.env.Append(CPPDEFINES=["HAVE_SYS_SOUNDCARD_H"])
|
||||||
if conf.CheckCHeader("linux/soundcard.h"):
|
if conf.CheckCHeader("linux/soundcard.h"):
|
||||||
conf.env.Append(CPPDEFINES=["HAVE_LINUX_SOUNDCARD_H"])
|
conf.env.Append(CPPDEFINES=["HAVE_LINUX_SOUNDCARD_H"])
|
||||||
if conf.CheckCHeader("machine/soundcard.h"):
|
if conf.CheckCHeader("machine/soundcard.h"):
|
||||||
conf.env.Append(CPPDEFINES=["HAVE_MACHINE_SOUNDCARD_H"])
|
conf.env.Append(CPPDEFINES=["HAVE_MACHINE_SOUNDCARD_H"])
|
||||||
|
|
||||||
# Look for needed libraries and link with them
|
# Look for needed libraries and link with them
|
||||||
for lib, hdr, sym in neededLibs:
|
for lib, hdr, sym in neededLibs:
|
||||||
checkSymbol(conf, hdr, lib, sym, critical=True)
|
checkSymbol(conf, hdr, lib, sym, critical=True)
|
||||||
# Look for host API libraries, if a library isn't found disable corresponding host API implementation.
|
# Look for host API libraries, if a library isn't found disable corresponding host API implementation.
|
||||||
for name, val in optionalImpls.items():
|
for name, val in optionalImpls.items():
|
||||||
lib, hdr, sym = val
|
lib, hdr, sym = val
|
||||||
if checkSymbol(conf, hdr, lib, sym, critical=False, pkgName=name.lower()):
|
if checkSymbol(conf, hdr, lib, sym, critical=False, pkgName=name.lower()):
|
||||||
conf.env.Append(CPPDEFINES=["PA_USE_%s=1" % name.upper()])
|
conf.env.Append(CPPDEFINES=["PA_USE_%s=1" % name.upper()])
|
||||||
else:
|
else:
|
||||||
del optionalImpls[name]
|
del optionalImpls[name]
|
||||||
|
|
||||||
# Configuration finished
|
# Configuration finished
|
||||||
env = conf.Finish()
|
env = conf.Finish()
|
||||||
|
|
||||||
# PA infrastructure
|
# PA infrastructure
|
||||||
CommonSources = [os.path.join("common", f) for f in "pa_allocation.c pa_converters.c pa_cpuload.c pa_dither.c pa_front.c \
|
CommonSources = [os.path.join("common", f) for f in "pa_allocation.c pa_converters.c pa_cpuload.c pa_dither.c pa_front.c \
|
||||||
pa_process.c pa_stream.c pa_trace.c pa_debugprint.c pa_ringbuffer.c".split()]
|
pa_process.c pa_stream.c pa_trace.c pa_debugprint.c pa_ringbuffer.c".split()]
|
||||||
CommonSources.append(os.path.join("hostapi", "skeleton", "pa_hostapi_skeleton.c"))
|
CommonSources.append(os.path.join("hostapi", "skeleton", "pa_hostapi_skeleton.c"))
|
||||||
|
|
||||||
# Host APIs implementations
|
# Host APIs implementations
|
||||||
ImplSources = []
|
ImplSources = []
|
||||||
if Platform in Posix:
|
if Platform in Posix:
|
||||||
ImplSources += [os.path.join("os", "unix", f) for f in "pa_unix_hostapis.c pa_unix_util.c".split()]
|
ImplSources += [os.path.join("os", "unix", f) for f in "pa_unix_hostapis.c pa_unix_util.c".split()]
|
||||||
|
|
||||||
if "ALSA" in optionalImpls:
|
if "ALSA" in optionalImpls:
|
||||||
ImplSources.append(os.path.join("hostapi", "alsa", "pa_linux_alsa.c"))
|
ImplSources.append(os.path.join("hostapi", "alsa", "pa_linux_alsa.c"))
|
||||||
if "JACK" in optionalImpls:
|
if "JACK" in optionalImpls:
|
||||||
ImplSources.append(os.path.join("hostapi", "jack", "pa_jack.c"))
|
ImplSources.append(os.path.join("hostapi", "jack", "pa_jack.c"))
|
||||||
if "OSS" in optionalImpls:
|
if "OSS" in optionalImpls:
|
||||||
ImplSources.append(os.path.join("hostapi", "oss", "pa_unix_oss.c"))
|
ImplSources.append(os.path.join("hostapi", "oss", "pa_unix_oss.c"))
|
||||||
if "ASIHPI" in optionalImpls:
|
if "ASIHPI" in optionalImpls:
|
||||||
ImplSources.append(os.path.join("hostapi", "asihpi", "pa_linux_asihpi.c"))
|
ImplSources.append(os.path.join("hostapi", "asihpi", "pa_linux_asihpi.c"))
|
||||||
if "COREAUDIO" in optionalImpls:
|
if "COREAUDIO" in optionalImpls:
|
||||||
ImplSources.append([os.path.join("hostapi", "coreaudio", f) for f in """
|
ImplSources.append([os.path.join("hostapi", "coreaudio", f) for f in """
|
||||||
pa_mac_core.c pa_mac_core_blocking.c pa_mac_core_utilities.c
|
pa_mac_core.c pa_mac_core_blocking.c pa_mac_core_utilities.c
|
||||||
""".split()])
|
""".split()])
|
||||||
|
|
||||||
|
|
||||||
sources = CommonSources + ImplSources
|
sources = CommonSources + ImplSources
|
||||||
|
|
||||||
sharedLibEnv = env.Copy()
|
sharedLibEnv = env.Copy()
|
||||||
if Platform in Posix:
|
if Platform in Posix:
|
||||||
# Add soname to library, this is so a reference is made to the versioned library in programs linking against libportaudio.so
|
# Add soname to library, this is so a reference is made to the versioned library in programs linking against libportaudio.so
|
||||||
if Platform != 'darwin':
|
if Platform != 'darwin':
|
||||||
sharedLibEnv.AppendUnique(SHLINKFLAGS="-Wl,-soname=libportaudio.so.%d" % int(ApiVer.split(".")[0]))
|
sharedLibEnv.AppendUnique(SHLINKFLAGS="-Wl,-soname=libportaudio.so.%d" % int(ApiVer.split(".")[0]))
|
||||||
sharedLib = sharedLibEnv.SharedLibrary(target="portaudio", source=sources)
|
sharedLib = sharedLibEnv.SharedLibrary(target="portaudio", source=sources)
|
||||||
|
|
||||||
staticLib = env.StaticLibrary(target="portaudio", source=sources)
|
staticLib = env.StaticLibrary(target="portaudio", source=sources)
|
||||||
|
|
||||||
if Platform in Posix:
|
if Platform in Posix:
|
||||||
prefix = env["prefix"]
|
prefix = env["prefix"]
|
||||||
includeDir = os.path.join(prefix, "include")
|
includeDir = os.path.join(prefix, "include")
|
||||||
libDir = os.path.join(prefix, "lib")
|
libDir = os.path.join(prefix, "lib")
|
||||||
|
|
||||||
testNames = ["patest_sine", "paqa_devs", "paqa_errs", "patest1", "patest_buffer", "patest_callbackstop", "patest_clip", \
|
testNames = ["patest_sine", "paqa_devs", "paqa_errs", "patest1", "patest_buffer", "patest_callbackstop", "patest_clip", \
|
||||||
"patest_dither", "patest_hang", "patest_in_overflow", "patest_latency", "patest_leftright", "patest_longsine", \
|
"patest_dither", "patest_hang", "patest_in_overflow", "patest_latency", "patest_leftright", "patest_longsine", \
|
||||||
"patest_many", "patest_maxsines", "patest_multi_sine", "patest_out_underflow", "patest_pink", "patest_prime", \
|
"patest_many", "patest_maxsines", "patest_multi_sine", "patest_out_underflow", "patest_pink", "patest_prime", \
|
||||||
"patest_read_record", "patest_record", "patest_ringmix", "patest_saw", "patest_sine8", "patest_sine", \
|
"patest_read_record", "patest_record", "patest_ringmix", "patest_saw", "patest_sine8", "patest_sine", \
|
||||||
"patest_sine_time", "patest_start_stop", "patest_stop", "patest_sync", "patest_toomanysines", \
|
"patest_sine_time", "patest_start_stop", "patest_stop", "patest_sync", "patest_toomanysines", \
|
||||||
"patest_underflow", "patest_wire", "patest_write_sine", "pa_devs", "pa_fuzz", "pa_minlat", \
|
"patest_underflow", "patest_wire", "patest_write_sine", "pa_devs", "pa_fuzz", "pa_minlat", \
|
||||||
"patest_sine_channelmaps",]
|
"patest_sine_channelmaps",]
|
||||||
|
|
||||||
# The test directory ("bin") should be in the top-level PA directory
|
# The test directory ("bin") should be in the top-level PA directory
|
||||||
tests = [env.Program(target=os.path.join("#", "bin", name), source=[os.path.join("#", "test", name + ".c"),
|
tests = [env.Program(target=os.path.join("#", "bin", name), source=[os.path.join("#", "test", name + ".c"),
|
||||||
staticLib]) for name in testNames]
|
staticLib]) for name in testNames]
|
||||||
|
|
||||||
# Detect host APIs
|
# Detect host APIs
|
||||||
hostApis = []
|
hostApis = []
|
||||||
for cppdef in env["CPPDEFINES"]:
|
for cppdef in env["CPPDEFINES"]:
|
||||||
if cppdef.startswith("PA_USE_"):
|
if cppdef.startswith("PA_USE_"):
|
||||||
hostApis.append(cppdef[7:-2])
|
hostApis.append(cppdef[7:-2])
|
||||||
|
|
||||||
Return("sources", "sharedLib", "staticLib", "tests", "env", "hostApis")
|
Return("sources", "sharedLib", "staticLib", "tests", "env", "hostApis")
|
||||||
|
|
|
@ -1,147 +1,147 @@
|
||||||
ASIO-README.txt
|
ASIO-README.txt
|
||||||
|
|
||||||
This document contains information to help you compile PortAudio with
|
This document contains information to help you compile PortAudio with
|
||||||
ASIO support. If you find any omissions or errors in this document
|
ASIO support. If you find any omissions or errors in this document
|
||||||
please notify us on the PortAudio mailing list.
|
please notify us on the PortAudio mailing list.
|
||||||
|
|
||||||
NOTE: The Macintosh sections of this document are provided for historical
|
NOTE: The Macintosh sections of this document are provided for historical
|
||||||
reference. They refer to pre-OS X Macintosh. PortAudio no longer
|
reference. They refer to pre-OS X Macintosh. PortAudio no longer
|
||||||
supports pre-OS X Macintosh. Steinberg does not support ASIO on Mac OS X.
|
supports pre-OS X Macintosh. Steinberg does not support ASIO on Mac OS X.
|
||||||
|
|
||||||
|
|
||||||
Building PortAudio with ASIO support
|
Building PortAudio with ASIO support
|
||||||
------------------------------------
|
------------------------------------
|
||||||
|
|
||||||
To build PortAudio with ASIO support you need to compile and link with
|
To build PortAudio with ASIO support you need to compile and link with
|
||||||
pa_asio.c, and files from the ASIO SDK (see below), along with the common
|
pa_asio.c, and files from the ASIO SDK (see below), along with the common
|
||||||
PortAudio files from src/common/ and platform specific files from
|
PortAudio files from src/common/ and platform specific files from
|
||||||
src/os/win/ (for Win32).
|
src/os/win/ (for Win32).
|
||||||
|
|
||||||
If you are compiling with a non-Microsoft compiler on Windows, also
|
If you are compiling with a non-Microsoft compiler on Windows, also
|
||||||
compile and link with iasiothiscallresolver.cpp (see below for
|
compile and link with iasiothiscallresolver.cpp (see below for
|
||||||
an explanation).
|
an explanation).
|
||||||
|
|
||||||
For some platforms (MingW, Cygwin/MingW), you may simply
|
For some platforms (MingW, Cygwin/MingW), you may simply
|
||||||
be able to type:
|
be able to type:
|
||||||
|
|
||||||
./configure --with-host_os=mingw --with-winapi=asio [--with-asiodir=/usr/local/asiosdk2]
|
./configure --with-host_os=mingw --with-winapi=asio [--with-asiodir=/usr/local/asiosdk2]
|
||||||
make
|
make
|
||||||
|
|
||||||
and life will be good. Make sure you update the above with the correct local
|
and life will be good. Make sure you update the above with the correct local
|
||||||
path to the ASIO SDK.
|
path to the ASIO SDK.
|
||||||
|
|
||||||
|
|
||||||
For Microsoft Visual C++ there is an build tutorial here:
|
For Microsoft Visual C++ there is an build tutorial here:
|
||||||
http://www.portaudio.com/trac/wiki/TutorialDir/Compile/WindowsASIOMSVC
|
http://www.portaudio.com/trac/wiki/TutorialDir/Compile/WindowsASIOMSVC
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Obtaining the ASIO SDK
|
Obtaining the ASIO SDK
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
In order to build PortAudio with ASIO support, you need to download
|
In order to build PortAudio with ASIO support, you need to download
|
||||||
the ASIO SDK (version 2.0 or later) from Steinberg. Steinberg makes the ASIO
|
the ASIO SDK (version 2.0 or later) from Steinberg. Steinberg makes the ASIO
|
||||||
SDK available to anyone free of charge, however they do not permit its
|
SDK available to anyone free of charge, however they do not permit its
|
||||||
source code to be distributed.
|
source code to be distributed.
|
||||||
|
|
||||||
NOTE: In some cases the ASIO SDK may require patching, see below
|
NOTE: In some cases the ASIO SDK may require patching, see below
|
||||||
for further details.
|
for further details.
|
||||||
|
|
||||||
http://www.steinberg.net/en/company/developer.html
|
http://www.steinberg.net/en/company/developer.html
|
||||||
|
|
||||||
If the above link is broken search Google for:
|
If the above link is broken search Google for:
|
||||||
"download steinberg ASIO SDK"
|
"download steinberg ASIO SDK"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Building the ASIO SDK on Windows
|
Building the ASIO SDK on Windows
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
To build the ASIO SDK on Windows you need to compile and link with the
|
To build the ASIO SDK on Windows you need to compile and link with the
|
||||||
following files from the ASIO SDK:
|
following files from the ASIO SDK:
|
||||||
|
|
||||||
asio_sdk\common\asio.cpp
|
asio_sdk\common\asio.cpp
|
||||||
asio_sdk\host\asiodrivers.cpp
|
asio_sdk\host\asiodrivers.cpp
|
||||||
asio_sdk\host\pc\asiolist.cpp
|
asio_sdk\host\pc\asiolist.cpp
|
||||||
|
|
||||||
You may also need to adjust your include paths to support inclusion of
|
You may also need to adjust your include paths to support inclusion of
|
||||||
header files from the above directories.
|
header files from the above directories.
|
||||||
|
|
||||||
The ASIO SDK depends on the following COM API functions:
|
The ASIO SDK depends on the following COM API functions:
|
||||||
CoInitialize, CoUninitialize, CoCreateInstance, CLSIDFromString
|
CoInitialize, CoUninitialize, CoCreateInstance, CLSIDFromString
|
||||||
For compilation with MinGW you will need to link with -lole32, for
|
For compilation with MinGW you will need to link with -lole32, for
|
||||||
Borland compilers link with Import32.lib.
|
Borland compilers link with Import32.lib.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Non-Microsoft (MSVC) Compilers on Windows including Borland and GCC
|
Non-Microsoft (MSVC) Compilers on Windows including Borland and GCC
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
Steinberg did not specify a calling convention in the IASIO interface
|
Steinberg did not specify a calling convention in the IASIO interface
|
||||||
definition. This causes the Microsoft compiler to use the proprietary
|
definition. This causes the Microsoft compiler to use the proprietary
|
||||||
thiscall convention which is not compatible with other compilers, such
|
thiscall convention which is not compatible with other compilers, such
|
||||||
as compilers from Borland (BCC and C++Builder) and GNU (gcc).
|
as compilers from Borland (BCC and C++Builder) and GNU (gcc).
|
||||||
Steinberg's ASIO SDK will compile but crash on initialization if
|
Steinberg's ASIO SDK will compile but crash on initialization if
|
||||||
compiled with a non-Microsoft compiler on Windows.
|
compiled with a non-Microsoft compiler on Windows.
|
||||||
|
|
||||||
PortAudio solves this problem using the iasiothiscallresolver library
|
PortAudio solves this problem using the iasiothiscallresolver library
|
||||||
which is included in the distribution. When building ASIO support for
|
which is included in the distribution. When building ASIO support for
|
||||||
non-Microsoft compilers, be sure to compile and link with
|
non-Microsoft compilers, be sure to compile and link with
|
||||||
iasiothiscallresolver.cpp. Note that iasiothiscallresolver includes
|
iasiothiscallresolver.cpp. Note that iasiothiscallresolver includes
|
||||||
conditional directives which cause it to have no effect if it is
|
conditional directives which cause it to have no effect if it is
|
||||||
compiled with a Microsoft compiler, or on the Macintosh.
|
compiled with a Microsoft compiler, or on the Macintosh.
|
||||||
|
|
||||||
If you use configure and make (see above), this should be handled
|
If you use configure and make (see above), this should be handled
|
||||||
automatically for you.
|
automatically for you.
|
||||||
|
|
||||||
For further information about the IASIO thiscall problem see this page:
|
For further information about the IASIO thiscall problem see this page:
|
||||||
http://www.rossbencina.com/code/iasio-thiscall-resolver
|
http://www.rossbencina.com/code/iasio-thiscall-resolver
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Building the ASIO SDK on (Pre-OS X) Macintosh
|
Building the ASIO SDK on (Pre-OS X) Macintosh
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
To build the ASIO SDK on Macintosh you need to compile and link with the
|
To build the ASIO SDK on Macintosh you need to compile and link with the
|
||||||
following files from the ASIO SDK:
|
following files from the ASIO SDK:
|
||||||
|
|
||||||
host/asiodrivers.cpp
|
host/asiodrivers.cpp
|
||||||
host/mac/asioshlib.cpp
|
host/mac/asioshlib.cpp
|
||||||
host/mac/codefragements.cpp
|
host/mac/codefragements.cpp
|
||||||
|
|
||||||
You may also need to adjust your include paths to support inclusion of
|
You may also need to adjust your include paths to support inclusion of
|
||||||
header files from the above directories.
|
header files from the above directories.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(Pre-OS X) Macintosh ASIO SDK Bug Patch
|
(Pre-OS X) Macintosh ASIO SDK Bug Patch
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
There is a bug in the ASIO SDK that causes the Macintosh version to
|
There is a bug in the ASIO SDK that causes the Macintosh version to
|
||||||
often fail during initialization. Below is a patch that you can apply.
|
often fail during initialization. Below is a patch that you can apply.
|
||||||
|
|
||||||
In codefragments.cpp replace getFrontProcessDirectory function with
|
In codefragments.cpp replace getFrontProcessDirectory function with
|
||||||
the following one (GetFrontProcess replaced by GetCurrentProcess).
|
the following one (GetFrontProcess replaced by GetCurrentProcess).
|
||||||
|
|
||||||
|
|
||||||
bool CodeFragments::getFrontProcessDirectory(void *specs)
|
bool CodeFragments::getFrontProcessDirectory(void *specs)
|
||||||
{
|
{
|
||||||
FSSpec *fss = (FSSpec *)specs;
|
FSSpec *fss = (FSSpec *)specs;
|
||||||
ProcessInfoRec pif;
|
ProcessInfoRec pif;
|
||||||
ProcessSerialNumber psn;
|
ProcessSerialNumber psn;
|
||||||
|
|
||||||
memset(&psn,0,(long)sizeof(ProcessSerialNumber));
|
memset(&psn,0,(long)sizeof(ProcessSerialNumber));
|
||||||
// if(GetFrontProcess(&psn) == noErr) // wrong !!!
|
// if(GetFrontProcess(&psn) == noErr) // wrong !!!
|
||||||
if(GetCurrentProcess(&psn) == noErr) // correct !!!
|
if(GetCurrentProcess(&psn) == noErr) // correct !!!
|
||||||
{
|
{
|
||||||
pif.processName = 0;
|
pif.processName = 0;
|
||||||
pif.processAppSpec = fss;
|
pif.processAppSpec = fss;
|
||||||
pif.processInfoLength = sizeof(ProcessInfoRec);
|
pif.processInfoLength = sizeof(ProcessInfoRec);
|
||||||
if(GetProcessInformation(&psn, &pif) == noErr)
|
if(GetProcessInformation(&psn, &pif) == noErr)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
|
@ -1,196 +1,196 @@
|
||||||
Notes on status of CoreAudio Implementation of PortAudio
|
Notes on status of CoreAudio Implementation of PortAudio
|
||||||
|
|
||||||
Document Last Updated December 9, 2005
|
Document Last Updated December 9, 2005
|
||||||
|
|
||||||
There are currently two implementations of PortAudio for Mac Core Audio.
|
There are currently two implementations of PortAudio for Mac Core Audio.
|
||||||
|
|
||||||
The original is in pa_mac_core_old.c, and the newer, default implementation
|
The original is in pa_mac_core_old.c, and the newer, default implementation
|
||||||
is in pa_mac_core.c.
|
is in pa_mac_core.c.
|
||||||
Only pa_mac_core.c is currently developed and supported as it uses apple's
|
Only pa_mac_core.c is currently developed and supported as it uses apple's
|
||||||
current core audio technology. To select use the old implementation, replace
|
current core audio technology. To select use the old implementation, replace
|
||||||
pa_mac_core.c with pa_mac_core_old.c (eg. "cp pa_mac_core_auhal.c
|
pa_mac_core.c with pa_mac_core_old.c (eg. "cp pa_mac_core_auhal.c
|
||||||
pa_mac_core.c"), then run configure and make as usual.
|
pa_mac_core.c"), then run configure and make as usual.
|
||||||
|
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
|
|
||||||
Notes on Newer/Default AUHAL implementation:
|
Notes on Newer/Default AUHAL implementation:
|
||||||
|
|
||||||
by Bjorn Roche
|
by Bjorn Roche
|
||||||
|
|
||||||
Last Updated December 9, 2005
|
Last Updated December 9, 2005
|
||||||
|
|
||||||
Principle of Operation:
|
Principle of Operation:
|
||||||
|
|
||||||
This implementation uses AUHAL for audio I/O. To some extent, it also
|
This implementation uses AUHAL for audio I/O. To some extent, it also
|
||||||
operates at the "HAL" Layer, though this behavior can be limited by
|
operates at the "HAL" Layer, though this behavior can be limited by
|
||||||
platform specific flags (see pa_mac_core.h for details). The default
|
platform specific flags (see pa_mac_core.h for details). The default
|
||||||
settings should be reasonable: they don't change the SR of the device and
|
settings should be reasonable: they don't change the SR of the device and
|
||||||
don't cause interruptions if other devices are using the device.
|
don't cause interruptions if other devices are using the device.
|
||||||
|
|
||||||
Major Software Elements Used: Apple's HAL AUs provide output SR
|
Major Software Elements Used: Apple's HAL AUs provide output SR
|
||||||
conversion transparently, however, only on output, so this
|
conversion transparently, however, only on output, so this
|
||||||
implementation uses AudioConverters to convert the sample rate on input.
|
implementation uses AudioConverters to convert the sample rate on input.
|
||||||
A PortAudio ring buffer is used to buffer input when sample rate
|
A PortAudio ring buffer is used to buffer input when sample rate
|
||||||
conversion is required or when separate audio units are used for duplex
|
conversion is required or when separate audio units are used for duplex
|
||||||
IO. Finally, a PortAudio buffer processor is used to convert formats and
|
IO. Finally, a PortAudio buffer processor is used to convert formats and
|
||||||
provide additional buffers if needed. Internally, interleaved floating
|
provide additional buffers if needed. Internally, interleaved floating
|
||||||
point data streams are used exclusively - the audio unit converts from
|
point data streams are used exclusively - the audio unit converts from
|
||||||
the audio hardware's native format to interleaved float PCM and
|
the audio hardware's native format to interleaved float PCM and
|
||||||
PortAudio's Buffer processor is used for conversion to user formats.
|
PortAudio's Buffer processor is used for conversion to user formats.
|
||||||
|
|
||||||
Simplex Input: Simplex input uses a single callback. If sample rate
|
Simplex Input: Simplex input uses a single callback. If sample rate
|
||||||
conversion is required, a ring buffer and AudioConverter are used as
|
conversion is required, a ring buffer and AudioConverter are used as
|
||||||
well.
|
well.
|
||||||
|
|
||||||
Simplex output: Simplex output uses a single callback. No ring buffer or
|
Simplex output: Simplex output uses a single callback. No ring buffer or
|
||||||
audio converter is used because AUHAL does its own output SR conversion.
|
audio converter is used because AUHAL does its own output SR conversion.
|
||||||
|
|
||||||
Duplex, one device (no SR conversion): When one device is used, a single
|
Duplex, one device (no SR conversion): When one device is used, a single
|
||||||
callback is used. This achieves very low latency.
|
callback is used. This achieves very low latency.
|
||||||
|
|
||||||
Duplex, separate devices or SR conversion: When SR conversion is
|
Duplex, separate devices or SR conversion: When SR conversion is
|
||||||
required, data must be buffered before it is converted and data is not
|
required, data must be buffered before it is converted and data is not
|
||||||
always available at the same times on input and output, so SR conversion
|
always available at the same times on input and output, so SR conversion
|
||||||
requires the same treatment as separate devices. The input callback
|
requires the same treatment as separate devices. The input callback
|
||||||
reads data and puts it in the ring buffer. The output callback reads the
|
reads data and puts it in the ring buffer. The output callback reads the
|
||||||
data off the ring buffer, into an audio converter and finally to the
|
data off the ring buffer, into an audio converter and finally to the
|
||||||
buffer processor.
|
buffer processor.
|
||||||
|
|
||||||
Platform Specific Options:
|
Platform Specific Options:
|
||||||
|
|
||||||
By using the flags in pa_mac_core.h, the user may specify several options.
|
By using the flags in pa_mac_core.h, the user may specify several options.
|
||||||
For example, the user can specify the sample-rate conversion quality, and
|
For example, the user can specify the sample-rate conversion quality, and
|
||||||
the extent to which PA will attempt to "play nice" and to what extent it
|
the extent to which PA will attempt to "play nice" and to what extent it
|
||||||
will interrupt other apps to improve performance. For example, if 44100 Hz
|
will interrupt other apps to improve performance. For example, if 44100 Hz
|
||||||
sample rate is requested but the device is set at 48000 Hz, PA can either
|
sample rate is requested but the device is set at 48000 Hz, PA can either
|
||||||
change the device for optimal playback ("Pro" mode), which may interrupt
|
change the device for optimal playback ("Pro" mode), which may interrupt
|
||||||
other programs playing back audio, or simple use a sample-rate coversion,
|
other programs playing back audio, or simple use a sample-rate coversion,
|
||||||
which allows for friendlier sharing of the device ("Play Nice" mode).
|
which allows for friendlier sharing of the device ("Play Nice" mode).
|
||||||
|
|
||||||
Additionally, the user may define a "channel mapping" by calling
|
Additionally, the user may define a "channel mapping" by calling
|
||||||
paSetupMacCoreChannelMap() on their stream info structure before opening
|
paSetupMacCoreChannelMap() on their stream info structure before opening
|
||||||
the stream with it. See below for creating a channel map.
|
the stream with it. See below for creating a channel map.
|
||||||
|
|
||||||
Known issues:
|
Known issues:
|
||||||
|
|
||||||
- Buffering: No buffering beyond that provided by core audio is provided
|
- Buffering: No buffering beyond that provided by core audio is provided
|
||||||
except where absolutely needed for the implementation to work. This may cause
|
except where absolutely needed for the implementation to work. This may cause
|
||||||
issues with large framesPerBuffer settings and it also means that no additional
|
issues with large framesPerBuffer settings and it also means that no additional
|
||||||
latency will be provided even if a large latency setting is selected.
|
latency will be provided even if a large latency setting is selected.
|
||||||
|
|
||||||
- Latency: Latency settings are generally ignored. They may be used as a
|
- Latency: Latency settings are generally ignored. They may be used as a
|
||||||
hint for buffer size in paHostFramesPerBufferUnspecified, or the value may
|
hint for buffer size in paHostFramesPerBufferUnspecified, or the value may
|
||||||
be used in cases where additional buffering is needed, such as doing input and
|
be used in cases where additional buffering is needed, such as doing input and
|
||||||
output on seperate devices. Latency settings are always automatically bound
|
output on seperate devices. Latency settings are always automatically bound
|
||||||
to "safe" values, however, so setting extreme values here should not be
|
to "safe" values, however, so setting extreme values here should not be
|
||||||
an issue.
|
an issue.
|
||||||
|
|
||||||
- Buffer Size: paHostFramesPerBufferUnspecified and specific host buffer sizes
|
- Buffer Size: paHostFramesPerBufferUnspecified and specific host buffer sizes
|
||||||
are supported. paHostFramesPerBufferUnspecified works best in "pro" mode,
|
are supported. paHostFramesPerBufferUnspecified works best in "pro" mode,
|
||||||
where the buffer size and sample rate of the audio device is most likely
|
where the buffer size and sample rate of the audio device is most likely
|
||||||
to match the expected values. In the case of paHostFramesPerBuffer, an
|
to match the expected values. In the case of paHostFramesPerBuffer, an
|
||||||
appropriate framesPerBuffer value will be used that guarantees minimum
|
appropriate framesPerBuffer value will be used that guarantees minimum
|
||||||
requested latency if that's possible.
|
requested latency if that's possible.
|
||||||
|
|
||||||
- Timing info. It reports on stream time, but I'm probably doing something
|
- Timing info. It reports on stream time, but I'm probably doing something
|
||||||
wrong since patest_sine_time often reports negative latency numbers. Also,
|
wrong since patest_sine_time often reports negative latency numbers. Also,
|
||||||
there are currently issues with some devices whehn plugging/unplugging
|
there are currently issues with some devices whehn plugging/unplugging
|
||||||
devices.
|
devices.
|
||||||
|
|
||||||
- xrun detection: The only xrun detection performed is when reading
|
- xrun detection: The only xrun detection performed is when reading
|
||||||
and writing the ring buffer. There is probably more that can be done.
|
and writing the ring buffer. There is probably more that can be done.
|
||||||
|
|
||||||
- abort/stop issues: stopping a stream is always a complete operation,
|
- abort/stop issues: stopping a stream is always a complete operation,
|
||||||
but latency should be low enough to make the lack of a separate abort
|
but latency should be low enough to make the lack of a separate abort
|
||||||
unnecessary. Apple clarifies its AudioOutputUnitStop() call here:
|
unnecessary. Apple clarifies its AudioOutputUnitStop() call here:
|
||||||
http://lists.apple.com/archives/coreaudio-api/2005/Dec/msg00055.html
|
http://lists.apple.com/archives/coreaudio-api/2005/Dec/msg00055.html
|
||||||
|
|
||||||
- blocking interface: should work fine.
|
- blocking interface: should work fine.
|
||||||
|
|
||||||
- multichannel: It has been tested successfully on multichannel hardware
|
- multichannel: It has been tested successfully on multichannel hardware
|
||||||
from MOTU: traveler and 896HD. Also Presonus firepod and others. It is
|
from MOTU: traveler and 896HD. Also Presonus firepod and others. It is
|
||||||
believed to work with all Core Audio devices, including virtual devices
|
believed to work with all Core Audio devices, including virtual devices
|
||||||
such as soundflower.
|
such as soundflower.
|
||||||
|
|
||||||
- sample rate conversion quality: By default, SR conversion is the maximum
|
- sample rate conversion quality: By default, SR conversion is the maximum
|
||||||
available. This can be tweaked using flags pa_mac_core.h. Note that the AU
|
available. This can be tweaked using flags pa_mac_core.h. Note that the AU
|
||||||
render quyality property is used to set the sample rate conversion quality
|
render quyality property is used to set the sample rate conversion quality
|
||||||
as "documented" here:
|
as "documented" here:
|
||||||
http://lists.apple.com/archives/coreaudio-api/2004/Jan/msg00141.html
|
http://lists.apple.com/archives/coreaudio-api/2004/Jan/msg00141.html
|
||||||
|
|
||||||
- x86/Universal Binary: Universal binaries can be build.
|
- x86/Universal Binary: Universal binaries can be build.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Creating a channel map:
|
Creating a channel map:
|
||||||
|
|
||||||
How to create the map array - Text taken From AUHAL.rtfd :
|
How to create the map array - Text taken From AUHAL.rtfd :
|
||||||
[3] Channel Maps
|
[3] Channel Maps
|
||||||
Clients can tell the AUHAL units which channels of the device they are interested in. For example, the client may be processing stereo data, but outputting to a six-channel device. This is done by using the kAudioOutputUnitProperty_ChannelMap property. To use this property:
|
Clients can tell the AUHAL units which channels of the device they are interested in. For example, the client may be processing stereo data, but outputting to a six-channel device. This is done by using the kAudioOutputUnitProperty_ChannelMap property. To use this property:
|
||||||
|
|
||||||
For Output:
|
For Output:
|
||||||
Create an array of SInt32 that is the size of the number of channels of the device (Get the Format of the AUHAL's output Element == 0)
|
Create an array of SInt32 that is the size of the number of channels of the device (Get the Format of the AUHAL's output Element == 0)
|
||||||
Initialize each of the array's values to -1 (-1 indicates that that channel is NOT to be presented in the conversion.)
|
Initialize each of the array's values to -1 (-1 indicates that that channel is NOT to be presented in the conversion.)
|
||||||
|
|
||||||
Next, for each channel of your app's output, set:
|
Next, for each channel of your app's output, set:
|
||||||
channelMapArray[deviceOutputChannel] = desiredAppOutputChannel.
|
channelMapArray[deviceOutputChannel] = desiredAppOutputChannel.
|
||||||
|
|
||||||
For example: we have a 6 channel output device and our application has a stereo source it wants to provide to the device. Suppose we want that stereo source to go to the 3rd and 4th channels of the device. The channel map would look like this: { -1, -1, 0, 1, -1, -1 }
|
For example: we have a 6 channel output device and our application has a stereo source it wants to provide to the device. Suppose we want that stereo source to go to the 3rd and 4th channels of the device. The channel map would look like this: { -1, -1, 0, 1, -1, -1 }
|
||||||
|
|
||||||
Where the formats are:
|
Where the formats are:
|
||||||
Input Element == 0: 2 channels (- client format - settable)
|
Input Element == 0: 2 channels (- client format - settable)
|
||||||
Output Element == 0: 6 channels (- device format - NOT settable)
|
Output Element == 0: 6 channels (- device format - NOT settable)
|
||||||
|
|
||||||
So channel 2 (zero-based) of the device will take the first channel of output and channel 3 will take the second channel of output. (This translates to the 3rd and 4th plugs of the 6 output plugs of the device of course!)
|
So channel 2 (zero-based) of the device will take the first channel of output and channel 3 will take the second channel of output. (This translates to the 3rd and 4th plugs of the 6 output plugs of the device of course!)
|
||||||
|
|
||||||
For Input:
|
For Input:
|
||||||
Create an array of SInt32 that is the size of the number of channels of the format you require for input. Get (or Set in this case as needed) the AUHAL's output Element == 1.
|
Create an array of SInt32 that is the size of the number of channels of the format you require for input. Get (or Set in this case as needed) the AUHAL's output Element == 1.
|
||||||
|
|
||||||
Next, for each channel of input you require, set:
|
Next, for each channel of input you require, set:
|
||||||
channelMapArray[desiredAppInputChannel] = deviceOutputChannel;
|
channelMapArray[desiredAppInputChannel] = deviceOutputChannel;
|
||||||
|
|
||||||
For example: we have a 6 channel input device from which we wish to receive stereo input from the 3rd and 4th channels. The channel map looks like this: { 2, 3 }
|
For example: we have a 6 channel input device from which we wish to receive stereo input from the 3rd and 4th channels. The channel map looks like this: { 2, 3 }
|
||||||
|
|
||||||
Where the formats are:
|
Where the formats are:
|
||||||
Input Element == 0: 2 channels (- device format - NOT settable)
|
Input Element == 0: 2 channels (- device format - NOT settable)
|
||||||
Output Element == 0: 6 channels (- client format - settable)
|
Output Element == 0: 6 channels (- client format - settable)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Notes on Original implementation:
|
Notes on Original implementation:
|
||||||
|
|
||||||
by Phil Burk and Darren Gibbs
|
by Phil Burk and Darren Gibbs
|
||||||
|
|
||||||
Last updated March 20, 2002
|
Last updated March 20, 2002
|
||||||
|
|
||||||
WHAT WORKS
|
WHAT WORKS
|
||||||
|
|
||||||
Output with very low latency, <10 msec.
|
Output with very low latency, <10 msec.
|
||||||
Half duplex input or output.
|
Half duplex input or output.
|
||||||
Full duplex on the same CoreAudio device.
|
Full duplex on the same CoreAudio device.
|
||||||
The paFLoat32, paInt16, paInt8, paUInt8 sample formats.
|
The paFLoat32, paInt16, paInt8, paUInt8 sample formats.
|
||||||
Pa_GetCPULoad()
|
Pa_GetCPULoad()
|
||||||
Pa_StreamTime()
|
Pa_StreamTime()
|
||||||
|
|
||||||
KNOWN BUGS OR LIMITATIONS
|
KNOWN BUGS OR LIMITATIONS
|
||||||
|
|
||||||
We do not yet support simultaneous input and output on different
|
We do not yet support simultaneous input and output on different
|
||||||
devices. Note that some CoreAudio devices like the Roland UH30 look
|
devices. Note that some CoreAudio devices like the Roland UH30 look
|
||||||
like one device but are actually two different CoreAudio devices. The
|
like one device but are actually two different CoreAudio devices. The
|
||||||
Built-In audio is typically one CoreAudio device.
|
Built-In audio is typically one CoreAudio device.
|
||||||
|
|
||||||
Mono doesn't work.
|
Mono doesn't work.
|
||||||
|
|
||||||
DEVICE MAPPING
|
DEVICE MAPPING
|
||||||
|
|
||||||
CoreAudio devices can support both input and output. But the sample
|
CoreAudio devices can support both input and output. But the sample
|
||||||
rates supported may be different. So we have map one or two PortAudio
|
rates supported may be different. So we have map one or two PortAudio
|
||||||
device to each CoreAudio device depending on whether it supports
|
device to each CoreAudio device depending on whether it supports
|
||||||
input, output or both.
|
input, output or both.
|
||||||
|
|
||||||
When we query devices, we first get a list of CoreAudio devices. Then
|
When we query devices, we first get a list of CoreAudio devices. Then
|
||||||
we scan the list and add a PortAudio device for each CoreAudio device
|
we scan the list and add a PortAudio device for each CoreAudio device
|
||||||
that supports input. Then we make a scan for output devices.
|
that supports input. Then we make a scan for output devices.
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,25 +1,25 @@
|
||||||
**************
|
**************
|
||||||
* WASAPI API *
|
* WASAPI API *
|
||||||
**************
|
**************
|
||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
Microsoft Visual Studio 2005SP1/2008/10
|
Microsoft Visual Studio 2005SP1/2008/10
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
No specific actions are needed to compile WASAPI API under Visual Studio.
|
No specific actions are needed to compile WASAPI API under Visual Studio.
|
||||||
You are only required to install min. Windows Vista SDK (v6.0A) prior
|
You are only required to install min. Windows Vista SDK (v6.0A) prior
|
||||||
compilation.
|
compilation.
|
||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
MinGW (GCC 32-bit)/ MinGW64 (GCC 64-bit)
|
MinGW (GCC 32-bit)/ MinGW64 (GCC 64-bit)
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
To compile under MinGW you are required to include 'mingw-include' directory
|
To compile under MinGW you are required to include 'mingw-include' directory
|
||||||
which contains necessary files with WASAPI API. These files are modified
|
which contains necessary files with WASAPI API. These files are modified
|
||||||
in order to be compiled by MinGW compiler. These files are taken from
|
in order to be compiled by MinGW compiler. These files are taken from
|
||||||
Windows Vista SDK (v6.0A). MinGW compilation is tested and proved to be
|
Windows Vista SDK (v6.0A). MinGW compilation is tested and proved to be
|
||||||
fully working under 32-bit and 64-bit modes.
|
fully working under 32-bit and 64-bit modes.
|
||||||
MinGW (32-bit) tested: gcc version 4.4.0 (GCC)
|
MinGW (32-bit) tested: gcc version 4.4.0 (GCC)
|
||||||
MinGW64 (64-bit) tested: gcc version 4.4.4 20100226 (prerelease) (GCC)
|
MinGW64 (64-bit) tested: gcc version 4.4.4 20100226 (prerelease) (GCC)
|
||||||
|
|
||||||
PortAudio
|
PortAudio
|
||||||
/Dmitry Kostjuchenko/
|
/Dmitry Kostjuchenko/
|
||||||
04.03.2010
|
04.03.2010
|
|
@ -1,85 +1,85 @@
|
||||||
Notes about WDM-KS host API
|
Notes about WDM-KS host API
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
Status history
|
Status history
|
||||||
--------------
|
--------------
|
||||||
16th January 2011:
|
16th January 2011:
|
||||||
Added support for WaveRT device API (Vista and later) for even lesser
|
Added support for WaveRT device API (Vista and later) for even lesser
|
||||||
latency support.
|
latency support.
|
||||||
|
|
||||||
10th November 2005:
|
10th November 2005:
|
||||||
Made following changes:
|
Made following changes:
|
||||||
* OpenStream: Try all PaSampleFormats internally if the the chosen
|
* OpenStream: Try all PaSampleFormats internally if the the chosen
|
||||||
format is not supported natively. This fixed several problems
|
format is not supported natively. This fixed several problems
|
||||||
with soundcards that did not take kindly to using 24-bit 3-byte formats.
|
with soundcards that did not take kindly to using 24-bit 3-byte formats.
|
||||||
* OpenStream: Make the minimum framesPerHostIBuffer (and framesPerHostOBuffer)
|
* OpenStream: Make the minimum framesPerHostIBuffer (and framesPerHostOBuffer)
|
||||||
the default frameSize for the playback/recording pin.
|
the default frameSize for the playback/recording pin.
|
||||||
* ProcessingThread: Added a switch to only call PaUtil_EndBufferProcessing
|
* ProcessingThread: Added a switch to only call PaUtil_EndBufferProcessing
|
||||||
if the total input frames equals the total output frames
|
if the total input frames equals the total output frames
|
||||||
|
|
||||||
5th September 2004:
|
5th September 2004:
|
||||||
This is the first public version of the code. It should be considered
|
This is the first public version of the code. It should be considered
|
||||||
an alpha release with zero guarantee not to crash on any particular
|
an alpha release with zero guarantee not to crash on any particular
|
||||||
system. So far it has only been tested in the author's development
|
system. So far it has only been tested in the author's development
|
||||||
environment, which means a Win2k/SP2 PIII laptop with integrated
|
environment, which means a Win2k/SP2 PIII laptop with integrated
|
||||||
SoundMAX driver and USB Tascam US-428 compiled with both MinGW
|
SoundMAX driver and USB Tascam US-428 compiled with both MinGW
|
||||||
(GCC 3.3) and MSVC++6 using the MS DirectX 9 SDK.
|
(GCC 3.3) and MSVC++6 using the MS DirectX 9 SDK.
|
||||||
It has been most widely tested with the MinGW build, with most of the
|
It has been most widely tested with the MinGW build, with most of the
|
||||||
test programs (particularly paqa_devs and paqa_errs) passing.
|
test programs (particularly paqa_devs and paqa_errs) passing.
|
||||||
There are some notable failures: patest_out_underflow and both of the
|
There are some notable failures: patest_out_underflow and both of the
|
||||||
blocking I/O tests (as blocking I/O is not implemented).
|
blocking I/O tests (as blocking I/O is not implemented).
|
||||||
At this point the code needs to be tested with a much wider variety
|
At this point the code needs to be tested with a much wider variety
|
||||||
of configurations and feedback provided from testers regarding
|
of configurations and feedback provided from testers regarding
|
||||||
both working and failing cases.
|
both working and failing cases.
|
||||||
|
|
||||||
What is the WDM-KS host API?
|
What is the WDM-KS host API?
|
||||||
----------------------------
|
----------------------------
|
||||||
PortAudio for Windows currently has 3 functional host implementations.
|
PortAudio for Windows currently has 3 functional host implementations.
|
||||||
MME uses the oldest Windows audio API which does not offer good
|
MME uses the oldest Windows audio API which does not offer good
|
||||||
play/record latency.
|
play/record latency.
|
||||||
DirectX improves this, but still imposes a penalty
|
DirectX improves this, but still imposes a penalty
|
||||||
of 10s of milliseconds due to the system mixing of streams from
|
of 10s of milliseconds due to the system mixing of streams from
|
||||||
multiple applications.
|
multiple applications.
|
||||||
ASIO offers very good latency, but requires special drivers which are
|
ASIO offers very good latency, but requires special drivers which are
|
||||||
not always available for cheaper audio hardware. Also, when ASIO
|
not always available for cheaper audio hardware. Also, when ASIO
|
||||||
drivers are available, they are not always so robust because they
|
drivers are available, they are not always so robust because they
|
||||||
bypass all of the standardised Windows device driver architecture
|
bypass all of the standardised Windows device driver architecture
|
||||||
and hit the hardware their own way.
|
and hit the hardware their own way.
|
||||||
Alternatively there are a couple of free (but closed source) ASIO
|
Alternatively there are a couple of free (but closed source) ASIO
|
||||||
implementations which connect to the lower level Windows
|
implementations which connect to the lower level Windows
|
||||||
"Kernel Streaming" API, but again these require special installation
|
"Kernel Streaming" API, but again these require special installation
|
||||||
by the user, and can be limited in functionality or difficult to use.
|
by the user, and can be limited in functionality or difficult to use.
|
||||||
|
|
||||||
This is where the PortAudio "WDM-KS" host implementation comes in.
|
This is where the PortAudio "WDM-KS" host implementation comes in.
|
||||||
It directly connects PortAudio to the same Kernel Streaming API which
|
It directly connects PortAudio to the same Kernel Streaming API which
|
||||||
those ASIO bridges use. This avoids the mixing penatly of DirectX,
|
those ASIO bridges use. This avoids the mixing penatly of DirectX,
|
||||||
giving at least as good latency as any ASIO driver, but it has the
|
giving at least as good latency as any ASIO driver, but it has the
|
||||||
advantage of working with ANY Windows audio hardware which is available
|
advantage of working with ANY Windows audio hardware which is available
|
||||||
through the normal MME/DirectX routes without the user requiring
|
through the normal MME/DirectX routes without the user requiring
|
||||||
any additional device drivers to be installed, and allowing all
|
any additional device drivers to be installed, and allowing all
|
||||||
device selection to be done through the normal PortAudio API.
|
device selection to be done through the normal PortAudio API.
|
||||||
|
|
||||||
Note that in general you should only be using this host API if your
|
Note that in general you should only be using this host API if your
|
||||||
application has a real requirement for very low latency audio (<20ms),
|
application has a real requirement for very low latency audio (<20ms),
|
||||||
either because you are generating sounds in real-time based upon
|
either because you are generating sounds in real-time based upon
|
||||||
user input, or you a processing recorded audio in real time.
|
user input, or you a processing recorded audio in real time.
|
||||||
|
|
||||||
The only thing to be aware of is that using the KS interface will
|
The only thing to be aware of is that using the KS interface will
|
||||||
block that device from being used by the rest of system through
|
block that device from being used by the rest of system through
|
||||||
the higher level APIs, or conversely, if the system is using
|
the higher level APIs, or conversely, if the system is using
|
||||||
a device, the KS API will not be able to use it. MS recommend that
|
a device, the KS API will not be able to use it. MS recommend that
|
||||||
you should keep the device open only when your application has focus.
|
you should keep the device open only when your application has focus.
|
||||||
In PortAudio terms, this means having a stream Open on a WDMKS device.
|
In PortAudio terms, this means having a stream Open on a WDMKS device.
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
-----
|
-----
|
||||||
To add the WDMKS backend to your program which is already using
|
To add the WDMKS backend to your program which is already using
|
||||||
PortAudio, you must define PA_USE_WDMKS=1 in your build file,
|
PortAudio, you must define PA_USE_WDMKS=1 in your build file,
|
||||||
and include the pa_win_wdmks\pa_win_wdmks.c into your build.
|
and include the pa_win_wdmks\pa_win_wdmks.c into your build.
|
||||||
The file should compile in both C and C++.
|
The file should compile in both C and C++.
|
||||||
You will need a DirectX SDK installed on your system for the
|
You will need a DirectX SDK installed on your system for the
|
||||||
ks.h and ksmedia.h header files.
|
ks.h and ksmedia.h header files.
|
||||||
You will need to link to the system "setupapi" library.
|
You will need to link to the system "setupapi" library.
|
||||||
Note that if you use MinGW, you will get more warnings from
|
Note that if you use MinGW, you will get more warnings from
|
||||||
the DX header files when using GCC(C), and still a few warnings
|
the DX header files when using GCC(C), and still a few warnings
|
||||||
with G++(CPP).
|
with G++(CPP).
|
||||||
|
|
|
@ -1,144 +1,144 @@
|
||||||
/*
|
/*
|
||||||
* Microsoft COM initialization routines
|
* Microsoft COM initialization routines
|
||||||
* Copyright (c) 1999-2011 Ross Bencina, Dmitry Kostjuchenko
|
* Copyright (c) 1999-2011 Ross Bencina, Dmitry Kostjuchenko
|
||||||
*
|
*
|
||||||
* Based on the Open Source API proposed by Ross Bencina
|
* Based on the Open Source API proposed by Ross Bencina
|
||||||
* Copyright (c) 1999-2011 Ross Bencina, Phil Burk
|
* Copyright (c) 1999-2011 Ross Bencina, Phil Burk
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
* a copy of this software and associated documentation files
|
* a copy of this software and associated documentation files
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
* (the "Software"), to deal in the Software without restriction,
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
* including without limitation the rights to use, copy, modify, merge,
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
* and to permit persons to whom the Software is furnished to do so,
|
||||||
* subject to the following conditions:
|
* subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be
|
* The above copyright notice and this permission notice shall be
|
||||||
* included in all copies or substantial portions of the Software.
|
* included in all copies or substantial portions of the Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
||||||
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The text above constitutes the entire PortAudio license; however,
|
* The text above constitutes the entire PortAudio license; however,
|
||||||
* the PortAudio community also makes the following non-binding requests:
|
* the PortAudio community also makes the following non-binding requests:
|
||||||
*
|
*
|
||||||
* Any person wishing to distribute modifications to the Software is
|
* Any person wishing to distribute modifications to the Software is
|
||||||
* requested to send the modifications to the original developer so that
|
* requested to send the modifications to the original developer so that
|
||||||
* they can be incorporated into the canonical version. It is also
|
* they can be incorporated into the canonical version. It is also
|
||||||
* requested that these non-binding requests be included along with the
|
* requested that these non-binding requests be included along with the
|
||||||
* license above.
|
* license above.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** @file
|
/** @file
|
||||||
@ingroup win_src
|
@ingroup win_src
|
||||||
|
|
||||||
@brief Microsoft COM initialization routines.
|
@brief Microsoft COM initialization routines.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <objbase.h>
|
#include <objbase.h>
|
||||||
|
|
||||||
#include "portaudio.h"
|
#include "portaudio.h"
|
||||||
#include "pa_util.h"
|
#include "pa_util.h"
|
||||||
#include "pa_debugprint.h"
|
#include "pa_debugprint.h"
|
||||||
|
|
||||||
#include "pa_win_coinitialize.h"
|
#include "pa_win_coinitialize.h"
|
||||||
|
|
||||||
|
|
||||||
#if (defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER >= 1200))) && !defined(_WIN32_WCE) /* MSC version 6 and above */
|
#if (defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER >= 1200))) && !defined(_WIN32_WCE) /* MSC version 6 and above */
|
||||||
#pragma comment( lib, "ole32.lib" )
|
#pragma comment( lib, "ole32.lib" )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* use some special bit patterns here to try to guard against uninitialized memory errors */
|
/* use some special bit patterns here to try to guard against uninitialized memory errors */
|
||||||
#define PAWINUTIL_COM_INITIALIZED (0xb38f)
|
#define PAWINUTIL_COM_INITIALIZED (0xb38f)
|
||||||
#define PAWINUTIL_COM_NOT_INITIALIZED (0xf1cd)
|
#define PAWINUTIL_COM_NOT_INITIALIZED (0xf1cd)
|
||||||
|
|
||||||
|
|
||||||
PaError PaWinUtil_CoInitialize( PaHostApiTypeId hostApiType, PaWinUtilComInitializationResult *comInitializationResult )
|
PaError PaWinUtil_CoInitialize( PaHostApiTypeId hostApiType, PaWinUtilComInitializationResult *comInitializationResult )
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
comInitializationResult->state = PAWINUTIL_COM_NOT_INITIALIZED;
|
comInitializationResult->state = PAWINUTIL_COM_NOT_INITIALIZED;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
If COM is already initialized CoInitialize will either return
|
If COM is already initialized CoInitialize will either return
|
||||||
FALSE, or RPC_E_CHANGED_MODE if it was initialised in a different
|
FALSE, or RPC_E_CHANGED_MODE if it was initialised in a different
|
||||||
threading mode. In either case we shouldn't consider it an error
|
threading mode. In either case we shouldn't consider it an error
|
||||||
but we need to be careful to not call CoUninitialize() if
|
but we need to be careful to not call CoUninitialize() if
|
||||||
RPC_E_CHANGED_MODE was returned.
|
RPC_E_CHANGED_MODE was returned.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
hr = CoInitialize(0); /* use legacy-safe equivalent to CoInitializeEx(NULL, COINIT_APARTMENTTHREADED) */
|
hr = CoInitialize(0); /* use legacy-safe equivalent to CoInitializeEx(NULL, COINIT_APARTMENTTHREADED) */
|
||||||
if( FAILED(hr) && hr != RPC_E_CHANGED_MODE )
|
if( FAILED(hr) && hr != RPC_E_CHANGED_MODE )
|
||||||
{
|
{
|
||||||
PA_DEBUG(("CoInitialize(0) failed. hr=%d\n", hr));
|
PA_DEBUG(("CoInitialize(0) failed. hr=%d\n", hr));
|
||||||
|
|
||||||
if( hr == E_OUTOFMEMORY )
|
if( hr == E_OUTOFMEMORY )
|
||||||
return paInsufficientMemory;
|
return paInsufficientMemory;
|
||||||
|
|
||||||
{
|
{
|
||||||
char *lpMsgBuf;
|
char *lpMsgBuf;
|
||||||
FormatMessage(
|
FormatMessage(
|
||||||
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
|
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
|
||||||
NULL,
|
NULL,
|
||||||
hr,
|
hr,
|
||||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||||
(LPTSTR) &lpMsgBuf,
|
(LPTSTR) &lpMsgBuf,
|
||||||
0,
|
0,
|
||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
PaUtil_SetLastHostErrorInfo( hostApiType, hr, lpMsgBuf );
|
PaUtil_SetLastHostErrorInfo( hostApiType, hr, lpMsgBuf );
|
||||||
LocalFree( lpMsgBuf );
|
LocalFree( lpMsgBuf );
|
||||||
}
|
}
|
||||||
|
|
||||||
return paUnanticipatedHostError;
|
return paUnanticipatedHostError;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( hr != RPC_E_CHANGED_MODE )
|
if( hr != RPC_E_CHANGED_MODE )
|
||||||
{
|
{
|
||||||
comInitializationResult->state = PAWINUTIL_COM_INITIALIZED;
|
comInitializationResult->state = PAWINUTIL_COM_INITIALIZED;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Memorize calling thread id and report warning on Uninitialize if
|
Memorize calling thread id and report warning on Uninitialize if
|
||||||
calling thread is different as CoInitialize must match CoUninitialize
|
calling thread is different as CoInitialize must match CoUninitialize
|
||||||
in the same thread.
|
in the same thread.
|
||||||
*/
|
*/
|
||||||
comInitializationResult->initializingThreadId = GetCurrentThreadId();
|
comInitializationResult->initializingThreadId = GetCurrentThreadId();
|
||||||
}
|
}
|
||||||
|
|
||||||
return paNoError;
|
return paNoError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PaWinUtil_CoUninitialize( PaHostApiTypeId hostApiType, PaWinUtilComInitializationResult *comInitializationResult )
|
void PaWinUtil_CoUninitialize( PaHostApiTypeId hostApiType, PaWinUtilComInitializationResult *comInitializationResult )
|
||||||
{
|
{
|
||||||
if( comInitializationResult->state != PAWINUTIL_COM_NOT_INITIALIZED
|
if( comInitializationResult->state != PAWINUTIL_COM_NOT_INITIALIZED
|
||||||
&& comInitializationResult->state != PAWINUTIL_COM_INITIALIZED ){
|
&& comInitializationResult->state != PAWINUTIL_COM_INITIALIZED ){
|
||||||
|
|
||||||
PA_DEBUG(("ERROR: PaWinUtil_CoUninitialize called without calling PaWinUtil_CoInitialize\n"));
|
PA_DEBUG(("ERROR: PaWinUtil_CoUninitialize called without calling PaWinUtil_CoInitialize\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if( comInitializationResult->state == PAWINUTIL_COM_INITIALIZED )
|
if( comInitializationResult->state == PAWINUTIL_COM_INITIALIZED )
|
||||||
{
|
{
|
||||||
DWORD currentThreadId = GetCurrentThreadId();
|
DWORD currentThreadId = GetCurrentThreadId();
|
||||||
if( comInitializationResult->initializingThreadId != currentThreadId )
|
if( comInitializationResult->initializingThreadId != currentThreadId )
|
||||||
{
|
{
|
||||||
PA_DEBUG(("ERROR: failed PaWinUtil_CoUninitialize calling thread[%d] does not match initializing thread[%d]\n",
|
PA_DEBUG(("ERROR: failed PaWinUtil_CoUninitialize calling thread[%d] does not match initializing thread[%d]\n",
|
||||||
currentThreadId, comInitializationResult->initializingThreadId));
|
currentThreadId, comInitializationResult->initializingThreadId));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CoUninitialize();
|
CoUninitialize();
|
||||||
|
|
||||||
comInitializationResult->state = PAWINUTIL_COM_NOT_INITIALIZED;
|
comInitializationResult->state = PAWINUTIL_COM_NOT_INITIALIZED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,94 +1,94 @@
|
||||||
/*
|
/*
|
||||||
* Microsoft COM initialization routines
|
* Microsoft COM initialization routines
|
||||||
* Copyright (c) 1999-2011 Ross Bencina, Phil Burk
|
* Copyright (c) 1999-2011 Ross Bencina, Phil Burk
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
* a copy of this software and associated documentation files
|
* a copy of this software and associated documentation files
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
* (the "Software"), to deal in the Software without restriction,
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
* including without limitation the rights to use, copy, modify, merge,
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
* and to permit persons to whom the Software is furnished to do so,
|
||||||
* subject to the following conditions:
|
* subject to the following conditions:
|
||||||
*
|
*
|
||||||
* The above copyright notice and this permission notice shall be
|
* The above copyright notice and this permission notice shall be
|
||||||
* included in all copies or substantial portions of the Software.
|
* included in all copies or substantial portions of the Software.
|
||||||
*
|
*
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
||||||
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The text above constitutes the entire PortAudio license; however,
|
* The text above constitutes the entire PortAudio license; however,
|
||||||
* the PortAudio community also makes the following non-binding requests:
|
* the PortAudio community also makes the following non-binding requests:
|
||||||
*
|
*
|
||||||
* Any person wishing to distribute modifications to the Software is
|
* Any person wishing to distribute modifications to the Software is
|
||||||
* requested to send the modifications to the original developer so that
|
* requested to send the modifications to the original developer so that
|
||||||
* they can be incorporated into the canonical version. It is also
|
* they can be incorporated into the canonical version. It is also
|
||||||
* requested that these non-binding requests be included along with the
|
* requested that these non-binding requests be included along with the
|
||||||
* license above.
|
* license above.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** @file
|
/** @file
|
||||||
@ingroup win_src
|
@ingroup win_src
|
||||||
|
|
||||||
@brief Microsoft COM initialization routines.
|
@brief Microsoft COM initialization routines.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef PA_WIN_COINITIALIZE_H
|
#ifndef PA_WIN_COINITIALIZE_H
|
||||||
#define PA_WIN_COINITIALIZE_H
|
#define PA_WIN_COINITIALIZE_H
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief Data type used to hold the result of an attempt to initialize COM
|
@brief Data type used to hold the result of an attempt to initialize COM
|
||||||
using PaWinUtil_CoInitialize. Must be retained between a call to
|
using PaWinUtil_CoInitialize. Must be retained between a call to
|
||||||
PaWinUtil_CoInitialize and a matching call to PaWinUtil_CoUninitialize.
|
PaWinUtil_CoInitialize and a matching call to PaWinUtil_CoUninitialize.
|
||||||
*/
|
*/
|
||||||
typedef struct PaWinUtilComInitializationResult{
|
typedef struct PaWinUtilComInitializationResult{
|
||||||
int state;
|
int state;
|
||||||
int initializingThreadId;
|
int initializingThreadId;
|
||||||
} PaWinUtilComInitializationResult;
|
} PaWinUtilComInitializationResult;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief Initialize Microsoft COM subsystem on the current thread.
|
@brief Initialize Microsoft COM subsystem on the current thread.
|
||||||
|
|
||||||
@param hostApiType the host API type id of the caller. Used for error reporting.
|
@param hostApiType the host API type id of the caller. Used for error reporting.
|
||||||
|
|
||||||
@param comInitializationResult An output parameter. The value pointed to by
|
@param comInitializationResult An output parameter. The value pointed to by
|
||||||
this parameter stores information required by PaWinUtil_CoUninitialize
|
this parameter stores information required by PaWinUtil_CoUninitialize
|
||||||
to correctly uninitialize COM. The value should be retained and later
|
to correctly uninitialize COM. The value should be retained and later
|
||||||
passed to PaWinUtil_CoUninitialize.
|
passed to PaWinUtil_CoUninitialize.
|
||||||
|
|
||||||
If PaWinUtil_CoInitialize returns paNoError, the caller must later call
|
If PaWinUtil_CoInitialize returns paNoError, the caller must later call
|
||||||
PaWinUtil_CoUninitialize once.
|
PaWinUtil_CoUninitialize once.
|
||||||
*/
|
*/
|
||||||
PaError PaWinUtil_CoInitialize( PaHostApiTypeId hostApiType, PaWinUtilComInitializationResult *comInitializationResult );
|
PaError PaWinUtil_CoInitialize( PaHostApiTypeId hostApiType, PaWinUtilComInitializationResult *comInitializationResult );
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief Uninitialize the Microsoft COM subsystem on the current thread using
|
@brief Uninitialize the Microsoft COM subsystem on the current thread using
|
||||||
the result of a previous call to PaWinUtil_CoInitialize. Must be called on the same
|
the result of a previous call to PaWinUtil_CoInitialize. Must be called on the same
|
||||||
thread as PaWinUtil_CoInitialize.
|
thread as PaWinUtil_CoInitialize.
|
||||||
|
|
||||||
@param hostApiType the host API type id of the caller. Used for error reporting.
|
@param hostApiType the host API type id of the caller. Used for error reporting.
|
||||||
|
|
||||||
@param comInitializationResult An input parameter. A pointer to a value previously
|
@param comInitializationResult An input parameter. A pointer to a value previously
|
||||||
initialized by a call to PaWinUtil_CoInitialize.
|
initialized by a call to PaWinUtil_CoInitialize.
|
||||||
*/
|
*/
|
||||||
void PaWinUtil_CoUninitialize( PaHostApiTypeId hostApiType, PaWinUtilComInitializationResult *comInitializationResult );
|
void PaWinUtil_CoUninitialize( PaHostApiTypeId hostApiType, PaWinUtilComInitializationResult *comInitializationResult );
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
#endif /* PA_WIN_COINITIALIZE_H */
|
#endif /* PA_WIN_COINITIALIZE_H */
|
||||||
|
|
|
@ -1,370 +1,370 @@
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
///
|
///
|
||||||
/// Beats-per-minute (BPM) detection routine.
|
/// Beats-per-minute (BPM) detection routine.
|
||||||
///
|
///
|
||||||
/// The beat detection algorithm works as follows:
|
/// The beat detection algorithm works as follows:
|
||||||
/// - Use function 'inputSamples' to input a chunks of samples to the class for
|
/// - Use function 'inputSamples' to input a chunks of samples to the class for
|
||||||
/// analysis. It's a good idea to enter a large sound file or stream in smallish
|
/// analysis. It's a good idea to enter a large sound file or stream in smallish
|
||||||
/// chunks of around few kilosamples in order not to extinguish too much RAM memory.
|
/// chunks of around few kilosamples in order not to extinguish too much RAM memory.
|
||||||
/// - Inputted sound data is decimated to approx 500 Hz to reduce calculation burden,
|
/// - Inputted sound data is decimated to approx 500 Hz to reduce calculation burden,
|
||||||
/// which is basically ok as low (bass) frequencies mostly determine the beat rate.
|
/// which is basically ok as low (bass) frequencies mostly determine the beat rate.
|
||||||
/// Simple averaging is used for anti-alias filtering because the resulting signal
|
/// Simple averaging is used for anti-alias filtering because the resulting signal
|
||||||
/// quality isn't of that high importance.
|
/// quality isn't of that high importance.
|
||||||
/// - Decimated sound data is enveloped, i.e. the amplitude shape is detected by
|
/// - Decimated sound data is enveloped, i.e. the amplitude shape is detected by
|
||||||
/// taking absolute value that's smoothed by sliding average. Signal levels that
|
/// taking absolute value that's smoothed by sliding average. Signal levels that
|
||||||
/// are below a couple of times the general RMS amplitude level are cut away to
|
/// are below a couple of times the general RMS amplitude level are cut away to
|
||||||
/// leave only notable peaks there.
|
/// leave only notable peaks there.
|
||||||
/// - Repeating sound patterns (e.g. beats) are detected by calculating short-term
|
/// - Repeating sound patterns (e.g. beats) are detected by calculating short-term
|
||||||
/// autocorrelation function of the enveloped signal.
|
/// autocorrelation function of the enveloped signal.
|
||||||
/// - After whole sound data file has been analyzed as above, the bpm level is
|
/// - After whole sound data file has been analyzed as above, the bpm level is
|
||||||
/// detected by function 'getBpm' that finds the highest peak of the autocorrelation
|
/// detected by function 'getBpm' that finds the highest peak of the autocorrelation
|
||||||
/// function, calculates it's precise location and converts this reading to bpm's.
|
/// function, calculates it's precise location and converts this reading to bpm's.
|
||||||
///
|
///
|
||||||
/// Author : Copyright (c) Olli Parviainen
|
/// Author : Copyright (c) Olli Parviainen
|
||||||
/// Author e-mail : oparviai 'at' iki.fi
|
/// Author e-mail : oparviai 'at' iki.fi
|
||||||
/// SoundTouch WWW: http://www.surina.net/soundtouch
|
/// SoundTouch WWW: http://www.surina.net/soundtouch
|
||||||
///
|
///
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Last changed : $Date: 2012-08-30 16:45:25 -0300 (qui, 30 ago 2012) $
|
// Last changed : $Date: 2012-08-30 16:45:25 -0300 (qui, 30 ago 2012) $
|
||||||
// File revision : $Revision: 4 $
|
// File revision : $Revision: 4 $
|
||||||
//
|
//
|
||||||
// $Id: BPMDetect.cpp 149 2012-08-30 19:45:25Z oparviai $
|
// $Id: BPMDetect.cpp 149 2012-08-30 19:45:25Z oparviai $
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// License :
|
// License :
|
||||||
//
|
//
|
||||||
// SoundTouch audio processing library
|
// SoundTouch audio processing library
|
||||||
// Copyright (c) Olli Parviainen
|
// Copyright (c) Olli Parviainen
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
// License as published by the Free Software Foundation; either
|
// License as published by the Free Software Foundation; either
|
||||||
// version 2.1 of the License, or (at your option) any later version.
|
// 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,
|
// This library is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
// Lesser General Public License for more details.
|
// Lesser General Public License for more details.
|
||||||
//
|
//
|
||||||
// You should have received a copy of the GNU Lesser General Public
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
// License along with this library; if not, write to the Free Software
|
// License along with this library; if not, write to the Free Software
|
||||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "FIFOSampleBuffer.h"
|
#include "FIFOSampleBuffer.h"
|
||||||
#include "PeakFinder.h"
|
#include "PeakFinder.h"
|
||||||
#include "BPMDetect.h"
|
#include "BPMDetect.h"
|
||||||
|
|
||||||
using namespace soundtouch;
|
using namespace soundtouch;
|
||||||
|
|
||||||
#define INPUT_BLOCK_SAMPLES 2048
|
#define INPUT_BLOCK_SAMPLES 2048
|
||||||
#define DECIMATED_BLOCK_SAMPLES 256
|
#define DECIMATED_BLOCK_SAMPLES 256
|
||||||
|
|
||||||
/// decay constant for calculating RMS volume sliding average approximation
|
/// decay constant for calculating RMS volume sliding average approximation
|
||||||
/// (time constant is about 10 sec)
|
/// (time constant is about 10 sec)
|
||||||
const float avgdecay = 0.99986f;
|
const float avgdecay = 0.99986f;
|
||||||
|
|
||||||
/// Normalization coefficient for calculating RMS sliding average approximation.
|
/// Normalization coefficient for calculating RMS sliding average approximation.
|
||||||
const float avgnorm = (1 - avgdecay);
|
const float avgnorm = (1 - avgdecay);
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Enable following define to create bpm analysis file:
|
// Enable following define to create bpm analysis file:
|
||||||
|
|
||||||
// #define _CREATE_BPM_DEBUG_FILE
|
// #define _CREATE_BPM_DEBUG_FILE
|
||||||
|
|
||||||
#ifdef _CREATE_BPM_DEBUG_FILE
|
#ifdef _CREATE_BPM_DEBUG_FILE
|
||||||
|
|
||||||
#define DEBUGFILE_NAME "c:\\temp\\soundtouch-bpm-debug.txt"
|
#define DEBUGFILE_NAME "c:\\temp\\soundtouch-bpm-debug.txt"
|
||||||
|
|
||||||
static void _SaveDebugData(const float *data, int minpos, int maxpos, double coeff)
|
static void _SaveDebugData(const float *data, int minpos, int maxpos, double coeff)
|
||||||
{
|
{
|
||||||
FILE *fptr = fopen(DEBUGFILE_NAME, "wt");
|
FILE *fptr = fopen(DEBUGFILE_NAME, "wt");
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (fptr)
|
if (fptr)
|
||||||
{
|
{
|
||||||
printf("\n\nWriting BPM debug data into file " DEBUGFILE_NAME "\n\n");
|
printf("\n\nWriting BPM debug data into file " DEBUGFILE_NAME "\n\n");
|
||||||
for (i = minpos; i < maxpos; i ++)
|
for (i = minpos; i < maxpos; i ++)
|
||||||
{
|
{
|
||||||
fprintf(fptr, "%d\t%.1lf\t%f\n", i, coeff / (double)i, data[i]);
|
fprintf(fptr, "%d\t%.1lf\t%f\n", i, coeff / (double)i, data[i]);
|
||||||
}
|
}
|
||||||
fclose(fptr);
|
fclose(fptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#define _SaveDebugData(a,b,c,d)
|
#define _SaveDebugData(a,b,c,d)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
BPMDetect::BPMDetect(int numChannels, int aSampleRate)
|
BPMDetect::BPMDetect(int numChannels, int aSampleRate)
|
||||||
{
|
{
|
||||||
this->sampleRate = aSampleRate;
|
this->sampleRate = aSampleRate;
|
||||||
this->channels = numChannels;
|
this->channels = numChannels;
|
||||||
|
|
||||||
decimateSum = 0;
|
decimateSum = 0;
|
||||||
decimateCount = 0;
|
decimateCount = 0;
|
||||||
|
|
||||||
envelopeAccu = 0;
|
envelopeAccu = 0;
|
||||||
|
|
||||||
// Initialize RMS volume accumulator to RMS level of 1500 (out of 32768) that's
|
// Initialize RMS volume accumulator to RMS level of 1500 (out of 32768) that's
|
||||||
// safe initial RMS signal level value for song data. This value is then adapted
|
// safe initial RMS signal level value for song data. This value is then adapted
|
||||||
// to the actual level during processing.
|
// to the actual level during processing.
|
||||||
#ifdef SOUNDTOUCH_INTEGER_SAMPLES
|
#ifdef SOUNDTOUCH_INTEGER_SAMPLES
|
||||||
// integer samples
|
// integer samples
|
||||||
RMSVolumeAccu = (1500 * 1500) / avgnorm;
|
RMSVolumeAccu = (1500 * 1500) / avgnorm;
|
||||||
#else
|
#else
|
||||||
// float samples, scaled to range [-1..+1[
|
// float samples, scaled to range [-1..+1[
|
||||||
RMSVolumeAccu = (0.045f * 0.045f) / avgnorm;
|
RMSVolumeAccu = (0.045f * 0.045f) / avgnorm;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// choose decimation factor so that result is approx. 1000 Hz
|
// choose decimation factor so that result is approx. 1000 Hz
|
||||||
decimateBy = sampleRate / 1000;
|
decimateBy = sampleRate / 1000;
|
||||||
assert(decimateBy > 0);
|
assert(decimateBy > 0);
|
||||||
assert(INPUT_BLOCK_SAMPLES < decimateBy * DECIMATED_BLOCK_SAMPLES);
|
assert(INPUT_BLOCK_SAMPLES < decimateBy * DECIMATED_BLOCK_SAMPLES);
|
||||||
|
|
||||||
// Calculate window length & starting item according to desired min & max bpms
|
// Calculate window length & starting item according to desired min & max bpms
|
||||||
windowLen = (60 * sampleRate) / (decimateBy * MIN_BPM);
|
windowLen = (60 * sampleRate) / (decimateBy * MIN_BPM);
|
||||||
windowStart = (60 * sampleRate) / (decimateBy * MAX_BPM);
|
windowStart = (60 * sampleRate) / (decimateBy * MAX_BPM);
|
||||||
|
|
||||||
assert(windowLen > windowStart);
|
assert(windowLen > windowStart);
|
||||||
|
|
||||||
// allocate new working objects
|
// allocate new working objects
|
||||||
xcorr = new float[windowLen];
|
xcorr = new float[windowLen];
|
||||||
memset(xcorr, 0, windowLen * sizeof(float));
|
memset(xcorr, 0, windowLen * sizeof(float));
|
||||||
|
|
||||||
// allocate processing buffer
|
// allocate processing buffer
|
||||||
buffer = new FIFOSampleBuffer();
|
buffer = new FIFOSampleBuffer();
|
||||||
// we do processing in mono mode
|
// we do processing in mono mode
|
||||||
buffer->setChannels(1);
|
buffer->setChannels(1);
|
||||||
buffer->clear();
|
buffer->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BPMDetect::~BPMDetect()
|
BPMDetect::~BPMDetect()
|
||||||
{
|
{
|
||||||
delete[] xcorr;
|
delete[] xcorr;
|
||||||
delete buffer;
|
delete buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// convert to mono, low-pass filter & decimate to about 500 Hz.
|
/// convert to mono, low-pass filter & decimate to about 500 Hz.
|
||||||
/// return number of outputted samples.
|
/// return number of outputted samples.
|
||||||
///
|
///
|
||||||
/// Decimation is used to remove the unnecessary frequencies and thus to reduce
|
/// Decimation is used to remove the unnecessary frequencies and thus to reduce
|
||||||
/// the amount of data needed to be processed as calculating autocorrelation
|
/// the amount of data needed to be processed as calculating autocorrelation
|
||||||
/// function is a very-very heavy operation.
|
/// function is a very-very heavy operation.
|
||||||
///
|
///
|
||||||
/// Anti-alias filtering is done simply by averaging the samples. This is really a
|
/// Anti-alias filtering is done simply by averaging the samples. This is really a
|
||||||
/// poor-man's anti-alias filtering, but it's not so critical in this kind of application
|
/// poor-man's anti-alias filtering, but it's not so critical in this kind of application
|
||||||
/// (it'd also be difficult to design a high-quality filter with steep cut-off at very
|
/// (it'd also be difficult to design a high-quality filter with steep cut-off at very
|
||||||
/// narrow band)
|
/// narrow band)
|
||||||
int BPMDetect::decimate(SAMPLETYPE *dest, const SAMPLETYPE *src, int numsamples)
|
int BPMDetect::decimate(SAMPLETYPE *dest, const SAMPLETYPE *src, int numsamples)
|
||||||
{
|
{
|
||||||
int count, outcount;
|
int count, outcount;
|
||||||
LONG_SAMPLETYPE out;
|
LONG_SAMPLETYPE out;
|
||||||
|
|
||||||
assert(channels > 0);
|
assert(channels > 0);
|
||||||
assert(decimateBy > 0);
|
assert(decimateBy > 0);
|
||||||
outcount = 0;
|
outcount = 0;
|
||||||
for (count = 0; count < numsamples; count ++)
|
for (count = 0; count < numsamples; count ++)
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
|
|
||||||
// convert to mono and accumulate
|
// convert to mono and accumulate
|
||||||
for (j = 0; j < channels; j ++)
|
for (j = 0; j < channels; j ++)
|
||||||
{
|
{
|
||||||
decimateSum += src[j];
|
decimateSum += src[j];
|
||||||
}
|
}
|
||||||
src += j;
|
src += j;
|
||||||
|
|
||||||
decimateCount ++;
|
decimateCount ++;
|
||||||
if (decimateCount >= decimateBy)
|
if (decimateCount >= decimateBy)
|
||||||
{
|
{
|
||||||
// Store every Nth sample only
|
// Store every Nth sample only
|
||||||
out = (LONG_SAMPLETYPE)(decimateSum / (decimateBy * channels));
|
out = (LONG_SAMPLETYPE)(decimateSum / (decimateBy * channels));
|
||||||
decimateSum = 0;
|
decimateSum = 0;
|
||||||
decimateCount = 0;
|
decimateCount = 0;
|
||||||
#ifdef SOUNDTOUCH_INTEGER_SAMPLES
|
#ifdef SOUNDTOUCH_INTEGER_SAMPLES
|
||||||
// check ranges for sure (shouldn't actually be necessary)
|
// check ranges for sure (shouldn't actually be necessary)
|
||||||
if (out > 32767)
|
if (out > 32767)
|
||||||
{
|
{
|
||||||
out = 32767;
|
out = 32767;
|
||||||
}
|
}
|
||||||
else if (out < -32768)
|
else if (out < -32768)
|
||||||
{
|
{
|
||||||
out = -32768;
|
out = -32768;
|
||||||
}
|
}
|
||||||
#endif // SOUNDTOUCH_INTEGER_SAMPLES
|
#endif // SOUNDTOUCH_INTEGER_SAMPLES
|
||||||
dest[outcount] = (SAMPLETYPE)out;
|
dest[outcount] = (SAMPLETYPE)out;
|
||||||
outcount ++;
|
outcount ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return outcount;
|
return outcount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Calculates autocorrelation function of the sample history buffer
|
// Calculates autocorrelation function of the sample history buffer
|
||||||
void BPMDetect::updateXCorr(int process_samples)
|
void BPMDetect::updateXCorr(int process_samples)
|
||||||
{
|
{
|
||||||
int offs;
|
int offs;
|
||||||
SAMPLETYPE *pBuffer;
|
SAMPLETYPE *pBuffer;
|
||||||
|
|
||||||
assert(buffer->numSamples() >= (uint)(process_samples + windowLen));
|
assert(buffer->numSamples() >= (uint)(process_samples + windowLen));
|
||||||
|
|
||||||
pBuffer = buffer->ptrBegin();
|
pBuffer = buffer->ptrBegin();
|
||||||
for (offs = windowStart; offs < windowLen; offs ++)
|
for (offs = windowStart; offs < windowLen; offs ++)
|
||||||
{
|
{
|
||||||
LONG_SAMPLETYPE sum;
|
LONG_SAMPLETYPE sum;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
sum = 0;
|
sum = 0;
|
||||||
for (i = 0; i < process_samples; i ++)
|
for (i = 0; i < process_samples; i ++)
|
||||||
{
|
{
|
||||||
sum += pBuffer[i] * pBuffer[i + offs]; // scaling the sub-result shouldn't be necessary
|
sum += pBuffer[i] * pBuffer[i + offs]; // scaling the sub-result shouldn't be necessary
|
||||||
}
|
}
|
||||||
// xcorr[offs] *= xcorr_decay; // decay 'xcorr' here with suitable coefficients
|
// xcorr[offs] *= xcorr_decay; // decay 'xcorr' here with suitable coefficients
|
||||||
// if it's desired that the system adapts automatically to
|
// if it's desired that the system adapts automatically to
|
||||||
// various bpms, e.g. in processing continouos music stream.
|
// various bpms, e.g. in processing continouos music stream.
|
||||||
// The 'xcorr_decay' should be a value that's smaller than but
|
// The 'xcorr_decay' should be a value that's smaller than but
|
||||||
// close to one, and should also depend on 'process_samples' value.
|
// close to one, and should also depend on 'process_samples' value.
|
||||||
|
|
||||||
xcorr[offs] += (float)sum;
|
xcorr[offs] += (float)sum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Calculates envelope of the sample data
|
// Calculates envelope of the sample data
|
||||||
void BPMDetect::calcEnvelope(SAMPLETYPE *samples, int numsamples)
|
void BPMDetect::calcEnvelope(SAMPLETYPE *samples, int numsamples)
|
||||||
{
|
{
|
||||||
const static double decay = 0.7f; // decay constant for smoothing the envelope
|
const static double decay = 0.7f; // decay constant for smoothing the envelope
|
||||||
const static double norm = (1 - decay);
|
const static double norm = (1 - decay);
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
LONG_SAMPLETYPE out;
|
LONG_SAMPLETYPE out;
|
||||||
double val;
|
double val;
|
||||||
|
|
||||||
for (i = 0; i < numsamples; i ++)
|
for (i = 0; i < numsamples; i ++)
|
||||||
{
|
{
|
||||||
// calc average RMS volume
|
// calc average RMS volume
|
||||||
RMSVolumeAccu *= avgdecay;
|
RMSVolumeAccu *= avgdecay;
|
||||||
val = (float)fabs((float)samples[i]);
|
val = (float)fabs((float)samples[i]);
|
||||||
RMSVolumeAccu += val * val;
|
RMSVolumeAccu += val * val;
|
||||||
|
|
||||||
// cut amplitudes that are below cutoff ~2 times RMS volume
|
// cut amplitudes that are below cutoff ~2 times RMS volume
|
||||||
// (we're interested in peak values, not the silent moments)
|
// (we're interested in peak values, not the silent moments)
|
||||||
if (val < 0.5 * sqrt(RMSVolumeAccu * avgnorm))
|
if (val < 0.5 * sqrt(RMSVolumeAccu * avgnorm))
|
||||||
{
|
{
|
||||||
val = 0;
|
val = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// smooth amplitude envelope
|
// smooth amplitude envelope
|
||||||
envelopeAccu *= decay;
|
envelopeAccu *= decay;
|
||||||
envelopeAccu += val;
|
envelopeAccu += val;
|
||||||
out = (LONG_SAMPLETYPE)(envelopeAccu * norm);
|
out = (LONG_SAMPLETYPE)(envelopeAccu * norm);
|
||||||
|
|
||||||
#ifdef SOUNDTOUCH_INTEGER_SAMPLES
|
#ifdef SOUNDTOUCH_INTEGER_SAMPLES
|
||||||
// cut peaks (shouldn't be necessary though)
|
// cut peaks (shouldn't be necessary though)
|
||||||
if (out > 32767) out = 32767;
|
if (out > 32767) out = 32767;
|
||||||
#endif // SOUNDTOUCH_INTEGER_SAMPLES
|
#endif // SOUNDTOUCH_INTEGER_SAMPLES
|
||||||
samples[i] = (SAMPLETYPE)out;
|
samples[i] = (SAMPLETYPE)out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void BPMDetect::inputSamples(const SAMPLETYPE *samples, int numSamples)
|
void BPMDetect::inputSamples(const SAMPLETYPE *samples, int numSamples)
|
||||||
{
|
{
|
||||||
SAMPLETYPE decimated[DECIMATED_BLOCK_SAMPLES];
|
SAMPLETYPE decimated[DECIMATED_BLOCK_SAMPLES];
|
||||||
|
|
||||||
// iterate so that max INPUT_BLOCK_SAMPLES processed per iteration
|
// iterate so that max INPUT_BLOCK_SAMPLES processed per iteration
|
||||||
while (numSamples > 0)
|
while (numSamples > 0)
|
||||||
{
|
{
|
||||||
int block;
|
int block;
|
||||||
int decSamples;
|
int decSamples;
|
||||||
|
|
||||||
block = (numSamples > INPUT_BLOCK_SAMPLES) ? INPUT_BLOCK_SAMPLES : numSamples;
|
block = (numSamples > INPUT_BLOCK_SAMPLES) ? INPUT_BLOCK_SAMPLES : numSamples;
|
||||||
|
|
||||||
// decimate. note that converts to mono at the same time
|
// decimate. note that converts to mono at the same time
|
||||||
decSamples = decimate(decimated, samples, block);
|
decSamples = decimate(decimated, samples, block);
|
||||||
samples += block * channels;
|
samples += block * channels;
|
||||||
numSamples -= block;
|
numSamples -= block;
|
||||||
|
|
||||||
// envelope new samples and add them to buffer
|
// envelope new samples and add them to buffer
|
||||||
calcEnvelope(decimated, decSamples);
|
calcEnvelope(decimated, decSamples);
|
||||||
buffer->putSamples(decimated, decSamples);
|
buffer->putSamples(decimated, decSamples);
|
||||||
}
|
}
|
||||||
|
|
||||||
// when the buffer has enought samples for processing...
|
// when the buffer has enought samples for processing...
|
||||||
if ((int)buffer->numSamples() > windowLen)
|
if ((int)buffer->numSamples() > windowLen)
|
||||||
{
|
{
|
||||||
int processLength;
|
int processLength;
|
||||||
|
|
||||||
// how many samples are processed
|
// how many samples are processed
|
||||||
processLength = (int)buffer->numSamples() - windowLen;
|
processLength = (int)buffer->numSamples() - windowLen;
|
||||||
|
|
||||||
// ... calculate autocorrelations for oldest samples...
|
// ... calculate autocorrelations for oldest samples...
|
||||||
updateXCorr(processLength);
|
updateXCorr(processLength);
|
||||||
// ... and remove them from the buffer
|
// ... and remove them from the buffer
|
||||||
buffer->receiveSamples(processLength);
|
buffer->receiveSamples(processLength);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void BPMDetect::removeBias()
|
void BPMDetect::removeBias()
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
float minval = 1e12f; // arbitrary large number
|
float minval = 1e12f; // arbitrary large number
|
||||||
|
|
||||||
for (i = windowStart; i < windowLen; i ++)
|
for (i = windowStart; i < windowLen; i ++)
|
||||||
{
|
{
|
||||||
if (xcorr[i] < minval)
|
if (xcorr[i] < minval)
|
||||||
{
|
{
|
||||||
minval = xcorr[i];
|
minval = xcorr[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = windowStart; i < windowLen; i ++)
|
for (i = windowStart; i < windowLen; i ++)
|
||||||
{
|
{
|
||||||
xcorr[i] -= minval;
|
xcorr[i] -= minval;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
float BPMDetect::getBpm()
|
float BPMDetect::getBpm()
|
||||||
{
|
{
|
||||||
double peakPos;
|
double peakPos;
|
||||||
double coeff;
|
double coeff;
|
||||||
PeakFinder peakFinder;
|
PeakFinder peakFinder;
|
||||||
|
|
||||||
coeff = 60.0 * ((double)sampleRate / (double)decimateBy);
|
coeff = 60.0 * ((double)sampleRate / (double)decimateBy);
|
||||||
|
|
||||||
// save bpm debug analysis data if debug data enabled
|
// save bpm debug analysis data if debug data enabled
|
||||||
_SaveDebugData(xcorr, windowStart, windowLen, coeff);
|
_SaveDebugData(xcorr, windowStart, windowLen, coeff);
|
||||||
|
|
||||||
// remove bias from xcorr data
|
// remove bias from xcorr data
|
||||||
removeBias();
|
removeBias();
|
||||||
|
|
||||||
// find peak position
|
// find peak position
|
||||||
peakPos = peakFinder.detectPeak(xcorr, windowStart, windowLen);
|
peakPos = peakFinder.detectPeak(xcorr, windowStart, windowLen);
|
||||||
|
|
||||||
assert(decimateBy != 0);
|
assert(decimateBy != 0);
|
||||||
if (peakPos < 1e-9) return 0.0; // detection failed.
|
if (peakPos < 1e-9) return 0.0; // detection failed.
|
||||||
|
|
||||||
// calculate BPM
|
// calculate BPM
|
||||||
return (float) (coeff / peakPos);
|
return (float) (coeff / peakPos);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,71 +1,71 @@
|
||||||
## Process this file with automake to create Makefile.in
|
## Process this file with automake to create Makefile.in
|
||||||
##
|
##
|
||||||
## $Id: Makefile.am 138 2012-04-01 20:00:09Z oparviai $
|
## $Id: Makefile.am 138 2012-04-01 20:00:09Z oparviai $
|
||||||
##
|
##
|
||||||
## This file is part of SoundTouch, an audio processing library for pitch/time adjustments
|
## This file is part of SoundTouch, an audio processing library for pitch/time adjustments
|
||||||
##
|
##
|
||||||
## SoundTouch is free software; you can redistribute it and/or modify it under the
|
## SoundTouch is free software; you can redistribute it and/or modify it under the
|
||||||
## terms of the GNU General Public License as published by the Free Software
|
## terms of the GNU General Public License as published by the Free Software
|
||||||
## Foundation; either version 2 of the License, or (at your option) any later
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
## version.
|
## version.
|
||||||
##
|
##
|
||||||
## SoundTouch is distributed in the hope that it will be useful, but WITHOUT ANY
|
## SoundTouch is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
## WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
## WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||||
## A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
## A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
##
|
##
|
||||||
## You should have received a copy of the GNU General Public License along with
|
## You should have received a copy of the GNU General Public License along with
|
||||||
## this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
## this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||||
## Place - Suite 330, Boston, MA 02111-1307, USA
|
## Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
|
||||||
|
|
||||||
include $(top_srcdir)/config/am_include.mk
|
include $(top_srcdir)/config/am_include.mk
|
||||||
|
|
||||||
|
|
||||||
# set to something if you want other stuff to be included in the distribution tarball
|
# set to something if you want other stuff to be included in the distribution tarball
|
||||||
EXTRA_DIST=SoundTouch.dsp SoundTouch.dsw SoundTouch.sln SoundTouch.vcproj
|
EXTRA_DIST=SoundTouch.dsp SoundTouch.dsw SoundTouch.sln SoundTouch.vcproj
|
||||||
|
|
||||||
noinst_HEADERS=AAFilter.h cpu_detect.h cpu_detect_x86.cpp FIRFilter.h RateTransposer.h TDStretch.h PeakFinder.h
|
noinst_HEADERS=AAFilter.h cpu_detect.h cpu_detect_x86.cpp FIRFilter.h RateTransposer.h TDStretch.h PeakFinder.h
|
||||||
|
|
||||||
lib_LTLIBRARIES=libSoundTouch.la
|
lib_LTLIBRARIES=libSoundTouch.la
|
||||||
#
|
#
|
||||||
libSoundTouch_la_SOURCES=AAFilter.cpp FIRFilter.cpp FIFOSampleBuffer.cpp RateTransposer.cpp SoundTouch.cpp TDStretch.cpp cpu_detect_x86.cpp BPMDetect.cpp PeakFinder.cpp
|
libSoundTouch_la_SOURCES=AAFilter.cpp FIRFilter.cpp FIFOSampleBuffer.cpp RateTransposer.cpp SoundTouch.cpp TDStretch.cpp cpu_detect_x86.cpp BPMDetect.cpp PeakFinder.cpp
|
||||||
|
|
||||||
|
|
||||||
# Compiler flags
|
# Compiler flags
|
||||||
AM_CXXFLAGS=-O3 -fcheck-new -I../../include
|
AM_CXXFLAGS=-O3 -fcheck-new -I../../include
|
||||||
|
|
||||||
# Compile the files that need MMX and SSE individually.
|
# Compile the files that need MMX and SSE individually.
|
||||||
libSoundTouch_la_LIBADD=libSoundTouchMMX.la libSoundTouchSSE.la
|
libSoundTouch_la_LIBADD=libSoundTouchMMX.la libSoundTouchSSE.la
|
||||||
noinst_LTLIBRARIES=libSoundTouchMMX.la libSoundTouchSSE.la
|
noinst_LTLIBRARIES=libSoundTouchMMX.la libSoundTouchSSE.la
|
||||||
libSoundTouchMMX_la_SOURCES=mmx_optimized.cpp
|
libSoundTouchMMX_la_SOURCES=mmx_optimized.cpp
|
||||||
libSoundTouchSSE_la_SOURCES=sse_optimized.cpp
|
libSoundTouchSSE_la_SOURCES=sse_optimized.cpp
|
||||||
|
|
||||||
# We enable optimizations by default.
|
# We enable optimizations by default.
|
||||||
# If MMX is supported compile with -mmmx.
|
# If MMX is supported compile with -mmmx.
|
||||||
# Do not assume -msse is also supported.
|
# Do not assume -msse is also supported.
|
||||||
if HAVE_MMX
|
if HAVE_MMX
|
||||||
libSoundTouchMMX_la_CXXFLAGS = -mmmx $(AM_CXXFLAGS)
|
libSoundTouchMMX_la_CXXFLAGS = -mmmx $(AM_CXXFLAGS)
|
||||||
else
|
else
|
||||||
libSoundTouchMMX_la_CXXFLAGS = $(AM_CXXFLAGS)
|
libSoundTouchMMX_la_CXXFLAGS = $(AM_CXXFLAGS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# We enable optimizations by default.
|
# We enable optimizations by default.
|
||||||
# If SSE is supported compile with -msse.
|
# If SSE is supported compile with -msse.
|
||||||
if HAVE_SSE
|
if HAVE_SSE
|
||||||
libSoundTouchSSE_la_CXXFLAGS = -msse $(AM_CXXFLAGS)
|
libSoundTouchSSE_la_CXXFLAGS = -msse $(AM_CXXFLAGS)
|
||||||
else
|
else
|
||||||
libSoundTouchSSE_la_CXXFLAGS = $(AM_CXXFLAGS)
|
libSoundTouchSSE_la_CXXFLAGS = $(AM_CXXFLAGS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Let the user disable optimizations if he wishes to.
|
# Let the user disable optimizations if he wishes to.
|
||||||
if !X86_OPTIMIZATIONS
|
if !X86_OPTIMIZATIONS
|
||||||
libSoundTouchMMX_la_CXXFLAGS = $(AM_CXXFLAGS)
|
libSoundTouchMMX_la_CXXFLAGS = $(AM_CXXFLAGS)
|
||||||
libSoundTouchSSE_la_CXXFLAGS = $(AM_CXXFLAGS)
|
libSoundTouchSSE_la_CXXFLAGS = $(AM_CXXFLAGS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
# other linking flags to add
|
# other linking flags to add
|
||||||
# noinst_LTLIBRARIES = libSoundTouchOpt.la
|
# noinst_LTLIBRARIES = libSoundTouchOpt.la
|
||||||
# libSoundTouch_la_LIBADD = libSoundTouchOpt.la
|
# libSoundTouch_la_LIBADD = libSoundTouchOpt.la
|
||||||
# libSoundTouchOpt_la_SOURCES = mmx_optimized.cpp sse_optimized.cpp
|
# libSoundTouchOpt_la_SOURCES = mmx_optimized.cpp sse_optimized.cpp
|
||||||
# libSoundTouchOpt_la_CXXFLAGS = -O3 -msse -fcheck-new -I../../include
|
# libSoundTouchOpt_la_CXXFLAGS = -O3 -msse -fcheck-new -I../../include
|
||||||
|
|
|
@ -1,276 +1,276 @@
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
///
|
///
|
||||||
/// Peak detection routine.
|
/// Peak detection routine.
|
||||||
///
|
///
|
||||||
/// The routine detects highest value on an array of values and calculates the
|
/// The routine detects highest value on an array of values and calculates the
|
||||||
/// precise peak location as a mass-center of the 'hump' around the peak value.
|
/// precise peak location as a mass-center of the 'hump' around the peak value.
|
||||||
///
|
///
|
||||||
/// Author : Copyright (c) Olli Parviainen
|
/// Author : Copyright (c) Olli Parviainen
|
||||||
/// Author e-mail : oparviai 'at' iki.fi
|
/// Author e-mail : oparviai 'at' iki.fi
|
||||||
/// SoundTouch WWW: http://www.surina.net/soundtouch
|
/// SoundTouch WWW: http://www.surina.net/soundtouch
|
||||||
///
|
///
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Last changed : $Date: 2012-12-28 17:52:47 -0200 (sex, 28 dez 2012) $
|
// Last changed : $Date: 2012-12-28 17:52:47 -0200 (sex, 28 dez 2012) $
|
||||||
// File revision : $Revision: 4 $
|
// File revision : $Revision: 4 $
|
||||||
//
|
//
|
||||||
// $Id: PeakFinder.cpp 164 2012-12-28 19:52:47Z oparviai $
|
// $Id: PeakFinder.cpp 164 2012-12-28 19:52:47Z oparviai $
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// License :
|
// License :
|
||||||
//
|
//
|
||||||
// SoundTouch audio processing library
|
// SoundTouch audio processing library
|
||||||
// Copyright (c) Olli Parviainen
|
// Copyright (c) Olli Parviainen
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
// License as published by the Free Software Foundation; either
|
// License as published by the Free Software Foundation; either
|
||||||
// version 2.1 of the License, or (at your option) any later version.
|
// 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,
|
// This library is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
// Lesser General Public License for more details.
|
// Lesser General Public License for more details.
|
||||||
//
|
//
|
||||||
// You should have received a copy of the GNU Lesser General Public
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
// License along with this library; if not, write to the Free Software
|
// License along with this library; if not, write to the Free Software
|
||||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "PeakFinder.h"
|
#include "PeakFinder.h"
|
||||||
|
|
||||||
using namespace soundtouch;
|
using namespace soundtouch;
|
||||||
|
|
||||||
#define max(x, y) (((x) > (y)) ? (x) : (y))
|
#define max(x, y) (((x) > (y)) ? (x) : (y))
|
||||||
|
|
||||||
|
|
||||||
PeakFinder::PeakFinder()
|
PeakFinder::PeakFinder()
|
||||||
{
|
{
|
||||||
minPos = maxPos = 0;
|
minPos = maxPos = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Finds real 'top' of a peak hump from neighnourhood of the given 'peakpos'.
|
// Finds real 'top' of a peak hump from neighnourhood of the given 'peakpos'.
|
||||||
int PeakFinder::findTop(const float *data, int peakpos) const
|
int PeakFinder::findTop(const float *data, int peakpos) const
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int start, end;
|
int start, end;
|
||||||
float refvalue;
|
float refvalue;
|
||||||
|
|
||||||
refvalue = data[peakpos];
|
refvalue = data[peakpos];
|
||||||
|
|
||||||
// seek within ±10 points
|
// seek within ±10 points
|
||||||
start = peakpos - 10;
|
start = peakpos - 10;
|
||||||
if (start < minPos) start = minPos;
|
if (start < minPos) start = minPos;
|
||||||
end = peakpos + 10;
|
end = peakpos + 10;
|
||||||
if (end > maxPos) end = maxPos;
|
if (end > maxPos) end = maxPos;
|
||||||
|
|
||||||
for (i = start; i <= end; i ++)
|
for (i = start; i <= end; i ++)
|
||||||
{
|
{
|
||||||
if (data[i] > refvalue)
|
if (data[i] > refvalue)
|
||||||
{
|
{
|
||||||
peakpos = i;
|
peakpos = i;
|
||||||
refvalue = data[i];
|
refvalue = data[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// failure if max value is at edges of seek range => it's not peak, it's at slope.
|
// failure if max value is at edges of seek range => it's not peak, it's at slope.
|
||||||
if ((peakpos == start) || (peakpos == end)) return 0;
|
if ((peakpos == start) || (peakpos == end)) return 0;
|
||||||
|
|
||||||
return peakpos;
|
return peakpos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Finds 'ground level' of a peak hump by starting from 'peakpos' and proceeding
|
// Finds 'ground level' of a peak hump by starting from 'peakpos' and proceeding
|
||||||
// to direction defined by 'direction' until next 'hump' after minimum value will
|
// to direction defined by 'direction' until next 'hump' after minimum value will
|
||||||
// begin
|
// begin
|
||||||
int PeakFinder::findGround(const float *data, int peakpos, int direction) const
|
int PeakFinder::findGround(const float *data, int peakpos, int direction) const
|
||||||
{
|
{
|
||||||
int lowpos;
|
int lowpos;
|
||||||
int pos;
|
int pos;
|
||||||
int climb_count;
|
int climb_count;
|
||||||
float refvalue;
|
float refvalue;
|
||||||
float delta;
|
float delta;
|
||||||
|
|
||||||
climb_count = 0;
|
climb_count = 0;
|
||||||
refvalue = data[peakpos];
|
refvalue = data[peakpos];
|
||||||
lowpos = peakpos;
|
lowpos = peakpos;
|
||||||
|
|
||||||
pos = peakpos;
|
pos = peakpos;
|
||||||
|
|
||||||
while ((pos > minPos+1) && (pos < maxPos-1))
|
while ((pos > minPos+1) && (pos < maxPos-1))
|
||||||
{
|
{
|
||||||
int prevpos;
|
int prevpos;
|
||||||
|
|
||||||
prevpos = pos;
|
prevpos = pos;
|
||||||
pos += direction;
|
pos += direction;
|
||||||
|
|
||||||
// calculate derivate
|
// calculate derivate
|
||||||
delta = data[pos] - data[prevpos];
|
delta = data[pos] - data[prevpos];
|
||||||
if (delta <= 0)
|
if (delta <= 0)
|
||||||
{
|
{
|
||||||
// going downhill, ok
|
// going downhill, ok
|
||||||
if (climb_count)
|
if (climb_count)
|
||||||
{
|
{
|
||||||
climb_count --; // decrease climb count
|
climb_count --; // decrease climb count
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if new minimum found
|
// check if new minimum found
|
||||||
if (data[pos] < refvalue)
|
if (data[pos] < refvalue)
|
||||||
{
|
{
|
||||||
// new minimum found
|
// new minimum found
|
||||||
lowpos = pos;
|
lowpos = pos;
|
||||||
refvalue = data[pos];
|
refvalue = data[pos];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// going uphill, increase climbing counter
|
// going uphill, increase climbing counter
|
||||||
climb_count ++;
|
climb_count ++;
|
||||||
if (climb_count > 5) break; // we've been climbing too long => it's next uphill => quit
|
if (climb_count > 5) break; // we've been climbing too long => it's next uphill => quit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return lowpos;
|
return lowpos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Find offset where the value crosses the given level, when starting from 'peakpos' and
|
// Find offset where the value crosses the given level, when starting from 'peakpos' and
|
||||||
// proceeds to direction defined in 'direction'
|
// proceeds to direction defined in 'direction'
|
||||||
int PeakFinder::findCrossingLevel(const float *data, float level, int peakpos, int direction) const
|
int PeakFinder::findCrossingLevel(const float *data, float level, int peakpos, int direction) const
|
||||||
{
|
{
|
||||||
float peaklevel;
|
float peaklevel;
|
||||||
int pos;
|
int pos;
|
||||||
|
|
||||||
peaklevel = data[peakpos];
|
peaklevel = data[peakpos];
|
||||||
assert(peaklevel >= level);
|
assert(peaklevel >= level);
|
||||||
pos = peakpos;
|
pos = peakpos;
|
||||||
while ((pos >= minPos) && (pos < maxPos))
|
while ((pos >= minPos) && (pos < maxPos))
|
||||||
{
|
{
|
||||||
if (data[pos + direction] < level) return pos; // crossing found
|
if (data[pos + direction] < level) return pos; // crossing found
|
||||||
pos += direction;
|
pos += direction;
|
||||||
}
|
}
|
||||||
return -1; // not found
|
return -1; // not found
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Calculates the center of mass location of 'data' array items between 'firstPos' and 'lastPos'
|
// Calculates the center of mass location of 'data' array items between 'firstPos' and 'lastPos'
|
||||||
double PeakFinder::calcMassCenter(const float *data, int firstPos, int lastPos) const
|
double PeakFinder::calcMassCenter(const float *data, int firstPos, int lastPos) const
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
float sum;
|
float sum;
|
||||||
float wsum;
|
float wsum;
|
||||||
|
|
||||||
sum = 0;
|
sum = 0;
|
||||||
wsum = 0;
|
wsum = 0;
|
||||||
for (i = firstPos; i <= lastPos; i ++)
|
for (i = firstPos; i <= lastPos; i ++)
|
||||||
{
|
{
|
||||||
sum += (float)i * data[i];
|
sum += (float)i * data[i];
|
||||||
wsum += data[i];
|
wsum += data[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wsum < 1e-6) return 0;
|
if (wsum < 1e-6) return 0;
|
||||||
return sum / wsum;
|
return sum / wsum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// get exact center of peak near given position by calculating local mass of center
|
/// get exact center of peak near given position by calculating local mass of center
|
||||||
double PeakFinder::getPeakCenter(const float *data, int peakpos) const
|
double PeakFinder::getPeakCenter(const float *data, int peakpos) const
|
||||||
{
|
{
|
||||||
float peakLevel; // peak level
|
float peakLevel; // peak level
|
||||||
int crosspos1, crosspos2; // position where the peak 'hump' crosses cutting level
|
int crosspos1, crosspos2; // position where the peak 'hump' crosses cutting level
|
||||||
float cutLevel; // cutting value
|
float cutLevel; // cutting value
|
||||||
float groundLevel; // ground level of the peak
|
float groundLevel; // ground level of the peak
|
||||||
int gp1, gp2; // bottom positions of the peak 'hump'
|
int gp1, gp2; // bottom positions of the peak 'hump'
|
||||||
|
|
||||||
// find ground positions.
|
// find ground positions.
|
||||||
gp1 = findGround(data, peakpos, -1);
|
gp1 = findGround(data, peakpos, -1);
|
||||||
gp2 = findGround(data, peakpos, 1);
|
gp2 = findGround(data, peakpos, 1);
|
||||||
|
|
||||||
groundLevel = 0.5f * (data[gp1] + data[gp2]);
|
groundLevel = 0.5f * (data[gp1] + data[gp2]);
|
||||||
peakLevel = data[peakpos];
|
peakLevel = data[peakpos];
|
||||||
|
|
||||||
// calculate 70%-level of the peak
|
// calculate 70%-level of the peak
|
||||||
cutLevel = 0.70f * peakLevel + 0.30f * groundLevel;
|
cutLevel = 0.70f * peakLevel + 0.30f * groundLevel;
|
||||||
// find mid-level crossings
|
// find mid-level crossings
|
||||||
crosspos1 = findCrossingLevel(data, cutLevel, peakpos, -1);
|
crosspos1 = findCrossingLevel(data, cutLevel, peakpos, -1);
|
||||||
crosspos2 = findCrossingLevel(data, cutLevel, peakpos, 1);
|
crosspos2 = findCrossingLevel(data, cutLevel, peakpos, 1);
|
||||||
|
|
||||||
if ((crosspos1 < 0) || (crosspos2 < 0)) return 0; // no crossing, no peak..
|
if ((crosspos1 < 0) || (crosspos2 < 0)) return 0; // no crossing, no peak..
|
||||||
|
|
||||||
// calculate mass center of the peak surroundings
|
// calculate mass center of the peak surroundings
|
||||||
return calcMassCenter(data, crosspos1, crosspos2);
|
return calcMassCenter(data, crosspos1, crosspos2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
double PeakFinder::detectPeak(const float *data, int aminPos, int amaxPos)
|
double PeakFinder::detectPeak(const float *data, int aminPos, int amaxPos)
|
||||||
{
|
{
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
int peakpos; // position of peak level
|
int peakpos; // position of peak level
|
||||||
double highPeak, peak;
|
double highPeak, peak;
|
||||||
|
|
||||||
this->minPos = aminPos;
|
this->minPos = aminPos;
|
||||||
this->maxPos = amaxPos;
|
this->maxPos = amaxPos;
|
||||||
|
|
||||||
// find absolute peak
|
// find absolute peak
|
||||||
peakpos = minPos;
|
peakpos = minPos;
|
||||||
peak = data[minPos];
|
peak = data[minPos];
|
||||||
for (i = minPos + 1; i < maxPos; i ++)
|
for (i = minPos + 1; i < maxPos; i ++)
|
||||||
{
|
{
|
||||||
if (data[i] > peak)
|
if (data[i] > peak)
|
||||||
{
|
{
|
||||||
peak = data[i];
|
peak = data[i];
|
||||||
peakpos = i;
|
peakpos = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate exact location of the highest peak mass center
|
// Calculate exact location of the highest peak mass center
|
||||||
highPeak = getPeakCenter(data, peakpos);
|
highPeak = getPeakCenter(data, peakpos);
|
||||||
peak = highPeak;
|
peak = highPeak;
|
||||||
|
|
||||||
// Now check if the highest peak were in fact harmonic of the true base beat peak
|
// Now check if the highest peak were in fact harmonic of the true base beat peak
|
||||||
// - sometimes the highest peak can be Nth harmonic of the true base peak yet
|
// - sometimes the highest peak can be Nth harmonic of the true base peak yet
|
||||||
// just a slightly higher than the true base
|
// just a slightly higher than the true base
|
||||||
|
|
||||||
for (i = 3; i < 10; i ++)
|
for (i = 3; i < 10; i ++)
|
||||||
{
|
{
|
||||||
double peaktmp, harmonic;
|
double peaktmp, harmonic;
|
||||||
int i1,i2;
|
int i1,i2;
|
||||||
|
|
||||||
harmonic = (double)i * 0.5;
|
harmonic = (double)i * 0.5;
|
||||||
peakpos = (int)(highPeak / harmonic + 0.5f);
|
peakpos = (int)(highPeak / harmonic + 0.5f);
|
||||||
if (peakpos < minPos) break;
|
if (peakpos < minPos) break;
|
||||||
peakpos = findTop(data, peakpos); // seek true local maximum index
|
peakpos = findTop(data, peakpos); // seek true local maximum index
|
||||||
if (peakpos == 0) continue; // no local max here
|
if (peakpos == 0) continue; // no local max here
|
||||||
|
|
||||||
// calculate mass-center of possible harmonic peak
|
// calculate mass-center of possible harmonic peak
|
||||||
peaktmp = getPeakCenter(data, peakpos);
|
peaktmp = getPeakCenter(data, peakpos);
|
||||||
|
|
||||||
// accept harmonic peak if
|
// accept harmonic peak if
|
||||||
// (a) it is found
|
// (a) it is found
|
||||||
// (b) is within ±4% of the expected harmonic interval
|
// (b) is within ±4% of the expected harmonic interval
|
||||||
// (c) has at least half x-corr value of the max. peak
|
// (c) has at least half x-corr value of the max. peak
|
||||||
|
|
||||||
double diff = harmonic * peaktmp / highPeak;
|
double diff = harmonic * peaktmp / highPeak;
|
||||||
if ((diff < 0.96) || (diff > 1.04)) continue; // peak too afar from expected
|
if ((diff < 0.96) || (diff > 1.04)) continue; // peak too afar from expected
|
||||||
|
|
||||||
// now compare to highest detected peak
|
// now compare to highest detected peak
|
||||||
i1 = (int)(highPeak + 0.5);
|
i1 = (int)(highPeak + 0.5);
|
||||||
i2 = (int)(peaktmp + 0.5);
|
i2 = (int)(peaktmp + 0.5);
|
||||||
if (data[i2] >= 0.4*data[i1])
|
if (data[i2] >= 0.4*data[i1])
|
||||||
{
|
{
|
||||||
// The harmonic is at least half as high primary peak,
|
// The harmonic is at least half as high primary peak,
|
||||||
// thus use the harmonic peak instead
|
// thus use the harmonic peak instead
|
||||||
peak = peaktmp;
|
peak = peaktmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return peak;
|
return peak;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,97 +1,97 @@
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
///
|
///
|
||||||
/// The routine detects highest value on an array of values and calculates the
|
/// The routine detects highest value on an array of values and calculates the
|
||||||
/// precise peak location as a mass-center of the 'hump' around the peak value.
|
/// precise peak location as a mass-center of the 'hump' around the peak value.
|
||||||
///
|
///
|
||||||
/// Author : Copyright (c) Olli Parviainen
|
/// Author : Copyright (c) Olli Parviainen
|
||||||
/// Author e-mail : oparviai 'at' iki.fi
|
/// Author e-mail : oparviai 'at' iki.fi
|
||||||
/// SoundTouch WWW: http://www.surina.net/soundtouch
|
/// SoundTouch WWW: http://www.surina.net/soundtouch
|
||||||
///
|
///
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Last changed : $Date: 2011-12-30 18:33:46 -0200 (sex, 30 dez 2011) $
|
// Last changed : $Date: 2011-12-30 18:33:46 -0200 (sex, 30 dez 2011) $
|
||||||
// File revision : $Revision: 4 $
|
// File revision : $Revision: 4 $
|
||||||
//
|
//
|
||||||
// $Id: PeakFinder.h 132 2011-12-30 20:33:46Z oparviai $
|
// $Id: PeakFinder.h 132 2011-12-30 20:33:46Z oparviai $
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// License :
|
// License :
|
||||||
//
|
//
|
||||||
// SoundTouch audio processing library
|
// SoundTouch audio processing library
|
||||||
// Copyright (c) Olli Parviainen
|
// Copyright (c) Olli Parviainen
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
// License as published by the Free Software Foundation; either
|
// License as published by the Free Software Foundation; either
|
||||||
// version 2.1 of the License, or (at your option) any later version.
|
// 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,
|
// This library is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
// Lesser General Public License for more details.
|
// Lesser General Public License for more details.
|
||||||
//
|
//
|
||||||
// You should have received a copy of the GNU Lesser General Public
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
// License along with this library; if not, write to the Free Software
|
// License along with this library; if not, write to the Free Software
|
||||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifndef _PeakFinder_H_
|
#ifndef _PeakFinder_H_
|
||||||
#define _PeakFinder_H_
|
#define _PeakFinder_H_
|
||||||
|
|
||||||
namespace soundtouch
|
namespace soundtouch
|
||||||
{
|
{
|
||||||
|
|
||||||
class PeakFinder
|
class PeakFinder
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
/// Min, max allowed peak positions within the data vector
|
/// Min, max allowed peak positions within the data vector
|
||||||
int minPos, maxPos;
|
int minPos, maxPos;
|
||||||
|
|
||||||
/// Calculates the mass center between given vector items.
|
/// Calculates the mass center between given vector items.
|
||||||
double calcMassCenter(const float *data, ///< Data vector.
|
double calcMassCenter(const float *data, ///< Data vector.
|
||||||
int firstPos, ///< Index of first vector item beloging to the peak.
|
int firstPos, ///< Index of first vector item beloging to the peak.
|
||||||
int lastPos ///< Index of last vector item beloging to the peak.
|
int lastPos ///< Index of last vector item beloging to the peak.
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
/// Finds the data vector index where the monotoniously decreasing signal crosses the
|
/// Finds the data vector index where the monotoniously decreasing signal crosses the
|
||||||
/// given level.
|
/// given level.
|
||||||
int findCrossingLevel(const float *data, ///< Data vector.
|
int findCrossingLevel(const float *data, ///< Data vector.
|
||||||
float level, ///< Goal crossing level.
|
float level, ///< Goal crossing level.
|
||||||
int peakpos, ///< Peak position index within the data vector.
|
int peakpos, ///< Peak position index within the data vector.
|
||||||
int direction /// Direction where to proceed from the peak: 1 = right, -1 = left.
|
int direction /// Direction where to proceed from the peak: 1 = right, -1 = left.
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
// Finds real 'top' of a peak hump from neighnourhood of the given 'peakpos'.
|
// Finds real 'top' of a peak hump from neighnourhood of the given 'peakpos'.
|
||||||
int findTop(const float *data, int peakpos) const;
|
int findTop(const float *data, int peakpos) const;
|
||||||
|
|
||||||
|
|
||||||
/// Finds the 'ground' level, i.e. smallest level between two neighbouring peaks, to right-
|
/// Finds the 'ground' level, i.e. smallest level between two neighbouring peaks, to right-
|
||||||
/// or left-hand side of the given peak position.
|
/// or left-hand side of the given peak position.
|
||||||
int findGround(const float *data, /// Data vector.
|
int findGround(const float *data, /// Data vector.
|
||||||
int peakpos, /// Peak position index within the data vector.
|
int peakpos, /// Peak position index within the data vector.
|
||||||
int direction /// Direction where to proceed from the peak: 1 = right, -1 = left.
|
int direction /// Direction where to proceed from the peak: 1 = right, -1 = left.
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
/// get exact center of peak near given position by calculating local mass of center
|
/// get exact center of peak near given position by calculating local mass of center
|
||||||
double getPeakCenter(const float *data, int peakpos) const;
|
double getPeakCenter(const float *data, int peakpos) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/// Constructor.
|
/// Constructor.
|
||||||
PeakFinder();
|
PeakFinder();
|
||||||
|
|
||||||
/// Detect exact peak position of the data vector by finding the largest peak 'hump'
|
/// Detect exact peak position of the data vector by finding the largest peak 'hump'
|
||||||
/// and calculating the mass-center location of the peak hump.
|
/// and calculating the mass-center location of the peak hump.
|
||||||
///
|
///
|
||||||
/// \return The location of the largest base harmonic peak hump.
|
/// \return The location of the largest base harmonic peak hump.
|
||||||
double detectPeak(const float *data, /// Data vector to be analyzed. The data vector has
|
double detectPeak(const float *data, /// Data vector to be analyzed. The data vector has
|
||||||
/// to be at least 'maxPos' items long.
|
/// to be at least 'maxPos' items long.
|
||||||
int minPos, ///< Min allowed peak location within the vector data.
|
int minPos, ///< Min allowed peak location within the vector data.
|
||||||
int maxPos ///< Max allowed peak location within the vector data.
|
int maxPos ///< Max allowed peak location within the vector data.
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // _PeakFinder_H_
|
#endif // _PeakFinder_H_
|
||||||
|
|
|
@ -1,116 +1,116 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Devel|Win32">
|
<ProjectConfiguration Include="Devel|Win32">
|
||||||
<Configuration>Devel</Configuration>
|
<Configuration>Devel</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}</ProjectGuid>
|
<ProjectGuid>{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}</ProjectGuid>
|
||||||
<RootNamespace>SoundTouch</RootNamespace>
|
<RootNamespace>SoundTouch</RootNamespace>
|
||||||
<ProjectName>SoundTouch</ProjectName>
|
<ProjectName>SoundTouch</ProjectName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v110_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v110_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v110_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdparty.props" />
|
<Import Project="..\3rdparty.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Devel.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Devel.props" />
|
||||||
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdparty.props" />
|
<Import Project="..\3rdparty.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Release.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Release.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdparty.props" />
|
<Import Project="..\3rdparty.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Debug.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Debug.props" />
|
||||||
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(ProjectName)-dev</TargetName>
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(ProjectName)-dev</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="3dnow_win.cpp" />
|
<ClCompile Include="3dnow_win.cpp" />
|
||||||
<ClCompile Include="AAFilter.cpp" />
|
<ClCompile Include="AAFilter.cpp" />
|
||||||
<ClCompile Include="cpu_detect_x86_win.cpp" />
|
<ClCompile Include="cpu_detect_x86_win.cpp" />
|
||||||
<ClCompile Include="FIFOSampleBuffer.cpp" />
|
<ClCompile Include="FIFOSampleBuffer.cpp" />
|
||||||
<ClCompile Include="FIRFilter.cpp" />
|
<ClCompile Include="FIRFilter.cpp" />
|
||||||
<ClCompile Include="mmx_optimized.cpp" />
|
<ClCompile Include="mmx_optimized.cpp" />
|
||||||
<ClCompile Include="RateTransposer.cpp" />
|
<ClCompile Include="RateTransposer.cpp" />
|
||||||
<ClCompile Include="SoundTouch.cpp" />
|
<ClCompile Include="SoundTouch.cpp" />
|
||||||
<ClCompile Include="sse_optimized.cpp" />
|
<ClCompile Include="sse_optimized.cpp" />
|
||||||
<ClCompile Include="TDStretch.cpp" />
|
<ClCompile Include="TDStretch.cpp" />
|
||||||
<ClCompile Include="WavFile.cpp" />
|
<ClCompile Include="WavFile.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="AAFilter.h" />
|
<ClInclude Include="AAFilter.h" />
|
||||||
<ClInclude Include="BPMDetect.h" />
|
<ClInclude Include="BPMDetect.h" />
|
||||||
<ClInclude Include="cpu_detect.h" />
|
<ClInclude Include="cpu_detect.h" />
|
||||||
<ClInclude Include="FIFOSampleBuffer.h" />
|
<ClInclude Include="FIFOSampleBuffer.h" />
|
||||||
<ClInclude Include="FIFOSamplePipe.h" />
|
<ClInclude Include="FIFOSamplePipe.h" />
|
||||||
<ClInclude Include="FIRFilter.h" />
|
<ClInclude Include="FIRFilter.h" />
|
||||||
<ClInclude Include="RateTransposer.h" />
|
<ClInclude Include="RateTransposer.h" />
|
||||||
<ClInclude Include="SoundTouch.h" />
|
<ClInclude Include="SoundTouch.h" />
|
||||||
<ClInclude Include="STTypes.h" />
|
<ClInclude Include="STTypes.h" />
|
||||||
<ClInclude Include="TDStretch.h" />
|
<ClInclude Include="TDStretch.h" />
|
||||||
<ClInclude Include="WavFile.h" />
|
<ClInclude Include="WavFile.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,83 +1,83 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Header Files">
|
<Filter Include="Header Files">
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="3dnow_win.cpp">
|
<ClCompile Include="3dnow_win.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="AAFilter.cpp">
|
<ClCompile Include="AAFilter.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="cpu_detect_x86_win.cpp">
|
<ClCompile Include="cpu_detect_x86_win.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="FIFOSampleBuffer.cpp">
|
<ClCompile Include="FIFOSampleBuffer.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="FIRFilter.cpp">
|
<ClCompile Include="FIRFilter.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="mmx_optimized.cpp">
|
<ClCompile Include="mmx_optimized.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="RateTransposer.cpp">
|
<ClCompile Include="RateTransposer.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="SoundTouch.cpp">
|
<ClCompile Include="SoundTouch.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sse_optimized.cpp">
|
<ClCompile Include="sse_optimized.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="TDStretch.cpp">
|
<ClCompile Include="TDStretch.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="WavFile.cpp">
|
<ClCompile Include="WavFile.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="AAFilter.h">
|
<ClInclude Include="AAFilter.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="BPMDetect.h">
|
<ClInclude Include="BPMDetect.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="cpu_detect.h">
|
<ClInclude Include="cpu_detect.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="FIFOSampleBuffer.h">
|
<ClInclude Include="FIFOSampleBuffer.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="FIFOSamplePipe.h">
|
<ClInclude Include="FIFOSamplePipe.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="FIRFilter.h">
|
<ClInclude Include="FIRFilter.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="RateTransposer.h">
|
<ClInclude Include="RateTransposer.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="SoundTouch.h">
|
<ClInclude Include="SoundTouch.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="STTypes.h">
|
<ClInclude Include="STTypes.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="TDStretch.h">
|
<ClInclude Include="TDStretch.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="WavFile.h">
|
<ClInclude Include="WavFile.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,137 +1,137 @@
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
///
|
///
|
||||||
/// Generic version of the x86 CPU extension detection routine.
|
/// Generic version of the x86 CPU extension detection routine.
|
||||||
///
|
///
|
||||||
/// This file is for GNU & other non-Windows compilers, see 'cpu_detect_x86_win.cpp'
|
/// This file is for GNU & other non-Windows compilers, see 'cpu_detect_x86_win.cpp'
|
||||||
/// for the Microsoft compiler version.
|
/// for the Microsoft compiler version.
|
||||||
///
|
///
|
||||||
/// Author : Copyright (c) Olli Parviainen
|
/// Author : Copyright (c) Olli Parviainen
|
||||||
/// Author e-mail : oparviai 'at' iki.fi
|
/// Author e-mail : oparviai 'at' iki.fi
|
||||||
/// SoundTouch WWW: http://www.surina.net/soundtouch
|
/// SoundTouch WWW: http://www.surina.net/soundtouch
|
||||||
///
|
///
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Last changed : $Date: 2012-11-08 16:44:37 -0200 (qui, 08 nov 2012) $
|
// Last changed : $Date: 2012-11-08 16:44:37 -0200 (qui, 08 nov 2012) $
|
||||||
// File revision : $Revision: 4 $
|
// File revision : $Revision: 4 $
|
||||||
//
|
//
|
||||||
// $Id: cpu_detect_x86.cpp 159 2012-11-08 18:44:37Z oparviai $
|
// $Id: cpu_detect_x86.cpp 159 2012-11-08 18:44:37Z oparviai $
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// License :
|
// License :
|
||||||
//
|
//
|
||||||
// SoundTouch audio processing library
|
// SoundTouch audio processing library
|
||||||
// Copyright (c) Olli Parviainen
|
// Copyright (c) Olli Parviainen
|
||||||
//
|
//
|
||||||
// This library is free software; you can redistribute it and/or
|
// This library is free software; you can redistribute it and/or
|
||||||
// modify it under the terms of the GNU Lesser General Public
|
// modify it under the terms of the GNU Lesser General Public
|
||||||
// License as published by the Free Software Foundation; either
|
// License as published by the Free Software Foundation; either
|
||||||
// version 2.1 of the License, or (at your option) any later version.
|
// 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,
|
// This library is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
// Lesser General Public License for more details.
|
// Lesser General Public License for more details.
|
||||||
//
|
//
|
||||||
// You should have received a copy of the GNU Lesser General Public
|
// You should have received a copy of the GNU Lesser General Public
|
||||||
// License along with this library; if not, write to the Free Software
|
// License along with this library; if not, write to the Free Software
|
||||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "cpu_detect.h"
|
#include "cpu_detect.h"
|
||||||
#include "STTypes.h"
|
#include "STTypes.h"
|
||||||
|
|
||||||
#if defined(SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS)
|
#if defined(SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS)
|
||||||
|
|
||||||
#if defined(__GNUC__) && defined(__i386__)
|
#if defined(__GNUC__) && defined(__i386__)
|
||||||
// gcc
|
// gcc
|
||||||
#include "cpuid.h"
|
#include "cpuid.h"
|
||||||
#elif defined(_M_IX86)
|
#elif defined(_M_IX86)
|
||||||
// windows non-gcc
|
// windows non-gcc
|
||||||
#include <intrin.h>
|
#include <intrin.h>
|
||||||
#define bit_MMX (1 << 23)
|
#define bit_MMX (1 << 23)
|
||||||
#define bit_SSE (1 << 25)
|
#define bit_SSE (1 << 25)
|
||||||
#define bit_SSE2 (1 << 26)
|
#define bit_SSE2 (1 << 26)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// processor instructions extension detection routines
|
// processor instructions extension detection routines
|
||||||
//
|
//
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Flag variable indicating whick ISA extensions are disabled (for debugging)
|
// Flag variable indicating whick ISA extensions are disabled (for debugging)
|
||||||
static uint _dwDisabledISA = 0x00; // 0xffffffff; //<- use this to disable all extensions
|
static uint _dwDisabledISA = 0x00; // 0xffffffff; //<- use this to disable all extensions
|
||||||
|
|
||||||
// Disables given set of instruction extensions. See SUPPORT_... defines.
|
// Disables given set of instruction extensions. See SUPPORT_... defines.
|
||||||
void disableExtensions(uint dwDisableMask)
|
void disableExtensions(uint dwDisableMask)
|
||||||
{
|
{
|
||||||
_dwDisabledISA = dwDisableMask;
|
_dwDisabledISA = dwDisableMask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Checks which instruction set extensions are supported by the CPU.
|
/// Checks which instruction set extensions are supported by the CPU.
|
||||||
uint detectCPUextensions(void)
|
uint detectCPUextensions(void)
|
||||||
{
|
{
|
||||||
/// If building for a 64bit system (no Itanium) and the user wants optimizations.
|
/// If building for a 64bit system (no Itanium) and the user wants optimizations.
|
||||||
/// Return the OR of SUPPORT_{MMX,SSE,SSE2}. 11001 or 0x19.
|
/// Return the OR of SUPPORT_{MMX,SSE,SSE2}. 11001 or 0x19.
|
||||||
/// Keep the _dwDisabledISA test (2 more operations, could be eliminated).
|
/// Keep the _dwDisabledISA test (2 more operations, could be eliminated).
|
||||||
#if ((defined(__GNUC__) && defined(__x86_64__)) \
|
#if ((defined(__GNUC__) && defined(__x86_64__)) \
|
||||||
|| defined(_M_X64)) \
|
|| defined(_M_X64)) \
|
||||||
&& defined(SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS)
|
&& defined(SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS)
|
||||||
return 0x19 & ~_dwDisabledISA;
|
return 0x19 & ~_dwDisabledISA;
|
||||||
|
|
||||||
/// If building for a 32bit system and the user wants optimizations.
|
/// If building for a 32bit system and the user wants optimizations.
|
||||||
/// Keep the _dwDisabledISA test (2 more operations, could be eliminated).
|
/// Keep the _dwDisabledISA test (2 more operations, could be eliminated).
|
||||||
#elif ((defined(__GNUC__) && defined(__i386__)) \
|
#elif ((defined(__GNUC__) && defined(__i386__)) \
|
||||||
|| defined(_M_IX86)) \
|
|| defined(_M_IX86)) \
|
||||||
&& defined(SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS)
|
&& defined(SOUNDTOUCH_ALLOW_X86_OPTIMIZATIONS)
|
||||||
|
|
||||||
if (_dwDisabledISA == 0xffffffff) return 0;
|
if (_dwDisabledISA == 0xffffffff) return 0;
|
||||||
|
|
||||||
uint res = 0;
|
uint res = 0;
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
// GCC version of cpuid. Requires GCC 4.3.0 or later for __cpuid intrinsic support.
|
// GCC version of cpuid. Requires GCC 4.3.0 or later for __cpuid intrinsic support.
|
||||||
uint eax, ebx, ecx, edx; // unsigned int is the standard type. uint is defined by the compiler and not guaranteed to be portable.
|
uint eax, ebx, ecx, edx; // unsigned int is the standard type. uint is defined by the compiler and not guaranteed to be portable.
|
||||||
|
|
||||||
// Check if no cpuid support.
|
// Check if no cpuid support.
|
||||||
if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx)) return 0; // always disable extensions.
|
if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx)) return 0; // always disable extensions.
|
||||||
|
|
||||||
if (edx & bit_MMX) res = res | SUPPORT_MMX;
|
if (edx & bit_MMX) res = res | SUPPORT_MMX;
|
||||||
if (edx & bit_SSE) res = res | SUPPORT_SSE;
|
if (edx & bit_SSE) res = res | SUPPORT_SSE;
|
||||||
if (edx & bit_SSE2) res = res | SUPPORT_SSE2;
|
if (edx & bit_SSE2) res = res | SUPPORT_SSE2;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
// Window / VS version of cpuid. Notice that Visual Studio 2005 or later required
|
// Window / VS version of cpuid. Notice that Visual Studio 2005 or later required
|
||||||
// for __cpuid intrinsic support.
|
// for __cpuid intrinsic support.
|
||||||
int reg[4] = {-1};
|
int reg[4] = {-1};
|
||||||
|
|
||||||
// Check if no cpuid support.
|
// Check if no cpuid support.
|
||||||
__cpuid(reg,0);
|
__cpuid(reg,0);
|
||||||
if ((unsigned int)reg[0] == 0) return 0; // always disable extensions.
|
if ((unsigned int)reg[0] == 0) return 0; // always disable extensions.
|
||||||
|
|
||||||
__cpuid(reg,1);
|
__cpuid(reg,1);
|
||||||
if ((unsigned int)reg[3] & bit_MMX) res = res | SUPPORT_MMX;
|
if ((unsigned int)reg[3] & bit_MMX) res = res | SUPPORT_MMX;
|
||||||
if ((unsigned int)reg[3] & bit_SSE) res = res | SUPPORT_SSE;
|
if ((unsigned int)reg[3] & bit_SSE) res = res | SUPPORT_SSE;
|
||||||
if ((unsigned int)reg[3] & bit_SSE2) res = res | SUPPORT_SSE2;
|
if ((unsigned int)reg[3] & bit_SSE2) res = res | SUPPORT_SSE2;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return res & ~_dwDisabledISA;
|
return res & ~_dwDisabledISA;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
/// One of these is true:
|
/// One of these is true:
|
||||||
/// 1) We don't want optimizations.
|
/// 1) We don't want optimizations.
|
||||||
/// 2) Using an unsupported compiler.
|
/// 2) Using an unsupported compiler.
|
||||||
/// 3) Running on a non-x86 platform.
|
/// 3) Running on a non-x86 platform.
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,26 +1,26 @@
|
||||||
|
|
||||||
Folder: /3rdparty
|
Folder: /3rdparty
|
||||||
|
|
||||||
This folder contains libraries written and (un?)maintained by people or parties
|
This folder contains libraries written and (un?)maintained by people or parties
|
||||||
outside the Pcsx2 DevTeam. Libraries or code snippets written by the PCSX2 team
|
outside the Pcsx2 DevTeam. Libraries or code snippets written by the PCSX2 team
|
||||||
are housed in /common instead.
|
are housed in /common instead.
|
||||||
|
|
||||||
Cross-Compilation:
|
Cross-Compilation:
|
||||||
|
|
||||||
Most libraries includes in /3rdparty come as either default installations in Linux
|
Most libraries includes in /3rdparty come as either default installations in Linux
|
||||||
distributions, or are easily obtainable. Using the PCSX2 versions included here is
|
distributions, or are easily obtainable. Using the PCSX2 versions included here is
|
||||||
optional in such cases, however using the distro-provided packages is not recommended.
|
optional in such cases, however using the distro-provided packages is not recommended.
|
||||||
(using PCSX2 included versions may help resolve versioning issues).
|
(using PCSX2 included versions may help resolve versioning issues).
|
||||||
|
|
||||||
Note that wxWidgets includes *only* MSW projects and files. Linux and Mac platforms
|
Note that wxWidgets includes *only* MSW projects and files. Linux and Mac platforms
|
||||||
are assumed to have wx already available in your distributions.
|
are assumed to have wx already available in your distributions.
|
||||||
|
|
||||||
Modifications:
|
Modifications:
|
||||||
|
|
||||||
Most of these libs in /3rdparty have been tailored slightly from the original
|
Most of these libs in /3rdparty have been tailored slightly from the original
|
||||||
forms downloaded from the net. So if you want to upgrade to a new version you
|
forms downloaded from the net. So if you want to upgrade to a new version you
|
||||||
will need to do a proper diff merge. Likewise, if you modify anything in a
|
will need to do a proper diff merge. Likewise, if you modify anything in a
|
||||||
3rdparty library you should be sure to tag the modification with your sig or
|
3rdparty library you should be sure to tag the modification with your sig or
|
||||||
a "pcsx2" or something. Thirdly, you can use Svn Log to check for modifications,
|
a "pcsx2" or something. Thirdly, you can use Svn Log to check for modifications,
|
||||||
however folder renames or svn homesite changes may not have all relevant history
|
however folder renames or svn homesite changes may not have all relevant history
|
||||||
necessary to make an accurate merge.
|
necessary to make an accurate merge.
|
|
@ -1,476 +1,476 @@
|
||||||
PTHREADS-WIN32 RELEASE 2.8.0 (2006-12-22)
|
PTHREADS-WIN32 RELEASE 2.8.0 (2006-12-22)
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
Web Site: http://sources.redhat.com/pthreads-win32/
|
Web Site: http://sources.redhat.com/pthreads-win32/
|
||||||
FTP Site: ftp://sources.redhat.com/pub/pthreads-win32
|
FTP Site: ftp://sources.redhat.com/pub/pthreads-win32
|
||||||
Maintainer: Ross Johnson <rpj@callisto.canberra.edu.au>
|
Maintainer: Ross Johnson <rpj@callisto.canberra.edu.au>
|
||||||
|
|
||||||
|
|
||||||
We are pleased to announce the availability of a new release of
|
We are pleased to announce the availability of a new release of
|
||||||
Pthreads-win32, an Open Source Software implementation of the
|
Pthreads-win32, an Open Source Software implementation of the
|
||||||
Threads component of the POSIX 1003.1 2001 Standard for Microsoft's
|
Threads component of the POSIX 1003.1 2001 Standard for Microsoft's
|
||||||
Win32 environment. Some functions from other sections of POSIX
|
Win32 environment. Some functions from other sections of POSIX
|
||||||
1003.1 2001 are also supported including semaphores and scheduling
|
1003.1 2001 are also supported including semaphores and scheduling
|
||||||
functions.
|
functions.
|
||||||
|
|
||||||
Some common non-portable functions are also implemented for
|
Some common non-portable functions are also implemented for
|
||||||
additional compatibility, as are a few functions specific
|
additional compatibility, as are a few functions specific
|
||||||
to pthreads-win32 for easier integration with Win32 applications.
|
to pthreads-win32 for easier integration with Win32 applications.
|
||||||
|
|
||||||
Pthreads-win32 is free software, distributed under the GNU Lesser
|
Pthreads-win32 is free software, distributed under the GNU Lesser
|
||||||
General Public License (LGPL).
|
General Public License (LGPL).
|
||||||
|
|
||||||
|
|
||||||
Acknowledgements
|
Acknowledgements
|
||||||
----------------
|
----------------
|
||||||
This library is based originally on a Win32 pthreads
|
This library is based originally on a Win32 pthreads
|
||||||
implementation contributed by John Bossom <John.Bossom@cognos.com>.
|
implementation contributed by John Bossom <John.Bossom@cognos.com>.
|
||||||
|
|
||||||
The implementation of Condition Variables uses algorithms developed
|
The implementation of Condition Variables uses algorithms developed
|
||||||
by Alexander Terekhov and Louis Thomas.
|
by Alexander Terekhov and Louis Thomas.
|
||||||
|
|
||||||
The implementation of POSIX mutexes has been improved by Thomas Pfaff
|
The implementation of POSIX mutexes has been improved by Thomas Pfaff
|
||||||
and later by Alexander Terekhov.
|
and later by Alexander Terekhov.
|
||||||
|
|
||||||
The implementation of Spinlocks and Barriers was contributed
|
The implementation of Spinlocks and Barriers was contributed
|
||||||
by Ross Johnson.
|
by Ross Johnson.
|
||||||
|
|
||||||
The implementation of read/write locks was contributed by
|
The implementation of read/write locks was contributed by
|
||||||
Aurelio Medina and improved by Alexander Terekhov.
|
Aurelio Medina and improved by Alexander Terekhov.
|
||||||
|
|
||||||
Many others have contributed significant time and effort to solve crutial
|
Many others have contributed significant time and effort to solve crutial
|
||||||
problems in order to make the library workable, robust and reliable.
|
problems in order to make the library workable, robust and reliable.
|
||||||
|
|
||||||
Thanks to Xavier Leroy for granting permission to use and modify his
|
Thanks to Xavier Leroy for granting permission to use and modify his
|
||||||
LinuxThreads manual pages.
|
LinuxThreads manual pages.
|
||||||
|
|
||||||
Thanks to The Open Group for making the Single Unix Specification
|
Thanks to The Open Group for making the Single Unix Specification
|
||||||
publicly available - many of the manual pages included in the package
|
publicly available - many of the manual pages included in the package
|
||||||
were extracted from it.
|
were extracted from it.
|
||||||
|
|
||||||
There is also a separate CONTRIBUTORS file. This file and others are
|
There is also a separate CONTRIBUTORS file. This file and others are
|
||||||
on the web site:
|
on the web site:
|
||||||
|
|
||||||
http://sources.redhat.com/pthreads-win32
|
http://sources.redhat.com/pthreads-win32
|
||||||
|
|
||||||
As much as possible, the ChangeLog file acknowledges contributions to the
|
As much as possible, the ChangeLog file acknowledges contributions to the
|
||||||
code base in more detail.
|
code base in more detail.
|
||||||
|
|
||||||
|
|
||||||
Changes since the last release
|
Changes since the last release
|
||||||
------------------------------
|
------------------------------
|
||||||
These are now documented in the NEWS file.
|
These are now documented in the NEWS file.
|
||||||
See the ChangeLog file also.
|
See the ChangeLog file also.
|
||||||
|
|
||||||
|
|
||||||
Known Bugs
|
Known Bugs
|
||||||
----------
|
----------
|
||||||
These are now documented in the BUGS file.
|
These are now documented in the BUGS file.
|
||||||
|
|
||||||
|
|
||||||
Level of standards conformance
|
Level of standards conformance
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
The following POSIX 1003.1 2001 options are defined and set to 200112L:
|
The following POSIX 1003.1 2001 options are defined and set to 200112L:
|
||||||
|
|
||||||
_POSIX_THREADS
|
_POSIX_THREADS
|
||||||
_POSIX_THREAD_SAFE_FUNCTIONS
|
_POSIX_THREAD_SAFE_FUNCTIONS
|
||||||
_POSIX_THREAD_ATTR_STACKSIZE
|
_POSIX_THREAD_ATTR_STACKSIZE
|
||||||
_POSIX_THREAD_PRIORITY_SCHEDULING
|
_POSIX_THREAD_PRIORITY_SCHEDULING
|
||||||
_POSIX_SEMAPHORES
|
_POSIX_SEMAPHORES
|
||||||
_POSIX_READER_WRITER_LOCKS
|
_POSIX_READER_WRITER_LOCKS
|
||||||
_POSIX_SPIN_LOCKS
|
_POSIX_SPIN_LOCKS
|
||||||
_POSIX_BARRIERS
|
_POSIX_BARRIERS
|
||||||
|
|
||||||
|
|
||||||
The following POSIX 1003.1 2001 options are defined and set to -1:
|
The following POSIX 1003.1 2001 options are defined and set to -1:
|
||||||
|
|
||||||
_POSIX_THREAD_ATTR_STACKADDR
|
_POSIX_THREAD_ATTR_STACKADDR
|
||||||
_POSIX_THREAD_PRIO_INHERIT
|
_POSIX_THREAD_PRIO_INHERIT
|
||||||
_POSIX_THREAD_PRIO_PROTECT
|
_POSIX_THREAD_PRIO_PROTECT
|
||||||
_POSIX_THREAD_PROCESS_SHARED
|
_POSIX_THREAD_PROCESS_SHARED
|
||||||
|
|
||||||
|
|
||||||
The following POSIX 1003.1 2001 limits are defined and set:
|
The following POSIX 1003.1 2001 limits are defined and set:
|
||||||
|
|
||||||
_POSIX_THREAD_THREADS_MAX
|
_POSIX_THREAD_THREADS_MAX
|
||||||
_POSIX_SEM_VALUE_MAX
|
_POSIX_SEM_VALUE_MAX
|
||||||
_POSIX_SEM_NSEMS_MAX
|
_POSIX_SEM_NSEMS_MAX
|
||||||
_POSIX_THREAD_KEYS_MAX
|
_POSIX_THREAD_KEYS_MAX
|
||||||
_POSIX_THREAD_DESTRUCTOR_ITERATIONS
|
_POSIX_THREAD_DESTRUCTOR_ITERATIONS
|
||||||
PTHREAD_STACK_MIN
|
PTHREAD_STACK_MIN
|
||||||
PTHREAD_THREADS_MAX
|
PTHREAD_THREADS_MAX
|
||||||
SEM_VALUE_MAX
|
SEM_VALUE_MAX
|
||||||
SEM_NSEMS_MAX
|
SEM_NSEMS_MAX
|
||||||
PTHREAD_KEYS_MAX
|
PTHREAD_KEYS_MAX
|
||||||
PTHREAD_DESTRUCTOR_ITERATIONS
|
PTHREAD_DESTRUCTOR_ITERATIONS
|
||||||
|
|
||||||
|
|
||||||
The following functions are implemented:
|
The following functions are implemented:
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
PThreads
|
PThreads
|
||||||
---------------------------
|
---------------------------
|
||||||
pthread_attr_init
|
pthread_attr_init
|
||||||
pthread_attr_destroy
|
pthread_attr_destroy
|
||||||
pthread_attr_getdetachstate
|
pthread_attr_getdetachstate
|
||||||
pthread_attr_getstackaddr
|
pthread_attr_getstackaddr
|
||||||
pthread_attr_getstacksize
|
pthread_attr_getstacksize
|
||||||
pthread_attr_setdetachstate
|
pthread_attr_setdetachstate
|
||||||
pthread_attr_setstackaddr
|
pthread_attr_setstackaddr
|
||||||
pthread_attr_setstacksize
|
pthread_attr_setstacksize
|
||||||
|
|
||||||
pthread_create
|
pthread_create
|
||||||
pthread_detach
|
pthread_detach
|
||||||
pthread_equal
|
pthread_equal
|
||||||
pthread_exit
|
pthread_exit
|
||||||
pthread_join
|
pthread_join
|
||||||
pthread_once
|
pthread_once
|
||||||
pthread_self
|
pthread_self
|
||||||
|
|
||||||
pthread_cancel
|
pthread_cancel
|
||||||
pthread_cleanup_pop
|
pthread_cleanup_pop
|
||||||
pthread_cleanup_push
|
pthread_cleanup_push
|
||||||
pthread_setcancelstate
|
pthread_setcancelstate
|
||||||
pthread_setcanceltype
|
pthread_setcanceltype
|
||||||
pthread_testcancel
|
pthread_testcancel
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Thread Specific Data
|
Thread Specific Data
|
||||||
---------------------------
|
---------------------------
|
||||||
pthread_key_create
|
pthread_key_create
|
||||||
pthread_key_delete
|
pthread_key_delete
|
||||||
pthread_setspecific
|
pthread_setspecific
|
||||||
pthread_getspecific
|
pthread_getspecific
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Mutexes
|
Mutexes
|
||||||
---------------------------
|
---------------------------
|
||||||
pthread_mutexattr_init
|
pthread_mutexattr_init
|
||||||
pthread_mutexattr_destroy
|
pthread_mutexattr_destroy
|
||||||
pthread_mutexattr_getpshared
|
pthread_mutexattr_getpshared
|
||||||
pthread_mutexattr_setpshared
|
pthread_mutexattr_setpshared
|
||||||
pthread_mutexattr_gettype
|
pthread_mutexattr_gettype
|
||||||
pthread_mutexattr_settype (types: PTHREAD_MUTEX_DEFAULT
|
pthread_mutexattr_settype (types: PTHREAD_MUTEX_DEFAULT
|
||||||
PTHREAD_MUTEX_NORMAL
|
PTHREAD_MUTEX_NORMAL
|
||||||
PTHREAD_MUTEX_ERRORCHECK
|
PTHREAD_MUTEX_ERRORCHECK
|
||||||
PTHREAD_MUTEX_RECURSIVE )
|
PTHREAD_MUTEX_RECURSIVE )
|
||||||
pthread_mutex_init
|
pthread_mutex_init
|
||||||
pthread_mutex_destroy
|
pthread_mutex_destroy
|
||||||
pthread_mutex_lock
|
pthread_mutex_lock
|
||||||
pthread_mutex_trylock
|
pthread_mutex_trylock
|
||||||
pthread_mutex_timedlock
|
pthread_mutex_timedlock
|
||||||
pthread_mutex_unlock
|
pthread_mutex_unlock
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Condition Variables
|
Condition Variables
|
||||||
---------------------------
|
---------------------------
|
||||||
pthread_condattr_init
|
pthread_condattr_init
|
||||||
pthread_condattr_destroy
|
pthread_condattr_destroy
|
||||||
pthread_condattr_getpshared
|
pthread_condattr_getpshared
|
||||||
pthread_condattr_setpshared
|
pthread_condattr_setpshared
|
||||||
|
|
||||||
pthread_cond_init
|
pthread_cond_init
|
||||||
pthread_cond_destroy
|
pthread_cond_destroy
|
||||||
pthread_cond_wait
|
pthread_cond_wait
|
||||||
pthread_cond_timedwait
|
pthread_cond_timedwait
|
||||||
pthread_cond_signal
|
pthread_cond_signal
|
||||||
pthread_cond_broadcast
|
pthread_cond_broadcast
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Read/Write Locks
|
Read/Write Locks
|
||||||
---------------------------
|
---------------------------
|
||||||
pthread_rwlock_init
|
pthread_rwlock_init
|
||||||
pthread_rwlock_destroy
|
pthread_rwlock_destroy
|
||||||
pthread_rwlock_tryrdlock
|
pthread_rwlock_tryrdlock
|
||||||
pthread_rwlock_trywrlock
|
pthread_rwlock_trywrlock
|
||||||
pthread_rwlock_rdlock
|
pthread_rwlock_rdlock
|
||||||
pthread_rwlock_timedrdlock
|
pthread_rwlock_timedrdlock
|
||||||
pthread_rwlock_rwlock
|
pthread_rwlock_rwlock
|
||||||
pthread_rwlock_timedwrlock
|
pthread_rwlock_timedwrlock
|
||||||
pthread_rwlock_unlock
|
pthread_rwlock_unlock
|
||||||
pthread_rwlockattr_init
|
pthread_rwlockattr_init
|
||||||
pthread_rwlockattr_destroy
|
pthread_rwlockattr_destroy
|
||||||
pthread_rwlockattr_getpshared
|
pthread_rwlockattr_getpshared
|
||||||
pthread_rwlockattr_setpshared
|
pthread_rwlockattr_setpshared
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Spin Locks
|
Spin Locks
|
||||||
---------------------------
|
---------------------------
|
||||||
pthread_spin_init
|
pthread_spin_init
|
||||||
pthread_spin_destroy
|
pthread_spin_destroy
|
||||||
pthread_spin_lock
|
pthread_spin_lock
|
||||||
pthread_spin_unlock
|
pthread_spin_unlock
|
||||||
pthread_spin_trylock
|
pthread_spin_trylock
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Barriers
|
Barriers
|
||||||
---------------------------
|
---------------------------
|
||||||
pthread_barrier_init
|
pthread_barrier_init
|
||||||
pthread_barrier_destroy
|
pthread_barrier_destroy
|
||||||
pthread_barrier_wait
|
pthread_barrier_wait
|
||||||
pthread_barrierattr_init
|
pthread_barrierattr_init
|
||||||
pthread_barrierattr_destroy
|
pthread_barrierattr_destroy
|
||||||
pthread_barrierattr_getpshared
|
pthread_barrierattr_getpshared
|
||||||
pthread_barrierattr_setpshared
|
pthread_barrierattr_setpshared
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Semaphores
|
Semaphores
|
||||||
---------------------------
|
---------------------------
|
||||||
sem_init
|
sem_init
|
||||||
sem_destroy
|
sem_destroy
|
||||||
sem_post
|
sem_post
|
||||||
sem_wait
|
sem_wait
|
||||||
sem_trywait
|
sem_trywait
|
||||||
sem_timedwait
|
sem_timedwait
|
||||||
sem_getvalue (# free if +ve, # of waiters if -ve)
|
sem_getvalue (# free if +ve, # of waiters if -ve)
|
||||||
sem_open (returns an error ENOSYS)
|
sem_open (returns an error ENOSYS)
|
||||||
sem_close (returns an error ENOSYS)
|
sem_close (returns an error ENOSYS)
|
||||||
sem_unlink (returns an error ENOSYS)
|
sem_unlink (returns an error ENOSYS)
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
RealTime Scheduling
|
RealTime Scheduling
|
||||||
---------------------------
|
---------------------------
|
||||||
pthread_attr_getschedparam
|
pthread_attr_getschedparam
|
||||||
pthread_attr_setschedparam
|
pthread_attr_setschedparam
|
||||||
pthread_attr_getinheritsched
|
pthread_attr_getinheritsched
|
||||||
pthread_attr_setinheritsched
|
pthread_attr_setinheritsched
|
||||||
pthread_attr_getschedpolicy (only supports SCHED_OTHER)
|
pthread_attr_getschedpolicy (only supports SCHED_OTHER)
|
||||||
pthread_attr_setschedpolicy (only supports SCHED_OTHER)
|
pthread_attr_setschedpolicy (only supports SCHED_OTHER)
|
||||||
pthread_getschedparam
|
pthread_getschedparam
|
||||||
pthread_setschedparam
|
pthread_setschedparam
|
||||||
pthread_getconcurrency
|
pthread_getconcurrency
|
||||||
pthread_setconcurrency
|
pthread_setconcurrency
|
||||||
pthread_attr_getscope
|
pthread_attr_getscope
|
||||||
pthread_attr_setscope (only supports PTHREAD_SCOPE_SYSTEM)
|
pthread_attr_setscope (only supports PTHREAD_SCOPE_SYSTEM)
|
||||||
sched_get_priority_max
|
sched_get_priority_max
|
||||||
sched_get_priority_min
|
sched_get_priority_min
|
||||||
sched_rr_get_interval (returns an error ENOTSUP)
|
sched_rr_get_interval (returns an error ENOTSUP)
|
||||||
sched_setscheduler (only supports SCHED_OTHER)
|
sched_setscheduler (only supports SCHED_OTHER)
|
||||||
sched_getscheduler (only supports SCHED_OTHER)
|
sched_getscheduler (only supports SCHED_OTHER)
|
||||||
sched_yield
|
sched_yield
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Signals
|
Signals
|
||||||
---------------------------
|
---------------------------
|
||||||
pthread_sigmask
|
pthread_sigmask
|
||||||
pthread_kill (only supports zero sig value,
|
pthread_kill (only supports zero sig value,
|
||||||
for thread validity checking)
|
for thread validity checking)
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Non-portable routines (see the README.NONPORTABLE file for usage)
|
Non-portable routines (see the README.NONPORTABLE file for usage)
|
||||||
---------------------------
|
---------------------------
|
||||||
pthread_getw32threadhandle_np
|
pthread_getw32threadhandle_np
|
||||||
pthread_timechange_handler_np
|
pthread_timechange_handler_np
|
||||||
pthread_delay_np
|
pthread_delay_np
|
||||||
pthread_mutexattr_getkind_np
|
pthread_mutexattr_getkind_np
|
||||||
pthread_mutexattr_setkind_np (types: PTHREAD_MUTEX_FAST_NP,
|
pthread_mutexattr_setkind_np (types: PTHREAD_MUTEX_FAST_NP,
|
||||||
PTHREAD_MUTEX_ERRORCHECK_NP,
|
PTHREAD_MUTEX_ERRORCHECK_NP,
|
||||||
PTHREAD_MUTEX_RECURSIVE_NP,
|
PTHREAD_MUTEX_RECURSIVE_NP,
|
||||||
PTHREAD_MUTEX_ADAPTIVE_NP,
|
PTHREAD_MUTEX_ADAPTIVE_NP,
|
||||||
PTHREAD_MUTEX_TIMED_NP)
|
PTHREAD_MUTEX_TIMED_NP)
|
||||||
pthread_num_processors_np
|
pthread_num_processors_np
|
||||||
pthread_win32_process_attach_np (Required when statically linking
|
pthread_win32_process_attach_np (Required when statically linking
|
||||||
the library)
|
the library)
|
||||||
pthread_win32_process_detach_np (Required when statically linking
|
pthread_win32_process_detach_np (Required when statically linking
|
||||||
the library)
|
the library)
|
||||||
pthread_win32_thread_attach_np (Required when statically linking
|
pthread_win32_thread_attach_np (Required when statically linking
|
||||||
the library)
|
the library)
|
||||||
pthread_win32_thread_detach_np (Required when statically linking
|
pthread_win32_thread_detach_np (Required when statically linking
|
||||||
the library)
|
the library)
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Static Initializers
|
Static Initializers
|
||||||
---------------------------
|
---------------------------
|
||||||
PTHREAD_ONCE_INIT
|
PTHREAD_ONCE_INIT
|
||||||
PTHREAD_MUTEX_INITIALIZER
|
PTHREAD_MUTEX_INITIALIZER
|
||||||
PTHREAD_RECURSIVE_MUTEX_INITIALIZER
|
PTHREAD_RECURSIVE_MUTEX_INITIALIZER
|
||||||
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
|
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
|
||||||
PTHREAD_ERRORCHECK_MUTEX_INITIALIZER
|
PTHREAD_ERRORCHECK_MUTEX_INITIALIZER
|
||||||
PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
|
PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
|
||||||
PTHREAD_COND_INITIALIZER
|
PTHREAD_COND_INITIALIZER
|
||||||
PTHREAD_RWLOCK_INITIALIZER
|
PTHREAD_RWLOCK_INITIALIZER
|
||||||
PTHREAD_SPINLOCK_INITIALIZER
|
PTHREAD_SPINLOCK_INITIALIZER
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Thread-Safe C Runtime Library (macros)
|
Thread-Safe C Runtime Library (macros)
|
||||||
---------------------------
|
---------------------------
|
||||||
strtok_r
|
strtok_r
|
||||||
asctime_r
|
asctime_r
|
||||||
ctime_r
|
ctime_r
|
||||||
gmtime_r
|
gmtime_r
|
||||||
localtime_r
|
localtime_r
|
||||||
rand_r
|
rand_r
|
||||||
|
|
||||||
|
|
||||||
The following functions are not implemented:
|
The following functions are not implemented:
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
RealTime Scheduling
|
RealTime Scheduling
|
||||||
---------------------------
|
---------------------------
|
||||||
pthread_mutex_getprioceiling
|
pthread_mutex_getprioceiling
|
||||||
pthread_mutex_setprioceiling
|
pthread_mutex_setprioceiling
|
||||||
pthread_mutex_attr_getprioceiling
|
pthread_mutex_attr_getprioceiling
|
||||||
pthread_mutex_attr_getprotocol
|
pthread_mutex_attr_getprotocol
|
||||||
pthread_mutex_attr_setprioceiling
|
pthread_mutex_attr_setprioceiling
|
||||||
pthread_mutex_attr_setprotocol
|
pthread_mutex_attr_setprotocol
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Fork Handlers
|
Fork Handlers
|
||||||
---------------------------
|
---------------------------
|
||||||
pthread_atfork
|
pthread_atfork
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Stdio
|
Stdio
|
||||||
---------------------------
|
---------------------------
|
||||||
flockfile
|
flockfile
|
||||||
ftrylockfile
|
ftrylockfile
|
||||||
funlockfile
|
funlockfile
|
||||||
getc_unlocked
|
getc_unlocked
|
||||||
getchar_unlocked
|
getchar_unlocked
|
||||||
putc_unlocked
|
putc_unlocked
|
||||||
putchar_unlocked
|
putchar_unlocked
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Thread-Safe C Runtime Library
|
Thread-Safe C Runtime Library
|
||||||
---------------------------
|
---------------------------
|
||||||
readdir_r
|
readdir_r
|
||||||
getgrgid_r
|
getgrgid_r
|
||||||
getgrnam_r
|
getgrnam_r
|
||||||
getpwuid_r
|
getpwuid_r
|
||||||
getpwnam_r
|
getpwnam_r
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Signals
|
Signals
|
||||||
---------------------------
|
---------------------------
|
||||||
sigtimedwait
|
sigtimedwait
|
||||||
sigwait
|
sigwait
|
||||||
sigwaitinfo
|
sigwaitinfo
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
General
|
General
|
||||||
---------------------------
|
---------------------------
|
||||||
sysconf
|
sysconf
|
||||||
|
|
||||||
The library includes two non-API functions for creating cancellation
|
The library includes two non-API functions for creating cancellation
|
||||||
points in applications and libraries:
|
points in applications and libraries:
|
||||||
|
|
||||||
pthreadCancelableWait
|
pthreadCancelableWait
|
||||||
pthreadCancelableTimedWait
|
pthreadCancelableTimedWait
|
||||||
|
|
||||||
|
|
||||||
Availability
|
Availability
|
||||||
------------
|
------------
|
||||||
|
|
||||||
The prebuilt DLL, export libs (for both MSVC and Mingw32), and the header
|
The prebuilt DLL, export libs (for both MSVC and Mingw32), and the header
|
||||||
files (pthread.h, semaphore.h, sched.h) are available along with the
|
files (pthread.h, semaphore.h, sched.h) are available along with the
|
||||||
complete source code.
|
complete source code.
|
||||||
|
|
||||||
The source code can be found at:
|
The source code can be found at:
|
||||||
|
|
||||||
ftp://sources.redhat.com/pub/pthreads-win32
|
ftp://sources.redhat.com/pub/pthreads-win32
|
||||||
|
|
||||||
and as individual source code files at
|
and as individual source code files at
|
||||||
|
|
||||||
ftp://sources.redhat.com/pub/pthreads-win32/source
|
ftp://sources.redhat.com/pub/pthreads-win32/source
|
||||||
|
|
||||||
The pre-built DLL, export libraries and include files can be found at:
|
The pre-built DLL, export libraries and include files can be found at:
|
||||||
|
|
||||||
ftp://sources.redhat.com/pub/pthreads-win32/dll-latest
|
ftp://sources.redhat.com/pub/pthreads-win32/dll-latest
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Mailing List
|
Mailing List
|
||||||
------------
|
------------
|
||||||
|
|
||||||
There is a mailing list for discussing pthreads on Win32. To join,
|
There is a mailing list for discussing pthreads on Win32. To join,
|
||||||
send email to:
|
send email to:
|
||||||
|
|
||||||
pthreads-win32-subscribe@sourceware.cygnus.com
|
pthreads-win32-subscribe@sourceware.cygnus.com
|
||||||
|
|
||||||
|
|
||||||
Application Development Environments
|
Application Development Environments
|
||||||
------------------------------------
|
------------------------------------
|
||||||
|
|
||||||
See the README file for more information.
|
See the README file for more information.
|
||||||
|
|
||||||
MSVC:
|
MSVC:
|
||||||
MSVC using SEH works. Distribute pthreadVSE.dll with your application.
|
MSVC using SEH works. Distribute pthreadVSE.dll with your application.
|
||||||
MSVC using C++ EH works. Distribute pthreadVCE.dll with your application.
|
MSVC using C++ EH works. Distribute pthreadVCE.dll with your application.
|
||||||
MSVC using C setjmp/longjmp works. Distribute pthreadVC.dll with your application.
|
MSVC using C setjmp/longjmp works. Distribute pthreadVC.dll with your application.
|
||||||
|
|
||||||
|
|
||||||
Mingw32:
|
Mingw32:
|
||||||
See the FAQ, Questions 6 and 10.
|
See the FAQ, Questions 6 and 10.
|
||||||
|
|
||||||
Mingw using C++ EH works. Distribute pthreadGCE.dll with your application.
|
Mingw using C++ EH works. Distribute pthreadGCE.dll with your application.
|
||||||
Mingw using C setjmp/longjmp works. Distribute pthreadGC.dll with your application.
|
Mingw using C setjmp/longjmp works. Distribute pthreadGC.dll with your application.
|
||||||
|
|
||||||
|
|
||||||
Cygwin: (http://sourceware.cygnus.com/cygwin/)
|
Cygwin: (http://sourceware.cygnus.com/cygwin/)
|
||||||
Developers using Cygwin will not need pthreads-win32 since it has POSIX threads
|
Developers using Cygwin will not need pthreads-win32 since it has POSIX threads
|
||||||
support. Refer to its documentation for details and extent.
|
support. Refer to its documentation for details and extent.
|
||||||
|
|
||||||
|
|
||||||
UWIN:
|
UWIN:
|
||||||
UWIN is a complete Unix-like environment for Windows from AT&T. Pthreads-win32
|
UWIN is a complete Unix-like environment for Windows from AT&T. Pthreads-win32
|
||||||
doesn't currently support UWIN (and vice versa), but that may change in the
|
doesn't currently support UWIN (and vice versa), but that may change in the
|
||||||
future.
|
future.
|
||||||
|
|
||||||
Generally:
|
Generally:
|
||||||
For convenience, the following pre-built files are available on the FTP site
|
For convenience, the following pre-built files are available on the FTP site
|
||||||
(see Availability above):
|
(see Availability above):
|
||||||
|
|
||||||
pthread.h - for POSIX 1c threads
|
pthread.h - for POSIX 1c threads
|
||||||
semaphore.h - for POSIX 1b semaphores
|
semaphore.h - for POSIX 1b semaphores
|
||||||
sched.h - for POSIX 1b scheduling
|
sched.h - for POSIX 1b scheduling
|
||||||
pthreadVCE.dll - built with MSVC++ compiler using C++ EH
|
pthreadVCE.dll - built with MSVC++ compiler using C++ EH
|
||||||
pthreadVCE.lib
|
pthreadVCE.lib
|
||||||
pthreadVC.dll - built with MSVC compiler using C setjmp/longjmp
|
pthreadVC.dll - built with MSVC compiler using C setjmp/longjmp
|
||||||
pthreadVC.lib
|
pthreadVC.lib
|
||||||
pthreadVSE.dll - built with MSVC compiler using SEH
|
pthreadVSE.dll - built with MSVC compiler using SEH
|
||||||
pthreadVSE.lib
|
pthreadVSE.lib
|
||||||
pthreadGCE.dll - built with Mingw32 G++ 2.95.2-1
|
pthreadGCE.dll - built with Mingw32 G++ 2.95.2-1
|
||||||
pthreadGC.dll - built with Mingw32 GCC 2.95.2-1 using setjmp/longjmp
|
pthreadGC.dll - built with Mingw32 GCC 2.95.2-1 using setjmp/longjmp
|
||||||
libpthreadGCE.a - derived from pthreadGCE.dll
|
libpthreadGCE.a - derived from pthreadGCE.dll
|
||||||
libpthreadGC.a - derived from pthreadGC.dll
|
libpthreadGC.a - derived from pthreadGC.dll
|
||||||
gcc.dll - needed if distributing applications that use
|
gcc.dll - needed if distributing applications that use
|
||||||
pthreadGCE.dll (but see the FAQ Q 10 for the latest
|
pthreadGCE.dll (but see the FAQ Q 10 for the latest
|
||||||
related information)
|
related information)
|
||||||
|
|
||||||
These are the only files you need in order to build POSIX threads
|
These are the only files you need in order to build POSIX threads
|
||||||
applications for Win32 using either MSVC or Mingw32.
|
applications for Win32 using either MSVC or Mingw32.
|
||||||
|
|
||||||
See the FAQ file in the source tree for additional information.
|
See the FAQ file in the source tree for additional information.
|
||||||
|
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
For the authoritative reference, see the online POSIX
|
For the authoritative reference, see the online POSIX
|
||||||
standard reference at:
|
standard reference at:
|
||||||
|
|
||||||
http://www.OpenGroup.org
|
http://www.OpenGroup.org
|
||||||
|
|
||||||
For POSIX Thread API programming, several reference books are
|
For POSIX Thread API programming, several reference books are
|
||||||
available:
|
available:
|
||||||
|
|
||||||
Programming with POSIX Threads
|
Programming with POSIX Threads
|
||||||
David R. Butenhof
|
David R. Butenhof
|
||||||
Addison-Wesley (pub)
|
Addison-Wesley (pub)
|
||||||
|
|
||||||
Pthreads Programming
|
Pthreads Programming
|
||||||
By Bradford Nichols, Dick Buttlar & Jacqueline Proulx Farrell
|
By Bradford Nichols, Dick Buttlar & Jacqueline Proulx Farrell
|
||||||
O'Reilly (pub)
|
O'Reilly (pub)
|
||||||
|
|
||||||
On the web: see the links at the bottom of the pthreads-win32 site:
|
On the web: see the links at the bottom of the pthreads-win32 site:
|
||||||
|
|
||||||
http://sources.redhat.com/pthreads-win32/
|
http://sources.redhat.com/pthreads-win32/
|
||||||
|
|
||||||
Currently, there is no documentation included in the package apart
|
Currently, there is no documentation included in the package apart
|
||||||
from the copious comments in the source code.
|
from the copious comments in the source code.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Enjoy!
|
Enjoy!
|
||||||
|
|
||||||
Ross Johnson
|
Ross Johnson
|
||||||
|
|
|
@ -1,133 +1,133 @@
|
||||||
----------
|
----------
|
||||||
Known bugs
|
Known bugs
|
||||||
----------
|
----------
|
||||||
|
|
||||||
1. Not strictly a bug, more of a gotcha.
|
1. Not strictly a bug, more of a gotcha.
|
||||||
|
|
||||||
Under MS VC++ (only tested with version 6.0), a term_func
|
Under MS VC++ (only tested with version 6.0), a term_func
|
||||||
set via the standard C++ set_terminate() function causes the
|
set via the standard C++ set_terminate() function causes the
|
||||||
application to abort.
|
application to abort.
|
||||||
|
|
||||||
Notes from the MSVC++ manual:
|
Notes from the MSVC++ manual:
|
||||||
1) A term_func() should call exit(), otherwise
|
1) A term_func() should call exit(), otherwise
|
||||||
abort() will be called on return to the caller.
|
abort() will be called on return to the caller.
|
||||||
A call to abort() raises SIGABRT and the default signal handler
|
A call to abort() raises SIGABRT and the default signal handler
|
||||||
for all signals terminates the calling program with
|
for all signals terminates the calling program with
|
||||||
exit code 3.
|
exit code 3.
|
||||||
2) A term_func() must not throw an exception. Therefore
|
2) A term_func() must not throw an exception. Therefore
|
||||||
term_func() should not call pthread_exit(), which
|
term_func() should not call pthread_exit(), which
|
||||||
works by throwing an exception (pthreadVCE or pthreadVSE)
|
works by throwing an exception (pthreadVCE or pthreadVSE)
|
||||||
or by calling longjmp (pthreadVC).
|
or by calling longjmp (pthreadVC).
|
||||||
|
|
||||||
Workaround: avoid using pthread_exit() in C++ applications. Exit
|
Workaround: avoid using pthread_exit() in C++ applications. Exit
|
||||||
threads by dropping through the end of the thread routine.
|
threads by dropping through the end of the thread routine.
|
||||||
|
|
||||||
2. Cancellation problems in optimised code
|
2. Cancellation problems in optimised code
|
||||||
- Milan Gardian
|
- Milan Gardian
|
||||||
|
|
||||||
This is suspected to be a compiler bug in VC6.0, and also seen in
|
This is suspected to be a compiler bug in VC6.0, and also seen in
|
||||||
VC7.0 and VS .NET 2003. The GNU C++ compiler does not have a problem
|
VC7.0 and VS .NET 2003. The GNU C++ compiler does not have a problem
|
||||||
with this, and it has been reported that the Intel C++ 8.1 compiler
|
with this, and it has been reported that the Intel C++ 8.1 compiler
|
||||||
and Visual C++ 2005 Express Edition Beta2 pass tests\semaphore4.c
|
and Visual C++ 2005 Express Edition Beta2 pass tests\semaphore4.c
|
||||||
(which exposes the bug).
|
(which exposes the bug).
|
||||||
|
|
||||||
Workaround [rpj - 2 Feb 2002]
|
Workaround [rpj - 2 Feb 2002]
|
||||||
-----------------------------
|
-----------------------------
|
||||||
[Please note: this workaround did not solve a similar problem in
|
[Please note: this workaround did not solve a similar problem in
|
||||||
snapshot-2004-11-03 or later, even though similar symptoms were seen.
|
snapshot-2004-11-03 or later, even though similar symptoms were seen.
|
||||||
tests\semaphore4.c fails in that snapshot for the VCE version of the
|
tests\semaphore4.c fails in that snapshot for the VCE version of the
|
||||||
DLL.]
|
DLL.]
|
||||||
|
|
||||||
The problem disappears when /Ob0 is used, i.e. /O2 /Ob0 works OK,
|
The problem disappears when /Ob0 is used, i.e. /O2 /Ob0 works OK,
|
||||||
but if you want to use inlining optimisation you can be much more
|
but if you want to use inlining optimisation you can be much more
|
||||||
specific about where it's switched off and on by using a pragma.
|
specific about where it's switched off and on by using a pragma.
|
||||||
|
|
||||||
So the inlining optimisation is interfering with the way that cleanup
|
So the inlining optimisation is interfering with the way that cleanup
|
||||||
handlers are run. It appears to relate to auto-inlining of class methods
|
handlers are run. It appears to relate to auto-inlining of class methods
|
||||||
since this is the only auto inlining that is performed at /O1 optimisation
|
since this is the only auto inlining that is performed at /O1 optimisation
|
||||||
(functions with the "inline" qualifier are also inlined, but the problem
|
(functions with the "inline" qualifier are also inlined, but the problem
|
||||||
doesn't appear to involve any such functions in the library or testsuite).
|
doesn't appear to involve any such functions in the library or testsuite).
|
||||||
|
|
||||||
In order to confirm the inlining culprit, the following use of pragmas
|
In order to confirm the inlining culprit, the following use of pragmas
|
||||||
eliminate the problem but I don't know how to make it transparent, putting
|
eliminate the problem but I don't know how to make it transparent, putting
|
||||||
it in, say, pthread.h where pthread_cleanup_push defined as a macro.
|
it in, say, pthread.h where pthread_cleanup_push defined as a macro.
|
||||||
|
|
||||||
#pragma inline_depth(0)
|
#pragma inline_depth(0)
|
||||||
pthread_cleanup_push(handlerFunc, (void *) &arg);
|
pthread_cleanup_push(handlerFunc, (void *) &arg);
|
||||||
|
|
||||||
/* ... */
|
/* ... */
|
||||||
|
|
||||||
pthread_cleanup_pop(0);
|
pthread_cleanup_pop(0);
|
||||||
#pragma inline_depth()
|
#pragma inline_depth()
|
||||||
|
|
||||||
Note the empty () pragma value after the pop macro. This resets depth to the
|
Note the empty () pragma value after the pop macro. This resets depth to the
|
||||||
default. Or you can specify a non-zero depth here.
|
default. Or you can specify a non-zero depth here.
|
||||||
|
|
||||||
The pragma is also needed (and now used) within the library itself wherever
|
The pragma is also needed (and now used) within the library itself wherever
|
||||||
cleanup handlers are used (condvar.c and rwlock.c).
|
cleanup handlers are used (condvar.c and rwlock.c).
|
||||||
|
|
||||||
Use of these pragmas allows compiler optimisations /O1 and /O2 to be
|
Use of these pragmas allows compiler optimisations /O1 and /O2 to be
|
||||||
used for either or both the library and applications.
|
used for either or both the library and applications.
|
||||||
|
|
||||||
Experimenting further, I found that wrapping the actual cleanup handler
|
Experimenting further, I found that wrapping the actual cleanup handler
|
||||||
function with #pragma auto_inline(off|on) does NOT work.
|
function with #pragma auto_inline(off|on) does NOT work.
|
||||||
|
|
||||||
MSVC6.0 doesn't appear to support the C99 standard's _Pragma directive,
|
MSVC6.0 doesn't appear to support the C99 standard's _Pragma directive,
|
||||||
however, later versions may. This form is embeddable inside #define
|
however, later versions may. This form is embeddable inside #define
|
||||||
macros, which would be ideal because it would mean that it could be added
|
macros, which would be ideal because it would mean that it could be added
|
||||||
to the push/pop macro definitions in pthread.h and hidden from the
|
to the push/pop macro definitions in pthread.h and hidden from the
|
||||||
application programmer.
|
application programmer.
|
||||||
|
|
||||||
[/rpj]
|
[/rpj]
|
||||||
|
|
||||||
Original problem description
|
Original problem description
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
The cancellation (actually, cleanup-after-cancel) tests fail when using VC
|
The cancellation (actually, cleanup-after-cancel) tests fail when using VC
|
||||||
(professional) optimisation switches (/O1 or /O2) in pthreads library. I
|
(professional) optimisation switches (/O1 or /O2) in pthreads library. I
|
||||||
have not investigated which concrete optimisation technique causes this
|
have not investigated which concrete optimisation technique causes this
|
||||||
problem (/Og, /Oi, /Ot, /Oy, /Ob1, /Gs, /Gf, /Gy, etc.), but here is a
|
problem (/Og, /Oi, /Ot, /Oy, /Ob1, /Gs, /Gf, /Gy, etc.), but here is a
|
||||||
summary of builds and corresponding failures:
|
summary of builds and corresponding failures:
|
||||||
|
|
||||||
* pthreads VSE (optimised tests): OK
|
* pthreads VSE (optimised tests): OK
|
||||||
* pthreads VCE (optimised tests): Failed "cleanup1" test (runtime)
|
* pthreads VCE (optimised tests): Failed "cleanup1" test (runtime)
|
||||||
|
|
||||||
* pthreads VSE (DLL in CRT, optimised tests): OK
|
* pthreads VSE (DLL in CRT, optimised tests): OK
|
||||||
* pthreads VCE (DLL in CRT, optimised tests): Failed "cleanup1" test
|
* pthreads VCE (DLL in CRT, optimised tests): Failed "cleanup1" test
|
||||||
(runtime)
|
(runtime)
|
||||||
|
|
||||||
Please note that while in VSE version of the pthreads library the
|
Please note that while in VSE version of the pthreads library the
|
||||||
optimisation does not really have any impact on the tests (they pass OK), in
|
optimisation does not really have any impact on the tests (they pass OK), in
|
||||||
VCE version addition of optimisation (/O2 in this case) causes the tests to
|
VCE version addition of optimisation (/O2 in this case) causes the tests to
|
||||||
fail uniformly - either in "cleanup0" or "cleanup1" test cases.
|
fail uniformly - either in "cleanup0" or "cleanup1" test cases.
|
||||||
|
|
||||||
Please note that all the tests above use default pthreads DLL (no
|
Please note that all the tests above use default pthreads DLL (no
|
||||||
optimisations, linked with either static or DLL CRT, based on test type).
|
optimisations, linked with either static or DLL CRT, based on test type).
|
||||||
Therefore the problem lies not within the pthreads DLL but within the
|
Therefore the problem lies not within the pthreads DLL but within the
|
||||||
compiled client code (the application using pthreads -> involvement of
|
compiled client code (the application using pthreads -> involvement of
|
||||||
"pthread.h").
|
"pthread.h").
|
||||||
|
|
||||||
I think the message of this section is that usage of VCE version of pthreads
|
I think the message of this section is that usage of VCE version of pthreads
|
||||||
in applications relying on cancellation/cleanup AND using optimisations for
|
in applications relying on cancellation/cleanup AND using optimisations for
|
||||||
creation of production code is highly unreliable for the current version of
|
creation of production code is highly unreliable for the current version of
|
||||||
the pthreads library.
|
the pthreads library.
|
||||||
|
|
||||||
3. The Borland Builder 5.5 version of the library produces memory read exceptions
|
3. The Borland Builder 5.5 version of the library produces memory read exceptions
|
||||||
in some tests.
|
in some tests.
|
||||||
|
|
||||||
4. pthread_barrier_wait() can deadlock if the number of potential calling
|
4. pthread_barrier_wait() can deadlock if the number of potential calling
|
||||||
threads for a particular barrier is greater than the barrier count parameter
|
threads for a particular barrier is greater than the barrier count parameter
|
||||||
given to pthread_barrier_init() for that barrier.
|
given to pthread_barrier_init() for that barrier.
|
||||||
|
|
||||||
This is due to the very lightweight implementation of pthread-win32 barriers.
|
This is due to the very lightweight implementation of pthread-win32 barriers.
|
||||||
To cope with more than "count" possible waiters, barriers must effectively
|
To cope with more than "count" possible waiters, barriers must effectively
|
||||||
implement all the same safeguards as condition variables, making them much
|
implement all the same safeguards as condition variables, making them much
|
||||||
"heavier" than at present.
|
"heavier" than at present.
|
||||||
|
|
||||||
The workaround is to ensure that no more than "count" threads attempt to wait
|
The workaround is to ensure that no more than "count" threads attempt to wait
|
||||||
at the barrier.
|
at the barrier.
|
||||||
|
|
||||||
5. Canceling a thread blocked on pthread_once appears not to work in the MSVC++
|
5. Canceling a thread blocked on pthread_once appears not to work in the MSVC++
|
||||||
version of the library "pthreadVCE.dll". The test case "once3.c" hangs. I have no
|
version of the library "pthreadVCE.dll". The test case "once3.c" hangs. I have no
|
||||||
clues on this at present. All other versions pass this test ok - pthreadsVC.dll,
|
clues on this at present. All other versions pass this test ok - pthreadsVC.dll,
|
||||||
pthreadsVSE.dll, pthreadsGC.dll and pthreadsGCE.dll.
|
pthreadsVSE.dll, pthreadsGC.dll and pthreadsGCE.dll.
|
||||||
|
|
|
@ -1,129 +1,129 @@
|
||||||
Contributors (in approximate order of appearance)
|
Contributors (in approximate order of appearance)
|
||||||
|
|
||||||
[See also the ChangeLog file where individuals are
|
[See also the ChangeLog file where individuals are
|
||||||
attributed in log entries. Likewise in the FAQ file.]
|
attributed in log entries. Likewise in the FAQ file.]
|
||||||
|
|
||||||
Ben Elliston bje at cygnus dot com
|
Ben Elliston bje at cygnus dot com
|
||||||
Initiated the project;
|
Initiated the project;
|
||||||
setup the project infrastructure (CVS, web page, etc.);
|
setup the project infrastructure (CVS, web page, etc.);
|
||||||
early prototype routines.
|
early prototype routines.
|
||||||
Ross Johnson rpj at callisto dot canberra dot edu dot au
|
Ross Johnson rpj at callisto dot canberra dot edu dot au
|
||||||
early prototype routines;
|
early prototype routines;
|
||||||
ongoing project coordination/maintenance;
|
ongoing project coordination/maintenance;
|
||||||
implementation of spin locks and barriers;
|
implementation of spin locks and barriers;
|
||||||
various enhancements;
|
various enhancements;
|
||||||
bug fixes;
|
bug fixes;
|
||||||
documentation;
|
documentation;
|
||||||
testsuite.
|
testsuite.
|
||||||
Robert Colquhoun rjc at trump dot net dot au
|
Robert Colquhoun rjc at trump dot net dot au
|
||||||
Early bug fixes.
|
Early bug fixes.
|
||||||
John E. Bossom John dot Bossom at cognos dot com
|
John E. Bossom John dot Bossom at cognos dot com
|
||||||
Contributed substantial original working implementation;
|
Contributed substantial original working implementation;
|
||||||
bug fixes;
|
bug fixes;
|
||||||
ongoing guidance and standards interpretation.
|
ongoing guidance and standards interpretation.
|
||||||
Anders Norlander anorland at hem2 dot passagen dot se
|
Anders Norlander anorland at hem2 dot passagen dot se
|
||||||
Early enhancements and runtime checking for supported
|
Early enhancements and runtime checking for supported
|
||||||
Win32 routines.
|
Win32 routines.
|
||||||
Tor Lillqvist tml at iki dot fi
|
Tor Lillqvist tml at iki dot fi
|
||||||
General enhancements;
|
General enhancements;
|
||||||
early bug fixes to condition variables.
|
early bug fixes to condition variables.
|
||||||
Scott Lightner scott at curriculum dot com
|
Scott Lightner scott at curriculum dot com
|
||||||
Bug fix.
|
Bug fix.
|
||||||
Kevin Ruland Kevin dot Ruland at anheuser-busch dot com
|
Kevin Ruland Kevin dot Ruland at anheuser-busch dot com
|
||||||
Various bug fixes.
|
Various bug fixes.
|
||||||
Mike Russo miker at eai dot com
|
Mike Russo miker at eai dot com
|
||||||
Bug fix.
|
Bug fix.
|
||||||
Mark E. Armstrong avail at pacbell dot net
|
Mark E. Armstrong avail at pacbell dot net
|
||||||
Bug fixes.
|
Bug fixes.
|
||||||
Lorin Hochstein lmh at xiphos dot ca
|
Lorin Hochstein lmh at xiphos dot ca
|
||||||
general bug fixes; bug fixes to condition variables.
|
general bug fixes; bug fixes to condition variables.
|
||||||
Peter Slacik Peter dot Slacik at tatramed dot sk
|
Peter Slacik Peter dot Slacik at tatramed dot sk
|
||||||
Bug fixes.
|
Bug fixes.
|
||||||
Mumit Khan khan at xraylith dot wisc dot edu
|
Mumit Khan khan at xraylith dot wisc dot edu
|
||||||
Fixes to work with Mingw32.
|
Fixes to work with Mingw32.
|
||||||
Milan Gardian mg at tatramed dot sk
|
Milan Gardian mg at tatramed dot sk
|
||||||
Bug fixes and reports/analyses of obscure problems.
|
Bug fixes and reports/analyses of obscure problems.
|
||||||
Aurelio Medina aureliom at crt dot com
|
Aurelio Medina aureliom at crt dot com
|
||||||
First implementation of read-write locks.
|
First implementation of read-write locks.
|
||||||
Graham Dumpleton Graham dot Dumpleton at ra dot pad dot otc dot telstra dot com dot au
|
Graham Dumpleton Graham dot Dumpleton at ra dot pad dot otc dot telstra dot com dot au
|
||||||
Bug fix in condition variables.
|
Bug fix in condition variables.
|
||||||
Tristan Savatier tristan at mpegtv dot com
|
Tristan Savatier tristan at mpegtv dot com
|
||||||
WinCE port.
|
WinCE port.
|
||||||
Erik Hensema erik at hensema dot xs4all dot nl
|
Erik Hensema erik at hensema dot xs4all dot nl
|
||||||
Bug fixes.
|
Bug fixes.
|
||||||
Rich Peters rpeters at micro-magic dot com
|
Rich Peters rpeters at micro-magic dot com
|
||||||
Todd Owen towen at lucidcalm dot dropbear dot id dot au
|
Todd Owen towen at lucidcalm dot dropbear dot id dot au
|
||||||
Bug fixes to dll loading.
|
Bug fixes to dll loading.
|
||||||
Jason Nye jnye at nbnet dot nb dot ca
|
Jason Nye jnye at nbnet dot nb dot ca
|
||||||
Implementation of async cancelation.
|
Implementation of async cancelation.
|
||||||
Fred Forester fforest at eticomm dot net
|
Fred Forester fforest at eticomm dot net
|
||||||
Kevin D. Clark kclark at cabletron dot com
|
Kevin D. Clark kclark at cabletron dot com
|
||||||
David Baggett dmb at itasoftware dot com
|
David Baggett dmb at itasoftware dot com
|
||||||
Bug fixes.
|
Bug fixes.
|
||||||
Paul Redondo paul at matchvision dot com
|
Paul Redondo paul at matchvision dot com
|
||||||
Scott McCaskill scott at 3dfx dot com
|
Scott McCaskill scott at 3dfx dot com
|
||||||
Bug fixes.
|
Bug fixes.
|
||||||
Jef Gearhart jgearhart at tpssys dot com
|
Jef Gearhart jgearhart at tpssys dot com
|
||||||
Bug fix.
|
Bug fix.
|
||||||
Arthur Kantor akantor at bexusa dot com
|
Arthur Kantor akantor at bexusa dot com
|
||||||
Mutex enhancements.
|
Mutex enhancements.
|
||||||
Steven Reddie smr at essemer dot com dot au
|
Steven Reddie smr at essemer dot com dot au
|
||||||
Bug fix.
|
Bug fix.
|
||||||
Alexander Terekhov TEREKHOV at de dot ibm dot com
|
Alexander Terekhov TEREKHOV at de dot ibm dot com
|
||||||
Re-implemented and improved read-write locks;
|
Re-implemented and improved read-write locks;
|
||||||
(with Louis Thomas) re-implemented and improved
|
(with Louis Thomas) re-implemented and improved
|
||||||
condition variables;
|
condition variables;
|
||||||
enhancements to semaphores;
|
enhancements to semaphores;
|
||||||
enhancements to mutexes;
|
enhancements to mutexes;
|
||||||
new mutex implementation in 'futex' style;
|
new mutex implementation in 'futex' style;
|
||||||
suggested a robust implementation of pthread_once
|
suggested a robust implementation of pthread_once
|
||||||
similar to that implemented by V.Kliathcko;
|
similar to that implemented by V.Kliathcko;
|
||||||
system clock change handling re CV timeouts;
|
system clock change handling re CV timeouts;
|
||||||
bug fixes.
|
bug fixes.
|
||||||
Thomas Pfaff tpfaff at gmx dot net
|
Thomas Pfaff tpfaff at gmx dot net
|
||||||
Changes to make C version usable with C++ applications;
|
Changes to make C version usable with C++ applications;
|
||||||
re-implemented mutex routines to avoid Win32 mutexes
|
re-implemented mutex routines to avoid Win32 mutexes
|
||||||
and TryEnterCriticalSection;
|
and TryEnterCriticalSection;
|
||||||
procedure to fix Mingw32 thread-safety issues.
|
procedure to fix Mingw32 thread-safety issues.
|
||||||
Franco Bez franco dot bez at gmx dot de
|
Franco Bez franco dot bez at gmx dot de
|
||||||
procedure to fix Mingw32 thread-safety issues.
|
procedure to fix Mingw32 thread-safety issues.
|
||||||
Louis Thomas lthomas at arbitrade dot com
|
Louis Thomas lthomas at arbitrade dot com
|
||||||
(with Alexander Terekhov) re-implemented and improved
|
(with Alexander Terekhov) re-implemented and improved
|
||||||
condition variables.
|
condition variables.
|
||||||
David Korn dgk at research dot att dot com
|
David Korn dgk at research dot att dot com
|
||||||
Ported to UWIN.
|
Ported to UWIN.
|
||||||
Phil Frisbie, Jr. phil at hawksoft dot com
|
Phil Frisbie, Jr. phil at hawksoft dot com
|
||||||
Bug fix.
|
Bug fix.
|
||||||
Ralf Brese Ralf dot Brese at pdb4 dot siemens dot de
|
Ralf Brese Ralf dot Brese at pdb4 dot siemens dot de
|
||||||
Bug fix.
|
Bug fix.
|
||||||
prionx at juno dot com prionx at juno dot com
|
prionx at juno dot com prionx at juno dot com
|
||||||
Bug fixes.
|
Bug fixes.
|
||||||
Max Woodbury mtew at cds dot duke dot edu
|
Max Woodbury mtew at cds dot duke dot edu
|
||||||
POSIX versioning conditionals;
|
POSIX versioning conditionals;
|
||||||
reduced namespace pollution;
|
reduced namespace pollution;
|
||||||
idea to separate routines to reduce statically
|
idea to separate routines to reduce statically
|
||||||
linked image sizes.
|
linked image sizes.
|
||||||
Rob Fanner rfanner at stonethree dot com
|
Rob Fanner rfanner at stonethree dot com
|
||||||
Bug fix.
|
Bug fix.
|
||||||
Michael Johnson michaelj at maine dot rr dot com
|
Michael Johnson michaelj at maine dot rr dot com
|
||||||
Bug fix.
|
Bug fix.
|
||||||
Nicolas Barry boozai at yahoo dot com
|
Nicolas Barry boozai at yahoo dot com
|
||||||
Bug fixes.
|
Bug fixes.
|
||||||
Piet van Bruggen pietvb at newbridges dot nl
|
Piet van Bruggen pietvb at newbridges dot nl
|
||||||
Bug fix.
|
Bug fix.
|
||||||
Makoto Kato raven at oldskool dot jp
|
Makoto Kato raven at oldskool dot jp
|
||||||
AMD64 port.
|
AMD64 port.
|
||||||
Panagiotis E. Hadjidoukas peh at hpclab dot ceid dot upatras dot gr
|
Panagiotis E. Hadjidoukas peh at hpclab dot ceid dot upatras dot gr
|
||||||
Contributed the QueueUserAPCEx package which
|
Contributed the QueueUserAPCEx package which
|
||||||
makes preemptive async cancelation possible.
|
makes preemptive async cancelation possible.
|
||||||
Will Bryant will dot bryant at ecosm dot com
|
Will Bryant will dot bryant at ecosm dot com
|
||||||
Borland compiler patch and makefile.
|
Borland compiler patch and makefile.
|
||||||
Anuj Goyal anuj dot goyal at gmail dot com
|
Anuj Goyal anuj dot goyal at gmail dot com
|
||||||
Port to Digital Mars compiler.
|
Port to Digital Mars compiler.
|
||||||
Gottlob Frege gottlobfrege at gmail dot com
|
Gottlob Frege gottlobfrege at gmail dot com
|
||||||
re-implemented pthread_once (version 2)
|
re-implemented pthread_once (version 2)
|
||||||
(pthread_once cancellation added by rpj).
|
(pthread_once cancellation added by rpj).
|
||||||
Vladimir Kliatchko vladimir at kliatchko dot com
|
Vladimir Kliatchko vladimir at kliatchko dot com
|
||||||
reimplemented pthread_once with the same form
|
reimplemented pthread_once with the same form
|
||||||
as described by A.Terekhov (later version 2);
|
as described by A.Terekhov (later version 2);
|
||||||
implementation of MCS (Mellor-Crummey/Scott) locks.
|
implementation of MCS (Mellor-Crummey/Scott) locks.
|
||||||
|
|
|
@ -1,150 +1,150 @@
|
||||||
pthreads-win32 - a POSIX threads library for Microsoft Windows
|
pthreads-win32 - a POSIX threads library for Microsoft Windows
|
||||||
|
|
||||||
|
|
||||||
This file is Copyrighted
|
This file is Copyrighted
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
This file is covered under the following Copyright:
|
This file is covered under the following Copyright:
|
||||||
|
|
||||||
Copyright (C) 2001,2006 Ross P. Johnson
|
Copyright (C) 2001,2006 Ross P. Johnson
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
Pthreads-win32 is covered by the GNU Lesser General Public License
|
Pthreads-win32 is covered by the GNU Lesser General Public License
|
||||||
------------------------------------------------------------------
|
------------------------------------------------------------------
|
||||||
|
|
||||||
Pthreads-win32 is open software; you can redistribute it and/or
|
Pthreads-win32 is open software; you can redistribute it and/or
|
||||||
modify it under the terms of the GNU Lesser General Public License
|
modify it under the terms of the GNU Lesser General Public License
|
||||||
as published by the Free Software Foundation version 2.1 of the
|
as published by the Free Software Foundation version 2.1 of the
|
||||||
License.
|
License.
|
||||||
|
|
||||||
Pthreads-win32 is several binary link libraries, several modules,
|
Pthreads-win32 is several binary link libraries, several modules,
|
||||||
associated interface definition files and scripts used to control
|
associated interface definition files and scripts used to control
|
||||||
its compilation and installation.
|
its compilation and installation.
|
||||||
|
|
||||||
Pthreads-win32 is distributed in the hope that it will be useful,
|
Pthreads-win32 is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU Lesser General Public License for more details.
|
GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
A copy of the GNU Lesser General Public License is distributed with
|
A copy of the GNU Lesser General Public License is distributed with
|
||||||
pthreads-win32 under the filename:
|
pthreads-win32 under the filename:
|
||||||
|
|
||||||
COPYING.LIB
|
COPYING.LIB
|
||||||
|
|
||||||
You should have received a copy of the version 2.1 GNU Lesser General
|
You should have received a copy of the version 2.1 GNU Lesser General
|
||||||
Public License with pthreads-win32; if not, write to:
|
Public License with pthreads-win32; if not, write to:
|
||||||
|
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
59 Temple Place
|
59 Temple Place
|
||||||
Suite 330
|
Suite 330
|
||||||
Boston, MA 02111-1307
|
Boston, MA 02111-1307
|
||||||
USA
|
USA
|
||||||
|
|
||||||
The contact addresses for pthreads-win32 is as follows:
|
The contact addresses for pthreads-win32 is as follows:
|
||||||
|
|
||||||
Web: http://sources.redhat.com/pthreads-win32
|
Web: http://sources.redhat.com/pthreads-win32
|
||||||
Email: Ross Johnson
|
Email: Ross Johnson
|
||||||
Please use: Firstname.Lastname@homemail.com.au
|
Please use: Firstname.Lastname@homemail.com.au
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Pthreads-win32 copyrights and exception files
|
Pthreads-win32 copyrights and exception files
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
With the exception of the files listed below, Pthreads-win32
|
With the exception of the files listed below, Pthreads-win32
|
||||||
is covered under the following GNU Lesser General Public License
|
is covered under the following GNU Lesser General Public License
|
||||||
Copyrights:
|
Copyrights:
|
||||||
|
|
||||||
Pthreads-win32 - POSIX Threads Library for Win32
|
Pthreads-win32 - POSIX Threads Library for Win32
|
||||||
Copyright(C) 1998 John E. Bossom
|
Copyright(C) 1998 John E. Bossom
|
||||||
Copyright(C) 1999,2006 Pthreads-win32 contributors
|
Copyright(C) 1999,2006 Pthreads-win32 contributors
|
||||||
|
|
||||||
The current list of contributors is contained
|
The current list of contributors is contained
|
||||||
in the file CONTRIBUTORS included with the source
|
in the file CONTRIBUTORS included with the source
|
||||||
code distribution. The current list of CONTRIBUTORS
|
code distribution. The current list of CONTRIBUTORS
|
||||||
can also be seen at the following WWW location:
|
can also be seen at the following WWW location:
|
||||||
http://sources.redhat.com/pthreads-win32/contributors.html
|
http://sources.redhat.com/pthreads-win32/contributors.html
|
||||||
|
|
||||||
Contact Email: Ross Johnson
|
Contact Email: Ross Johnson
|
||||||
Please use: Firstname.Lastname@homemail.com.au
|
Please use: Firstname.Lastname@homemail.com.au
|
||||||
|
|
||||||
These files are not covered under one of the Copyrights listed above:
|
These files are not covered under one of the Copyrights listed above:
|
||||||
|
|
||||||
COPYING
|
COPYING
|
||||||
COPYING.LIB
|
COPYING.LIB
|
||||||
tests/rwlock7.c
|
tests/rwlock7.c
|
||||||
|
|
||||||
This file, COPYING, is distributed under the Copyright found at the
|
This file, COPYING, is distributed under the Copyright found at the
|
||||||
top of this file. It is important to note that you may distribute
|
top of this file. It is important to note that you may distribute
|
||||||
verbatim copies of this file but you may not modify this file.
|
verbatim copies of this file but you may not modify this file.
|
||||||
|
|
||||||
The file COPYING.LIB, which contains a copy of the version 2.1
|
The file COPYING.LIB, which contains a copy of the version 2.1
|
||||||
GNU Lesser General Public License, is itself copyrighted by the
|
GNU Lesser General Public License, is itself copyrighted by the
|
||||||
Free Software Foundation, Inc. Please note that the Free Software
|
Free Software Foundation, Inc. Please note that the Free Software
|
||||||
Foundation, Inc. does NOT have a copyright over Pthreads-win32,
|
Foundation, Inc. does NOT have a copyright over Pthreads-win32,
|
||||||
only the COPYING.LIB that is supplied with pthreads-win32.
|
only the COPYING.LIB that is supplied with pthreads-win32.
|
||||||
|
|
||||||
The file tests/rwlock7.c is derived from code written by
|
The file tests/rwlock7.c is derived from code written by
|
||||||
Dave Butenhof for his book 'Programming With POSIX(R) Threads'.
|
Dave Butenhof for his book 'Programming With POSIX(R) Threads'.
|
||||||
The original code was obtained by free download from his website
|
The original code was obtained by free download from his website
|
||||||
http://home.earthlink.net/~anneart/family/Threads/source.html
|
http://home.earthlink.net/~anneart/family/Threads/source.html
|
||||||
and did not contain a copyright or author notice. It is assumed to
|
and did not contain a copyright or author notice. It is assumed to
|
||||||
be freely distributable.
|
be freely distributable.
|
||||||
|
|
||||||
In all cases one may use and distribute these exception files freely.
|
In all cases one may use and distribute these exception files freely.
|
||||||
And because one may freely distribute the LGPL covered files, the
|
And because one may freely distribute the LGPL covered files, the
|
||||||
entire pthreads-win32 source may be freely used and distributed.
|
entire pthreads-win32 source may be freely used and distributed.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
General Copyleft and License info
|
General Copyleft and License info
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
For general information on Copylefts, see:
|
For general information on Copylefts, see:
|
||||||
|
|
||||||
http://www.gnu.org/copyleft/
|
http://www.gnu.org/copyleft/
|
||||||
|
|
||||||
For information on GNU Lesser General Public Licenses, see:
|
For information on GNU Lesser General Public Licenses, see:
|
||||||
|
|
||||||
http://www.gnu.org/copyleft/lesser.html
|
http://www.gnu.org/copyleft/lesser.html
|
||||||
http://www.gnu.org/copyleft/lesser.txt
|
http://www.gnu.org/copyleft/lesser.txt
|
||||||
|
|
||||||
|
|
||||||
Why pthreads-win32 did not use the GNU General Public License
|
Why pthreads-win32 did not use the GNU General Public License
|
||||||
-------------------------------------------------------------
|
-------------------------------------------------------------
|
||||||
|
|
||||||
The goal of the pthreads-win32 project has been to
|
The goal of the pthreads-win32 project has been to
|
||||||
provide a quality and complete implementation of the POSIX
|
provide a quality and complete implementation of the POSIX
|
||||||
threads API for Microsoft Windows within the limits imposed
|
threads API for Microsoft Windows within the limits imposed
|
||||||
by virtue of it being a stand-alone library and not
|
by virtue of it being a stand-alone library and not
|
||||||
linked directly to other POSIX compliant libraries. For
|
linked directly to other POSIX compliant libraries. For
|
||||||
example, some functions and features, such as those based
|
example, some functions and features, such as those based
|
||||||
on POSIX signals, are missing.
|
on POSIX signals, are missing.
|
||||||
|
|
||||||
Pthreads-win32 is a library, available in several different
|
Pthreads-win32 is a library, available in several different
|
||||||
versions depending on supported compilers, and may be used
|
versions depending on supported compilers, and may be used
|
||||||
as a dynamically linked module or a statically linked set of
|
as a dynamically linked module or a statically linked set of
|
||||||
binary modules. It is not an application on it's own.
|
binary modules. It is not an application on it's own.
|
||||||
|
|
||||||
It was fully intended that pthreads-win32 be usable with
|
It was fully intended that pthreads-win32 be usable with
|
||||||
commercial software not covered by either the GPL or the LGPL
|
commercial software not covered by either the GPL or the LGPL
|
||||||
licenses. Pthreads-win32 has many contributors to it's
|
licenses. Pthreads-win32 has many contributors to it's
|
||||||
code base, many of whom have done so because they have
|
code base, many of whom have done so because they have
|
||||||
used the library in commercial or proprietry software
|
used the library in commercial or proprietry software
|
||||||
projects.
|
projects.
|
||||||
|
|
||||||
Releasing pthreads-win32 under the LGPL ensures that the
|
Releasing pthreads-win32 under the LGPL ensures that the
|
||||||
library can be used widely, while at the same time ensures
|
library can be used widely, while at the same time ensures
|
||||||
that bug fixes and improvements to the pthreads-win32 code
|
that bug fixes and improvements to the pthreads-win32 code
|
||||||
itself is returned to benefit all current and future users
|
itself is returned to benefit all current and future users
|
||||||
of the library.
|
of the library.
|
||||||
|
|
||||||
Although pthreads-win32 makes it possible for applications
|
Although pthreads-win32 makes it possible for applications
|
||||||
that use POSIX threads to be ported to Win32 platforms, the
|
that use POSIX threads to be ported to Win32 platforms, the
|
||||||
broader goal of the project is to encourage the use of open
|
broader goal of the project is to encourage the use of open
|
||||||
standards, and in particular, to make it just a little easier
|
standards, and in particular, to make it just a little easier
|
||||||
for developers writing Win32 applications to consider
|
for developers writing Win32 applications to consider
|
||||||
widening the potential market for their products.
|
widening the potential market for their products.
|
||||||
|
|
|
@ -1,403 +1,403 @@
|
||||||
=========================================
|
=========================================
|
||||||
PTHREADS-WIN32 Frequently Asked Questions
|
PTHREADS-WIN32 Frequently Asked Questions
|
||||||
=========================================
|
=========================================
|
||||||
|
|
||||||
INDEX
|
INDEX
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Q 1 What is it?
|
Q 1 What is it?
|
||||||
|
|
||||||
Q 2 Which of the several dll versions do I use?
|
Q 2 Which of the several dll versions do I use?
|
||||||
or,
|
or,
|
||||||
What are all these pthread*.dll and pthread*.lib files?
|
What are all these pthread*.dll and pthread*.lib files?
|
||||||
|
|
||||||
Q 3 What is the library naming convention?
|
Q 3 What is the library naming convention?
|
||||||
|
|
||||||
Q 4 Cleanup code default style or: it used to work when I built
|
Q 4 Cleanup code default style or: it used to work when I built
|
||||||
the library myself, but now it doesn't - why?
|
the library myself, but now it doesn't - why?
|
||||||
|
|
||||||
Q 5 Why is the default library version now less exception-friendly?
|
Q 5 Why is the default library version now less exception-friendly?
|
||||||
|
|
||||||
Q 6 Should I use Cygwin or Mingw32 as a development environment?
|
Q 6 Should I use Cygwin or Mingw32 as a development environment?
|
||||||
|
|
||||||
Q 7 Now that pthreads-win32 builds under Mingw32, why do I get
|
Q 7 Now that pthreads-win32 builds under Mingw32, why do I get
|
||||||
memory access violations (segfaults)?
|
memory access violations (segfaults)?
|
||||||
|
|
||||||
Q 8 How do I use pthread.dll for Win32 (Visual C++ 5.0)
|
Q 8 How do I use pthread.dll for Win32 (Visual C++ 5.0)
|
||||||
|
|
||||||
Q 9 Cancelation doesn't work for me, why?
|
Q 9 Cancelation doesn't work for me, why?
|
||||||
|
|
||||||
Q 10 How do I generate pthreadGCE.dll and libpthreadw32.a for use
|
Q 10 How do I generate pthreadGCE.dll and libpthreadw32.a for use
|
||||||
with Mingw32?
|
with Mingw32?
|
||||||
|
|
||||||
=============================================================================
|
=============================================================================
|
||||||
|
|
||||||
Q 1 What is it?
|
Q 1 What is it?
|
||||||
---
|
---
|
||||||
|
|
||||||
Pthreads-win32 is an Open Source Software implementation of the
|
Pthreads-win32 is an Open Source Software implementation of the
|
||||||
Threads component of the POSIX 1003.1c 1995 Standard for Microsoft's
|
Threads component of the POSIX 1003.1c 1995 Standard for Microsoft's
|
||||||
Win32 environment. Some functions from POSIX 1003.1b are also
|
Win32 environment. Some functions from POSIX 1003.1b are also
|
||||||
supported including semaphores. Other related functions include
|
supported including semaphores. Other related functions include
|
||||||
the set of read-write lock functions. The library also supports
|
the set of read-write lock functions. The library also supports
|
||||||
some of the functionality of the Open Group's Single Unix
|
some of the functionality of the Open Group's Single Unix
|
||||||
specification, version 2, namely mutex types.
|
specification, version 2, namely mutex types.
|
||||||
|
|
||||||
See the file "ANNOUNCE" for more information including standards
|
See the file "ANNOUNCE" for more information including standards
|
||||||
conformance details and list of supported routines.
|
conformance details and list of supported routines.
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
Q 2 Which of the several dll versions do I use?
|
Q 2 Which of the several dll versions do I use?
|
||||||
--- or,
|
--- or,
|
||||||
What are all these pthread*.dll and pthread*.lib files?
|
What are all these pthread*.dll and pthread*.lib files?
|
||||||
|
|
||||||
Simply, you only use one of them, but you need to choose carefully.
|
Simply, you only use one of them, but you need to choose carefully.
|
||||||
|
|
||||||
The most important choice you need to make is whether to use a
|
The most important choice you need to make is whether to use a
|
||||||
version that uses exceptions internally, or not (there are versions
|
version that uses exceptions internally, or not (there are versions
|
||||||
of the library that use exceptions as part of the thread
|
of the library that use exceptions as part of the thread
|
||||||
cancelation and cleanup implementation, and one that uses
|
cancelation and cleanup implementation, and one that uses
|
||||||
setjmp/longjmp instead).
|
setjmp/longjmp instead).
|
||||||
|
|
||||||
There is some contension amongst POSIX threads experts as
|
There is some contension amongst POSIX threads experts as
|
||||||
to how POSIX threads cancelation and exit should work
|
to how POSIX threads cancelation and exit should work
|
||||||
with languages that include exceptions and handlers, e.g.
|
with languages that include exceptions and handlers, e.g.
|
||||||
C++ and even C (Microsoft's Structured Exceptions).
|
C++ and even C (Microsoft's Structured Exceptions).
|
||||||
|
|
||||||
The issue is: should cancelation of a thread in, say,
|
The issue is: should cancelation of a thread in, say,
|
||||||
a C++ application cause object destructors and C++ exception
|
a C++ application cause object destructors and C++ exception
|
||||||
handlers to be invoked as the stack unwinds during thread
|
handlers to be invoked as the stack unwinds during thread
|
||||||
exit, or not?
|
exit, or not?
|
||||||
|
|
||||||
There seems to be more opinion in favour of using the
|
There seems to be more opinion in favour of using the
|
||||||
standard C version of the library (no EH) with C++ applications
|
standard C version of the library (no EH) with C++ applications
|
||||||
since this appears to be the assumption commercial pthreads
|
since this appears to be the assumption commercial pthreads
|
||||||
implementations make. Therefore, if you use an EH version
|
implementations make. Therefore, if you use an EH version
|
||||||
of pthreads-win32 then you may be under the illusion that
|
of pthreads-win32 then you may be under the illusion that
|
||||||
your application will be portable, when in fact it is likely to
|
your application will be portable, when in fact it is likely to
|
||||||
behave very differently linked with other pthreads libraries.
|
behave very differently linked with other pthreads libraries.
|
||||||
|
|
||||||
Now you may be asking: why have you kept the EH versions of
|
Now you may be asking: why have you kept the EH versions of
|
||||||
the library?
|
the library?
|
||||||
|
|
||||||
There are a couple of reasons:
|
There are a couple of reasons:
|
||||||
- there is division amongst the experts and so the code may
|
- there is division amongst the experts and so the code may
|
||||||
be needed in the future. (Yes, it's in the repository and we
|
be needed in the future. (Yes, it's in the repository and we
|
||||||
can get it out anytime in the future, but ...)
|
can get it out anytime in the future, but ...)
|
||||||
- pthreads-win32 is one of the few implementations, and possibly
|
- pthreads-win32 is one of the few implementations, and possibly
|
||||||
the only freely available one, that has EH versions. It may be
|
the only freely available one, that has EH versions. It may be
|
||||||
useful to people who want to play with or study application
|
useful to people who want to play with or study application
|
||||||
behaviour under these conditions.
|
behaviour under these conditions.
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
Q 3 What is the library naming convention?
|
Q 3 What is the library naming convention?
|
||||||
---
|
---
|
||||||
|
|
||||||
Because the library is being built using various exception
|
Because the library is being built using various exception
|
||||||
handling schemes and compilers - and because the library
|
handling schemes and compilers - and because the library
|
||||||
may not work reliably if these are mixed in an application,
|
may not work reliably if these are mixed in an application,
|
||||||
each different version of the library has it's own name.
|
each different version of the library has it's own name.
|
||||||
|
|
||||||
Note 1: the incompatibility is really between EH implementations
|
Note 1: the incompatibility is really between EH implementations
|
||||||
of the different compilers. It should be possible to use the
|
of the different compilers. It should be possible to use the
|
||||||
standard C version from either compiler with C++ applications
|
standard C version from either compiler with C++ applications
|
||||||
built with a different compiler. If you use an EH version of
|
built with a different compiler. If you use an EH version of
|
||||||
the library, then you must use the same compiler for the
|
the library, then you must use the same compiler for the
|
||||||
application. This is another complication and dependency that
|
application. This is another complication and dependency that
|
||||||
can be avoided by using only the standard C library version.
|
can be avoided by using only the standard C library version.
|
||||||
|
|
||||||
Note 2: if you use a standard C pthread*.dll with a C++
|
Note 2: if you use a standard C pthread*.dll with a C++
|
||||||
application, then any functions that you define that are
|
application, then any functions that you define that are
|
||||||
intended to be called via pthread_cleanup_push() must be
|
intended to be called via pthread_cleanup_push() must be
|
||||||
__cdecl.
|
__cdecl.
|
||||||
|
|
||||||
Note 3: the intention is to also name either the VC or GC
|
Note 3: the intention is to also name either the VC or GC
|
||||||
version (it should be arbitrary) as pthread.dll, including
|
version (it should be arbitrary) as pthread.dll, including
|
||||||
pthread.lib and libpthread.a as appropriate.
|
pthread.lib and libpthread.a as appropriate.
|
||||||
|
|
||||||
In general:
|
In general:
|
||||||
pthread[VG]{SE,CE,C}.dll
|
pthread[VG]{SE,CE,C}.dll
|
||||||
pthread[VG]{SE,CE,C}.lib
|
pthread[VG]{SE,CE,C}.lib
|
||||||
|
|
||||||
where:
|
where:
|
||||||
[VG] indicates the compiler
|
[VG] indicates the compiler
|
||||||
V - MS VC
|
V - MS VC
|
||||||
G - GNU C
|
G - GNU C
|
||||||
|
|
||||||
{SE,CE,C} indicates the exception handling scheme
|
{SE,CE,C} indicates the exception handling scheme
|
||||||
SE - Structured EH
|
SE - Structured EH
|
||||||
CE - C++ EH
|
CE - C++ EH
|
||||||
C - no exceptions - uses setjmp/longjmp
|
C - no exceptions - uses setjmp/longjmp
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
pthreadVSE.dll (MSVC/SEH)
|
pthreadVSE.dll (MSVC/SEH)
|
||||||
pthreadGCE.dll (GNUC/C++ EH)
|
pthreadGCE.dll (GNUC/C++ EH)
|
||||||
pthreadGC.dll (GNUC/not dependent on exceptions)
|
pthreadGC.dll (GNUC/not dependent on exceptions)
|
||||||
|
|
||||||
The GNU library archive file names have changed to:
|
The GNU library archive file names have changed to:
|
||||||
|
|
||||||
libpthreadGCE.a
|
libpthreadGCE.a
|
||||||
libpthreadGC.a
|
libpthreadGC.a
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
Q 4 Cleanup code default style or: it used to work when I built
|
Q 4 Cleanup code default style or: it used to work when I built
|
||||||
--- the library myself, but now it doesn't - why?
|
--- the library myself, but now it doesn't - why?
|
||||||
|
|
||||||
Up to and including snapshot 2001-07-12, if not defined, the cleanup
|
Up to and including snapshot 2001-07-12, if not defined, the cleanup
|
||||||
style was determined automatically from the compiler used, and one
|
style was determined automatically from the compiler used, and one
|
||||||
of the following was defined accordingly:
|
of the following was defined accordingly:
|
||||||
|
|
||||||
__CLEANUP_SEH MSVC only
|
__CLEANUP_SEH MSVC only
|
||||||
__CLEANUP_CXX C++, including MSVC++, GNU G++
|
__CLEANUP_CXX C++, including MSVC++, GNU G++
|
||||||
__CLEANUP_C C, including GNU GCC, not MSVC
|
__CLEANUP_C C, including GNU GCC, not MSVC
|
||||||
|
|
||||||
These defines determine the style of cleanup (see pthread.h) and,
|
These defines determine the style of cleanup (see pthread.h) and,
|
||||||
most importantly, the way that cancelation and thread exit (via
|
most importantly, the way that cancelation and thread exit (via
|
||||||
pthread_exit) is performed (see the routine ptw32_throw() in private.c).
|
pthread_exit) is performed (see the routine ptw32_throw() in private.c).
|
||||||
|
|
||||||
In short, the exceptions versions of the library throw an exception
|
In short, the exceptions versions of the library throw an exception
|
||||||
when a thread is canceled or exits (via pthread_exit()), which is
|
when a thread is canceled or exits (via pthread_exit()), which is
|
||||||
caught by a handler in the thread startup routine, so that the
|
caught by a handler in the thread startup routine, so that the
|
||||||
the correct stack unwinding occurs regardless of where the thread
|
the correct stack unwinding occurs regardless of where the thread
|
||||||
is when it's canceled or exits via pthread_exit().
|
is when it's canceled or exits via pthread_exit().
|
||||||
|
|
||||||
After snapshot 2001-07-12, unless your build explicitly defines (e.g.
|
After snapshot 2001-07-12, unless your build explicitly defines (e.g.
|
||||||
via a compiler option) __CLEANUP_SEH, __CLEANUP_CXX, or __CLEANUP_C, then
|
via a compiler option) __CLEANUP_SEH, __CLEANUP_CXX, or __CLEANUP_C, then
|
||||||
the build now ALWAYS defaults to __CLEANUP_C style cleanup. This style
|
the build now ALWAYS defaults to __CLEANUP_C style cleanup. This style
|
||||||
uses setjmp/longjmp in the cancelation and pthread_exit implementations,
|
uses setjmp/longjmp in the cancelation and pthread_exit implementations,
|
||||||
and therefore won't do stack unwinding even when linked to applications
|
and therefore won't do stack unwinding even when linked to applications
|
||||||
that have it (e.g. C++ apps). This is for consistency with most/all
|
that have it (e.g. C++ apps). This is for consistency with most/all
|
||||||
commercial Unix POSIX threads implementations.
|
commercial Unix POSIX threads implementations.
|
||||||
|
|
||||||
Although it was not clearly documented before, it is still necessary to
|
Although it was not clearly documented before, it is still necessary to
|
||||||
build your application using the same __CLEANUP_* define as was
|
build your application using the same __CLEANUP_* define as was
|
||||||
used for the version of the library that you link with, so that the
|
used for the version of the library that you link with, so that the
|
||||||
correct parts of pthread.h are included. That is, the possible
|
correct parts of pthread.h are included. That is, the possible
|
||||||
defines require the following library versions:
|
defines require the following library versions:
|
||||||
|
|
||||||
__CLEANUP_SEH pthreadVSE.dll
|
__CLEANUP_SEH pthreadVSE.dll
|
||||||
__CLEANUP_CXX pthreadVCE.dll or pthreadGCE.dll
|
__CLEANUP_CXX pthreadVCE.dll or pthreadGCE.dll
|
||||||
__CLEANUP_C pthreadVC.dll or pthreadGC.dll
|
__CLEANUP_C pthreadVC.dll or pthreadGC.dll
|
||||||
|
|
||||||
THE POINT OF ALL THIS IS: if you have not been defining one of these
|
THE POINT OF ALL THIS IS: if you have not been defining one of these
|
||||||
explicitly, then the defaults have been set according to the compiler
|
explicitly, then the defaults have been set according to the compiler
|
||||||
and language you are using, as described at the top of this
|
and language you are using, as described at the top of this
|
||||||
section.
|
section.
|
||||||
|
|
||||||
THIS NOW CHANGES, as has been explained above. For example:
|
THIS NOW CHANGES, as has been explained above. For example:
|
||||||
|
|
||||||
If you were building your application with MSVC++ i.e. using C++
|
If you were building your application with MSVC++ i.e. using C++
|
||||||
exceptions (rather than SEH) and not explicitly defining one of
|
exceptions (rather than SEH) and not explicitly defining one of
|
||||||
__CLEANUP_*, then __CLEANUP_C++ was defined for you in pthread.h.
|
__CLEANUP_*, then __CLEANUP_C++ was defined for you in pthread.h.
|
||||||
You should have been linking with pthreadVCE.dll, which does
|
You should have been linking with pthreadVCE.dll, which does
|
||||||
stack unwinding.
|
stack unwinding.
|
||||||
|
|
||||||
If you now build your application as you had before, pthread.h will now
|
If you now build your application as you had before, pthread.h will now
|
||||||
set __CLEANUP_C as the default style, and you will need to link
|
set __CLEANUP_C as the default style, and you will need to link
|
||||||
with pthreadVC.dll. Stack unwinding will now NOT occur when a
|
with pthreadVC.dll. Stack unwinding will now NOT occur when a
|
||||||
thread is canceled, nor when the thread calls pthread_exit().
|
thread is canceled, nor when the thread calls pthread_exit().
|
||||||
|
|
||||||
Your application will now most likely behave differently to previous
|
Your application will now most likely behave differently to previous
|
||||||
versions, and in non-obvious ways. Most likely is that local
|
versions, and in non-obvious ways. Most likely is that local
|
||||||
objects may not be destroyed or cleaned up after a thread
|
objects may not be destroyed or cleaned up after a thread
|
||||||
is canceled.
|
is canceled.
|
||||||
|
|
||||||
If you want the same behaviour as before, then you must now define
|
If you want the same behaviour as before, then you must now define
|
||||||
__CLEANUP_C++ explicitly using a compiler option and link with
|
__CLEANUP_C++ explicitly using a compiler option and link with
|
||||||
pthreadVCE.dll as you did before.
|
pthreadVCE.dll as you did before.
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
Q 5 Why is the default library version now less exception-friendly?
|
Q 5 Why is the default library version now less exception-friendly?
|
||||||
---
|
---
|
||||||
|
|
||||||
Because most commercial Unix POSIX threads implementations don't allow you to
|
Because most commercial Unix POSIX threads implementations don't allow you to
|
||||||
choose to have stack unwinding. (Compaq's TRU64 Unix is possibly an exception.)
|
choose to have stack unwinding. (Compaq's TRU64 Unix is possibly an exception.)
|
||||||
|
|
||||||
Therefore, providing it in pthread-win32 as a default could be dangerous
|
Therefore, providing it in pthread-win32 as a default could be dangerous
|
||||||
and non-portable. We still provide the choice but you must now consciously
|
and non-portable. We still provide the choice but you must now consciously
|
||||||
make it.
|
make it.
|
||||||
|
|
||||||
WHY NOT REMOVE THE EXCEPTIONS VERSIONS OF THE LIBRARY ALTOGETHER?
|
WHY NOT REMOVE THE EXCEPTIONS VERSIONS OF THE LIBRARY ALTOGETHER?
|
||||||
There are a few reasons:
|
There are a few reasons:
|
||||||
- because there are well respected POSIX threads people who believe
|
- because there are well respected POSIX threads people who believe
|
||||||
that POSIX threads implementations should be exceptions-aware and
|
that POSIX threads implementations should be exceptions-aware and
|
||||||
do the expected thing in that context. (There are equally respected
|
do the expected thing in that context. (There are equally respected
|
||||||
people who believe it should not be easily accessible, if it's there
|
people who believe it should not be easily accessible, if it's there
|
||||||
at all.)
|
at all.)
|
||||||
- because pthreads-win32 is one of the few implementations that has
|
- because pthreads-win32 is one of the few implementations that has
|
||||||
the choice, perhaps the only freely available one, and so offers
|
the choice, perhaps the only freely available one, and so offers
|
||||||
a laboratory to people who may want to explore the effects;
|
a laboratory to people who may want to explore the effects;
|
||||||
- although the code will always be around somewhere for anyone who
|
- although the code will always be around somewhere for anyone who
|
||||||
wants it, once it's removed from the current version it will not be
|
wants it, once it's removed from the current version it will not be
|
||||||
nearly as visible to people who may have a use for it.
|
nearly as visible to people who may have a use for it.
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
Q 6 Should I use Cygwin or Mingw32 as a development environment?
|
Q 6 Should I use Cygwin or Mingw32 as a development environment?
|
||||||
---
|
---
|
||||||
|
|
||||||
Important: see Q7 also.
|
Important: see Q7 also.
|
||||||
|
|
||||||
Use Mingw32 with the MSVCRT library to build applications that use
|
Use Mingw32 with the MSVCRT library to build applications that use
|
||||||
the pthreads DLL.
|
the pthreads DLL.
|
||||||
|
|
||||||
Cygwin's own internal support for POSIX threads is growing.
|
Cygwin's own internal support for POSIX threads is growing.
|
||||||
Consult that project's documentation for more information.
|
Consult that project's documentation for more information.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
Q 7 Now that pthreads-win32 builds under Mingw32, why do I get
|
Q 7 Now that pthreads-win32 builds under Mingw32, why do I get
|
||||||
--- memory access violations (segfaults)?
|
--- memory access violations (segfaults)?
|
||||||
|
|
||||||
The latest Mingw32 package has thread-safe exception handling (see Q10).
|
The latest Mingw32 package has thread-safe exception handling (see Q10).
|
||||||
Also, see Q6 above.
|
Also, see Q6 above.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
Q 8 How do I use pthread.dll for Win32 (Visual C++ 5.0)
|
Q 8 How do I use pthread.dll for Win32 (Visual C++ 5.0)
|
||||||
---
|
---
|
||||||
|
|
||||||
>
|
>
|
||||||
> I'm a "rookie" when it comes to your pthread implementation. I'm currently
|
> I'm a "rookie" when it comes to your pthread implementation. I'm currently
|
||||||
> desperately trying to install the prebuilt .dll file into my MSVC compiler.
|
> desperately trying to install the prebuilt .dll file into my MSVC compiler.
|
||||||
> Could you please provide me with explicit instructions on how to do this (or
|
> Could you please provide me with explicit instructions on how to do this (or
|
||||||
> direct me to a resource(s) where I can acquire such information)?
|
> direct me to a resource(s) where I can acquire such information)?
|
||||||
>
|
>
|
||||||
> Thank you,
|
> Thank you,
|
||||||
>
|
>
|
||||||
|
|
||||||
You should have a .dll, .lib, .def, and three .h files. It is recommended
|
You should have a .dll, .lib, .def, and three .h files. It is recommended
|
||||||
that you use pthreadVC.dll, rather than pthreadVCE.dll or pthreadVSE.dll
|
that you use pthreadVC.dll, rather than pthreadVCE.dll or pthreadVSE.dll
|
||||||
(see Q2 above).
|
(see Q2 above).
|
||||||
|
|
||||||
The .dll can go in any directory listed in your PATH environment
|
The .dll can go in any directory listed in your PATH environment
|
||||||
variable, so putting it into C:\WINDOWS should work.
|
variable, so putting it into C:\WINDOWS should work.
|
||||||
|
|
||||||
The .lib file can go in any directory listed in your LIB environment
|
The .lib file can go in any directory listed in your LIB environment
|
||||||
variable.
|
variable.
|
||||||
|
|
||||||
The .h files can go in any directory listed in your INCLUDE
|
The .h files can go in any directory listed in your INCLUDE
|
||||||
environment variable.
|
environment variable.
|
||||||
|
|
||||||
Or you might prefer to put the .lib and .h files into a new directory
|
Or you might prefer to put the .lib and .h files into a new directory
|
||||||
and add its path to LIB and INCLUDE. You can probably do this easiest
|
and add its path to LIB and INCLUDE. You can probably do this easiest
|
||||||
by editing the file:-
|
by editing the file:-
|
||||||
|
|
||||||
C:\Program Files\DevStudio\vc\bin\vcvars32.bat
|
C:\Program Files\DevStudio\vc\bin\vcvars32.bat
|
||||||
|
|
||||||
The .def file isn't used by anything in the pre-compiled version but
|
The .def file isn't used by anything in the pre-compiled version but
|
||||||
is included for information.
|
is included for information.
|
||||||
|
|
||||||
Cheers.
|
Cheers.
|
||||||
Ross
|
Ross
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
Q 9 Cancelation doesn't work for me, why?
|
Q 9 Cancelation doesn't work for me, why?
|
||||||
---
|
---
|
||||||
|
|
||||||
> I'm investigating a problem regarding thread cancelation. The thread I want
|
> I'm investigating a problem regarding thread cancelation. The thread I want
|
||||||
> to cancel has PTHREAD_CANCEL_ASYNCHRONOUS, however, this piece of code
|
> to cancel has PTHREAD_CANCEL_ASYNCHRONOUS, however, this piece of code
|
||||||
> blocks on the join():
|
> blocks on the join():
|
||||||
>
|
>
|
||||||
> if ((retv = Pthread_cancel( recvThread )) == 0)
|
> if ((retv = Pthread_cancel( recvThread )) == 0)
|
||||||
> {
|
> {
|
||||||
> retv = Pthread_join( recvThread, 0 );
|
> retv = Pthread_join( recvThread, 0 );
|
||||||
> }
|
> }
|
||||||
>
|
>
|
||||||
> Pthread_* are just macro's; they call pthread_*.
|
> Pthread_* are just macro's; they call pthread_*.
|
||||||
>
|
>
|
||||||
> The thread recvThread seems to block on a select() call. It doesn't get
|
> The thread recvThread seems to block on a select() call. It doesn't get
|
||||||
> cancelled.
|
> cancelled.
|
||||||
>
|
>
|
||||||
> Two questions:
|
> Two questions:
|
||||||
>
|
>
|
||||||
> 1) is this normal behaviour?
|
> 1) is this normal behaviour?
|
||||||
>
|
>
|
||||||
> 2) if not, how does the cancel mechanism work? I'm not very familliar to
|
> 2) if not, how does the cancel mechanism work? I'm not very familliar to
|
||||||
> win32 programming, so I don't really understand how the *Event() family of
|
> win32 programming, so I don't really understand how the *Event() family of
|
||||||
> calls work.
|
> calls work.
|
||||||
|
|
||||||
The answer to your first question is, normal POSIX behaviour would
|
The answer to your first question is, normal POSIX behaviour would
|
||||||
be to asynchronously cancel the thread. However, even that doesn't
|
be to asynchronously cancel the thread. However, even that doesn't
|
||||||
guarantee cancelation as the standard only says it should be
|
guarantee cancelation as the standard only says it should be
|
||||||
cancelled as soon as possible.
|
cancelled as soon as possible.
|
||||||
|
|
||||||
Snapshot 99-11-02 or earlier only partially supports asynchronous cancellation.
|
Snapshot 99-11-02 or earlier only partially supports asynchronous cancellation.
|
||||||
Snapshots since then simulate async cancelation by poking the address of
|
Snapshots since then simulate async cancelation by poking the address of
|
||||||
a cancelation routine into the PC of the threads context. This requires
|
a cancelation routine into the PC of the threads context. This requires
|
||||||
the thread to be resumed in some way for the cancelation to actually
|
the thread to be resumed in some way for the cancelation to actually
|
||||||
proceed. This is not true async cancelation, but it is as close as we've
|
proceed. This is not true async cancelation, but it is as close as we've
|
||||||
been able to get to it.
|
been able to get to it.
|
||||||
|
|
||||||
If the thread you're trying to cancel is blocked (for instance, it could be
|
If the thread you're trying to cancel is blocked (for instance, it could be
|
||||||
waiting for data from the network), it will only get cancelled when it unblocks
|
waiting for data from the network), it will only get cancelled when it unblocks
|
||||||
(when the data arrives). For true pre-emptive cancelation in these cases,
|
(when the data arrives). For true pre-emptive cancelation in these cases,
|
||||||
pthreads-win32 from snapshot 2004-05-16 can automatically recognise and use the
|
pthreads-win32 from snapshot 2004-05-16 can automatically recognise and use the
|
||||||
QueueUserAPCEx package by Panagiotis E. Hadjidoukas. This package is available
|
QueueUserAPCEx package by Panagiotis E. Hadjidoukas. This package is available
|
||||||
from the pthreads-win32 ftp site and is included in the pthreads-win32
|
from the pthreads-win32 ftp site and is included in the pthreads-win32
|
||||||
self-unpacking zip from 2004-05-16 onwards.
|
self-unpacking zip from 2004-05-16 onwards.
|
||||||
|
|
||||||
Using deferred cancelation would normally be the way to go, however,
|
Using deferred cancelation would normally be the way to go, however,
|
||||||
even though the POSIX threads standard lists a number of C library
|
even though the POSIX threads standard lists a number of C library
|
||||||
functions that are defined as deferred cancelation points, there is
|
functions that are defined as deferred cancelation points, there is
|
||||||
no hookup between those which are provided by Windows and the
|
no hookup between those which are provided by Windows and the
|
||||||
pthreads-win32 library.
|
pthreads-win32 library.
|
||||||
|
|
||||||
Incidently, it's worth noting for code portability that the older POSIX
|
Incidently, it's worth noting for code portability that the older POSIX
|
||||||
threads standards cancelation point lists didn't include "select" because
|
threads standards cancelation point lists didn't include "select" because
|
||||||
(as I read in Butenhof) it wasn't part of POSIX. However, it does appear in
|
(as I read in Butenhof) it wasn't part of POSIX. However, it does appear in
|
||||||
the SUSV3.
|
the SUSV3.
|
||||||
|
|
||||||
Effectively, the only mandatory cancelation points that pthreads-win32
|
Effectively, the only mandatory cancelation points that pthreads-win32
|
||||||
recognises are those the library implements itself, ie.
|
recognises are those the library implements itself, ie.
|
||||||
|
|
||||||
pthread_testcancel
|
pthread_testcancel
|
||||||
pthread_cond_wait
|
pthread_cond_wait
|
||||||
pthread_cond_timedwait
|
pthread_cond_timedwait
|
||||||
pthread_join
|
pthread_join
|
||||||
sem_wait
|
sem_wait
|
||||||
sem_timedwait
|
sem_timedwait
|
||||||
pthread_delay_np
|
pthread_delay_np
|
||||||
|
|
||||||
The following routines from the non-mandatory list in SUSV3 are
|
The following routines from the non-mandatory list in SUSV3 are
|
||||||
cancelation points in pthreads-win32:
|
cancelation points in pthreads-win32:
|
||||||
|
|
||||||
pthread_rwlock_wrlock
|
pthread_rwlock_wrlock
|
||||||
pthread_rwlock_timedwrlock
|
pthread_rwlock_timedwrlock
|
||||||
|
|
||||||
The following routines from the non-mandatory list in SUSV3 are not
|
The following routines from the non-mandatory list in SUSV3 are not
|
||||||
cancelation points in pthreads-win32:
|
cancelation points in pthreads-win32:
|
||||||
|
|
||||||
pthread_rwlock_rdlock
|
pthread_rwlock_rdlock
|
||||||
pthread_rwlock_timedrdlock
|
pthread_rwlock_timedrdlock
|
||||||
|
|
||||||
Pthreads-win32 also provides two functions that allow you to create
|
Pthreads-win32 also provides two functions that allow you to create
|
||||||
cancelation points within your application, but only for cases where
|
cancelation points within your application, but only for cases where
|
||||||
a thread is going to block on a Win32 handle. These are:
|
a thread is going to block on a Win32 handle. These are:
|
||||||
|
|
||||||
pthreadCancelableWait(HANDLE waitHandle) /* Infinite wait */
|
pthreadCancelableWait(HANDLE waitHandle) /* Infinite wait */
|
||||||
|
|
||||||
pthreadCancelableTimedWait(HANDLE waitHandle, DWORD timeout)
|
pthreadCancelableTimedWait(HANDLE waitHandle, DWORD timeout)
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
Q 10 How do I create thread-safe applications using
|
Q 10 How do I create thread-safe applications using
|
||||||
---- pthreadGCE.dll, libpthreadw32.a and Mingw32?
|
---- pthreadGCE.dll, libpthreadw32.a and Mingw32?
|
||||||
|
|
||||||
This should not be a problem with recent versions of MinGW32.
|
This should not be a problem with recent versions of MinGW32.
|
||||||
|
|
||||||
For early versions, see Thomas Pfaff's email at:
|
For early versions, see Thomas Pfaff's email at:
|
||||||
http://sources.redhat.com/ml/pthreads-win32/2002/msg00000.html
|
http://sources.redhat.com/ml/pthreads-win32/2002/msg00000.html
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
CVS Repository maintainers
|
CVS Repository maintainers
|
||||||
|
|
||||||
Ross Johnson rpj@ise.canberra.edu.au
|
Ross Johnson rpj@ise.canberra.edu.au
|
||||||
Ben Elliston bje@cygnus.com
|
Ben Elliston bje@cygnus.com
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,20 +1,20 @@
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
-- Air's Notes on Using PThreads --
|
-- Air's Notes on Using PThreads --
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
The official name of the DLL is "w32pthreads.dll" -- I use the prefix to indicate with
|
The official name of the DLL is "w32pthreads.dll" -- I use the prefix to indicate with
|
||||||
some vaugeness that the pthreads dll is a modified non-standard implementation (see below
|
some vaugeness that the pthreads dll is a modified non-standard implementation (see below
|
||||||
for details); just in case pthreads-win32 dlls in another universe were to be conflicting
|
for details); just in case pthreads-win32 dlls in another universe were to be conflicting
|
||||||
interests.
|
interests.
|
||||||
|
|
||||||
I created a subfolder for pthreads' publically exposed header files, since "config.h" was
|
I created a subfolder for pthreads' publically exposed header files, since "config.h" was
|
||||||
rather brutal include file namespace pollution. >_<
|
rather brutal include file namespace pollution. >_<
|
||||||
|
|
||||||
Important: pthread_cond is an inherently flawed concept, and is quite incredibly slow
|
Important: pthread_cond is an inherently flawed concept, and is quite incredibly slow
|
||||||
on top of it. It's primarily meant for inter-process thread regulation, of which we
|
on top of it. It's primarily meant for inter-process thread regulation, of which we
|
||||||
do none. Therefore it has been excluded from the library builds. Don't use it!
|
do none. Therefore it has been excluded from the library builds. Don't use it!
|
||||||
|
|
||||||
I've also disabled rwlocks, since they use pthread_cond internally. Again, there should
|
I've also disabled rwlocks, since they use pthread_cond internally. Again, there should
|
||||||
be little or no reason to have to use those within the context of a high performance app
|
be little or no reason to have to use those within the context of a high performance app
|
||||||
like Pcsx2.
|
like Pcsx2.
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,7 @@
|
||||||
Things that aren't done yet
|
Things that aren't done yet
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
1. Implement PTHREAD_PROCESS_SHARED for semaphores, mutexes,
|
1. Implement PTHREAD_PROCESS_SHARED for semaphores, mutexes,
|
||||||
condition variables, read/write locks, barriers.
|
condition variables, read/write locks, barriers.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ImportGroup Label="PropertySheets" />
|
<ImportGroup Label="PropertySheets" />
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_PropertySheetDisplayName>pthreads</_PropertySheetDisplayName>
|
<_PropertySheetDisplayName>pthreads</_PropertySheetDisplayName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup>
|
<ItemDefinitionGroup>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>.\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Lib />
|
<Lib />
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
</Project>
|
</Project>
|
File diff suppressed because it is too large
Load Diff
|
@ -1,389 +1,389 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\piecesparts">
|
<Filter Include="Source Files\piecesparts">
|
||||||
<UniqueIdentifier>{72eda860-6ad5-4e65-831a-6f9fc4136bec}</UniqueIdentifier>
|
<UniqueIdentifier>{72eda860-6ad5-4e65-831a-6f9fc4136bec}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Header Files">
|
<Filter Include="Header Files">
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Docs">
|
<Filter Include="Docs">
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="pthread_cancel.c">
|
<ClCompile Include="pthread_cancel.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutex_lock.c">
|
<ClCompile Include="pthread_mutex_lock.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutex_trylock.c">
|
<ClCompile Include="pthread_mutex_trylock.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutex_unlock.c">
|
<ClCompile Include="pthread_mutex_unlock.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_testcancel.c">
|
<ClCompile Include="pthread_testcancel.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32pch.c">
|
<ClCompile Include="ptw32pch.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_trywait.c">
|
<ClCompile Include="sem_trywait.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_wait.c">
|
<ClCompile Include="sem_wait.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_destroy.c">
|
<ClCompile Include="pthread_attr_destroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getdetachstate.c">
|
<ClCompile Include="pthread_attr_getdetachstate.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getinheritsched.c">
|
<ClCompile Include="pthread_attr_getinheritsched.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getschedparam.c">
|
<ClCompile Include="pthread_attr_getschedparam.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getschedpolicy.c">
|
<ClCompile Include="pthread_attr_getschedpolicy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getscope.c">
|
<ClCompile Include="pthread_attr_getscope.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getstackaddr.c">
|
<ClCompile Include="pthread_attr_getstackaddr.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getstacksize.c">
|
<ClCompile Include="pthread_attr_getstacksize.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_init.c">
|
<ClCompile Include="pthread_attr_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setdetachstate.c">
|
<ClCompile Include="pthread_attr_setdetachstate.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setinheritsched.c">
|
<ClCompile Include="pthread_attr_setinheritsched.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setschedparam.c">
|
<ClCompile Include="pthread_attr_setschedparam.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setschedpolicy.c">
|
<ClCompile Include="pthread_attr_setschedpolicy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setscope.c">
|
<ClCompile Include="pthread_attr_setscope.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setstackaddr.c">
|
<ClCompile Include="pthread_attr_setstackaddr.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setstacksize.c">
|
<ClCompile Include="pthread_attr_setstacksize.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrier_destroy.c">
|
<ClCompile Include="pthread_barrier_destroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrier_init.c">
|
<ClCompile Include="pthread_barrier_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrier_wait.c">
|
<ClCompile Include="pthread_barrier_wait.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrierattr_destroy.c">
|
<ClCompile Include="pthread_barrierattr_destroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrierattr_getpshared.c">
|
<ClCompile Include="pthread_barrierattr_getpshared.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrierattr_init.c">
|
<ClCompile Include="pthread_barrierattr_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrierattr_setpshared.c">
|
<ClCompile Include="pthread_barrierattr_setpshared.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_delay_np.c">
|
<ClCompile Include="pthread_delay_np.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_detach.c">
|
<ClCompile Include="pthread_detach.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_equal.c">
|
<ClCompile Include="pthread_equal.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_exit.c">
|
<ClCompile Include="pthread_exit.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_getconcurrency.c">
|
<ClCompile Include="pthread_getconcurrency.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_getschedparam.c">
|
<ClCompile Include="pthread_getschedparam.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_getspecific.c">
|
<ClCompile Include="pthread_getspecific.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_getw32threadhandle_np.c">
|
<ClCompile Include="pthread_getw32threadhandle_np.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_join.c">
|
<ClCompile Include="pthread_join.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_key_create.c">
|
<ClCompile Include="pthread_key_create.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_key_delete.c">
|
<ClCompile Include="pthread_key_delete.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_kill.c">
|
<ClCompile Include="pthread_kill.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutex_destroy.c">
|
<ClCompile Include="pthread_mutex_destroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutex_init.c">
|
<ClCompile Include="pthread_mutex_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutex_timedlock.c">
|
<ClCompile Include="pthread_mutex_timedlock.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_destroy.c">
|
<ClCompile Include="pthread_mutexattr_destroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_getkind_np.c">
|
<ClCompile Include="pthread_mutexattr_getkind_np.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_getpshared.c">
|
<ClCompile Include="pthread_mutexattr_getpshared.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_gettype.c">
|
<ClCompile Include="pthread_mutexattr_gettype.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_init.c">
|
<ClCompile Include="pthread_mutexattr_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_setkind_np.c">
|
<ClCompile Include="pthread_mutexattr_setkind_np.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_setpshared.c">
|
<ClCompile Include="pthread_mutexattr_setpshared.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_settype.c">
|
<ClCompile Include="pthread_mutexattr_settype.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_num_processors_np.c">
|
<ClCompile Include="pthread_num_processors_np.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_once.c">
|
<ClCompile Include="pthread_once.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_self.c">
|
<ClCompile Include="pthread_self.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_setcancelstate.c">
|
<ClCompile Include="pthread_setcancelstate.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_setcanceltype.c">
|
<ClCompile Include="pthread_setcanceltype.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_setconcurrency.c">
|
<ClCompile Include="pthread_setconcurrency.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_setschedparam.c">
|
<ClCompile Include="pthread_setschedparam.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_setspecific.c">
|
<ClCompile Include="pthread_setspecific.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_destroy.c">
|
<ClCompile Include="pthread_spin_destroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_init.c">
|
<ClCompile Include="pthread_spin_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_lock.c">
|
<ClCompile Include="pthread_spin_lock.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_trylock.c">
|
<ClCompile Include="pthread_spin_trylock.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_unlock.c">
|
<ClCompile Include="pthread_spin_unlock.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_timechange_handler_np.c">
|
<ClCompile Include="pthread_timechange_handler_np.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_win32_attach_detach_np.c">
|
<ClCompile Include="pthread_win32_attach_detach_np.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_calloc.c">
|
<ClCompile Include="ptw32_calloc.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_callUserDestroyRoutines.c">
|
<ClCompile Include="ptw32_callUserDestroyRoutines.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_cond_check_need_init.c">
|
<ClCompile Include="ptw32_cond_check_need_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_getprocessors.c">
|
<ClCompile Include="ptw32_getprocessors.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_InterlockedCompareExchange.c">
|
<ClCompile Include="ptw32_InterlockedCompareExchange.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_is_attr.c">
|
<ClCompile Include="ptw32_is_attr.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_MCS_lock.c">
|
<ClCompile Include="ptw32_MCS_lock.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_mutex_check_need_init.c">
|
<ClCompile Include="ptw32_mutex_check_need_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_new.c">
|
<ClCompile Include="ptw32_new.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_processInitialize.c">
|
<ClCompile Include="ptw32_processInitialize.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_processTerminate.c">
|
<ClCompile Include="ptw32_processTerminate.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_relmillisecs.c">
|
<ClCompile Include="ptw32_relmillisecs.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_reuse.c">
|
<ClCompile Include="ptw32_reuse.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_rwlock_cancelwrwait.c">
|
<ClCompile Include="ptw32_rwlock_cancelwrwait.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_rwlock_check_need_init.c">
|
<ClCompile Include="ptw32_rwlock_check_need_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_semwait.c">
|
<ClCompile Include="ptw32_semwait.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_spinlock_check_need_init.c">
|
<ClCompile Include="ptw32_spinlock_check_need_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_threadDestroy.c">
|
<ClCompile Include="ptw32_threadDestroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_threadStart.c">
|
<ClCompile Include="ptw32_threadStart.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_throw.c">
|
<ClCompile Include="ptw32_throw.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_timespec.c">
|
<ClCompile Include="ptw32_timespec.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_tkAssocCreate.c">
|
<ClCompile Include="ptw32_tkAssocCreate.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_tkAssocDestroy.c">
|
<ClCompile Include="ptw32_tkAssocDestroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sched_get_priority_max.c">
|
<ClCompile Include="sched_get_priority_max.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sched_get_priority_min.c">
|
<ClCompile Include="sched_get_priority_min.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sched_getscheduler.c">
|
<ClCompile Include="sched_getscheduler.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sched_setscheduler.c">
|
<ClCompile Include="sched_setscheduler.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sched_yield.c">
|
<ClCompile Include="sched_yield.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_close.c">
|
<ClCompile Include="sem_close.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_destroy.c">
|
<ClCompile Include="sem_destroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_getvalue.c">
|
<ClCompile Include="sem_getvalue.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_init.c">
|
<ClCompile Include="sem_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_open.c">
|
<ClCompile Include="sem_open.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_post.c">
|
<ClCompile Include="sem_post.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_post_multiple.c">
|
<ClCompile Include="sem_post_multiple.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_timedwait.c">
|
<ClCompile Include="sem_timedwait.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_unlink.c">
|
<ClCompile Include="sem_unlink.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="ptw32pch.h">
|
<ClInclude Include="ptw32pch.h">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="include\implement.h">
|
<ClInclude Include="include\implement.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="include\need_errno.h">
|
<ClInclude Include="include\need_errno.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="include\pthread.h">
|
<ClInclude Include="include\pthread.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="resource.h">
|
<ClInclude Include="resource.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="include\sched.h">
|
<ClInclude Include="include\sched.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="include\semaphore.h">
|
<ClInclude Include="include\semaphore.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="ANNOUNCE">
|
<None Include="ANNOUNCE">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="BUGS">
|
<None Include="BUGS">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="CONTRIBUTORS">
|
<None Include="CONTRIBUTORS">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="COPYING">
|
<None Include="COPYING">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="FAQ">
|
<None Include="FAQ">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="MAINTAINERS">
|
<None Include="MAINTAINERS">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="NEWS">
|
<None Include="NEWS">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="PCSX2.txt">
|
<None Include="PCSX2.txt">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,317 +1,317 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Devel|Win32">
|
<ProjectConfiguration Include="Devel|Win32">
|
||||||
<Configuration>Devel</Configuration>
|
<Configuration>Devel</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectName>w32pthreads.v4</ProjectName>
|
<ProjectName>w32pthreads.v4</ProjectName>
|
||||||
<ProjectGuid>{26511268-2902-4997-8421-ECD7055F9E28}</ProjectGuid>
|
<ProjectGuid>{26511268-2902-4997-8421-ECD7055F9E28}</ProjectGuid>
|
||||||
<RootNamespace>pthreads</RootNamespace>
|
<RootNamespace>pthreads</RootNamespace>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v110_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v110_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<PlatformToolset>v110_xp</PlatformToolset>
|
<PlatformToolset>v110_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdpartyDLL.props" />
|
<Import Project="..\3rdpartyDLL.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Devel.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Devel.props" />
|
||||||
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdpartyDLL.props" />
|
<Import Project="..\3rdpartyDLL.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Release.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Release.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdpartyDLL.props" />
|
<Import Project="..\3rdpartyDLL.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Debug.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Debug.props" />
|
||||||
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(ProjectName)-dev</TargetName>
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(ProjectName)-dev</TargetName>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(SolutionDir)bin\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(SolutionDir)bin\</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_DEBUG;PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_DEBUG;PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(SolutionDir)bin\$(TargetName)$(TargetExt)</OutputFile>
|
<OutputFile>$(SolutionDir)bin\$(TargetName)$(TargetExt)</OutputFile>
|
||||||
<ImportLibrary>$(OutDir)$(ProjectName).lib</ImportLibrary>
|
<ImportLibrary>$(OutDir)$(ProjectName).lib</ImportLibrary>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>NDEBUG;PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(SolutionDir)bin\$(TargetName)$(TargetExt)</OutputFile>
|
<OutputFile>$(SolutionDir)bin\$(TargetName)$(TargetExt)</OutputFile>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>NDEBUG;PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(SolutionDir)bin\$(TargetName)$(TargetExt)</OutputFile>
|
<OutputFile>$(SolutionDir)bin\$(TargetName)$(TargetExt)</OutputFile>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="cleanup.c" />
|
<ClCompile Include="cleanup.c" />
|
||||||
<ClCompile Include="create.c" />
|
<ClCompile Include="create.c" />
|
||||||
<ClCompile Include="dll.c" />
|
<ClCompile Include="dll.c" />
|
||||||
<ClCompile Include="errno.c" />
|
<ClCompile Include="errno.c" />
|
||||||
<ClCompile Include="global.c" />
|
<ClCompile Include="global.c" />
|
||||||
<ClCompile Include="ptw32_cancel.c" />
|
<ClCompile Include="ptw32_cancel.c" />
|
||||||
<ClCompile Include="ptw32pch.c">
|
<ClCompile Include="ptw32pch.c">
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">Create</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="signal.c" />
|
<ClCompile Include="signal.c" />
|
||||||
<ClCompile Include="w32_CancelableWait.c" />
|
<ClCompile Include="w32_CancelableWait.c" />
|
||||||
<ClCompile Include="pthread_barrier_destroy.c" />
|
<ClCompile Include="pthread_barrier_destroy.c" />
|
||||||
<ClCompile Include="pthread_barrier_init.c" />
|
<ClCompile Include="pthread_barrier_init.c" />
|
||||||
<ClCompile Include="pthread_barrier_wait.c" />
|
<ClCompile Include="pthread_barrier_wait.c" />
|
||||||
<ClCompile Include="pthread_barrierattr_destroy.c" />
|
<ClCompile Include="pthread_barrierattr_destroy.c" />
|
||||||
<ClCompile Include="pthread_barrierattr_getpshared.c" />
|
<ClCompile Include="pthread_barrierattr_getpshared.c" />
|
||||||
<ClCompile Include="pthread_barrierattr_init.c" />
|
<ClCompile Include="pthread_barrierattr_init.c" />
|
||||||
<ClCompile Include="pthread_barrierattr_setpshared.c" />
|
<ClCompile Include="pthread_barrierattr_setpshared.c" />
|
||||||
<ClCompile Include="pthread_cancel.c" />
|
<ClCompile Include="pthread_cancel.c" />
|
||||||
<ClCompile Include="pthread_delay_np.c" />
|
<ClCompile Include="pthread_delay_np.c" />
|
||||||
<ClCompile Include="pthread_detach.c" />
|
<ClCompile Include="pthread_detach.c" />
|
||||||
<ClCompile Include="pthread_equal.c" />
|
<ClCompile Include="pthread_equal.c" />
|
||||||
<ClCompile Include="pthread_exit.c" />
|
<ClCompile Include="pthread_exit.c" />
|
||||||
<ClCompile Include="pthread_getconcurrency.c" />
|
<ClCompile Include="pthread_getconcurrency.c" />
|
||||||
<ClCompile Include="pthread_getschedparam.c" />
|
<ClCompile Include="pthread_getschedparam.c" />
|
||||||
<ClCompile Include="pthread_getspecific.c" />
|
<ClCompile Include="pthread_getspecific.c" />
|
||||||
<ClCompile Include="pthread_getw32threadhandle_np.c" />
|
<ClCompile Include="pthread_getw32threadhandle_np.c" />
|
||||||
<ClCompile Include="pthread_join.c" />
|
<ClCompile Include="pthread_join.c" />
|
||||||
<ClCompile Include="pthread_key_create.c" />
|
<ClCompile Include="pthread_key_create.c" />
|
||||||
<ClCompile Include="pthread_key_delete.c" />
|
<ClCompile Include="pthread_key_delete.c" />
|
||||||
<ClCompile Include="pthread_kill.c" />
|
<ClCompile Include="pthread_kill.c" />
|
||||||
<ClCompile Include="pthread_num_processors_np.c" />
|
<ClCompile Include="pthread_num_processors_np.c" />
|
||||||
<ClCompile Include="pthread_once.c" />
|
<ClCompile Include="pthread_once.c" />
|
||||||
<ClCompile Include="pthread_self.c" />
|
<ClCompile Include="pthread_self.c" />
|
||||||
<ClCompile Include="pthread_setcancelstate.c" />
|
<ClCompile Include="pthread_setcancelstate.c" />
|
||||||
<ClCompile Include="pthread_setcanceltype.c" />
|
<ClCompile Include="pthread_setcanceltype.c" />
|
||||||
<ClCompile Include="pthread_setconcurrency.c" />
|
<ClCompile Include="pthread_setconcurrency.c" />
|
||||||
<ClCompile Include="pthread_setschedparam.c" />
|
<ClCompile Include="pthread_setschedparam.c" />
|
||||||
<ClCompile Include="pthread_setspecific.c" />
|
<ClCompile Include="pthread_setspecific.c" />
|
||||||
<ClCompile Include="pthread_testcancel.c" />
|
<ClCompile Include="pthread_testcancel.c" />
|
||||||
<ClCompile Include="pthread_win32_attach_detach_np.c" />
|
<ClCompile Include="pthread_win32_attach_detach_np.c" />
|
||||||
<ClCompile Include="ptw32_calloc.c" />
|
<ClCompile Include="ptw32_calloc.c" />
|
||||||
<ClCompile Include="ptw32_callUserDestroyRoutines.c" />
|
<ClCompile Include="ptw32_callUserDestroyRoutines.c" />
|
||||||
<ClCompile Include="ptw32_getprocessors.c" />
|
<ClCompile Include="ptw32_getprocessors.c" />
|
||||||
<ClCompile Include="ptw32_is_attr.c" />
|
<ClCompile Include="ptw32_is_attr.c" />
|
||||||
<ClCompile Include="ptw32_MCS_lock.c" />
|
<ClCompile Include="ptw32_MCS_lock.c" />
|
||||||
<ClCompile Include="ptw32_mutex_check_need_init.c" />
|
<ClCompile Include="ptw32_mutex_check_need_init.c" />
|
||||||
<ClCompile Include="ptw32_new.c" />
|
<ClCompile Include="ptw32_new.c" />
|
||||||
<ClCompile Include="ptw32_processInitialize.c" />
|
<ClCompile Include="ptw32_processInitialize.c" />
|
||||||
<ClCompile Include="ptw32_processTerminate.c" />
|
<ClCompile Include="ptw32_processTerminate.c" />
|
||||||
<ClCompile Include="ptw32_relmillisecs.c" />
|
<ClCompile Include="ptw32_relmillisecs.c" />
|
||||||
<ClCompile Include="ptw32_reuse.c" />
|
<ClCompile Include="ptw32_reuse.c" />
|
||||||
<ClCompile Include="ptw32_semwait.c" />
|
<ClCompile Include="ptw32_semwait.c" />
|
||||||
<ClCompile Include="ptw32_threadDestroy.c" />
|
<ClCompile Include="ptw32_threadDestroy.c" />
|
||||||
<ClCompile Include="ptw32_threadStart.c" />
|
<ClCompile Include="ptw32_threadStart.c" />
|
||||||
<ClCompile Include="ptw32_throw.c" />
|
<ClCompile Include="ptw32_throw.c" />
|
||||||
<ClCompile Include="ptw32_timespec.c" />
|
<ClCompile Include="ptw32_timespec.c" />
|
||||||
<ClCompile Include="ptw32_tkAssocCreate.c" />
|
<ClCompile Include="ptw32_tkAssocCreate.c" />
|
||||||
<ClCompile Include="ptw32_tkAssocDestroy.c" />
|
<ClCompile Include="ptw32_tkAssocDestroy.c" />
|
||||||
<ClCompile Include="sched_get_priority_max.c" />
|
<ClCompile Include="sched_get_priority_max.c" />
|
||||||
<ClCompile Include="sched_get_priority_min.c" />
|
<ClCompile Include="sched_get_priority_min.c" />
|
||||||
<ClCompile Include="sched_getscheduler.c" />
|
<ClCompile Include="sched_getscheduler.c" />
|
||||||
<ClCompile Include="sched_setscheduler.c" />
|
<ClCompile Include="sched_setscheduler.c" />
|
||||||
<ClCompile Include="sched_yield.c" />
|
<ClCompile Include="sched_yield.c" />
|
||||||
<ClCompile Include="pthread_rwlock_destroy.c" />
|
<ClCompile Include="pthread_rwlock_destroy.c" />
|
||||||
<ClCompile Include="pthread_rwlock_init.c" />
|
<ClCompile Include="pthread_rwlock_init.c" />
|
||||||
<ClCompile Include="pthread_rwlock_rdlock.c" />
|
<ClCompile Include="pthread_rwlock_rdlock.c" />
|
||||||
<ClCompile Include="pthread_rwlock_timedrdlock.c" />
|
<ClCompile Include="pthread_rwlock_timedrdlock.c" />
|
||||||
<ClCompile Include="pthread_rwlock_timedwrlock.c" />
|
<ClCompile Include="pthread_rwlock_timedwrlock.c" />
|
||||||
<ClCompile Include="pthread_rwlock_tryrdlock.c" />
|
<ClCompile Include="pthread_rwlock_tryrdlock.c" />
|
||||||
<ClCompile Include="pthread_rwlock_trywrlock.c" />
|
<ClCompile Include="pthread_rwlock_trywrlock.c" />
|
||||||
<ClCompile Include="pthread_rwlock_unlock.c" />
|
<ClCompile Include="pthread_rwlock_unlock.c" />
|
||||||
<ClCompile Include="pthread_rwlock_wrlock.c" />
|
<ClCompile Include="pthread_rwlock_wrlock.c" />
|
||||||
<ClCompile Include="pthread_rwlockattr_destroy.c" />
|
<ClCompile Include="pthread_rwlockattr_destroy.c" />
|
||||||
<ClCompile Include="pthread_rwlockattr_getpshared.c" />
|
<ClCompile Include="pthread_rwlockattr_getpshared.c" />
|
||||||
<ClCompile Include="pthread_rwlockattr_init.c" />
|
<ClCompile Include="pthread_rwlockattr_init.c" />
|
||||||
<ClCompile Include="pthread_rwlockattr_setpshared.c" />
|
<ClCompile Include="pthread_rwlockattr_setpshared.c" />
|
||||||
<ClCompile Include="ptw32_rwlock_cancelwrwait.c" />
|
<ClCompile Include="ptw32_rwlock_cancelwrwait.c" />
|
||||||
<ClCompile Include="ptw32_rwlock_check_need_init.c" />
|
<ClCompile Include="ptw32_rwlock_check_need_init.c" />
|
||||||
<ClCompile Include="pthread_cond_destroy.c" />
|
<ClCompile Include="pthread_cond_destroy.c" />
|
||||||
<ClCompile Include="pthread_cond_init.c" />
|
<ClCompile Include="pthread_cond_init.c" />
|
||||||
<ClCompile Include="pthread_cond_signal.c" />
|
<ClCompile Include="pthread_cond_signal.c" />
|
||||||
<ClCompile Include="pthread_cond_wait.c" />
|
<ClCompile Include="pthread_cond_wait.c" />
|
||||||
<ClCompile Include="pthread_condattr_destroy.c" />
|
<ClCompile Include="pthread_condattr_destroy.c" />
|
||||||
<ClCompile Include="pthread_condattr_getpshared.c" />
|
<ClCompile Include="pthread_condattr_getpshared.c" />
|
||||||
<ClCompile Include="pthread_condattr_init.c" />
|
<ClCompile Include="pthread_condattr_init.c" />
|
||||||
<ClCompile Include="pthread_condattr_setpshared.c" />
|
<ClCompile Include="pthread_condattr_setpshared.c" />
|
||||||
<ClCompile Include="pthread_timechange_handler_np.c" />
|
<ClCompile Include="pthread_timechange_handler_np.c" />
|
||||||
<ClCompile Include="ptw32_cond_check_need_init.c" />
|
<ClCompile Include="ptw32_cond_check_need_init.c" />
|
||||||
<ClCompile Include="pthread_attr_destroy.c" />
|
<ClCompile Include="pthread_attr_destroy.c" />
|
||||||
<ClCompile Include="pthread_attr_getdetachstate.c" />
|
<ClCompile Include="pthread_attr_getdetachstate.c" />
|
||||||
<ClCompile Include="pthread_attr_getinheritsched.c" />
|
<ClCompile Include="pthread_attr_getinheritsched.c" />
|
||||||
<ClCompile Include="pthread_attr_getschedparam.c" />
|
<ClCompile Include="pthread_attr_getschedparam.c" />
|
||||||
<ClCompile Include="pthread_attr_getschedpolicy.c" />
|
<ClCompile Include="pthread_attr_getschedpolicy.c" />
|
||||||
<ClCompile Include="pthread_attr_getscope.c" />
|
<ClCompile Include="pthread_attr_getscope.c" />
|
||||||
<ClCompile Include="pthread_attr_getstackaddr.c" />
|
<ClCompile Include="pthread_attr_getstackaddr.c" />
|
||||||
<ClCompile Include="pthread_attr_getstacksize.c" />
|
<ClCompile Include="pthread_attr_getstacksize.c" />
|
||||||
<ClCompile Include="pthread_attr_init.c" />
|
<ClCompile Include="pthread_attr_init.c" />
|
||||||
<ClCompile Include="pthread_attr_setdetachstate.c" />
|
<ClCompile Include="pthread_attr_setdetachstate.c" />
|
||||||
<ClCompile Include="pthread_attr_setinheritsched.c" />
|
<ClCompile Include="pthread_attr_setinheritsched.c" />
|
||||||
<ClCompile Include="pthread_attr_setschedparam.c" />
|
<ClCompile Include="pthread_attr_setschedparam.c" />
|
||||||
<ClCompile Include="pthread_attr_setschedpolicy.c" />
|
<ClCompile Include="pthread_attr_setschedpolicy.c" />
|
||||||
<ClCompile Include="pthread_attr_setscope.c" />
|
<ClCompile Include="pthread_attr_setscope.c" />
|
||||||
<ClCompile Include="pthread_attr_setstackaddr.c" />
|
<ClCompile Include="pthread_attr_setstackaddr.c" />
|
||||||
<ClCompile Include="pthread_attr_setstacksize.c" />
|
<ClCompile Include="pthread_attr_setstacksize.c" />
|
||||||
<ClCompile Include="pthread_mutex_destroy.c" />
|
<ClCompile Include="pthread_mutex_destroy.c" />
|
||||||
<ClCompile Include="pthread_mutex_init.c" />
|
<ClCompile Include="pthread_mutex_init.c" />
|
||||||
<ClCompile Include="pthread_mutex_lock.c" />
|
<ClCompile Include="pthread_mutex_lock.c" />
|
||||||
<ClCompile Include="pthread_mutex_timedlock.c" />
|
<ClCompile Include="pthread_mutex_timedlock.c" />
|
||||||
<ClCompile Include="pthread_mutex_trylock.c" />
|
<ClCompile Include="pthread_mutex_trylock.c" />
|
||||||
<ClCompile Include="pthread_mutex_unlock.c" />
|
<ClCompile Include="pthread_mutex_unlock.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_destroy.c" />
|
<ClCompile Include="pthread_mutexattr_destroy.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_getkind_np.c" />
|
<ClCompile Include="pthread_mutexattr_getkind_np.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_getpshared.c" />
|
<ClCompile Include="pthread_mutexattr_getpshared.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_gettype.c" />
|
<ClCompile Include="pthread_mutexattr_gettype.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_init.c" />
|
<ClCompile Include="pthread_mutexattr_init.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_setkind_np.c" />
|
<ClCompile Include="pthread_mutexattr_setkind_np.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_setpshared.c" />
|
<ClCompile Include="pthread_mutexattr_setpshared.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_settype.c" />
|
<ClCompile Include="pthread_mutexattr_settype.c" />
|
||||||
<ClCompile Include="sem_close.c" />
|
<ClCompile Include="sem_close.c" />
|
||||||
<ClCompile Include="sem_destroy.c" />
|
<ClCompile Include="sem_destroy.c" />
|
||||||
<ClCompile Include="sem_getvalue.c" />
|
<ClCompile Include="sem_getvalue.c" />
|
||||||
<ClCompile Include="sem_init.c" />
|
<ClCompile Include="sem_init.c" />
|
||||||
<ClCompile Include="sem_open.c" />
|
<ClCompile Include="sem_open.c" />
|
||||||
<ClCompile Include="sem_post.c" />
|
<ClCompile Include="sem_post.c" />
|
||||||
<ClCompile Include="sem_post_multiple.c" />
|
<ClCompile Include="sem_post_multiple.c" />
|
||||||
<ClCompile Include="sem_timedwait.c" />
|
<ClCompile Include="sem_timedwait.c" />
|
||||||
<ClCompile Include="sem_trywait.c" />
|
<ClCompile Include="sem_trywait.c" />
|
||||||
<ClCompile Include="sem_unlink.c" />
|
<ClCompile Include="sem_unlink.c" />
|
||||||
<ClCompile Include="sem_wait.c" />
|
<ClCompile Include="sem_wait.c" />
|
||||||
<ClCompile Include="pthread_spin_destroy.c">
|
<ClCompile Include="pthread_spin_destroy.c">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_init.c">
|
<ClCompile Include="pthread_spin_init.c">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_lock.c">
|
<ClCompile Include="pthread_spin_lock.c">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_trylock.c">
|
<ClCompile Include="pthread_spin_trylock.c">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_unlock.c">
|
<ClCompile Include="pthread_spin_unlock.c">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_spinlock_check_need_init.c">
|
<ClCompile Include="ptw32_spinlock_check_need_init.c">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="config.h" />
|
<ClInclude Include="config.h" />
|
||||||
<ClInclude Include="ptw32pch.h" />
|
<ClInclude Include="ptw32pch.h" />
|
||||||
<ClInclude Include="include\implement.h" />
|
<ClInclude Include="include\implement.h" />
|
||||||
<ClInclude Include="include\need_errno.h" />
|
<ClInclude Include="include\need_errno.h" />
|
||||||
<ClInclude Include="include\pthread.h" />
|
<ClInclude Include="include\pthread.h" />
|
||||||
<ClInclude Include="resource.h" />
|
<ClInclude Include="resource.h" />
|
||||||
<ClInclude Include="include\sched.h" />
|
<ClInclude Include="include\sched.h" />
|
||||||
<ClInclude Include="include\semaphore.h" />
|
<ClInclude Include="include\semaphore.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="ANNOUNCE" />
|
<None Include="ANNOUNCE" />
|
||||||
<None Include="BUGS" />
|
<None Include="BUGS" />
|
||||||
<None Include="CONTRIBUTORS" />
|
<None Include="CONTRIBUTORS" />
|
||||||
<None Include="COPYING" />
|
<None Include="COPYING" />
|
||||||
<None Include="FAQ" />
|
<None Include="FAQ" />
|
||||||
<None Include="MAINTAINERS" />
|
<None Include="MAINTAINERS" />
|
||||||
<None Include="NEWS" />
|
<None Include="NEWS" />
|
||||||
<None Include="PCSX2.txt" />
|
<None Include="PCSX2.txt" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="w32pthreads.rc" />
|
<ResourceCompile Include="w32pthreads.rc" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,436 +1,436 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="Source Files">
|
<Filter Include="Source Files">
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\piecesparts">
|
<Filter Include="Source Files\piecesparts">
|
||||||
<UniqueIdentifier>{ae009302-94c7-467a-b26b-43840fa3e460}</UniqueIdentifier>
|
<UniqueIdentifier>{ae009302-94c7-467a-b26b-43840fa3e460}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\rwlock">
|
<Filter Include="Source Files\rwlock">
|
||||||
<UniqueIdentifier>{37ecf3aa-bd9a-4735-86c2-63bbe4b3f038}</UniqueIdentifier>
|
<UniqueIdentifier>{37ecf3aa-bd9a-4735-86c2-63bbe4b3f038}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\cond">
|
<Filter Include="Source Files\cond">
|
||||||
<UniqueIdentifier>{1116e265-921b-4084-8577-f93db3396cf4}</UniqueIdentifier>
|
<UniqueIdentifier>{1116e265-921b-4084-8577-f93db3396cf4}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\attr">
|
<Filter Include="Source Files\attr">
|
||||||
<UniqueIdentifier>{480f878f-fdc5-4011-a3fe-ec96c6a7df0f}</UniqueIdentifier>
|
<UniqueIdentifier>{480f878f-fdc5-4011-a3fe-ec96c6a7df0f}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\mutex">
|
<Filter Include="Source Files\mutex">
|
||||||
<UniqueIdentifier>{44610aac-9831-4cc3-bc5e-2221ec190b96}</UniqueIdentifier>
|
<UniqueIdentifier>{44610aac-9831-4cc3-bc5e-2221ec190b96}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\semaphore">
|
<Filter Include="Source Files\semaphore">
|
||||||
<UniqueIdentifier>{dae54675-56e0-41c3-9c1b-894156ab6794}</UniqueIdentifier>
|
<UniqueIdentifier>{dae54675-56e0-41c3-9c1b-894156ab6794}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Source Files\spin">
|
<Filter Include="Source Files\spin">
|
||||||
<UniqueIdentifier>{6f9cc070-859d-42a9-a96b-77c80d2ccd5e}</UniqueIdentifier>
|
<UniqueIdentifier>{6f9cc070-859d-42a9-a96b-77c80d2ccd5e}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Header Files">
|
<Filter Include="Header Files">
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="Docs">
|
<Filter Include="Docs">
|
||||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="cleanup.c">
|
<ClCompile Include="cleanup.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="create.c">
|
<ClCompile Include="create.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="dll.c">
|
<ClCompile Include="dll.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="errno.c">
|
<ClCompile Include="errno.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="global.c">
|
<ClCompile Include="global.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_cancel.c">
|
<ClCompile Include="ptw32_cancel.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32pch.c">
|
<ClCompile Include="ptw32pch.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="signal.c">
|
<ClCompile Include="signal.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="w32_CancelableWait.c">
|
<ClCompile Include="w32_CancelableWait.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrier_destroy.c">
|
<ClCompile Include="pthread_barrier_destroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrier_init.c">
|
<ClCompile Include="pthread_barrier_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrier_wait.c">
|
<ClCompile Include="pthread_barrier_wait.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrierattr_destroy.c">
|
<ClCompile Include="pthread_barrierattr_destroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrierattr_getpshared.c">
|
<ClCompile Include="pthread_barrierattr_getpshared.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrierattr_init.c">
|
<ClCompile Include="pthread_barrierattr_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_barrierattr_setpshared.c">
|
<ClCompile Include="pthread_barrierattr_setpshared.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_cancel.c">
|
<ClCompile Include="pthread_cancel.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_delay_np.c">
|
<ClCompile Include="pthread_delay_np.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_detach.c">
|
<ClCompile Include="pthread_detach.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_equal.c">
|
<ClCompile Include="pthread_equal.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_exit.c">
|
<ClCompile Include="pthread_exit.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_getconcurrency.c">
|
<ClCompile Include="pthread_getconcurrency.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_getschedparam.c">
|
<ClCompile Include="pthread_getschedparam.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_getspecific.c">
|
<ClCompile Include="pthread_getspecific.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_getw32threadhandle_np.c">
|
<ClCompile Include="pthread_getw32threadhandle_np.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_join.c">
|
<ClCompile Include="pthread_join.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_key_create.c">
|
<ClCompile Include="pthread_key_create.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_key_delete.c">
|
<ClCompile Include="pthread_key_delete.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_kill.c">
|
<ClCompile Include="pthread_kill.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_num_processors_np.c">
|
<ClCompile Include="pthread_num_processors_np.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_once.c">
|
<ClCompile Include="pthread_once.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_self.c">
|
<ClCompile Include="pthread_self.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_setcancelstate.c">
|
<ClCompile Include="pthread_setcancelstate.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_setcanceltype.c">
|
<ClCompile Include="pthread_setcanceltype.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_setconcurrency.c">
|
<ClCompile Include="pthread_setconcurrency.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_setschedparam.c">
|
<ClCompile Include="pthread_setschedparam.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_setspecific.c">
|
<ClCompile Include="pthread_setspecific.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_testcancel.c">
|
<ClCompile Include="pthread_testcancel.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_win32_attach_detach_np.c">
|
<ClCompile Include="pthread_win32_attach_detach_np.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_calloc.c">
|
<ClCompile Include="ptw32_calloc.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_callUserDestroyRoutines.c">
|
<ClCompile Include="ptw32_callUserDestroyRoutines.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_getprocessors.c">
|
<ClCompile Include="ptw32_getprocessors.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_is_attr.c">
|
<ClCompile Include="ptw32_is_attr.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_MCS_lock.c">
|
<ClCompile Include="ptw32_MCS_lock.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_mutex_check_need_init.c">
|
<ClCompile Include="ptw32_mutex_check_need_init.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_new.c">
|
<ClCompile Include="ptw32_new.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_processInitialize.c">
|
<ClCompile Include="ptw32_processInitialize.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_processTerminate.c">
|
<ClCompile Include="ptw32_processTerminate.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_relmillisecs.c">
|
<ClCompile Include="ptw32_relmillisecs.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_reuse.c">
|
<ClCompile Include="ptw32_reuse.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_semwait.c">
|
<ClCompile Include="ptw32_semwait.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_threadDestroy.c">
|
<ClCompile Include="ptw32_threadDestroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_threadStart.c">
|
<ClCompile Include="ptw32_threadStart.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_throw.c">
|
<ClCompile Include="ptw32_throw.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_timespec.c">
|
<ClCompile Include="ptw32_timespec.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_tkAssocCreate.c">
|
<ClCompile Include="ptw32_tkAssocCreate.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_tkAssocDestroy.c">
|
<ClCompile Include="ptw32_tkAssocDestroy.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sched_get_priority_max.c">
|
<ClCompile Include="sched_get_priority_max.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sched_get_priority_min.c">
|
<ClCompile Include="sched_get_priority_min.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sched_getscheduler.c">
|
<ClCompile Include="sched_getscheduler.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sched_setscheduler.c">
|
<ClCompile Include="sched_setscheduler.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sched_yield.c">
|
<ClCompile Include="sched_yield.c">
|
||||||
<Filter>Source Files\piecesparts</Filter>
|
<Filter>Source Files\piecesparts</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_rwlock_cancelwrwait.c">
|
<ClCompile Include="ptw32_rwlock_cancelwrwait.c">
|
||||||
<Filter>Source Files\rwlock</Filter>
|
<Filter>Source Files\rwlock</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_rwlock_check_need_init.c">
|
<ClCompile Include="ptw32_rwlock_check_need_init.c">
|
||||||
<Filter>Source Files\rwlock</Filter>
|
<Filter>Source Files\rwlock</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_timechange_handler_np.c">
|
<ClCompile Include="pthread_timechange_handler_np.c">
|
||||||
<Filter>Source Files\cond</Filter>
|
<Filter>Source Files\cond</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_cond_check_need_init.c">
|
<ClCompile Include="ptw32_cond_check_need_init.c">
|
||||||
<Filter>Source Files\cond</Filter>
|
<Filter>Source Files\cond</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_destroy.c">
|
<ClCompile Include="pthread_attr_destroy.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getdetachstate.c">
|
<ClCompile Include="pthread_attr_getdetachstate.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getinheritsched.c">
|
<ClCompile Include="pthread_attr_getinheritsched.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getschedparam.c">
|
<ClCompile Include="pthread_attr_getschedparam.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getschedpolicy.c">
|
<ClCompile Include="pthread_attr_getschedpolicy.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getscope.c">
|
<ClCompile Include="pthread_attr_getscope.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getstackaddr.c">
|
<ClCompile Include="pthread_attr_getstackaddr.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_getstacksize.c">
|
<ClCompile Include="pthread_attr_getstacksize.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_init.c">
|
<ClCompile Include="pthread_attr_init.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setdetachstate.c">
|
<ClCompile Include="pthread_attr_setdetachstate.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setinheritsched.c">
|
<ClCompile Include="pthread_attr_setinheritsched.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setschedparam.c">
|
<ClCompile Include="pthread_attr_setschedparam.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setschedpolicy.c">
|
<ClCompile Include="pthread_attr_setschedpolicy.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setscope.c">
|
<ClCompile Include="pthread_attr_setscope.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setstackaddr.c">
|
<ClCompile Include="pthread_attr_setstackaddr.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_attr_setstacksize.c">
|
<ClCompile Include="pthread_attr_setstacksize.c">
|
||||||
<Filter>Source Files\attr</Filter>
|
<Filter>Source Files\attr</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutex_destroy.c">
|
<ClCompile Include="pthread_mutex_destroy.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutex_init.c">
|
<ClCompile Include="pthread_mutex_init.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutex_lock.c">
|
<ClCompile Include="pthread_mutex_lock.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutex_timedlock.c">
|
<ClCompile Include="pthread_mutex_timedlock.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutex_trylock.c">
|
<ClCompile Include="pthread_mutex_trylock.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutex_unlock.c">
|
<ClCompile Include="pthread_mutex_unlock.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_destroy.c">
|
<ClCompile Include="pthread_mutexattr_destroy.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_getkind_np.c">
|
<ClCompile Include="pthread_mutexattr_getkind_np.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_getpshared.c">
|
<ClCompile Include="pthread_mutexattr_getpshared.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_gettype.c">
|
<ClCompile Include="pthread_mutexattr_gettype.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_init.c">
|
<ClCompile Include="pthread_mutexattr_init.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_setkind_np.c">
|
<ClCompile Include="pthread_mutexattr_setkind_np.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_setpshared.c">
|
<ClCompile Include="pthread_mutexattr_setpshared.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_mutexattr_settype.c">
|
<ClCompile Include="pthread_mutexattr_settype.c">
|
||||||
<Filter>Source Files\mutex</Filter>
|
<Filter>Source Files\mutex</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_close.c">
|
<ClCompile Include="sem_close.c">
|
||||||
<Filter>Source Files\semaphore</Filter>
|
<Filter>Source Files\semaphore</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_destroy.c">
|
<ClCompile Include="sem_destroy.c">
|
||||||
<Filter>Source Files\semaphore</Filter>
|
<Filter>Source Files\semaphore</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_getvalue.c">
|
<ClCompile Include="sem_getvalue.c">
|
||||||
<Filter>Source Files\semaphore</Filter>
|
<Filter>Source Files\semaphore</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_init.c">
|
<ClCompile Include="sem_init.c">
|
||||||
<Filter>Source Files\semaphore</Filter>
|
<Filter>Source Files\semaphore</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_open.c">
|
<ClCompile Include="sem_open.c">
|
||||||
<Filter>Source Files\semaphore</Filter>
|
<Filter>Source Files\semaphore</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_post.c">
|
<ClCompile Include="sem_post.c">
|
||||||
<Filter>Source Files\semaphore</Filter>
|
<Filter>Source Files\semaphore</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_post_multiple.c">
|
<ClCompile Include="sem_post_multiple.c">
|
||||||
<Filter>Source Files\semaphore</Filter>
|
<Filter>Source Files\semaphore</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_timedwait.c">
|
<ClCompile Include="sem_timedwait.c">
|
||||||
<Filter>Source Files\semaphore</Filter>
|
<Filter>Source Files\semaphore</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_trywait.c">
|
<ClCompile Include="sem_trywait.c">
|
||||||
<Filter>Source Files\semaphore</Filter>
|
<Filter>Source Files\semaphore</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_unlink.c">
|
<ClCompile Include="sem_unlink.c">
|
||||||
<Filter>Source Files\semaphore</Filter>
|
<Filter>Source Files\semaphore</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="sem_wait.c">
|
<ClCompile Include="sem_wait.c">
|
||||||
<Filter>Source Files\semaphore</Filter>
|
<Filter>Source Files\semaphore</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_destroy.c">
|
<ClCompile Include="pthread_spin_destroy.c">
|
||||||
<Filter>Source Files\spin</Filter>
|
<Filter>Source Files\spin</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_init.c">
|
<ClCompile Include="pthread_spin_init.c">
|
||||||
<Filter>Source Files\spin</Filter>
|
<Filter>Source Files\spin</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_lock.c">
|
<ClCompile Include="pthread_spin_lock.c">
|
||||||
<Filter>Source Files\spin</Filter>
|
<Filter>Source Files\spin</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_trylock.c">
|
<ClCompile Include="pthread_spin_trylock.c">
|
||||||
<Filter>Source Files\spin</Filter>
|
<Filter>Source Files\spin</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_unlock.c">
|
<ClCompile Include="pthread_spin_unlock.c">
|
||||||
<Filter>Source Files\spin</Filter>
|
<Filter>Source Files\spin</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_spinlock_check_need_init.c">
|
<ClCompile Include="ptw32_spinlock_check_need_init.c">
|
||||||
<Filter>Source Files\spin</Filter>
|
<Filter>Source Files\spin</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="config.h">
|
<ClInclude Include="config.h">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="ptw32pch.h">
|
<ClInclude Include="ptw32pch.h">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="include\implement.h">
|
<ClInclude Include="include\implement.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="include\need_errno.h">
|
<ClInclude Include="include\need_errno.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="include\pthread.h">
|
<ClInclude Include="include\pthread.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="resource.h">
|
<ClInclude Include="resource.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="include\sched.h">
|
<ClInclude Include="include\sched.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="include\semaphore.h">
|
<ClInclude Include="include\semaphore.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="ANNOUNCE">
|
<None Include="ANNOUNCE">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="BUGS">
|
<None Include="BUGS">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="CONTRIBUTORS">
|
<None Include="CONTRIBUTORS">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="COPYING">
|
<None Include="COPYING">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="FAQ">
|
<None Include="FAQ">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="MAINTAINERS">
|
<None Include="MAINTAINERS">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="NEWS">
|
<None Include="NEWS">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
<None Include="PCSX2.txt">
|
<None Include="PCSX2.txt">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="w32pthreads.rc">
|
<ResourceCompile Include="w32pthreads.rc">
|
||||||
<Filter>Docs</Filter>
|
<Filter>Docs</Filter>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,314 +1,314 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Devel|Win32">
|
<ProjectConfiguration Include="Devel|Win32">
|
||||||
<Configuration>Devel</Configuration>
|
<Configuration>Devel</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<Platform>Win32</Platform>
|
<Platform>Win32</Platform>
|
||||||
</ProjectConfiguration>
|
</ProjectConfiguration>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectName>w32pthreads.v4</ProjectName>
|
<ProjectName>w32pthreads.v4</ProjectName>
|
||||||
<ProjectGuid>{26511268-2902-4997-8421-ECD7055F9E28}</ProjectGuid>
|
<ProjectGuid>{26511268-2902-4997-8421-ECD7055F9E28}</ProjectGuid>
|
||||||
<RootNamespace>pthreads</RootNamespace>
|
<RootNamespace>pthreads</RootNamespace>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>MultiByte</CharacterSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdpartyDLL.props" />
|
<Import Project="..\3rdpartyDLL.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Devel.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Devel.props" />
|
||||||
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdpartyDLL.props" />
|
<Import Project="..\3rdpartyDLL.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Release.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Release.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
<Import Project="..\DefaultProjectRootDir.props" />
|
<Import Project="..\DefaultProjectRootDir.props" />
|
||||||
<Import Project="..\3rdpartyDLL.props" />
|
<Import Project="..\3rdpartyDLL.props" />
|
||||||
<Import Project="..\..\common\vsprops\CodeGen_Debug.props" />
|
<Import Project="..\..\common\vsprops\CodeGen_Debug.props" />
|
||||||
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
<Import Project="..\..\common\vsprops\IncrementalLinking.props" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
||||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(ProjectName)-dev</TargetName>
|
<TargetName Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(ProjectName)-dev</TargetName>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(SolutionDir)bin\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(SolutionDir)bin\</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_DEBUG;PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_DEBUG;PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(SolutionDir)bin\$(TargetName)$(TargetExt)</OutputFile>
|
<OutputFile>$(SolutionDir)bin\$(TargetName)$(TargetExt)</OutputFile>
|
||||||
<ImportLibrary>$(OutDir)$(ProjectName).lib</ImportLibrary>
|
<ImportLibrary>$(OutDir)$(ProjectName).lib</ImportLibrary>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>NDEBUG;PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(SolutionDir)bin\$(TargetName)$(TargetExt)</OutputFile>
|
<OutputFile>$(SolutionDir)bin\$(TargetName)$(TargetExt)</OutputFile>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir);$(ProjectDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>NDEBUG;PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;PTW32_BUILD;__CLEANUP_SEH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
<PrecompiledHeaderFile>ptw32pch.h</PrecompiledHeaderFile>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(SolutionDir)bin\$(TargetName)$(TargetExt)</OutputFile>
|
<OutputFile>$(SolutionDir)bin\$(TargetName)$(TargetExt)</OutputFile>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="cleanup.c" />
|
<ClCompile Include="cleanup.c" />
|
||||||
<ClCompile Include="create.c" />
|
<ClCompile Include="create.c" />
|
||||||
<ClCompile Include="dll.c" />
|
<ClCompile Include="dll.c" />
|
||||||
<ClCompile Include="errno.c" />
|
<ClCompile Include="errno.c" />
|
||||||
<ClCompile Include="global.c" />
|
<ClCompile Include="global.c" />
|
||||||
<ClCompile Include="ptw32_cancel.c" />
|
<ClCompile Include="ptw32_cancel.c" />
|
||||||
<ClCompile Include="ptw32pch.c">
|
<ClCompile Include="ptw32pch.c">
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">Create</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="signal.c" />
|
<ClCompile Include="signal.c" />
|
||||||
<ClCompile Include="w32_CancelableWait.c" />
|
<ClCompile Include="w32_CancelableWait.c" />
|
||||||
<ClCompile Include="pthread_barrier_destroy.c" />
|
<ClCompile Include="pthread_barrier_destroy.c" />
|
||||||
<ClCompile Include="pthread_barrier_init.c" />
|
<ClCompile Include="pthread_barrier_init.c" />
|
||||||
<ClCompile Include="pthread_barrier_wait.c" />
|
<ClCompile Include="pthread_barrier_wait.c" />
|
||||||
<ClCompile Include="pthread_barrierattr_destroy.c" />
|
<ClCompile Include="pthread_barrierattr_destroy.c" />
|
||||||
<ClCompile Include="pthread_barrierattr_getpshared.c" />
|
<ClCompile Include="pthread_barrierattr_getpshared.c" />
|
||||||
<ClCompile Include="pthread_barrierattr_init.c" />
|
<ClCompile Include="pthread_barrierattr_init.c" />
|
||||||
<ClCompile Include="pthread_barrierattr_setpshared.c" />
|
<ClCompile Include="pthread_barrierattr_setpshared.c" />
|
||||||
<ClCompile Include="pthread_cancel.c" />
|
<ClCompile Include="pthread_cancel.c" />
|
||||||
<ClCompile Include="pthread_delay_np.c" />
|
<ClCompile Include="pthread_delay_np.c" />
|
||||||
<ClCompile Include="pthread_detach.c" />
|
<ClCompile Include="pthread_detach.c" />
|
||||||
<ClCompile Include="pthread_equal.c" />
|
<ClCompile Include="pthread_equal.c" />
|
||||||
<ClCompile Include="pthread_exit.c" />
|
<ClCompile Include="pthread_exit.c" />
|
||||||
<ClCompile Include="pthread_getconcurrency.c" />
|
<ClCompile Include="pthread_getconcurrency.c" />
|
||||||
<ClCompile Include="pthread_getschedparam.c" />
|
<ClCompile Include="pthread_getschedparam.c" />
|
||||||
<ClCompile Include="pthread_getspecific.c" />
|
<ClCompile Include="pthread_getspecific.c" />
|
||||||
<ClCompile Include="pthread_getw32threadhandle_np.c" />
|
<ClCompile Include="pthread_getw32threadhandle_np.c" />
|
||||||
<ClCompile Include="pthread_join.c" />
|
<ClCompile Include="pthread_join.c" />
|
||||||
<ClCompile Include="pthread_key_create.c" />
|
<ClCompile Include="pthread_key_create.c" />
|
||||||
<ClCompile Include="pthread_key_delete.c" />
|
<ClCompile Include="pthread_key_delete.c" />
|
||||||
<ClCompile Include="pthread_kill.c" />
|
<ClCompile Include="pthread_kill.c" />
|
||||||
<ClCompile Include="pthread_num_processors_np.c" />
|
<ClCompile Include="pthread_num_processors_np.c" />
|
||||||
<ClCompile Include="pthread_once.c" />
|
<ClCompile Include="pthread_once.c" />
|
||||||
<ClCompile Include="pthread_self.c" />
|
<ClCompile Include="pthread_self.c" />
|
||||||
<ClCompile Include="pthread_setcancelstate.c" />
|
<ClCompile Include="pthread_setcancelstate.c" />
|
||||||
<ClCompile Include="pthread_setcanceltype.c" />
|
<ClCompile Include="pthread_setcanceltype.c" />
|
||||||
<ClCompile Include="pthread_setconcurrency.c" />
|
<ClCompile Include="pthread_setconcurrency.c" />
|
||||||
<ClCompile Include="pthread_setschedparam.c" />
|
<ClCompile Include="pthread_setschedparam.c" />
|
||||||
<ClCompile Include="pthread_setspecific.c" />
|
<ClCompile Include="pthread_setspecific.c" />
|
||||||
<ClCompile Include="pthread_testcancel.c" />
|
<ClCompile Include="pthread_testcancel.c" />
|
||||||
<ClCompile Include="pthread_win32_attach_detach_np.c" />
|
<ClCompile Include="pthread_win32_attach_detach_np.c" />
|
||||||
<ClCompile Include="ptw32_calloc.c" />
|
<ClCompile Include="ptw32_calloc.c" />
|
||||||
<ClCompile Include="ptw32_callUserDestroyRoutines.c" />
|
<ClCompile Include="ptw32_callUserDestroyRoutines.c" />
|
||||||
<ClCompile Include="ptw32_getprocessors.c" />
|
<ClCompile Include="ptw32_getprocessors.c" />
|
||||||
<ClCompile Include="ptw32_is_attr.c" />
|
<ClCompile Include="ptw32_is_attr.c" />
|
||||||
<ClCompile Include="ptw32_MCS_lock.c" />
|
<ClCompile Include="ptw32_MCS_lock.c" />
|
||||||
<ClCompile Include="ptw32_mutex_check_need_init.c" />
|
<ClCompile Include="ptw32_mutex_check_need_init.c" />
|
||||||
<ClCompile Include="ptw32_new.c" />
|
<ClCompile Include="ptw32_new.c" />
|
||||||
<ClCompile Include="ptw32_processInitialize.c" />
|
<ClCompile Include="ptw32_processInitialize.c" />
|
||||||
<ClCompile Include="ptw32_processTerminate.c" />
|
<ClCompile Include="ptw32_processTerminate.c" />
|
||||||
<ClCompile Include="ptw32_relmillisecs.c" />
|
<ClCompile Include="ptw32_relmillisecs.c" />
|
||||||
<ClCompile Include="ptw32_reuse.c" />
|
<ClCompile Include="ptw32_reuse.c" />
|
||||||
<ClCompile Include="ptw32_semwait.c" />
|
<ClCompile Include="ptw32_semwait.c" />
|
||||||
<ClCompile Include="ptw32_threadDestroy.c" />
|
<ClCompile Include="ptw32_threadDestroy.c" />
|
||||||
<ClCompile Include="ptw32_threadStart.c" />
|
<ClCompile Include="ptw32_threadStart.c" />
|
||||||
<ClCompile Include="ptw32_throw.c" />
|
<ClCompile Include="ptw32_throw.c" />
|
||||||
<ClCompile Include="ptw32_timespec.c" />
|
<ClCompile Include="ptw32_timespec.c" />
|
||||||
<ClCompile Include="ptw32_tkAssocCreate.c" />
|
<ClCompile Include="ptw32_tkAssocCreate.c" />
|
||||||
<ClCompile Include="ptw32_tkAssocDestroy.c" />
|
<ClCompile Include="ptw32_tkAssocDestroy.c" />
|
||||||
<ClCompile Include="sched_get_priority_max.c" />
|
<ClCompile Include="sched_get_priority_max.c" />
|
||||||
<ClCompile Include="sched_get_priority_min.c" />
|
<ClCompile Include="sched_get_priority_min.c" />
|
||||||
<ClCompile Include="sched_getscheduler.c" />
|
<ClCompile Include="sched_getscheduler.c" />
|
||||||
<ClCompile Include="sched_setscheduler.c" />
|
<ClCompile Include="sched_setscheduler.c" />
|
||||||
<ClCompile Include="sched_yield.c" />
|
<ClCompile Include="sched_yield.c" />
|
||||||
<ClCompile Include="pthread_rwlock_destroy.c" />
|
<ClCompile Include="pthread_rwlock_destroy.c" />
|
||||||
<ClCompile Include="pthread_rwlock_init.c" />
|
<ClCompile Include="pthread_rwlock_init.c" />
|
||||||
<ClCompile Include="pthread_rwlock_rdlock.c" />
|
<ClCompile Include="pthread_rwlock_rdlock.c" />
|
||||||
<ClCompile Include="pthread_rwlock_timedrdlock.c" />
|
<ClCompile Include="pthread_rwlock_timedrdlock.c" />
|
||||||
<ClCompile Include="pthread_rwlock_timedwrlock.c" />
|
<ClCompile Include="pthread_rwlock_timedwrlock.c" />
|
||||||
<ClCompile Include="pthread_rwlock_tryrdlock.c" />
|
<ClCompile Include="pthread_rwlock_tryrdlock.c" />
|
||||||
<ClCompile Include="pthread_rwlock_trywrlock.c" />
|
<ClCompile Include="pthread_rwlock_trywrlock.c" />
|
||||||
<ClCompile Include="pthread_rwlock_unlock.c" />
|
<ClCompile Include="pthread_rwlock_unlock.c" />
|
||||||
<ClCompile Include="pthread_rwlock_wrlock.c" />
|
<ClCompile Include="pthread_rwlock_wrlock.c" />
|
||||||
<ClCompile Include="pthread_rwlockattr_destroy.c" />
|
<ClCompile Include="pthread_rwlockattr_destroy.c" />
|
||||||
<ClCompile Include="pthread_rwlockattr_getpshared.c" />
|
<ClCompile Include="pthread_rwlockattr_getpshared.c" />
|
||||||
<ClCompile Include="pthread_rwlockattr_init.c" />
|
<ClCompile Include="pthread_rwlockattr_init.c" />
|
||||||
<ClCompile Include="pthread_rwlockattr_setpshared.c" />
|
<ClCompile Include="pthread_rwlockattr_setpshared.c" />
|
||||||
<ClCompile Include="ptw32_rwlock_cancelwrwait.c" />
|
<ClCompile Include="ptw32_rwlock_cancelwrwait.c" />
|
||||||
<ClCompile Include="ptw32_rwlock_check_need_init.c" />
|
<ClCompile Include="ptw32_rwlock_check_need_init.c" />
|
||||||
<ClCompile Include="pthread_cond_destroy.c" />
|
<ClCompile Include="pthread_cond_destroy.c" />
|
||||||
<ClCompile Include="pthread_cond_init.c" />
|
<ClCompile Include="pthread_cond_init.c" />
|
||||||
<ClCompile Include="pthread_cond_signal.c" />
|
<ClCompile Include="pthread_cond_signal.c" />
|
||||||
<ClCompile Include="pthread_cond_wait.c" />
|
<ClCompile Include="pthread_cond_wait.c" />
|
||||||
<ClCompile Include="pthread_condattr_destroy.c" />
|
<ClCompile Include="pthread_condattr_destroy.c" />
|
||||||
<ClCompile Include="pthread_condattr_getpshared.c" />
|
<ClCompile Include="pthread_condattr_getpshared.c" />
|
||||||
<ClCompile Include="pthread_condattr_init.c" />
|
<ClCompile Include="pthread_condattr_init.c" />
|
||||||
<ClCompile Include="pthread_condattr_setpshared.c" />
|
<ClCompile Include="pthread_condattr_setpshared.c" />
|
||||||
<ClCompile Include="pthread_timechange_handler_np.c" />
|
<ClCompile Include="pthread_timechange_handler_np.c" />
|
||||||
<ClCompile Include="ptw32_cond_check_need_init.c" />
|
<ClCompile Include="ptw32_cond_check_need_init.c" />
|
||||||
<ClCompile Include="pthread_attr_destroy.c" />
|
<ClCompile Include="pthread_attr_destroy.c" />
|
||||||
<ClCompile Include="pthread_attr_getdetachstate.c" />
|
<ClCompile Include="pthread_attr_getdetachstate.c" />
|
||||||
<ClCompile Include="pthread_attr_getinheritsched.c" />
|
<ClCompile Include="pthread_attr_getinheritsched.c" />
|
||||||
<ClCompile Include="pthread_attr_getschedparam.c" />
|
<ClCompile Include="pthread_attr_getschedparam.c" />
|
||||||
<ClCompile Include="pthread_attr_getschedpolicy.c" />
|
<ClCompile Include="pthread_attr_getschedpolicy.c" />
|
||||||
<ClCompile Include="pthread_attr_getscope.c" />
|
<ClCompile Include="pthread_attr_getscope.c" />
|
||||||
<ClCompile Include="pthread_attr_getstackaddr.c" />
|
<ClCompile Include="pthread_attr_getstackaddr.c" />
|
||||||
<ClCompile Include="pthread_attr_getstacksize.c" />
|
<ClCompile Include="pthread_attr_getstacksize.c" />
|
||||||
<ClCompile Include="pthread_attr_init.c" />
|
<ClCompile Include="pthread_attr_init.c" />
|
||||||
<ClCompile Include="pthread_attr_setdetachstate.c" />
|
<ClCompile Include="pthread_attr_setdetachstate.c" />
|
||||||
<ClCompile Include="pthread_attr_setinheritsched.c" />
|
<ClCompile Include="pthread_attr_setinheritsched.c" />
|
||||||
<ClCompile Include="pthread_attr_setschedparam.c" />
|
<ClCompile Include="pthread_attr_setschedparam.c" />
|
||||||
<ClCompile Include="pthread_attr_setschedpolicy.c" />
|
<ClCompile Include="pthread_attr_setschedpolicy.c" />
|
||||||
<ClCompile Include="pthread_attr_setscope.c" />
|
<ClCompile Include="pthread_attr_setscope.c" />
|
||||||
<ClCompile Include="pthread_attr_setstackaddr.c" />
|
<ClCompile Include="pthread_attr_setstackaddr.c" />
|
||||||
<ClCompile Include="pthread_attr_setstacksize.c" />
|
<ClCompile Include="pthread_attr_setstacksize.c" />
|
||||||
<ClCompile Include="pthread_mutex_destroy.c" />
|
<ClCompile Include="pthread_mutex_destroy.c" />
|
||||||
<ClCompile Include="pthread_mutex_init.c" />
|
<ClCompile Include="pthread_mutex_init.c" />
|
||||||
<ClCompile Include="pthread_mutex_lock.c" />
|
<ClCompile Include="pthread_mutex_lock.c" />
|
||||||
<ClCompile Include="pthread_mutex_timedlock.c" />
|
<ClCompile Include="pthread_mutex_timedlock.c" />
|
||||||
<ClCompile Include="pthread_mutex_trylock.c" />
|
<ClCompile Include="pthread_mutex_trylock.c" />
|
||||||
<ClCompile Include="pthread_mutex_unlock.c" />
|
<ClCompile Include="pthread_mutex_unlock.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_destroy.c" />
|
<ClCompile Include="pthread_mutexattr_destroy.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_getkind_np.c" />
|
<ClCompile Include="pthread_mutexattr_getkind_np.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_getpshared.c" />
|
<ClCompile Include="pthread_mutexattr_getpshared.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_gettype.c" />
|
<ClCompile Include="pthread_mutexattr_gettype.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_init.c" />
|
<ClCompile Include="pthread_mutexattr_init.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_setkind_np.c" />
|
<ClCompile Include="pthread_mutexattr_setkind_np.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_setpshared.c" />
|
<ClCompile Include="pthread_mutexattr_setpshared.c" />
|
||||||
<ClCompile Include="pthread_mutexattr_settype.c" />
|
<ClCompile Include="pthread_mutexattr_settype.c" />
|
||||||
<ClCompile Include="sem_close.c" />
|
<ClCompile Include="sem_close.c" />
|
||||||
<ClCompile Include="sem_destroy.c" />
|
<ClCompile Include="sem_destroy.c" />
|
||||||
<ClCompile Include="sem_getvalue.c" />
|
<ClCompile Include="sem_getvalue.c" />
|
||||||
<ClCompile Include="sem_init.c" />
|
<ClCompile Include="sem_init.c" />
|
||||||
<ClCompile Include="sem_open.c" />
|
<ClCompile Include="sem_open.c" />
|
||||||
<ClCompile Include="sem_post.c" />
|
<ClCompile Include="sem_post.c" />
|
||||||
<ClCompile Include="sem_post_multiple.c" />
|
<ClCompile Include="sem_post_multiple.c" />
|
||||||
<ClCompile Include="sem_timedwait.c" />
|
<ClCompile Include="sem_timedwait.c" />
|
||||||
<ClCompile Include="sem_trywait.c" />
|
<ClCompile Include="sem_trywait.c" />
|
||||||
<ClCompile Include="sem_unlink.c" />
|
<ClCompile Include="sem_unlink.c" />
|
||||||
<ClCompile Include="sem_wait.c" />
|
<ClCompile Include="sem_wait.c" />
|
||||||
<ClCompile Include="pthread_spin_destroy.c">
|
<ClCompile Include="pthread_spin_destroy.c">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_init.c">
|
<ClCompile Include="pthread_spin_init.c">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_lock.c">
|
<ClCompile Include="pthread_spin_lock.c">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_trylock.c">
|
<ClCompile Include="pthread_spin_trylock.c">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="pthread_spin_unlock.c">
|
<ClCompile Include="pthread_spin_unlock.c">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ptw32_spinlock_check_need_init.c">
|
<ClCompile Include="ptw32_spinlock_check_need_init.c">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="config.h" />
|
<ClInclude Include="config.h" />
|
||||||
<ClInclude Include="ptw32pch.h" />
|
<ClInclude Include="ptw32pch.h" />
|
||||||
<ClInclude Include="include\implement.h" />
|
<ClInclude Include="include\implement.h" />
|
||||||
<ClInclude Include="include\need_errno.h" />
|
<ClInclude Include="include\need_errno.h" />
|
||||||
<ClInclude Include="include\pthread.h" />
|
<ClInclude Include="include\pthread.h" />
|
||||||
<ClInclude Include="resource.h" />
|
<ClInclude Include="resource.h" />
|
||||||
<ClInclude Include="include\sched.h" />
|
<ClInclude Include="include\sched.h" />
|
||||||
<ClInclude Include="include\semaphore.h" />
|
<ClInclude Include="include\semaphore.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="ANNOUNCE" />
|
<None Include="ANNOUNCE" />
|
||||||
<None Include="BUGS" />
|
<None Include="BUGS" />
|
||||||
<None Include="CONTRIBUTORS" />
|
<None Include="CONTRIBUTORS" />
|
||||||
<None Include="COPYING" />
|
<None Include="COPYING" />
|
||||||
<None Include="FAQ" />
|
<None Include="FAQ" />
|
||||||
<None Include="MAINTAINERS" />
|
<None Include="MAINTAINERS" />
|
||||||
<None Include="NEWS" />
|
<None Include="NEWS" />
|
||||||
<None Include="PCSX2.txt" />
|
<None Include="PCSX2.txt" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="w32pthreads.rc" />
|
<ResourceCompile Include="w32pthreads.rc" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,100 +1,100 @@
|
||||||
// Microsoft Visual C++ generated resource script.
|
// Microsoft Visual C++ generated resource script.
|
||||||
//
|
//
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
|
|
||||||
#define APSTUDIO_READONLY_SYMBOLS
|
#define APSTUDIO_READONLY_SYMBOLS
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Generated from the TEXTINCLUDE 2 resource.
|
// Generated from the TEXTINCLUDE 2 resource.
|
||||||
//
|
//
|
||||||
#include "afxresmw.h"
|
#include "afxresmw.h"
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#undef APSTUDIO_READONLY_SYMBOLS
|
#undef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// English (U.S.) resources
|
// English (U.S.) resources
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
#pragma code_page(1252)
|
#pragma code_page(1252)
|
||||||
#endif //_WIN32
|
#endif //_WIN32
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// TEXTINCLUDE
|
// TEXTINCLUDE
|
||||||
//
|
//
|
||||||
|
|
||||||
1 TEXTINCLUDE
|
1 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"resource.h\0"
|
"resource.h\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
2 TEXTINCLUDE
|
2 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"#include ""afxresmw.h""\r\0"
|
"#include ""afxresmw.h""\r\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
3 TEXTINCLUDE
|
3 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"\r\0"
|
"\r\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
#endif // APSTUDIO_INVOKED
|
#endif // APSTUDIO_INVOKED
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Version
|
// Version
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 2,8,4,0
|
FILEVERSION 2,8,4,0
|
||||||
PRODUCTVERSION 2,8,0,0
|
PRODUCTVERSION 2,8,0,0
|
||||||
FILEFLAGSMASK 0x17L
|
FILEFLAGSMASK 0x17L
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
#else
|
#else
|
||||||
FILEFLAGS 0x0L
|
FILEFLAGS 0x0L
|
||||||
#endif
|
#endif
|
||||||
FILEOS 0x4L
|
FILEOS 0x4L
|
||||||
FILETYPE 0x2L
|
FILETYPE 0x2L
|
||||||
FILESUBTYPE 0x0L
|
FILESUBTYPE 0x0L
|
||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "StringFileInfo"
|
BLOCK "StringFileInfo"
|
||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904b0"
|
BLOCK "040904b0"
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "Comments", "Built for PCSX2 (SEH, CDECL, Align16)"
|
VALUE "Comments", "Built for PCSX2 (SEH, CDECL, Align16)"
|
||||||
VALUE "FileDescription", "POSIX Threads for Win32"
|
VALUE "FileDescription", "POSIX Threads for Win32"
|
||||||
VALUE "FileVersion", "2.8.pxr4"
|
VALUE "FileVersion", "2.8.pxr4"
|
||||||
VALUE "InternalName", "w32pthreads"
|
VALUE "InternalName", "w32pthreads"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2009"
|
VALUE "LegalCopyright", "Copyright (C) 2009"
|
||||||
VALUE "OriginalFilename", "w32pthreads.v4"
|
VALUE "OriginalFilename", "w32pthreads.v4"
|
||||||
VALUE "ProductName", "w32pthreads"
|
VALUE "ProductName", "w32pthreads"
|
||||||
VALUE "ProductVersion", "2.8"
|
VALUE "ProductVersion", "2.8"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "Translation", 0x409, 1200
|
VALUE "Translation", 0x409, 1200
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
#endif // English (U.S.) resources
|
#endif // English (U.S.) resources
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef APSTUDIO_INVOKED
|
#ifndef APSTUDIO_INVOKED
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// Generated from the TEXTINCLUDE 3 resource.
|
// Generated from the TEXTINCLUDE 3 resource.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
#endif // not APSTUDIO_INVOKED
|
#endif // not APSTUDIO_INVOKED
|
||||||
|
|
||||||
|
|
|
@ -1,359 +1,359 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1999 - 2005 NetGroup, Politecnico di Torino (Italy)
|
* Copyright (c) 1999 - 2005 NetGroup, Politecnico di Torino (Italy)
|
||||||
* Copyright (c) 2005 - 2007 CACE Technologies, Davis (California)
|
* Copyright (c) 2005 - 2007 CACE Technologies, Davis (California)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
* are met:
|
* are met:
|
||||||
*
|
*
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* notice, this list of conditions and the following disclaimer.
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
* documentation and/or other materials provided with the distribution.
|
* documentation and/or other materials provided with the distribution.
|
||||||
* 3. Neither the name of the Politecnico di Torino, CACE Technologies
|
* 3. Neither the name of the Politecnico di Torino, CACE Technologies
|
||||||
* nor the names of its contributors may be used to endorse or promote
|
* nor the names of its contributors may be used to endorse or promote
|
||||||
* products derived from this software without specific prior written
|
* products derived from this software without specific prior written
|
||||||
* permission.
|
* permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** @ingroup packetapi
|
/** @ingroup packetapi
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** @defgroup packet32h Packet.dll definitions and data structures
|
/** @defgroup packet32h Packet.dll definitions and data structures
|
||||||
* Packet32.h contains the data structures and the definitions used by packet.dll.
|
* Packet32.h contains the data structures and the definitions used by packet.dll.
|
||||||
* The file is used both by the Win9x and the WinNTx versions of packet.dll, and can be included
|
* The file is used both by the Win9x and the WinNTx versions of packet.dll, and can be included
|
||||||
* by the applications that use the functions of this library
|
* by the applications that use the functions of this library
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __PACKET32
|
#ifndef __PACKET32
|
||||||
#define __PACKET32
|
#define __PACKET32
|
||||||
|
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
|
|
||||||
#ifdef HAVE_AIRPCAP_API
|
#ifdef HAVE_AIRPCAP_API
|
||||||
#include <airpcap.h>
|
#include <airpcap.h>
|
||||||
#else
|
#else
|
||||||
#if !defined(AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_)
|
#if !defined(AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_)
|
||||||
#define AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_
|
#define AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_
|
||||||
typedef struct _AirpcapHandle *PAirpcapHandle;
|
typedef struct _AirpcapHandle *PAirpcapHandle;
|
||||||
#endif /* AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_ */
|
#endif /* AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_ */
|
||||||
#endif /* HAVE_AIRPCAP_API */
|
#endif /* HAVE_AIRPCAP_API */
|
||||||
|
|
||||||
#ifdef HAVE_DAG_API
|
#ifdef HAVE_DAG_API
|
||||||
#include <dagc.h>
|
#include <dagc.h>
|
||||||
#endif /* HAVE_DAG_API */
|
#endif /* HAVE_DAG_API */
|
||||||
|
|
||||||
// Working modes
|
// Working modes
|
||||||
#define PACKET_MODE_CAPT 0x0 ///< Capture mode
|
#define PACKET_MODE_CAPT 0x0 ///< Capture mode
|
||||||
#define PACKET_MODE_STAT 0x1 ///< Statistical mode
|
#define PACKET_MODE_STAT 0x1 ///< Statistical mode
|
||||||
#define PACKET_MODE_MON 0x2 ///< Monitoring mode
|
#define PACKET_MODE_MON 0x2 ///< Monitoring mode
|
||||||
#define PACKET_MODE_DUMP 0x10 ///< Dump mode
|
#define PACKET_MODE_DUMP 0x10 ///< Dump mode
|
||||||
#define PACKET_MODE_STAT_DUMP MODE_DUMP | MODE_STAT ///< Statistical dump Mode
|
#define PACKET_MODE_STAT_DUMP MODE_DUMP | MODE_STAT ///< Statistical dump Mode
|
||||||
|
|
||||||
|
|
||||||
/// Alignment macro. Defines the alignment size.
|
/// Alignment macro. Defines the alignment size.
|
||||||
#define Packet_ALIGNMENT sizeof(int)
|
#define Packet_ALIGNMENT sizeof(int)
|
||||||
/// Alignment macro. Rounds up to the next even multiple of Packet_ALIGNMENT.
|
/// Alignment macro. Rounds up to the next even multiple of Packet_ALIGNMENT.
|
||||||
#define Packet_WORDALIGN(x) (((x)+(Packet_ALIGNMENT-1))&~(Packet_ALIGNMENT-1))
|
#define Packet_WORDALIGN(x) (((x)+(Packet_ALIGNMENT-1))&~(Packet_ALIGNMENT-1))
|
||||||
|
|
||||||
#define NdisMediumNull -1 ///< Custom linktype: NDIS doesn't provide an equivalent
|
#define NdisMediumNull -1 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||||
#define NdisMediumCHDLC -2 ///< Custom linktype: NDIS doesn't provide an equivalent
|
#define NdisMediumCHDLC -2 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||||
#define NdisMediumPPPSerial -3 ///< Custom linktype: NDIS doesn't provide an equivalent
|
#define NdisMediumPPPSerial -3 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||||
#define NdisMediumBare80211 -4 ///< Custom linktype: NDIS doesn't provide an equivalent
|
#define NdisMediumBare80211 -4 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||||
#define NdisMediumRadio80211 -5 ///< Custom linktype: NDIS doesn't provide an equivalent
|
#define NdisMediumRadio80211 -5 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||||
#define NdisMediumPpi -6 ///< Custom linktype: NDIS doesn't provide an equivalent
|
#define NdisMediumPpi -6 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||||
|
|
||||||
// Loopback behaviour definitions
|
// Loopback behaviour definitions
|
||||||
#define NPF_DISABLE_LOOPBACK 1 ///< Drop the packets sent by the NPF driver
|
#define NPF_DISABLE_LOOPBACK 1 ///< Drop the packets sent by the NPF driver
|
||||||
#define NPF_ENABLE_LOOPBACK 2 ///< Capture the packets sent by the NPF driver
|
#define NPF_ENABLE_LOOPBACK 2 ///< Capture the packets sent by the NPF driver
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Network type structure.
|
\brief Network type structure.
|
||||||
|
|
||||||
This structure is used by the PacketGetNetType() function to return information on the current adapter's type and speed.
|
This structure is used by the PacketGetNetType() function to return information on the current adapter's type and speed.
|
||||||
*/
|
*/
|
||||||
typedef struct NetType
|
typedef struct NetType
|
||||||
{
|
{
|
||||||
UINT LinkType; ///< The MAC of the current network adapter (see function PacketGetNetType() for more information)
|
UINT LinkType; ///< The MAC of the current network adapter (see function PacketGetNetType() for more information)
|
||||||
ULONGLONG LinkSpeed; ///< The speed of the network in bits per second
|
ULONGLONG LinkSpeed; ///< The speed of the network in bits per second
|
||||||
}NetType;
|
}NetType;
|
||||||
|
|
||||||
|
|
||||||
//some definitions stolen from libpcap
|
//some definitions stolen from libpcap
|
||||||
|
|
||||||
#ifndef BPF_MAJOR_VERSION
|
#ifndef BPF_MAJOR_VERSION
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief A BPF pseudo-assembly program.
|
\brief A BPF pseudo-assembly program.
|
||||||
|
|
||||||
The program will be injected in the kernel by the PacketSetBPF() function and applied to every incoming packet.
|
The program will be injected in the kernel by the PacketSetBPF() function and applied to every incoming packet.
|
||||||
*/
|
*/
|
||||||
struct bpf_program
|
struct bpf_program
|
||||||
{
|
{
|
||||||
UINT bf_len; ///< Indicates the number of instructions of the program, i.e. the number of struct bpf_insn that will follow.
|
UINT bf_len; ///< Indicates the number of instructions of the program, i.e. the number of struct bpf_insn that will follow.
|
||||||
struct bpf_insn *bf_insns; ///< A pointer to the first instruction of the program.
|
struct bpf_insn *bf_insns; ///< A pointer to the first instruction of the program.
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief A single BPF pseudo-instruction.
|
\brief A single BPF pseudo-instruction.
|
||||||
|
|
||||||
bpf_insn contains a single instruction for the BPF register-machine. It is used to send a filter program to the driver.
|
bpf_insn contains a single instruction for the BPF register-machine. It is used to send a filter program to the driver.
|
||||||
*/
|
*/
|
||||||
struct bpf_insn
|
struct bpf_insn
|
||||||
{
|
{
|
||||||
USHORT code; ///< Instruction type and addressing mode.
|
USHORT code; ///< Instruction type and addressing mode.
|
||||||
UCHAR jt; ///< Jump if true
|
UCHAR jt; ///< Jump if true
|
||||||
UCHAR jf; ///< Jump if false
|
UCHAR jf; ///< Jump if false
|
||||||
int k; ///< Generic field used for various purposes.
|
int k; ///< Generic field used for various purposes.
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Structure that contains a couple of statistics values on the current capture.
|
\brief Structure that contains a couple of statistics values on the current capture.
|
||||||
|
|
||||||
It is used by packet.dll to return statistics about a capture session.
|
It is used by packet.dll to return statistics about a capture session.
|
||||||
*/
|
*/
|
||||||
struct bpf_stat
|
struct bpf_stat
|
||||||
{
|
{
|
||||||
UINT bs_recv; ///< Number of packets that the driver received from the network adapter
|
UINT bs_recv; ///< Number of packets that the driver received from the network adapter
|
||||||
///< from the beginning of the current capture. This value includes the packets
|
///< from the beginning of the current capture. This value includes the packets
|
||||||
///< lost by the driver.
|
///< lost by the driver.
|
||||||
UINT bs_drop; ///< number of packets that the driver lost from the beginning of a capture.
|
UINT bs_drop; ///< number of packets that the driver lost from the beginning of a capture.
|
||||||
///< Basically, a packet is lost when the the buffer of the driver is full.
|
///< Basically, a packet is lost when the the buffer of the driver is full.
|
||||||
///< In this situation the packet cannot be stored and the driver rejects it.
|
///< In this situation the packet cannot be stored and the driver rejects it.
|
||||||
UINT ps_ifdrop; ///< drops by interface. XXX not yet supported
|
UINT ps_ifdrop; ///< drops by interface. XXX not yet supported
|
||||||
UINT bs_capt; ///< number of packets that pass the filter, find place in the kernel buffer and
|
UINT bs_capt; ///< number of packets that pass the filter, find place in the kernel buffer and
|
||||||
///< thus reach the application.
|
///< thus reach the application.
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Packet header.
|
\brief Packet header.
|
||||||
|
|
||||||
This structure defines the header associated with every packet delivered to the application.
|
This structure defines the header associated with every packet delivered to the application.
|
||||||
*/
|
*/
|
||||||
struct bpf_hdr
|
struct bpf_hdr
|
||||||
{
|
{
|
||||||
struct timeval bh_tstamp; ///< The timestamp associated with the captured packet.
|
struct timeval bh_tstamp; ///< The timestamp associated with the captured packet.
|
||||||
///< It is stored in a TimeVal structure.
|
///< It is stored in a TimeVal structure.
|
||||||
UINT bh_caplen; ///< Length of captured portion. The captured portion <b>can be different</b>
|
UINT bh_caplen; ///< Length of captured portion. The captured portion <b>can be different</b>
|
||||||
///< from the original packet, because it is possible (with a proper filter)
|
///< from the original packet, because it is possible (with a proper filter)
|
||||||
///< to instruct the driver to capture only a portion of the packets.
|
///< to instruct the driver to capture only a portion of the packets.
|
||||||
UINT bh_datalen; ///< Original length of packet
|
UINT bh_datalen; ///< Original length of packet
|
||||||
USHORT bh_hdrlen; ///< Length of bpf header (this struct plus alignment padding). In some cases,
|
USHORT bh_hdrlen; ///< Length of bpf header (this struct plus alignment padding). In some cases,
|
||||||
///< a padding could be added between the end of this structure and the packet
|
///< a padding could be added between the end of this structure and the packet
|
||||||
///< data for performance reasons. This filed can be used to retrieve the actual data
|
///< data for performance reasons. This filed can be used to retrieve the actual data
|
||||||
///< of the packet.
|
///< of the packet.
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Dump packet header.
|
\brief Dump packet header.
|
||||||
|
|
||||||
This structure defines the header associated with the packets in a buffer to be used with PacketSendPackets().
|
This structure defines the header associated with the packets in a buffer to be used with PacketSendPackets().
|
||||||
It is simpler than the bpf_hdr, because it corresponds to the header associated by WinPcap and libpcap to a
|
It is simpler than the bpf_hdr, because it corresponds to the header associated by WinPcap and libpcap to a
|
||||||
packet in a dump file. This makes straightforward sending WinPcap dump files to the network.
|
packet in a dump file. This makes straightforward sending WinPcap dump files to the network.
|
||||||
*/
|
*/
|
||||||
struct dump_bpf_hdr{
|
struct dump_bpf_hdr{
|
||||||
struct timeval ts; ///< Time stamp of the packet
|
struct timeval ts; ///< Time stamp of the packet
|
||||||
UINT caplen; ///< Length of captured portion. The captured portion can smaller than the
|
UINT caplen; ///< Length of captured portion. The captured portion can smaller than the
|
||||||
///< the original packet, because it is possible (with a proper filter) to
|
///< the original packet, because it is possible (with a proper filter) to
|
||||||
///< instruct the driver to capture only a portion of the packets.
|
///< instruct the driver to capture only a portion of the packets.
|
||||||
UINT len; ///< Length of the original packet (off wire).
|
UINT len; ///< Length of the original packet (off wire).
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct bpf_stat;
|
struct bpf_stat;
|
||||||
|
|
||||||
#define DOSNAMEPREFIX TEXT("Packet_") ///< Prefix added to the adapters device names to create the WinPcap devices
|
#define DOSNAMEPREFIX TEXT("Packet_") ///< Prefix added to the adapters device names to create the WinPcap devices
|
||||||
#define MAX_LINK_NAME_LENGTH 64 //< Maximum length of the devices symbolic links
|
#define MAX_LINK_NAME_LENGTH 64 //< Maximum length of the devices symbolic links
|
||||||
#define NMAX_PACKET 65535
|
#define NMAX_PACKET 65535
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Addresses of a network adapter.
|
\brief Addresses of a network adapter.
|
||||||
|
|
||||||
This structure is used by the PacketGetNetInfoEx() function to return the IP addresses associated with
|
This structure is used by the PacketGetNetInfoEx() function to return the IP addresses associated with
|
||||||
an adapter.
|
an adapter.
|
||||||
*/
|
*/
|
||||||
typedef struct npf_if_addr {
|
typedef struct npf_if_addr {
|
||||||
struct sockaddr_storage IPAddress; ///< IP address.
|
struct sockaddr_storage IPAddress; ///< IP address.
|
||||||
struct sockaddr_storage SubnetMask; ///< Netmask for that address.
|
struct sockaddr_storage SubnetMask; ///< Netmask for that address.
|
||||||
struct sockaddr_storage Broadcast; ///< Broadcast address.
|
struct sockaddr_storage Broadcast; ///< Broadcast address.
|
||||||
}npf_if_addr;
|
}npf_if_addr;
|
||||||
|
|
||||||
|
|
||||||
#define ADAPTER_NAME_LENGTH 256 + 12 ///< Maximum length for the name of an adapter. The value is the same used by the IP Helper API.
|
#define ADAPTER_NAME_LENGTH 256 + 12 ///< Maximum length for the name of an adapter. The value is the same used by the IP Helper API.
|
||||||
#define ADAPTER_DESC_LENGTH 128 ///< Maximum length for the description of an adapter. The value is the same used by the IP Helper API.
|
#define ADAPTER_DESC_LENGTH 128 ///< Maximum length for the description of an adapter. The value is the same used by the IP Helper API.
|
||||||
#define MAX_MAC_ADDR_LENGTH 8 ///< Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.
|
#define MAX_MAC_ADDR_LENGTH 8 ///< Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.
|
||||||
#define MAX_NETWORK_ADDRESSES 16 ///< Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.
|
#define MAX_NETWORK_ADDRESSES 16 ///< Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.
|
||||||
|
|
||||||
|
|
||||||
typedef struct WAN_ADAPTER_INT WAN_ADAPTER; ///< Describes an opened wan (dialup, VPN...) network adapter using the NetMon API
|
typedef struct WAN_ADAPTER_INT WAN_ADAPTER; ///< Describes an opened wan (dialup, VPN...) network adapter using the NetMon API
|
||||||
typedef WAN_ADAPTER *PWAN_ADAPTER; ///< Describes an opened wan (dialup, VPN...) network adapter using the NetMon API
|
typedef WAN_ADAPTER *PWAN_ADAPTER; ///< Describes an opened wan (dialup, VPN...) network adapter using the NetMon API
|
||||||
|
|
||||||
#define INFO_FLAG_NDIS_ADAPTER 0 ///< Flag for ADAPTER_INFO: this is a traditional ndis adapter
|
#define INFO_FLAG_NDIS_ADAPTER 0 ///< Flag for ADAPTER_INFO: this is a traditional ndis adapter
|
||||||
#define INFO_FLAG_NDISWAN_ADAPTER 1 ///< Flag for ADAPTER_INFO: this is a NdisWan adapter, and it's managed by WANPACKET
|
#define INFO_FLAG_NDISWAN_ADAPTER 1 ///< Flag for ADAPTER_INFO: this is a NdisWan adapter, and it's managed by WANPACKET
|
||||||
#define INFO_FLAG_DAG_CARD 2 ///< Flag for ADAPTER_INFO: this is a DAG card
|
#define INFO_FLAG_DAG_CARD 2 ///< Flag for ADAPTER_INFO: this is a DAG card
|
||||||
#define INFO_FLAG_DAG_FILE 6 ///< Flag for ADAPTER_INFO: this is a DAG file
|
#define INFO_FLAG_DAG_FILE 6 ///< Flag for ADAPTER_INFO: this is a DAG file
|
||||||
#define INFO_FLAG_DONT_EXPORT 8 ///< Flag for ADAPTER_INFO: when this flag is set, the adapter will not be listed or openend by winpcap. This allows to prevent exporting broken network adapters, like for example FireWire ones.
|
#define INFO_FLAG_DONT_EXPORT 8 ///< Flag for ADAPTER_INFO: when this flag is set, the adapter will not be listed or openend by winpcap. This allows to prevent exporting broken network adapters, like for example FireWire ones.
|
||||||
#define INFO_FLAG_AIRPCAP_CARD 16 ///< Flag for ADAPTER_INFO: this is an airpcap card
|
#define INFO_FLAG_AIRPCAP_CARD 16 ///< Flag for ADAPTER_INFO: this is an airpcap card
|
||||||
#define INFO_FLAG_NPFIM_DEVICE 32
|
#define INFO_FLAG_NPFIM_DEVICE 32
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Describes an opened network adapter.
|
\brief Describes an opened network adapter.
|
||||||
|
|
||||||
This structure is the most important for the functioning of packet.dll, but the great part of its fields
|
This structure is the most important for the functioning of packet.dll, but the great part of its fields
|
||||||
should be ignored by the user, since the library offers functions that avoid to cope with low-level parameters
|
should be ignored by the user, since the library offers functions that avoid to cope with low-level parameters
|
||||||
*/
|
*/
|
||||||
typedef struct _ADAPTER {
|
typedef struct _ADAPTER {
|
||||||
HANDLE hFile; ///< \internal Handle to an open instance of the NPF driver.
|
HANDLE hFile; ///< \internal Handle to an open instance of the NPF driver.
|
||||||
CHAR SymbolicLink[MAX_LINK_NAME_LENGTH]; ///< \internal A string containing the name of the network adapter currently opened.
|
CHAR SymbolicLink[MAX_LINK_NAME_LENGTH]; ///< \internal A string containing the name of the network adapter currently opened.
|
||||||
int NumWrites; ///< \internal Number of times a packets written on this adapter will be repeated
|
int NumWrites; ///< \internal Number of times a packets written on this adapter will be repeated
|
||||||
///< on the wire.
|
///< on the wire.
|
||||||
HANDLE ReadEvent; ///< A notification event associated with the read calls on the adapter.
|
HANDLE ReadEvent; ///< A notification event associated with the read calls on the adapter.
|
||||||
///< It can be passed to standard Win32 functions (like WaitForSingleObject
|
///< It can be passed to standard Win32 functions (like WaitForSingleObject
|
||||||
///< or WaitForMultipleObjects) to wait until the driver's buffer contains some
|
///< or WaitForMultipleObjects) to wait until the driver's buffer contains some
|
||||||
///< data. It is particularly useful in GUI applications that need to wait
|
///< data. It is particularly useful in GUI applications that need to wait
|
||||||
///< concurrently on several events. In Windows NT/2000 the PacketSetMinToCopy()
|
///< concurrently on several events. In Windows NT/2000 the PacketSetMinToCopy()
|
||||||
///< function can be used to define the minimum amount of data in the kernel buffer
|
///< function can be used to define the minimum amount of data in the kernel buffer
|
||||||
///< that will cause the event to be signalled.
|
///< that will cause the event to be signalled.
|
||||||
|
|
||||||
UINT ReadTimeOut; ///< \internal The amount of time after which a read on the driver will be released and
|
UINT ReadTimeOut; ///< \internal The amount of time after which a read on the driver will be released and
|
||||||
///< ReadEvent will be signaled, also if no packets were captured
|
///< ReadEvent will be signaled, also if no packets were captured
|
||||||
CHAR Name[ADAPTER_NAME_LENGTH];
|
CHAR Name[ADAPTER_NAME_LENGTH];
|
||||||
PWAN_ADAPTER pWanAdapter;
|
PWAN_ADAPTER pWanAdapter;
|
||||||
UINT Flags; ///< Adapter's flags. Tell if this adapter must be treated in a different way, using the Netmon API or the dagc API.
|
UINT Flags; ///< Adapter's flags. Tell if this adapter must be treated in a different way, using the Netmon API or the dagc API.
|
||||||
|
|
||||||
#ifdef HAVE_AIRPCAP_API
|
#ifdef HAVE_AIRPCAP_API
|
||||||
PAirpcapHandle AirpcapAd;
|
PAirpcapHandle AirpcapAd;
|
||||||
#endif // HAVE_AIRPCAP_API
|
#endif // HAVE_AIRPCAP_API
|
||||||
|
|
||||||
#ifdef HAVE_NPFIM_API
|
#ifdef HAVE_NPFIM_API
|
||||||
void* NpfImHandle;
|
void* NpfImHandle;
|
||||||
#endif // HAVE_NPFIM_API
|
#endif // HAVE_NPFIM_API
|
||||||
|
|
||||||
#ifdef HAVE_DAG_API
|
#ifdef HAVE_DAG_API
|
||||||
dagc_t *pDagCard; ///< Pointer to the dagc API adapter descriptor for this adapter
|
dagc_t *pDagCard; ///< Pointer to the dagc API adapter descriptor for this adapter
|
||||||
PCHAR DagBuffer; ///< Pointer to the buffer with the packets that is received from the DAG card
|
PCHAR DagBuffer; ///< Pointer to the buffer with the packets that is received from the DAG card
|
||||||
struct timeval DagReadTimeout; ///< Read timeout. The dagc API requires a timeval structure
|
struct timeval DagReadTimeout; ///< Read timeout. The dagc API requires a timeval structure
|
||||||
unsigned DagFcsLen; ///< Length of the frame check sequence attached to any packet by the card. Obtained from the registry
|
unsigned DagFcsLen; ///< Length of the frame check sequence attached to any packet by the card. Obtained from the registry
|
||||||
DWORD DagFastProcess; ///< True if the user requests fast capture processing on this card. Higher level applications can use this value to provide a faster but possibly unprecise capture (for example, libpcap doesn't convert the timestamps).
|
DWORD DagFastProcess; ///< True if the user requests fast capture processing on this card. Higher level applications can use this value to provide a faster but possibly unprecise capture (for example, libpcap doesn't convert the timestamps).
|
||||||
#endif // HAVE_DAG_API
|
#endif // HAVE_DAG_API
|
||||||
} ADAPTER, *LPADAPTER;
|
} ADAPTER, *LPADAPTER;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Structure that contains a group of packets coming from the driver.
|
\brief Structure that contains a group of packets coming from the driver.
|
||||||
|
|
||||||
This structure defines the header associated with every packet delivered to the application.
|
This structure defines the header associated with every packet delivered to the application.
|
||||||
*/
|
*/
|
||||||
typedef struct _PACKET {
|
typedef struct _PACKET {
|
||||||
HANDLE hEvent; ///< \deprecated Still present for compatibility with old applications.
|
HANDLE hEvent; ///< \deprecated Still present for compatibility with old applications.
|
||||||
OVERLAPPED OverLapped; ///< \deprecated Still present for compatibility with old applications.
|
OVERLAPPED OverLapped; ///< \deprecated Still present for compatibility with old applications.
|
||||||
PVOID Buffer; ///< Buffer with containing the packets. See the PacketReceivePacket() for
|
PVOID Buffer; ///< Buffer with containing the packets. See the PacketReceivePacket() for
|
||||||
///< details about the organization of the data in this buffer
|
///< details about the organization of the data in this buffer
|
||||||
UINT Length; ///< Length of the buffer
|
UINT Length; ///< Length of the buffer
|
||||||
DWORD ulBytesReceived; ///< Number of valid bytes present in the buffer, i.e. amount of data
|
DWORD ulBytesReceived; ///< Number of valid bytes present in the buffer, i.e. amount of data
|
||||||
///< received by the last call to PacketReceivePacket()
|
///< received by the last call to PacketReceivePacket()
|
||||||
BOOLEAN bIoComplete; ///< \deprecated Still present for compatibility with old applications.
|
BOOLEAN bIoComplete; ///< \deprecated Still present for compatibility with old applications.
|
||||||
} PACKET, *LPPACKET;
|
} PACKET, *LPPACKET;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Structure containing an OID request.
|
\brief Structure containing an OID request.
|
||||||
|
|
||||||
It is used by the PacketRequest() function to send an OID to the interface card driver.
|
It is used by the PacketRequest() function to send an OID to the interface card driver.
|
||||||
It can be used, for example, to retrieve the status of the error counters on the adapter, its MAC address,
|
It can be used, for example, to retrieve the status of the error counters on the adapter, its MAC address,
|
||||||
the list of the multicast groups defined on it, and so on.
|
the list of the multicast groups defined on it, and so on.
|
||||||
*/
|
*/
|
||||||
struct _PACKET_OID_DATA {
|
struct _PACKET_OID_DATA {
|
||||||
ULONG Oid; ///< OID code. See the Microsoft DDK documentation or the file ntddndis.h
|
ULONG Oid; ///< OID code. See the Microsoft DDK documentation or the file ntddndis.h
|
||||||
///< for a complete list of valid codes.
|
///< for a complete list of valid codes.
|
||||||
ULONG Length; ///< Length of the data field
|
ULONG Length; ///< Length of the data field
|
||||||
UCHAR Data[1]; ///< variable-lenght field that contains the information passed to or received
|
UCHAR Data[1]; ///< variable-lenght field that contains the information passed to or received
|
||||||
///< from the adapter.
|
///< from the adapter.
|
||||||
};
|
};
|
||||||
typedef struct _PACKET_OID_DATA PACKET_OID_DATA, *PPACKET_OID_DATA;
|
typedef struct _PACKET_OID_DATA PACKET_OID_DATA, *PPACKET_OID_DATA;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
BOOLEAN QueryWinPcapRegistryStringA(CHAR *SubKeyName,
|
BOOLEAN QueryWinPcapRegistryStringA(CHAR *SubKeyName,
|
||||||
CHAR *Value,
|
CHAR *Value,
|
||||||
UINT *pValueLen,
|
UINT *pValueLen,
|
||||||
CHAR *DefaultVal);
|
CHAR *DefaultVal);
|
||||||
|
|
||||||
BOOLEAN QueryWinPcapRegistryStringW(WCHAR *SubKeyName,
|
BOOLEAN QueryWinPcapRegistryStringW(WCHAR *SubKeyName,
|
||||||
WCHAR *Value,
|
WCHAR *Value,
|
||||||
UINT *pValueLen,
|
UINT *pValueLen,
|
||||||
WCHAR *DefaultVal);
|
WCHAR *DefaultVal);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// EXPORTED FUNCTIONS
|
// EXPORTED FUNCTIONS
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
PCHAR PacketGetVersion();
|
PCHAR PacketGetVersion();
|
||||||
PCHAR PacketGetDriverVersion();
|
PCHAR PacketGetDriverVersion();
|
||||||
BOOLEAN PacketSetMinToCopy(LPADAPTER AdapterObject,int nbytes);
|
BOOLEAN PacketSetMinToCopy(LPADAPTER AdapterObject,int nbytes);
|
||||||
BOOLEAN PacketSetNumWrites(LPADAPTER AdapterObject,int nwrites);
|
BOOLEAN PacketSetNumWrites(LPADAPTER AdapterObject,int nwrites);
|
||||||
BOOLEAN PacketSetMode(LPADAPTER AdapterObject,int mode);
|
BOOLEAN PacketSetMode(LPADAPTER AdapterObject,int mode);
|
||||||
BOOLEAN PacketSetReadTimeout(LPADAPTER AdapterObject,int timeout);
|
BOOLEAN PacketSetReadTimeout(LPADAPTER AdapterObject,int timeout);
|
||||||
BOOLEAN PacketSetBpf(LPADAPTER AdapterObject,struct bpf_program *fp);
|
BOOLEAN PacketSetBpf(LPADAPTER AdapterObject,struct bpf_program *fp);
|
||||||
BOOLEAN PacketSetLoopbackBehavior(LPADAPTER AdapterObject, UINT LoopbackBehavior);
|
BOOLEAN PacketSetLoopbackBehavior(LPADAPTER AdapterObject, UINT LoopbackBehavior);
|
||||||
INT PacketSetSnapLen(LPADAPTER AdapterObject,int snaplen);
|
INT PacketSetSnapLen(LPADAPTER AdapterObject,int snaplen);
|
||||||
BOOLEAN PacketGetStats(LPADAPTER AdapterObject,struct bpf_stat *s);
|
BOOLEAN PacketGetStats(LPADAPTER AdapterObject,struct bpf_stat *s);
|
||||||
BOOLEAN PacketGetStatsEx(LPADAPTER AdapterObject,struct bpf_stat *s);
|
BOOLEAN PacketGetStatsEx(LPADAPTER AdapterObject,struct bpf_stat *s);
|
||||||
BOOLEAN PacketSetBuff(LPADAPTER AdapterObject,int dim);
|
BOOLEAN PacketSetBuff(LPADAPTER AdapterObject,int dim);
|
||||||
BOOLEAN PacketGetNetType (LPADAPTER AdapterObject,NetType *type);
|
BOOLEAN PacketGetNetType (LPADAPTER AdapterObject,NetType *type);
|
||||||
LPADAPTER PacketOpenAdapter(PCHAR AdapterName);
|
LPADAPTER PacketOpenAdapter(PCHAR AdapterName);
|
||||||
BOOLEAN PacketSendPacket(LPADAPTER AdapterObject,LPPACKET pPacket,BOOLEAN Sync);
|
BOOLEAN PacketSendPacket(LPADAPTER AdapterObject,LPPACKET pPacket,BOOLEAN Sync);
|
||||||
INT PacketSendPackets(LPADAPTER AdapterObject,PVOID PacketBuff,ULONG Size, BOOLEAN Sync);
|
INT PacketSendPackets(LPADAPTER AdapterObject,PVOID PacketBuff,ULONG Size, BOOLEAN Sync);
|
||||||
LPPACKET PacketAllocatePacket(void);
|
LPPACKET PacketAllocatePacket(void);
|
||||||
VOID PacketInitPacket(LPPACKET lpPacket,PVOID Buffer,UINT Length);
|
VOID PacketInitPacket(LPPACKET lpPacket,PVOID Buffer,UINT Length);
|
||||||
VOID PacketFreePacket(LPPACKET lpPacket);
|
VOID PacketFreePacket(LPPACKET lpPacket);
|
||||||
BOOLEAN PacketReceivePacket(LPADAPTER AdapterObject,LPPACKET lpPacket,BOOLEAN Sync);
|
BOOLEAN PacketReceivePacket(LPADAPTER AdapterObject,LPPACKET lpPacket,BOOLEAN Sync);
|
||||||
BOOLEAN PacketSetHwFilter(LPADAPTER AdapterObject,ULONG Filter);
|
BOOLEAN PacketSetHwFilter(LPADAPTER AdapterObject,ULONG Filter);
|
||||||
BOOLEAN PacketGetAdapterNames(PTSTR pStr,PULONG BufferSize);
|
BOOLEAN PacketGetAdapterNames(PTSTR pStr,PULONG BufferSize);
|
||||||
BOOLEAN PacketGetNetInfoEx(PCHAR AdapterName, npf_if_addr* buffer, PLONG NEntries);
|
BOOLEAN PacketGetNetInfoEx(PCHAR AdapterName, npf_if_addr* buffer, PLONG NEntries);
|
||||||
BOOLEAN PacketRequest(LPADAPTER AdapterObject,BOOLEAN Set,PPACKET_OID_DATA OidData);
|
BOOLEAN PacketRequest(LPADAPTER AdapterObject,BOOLEAN Set,PPACKET_OID_DATA OidData);
|
||||||
HANDLE PacketGetReadEvent(LPADAPTER AdapterObject);
|
HANDLE PacketGetReadEvent(LPADAPTER AdapterObject);
|
||||||
BOOLEAN PacketSetDumpName(LPADAPTER AdapterObject, void *name, int len);
|
BOOLEAN PacketSetDumpName(LPADAPTER AdapterObject, void *name, int len);
|
||||||
BOOLEAN PacketSetDumpLimits(LPADAPTER AdapterObject, UINT maxfilesize, UINT maxnpacks);
|
BOOLEAN PacketSetDumpLimits(LPADAPTER AdapterObject, UINT maxfilesize, UINT maxnpacks);
|
||||||
BOOLEAN PacketIsDumpEnded(LPADAPTER AdapterObject, BOOLEAN sync);
|
BOOLEAN PacketIsDumpEnded(LPADAPTER AdapterObject, BOOLEAN sync);
|
||||||
BOOL PacketStopDriver();
|
BOOL PacketStopDriver();
|
||||||
VOID PacketCloseAdapter(LPADAPTER lpAdapter);
|
VOID PacketCloseAdapter(LPADAPTER lpAdapter);
|
||||||
BOOLEAN PacketStartOem(PCHAR errorString, UINT errorStringLength);
|
BOOLEAN PacketStartOem(PCHAR errorString, UINT errorStringLength);
|
||||||
BOOLEAN PacketStartOemEx(PCHAR errorString, UINT errorStringLength, ULONG flags);
|
BOOLEAN PacketStartOemEx(PCHAR errorString, UINT errorStringLength, ULONG flags);
|
||||||
PAirpcapHandle PacketGetAirPcapHandle(LPADAPTER AdapterObject);
|
PAirpcapHandle PacketGetAirPcapHandle(LPADAPTER AdapterObject);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Used by PacketStartOemEx
|
// Used by PacketStartOemEx
|
||||||
//
|
//
|
||||||
#define PACKET_START_OEM_NO_NETMON 0x00000001
|
#define PACKET_START_OEM_NO_NETMON 0x00000001
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif //__PACKET32
|
#endif //__PACKET32
|
||||||
|
|
|
@ -1,113 +1,113 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1999 - 2005 NetGroup, Politecnico di Torino (Italy)
|
* Copyright (c) 1999 - 2005 NetGroup, Politecnico di Torino (Italy)
|
||||||
* Copyright (c) 2005 - 2006 CACE Technologies, Davis (California)
|
* Copyright (c) 2005 - 2006 CACE Technologies, Davis (California)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
* are met:
|
* are met:
|
||||||
*
|
*
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* notice, this list of conditions and the following disclaimer.
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
* documentation and/or other materials provided with the distribution.
|
* documentation and/or other materials provided with the distribution.
|
||||||
* 3. Neither the name of the Politecnico di Torino, CACE Technologies
|
* 3. Neither the name of the Politecnico di Torino, CACE Technologies
|
||||||
* nor the names of its contributors may be used to endorse or promote
|
* nor the names of its contributors may be used to endorse or promote
|
||||||
* products derived from this software without specific prior written
|
* products derived from this software without specific prior written
|
||||||
* permission.
|
* permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __WIN32_EXTENSIONS_H__
|
#ifndef __WIN32_EXTENSIONS_H__
|
||||||
#define __WIN32_EXTENSIONS_H__
|
#define __WIN32_EXTENSIONS_H__
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Definitions */
|
/* Definitions */
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief A queue of raw packets that will be sent to the network with pcap_sendqueue_transmit().
|
\brief A queue of raw packets that will be sent to the network with pcap_sendqueue_transmit().
|
||||||
*/
|
*/
|
||||||
struct pcap_send_queue
|
struct pcap_send_queue
|
||||||
{
|
{
|
||||||
u_int maxlen; ///< Maximum size of the the queue, in bytes. This variable contains the size of the buffer field.
|
u_int maxlen; ///< Maximum size of the the queue, in bytes. This variable contains the size of the buffer field.
|
||||||
u_int len; ///< Current size of the queue, in bytes.
|
u_int len; ///< Current size of the queue, in bytes.
|
||||||
char *buffer; ///< Buffer containing the packets to be sent.
|
char *buffer; ///< Buffer containing the packets to be sent.
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct pcap_send_queue pcap_send_queue;
|
typedef struct pcap_send_queue pcap_send_queue;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief This typedef is a support for the pcap_get_airpcap_handle() function
|
\brief This typedef is a support for the pcap_get_airpcap_handle() function
|
||||||
*/
|
*/
|
||||||
#if !defined(AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_)
|
#if !defined(AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_)
|
||||||
#define AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_
|
#define AIRPCAP_HANDLE__EAE405F5_0171_9592_B3C2_C19EC426AD34__DEFINED_
|
||||||
typedef struct _AirpcapHandle *PAirpcapHandle;
|
typedef struct _AirpcapHandle *PAirpcapHandle;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BPF_MEM_EX_IMM 0xc0
|
#define BPF_MEM_EX_IMM 0xc0
|
||||||
#define BPF_MEM_EX_IND 0xe0
|
#define BPF_MEM_EX_IND 0xe0
|
||||||
|
|
||||||
/*used for ST*/
|
/*used for ST*/
|
||||||
#define BPF_MEM_EX 0xc0
|
#define BPF_MEM_EX 0xc0
|
||||||
#define BPF_TME 0x08
|
#define BPF_TME 0x08
|
||||||
|
|
||||||
#define BPF_LOOKUP 0x90
|
#define BPF_LOOKUP 0x90
|
||||||
#define BPF_EXECUTE 0xa0
|
#define BPF_EXECUTE 0xa0
|
||||||
#define BPF_INIT 0xb0
|
#define BPF_INIT 0xb0
|
||||||
#define BPF_VALIDATE 0xc0
|
#define BPF_VALIDATE 0xc0
|
||||||
#define BPF_SET_ACTIVE 0xd0
|
#define BPF_SET_ACTIVE 0xd0
|
||||||
#define BPF_RESET 0xe0
|
#define BPF_RESET 0xe0
|
||||||
#define BPF_SET_MEMORY 0x80
|
#define BPF_SET_MEMORY 0x80
|
||||||
#define BPF_GET_REGISTER_VALUE 0x70
|
#define BPF_GET_REGISTER_VALUE 0x70
|
||||||
#define BPF_SET_REGISTER_VALUE 0x60
|
#define BPF_SET_REGISTER_VALUE 0x60
|
||||||
#define BPF_SET_WORKING 0x50
|
#define BPF_SET_WORKING 0x50
|
||||||
#define BPF_SET_ACTIVE_READ 0x40
|
#define BPF_SET_ACTIVE_READ 0x40
|
||||||
#define BPF_SET_AUTODELETION 0x30
|
#define BPF_SET_AUTODELETION 0x30
|
||||||
#define BPF_SEPARATION 0xff
|
#define BPF_SEPARATION 0xff
|
||||||
|
|
||||||
/* Prototypes */
|
/* Prototypes */
|
||||||
pcap_send_queue* pcap_sendqueue_alloc(u_int memsize);
|
pcap_send_queue* pcap_sendqueue_alloc(u_int memsize);
|
||||||
|
|
||||||
void pcap_sendqueue_destroy(pcap_send_queue* queue);
|
void pcap_sendqueue_destroy(pcap_send_queue* queue);
|
||||||
|
|
||||||
int pcap_sendqueue_queue(pcap_send_queue* queue, const struct pcap_pkthdr *pkt_header, const u_char *pkt_data);
|
int pcap_sendqueue_queue(pcap_send_queue* queue, const struct pcap_pkthdr *pkt_header, const u_char *pkt_data);
|
||||||
|
|
||||||
u_int pcap_sendqueue_transmit(pcap_t *p, pcap_send_queue* queue, int sync);
|
u_int pcap_sendqueue_transmit(pcap_t *p, pcap_send_queue* queue, int sync);
|
||||||
|
|
||||||
HANDLE pcap_getevent(pcap_t *p);
|
HANDLE pcap_getevent(pcap_t *p);
|
||||||
|
|
||||||
struct pcap_stat *pcap_stats_ex(pcap_t *p, int *pcap_stat_size);
|
struct pcap_stat *pcap_stats_ex(pcap_t *p, int *pcap_stat_size);
|
||||||
|
|
||||||
int pcap_setuserbuffer(pcap_t *p, int size);
|
int pcap_setuserbuffer(pcap_t *p, int size);
|
||||||
|
|
||||||
int pcap_live_dump(pcap_t *p, char *filename, int maxsize, int maxpacks);
|
int pcap_live_dump(pcap_t *p, char *filename, int maxsize, int maxpacks);
|
||||||
|
|
||||||
int pcap_live_dump_ended(pcap_t *p, int sync);
|
int pcap_live_dump_ended(pcap_t *p, int sync);
|
||||||
|
|
||||||
int pcap_offline_filter(struct bpf_program *prog, const struct pcap_pkthdr *header, const u_char *pkt_data);
|
int pcap_offline_filter(struct bpf_program *prog, const struct pcap_pkthdr *header, const u_char *pkt_data);
|
||||||
|
|
||||||
int pcap_start_oem(char* err_str, int flags);
|
int pcap_start_oem(char* err_str, int flags);
|
||||||
|
|
||||||
PAirpcapHandle pcap_get_airpcap_handle(pcap_t *p);
|
PAirpcapHandle pcap_get_airpcap_handle(pcap_t *p);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif //__WIN32_EXTENSIONS_H__
|
#endif //__WIN32_EXTENSIONS_H__
|
||||||
|
|
|
@ -1,444 +1,444 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002 - 2003
|
* Copyright (c) 2002 - 2003
|
||||||
* NetGroup, Politecnico di Torino (Italy)
|
* NetGroup, Politecnico di Torino (Italy)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
* are met:
|
* are met:
|
||||||
*
|
*
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* notice, this list of conditions and the following disclaimer.
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
* documentation and/or other materials provided with the distribution.
|
* documentation and/or other materials provided with the distribution.
|
||||||
* 3. Neither the name of the Politecnico di Torino nor the names of its
|
* 3. Neither the name of the Politecnico di Torino nor the names of its
|
||||||
* contributors may be used to endorse or promote products derived from
|
* contributors may be used to endorse or promote products derived from
|
||||||
* this software without specific prior written permission.
|
* this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef __REMOTE_EXT_H__
|
#ifndef __REMOTE_EXT_H__
|
||||||
#define __REMOTE_EXT_H__
|
#define __REMOTE_EXT_H__
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_REMOTE
|
#ifndef HAVE_REMOTE
|
||||||
#error Please do not include this file directly. Just define HAVE_REMOTE and then include pcap.h
|
#error Please do not include this file directly. Just define HAVE_REMOTE and then include pcap.h
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Definition for Microsoft Visual Studio
|
// Definition for Microsoft Visual Studio
|
||||||
#if _MSC_VER > 1000
|
#if _MSC_VER > 1000
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\file remote-ext.h
|
\file remote-ext.h
|
||||||
|
|
||||||
The goal of this file it to include most of the new definitions that should be
|
The goal of this file it to include most of the new definitions that should be
|
||||||
placed into the pcap.h file.
|
placed into the pcap.h file.
|
||||||
|
|
||||||
It includes all new definitions (structures and functions like pcap_open().
|
It includes all new definitions (structures and functions like pcap_open().
|
||||||
Some of the functions are not really a remote feature, but, right now,
|
Some of the functions are not really a remote feature, but, right now,
|
||||||
they are placed here.
|
they are placed here.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// All this stuff is public
|
// All this stuff is public
|
||||||
/*! \addtogroup remote_struct
|
/*! \addtogroup remote_struct
|
||||||
\{
|
\{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Defines the maximum buffer size in which address, port, interface names are kept.
|
\brief Defines the maximum buffer size in which address, port, interface names are kept.
|
||||||
|
|
||||||
In case the adapter name or such is larger than this value, it is truncated.
|
In case the adapter name or such is larger than this value, it is truncated.
|
||||||
This is not used by the user; however it must be aware that an hostname / interface
|
This is not used by the user; however it must be aware that an hostname / interface
|
||||||
name longer than this value will be truncated.
|
name longer than this value will be truncated.
|
||||||
*/
|
*/
|
||||||
#define PCAP_BUF_SIZE 1024
|
#define PCAP_BUF_SIZE 1024
|
||||||
|
|
||||||
|
|
||||||
/*! \addtogroup remote_source_ID
|
/*! \addtogroup remote_source_ID
|
||||||
\{
|
\{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Internal representation of the type of source in use (file,
|
\brief Internal representation of the type of source in use (file,
|
||||||
remote/local interface).
|
remote/local interface).
|
||||||
|
|
||||||
This indicates a file, i.e. the user want to open a capture from a local file.
|
This indicates a file, i.e. the user want to open a capture from a local file.
|
||||||
*/
|
*/
|
||||||
#define PCAP_SRC_FILE 2
|
#define PCAP_SRC_FILE 2
|
||||||
/*!
|
/*!
|
||||||
\brief Internal representation of the type of source in use (file,
|
\brief Internal representation of the type of source in use (file,
|
||||||
remote/local interface).
|
remote/local interface).
|
||||||
|
|
||||||
This indicates a local interface, i.e. the user want to open a capture from
|
This indicates a local interface, i.e. the user want to open a capture from
|
||||||
a local interface. This does not involve the RPCAP protocol.
|
a local interface. This does not involve the RPCAP protocol.
|
||||||
*/
|
*/
|
||||||
#define PCAP_SRC_IFLOCAL 3
|
#define PCAP_SRC_IFLOCAL 3
|
||||||
/*!
|
/*!
|
||||||
\brief Internal representation of the type of source in use (file,
|
\brief Internal representation of the type of source in use (file,
|
||||||
remote/local interface).
|
remote/local interface).
|
||||||
|
|
||||||
This indicates a remote interface, i.e. the user want to open a capture from
|
This indicates a remote interface, i.e. the user want to open a capture from
|
||||||
an interface on a remote host. This does involve the RPCAP protocol.
|
an interface on a remote host. This does involve the RPCAP protocol.
|
||||||
*/
|
*/
|
||||||
#define PCAP_SRC_IFREMOTE 4
|
#define PCAP_SRC_IFREMOTE 4
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\}
|
\}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*! \addtogroup remote_source_string
|
/*! \addtogroup remote_source_string
|
||||||
|
|
||||||
The formats allowed by the pcap_open() are the following:
|
The formats allowed by the pcap_open() are the following:
|
||||||
- file://path_and_filename [opens a local file]
|
- file://path_and_filename [opens a local file]
|
||||||
- rpcap://devicename [opens the selected device devices available on the local host, without using the RPCAP protocol]
|
- rpcap://devicename [opens the selected device devices available on the local host, without using the RPCAP protocol]
|
||||||
- rpcap://host/devicename [opens the selected device available on a remote host]
|
- rpcap://host/devicename [opens the selected device available on a remote host]
|
||||||
- rpcap://host:port/devicename [opens the selected device available on a remote host, using a non-standard port for RPCAP]
|
- rpcap://host:port/devicename [opens the selected device available on a remote host, using a non-standard port for RPCAP]
|
||||||
- adaptername [to open a local adapter; kept for compability, but it is strongly discouraged]
|
- adaptername [to open a local adapter; kept for compability, but it is strongly discouraged]
|
||||||
- (NULL) [to open the first local adapter; kept for compability, but it is strongly discouraged]
|
- (NULL) [to open the first local adapter; kept for compability, but it is strongly discouraged]
|
||||||
|
|
||||||
The formats allowed by the pcap_findalldevs_ex() are the following:
|
The formats allowed by the pcap_findalldevs_ex() are the following:
|
||||||
- file://folder/ [lists all the files in the given folder]
|
- file://folder/ [lists all the files in the given folder]
|
||||||
- rpcap:// [lists all local adapters]
|
- rpcap:// [lists all local adapters]
|
||||||
- rpcap://host:port/ [lists the devices available on a remote host]
|
- rpcap://host:port/ [lists the devices available on a remote host]
|
||||||
|
|
||||||
Referring to the 'host' and 'port' paramters, they can be either numeric or literal. Since
|
Referring to the 'host' and 'port' paramters, they can be either numeric or literal. Since
|
||||||
IPv6 is fully supported, these are the allowed formats:
|
IPv6 is fully supported, these are the allowed formats:
|
||||||
|
|
||||||
- host (literal): e.g. host.foo.bar
|
- host (literal): e.g. host.foo.bar
|
||||||
- host (numeric IPv4): e.g. 10.11.12.13
|
- host (numeric IPv4): e.g. 10.11.12.13
|
||||||
- host (numeric IPv4, IPv6 style): e.g. [10.11.12.13]
|
- host (numeric IPv4, IPv6 style): e.g. [10.11.12.13]
|
||||||
- host (numeric IPv6): e.g. [1:2:3::4]
|
- host (numeric IPv6): e.g. [1:2:3::4]
|
||||||
- port: can be either numeric (e.g. '80') or literal (e.g. 'http')
|
- port: can be either numeric (e.g. '80') or literal (e.g. 'http')
|
||||||
|
|
||||||
Here you find some allowed examples:
|
Here you find some allowed examples:
|
||||||
- rpcap://host.foo.bar/devicename [everything literal, no port number]
|
- rpcap://host.foo.bar/devicename [everything literal, no port number]
|
||||||
- rpcap://host.foo.bar:1234/devicename [everything literal, with port number]
|
- rpcap://host.foo.bar:1234/devicename [everything literal, with port number]
|
||||||
- rpcap://10.11.12.13/devicename [IPv4 numeric, no port number]
|
- rpcap://10.11.12.13/devicename [IPv4 numeric, no port number]
|
||||||
- rpcap://10.11.12.13:1234/devicename [IPv4 numeric, with port number]
|
- rpcap://10.11.12.13:1234/devicename [IPv4 numeric, with port number]
|
||||||
- rpcap://[10.11.12.13]:1234/devicename [IPv4 numeric with IPv6 format, with port number]
|
- rpcap://[10.11.12.13]:1234/devicename [IPv4 numeric with IPv6 format, with port number]
|
||||||
- rpcap://[1:2:3::4]/devicename [IPv6 numeric, no port number]
|
- rpcap://[1:2:3::4]/devicename [IPv6 numeric, no port number]
|
||||||
- rpcap://[1:2:3::4]:1234/devicename [IPv6 numeric, with port number]
|
- rpcap://[1:2:3::4]:1234/devicename [IPv6 numeric, with port number]
|
||||||
- rpcap://[1:2:3::4]:http/devicename [IPv6 numeric, with literal port number]
|
- rpcap://[1:2:3::4]:http/devicename [IPv6 numeric, with literal port number]
|
||||||
|
|
||||||
\{
|
\{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief String that will be used to determine the type of source in use (file,
|
\brief String that will be used to determine the type of source in use (file,
|
||||||
remote/local interface).
|
remote/local interface).
|
||||||
|
|
||||||
This string will be prepended to the interface name in order to create a string
|
This string will be prepended to the interface name in order to create a string
|
||||||
that contains all the information required to open the source.
|
that contains all the information required to open the source.
|
||||||
|
|
||||||
This string indicates that the user wants to open a capture from a local file.
|
This string indicates that the user wants to open a capture from a local file.
|
||||||
*/
|
*/
|
||||||
#define PCAP_SRC_FILE_STRING "file://"
|
#define PCAP_SRC_FILE_STRING "file://"
|
||||||
/*!
|
/*!
|
||||||
\brief String that will be used to determine the type of source in use (file,
|
\brief String that will be used to determine the type of source in use (file,
|
||||||
remote/local interface).
|
remote/local interface).
|
||||||
|
|
||||||
This string will be prepended to the interface name in order to create a string
|
This string will be prepended to the interface name in order to create a string
|
||||||
that contains all the information required to open the source.
|
that contains all the information required to open the source.
|
||||||
|
|
||||||
This string indicates that the user wants to open a capture from a network interface.
|
This string indicates that the user wants to open a capture from a network interface.
|
||||||
This string does not necessarily involve the use of the RPCAP protocol. If the
|
This string does not necessarily involve the use of the RPCAP protocol. If the
|
||||||
interface required resides on the local host, the RPCAP protocol is not involved
|
interface required resides on the local host, the RPCAP protocol is not involved
|
||||||
and the local functions are used.
|
and the local functions are used.
|
||||||
*/
|
*/
|
||||||
#define PCAP_SRC_IF_STRING "rpcap://"
|
#define PCAP_SRC_IF_STRING "rpcap://"
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\}
|
\}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\addtogroup remote_open_flags
|
\addtogroup remote_open_flags
|
||||||
\{
|
\{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Defines if the adapter has to go in promiscuous mode.
|
\brief Defines if the adapter has to go in promiscuous mode.
|
||||||
|
|
||||||
It is '1' if you have to open the adapter in promiscuous mode, '0' otherwise.
|
It is '1' if you have to open the adapter in promiscuous mode, '0' otherwise.
|
||||||
Note that even if this parameter is false, the interface could well be in promiscuous
|
Note that even if this parameter is false, the interface could well be in promiscuous
|
||||||
mode for some other reason (for example because another capture process with
|
mode for some other reason (for example because another capture process with
|
||||||
promiscuous mode enabled is currently using that interface).
|
promiscuous mode enabled is currently using that interface).
|
||||||
On on Linux systems with 2.2 or later kernels (that have the "any" device), this
|
On on Linux systems with 2.2 or later kernels (that have the "any" device), this
|
||||||
flag does not work on the "any" device; if an argument of "any" is supplied,
|
flag does not work on the "any" device; if an argument of "any" is supplied,
|
||||||
the 'promisc' flag is ignored.
|
the 'promisc' flag is ignored.
|
||||||
*/
|
*/
|
||||||
#define PCAP_OPENFLAG_PROMISCUOUS 1
|
#define PCAP_OPENFLAG_PROMISCUOUS 1
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Defines if the data trasfer (in case of a remote
|
\brief Defines if the data trasfer (in case of a remote
|
||||||
capture) has to be done with UDP protocol.
|
capture) has to be done with UDP protocol.
|
||||||
|
|
||||||
If it is '1' if you want a UDP data connection, '0' if you want
|
If it is '1' if you want a UDP data connection, '0' if you want
|
||||||
a TCP data connection; control connection is always TCP-based.
|
a TCP data connection; control connection is always TCP-based.
|
||||||
A UDP connection is much lighter, but it does not guarantee that all
|
A UDP connection is much lighter, but it does not guarantee that all
|
||||||
the captured packets arrive to the client workstation. Moreover,
|
the captured packets arrive to the client workstation. Moreover,
|
||||||
it could be harmful in case of network congestion.
|
it could be harmful in case of network congestion.
|
||||||
This flag is meaningless if the source is not a remote interface.
|
This flag is meaningless if the source is not a remote interface.
|
||||||
In that case, it is simply ignored.
|
In that case, it is simply ignored.
|
||||||
*/
|
*/
|
||||||
#define PCAP_OPENFLAG_DATATX_UDP 2
|
#define PCAP_OPENFLAG_DATATX_UDP 2
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Defines if the remote probe will capture its own generated traffic.
|
\brief Defines if the remote probe will capture its own generated traffic.
|
||||||
|
|
||||||
In case the remote probe uses the same interface to capture traffic and to send
|
In case the remote probe uses the same interface to capture traffic and to send
|
||||||
data back to the caller, the captured traffic includes the RPCAP traffic as well.
|
data back to the caller, the captured traffic includes the RPCAP traffic as well.
|
||||||
If this flag is turned on, the RPCAP traffic is excluded from the capture, so that
|
If this flag is turned on, the RPCAP traffic is excluded from the capture, so that
|
||||||
the trace returned back to the collector is does not include this traffic.
|
the trace returned back to the collector is does not include this traffic.
|
||||||
*/
|
*/
|
||||||
#define PCAP_OPENFLAG_NOCAPTURE_RPCAP 4
|
#define PCAP_OPENFLAG_NOCAPTURE_RPCAP 4
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Defines if the local adapter will capture its own generated traffic.
|
\brief Defines if the local adapter will capture its own generated traffic.
|
||||||
|
|
||||||
This flag tells the underlying capture driver to drop the packets that were sent by itself.
|
This flag tells the underlying capture driver to drop the packets that were sent by itself.
|
||||||
This is usefult when building applications like bridges, that should ignore the traffic
|
This is usefult when building applications like bridges, that should ignore the traffic
|
||||||
they just sent.
|
they just sent.
|
||||||
*/
|
*/
|
||||||
#define PCAP_OPENFLAG_NOCAPTURE_LOCAL 8
|
#define PCAP_OPENFLAG_NOCAPTURE_LOCAL 8
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief This flag configures the adapter for maximum responsiveness.
|
\brief This flag configures the adapter for maximum responsiveness.
|
||||||
|
|
||||||
In presence of a large value for nbytes, WinPcap waits for the arrival of several packets before
|
In presence of a large value for nbytes, WinPcap waits for the arrival of several packets before
|
||||||
copying the data to the user. This guarantees a low number of system calls, i.e. lower processor usage,
|
copying the data to the user. This guarantees a low number of system calls, i.e. lower processor usage,
|
||||||
i.e. better performance, which is good for applications like sniffers. If the user sets the
|
i.e. better performance, which is good for applications like sniffers. If the user sets the
|
||||||
PCAP_OPENFLAG_MAX_RESPONSIVENESS flag, the capture driver will copy the packets as soon as the application
|
PCAP_OPENFLAG_MAX_RESPONSIVENESS flag, the capture driver will copy the packets as soon as the application
|
||||||
is ready to receive them. This is suggested for real time applications (like, for example, a bridge)
|
is ready to receive them. This is suggested for real time applications (like, for example, a bridge)
|
||||||
that need the best responsiveness.*/
|
that need the best responsiveness.*/
|
||||||
#define PCAP_OPENFLAG_MAX_RESPONSIVENESS 16
|
#define PCAP_OPENFLAG_MAX_RESPONSIVENESS 16
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\}
|
\}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\addtogroup remote_samp_methods
|
\addtogroup remote_samp_methods
|
||||||
\{
|
\{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief No sampling has to be done on the current capture.
|
\brief No sampling has to be done on the current capture.
|
||||||
|
|
||||||
In this case, no sampling algorithms are applied to the current capture.
|
In this case, no sampling algorithms are applied to the current capture.
|
||||||
*/
|
*/
|
||||||
#define PCAP_SAMP_NOSAMP 0
|
#define PCAP_SAMP_NOSAMP 0
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief It defines that only 1 out of N packets must be returned to the user.
|
\brief It defines that only 1 out of N packets must be returned to the user.
|
||||||
|
|
||||||
In this case, the 'value' field of the 'pcap_samp' structure indicates the
|
In this case, the 'value' field of the 'pcap_samp' structure indicates the
|
||||||
number of packets (minus 1) that must be discarded before one packet got accepted.
|
number of packets (minus 1) that must be discarded before one packet got accepted.
|
||||||
In other words, if 'value = 10', the first packet is returned to the caller, while
|
In other words, if 'value = 10', the first packet is returned to the caller, while
|
||||||
the following 9 are discarded.
|
the following 9 are discarded.
|
||||||
*/
|
*/
|
||||||
#define PCAP_SAMP_1_EVERY_N 1
|
#define PCAP_SAMP_1_EVERY_N 1
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief It defines that we have to return 1 packet every N milliseconds.
|
\brief It defines that we have to return 1 packet every N milliseconds.
|
||||||
|
|
||||||
In this case, the 'value' field of the 'pcap_samp' structure indicates the 'waiting
|
In this case, the 'value' field of the 'pcap_samp' structure indicates the 'waiting
|
||||||
time' in milliseconds before one packet got accepted.
|
time' in milliseconds before one packet got accepted.
|
||||||
In other words, if 'value = 10', the first packet is returned to the caller; the next
|
In other words, if 'value = 10', the first packet is returned to the caller; the next
|
||||||
returned one will be the first packet that arrives when 10ms have elapsed.
|
returned one will be the first packet that arrives when 10ms have elapsed.
|
||||||
*/
|
*/
|
||||||
#define PCAP_SAMP_FIRST_AFTER_N_MS 2
|
#define PCAP_SAMP_FIRST_AFTER_N_MS 2
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\}
|
\}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\addtogroup remote_auth_methods
|
\addtogroup remote_auth_methods
|
||||||
\{
|
\{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief It defines the NULL authentication.
|
\brief It defines the NULL authentication.
|
||||||
|
|
||||||
This value has to be used within the 'type' member of the pcap_rmtauth structure.
|
This value has to be used within the 'type' member of the pcap_rmtauth structure.
|
||||||
The 'NULL' authentication has to be equal to 'zero', so that old applications
|
The 'NULL' authentication has to be equal to 'zero', so that old applications
|
||||||
can just put every field of struct pcap_rmtauth to zero, and it does work.
|
can just put every field of struct pcap_rmtauth to zero, and it does work.
|
||||||
*/
|
*/
|
||||||
#define RPCAP_RMTAUTH_NULL 0
|
#define RPCAP_RMTAUTH_NULL 0
|
||||||
/*!
|
/*!
|
||||||
\brief It defines the username/password authentication.
|
\brief It defines the username/password authentication.
|
||||||
|
|
||||||
With this type of authentication, the RPCAP protocol will use the username/
|
With this type of authentication, the RPCAP protocol will use the username/
|
||||||
password provided to authenticate the user on the remote machine. If the
|
password provided to authenticate the user on the remote machine. If the
|
||||||
authentication is successful (and the user has the right to open network devices)
|
authentication is successful (and the user has the right to open network devices)
|
||||||
the RPCAP connection will continue; otherwise it will be dropped.
|
the RPCAP connection will continue; otherwise it will be dropped.
|
||||||
|
|
||||||
This value has to be used within the 'type' member of the pcap_rmtauth structure.
|
This value has to be used within the 'type' member of the pcap_rmtauth structure.
|
||||||
*/
|
*/
|
||||||
#define RPCAP_RMTAUTH_PWD 1
|
#define RPCAP_RMTAUTH_PWD 1
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\}
|
\}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
\brief This structure keeps the information needed to autheticate
|
\brief This structure keeps the information needed to autheticate
|
||||||
the user on a remote machine.
|
the user on a remote machine.
|
||||||
|
|
||||||
The remote machine can either grant or refuse the access according
|
The remote machine can either grant or refuse the access according
|
||||||
to the information provided.
|
to the information provided.
|
||||||
In case the NULL authentication is required, both 'username' and
|
In case the NULL authentication is required, both 'username' and
|
||||||
'password' can be NULL pointers.
|
'password' can be NULL pointers.
|
||||||
|
|
||||||
This structure is meaningless if the source is not a remote interface;
|
This structure is meaningless if the source is not a remote interface;
|
||||||
in that case, the functions which requires such a structure can accept
|
in that case, the functions which requires such a structure can accept
|
||||||
a NULL pointer as well.
|
a NULL pointer as well.
|
||||||
*/
|
*/
|
||||||
struct pcap_rmtauth
|
struct pcap_rmtauth
|
||||||
{
|
{
|
||||||
/*!
|
/*!
|
||||||
\brief Type of the authentication required.
|
\brief Type of the authentication required.
|
||||||
|
|
||||||
In order to provide maximum flexibility, we can support different types
|
In order to provide maximum flexibility, we can support different types
|
||||||
of authentication based on the value of this 'type' variable. The currently
|
of authentication based on the value of this 'type' variable. The currently
|
||||||
supported authentication methods are defined into the
|
supported authentication methods are defined into the
|
||||||
\link remote_auth_methods Remote Authentication Methods Section\endlink.
|
\link remote_auth_methods Remote Authentication Methods Section\endlink.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
int type;
|
int type;
|
||||||
/*!
|
/*!
|
||||||
\brief Zero-terminated string containing the username that has to be
|
\brief Zero-terminated string containing the username that has to be
|
||||||
used on the remote machine for authentication.
|
used on the remote machine for authentication.
|
||||||
|
|
||||||
This field is meaningless in case of the RPCAP_RMTAUTH_NULL authentication
|
This field is meaningless in case of the RPCAP_RMTAUTH_NULL authentication
|
||||||
and it can be NULL.
|
and it can be NULL.
|
||||||
*/
|
*/
|
||||||
char *username;
|
char *username;
|
||||||
/*!
|
/*!
|
||||||
\brief Zero-terminated string containing the password that has to be
|
\brief Zero-terminated string containing the password that has to be
|
||||||
used on the remote machine for authentication.
|
used on the remote machine for authentication.
|
||||||
|
|
||||||
This field is meaningless in case of the RPCAP_RMTAUTH_NULL authentication
|
This field is meaningless in case of the RPCAP_RMTAUTH_NULL authentication
|
||||||
and it can be NULL.
|
and it can be NULL.
|
||||||
*/
|
*/
|
||||||
char *password;
|
char *password;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief This structure defines the information related to sampling.
|
\brief This structure defines the information related to sampling.
|
||||||
|
|
||||||
In case the sampling is requested, the capturing device should read
|
In case the sampling is requested, the capturing device should read
|
||||||
only a subset of the packets coming from the source. The returned packets depend
|
only a subset of the packets coming from the source. The returned packets depend
|
||||||
on the sampling parameters.
|
on the sampling parameters.
|
||||||
|
|
||||||
\warning The sampling process is applied <strong>after</strong> the filtering process.
|
\warning The sampling process is applied <strong>after</strong> the filtering process.
|
||||||
In other words, packets are filtered first, then the sampling process selects a
|
In other words, packets are filtered first, then the sampling process selects a
|
||||||
subset of the 'filtered' packets and it returns them to the caller.
|
subset of the 'filtered' packets and it returns them to the caller.
|
||||||
*/
|
*/
|
||||||
struct pcap_samp
|
struct pcap_samp
|
||||||
{
|
{
|
||||||
/*!
|
/*!
|
||||||
Method used for sampling. Currently, the supported methods are listed in the
|
Method used for sampling. Currently, the supported methods are listed in the
|
||||||
\link remote_samp_methods Sampling Methods Section\endlink.
|
\link remote_samp_methods Sampling Methods Section\endlink.
|
||||||
*/
|
*/
|
||||||
int method;
|
int method;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
This value depends on the sampling method defined. For its meaning, please check
|
This value depends on the sampling method defined. For its meaning, please check
|
||||||
at the \link remote_samp_methods Sampling Methods Section\endlink.
|
at the \link remote_samp_methods Sampling Methods Section\endlink.
|
||||||
*/
|
*/
|
||||||
int value;
|
int value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//! Maximum lenght of an host name (needed for the RPCAP active mode)
|
//! Maximum lenght of an host name (needed for the RPCAP active mode)
|
||||||
#define RPCAP_HOSTLIST_SIZE 1024
|
#define RPCAP_HOSTLIST_SIZE 1024
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\}
|
\}
|
||||||
*/ // end of public documentation
|
*/ // end of public documentation
|
||||||
|
|
||||||
|
|
||||||
// Exported functions
|
// Exported functions
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** \name New WinPcap functions
|
/** \name New WinPcap functions
|
||||||
|
|
||||||
This section lists the new functions that are able to help considerably in writing
|
This section lists the new functions that are able to help considerably in writing
|
||||||
WinPcap programs because of their easiness of use.
|
WinPcap programs because of their easiness of use.
|
||||||
*/
|
*/
|
||||||
//\{
|
//\{
|
||||||
pcap_t *pcap_open(const char *source, int snaplen, int flags, int read_timeout, struct pcap_rmtauth *auth, char *errbuf);
|
pcap_t *pcap_open(const char *source, int snaplen, int flags, int read_timeout, struct pcap_rmtauth *auth, char *errbuf);
|
||||||
int pcap_createsrcstr(char *source, int type, const char *host, const char *port, const char *name, char *errbuf);
|
int pcap_createsrcstr(char *source, int type, const char *host, const char *port, const char *name, char *errbuf);
|
||||||
int pcap_parsesrcstr(const char *source, int *type, char *host, char *port, char *name, char *errbuf);
|
int pcap_parsesrcstr(const char *source, int *type, char *host, char *port, char *name, char *errbuf);
|
||||||
int pcap_findalldevs_ex(char *source, struct pcap_rmtauth *auth, pcap_if_t **alldevs, char *errbuf);
|
int pcap_findalldevs_ex(char *source, struct pcap_rmtauth *auth, pcap_if_t **alldevs, char *errbuf);
|
||||||
struct pcap_samp *pcap_setsampling(pcap_t *p);
|
struct pcap_samp *pcap_setsampling(pcap_t *p);
|
||||||
|
|
||||||
//\}
|
//\}
|
||||||
// End of new winpcap functions
|
// End of new winpcap functions
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** \name Remote Capture functions
|
/** \name Remote Capture functions
|
||||||
*/
|
*/
|
||||||
//\{
|
//\{
|
||||||
SOCKET pcap_remoteact_accept(const char *address, const char *port, const char *hostlist, char *connectinghost, struct pcap_rmtauth *auth, char *errbuf);
|
SOCKET pcap_remoteact_accept(const char *address, const char *port, const char *hostlist, char *connectinghost, struct pcap_rmtauth *auth, char *errbuf);
|
||||||
int pcap_remoteact_list(char *hostlist, char sep, int size, char *errbuf);
|
int pcap_remoteact_list(char *hostlist, char sep, int size, char *errbuf);
|
||||||
int pcap_remoteact_close(const char *host, char *errbuf);
|
int pcap_remoteact_close(const char *host, char *errbuf);
|
||||||
void pcap_remoteact_cleanup();
|
void pcap_remoteact_cleanup();
|
||||||
//\}
|
//\}
|
||||||
// End of remote capture functions
|
// End of remote capture functions
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
Winpcap is version 4.1.2 downloaded from
|
Winpcap is version 4.1.2 downloaded from
|
||||||
https://www.winpcap.org/install/bin/WpdPack_4_1_2.zip
|
https://www.winpcap.org/install/bin/WpdPack_4_1_2.zip
|
||||||
Just the /include and /lib directories are included to keep the size small.
|
Just the /include and /lib directories are included to keep the size small.
|
|
@ -1,24 +1,24 @@
|
||||||
/* XPM */
|
/* XPM */
|
||||||
static const char * addbookm_xpm[] = {
|
static const char * addbookm_xpm[] = {
|
||||||
/* columns rows colors chars-per-pixel */
|
/* columns rows colors chars-per-pixel */
|
||||||
"16 15 3 1",
|
"16 15 3 1",
|
||||||
". c Black",
|
". c Black",
|
||||||
"X c #00C000",
|
"X c #00C000",
|
||||||
" c None",
|
" c None",
|
||||||
/* pixels */
|
/* pixels */
|
||||||
" ....... ",
|
" ....... ",
|
||||||
" .XXXXX. ",
|
" .XXXXX. ",
|
||||||
" .. .XXXXX. ",
|
" .. .XXXXX. ",
|
||||||
" .. .XXXXX. ",
|
" .. .XXXXX. ",
|
||||||
" ...... .XXXXX. ",
|
" ...... .XXXXX. ",
|
||||||
" ...... .XXXXX. ",
|
" ...... .XXXXX. ",
|
||||||
" .. .XXXXX. ",
|
" .. .XXXXX. ",
|
||||||
" .. .XXXXX. ",
|
" .. .XXXXX. ",
|
||||||
" .XXXXX. ",
|
" .XXXXX. ",
|
||||||
" .XXXXX. ",
|
" .XXXXX. ",
|
||||||
" .XXXXX. ",
|
" .XXXXX. ",
|
||||||
" .XXXXX. ",
|
" .XXXXX. ",
|
||||||
" .XX.XX. ",
|
" .XX.XX. ",
|
||||||
" .X. .X. ",
|
" .X. .X. ",
|
||||||
" .. .. "
|
" .. .. "
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
/* XPM */
|
/* XPM */
|
||||||
static const char * back_xpm[] = {
|
static const char * back_xpm[] = {
|
||||||
"16 15 3 1",
|
"16 15 3 1",
|
||||||
" c None",
|
" c None",
|
||||||
". c Black",
|
". c Black",
|
||||||
"X c Gray100",
|
"X c Gray100",
|
||||||
" ",
|
" ",
|
||||||
" ",
|
" ",
|
||||||
" . ",
|
" . ",
|
||||||
" .. ",
|
" .. ",
|
||||||
" .X. ",
|
" .X. ",
|
||||||
" .XX........ ",
|
" .XX........ ",
|
||||||
" .XXXXXXXXXX. ",
|
" .XXXXXXXXXX. ",
|
||||||
" .XXXXXXXXXXX. ",
|
" .XXXXXXXXXXX. ",
|
||||||
" .XXXXXXXXXXX. ",
|
" .XXXXXXXXXXX. ",
|
||||||
" .XXXXXXXXXX. ",
|
" .XXXXXXXXXX. ",
|
||||||
" .XX........ ",
|
" .XX........ ",
|
||||||
" .X. ",
|
" .X. ",
|
||||||
" .. ",
|
" .. ",
|
||||||
" . ",
|
" . ",
|
||||||
" "};
|
" "};
|
||||||
|
|
|
@ -1,57 +1,57 @@
|
||||||
/* XPM */
|
/* XPM */
|
||||||
static const char * cdrom_xpm[] = {
|
static const char * cdrom_xpm[] = {
|
||||||
/* columns rows colors chars-per-pixel */
|
/* columns rows colors chars-per-pixel */
|
||||||
"16 15 36 1",
|
"16 15 36 1",
|
||||||
"= c #9BACC2",
|
"= c #9BACC2",
|
||||||
"y c #547B99",
|
"y c #547B99",
|
||||||
"$ c #FFFFFF",
|
"$ c #FFFFFF",
|
||||||
"@ c #839CB5",
|
"@ c #839CB5",
|
||||||
"o c #547897",
|
"o c #547897",
|
||||||
"4 c #4D7492",
|
"4 c #4D7492",
|
||||||
"% c #F1F4F7",
|
"% c #F1F4F7",
|
||||||
"X c #5A809C",
|
"X c #5A809C",
|
||||||
"< c #8497A5",
|
"< c #8497A5",
|
||||||
"0 c #7898AD",
|
"0 c #7898AD",
|
||||||
"+ c #CAD2DC",
|
"+ c #CAD2DC",
|
||||||
"r c #ACAEB2",
|
"r c #ACAEB2",
|
||||||
"2 c #BECAD9",
|
"2 c #BECAD9",
|
||||||
"* c #65839D",
|
"* c #65839D",
|
||||||
"e c #DCE2EA",
|
"e c #DCE2EA",
|
||||||
"- c #ADBED2",
|
"- c #ADBED2",
|
||||||
"t c #597B9A",
|
"t c #597B9A",
|
||||||
" c None",
|
" c None",
|
||||||
"1 c #467291",
|
"1 c #467291",
|
||||||
"9 c #D6DFE7",
|
"9 c #D6DFE7",
|
||||||
"O c #7393AB",
|
"O c #7393AB",
|
||||||
"u c #49708B",
|
"u c #49708B",
|
||||||
"5 c #A0BACB",
|
"5 c #A0BACB",
|
||||||
"& c #AABFCD",
|
"& c #AABFCD",
|
||||||
"8 c #B9CBD5",
|
"8 c #B9CBD5",
|
||||||
"; c #B4C4D3",
|
"; c #B4C4D3",
|
||||||
": c #6F90A6",
|
": c #6F90A6",
|
||||||
"3 c #A8B6CA",
|
"3 c #A8B6CA",
|
||||||
"# c #ADBACE",
|
"# c #ADBACE",
|
||||||
"w c #E4E9ED",
|
"w c #E4E9ED",
|
||||||
". c #8EA9BC",
|
". c #8EA9BC",
|
||||||
"> c #B3BFD1",
|
"> c #B3BFD1",
|
||||||
", c #C2CBDB",
|
", c #C2CBDB",
|
||||||
"6 c #C0D1DC",
|
"6 c #C0D1DC",
|
||||||
"7 c #A2B3C5",
|
"7 c #A2B3C5",
|
||||||
"q c #5D7C93",
|
"q c #5D7C93",
|
||||||
/* pixels */
|
/* pixels */
|
||||||
" .XooOo+ ",
|
" .XooOo+ ",
|
||||||
" X@#$$$%o& ",
|
" X@#$$$%o& ",
|
||||||
" *=-;$$$$$o+ ",
|
" *=-;$$$$$o+ ",
|
||||||
" +O#;-$$$$$$: ",
|
" +O#;-$$$$$$: ",
|
||||||
" o=>,-<1<$2-o ",
|
" o=>,-<1<$2-o ",
|
||||||
" o3>--1$122-* ",
|
" o3>--1$122-* ",
|
||||||
" o=--$<4<22-X ",
|
" o=--$<4<22-X ",
|
||||||
" o5$$$$$26;7* ",
|
" o5$$$$$26;7* ",
|
||||||
" X%$$$$2;-X8 ",
|
" X%$$$$2;-X8 ",
|
||||||
" 90*9$$$-7Xqo ",
|
" 90*9$$$-7Xqo ",
|
||||||
" wXwe@O44X4<r<o ",
|
" wXwe@O44X4<r<o ",
|
||||||
" X8628>22222<<*4",
|
" X8628>22222<<*4",
|
||||||
" ttyyyoo4441uuuo",
|
" ttyyyoo4441uuuo",
|
||||||
" t>$$$$$$$$$$$>o",
|
" t>$$$$$$$$$$$>o",
|
||||||
" XXXtyyyoo44411u"
|
" XXXtyyyoo44411u"
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,44 +1,44 @@
|
||||||
/* XPM */
|
/* XPM */
|
||||||
static const char * copy_xpm[] = {
|
static const char * copy_xpm[] = {
|
||||||
/* columns rows colors chars-per-pixel */
|
/* columns rows colors chars-per-pixel */
|
||||||
"16 15 23 1",
|
"16 15 23 1",
|
||||||
"o c #97C4E7",
|
"o c #97C4E7",
|
||||||
"* c #FFFFFF",
|
"* c #FFFFFF",
|
||||||
"@ c #60A9DA",
|
"@ c #60A9DA",
|
||||||
"= c #D1E5F5",
|
"= c #D1E5F5",
|
||||||
"& c #C3DDF1",
|
"& c #C3DDF1",
|
||||||
". c #7EA6C0",
|
". c #7EA6C0",
|
||||||
" c None",
|
" c None",
|
||||||
"X c #2F93CD",
|
"X c #2F93CD",
|
||||||
"O c #85BBE2",
|
"O c #85BBE2",
|
||||||
", c #EFF6FC",
|
", c #EFF6FC",
|
||||||
"; c #DEEDF8",
|
"; c #DEEDF8",
|
||||||
"+ c #72B2DD",
|
"+ c #72B2DD",
|
||||||
"3 c #F7FBFD",
|
"3 c #F7FBFD",
|
||||||
"4 c #FAFCFE",
|
"4 c #FAFCFE",
|
||||||
": c #DAEAF7",
|
": c #DAEAF7",
|
||||||
"< c #E9F3FA",
|
"< c #E9F3FA",
|
||||||
"1 c #E2EFF8",
|
"1 c #E2EFF8",
|
||||||
"- c #FDFDFE",
|
"- c #FDFDFE",
|
||||||
"% c #B6D5EE",
|
"% c #B6D5EE",
|
||||||
"$ c #A5CCEA",
|
"$ c #A5CCEA",
|
||||||
"> c #E5F0F9",
|
"> c #E5F0F9",
|
||||||
"# c #AFD1EC",
|
"# c #AFD1EC",
|
||||||
"2 c #F4F9FD",
|
"2 c #F4F9FD",
|
||||||
/* pixels */
|
/* pixels */
|
||||||
" .....XX ",
|
" .....XX ",
|
||||||
" .oO+@X#X ",
|
" .oO+@X#X ",
|
||||||
" .$oO+X##X ",
|
" .$oO+X##X ",
|
||||||
" .%$o........ ",
|
" .%$o........ ",
|
||||||
" .&%$.*=&#o.-. ",
|
" .&%$.*=&#o.-. ",
|
||||||
" .=&%.*;=&#.--. ",
|
" .=&%.*;=&#.--. ",
|
||||||
" .:=&.*>;=&.... ",
|
" .:=&.*>;=&.... ",
|
||||||
" .>:=.*,>;=&#o. ",
|
" .>:=.*,>;=&#o. ",
|
||||||
" .<1:.*2,>:=&#. ",
|
" .<1:.*2,>:=&#. ",
|
||||||
" .2<1.*32,>:=&. ",
|
" .2<1.*32,>:=&. ",
|
||||||
" .32<.*432,>:=. ",
|
" .32<.*432,>:=. ",
|
||||||
" .32<.*-432,>:. ",
|
" .32<.*-432,>:. ",
|
||||||
" .....**-432,>. ",
|
" .....**-432,>. ",
|
||||||
" .***-432,. ",
|
" .***-432,. ",
|
||||||
" .......... "
|
" .......... "
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
/* XPM */
|
/* XPM */
|
||||||
static const char * cross_xpm[] = {
|
static const char * cross_xpm[] = {
|
||||||
/* columns rows colors chars-per-pixel */
|
/* columns rows colors chars-per-pixel */
|
||||||
"10 10 2 1",
|
"10 10 2 1",
|
||||||
" c Gray0",
|
" c Gray0",
|
||||||
"# c None",
|
"# c None",
|
||||||
/* pixels */
|
/* pixels */
|
||||||
" ######## ",
|
" ######## ",
|
||||||
" #### ",
|
" #### ",
|
||||||
"# ## #",
|
"# ## #",
|
||||||
"## ##",
|
"## ##",
|
||||||
"### ###",
|
"### ###",
|
||||||
"### ###",
|
"### ###",
|
||||||
"## ##",
|
"## ##",
|
||||||
"# ## #",
|
"# ## #",
|
||||||
" #### ",
|
" #### ",
|
||||||
" ###### "};
|
" ###### "};
|
||||||
|
|
|
@ -1,46 +1,46 @@
|
||||||
/* XPM */
|
/* XPM */
|
||||||
static const char * cut_xpm[] = {
|
static const char * cut_xpm[] = {
|
||||||
/* columns rows colors chars-per-pixel */
|
/* columns rows colors chars-per-pixel */
|
||||||
"16 15 25 1",
|
"16 15 25 1",
|
||||||
"6 c #D8BDC0",
|
"6 c #D8BDC0",
|
||||||
": c #C3C3C4",
|
": c #C3C3C4",
|
||||||
"- c #FFFFFF",
|
"- c #FFFFFF",
|
||||||
". c #6C6D70",
|
". c #6C6D70",
|
||||||
"2 c #AD3A45",
|
"2 c #AD3A45",
|
||||||
"o c #DBDBDB",
|
"o c #DBDBDB",
|
||||||
"# c #939495",
|
"# c #939495",
|
||||||
"< c #E42234",
|
"< c #E42234",
|
||||||
"& c #C3C5C8",
|
"& c #C3C5C8",
|
||||||
"; c #C6CCD3",
|
"; c #C6CCD3",
|
||||||
"% c #B7B7B8",
|
"% c #B7B7B8",
|
||||||
" c None",
|
" c None",
|
||||||
"* c #DFE0E2",
|
"* c #DFE0E2",
|
||||||
"5 c #B69596",
|
"5 c #B69596",
|
||||||
"3 c #9C2A35",
|
"3 c #9C2A35",
|
||||||
"1 c #CFCFD0",
|
"1 c #CFCFD0",
|
||||||
", c #AB5C64",
|
", c #AB5C64",
|
||||||
"+ c #D2D3D4",
|
"+ c #D2D3D4",
|
||||||
"$ c #BCBDBE",
|
"$ c #BCBDBE",
|
||||||
"@ c #C6C8CA",
|
"@ c #C6C8CA",
|
||||||
"> c #CDC0C1",
|
"> c #CDC0C1",
|
||||||
"O c #826F72",
|
"O c #826F72",
|
||||||
"X c #979BA0",
|
"X c #979BA0",
|
||||||
"4 c #9B8687",
|
"4 c #9B8687",
|
||||||
"= c #9FA0A0",
|
"= c #9FA0A0",
|
||||||
/* pixels */
|
/* pixels */
|
||||||
" .X .o ",
|
" .X .o ",
|
||||||
" O.+ @. ",
|
" O.+ @. ",
|
||||||
" O. .. ",
|
" O. .. ",
|
||||||
" O#$ %.& ",
|
" O#$ %.& ",
|
||||||
" O.*.. ",
|
" O.*.. ",
|
||||||
" #%#.. ",
|
" #%#.. ",
|
||||||
" O=-.. ",
|
" O=-.. ",
|
||||||
" #%#;. ",
|
" #%#;. ",
|
||||||
" OO:=O ",
|
" OO:=O ",
|
||||||
" >,,<, ,<,,1 ",
|
" >,,<, ,<,,1 ",
|
||||||
" ><23<1 1<32<1 ",
|
" ><23<1 1<32<1 ",
|
||||||
" ,2 4< <5 2, ",
|
" ,2 4< <5 2, ",
|
||||||
" <, ,2 2, ,< ",
|
" <, ,2 2, ,< ",
|
||||||
" 23,<5 5<,32 ",
|
" 23,<5 5<,32 ",
|
||||||
" 6225 522> "
|
" 6225 522> "
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,54 +1,54 @@
|
||||||
/* XPM */
|
/* XPM */
|
||||||
static const char * deffile_xpm[] = {
|
static const char * deffile_xpm[] = {
|
||||||
/* columns rows colors chars-per-pixel */
|
/* columns rows colors chars-per-pixel */
|
||||||
"16 16 32 1",
|
"16 16 32 1",
|
||||||
"= c #97C4E7",
|
"= c #97C4E7",
|
||||||
": c #72A8D2",
|
": c #72A8D2",
|
||||||
"1 c #FFFFFF",
|
"1 c #FFFFFF",
|
||||||
"w c #839CB5",
|
"w c #839CB5",
|
||||||
"X c #6B98B8",
|
"X c #6B98B8",
|
||||||
". c #5A89A6",
|
". c #5A89A6",
|
||||||
"@ c #3A749C",
|
"@ c #3A749C",
|
||||||
", c #D1E5F5",
|
", c #D1E5F5",
|
||||||
"< c #67A1CF",
|
"< c #67A1CF",
|
||||||
"> c #F1F4F7",
|
"> c #F1F4F7",
|
||||||
"e c #85A7BC",
|
"e c #85A7BC",
|
||||||
"% c #C3DDF1",
|
"% c #C3DDF1",
|
||||||
"0 c #749BB4",
|
"0 c #749BB4",
|
||||||
"2 c #7EA6C0",
|
"2 c #7EA6C0",
|
||||||
"; c #5F9BC8",
|
"; c #5F9BC8",
|
||||||
" c None",
|
" c None",
|
||||||
"O c #538DB3",
|
"O c #538DB3",
|
||||||
"- c #85BBE2",
|
"- c #85BBE2",
|
||||||
"$ c #D6DFE7",
|
"$ c #D6DFE7",
|
||||||
"9 c #EFF6FC",
|
"9 c #EFF6FC",
|
||||||
"o c #6591AE",
|
"o c #6591AE",
|
||||||
"4 c #F7FBFD",
|
"4 c #F7FBFD",
|
||||||
"8 c #FAFCFE",
|
"8 c #FAFCFE",
|
||||||
"6 c #DAEAF7",
|
"6 c #DAEAF7",
|
||||||
"7 c #E9F3FA",
|
"7 c #E9F3FA",
|
||||||
"q c #FDFDFE",
|
"q c #FDFDFE",
|
||||||
"3 c #E2EFF8",
|
"3 c #E2EFF8",
|
||||||
"# c #8EA9BC",
|
"# c #8EA9BC",
|
||||||
"& c #B6D5EE",
|
"& c #B6D5EE",
|
||||||
"* c #A5CCEA",
|
"* c #A5CCEA",
|
||||||
"5 c #F4F9FD",
|
"5 c #F4F9FD",
|
||||||
"+ c #4581AA",
|
"+ c #4581AA",
|
||||||
/* pixels */
|
/* pixels */
|
||||||
" ..XooO+@#$ ",
|
" ..XooO+@#$ ",
|
||||||
" .%%&*=-;:;> ",
|
" .%%&*=-;:;> ",
|
||||||
" .,,%&*=<1=X> ",
|
" .,,%&*=<1=X> ",
|
||||||
" #%%%%&*211=X ",
|
" #%%%%&*211=X ",
|
||||||
" #3-----<oXoO ",
|
" #3-----<oXoO ",
|
||||||
" #3456,%&*=-O ",
|
" #3456,%&*=-O ",
|
||||||
" #3--------=O ",
|
" #3--------=O ",
|
||||||
" #355736,%&*o ",
|
" #355736,%&*o ",
|
||||||
" #3--------&o ",
|
" #3--------&o ",
|
||||||
" #38459736,%X ",
|
" #38459736,%X ",
|
||||||
" #3--------,0 ",
|
" #3--------,0 ",
|
||||||
" #31q84597360 ",
|
" #31q84597360 ",
|
||||||
" #3--------3w ",
|
" #3--------3w ",
|
||||||
" #3111q84597e ",
|
" #3111q84597e ",
|
||||||
" ##########e# ",
|
" ##########e# ",
|
||||||
" "
|
" "
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,24 +1,24 @@
|
||||||
/* XPM */
|
/* XPM */
|
||||||
static const char * delbookm_xpm[] = {
|
static const char * delbookm_xpm[] = {
|
||||||
/* columns rows colors chars-per-pixel */
|
/* columns rows colors chars-per-pixel */
|
||||||
"16 15 3 1",
|
"16 15 3 1",
|
||||||
". c Black",
|
". c Black",
|
||||||
" c None",
|
" c None",
|
||||||
"X c #FF4040",
|
"X c #FF4040",
|
||||||
/* pixels */
|
/* pixels */
|
||||||
" ....... ",
|
" ....... ",
|
||||||
" .XXXXX. ",
|
" .XXXXX. ",
|
||||||
" . . .XXXXX. ",
|
" . . .XXXXX. ",
|
||||||
" .. .. .XXXXX. ",
|
" .. .. .XXXXX. ",
|
||||||
" ... .XXXXX. ",
|
" ... .XXXXX. ",
|
||||||
" . .XXXXX. ",
|
" . .XXXXX. ",
|
||||||
" ... .XXXXX. ",
|
" ... .XXXXX. ",
|
||||||
" .. .. .XXXXX. ",
|
" .. .. .XXXXX. ",
|
||||||
" . . .XXXXX. ",
|
" . . .XXXXX. ",
|
||||||
" .XXXXX. ",
|
" .XXXXX. ",
|
||||||
" .XXXXX. ",
|
" .XXXXX. ",
|
||||||
" .XXXXX. ",
|
" .XXXXX. ",
|
||||||
" .XX.XX. ",
|
" .XX.XX. ",
|
||||||
" .X. .X. ",
|
" .X. .X. ",
|
||||||
" .. .. "
|
" .. .. "
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,42 +1,42 @@
|
||||||
/* XPM */
|
/* XPM */
|
||||||
static const char * delete_xpm[] = {
|
static const char * delete_xpm[] = {
|
||||||
/* columns rows colors chars-per-pixel */
|
/* columns rows colors chars-per-pixel */
|
||||||
"16 15 21 1",
|
"16 15 21 1",
|
||||||
"2 c #A5AEBD",
|
"2 c #A5AEBD",
|
||||||
"* c #5478B4",
|
"* c #5478B4",
|
||||||
"< c #95A3BB",
|
"< c #95A3BB",
|
||||||
"O c #9AA7BC",
|
"O c #9AA7BC",
|
||||||
"; c #758EB7",
|
"; c #758EB7",
|
||||||
"$ c #6986B6",
|
"$ c #6986B6",
|
||||||
"# c #4971B2",
|
"# c #4971B2",
|
||||||
"& c #8A9CBA",
|
"& c #8A9CBA",
|
||||||
"X c #8598B9",
|
"X c #8598B9",
|
||||||
" c None",
|
" c None",
|
||||||
"o c #ABB2BE",
|
"o c #ABB2BE",
|
||||||
"- c #7F95B9",
|
"- c #7F95B9",
|
||||||
"= c #4E74B3",
|
"= c #4E74B3",
|
||||||
"1 c #A0ABBC",
|
"1 c #A0ABBC",
|
||||||
"+ c #6F8AB7",
|
"+ c #6F8AB7",
|
||||||
". c #B5B9BF",
|
". c #B5B9BF",
|
||||||
"@ c #3E69B1",
|
"@ c #3E69B1",
|
||||||
", c #90A0BA",
|
", c #90A0BA",
|
||||||
": c #6483B5",
|
": c #6483B5",
|
||||||
"> c #5A7BB4",
|
"> c #5A7BB4",
|
||||||
"% c #5F7FB5",
|
"% c #5F7FB5",
|
||||||
/* pixels */
|
/* pixels */
|
||||||
" ",
|
" ",
|
||||||
" .Xo OO ",
|
" .Xo OO ",
|
||||||
" +@#. $@% ",
|
" +@#. $@% ",
|
||||||
" &@@X .*@*o ",
|
" &@@X .*@*o ",
|
||||||
" =@= .*@*. ",
|
" =@= .*@*. ",
|
||||||
" -@@X*@*. ",
|
" -@@X*@*. ",
|
||||||
" .#@@@$. ",
|
" .#@@@$. ",
|
||||||
" ;@@: ",
|
" ;@@: ",
|
||||||
" ;@@@+ ",
|
" ;@@@+ ",
|
||||||
" .>@#%@@. ",
|
" .>@#%@@. ",
|
||||||
" o*@*oO@@, ",
|
" o*@*oO@@, ",
|
||||||
" <#@*. .@@= ",
|
" <#@*. .@@= ",
|
||||||
"&@@$ :@@1 ",
|
"&@@$ :@@1 ",
|
||||||
";#& 2#>. ",
|
";#& 2#>. ",
|
||||||
" "
|
" "
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,52 +1,52 @@
|
||||||
/* XPM */
|
/* XPM */
|
||||||
static const char * dir_up_xpm[] = {
|
static const char * dir_up_xpm[] = {
|
||||||
/* columns rows colors chars-per-pixel */
|
/* columns rows colors chars-per-pixel */
|
||||||
"16 15 31 1",
|
"16 15 31 1",
|
||||||
"6 c #9BACC2",
|
"6 c #9BACC2",
|
||||||
"o c #9AEA53",
|
"o c #9AEA53",
|
||||||
"7 c #94A5BD",
|
"7 c #94A5BD",
|
||||||
"8 c #547897",
|
"8 c #547897",
|
||||||
"5 c #839CB5",
|
"5 c #839CB5",
|
||||||
"@ c #376485",
|
"@ c #376485",
|
||||||
"$ c #5A809C",
|
"$ c #5A809C",
|
||||||
"# c #7F99B4",
|
"# c #7F99B4",
|
||||||
": c #D1D9E5",
|
": c #D1D9E5",
|
||||||
"< c #EAEDF3",
|
"< c #EAEDF3",
|
||||||
"& c #446A8C",
|
"& c #446A8C",
|
||||||
"q c #65839D",
|
"q c #65839D",
|
||||||
"> c #DCE2EA",
|
"> c #DCE2EA",
|
||||||
", c #E1E6EE",
|
", c #E1E6EE",
|
||||||
"2 c #F5F6F7",
|
"2 c #F5F6F7",
|
||||||
"O c #8DA0B9",
|
"O c #8DA0B9",
|
||||||
" c None",
|
" c None",
|
||||||
"% c #467291",
|
"% c #467291",
|
||||||
". c #305F81",
|
". c #305F81",
|
||||||
"X c #7393AB",
|
"X c #7393AB",
|
||||||
"+ c #6A89A2",
|
"+ c #6A89A2",
|
||||||
"4 c #A8B6CA",
|
"4 c #A8B6CA",
|
||||||
"1 c #EEF1F3",
|
"1 c #EEF1F3",
|
||||||
"3 c #F8F9FA",
|
"3 c #F8F9FA",
|
||||||
"0 c #215579",
|
"0 c #215579",
|
||||||
"9 c #7F97B0",
|
"9 c #7F97B0",
|
||||||
"* c #B3BFD1",
|
"* c #B3BFD1",
|
||||||
"w c #7A90AC",
|
"w c #7A90AC",
|
||||||
"- c #C2CBDB",
|
"- c #C2CBDB",
|
||||||
"; c #CAD6E1",
|
"; c #CAD6E1",
|
||||||
"= c #BBC4D6",
|
"= c #BBC4D6",
|
||||||
/* pixels */
|
/* pixels */
|
||||||
" .. ",
|
" .. ",
|
||||||
" X.o. ",
|
" X.o. ",
|
||||||
".... X.ooo. ",
|
".... X.ooo. ",
|
||||||
".OO+....ooooo. ",
|
".OO+....ooooo. ",
|
||||||
".OOOOOO@@ooo.. ",
|
".OOOOOO@@ooo.. ",
|
||||||
".OOOO#OO@ooo.$ ",
|
".OOOO#OO@ooo.$ ",
|
||||||
".OOOOOOO@ooo.$ ",
|
".OOOOOOO@ooo.$ ",
|
||||||
".O%............&",
|
".O%............&",
|
||||||
".O&*=-;:>,<1231.",
|
".O&*=-;:>,<1231.",
|
||||||
".+.4*=-;:>,<12$.",
|
".+.4*=-;:>,<12$.",
|
||||||
"..564*=-;:>,<1. ",
|
"..564*=-;:>,<1. ",
|
||||||
".@O764*=-;:>,<. ",
|
".@O764*=-;:>,<. ",
|
||||||
".89O764*=-;:>$$ ",
|
".89O764*=-;:>$$ ",
|
||||||
"0qw9O764*=-;:. ",
|
"0qw9O764*=-;:. ",
|
||||||
"0............. "
|
"0............. "
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
/* XPM */
|
/* XPM */
|
||||||
static const char * down_xpm[] = {
|
static const char * down_xpm[] = {
|
||||||
"16 15 3 1",
|
"16 15 3 1",
|
||||||
" c None",
|
" c None",
|
||||||
". c Black",
|
". c Black",
|
||||||
"X c Gray100",
|
"X c Gray100",
|
||||||
" ",
|
" ",
|
||||||
" ...... ",
|
" ...... ",
|
||||||
" .XXXX. ",
|
" .XXXX. ",
|
||||||
" .XXXX. ",
|
" .XXXX. ",
|
||||||
" .XXXX. ",
|
" .XXXX. ",
|
||||||
" .XXXX. ",
|
" .XXXX. ",
|
||||||
" .XXXX. ",
|
" .XXXX. ",
|
||||||
" .XXXX. ",
|
" .XXXX. ",
|
||||||
" ....XXXX.... ",
|
" ....XXXX.... ",
|
||||||
" .XXXXXXXX. ",
|
" .XXXXXXXX. ",
|
||||||
" .XXXXXX. ",
|
" .XXXXXX. ",
|
||||||
" .XXXX. ",
|
" .XXXX. ",
|
||||||
" .XX. ",
|
" .XX. ",
|
||||||
" .. ",
|
" .. ",
|
||||||
" "};
|
" "};
|
||||||
|
|
|
@ -1,73 +1,73 @@
|
||||||
/* XPM */
|
/* XPM */
|
||||||
static const char * exefile_xpm[] = {
|
static const char * exefile_xpm[] = {
|
||||||
/* columns rows colors chars-per-pixel */
|
/* columns rows colors chars-per-pixel */
|
||||||
"16 16 51 1",
|
"16 16 51 1",
|
||||||
"% c #E8E8EC",
|
"% c #E8E8EC",
|
||||||
"= c #E8E8ED",
|
"= c #E8E8ED",
|
||||||
"z c #CACAD4",
|
"z c #CACAD4",
|
||||||
"8 c #D9D9E1",
|
"8 c #D9D9E1",
|
||||||
"p c #D2D2DA",
|
"p c #D2D2DA",
|
||||||
"u c #E1E1E7",
|
"u c #E1E1E7",
|
||||||
"a c #D2D2DB",
|
"a c #D2D2DB",
|
||||||
"< c #E9E9ED",
|
"< c #E9E9ED",
|
||||||
"q c #DADAE1",
|
"q c #DADAE1",
|
||||||
"+ c #F1F1F4",
|
"+ c #F1F1F4",
|
||||||
"g c #D3D3DB",
|
"g c #D3D3DB",
|
||||||
"1 c #E2E2E8",
|
"1 c #E2E2E8",
|
||||||
"x c #D3D3DC",
|
"x c #D3D3DC",
|
||||||
"5 c #00A5FF",
|
"5 c #00A5FF",
|
||||||
"$ c #EAEAEE",
|
"$ c #EAEAEE",
|
||||||
"4 c #DBDBE2",
|
"4 c #DBDBE2",
|
||||||
"h c #CCCCD6",
|
"h c #CCCCD6",
|
||||||
"y c #D4D4DC",
|
"y c #D4D4DC",
|
||||||
"r c #E3E3E9",
|
"r c #E3E3E9",
|
||||||
"d c #D4D4DD",
|
"d c #D4D4DD",
|
||||||
"7 c #DCDCE2",
|
"7 c #DCDCE2",
|
||||||
": c #EBEBEF",
|
": c #EBEBEF",
|
||||||
"0 c #DCDCE3",
|
"0 c #DCDCE3",
|
||||||
" c None",
|
" c None",
|
||||||
"O c #F3F3F5",
|
"O c #F3F3F5",
|
||||||
"> c #E4E4E9",
|
"> c #E4E4E9",
|
||||||
"& c #F3F3F6",
|
"& c #F3F3F6",
|
||||||
"j c #D5D5DD",
|
"j c #D5D5DD",
|
||||||
"6 c #E4E4EA",
|
"6 c #E4E4EA",
|
||||||
". c #C6C6D5",
|
". c #C6C6D5",
|
||||||
"# c #ECECF0",
|
"# c #ECECF0",
|
||||||
"f c #CECED7",
|
"f c #CECED7",
|
||||||
"l c #CECED8",
|
"l c #CECED8",
|
||||||
"e c #D6D6DE",
|
"e c #D6D6DE",
|
||||||
"; c #EDEDF0",
|
"; c #EDEDF0",
|
||||||
"3 c #DEDEE4",
|
"3 c #DEDEE4",
|
||||||
", c #EDEDF1",
|
", c #EDEDF1",
|
||||||
"c c #CFCFD8",
|
"c c #CFCFD8",
|
||||||
"o c #F5F5F7",
|
"o c #F5F5F7",
|
||||||
"- c #E6E6EB",
|
"- c #E6E6EB",
|
||||||
"w c #D7D7DF",
|
"w c #D7D7DF",
|
||||||
"v c #C8C8D3",
|
"v c #C8C8D3",
|
||||||
"i c #DFDFE5",
|
"i c #DFDFE5",
|
||||||
"@ c #EEEEF2",
|
"@ c #EEEEF2",
|
||||||
"s c #D0D0D9",
|
"s c #D0D0D9",
|
||||||
"X c #9494AD",
|
"X c #9494AD",
|
||||||
"9 c #D8D8DF",
|
"9 c #D8D8DF",
|
||||||
"t c #D8D8E0",
|
"t c #D8D8E0",
|
||||||
"* c #EFEFF2",
|
"* c #EFEFF2",
|
||||||
"2 c #E0E0E6",
|
"2 c #E0E0E6",
|
||||||
"k c #D1D1DA",
|
"k c #D1D1DA",
|
||||||
/* pixels */
|
/* pixels */
|
||||||
" ........X ",
|
" ........X ",
|
||||||
" .oO+@#$%XX ",
|
" .oO+@#$%XX ",
|
||||||
" .&+*#$=-XXX ",
|
" .&+*#$=-XXX ",
|
||||||
" .+*;:=->XXXX ",
|
" .+*;:=->XXXX ",
|
||||||
" .*,:<->1234X ",
|
" .*,:<->1234X ",
|
||||||
" .,5:5612378X ",
|
" .,5:5612378X ",
|
||||||
" 5,5559530qwX ",
|
" 5,5559530qwX ",
|
||||||
" 55555550q9eX ",
|
" 55555550q9eX ",
|
||||||
" 5555r5555teyX ",
|
" 5555r5555teyX ",
|
||||||
" 55rui559eypX ",
|
" 55rui559eypX ",
|
||||||
" 5555i5555yasX ",
|
" 5555i5555yasX ",
|
||||||
" 5555555dasfX ",
|
" 5555555dasfX ",
|
||||||
" 5355595gsfhX ",
|
" 5355595gsfhX ",
|
||||||
" .3595jgklhzX ",
|
" .3595jgklhzX ",
|
||||||
" .0qwjxkchzvX ",
|
" .0qwjxkchzvX ",
|
||||||
" XXXXXXXXXXXX "
|
" XXXXXXXXXXXX "
|
||||||
};
|
};
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue