Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5094303863 |
245 changed files with 18126 additions and 133047 deletions
|
|
@ -1,13 +0,0 @@
|
|||
# EditorConfig info: https://editorconfig.org/
|
||||
root = true
|
||||
|
||||
[Makefile*]
|
||||
indent_style = tab
|
||||
|
||||
[*.{c,cpp,h,cxx,hxx}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
max_line_length = 120
|
||||
4
.github/workflows/MSBuild.yml
vendored
4
.github/workflows/MSBuild.yml
vendored
|
|
@ -1,6 +1,6 @@
|
|||
name: MSBuild MSVC Project File CI
|
||||
name: MSBuild
|
||||
|
||||
on: [push, pull_request]
|
||||
on: [push]
|
||||
|
||||
env:
|
||||
# Path to the solution file relative to the root of the project.
|
||||
|
|
|
|||
20
.github/workflows/autotools.yml
vendored
20
.github/workflows/autotools.yml
vendored
|
|
@ -1,20 +0,0 @@
|
|||
name: autotools build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build-autotools:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
name: Ubuntu
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: configure
|
||||
run: ./configure
|
||||
- name: make
|
||||
run: make
|
||||
54
.github/workflows/c-cpp.yml
vendored
Normal file
54
.github/workflows/c-cpp.yml
vendored
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
name: C/C++ CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: configure
|
||||
run: ./configure
|
||||
- name: make
|
||||
run: make
|
||||
|
||||
build-cmake:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: cmake
|
||||
run: cmake .
|
||||
- name: make
|
||||
run: make
|
||||
|
||||
build-cmake-msvc:
|
||||
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: cmake
|
||||
run: cmake .
|
||||
- name: build
|
||||
run: cmake --build .
|
||||
|
||||
build-cmake-mingw:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: apt
|
||||
run: sudo apt-get install mingw-w64
|
||||
- name: cmake
|
||||
run: cmake -DCMAKE_TOOLCHAIN_FILE=i686-w64-mingw32.cmake .
|
||||
- name: make
|
||||
run: make
|
||||
56
.github/workflows/cmake.yml
vendored
56
.github/workflows/cmake.yml
vendored
|
|
@ -1,56 +0,0 @@
|
|||
name: CMake build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- name: Ubuntu
|
||||
os: ubuntu-latest
|
||||
install_dir: ~/portaudio
|
||||
- name: Ubuntu mingw64
|
||||
os: ubuntu-latest
|
||||
install_dir: ~/portaudio
|
||||
dependencies_extras: mingw-w64
|
||||
cmake_extras: -DCMAKE_TOOLCHAIN_FILE=i686-w64-mingw32.cmake
|
||||
- name: Windows
|
||||
os: windows-latest
|
||||
install_dir: C:\portaudio
|
||||
- name: macOS
|
||||
os: macOS-latest
|
||||
install_dir: ~/portaudio
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
name: ${{ matrix.name }}
|
||||
env:
|
||||
cmake_build_type: RelWithDebInfo
|
||||
steps:
|
||||
- name: checkout Git repository
|
||||
uses: actions/checkout@v2
|
||||
- name: "[Ubuntu] install dependencies"
|
||||
run: sudo apt-get install libasound2-dev libjack-dev ${{ matrix.dependencies_extras }}
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
- name: configure
|
||||
run: cmake ${{ matrix.cmake_extras }}
|
||||
-DCMAKE_INSTALL_PREFIX=${{ matrix.install_dir }}
|
||||
-DCMAKE_BUILD_TYPE=${{ env.cmake_build_type }}
|
||||
-DPA_BUILD_TESTS=ON
|
||||
-DPA_BUILD_EXAMPLES=ON
|
||||
-S .
|
||||
-B build
|
||||
- name: build
|
||||
run: cmake --build build --config ${{ env.cmake_build_type }} --parallel 2
|
||||
- name: install
|
||||
run: cmake --install build --config ${{ env.cmake_build_type }}
|
||||
- name: "Upload GitHub Actions artifacts"
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ matrix.name }} PortAudio build
|
||||
path: ${{ matrix.install_dir }}
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -17,7 +17,6 @@ lib-stamp
|
|||
lib/*
|
||||
libtool
|
||||
portaudio-2.0.pc
|
||||
autom4te.cache/*
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
|
|
@ -47,6 +46,3 @@ autom4te.cache/*
|
|||
|
||||
# Visual Studio CMake build output folder
|
||||
out/
|
||||
|
||||
# Visual Studio CMake settings file
|
||||
CMakeSettings.json
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
# http://www.portaudio.com/trac/wiki/TutorialDir/Compile/CMake
|
||||
#
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
|
||||
|
||||
# Check if the user is building PortAudio stand-alone or as part of a larger
|
||||
# project. If this is part of a larger project (i.e. the CMakeLists.txt has
|
||||
|
|
@ -126,7 +126,6 @@ IF(WIN32)
|
|||
src/os/win/pa_win_wdmks_utils.c
|
||||
src/os/win/pa_win_coinitialize.c)
|
||||
SET(PA_PLATFORM_INCLUDES
|
||||
src/os/win/pa_win_util.h
|
||||
src/os/win/pa_win_coinitialize.h
|
||||
src/os/win/pa_win_wdmks_utils.h)
|
||||
|
||||
|
|
@ -265,12 +264,11 @@ ELSE()
|
|||
FIND_LIBRARY(COREAUDIO_LIBRARY CoreAudio REQUIRED)
|
||||
FIND_LIBRARY(AUDIOTOOLBOX_LIBRARY AudioToolbox REQUIRED)
|
||||
FIND_LIBRARY(AUDIOUNIT_LIBRARY AudioUnit REQUIRED)
|
||||
FIND_LIBRARY(COREFOUNDATION_LIBRARY CoreFoundation REQUIRED)
|
||||
FIND_LIBRARY(CORESERVICES_LIBRARY CoreServices REQUIRED)
|
||||
MARK_AS_ADVANCED(COREAUDIO_LIBRARY AUDIOTOOLBOX_LIBRARY AUDIOUNIT_LIBRARY COREFOUNDATION_LIBRARY CORESERVICES_LIBRARY)
|
||||
SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ${COREAUDIO_LIBRARY} ${AUDIOTOOLBOX_LIBRARY} ${AUDIOUNIT_LIBRARY} ${COREFOUNDATION_LIBRARY} ${CORESERVICES_LIBRARY})
|
||||
FIND_LIBRARY(CARBON_LIBRARY Carbon REQUIRED)
|
||||
MARK_AS_ADVANCED(COREAUDIO_LIBRARY AUDIOTOOLBOX_LIBRARY AUDIOUNIT_LIBRARY CARBON_LIBRARY)
|
||||
SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ${COREAUDIO_LIBRARY} ${AUDIOTOOLBOX_LIBRARY} ${AUDIOUNIT_LIBRARY} ${CARBON_LIBRARY})
|
||||
SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PA_USE_COREAUDIO)
|
||||
SET(PA_PKGCONFIG_LDFLAGS "${PA_PKGCONFIG_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework CoreFoundation -framework CoreServices")
|
||||
SET(PA_PKGCONFIG_LDFLAGS "${PA_PKGCONFIG_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework Carbon")
|
||||
ENDIF()
|
||||
|
||||
ELSEIF(UNIX)
|
||||
|
|
@ -478,18 +476,7 @@ ENDIF()
|
|||
# Prepared for inclusion of test files
|
||||
OPTION(PA_BUILD_TESTS "Include test projects" OFF)
|
||||
IF(PA_BUILD_TESTS)
|
||||
MACRO(ADD_TEST appl_name)
|
||||
ADD_EXECUTABLE(${appl_name} "${appl_name}.c")
|
||||
TARGET_LINK_LIBRARIES(${appl_name} portaudio_static)
|
||||
TARGET_INCLUDE_DIRECTORIES(${appl_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/common")
|
||||
SET_TARGET_PROPERTIES(${appl_name}
|
||||
PROPERTIES
|
||||
FOLDER "Test"
|
||||
)
|
||||
ENDMACRO(ADD_TEST)
|
||||
|
||||
SUBDIRS(test)
|
||||
SUBDIRS(qa)
|
||||
ENDIF()
|
||||
|
||||
# Prepared for inclusion of test files
|
||||
|
|
|
|||
11
Makefile.in
11
Makefile.in
|
|
@ -44,7 +44,7 @@ PALIB = libportaudio.la
|
|||
PAINC = include/portaudio.h
|
||||
|
||||
PA_LDFLAGS = $(LDFLAGS) $(SHARED_FLAGS) -rpath $(libdir) -no-undefined \
|
||||
-export-symbols-regex "(Pa|PaMacCore|PaJack|PaAlsa|PaAsio|PaOSS|PaWasapi|PaWasapiWinrt)_.*" \
|
||||
-export-symbols-regex "(Pa|PaMacCore|PaJack|PaAlsa|PaAsio|PaOSS)_.*" \
|
||||
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
|
||||
|
||||
COMMON_OBJS = \
|
||||
|
|
@ -146,7 +146,6 @@ SRC_DIRS = \
|
|||
src/hostapi/dsound \
|
||||
src/hostapi/jack \
|
||||
src/hostapi/oss \
|
||||
src/hostapi/skeleton \
|
||||
src/hostapi/wasapi \
|
||||
src/hostapi/wdmks \
|
||||
src/hostapi/wmme \
|
||||
|
|
@ -221,16 +220,16 @@ clean:
|
|||
distclean: clean
|
||||
$(RM) config.log config.status Makefile libtool portaudio-2.0.pc
|
||||
|
||||
%.o: %.c $(MAKEFILE) $(PAINC) lib-stamp
|
||||
%.o: %.c $(MAKEFILE) $(PAINC)
|
||||
$(CC) -c $(CFLAGS) $< -o $@
|
||||
|
||||
%.lo: %.c $(MAKEFILE) $(PAINC) lib-stamp
|
||||
%.lo: %.c $(MAKEFILE) $(PAINC)
|
||||
$(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) $< -o $@
|
||||
|
||||
%.lo: %.cpp $(MAKEFILE) $(PAINC) lib-stamp
|
||||
%.lo: %.cpp $(MAKEFILE) $(PAINC)
|
||||
$(LIBTOOL) --mode=compile --tag=CXX $(CXX) -c $(CXXFLAGS) $< -o $@
|
||||
|
||||
%.o: %.cpp $(MAKEFILE) $(PAINC) lib-stamp
|
||||
%.o: %.cpp $(MAKEFILE) $(PAINC)
|
||||
$(CXX) -c $(CXXFLAGS) $< -o $@
|
||||
|
||||
%.o: %.asm
|
||||
|
|
|
|||
41
README.md
41
README.md
|
|
@ -1,7 +1,5 @@
|
|||
# PortAudio - portable audio I/O library
|
||||
|
||||
This is a fork of PortAudio that adds `Pa_RefreshDevice` functionality (see commit `1f01a3ddc05df7ee3bb3cad5ef960d335aff018b`), which allows runtime detection of audio device changes without restarting your application.
|
||||
|
||||
PortAudio is a portable audio I/O library designed for cross-platform
|
||||
support of audio. It uses either a callback mechanism to request audio
|
||||
processing, or blocking read/write calls to buffer data between the
|
||||
|
|
@ -62,42 +60,3 @@ Please feel free to join. See http://www.portaudio.com for details.
|
|||
test/patest_sine.c = output a sine wave in a simple PA app
|
||||
test/patest_sync.c = test synchronization of audio and video
|
||||
test/patest_wire.c = pass input to output, wire simulator
|
||||
|
||||
## Using with Node.js
|
||||
|
||||
This fork can be used with the [nodeaudio](https://andrewgundersen.net/repos/nodeaudio) Node.js bindings, which provide native audio I/O capabilities to JavaScript/TypeScript applications.
|
||||
|
||||
### Building PortAudio
|
||||
|
||||
Build portaudio:
|
||||
|
||||
./configure and make
|
||||
|
||||
At the time of writing (MacOS 12.1) I initially received build errors (-WError) about unused variables, so I had to remove -WError flag from the build rules.
|
||||
|
||||
Anytime the build configuration changes, make sure to run (see PortAudio docs):
|
||||
|
||||
autoreconf -if
|
||||
|
||||
Use find command in usr/local/lib to see install state:
|
||||
|
||||
find /usr/local/lib -name "libport*" -maxdepth 1
|
||||
|
||||
The default build of PortAudio sets an absolute install path (usr/local/lib) which causes issues if you want to package the .dylib in a project. To fix this, use install_name_tool to rename the binary using a relative @loader_path:
|
||||
|
||||
install_name_tool -id "@loader_path/libportaudio.dylib" libportaudio.dylib
|
||||
|
||||
Ideally, this would be set in the build config settings of PortAudio, but I haven't figured out how to do that yet.
|
||||
|
||||
### Using with nodeaudio
|
||||
|
||||
The [nodeaudio](https://andrewgundersen.net/repos/nodeaudio) bindings wrap this PortAudio fork to expose audio I/O capabilities to Node.js applications. Clone and build the nodeaudio project to get started:
|
||||
|
||||
git clone https://andrewgundersen.net/repos/nodeaudio
|
||||
cd nodeaudio
|
||||
node-gyp rebuild
|
||||
|
||||
This will link against the PortAudio library you've built, allowing you to use audio functionality from JavaScript.
|
||||
|
||||
TODO: Sign on build
|
||||
Of course, any binary (e.g. libportaudio.dylib) must be signed before distribution.
|
||||
|
|
|
|||
2944
aclocal.m4
vendored
2944
aclocal.m4
vendored
File diff suppressed because it is too large
Load diff
|
|
@ -1,8 +1,8 @@
|
|||
Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free
|
||||
Software Foundation, Inc.
|
||||
Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
|
||||
Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
|
|
@ -12,96 +12,97 @@ without warranty of any kind.
|
|||
Basic Installation
|
||||
==================
|
||||
|
||||
Briefly, the shell command './configure && make && make install'
|
||||
Briefly, the shell command `./configure && make && make install'
|
||||
should configure, build, and install this package. The following
|
||||
more-detailed instructions are generic; see the 'README' file for
|
||||
more-detailed instructions are generic; see the `README' file for
|
||||
instructions specific to this package. Some packages provide this
|
||||
'INSTALL' file but do not implement all of the features documented
|
||||
`INSTALL' file but do not implement all of the features documented
|
||||
below. The lack of an optional feature in a given package is not
|
||||
necessarily a bug. More recommendations for GNU packages can be found
|
||||
in *note Makefile Conventions: (standards)Makefile Conventions.
|
||||
|
||||
The 'configure' shell script attempts to guess correct values for
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a 'Makefile' in each directory of the package.
|
||||
It may also create one or more '.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script 'config.status' that
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, and a
|
||||
file 'config.log' containing compiler output (useful mainly for
|
||||
debugging 'configure').
|
||||
file `config.log' containing compiler output (useful mainly for
|
||||
debugging `configure').
|
||||
|
||||
It can also use an optional file (typically called 'config.cache' and
|
||||
enabled with '--cache-file=config.cache' or simply '-C') that saves the
|
||||
results of its tests to speed up reconfiguring. Caching is disabled by
|
||||
default to prevent problems with accidental use of stale cache files.
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how 'configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the 'README' so they can
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point 'config.cache' contains results you don't want to keep, you
|
||||
some point `config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file 'configure.ac' (or 'configure.in') is used to create
|
||||
'configure' by a program called 'autoconf'. You need 'configure.ac' if
|
||||
you want to change it or regenerate 'configure' using a newer version of
|
||||
'autoconf'.
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You need `configure.ac' if
|
||||
you want to change it or regenerate `configure' using a newer version
|
||||
of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. 'cd' to the directory containing the package's source code and type
|
||||
'./configure' to configure the package for your system.
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system.
|
||||
|
||||
Running 'configure' might take a while. While running, it prints
|
||||
Running `configure' might take a while. While running, it prints
|
||||
some messages telling which features it is checking for.
|
||||
|
||||
2. Type 'make' to compile the package.
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Optionally, type 'make check' to run any self-tests that come with
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
the package, generally using the just-built uninstalled binaries.
|
||||
|
||||
4. Type 'make install' to install the programs and any data files and
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
documentation. When installing into a prefix owned by root, it is
|
||||
recommended that the package be configured and built as a regular
|
||||
user, and only the 'make install' phase executed with root
|
||||
user, and only the `make install' phase executed with root
|
||||
privileges.
|
||||
|
||||
5. Optionally, type 'make installcheck' to repeat any self-tests, but
|
||||
5. Optionally, type `make installcheck' to repeat any self-tests, but
|
||||
this time using the binaries in their final installed location.
|
||||
This target does not install anything. Running this target as a
|
||||
regular user, particularly if the prior 'make install' required
|
||||
regular user, particularly if the prior `make install' required
|
||||
root privileges, verifies that the installation completed
|
||||
correctly.
|
||||
|
||||
6. You can remove the program binaries and object files from the
|
||||
source code directory by typing 'make clean'. To also remove the
|
||||
files that 'configure' created (so you can compile the package for
|
||||
a different kind of computer), type 'make distclean'. There is
|
||||
also a 'make maintainer-clean' target, but that is intended mainly
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
7. Often, you can also type 'make uninstall' to remove the installed
|
||||
7. Often, you can also type `make uninstall' to remove the installed
|
||||
files again. In practice, not all packages have tested that
|
||||
uninstallation works correctly, even though it is required by the
|
||||
GNU Coding Standards.
|
||||
|
||||
8. Some packages, particularly those that use Automake, provide 'make
|
||||
8. Some packages, particularly those that use Automake, provide `make
|
||||
distcheck', which can by used by developers to test that all other
|
||||
targets like 'make install' and 'make uninstall' work correctly.
|
||||
targets like `make install' and `make uninstall' work correctly.
|
||||
This target is generally not run by end users.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the 'configure' script does not know about. Run './configure --help'
|
||||
the `configure' script does not know about. Run `./configure --help'
|
||||
for details on some of the pertinent environment variables.
|
||||
|
||||
You can give 'configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here is
|
||||
an example:
|
||||
You can give `configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
|
||||
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||
|
||||
|
|
@ -112,21 +113,21 @@ Compiling For Multiple Architectures
|
|||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you can use GNU 'make'. 'cd' to the
|
||||
own directory. To do this, you can use GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the 'configure' script. 'configure' automatically checks for the source
|
||||
code in the directory that 'configure' is in and in '..'. This is known
|
||||
as a "VPATH" build.
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'. This
|
||||
is known as a "VPATH" build.
|
||||
|
||||
With a non-GNU 'make', it is safer to compile the package for one
|
||||
With a non-GNU `make', it is safer to compile the package for one
|
||||
architecture at a time in the source code directory. After you have
|
||||
installed the package for one architecture, use 'make distclean' before
|
||||
installed the package for one architecture, use `make distclean' before
|
||||
reconfiguring for another architecture.
|
||||
|
||||
On MacOS X 10.5 and later systems, you can create libraries and
|
||||
executables that work on multiple system types--known as "fat" or
|
||||
"universal" binaries--by specifying multiple '-arch' options to the
|
||||
compiler but only a single '-arch' option to the preprocessor. Like
|
||||
"universal" binaries--by specifying multiple `-arch' options to the
|
||||
compiler but only a single `-arch' option to the preprocessor. Like
|
||||
this:
|
||||
|
||||
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||
|
|
@ -135,104 +136,105 @@ this:
|
|||
|
||||
This is not guaranteed to produce working output in all cases, you
|
||||
may have to build one architecture at a time and combine the results
|
||||
using the 'lipo' tool if you have problems.
|
||||
using the `lipo' tool if you have problems.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, 'make install' installs the package's commands under
|
||||
'/usr/local/bin', include files under '/usr/local/include', etc. You
|
||||
can specify an installation prefix other than '/usr/local' by giving
|
||||
'configure' the option '--prefix=PREFIX', where PREFIX must be an
|
||||
By default, `make install' installs the package's commands under
|
||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||
can specify an installation prefix other than `/usr/local' by giving
|
||||
`configure' the option `--prefix=PREFIX', where PREFIX must be an
|
||||
absolute file name.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
|
||||
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like '--bindir=DIR' to specify different values for particular
|
||||
kinds of files. Run 'configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them. In general, the default
|
||||
for these options is expressed in terms of '${prefix}', so that
|
||||
specifying just '--prefix' will affect all of the other directory
|
||||
options like `--bindir=DIR' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them. In general, the
|
||||
default for these options is expressed in terms of `${prefix}', so that
|
||||
specifying just `--prefix' will affect all of the other directory
|
||||
specifications that were not explicitly provided.
|
||||
|
||||
The most portable way to affect installation locations is to pass the
|
||||
correct locations to 'configure'; however, many packages provide one or
|
||||
correct locations to `configure'; however, many packages provide one or
|
||||
both of the following shortcuts of passing variable assignments to the
|
||||
'make install' command line to change installation locations without
|
||||
`make install' command line to change installation locations without
|
||||
having to reconfigure or recompile.
|
||||
|
||||
The first method involves providing an override variable for each
|
||||
affected directory. For example, 'make install
|
||||
affected directory. For example, `make install
|
||||
prefix=/alternate/directory' will choose an alternate location for all
|
||||
directory configuration variables that were expressed in terms of
|
||||
'${prefix}'. Any directories that were specified during 'configure',
|
||||
but not in terms of '${prefix}', must each be overridden at install time
|
||||
for the entire installation to be relocated. The approach of makefile
|
||||
variable overrides for each directory variable is required by the GNU
|
||||
Coding Standards, and ideally causes no recompilation. However, some
|
||||
platforms have known limitations with the semantics of shared libraries
|
||||
that end up requiring recompilation when using this method, particularly
|
||||
noticeable in packages that use GNU Libtool.
|
||||
`${prefix}'. Any directories that were specified during `configure',
|
||||
but not in terms of `${prefix}', must each be overridden at install
|
||||
time for the entire installation to be relocated. The approach of
|
||||
makefile variable overrides for each directory variable is required by
|
||||
the GNU Coding Standards, and ideally causes no recompilation.
|
||||
However, some platforms have known limitations with the semantics of
|
||||
shared libraries that end up requiring recompilation when using this
|
||||
method, particularly noticeable in packages that use GNU Libtool.
|
||||
|
||||
The second method involves providing the 'DESTDIR' variable. For
|
||||
example, 'make install DESTDIR=/alternate/directory' will prepend
|
||||
'/alternate/directory' before all installation names. The approach of
|
||||
'DESTDIR' overrides is not required by the GNU Coding Standards, and
|
||||
The second method involves providing the `DESTDIR' variable. For
|
||||
example, `make install DESTDIR=/alternate/directory' will prepend
|
||||
`/alternate/directory' before all installation names. The approach of
|
||||
`DESTDIR' overrides is not required by the GNU Coding Standards, and
|
||||
does not work on platforms that have drive letters. On the other hand,
|
||||
it does better at avoiding recompilation issues, and works well even
|
||||
when some directory options were not specified in terms of '${prefix}'
|
||||
at 'configure' time.
|
||||
when some directory options were not specified in terms of `${prefix}'
|
||||
at `configure' time.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving 'configure' the
|
||||
option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Some packages pay attention to '--enable-FEATURE' options to
|
||||
'configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to '--with-PACKAGE' options, where PACKAGE
|
||||
is something like 'gnu-as' or 'x' (for the X Window System). The
|
||||
'README' should mention any '--enable-' and '--with-' options that the
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, 'configure' can usually
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the 'configure' options '--x-includes=DIR' and
|
||||
'--x-libraries=DIR' to specify their locations.
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Some packages offer the ability to configure how verbose the
|
||||
execution of 'make' will be. For these packages, running './configure
|
||||
execution of `make' will be. For these packages, running `./configure
|
||||
--enable-silent-rules' sets the default to minimal output, which can be
|
||||
overridden with 'make V=1'; while running './configure
|
||||
overridden with `make V=1'; while running `./configure
|
||||
--disable-silent-rules' sets the default to verbose, which can be
|
||||
overridden with 'make V=0'.
|
||||
overridden with `make V=0'.
|
||||
|
||||
Particular systems
|
||||
==================
|
||||
|
||||
On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
|
||||
is not installed, it is recommended to use the following options in
|
||||
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
|
||||
CC is not installed, it is recommended to use the following options in
|
||||
order to use an ANSI C compiler:
|
||||
|
||||
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
|
||||
|
||||
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
||||
|
||||
HP-UX 'make' updates targets which have the same timestamps as their
|
||||
prerequisites, which makes it generally unusable when shipped generated
|
||||
files such as 'configure' are involved. Use GNU 'make' instead.
|
||||
HP-UX `make' updates targets which have the same time stamps as
|
||||
their prerequisites, which makes it generally unusable when shipped
|
||||
generated files such as `configure' are involved. Use GNU `make'
|
||||
instead.
|
||||
|
||||
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
||||
parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
|
||||
workaround. If GNU CC is not installed, it is therefore recommended to
|
||||
try
|
||||
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
|
||||
a workaround. If GNU CC is not installed, it is therefore recommended
|
||||
to try
|
||||
|
||||
./configure CC="cc"
|
||||
|
||||
|
|
@ -240,26 +242,26 @@ and if that doesn't work, try
|
|||
|
||||
./configure CC="cc -nodtk"
|
||||
|
||||
On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
|
||||
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
|
||||
directory contains several dysfunctional programs; working variants of
|
||||
these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
|
||||
in your 'PATH', put it _after_ '/usr/bin'.
|
||||
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
|
||||
in your `PATH', put it _after_ `/usr/bin'.
|
||||
|
||||
On Haiku, software installed for all users goes in '/boot/common',
|
||||
not '/usr/local'. It is recommended to use the following options:
|
||||
On Haiku, software installed for all users goes in `/boot/common',
|
||||
not `/usr/local'. It is recommended to use the following options:
|
||||
|
||||
./configure --prefix=/boot/common
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features 'configure' cannot figure out
|
||||
There may be some features `configure' cannot figure out
|
||||
automatically, but needs to determine by the type of machine the package
|
||||
will run on. Usually, assuming the package is built to be run on the
|
||||
_same_ architectures, 'configure' can figure that out, but if it prints
|
||||
_same_ architectures, `configure' can figure that out, but if it prints
|
||||
a message saying it cannot guess the machine type, give it the
|
||||
'--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as 'sun4', or a canonical name which has the form:
|
||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
|
|
@ -268,101 +270,101 @@ where SYSTEM can have one of these forms:
|
|||
OS
|
||||
KERNEL-OS
|
||||
|
||||
See the file 'config.sub' for the possible values of each field. If
|
||||
'config.sub' isn't included in this package, then this package doesn't
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the option '--target=TYPE' to select the type of system they will
|
||||
use the option `--target=TYPE' to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the
|
||||
"host" platform (i.e., that on which the generated programs will
|
||||
eventually be run) with '--host=TYPE'.
|
||||
eventually be run) with `--host=TYPE'.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for 'configure' scripts to share,
|
||||
you can create a site shell script called 'config.site' that gives
|
||||
default values for variables like 'CC', 'cache_file', and 'prefix'.
|
||||
'configure' looks for 'PREFIX/share/config.site' if it exists, then
|
||||
'PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
'CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all 'configure' scripts look for a site script.
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to 'configure'. However, some packages may run
|
||||
environment passed to `configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the 'configure' command line, using 'VAR=value'. For example:
|
||||
them in the `configure' command line, using `VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified 'gcc' to be used as the C compiler (unless it is
|
||||
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||
overridden in the site shell script).
|
||||
|
||||
Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
|
||||
Autoconf limitation. Until the limitation is lifted, you can use this
|
||||
workaround:
|
||||
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
||||
an Autoconf limitation. Until the limitation is lifted, you can use
|
||||
this workaround:
|
||||
|
||||
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
'configure' Invocation
|
||||
`configure' Invocation
|
||||
======================
|
||||
|
||||
'configure' recognizes the following options to control how it
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
'--help'
|
||||
'-h'
|
||||
Print a summary of all of the options to 'configure', and exit.
|
||||
`--help'
|
||||
`-h'
|
||||
Print a summary of all of the options to `configure', and exit.
|
||||
|
||||
'--help=short'
|
||||
'--help=recursive'
|
||||
`--help=short'
|
||||
`--help=recursive'
|
||||
Print a summary of the options unique to this package's
|
||||
'configure', and exit. The 'short' variant lists options used only
|
||||
in the top level, while the 'recursive' variant lists options also
|
||||
present in any nested packages.
|
||||
`configure', and exit. The `short' variant lists options used
|
||||
only in the top level, while the `recursive' variant lists options
|
||||
also present in any nested packages.
|
||||
|
||||
'--version'
|
||||
'-V'
|
||||
Print the version of Autoconf used to generate the 'configure'
|
||||
`--version'
|
||||
`-V'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
'--cache-file=FILE'
|
||||
`--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally 'config.cache'. FILE defaults to '/dev/null' to
|
||||
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||
disable caching.
|
||||
|
||||
'--config-cache'
|
||||
'-C'
|
||||
Alias for '--cache-file=config.cache'.
|
||||
`--config-cache'
|
||||
`-C'
|
||||
Alias for `--cache-file=config.cache'.
|
||||
|
||||
'--quiet'
|
||||
'--silent'
|
||||
'-q'
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to '/dev/null' (any error
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
'--srcdir=DIR'
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
'configure' can determine that directory automatically.
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
'--prefix=DIR'
|
||||
Use DIR as the installation prefix. *note Installation Names:: for
|
||||
more details, including other options available for fine-tuning the
|
||||
installation locations.
|
||||
`--prefix=DIR'
|
||||
Use DIR as the installation prefix. *note Installation Names::
|
||||
for more details, including other options available for fine-tuning
|
||||
the installation locations.
|
||||
|
||||
'--no-create'
|
||||
'-n'
|
||||
`--no-create'
|
||||
`-n'
|
||||
Run the configure checks, but stop before creating any output
|
||||
files.
|
||||
|
||||
'configure' also accepts some other, not widely useful, options. Run
|
||||
'configure --help' for more details.
|
||||
`configure' also accepts some other, not widely useful, options. Run
|
||||
`configure --help' for more details.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.16.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
|
@ -15,17 +15,7 @@
|
|||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
|
|
@ -89,12 +79,17 @@ POST_UNINSTALL = :
|
|||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = .
|
||||
DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
|
||||
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||
$(top_srcdir)/configure $(am__configure_deps) \
|
||||
$(srcdir)/portaudiocpp.pc.in COPYING \
|
||||
$(top_srcdir)/../../compile $(top_srcdir)/../../config.guess \
|
||||
$(top_srcdir)/../../config.sub $(top_srcdir)/../../install-sh \
|
||||
$(top_srcdir)/../../ltmain.sh $(top_srcdir)/../../missing
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
|
||||
$(am__configure_deps) $(am__DIST_COMMON)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
|
|
@ -163,7 +158,7 @@ am__recursive_targets = \
|
|||
$(RECURSIVE_CLEAN_TARGETS) \
|
||||
$(am__extra_recursive_targets)
|
||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||
cscope distdir distdir-am dist dist-all distcheck
|
||||
cscope distdir dist dist-all distcheck
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
|
|
@ -181,10 +176,10 @@ am__define_uniq_tagged_files = \
|
|||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
CSCOPE = cscope
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/portaudiocpp.pc.in \
|
||||
AUTHORS COPYING ChangeLog INSTALL NEWS README compile \
|
||||
config.guess config.sub install-sh ltmain.sh missing
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
|
|
@ -223,8 +218,6 @@ am__relativize = \
|
|||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
DIST_TARGETS = dist-gzip
|
||||
# Exists only to be overridden by the user if desired.
|
||||
AM_DISTCHECK_DVI_TARGET = dvi
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
||||
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
||||
|
|
@ -241,9 +234,8 @@ AWK = @AWK@
|
|||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
|
|
@ -259,7 +251,6 @@ ECHO_C = @ECHO_C@
|
|||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
|
|
@ -276,7 +267,6 @@ LIBTOOL = @LIBTOOL@
|
|||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
|
||||
LT_VERSION_INFO = @LT_VERSION_INFO@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
|
|
@ -348,7 +338,6 @@ pdfdir = @pdfdir@
|
|||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
|
|
@ -380,14 +369,15 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
|
|||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
|
|
@ -536,10 +526,8 @@ cscopelist-am: $(am__tagged_files)
|
|||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
test -d "$(distdir)" || mkdir "$(distdir)"
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
|
|
@ -604,7 +592,7 @@ distdir-am: $(DISTFILES)
|
|||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r "$(distdir)"
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
|
|
@ -619,22 +607,18 @@ dist-xz: distdir
|
|||
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-zstd: distdir
|
||||
tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
@echo WARNING: "Support for distribution archives compressed with" \
|
||||
"legacy program 'compress' is deprecated." >&2
|
||||
@echo WARNING: "Support for shar distribution archives is" \
|
||||
"deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
@echo WARNING: "Support for shar distribution archives is" \
|
||||
"deprecated." >&2
|
||||
@echo WARNING: "Support for distribution archives compressed with" \
|
||||
"legacy program 'compress' is deprecated." >&2
|
||||
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__post_remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
|
|
@ -652,7 +636,7 @@ dist dist-all:
|
|||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lz*) \
|
||||
|
|
@ -662,27 +646,25 @@ distcheck: dist
|
|||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
*.tar.zst*) \
|
||||
zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir)
|
||||
chmod u+w $(distdir)
|
||||
mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
|
||||
mkdir $(distdir)/_build $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
test -d $(distdir)/_build || exit 0; \
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& am__cwd=`pwd` \
|
||||
&& $(am__cd) $(distdir)/_build/sub \
|
||||
&& ../../configure \
|
||||
&& $(am__cd) $(distdir)/_build \
|
||||
&& ../configure \
|
||||
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
--srcdir=../.. --prefix="$$dc_install_base" \
|
||||
--srcdir=.. --prefix="$$dc_install_base" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
|
|
@ -847,20 +829,18 @@ uninstall-am: uninstall-pkgconfigDATA
|
|||
am--refresh check check-am clean clean-cscope clean-generic \
|
||||
clean-libtool cscope cscopelist-am ctags ctags-am dist \
|
||||
dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
|
||||
dist-xz dist-zip dist-zstd distcheck distclean \
|
||||
distclean-generic distclean-libtool distclean-tags \
|
||||
distcleancheck distdir distuninstallcheck dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-pdf install-pdf-am \
|
||||
install-pkgconfigDATA install-ps install-ps-am install-strip \
|
||||
installcheck installcheck-am installdirs installdirs-am \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags tags-am uninstall uninstall-am uninstall-pkgconfigDATA
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
dist-xz dist-zip distcheck distclean distclean-generic \
|
||||
distclean-libtool distclean-tags distcleancheck distdir \
|
||||
distuninstallcheck dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-pkgconfigDATA install-ps \
|
||||
install-ps-am install-strip installcheck installcheck-am \
|
||||
installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
|
||||
uninstall-am uninstall-pkgconfigDATA
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
|
|
|
|||
2953
bindings/cpp/aclocal.m4
vendored
2953
bindings/cpp/aclocal.m4
vendored
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,382 +0,0 @@
|
|||
# This file was generated by Autom4te 2.71.
|
||||
# It contains the lists of macros which have been traced.
|
||||
# It can be safely removed.
|
||||
|
||||
@request = (
|
||||
bless( [
|
||||
'0',
|
||||
1,
|
||||
[
|
||||
'/usr/local/Cellar/autoconf/2.71/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/local/Cellar/autoconf/2.71/share/autoconf/autoconf/autoconf.m4f',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/internal/ac-config-macro-dirs.m4',
|
||||
'/usr/local/share/aclocal/libtool.m4',
|
||||
'/usr/local/share/aclocal/ltargz.m4',
|
||||
'/usr/local/share/aclocal/ltdl.m4',
|
||||
'/usr/local/share/aclocal/ltoptions.m4',
|
||||
'/usr/local/share/aclocal/ltsugar.m4',
|
||||
'/usr/local/share/aclocal/ltversion.m4',
|
||||
'/usr/local/share/aclocal/lt~obsolete.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/amversion.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/auxdir.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/cond.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/depend.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/depout.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/init.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/install-sh.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/lead-dot.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/maintainer.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/make.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/missing.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/options.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/prog-cc-c-o.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/runlog.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/sanity.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/silent.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/strip.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/substnot.m4',
|
||||
'/usr/local/Cellar/automake/1.16.5/share/aclocal-1.16/tar.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'AC_LIBTOOL_LINKER_OPTION' => 1,
|
||||
'LT_WITH_LTDL' => 1,
|
||||
'AC_LIBLTDL_CONVENIENCE' => 1,
|
||||
'AC_LTDL_SYSSEARCHPATH' => 1,
|
||||
'LT_LIB_DLLOAD' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AC_CONFIG_MACRO_DIR_TRACE' => 1,
|
||||
'LTOBSOLETE_VERSION' => 1,
|
||||
'_AM_MANGLE_OPTION' => 1,
|
||||
'AM_DEP_TRACK' => 1,
|
||||
'LTDL_INSTALLABLE' => 1,
|
||||
'AM_PROG_INSTALL_SH' => 1,
|
||||
'AM_PROG_LD' => 1,
|
||||
'AM_SET_DEPDIR' => 1,
|
||||
'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'_AC_PROG_LIBTOOL' => 1,
|
||||
'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
|
||||
'LT_SYS_SYMBOL_USCORE' => 1,
|
||||
'AC_LIBTOOL_RC' => 1,
|
||||
'_LT_REQUIRED_DARWIN_CHECKS' => 1,
|
||||
'AM_DISABLE_SHARED' => 1,
|
||||
'AC_PATH_TOOL_PREFIX' => 1,
|
||||
'_LT_AC_LANG_CXX_CONFIG' => 1,
|
||||
'LT_AC_PROG_SED' => 1,
|
||||
'AC_PROG_NM' => 1,
|
||||
'AM_ENABLE_SHARED' => 1,
|
||||
'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
|
||||
'LTDL_CONVENIENCE' => 1,
|
||||
'AC_CONFIG_MACRO_DIR' => 1,
|
||||
'_LT_AC_LANG_GCJ_CONFIG' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'LT_AC_PROG_EGREP' => 1,
|
||||
'AC_LTDL_SHLIBEXT' => 1,
|
||||
'AM_ENABLE_STATIC' => 1,
|
||||
'_LT_COMPILER_BOILERPLATE' => 1,
|
||||
'_AM_SET_OPTIONS' => 1,
|
||||
'_LT_AC_LANG_F77_CONFIG' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
|
||||
'_AM_CONFIG_MACRO_DIRS' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AU_DEFUN' => 1,
|
||||
'AM_RUN_LOG' => 1,
|
||||
'AC_PROG_LD_RELOAD_FLAG' => 1,
|
||||
'_AM_DEPENDENCIES' => 1,
|
||||
'LTOPTIONS_VERSION' => 1,
|
||||
'AM_SUBST_NOTMAKE' => 1,
|
||||
'LT_SYS_DLSEARCH_PATH' => 1,
|
||||
'LT_FUNC_DLSYM_USCORE' => 1,
|
||||
'AC_LIBTOOL_CXX' => 1,
|
||||
'AC_LTDL_SYMBOL_USCORE' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'LT_PROG_GO' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AC_LTDL_SHLIBPATH' => 1,
|
||||
'_AM_SET_OPTION' => 1,
|
||||
'AC_DEFUN' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'_LT_AC_CHECK_DLFCN' => 1,
|
||||
'_LT_PROG_F77' => 1,
|
||||
'_AM_IF_OPTION' => 1,
|
||||
'AC_LIBTOOL_SETUP' => 1,
|
||||
'_LT_PATH_TOOL_PREFIX' => 1,
|
||||
'AC_PROG_LD_GNU' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'AC_LIBTOOL_PROG_CC_C_O' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
|
||||
'AC_CHECK_LIBM' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AC_LIBTOOL_FC' => 1,
|
||||
'LT_PATH_LD' => 1,
|
||||
'_LT_WITH_SYSROOT' => 1,
|
||||
'LT_SYS_DLOPEN_SELF' => 1,
|
||||
'_LT_PROG_CXX' => 1,
|
||||
'LT_AC_PROG_RC' => 1,
|
||||
'_LT_AC_LOCK' => 1,
|
||||
'LT_SYS_MODULE_EXT' => 1,
|
||||
'AM_DISABLE_STATIC' => 1,
|
||||
'_LT_LIBOBJ' => 1,
|
||||
'_LT_AC_PROG_CXXCPP' => 1,
|
||||
'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
|
||||
'LTDL_INIT' => 1,
|
||||
'LT_OUTPUT' => 1,
|
||||
'LT_PROG_GCJ' => 1,
|
||||
'_LT_COMPILER_OPTION' => 1,
|
||||
'LT_SYS_DLOPEN_DEPLIBS' => 1,
|
||||
'AC_WITH_LTDL' => 1,
|
||||
'_LT_LINKER_BOILERPLATE' => 1,
|
||||
'_LT_AC_SHELL_INIT' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AC_LTDL_ENABLE_INSTALL' => 1,
|
||||
'LTVERSION_VERSION' => 1,
|
||||
'AC_LIBTOOL_WIN32_DLL' => 1,
|
||||
'AM_MISSING_HAS_RUN' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
|
||||
'_LT_AC_LANG_RC_CONFIG' => 1,
|
||||
'AC_DISABLE_STATIC' => 1,
|
||||
'AC_DISABLE_FAST_INSTALL' => 1,
|
||||
'_LT_PROG_LTMAIN' => 1,
|
||||
'_LT_AC_PROG_ECHO_BACKSLASH' => 1,
|
||||
'AM_AUX_DIR_EXPAND' => 1,
|
||||
'_LT_AC_SYS_COMPILER' => 1,
|
||||
'AM_SANITY_CHECK' => 1,
|
||||
'_LT_PROG_FC' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
|
||||
'AC_LIBTOOL_GCJ' => 1,
|
||||
'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'_AM_AUTOCONF_VERSION' => 1,
|
||||
'AC_ENABLE_FAST_INSTALL' => 1,
|
||||
'LT_PATH_NM' => 1,
|
||||
'_LT_CC_BASENAME' => 1,
|
||||
'AC_DEFUN_ONCE' => 1,
|
||||
'_LTDL_SETUP' => 1,
|
||||
'_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AC_LIBTOOL_CONFIG' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AC_LTDL_OBJDIR' => 1,
|
||||
'_LT_AC_FILE_LTDLL_C' => 1,
|
||||
'AC_LTDL_DLSYM_USCORE' => 1,
|
||||
'AC_LIBTOOL_OBJDIR' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
|
||||
'AC_LIBLTDL_INSTALLABLE' => 1,
|
||||
'AC_LTDL_DLLIB' => 1,
|
||||
'AC_LIBTOOL_LANG_C_CONFIG' => 1,
|
||||
'AC_DISABLE_SHARED' => 1,
|
||||
'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'_LT_AC_TAGVAR' => 1,
|
||||
'AC_ENABLE_SHARED' => 1,
|
||||
'AM_PROG_NM' => 1,
|
||||
'AC_LIBTOOL_COMPILER_OPTION' => 1,
|
||||
'AM_PROG_INSTALL_STRIP' => 1,
|
||||
'AC_LIBTOOL_PICMODE' => 1,
|
||||
'AM_SET_LEADING_DOT' => 1,
|
||||
'AC_DEPLIBS_CHECK_METHOD' => 1,
|
||||
'_LT_PREPARE_SED_QUOTE_VARS' => 1,
|
||||
'AC_LIBTOOL_DLOPEN_SELF' => 1,
|
||||
'AC_LIB_LTDL' => 1,
|
||||
'LT_LIB_M' => 1,
|
||||
'AC_ENABLE_STATIC' => 1,
|
||||
'AC_PATH_MAGIC' => 1,
|
||||
'AC_LIBTOOL_F77' => 1,
|
||||
'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
|
||||
'LT_LANG' => 1,
|
||||
'_LT_LINKER_OPTION' => 1,
|
||||
'AM_MISSING_PROG' => 1,
|
||||
'LTSUGAR_VERSION' => 1,
|
||||
'include' => 1,
|
||||
'_AM_PROG_CC_C_O' => 1,
|
||||
'LT_AC_PROG_GCJ' => 1,
|
||||
'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'_AM_PROG_TAR' => 1,
|
||||
'AM_MAKE_INCLUDE' => 1,
|
||||
'_LT_AC_LANG_F77' => 1,
|
||||
'AC_LTDL_PREOPEN' => 1,
|
||||
'AC_LIBTOOL_DLOPEN' => 1,
|
||||
'LT_CMD_MAX_LEN' => 1,
|
||||
'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
|
||||
'_LT_AC_SYS_LIBPATH_AIX' => 1,
|
||||
'_LT_AC_TRY_DLOPEN_SELF' => 1,
|
||||
'AC_PROG_EGREP' => 1,
|
||||
'LT_PROG_RC' => 1,
|
||||
'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
|
||||
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
|
||||
'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
|
||||
'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
|
||||
'LT_FUNC_ARGZ' => 1,
|
||||
'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
|
||||
'_LT_PROG_ECHO_BACKSLASH' => 1,
|
||||
'_LT_AC_LANG_CXX' => 1,
|
||||
'LT_SYS_MODULE_PATH' => 1,
|
||||
'_LT_AC_LANG_C_CONFIG' => 1,
|
||||
'AC_PROG_LD' => 1,
|
||||
'_LT_DLL_DEF_P' => 1,
|
||||
'_LT_AC_LANG_GCJ' => 1,
|
||||
'm4_include' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
'1',
|
||||
1,
|
||||
[
|
||||
'/usr/local/Cellar/autoconf/2.71/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/local/Cellar/autoconf/2.71/share/autoconf/autoconf/autoconf.m4f',
|
||||
'aclocal.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'_m4_warn' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AM_PROG_FC_C_O' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'sinclude' => 1,
|
||||
'GTK_DOC_CHECK' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'AM_PROG_AR' => 1,
|
||||
'm4_include' => 1,
|
||||
'AM_NLS' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AM_PATH_GUILE' => 1,
|
||||
'AC_SUBST_TRACE' => 1,
|
||||
'IT_PROG_INTLTOOL' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AC_CONFIG_MACRO_DIR_TRACE' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'AM_PROG_MOC' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AM_EXTRA_RECURSIVE_TARGETS' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'AC_FC_PP_DEFINE' => 1,
|
||||
'AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AM_POT_TOOLS' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'include' => 1,
|
||||
'_AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'AC_FC_PP_SRCEXT' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'AC_INIT' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
'2',
|
||||
1,
|
||||
[
|
||||
'/usr/local/Cellar/autoconf/2.71/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/local/Cellar/autoconf/2.71/share/autoconf/autoconf/autoconf.m4f',
|
||||
'aclocal.m4',
|
||||
'/usr/local/Cellar/autoconf/2.71/share/autoconf/autoconf/trailer.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'GTK_DOC_CHECK' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'sinclude' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AM_PROG_FC_C_O' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'AM_PROG_AR' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'm4_include' => 1,
|
||||
'AM_NLS' => 1,
|
||||
'AC_SUBST_TRACE' => 1,
|
||||
'IT_PROG_INTLTOOL' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AM_PATH_GUILE' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AM_EXTRA_RECURSIVE_TARGETS' => 1,
|
||||
'AM_PROG_MOC' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AC_CONFIG_MACRO_DIR_TRACE' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AM_POT_TOOLS' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'AC_FC_PP_DEFINE' => 1,
|
||||
'_AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'include' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AC_FC_PP_SRCEXT' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AC_SUBST' => 1
|
||||
}
|
||||
], 'Autom4te::Request' )
|
||||
);
|
||||
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,618 +0,0 @@
|
|||
m4trace:aclocal.m4:9759: -1- AC_SUBST([am__quote])
|
||||
m4trace:aclocal.m4:9759: -1- AC_SUBST_TRACE([am__quote])
|
||||
m4trace:aclocal.m4:9759: -1- m4_pattern_allow([^am__quote$])
|
||||
m4trace:configure.ac:15: -1- AC_INIT([PortAudioCpp], [12])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_forbid([^_?A[CHUM]_])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_forbid([_AC_])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^AS_FLAGS$])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_forbid([^_?m4_])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_forbid([^dnl$])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_forbid([^_?AS_])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([SHELL])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([SHELL])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^SHELL$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PATH_SEPARATOR])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PATH_SEPARATOR$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE_NAME])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE_STRING])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE_URL])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([exec_prefix], [NONE])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([exec_prefix])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^exec_prefix$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([prefix], [NONE])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([prefix])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^prefix$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([program_transform_name], [s,x,x,])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([program_transform_name])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^program_transform_name$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([bindir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^bindir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([sbindir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^sbindir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([libexecdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^libexecdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([datarootdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^datarootdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([datadir], ['${datarootdir}'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([datadir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^datadir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([sysconfdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^sysconfdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([sharedstatedir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^sharedstatedir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([localstatedir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^localstatedir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([runstatedir], ['${localstatedir}/run'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([runstatedir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^runstatedir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([includedir], ['${prefix}/include'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([includedir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^includedir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([oldincludedir], ['/usr/include'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([oldincludedir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^oldincludedir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
|
||||
['${datarootdir}/doc/${PACKAGE_TARNAME}'],
|
||||
['${datarootdir}/doc/${PACKAGE}'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([docdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^docdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([infodir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^infodir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([htmldir], ['${docdir}'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([htmldir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^htmldir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([dvidir], ['${docdir}'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([dvidir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^dvidir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([pdfdir], ['${docdir}'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([pdfdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^pdfdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([psdir], ['${docdir}'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([psdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^psdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([libdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^libdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([localedir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^localedir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([mandir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^mandir$])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
|
||||
@%:@undef PACKAGE_NAME])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
|
||||
@%:@undef PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
|
||||
@%:@undef PACKAGE_VERSION])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
|
||||
@%:@undef PACKAGE_STRING])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
|
||||
@%:@undef PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */
|
||||
@%:@undef PACKAGE_URL])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([DEFS])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([DEFS])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^DEFS$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([ECHO_C])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([ECHO_C])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^ECHO_C$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([ECHO_N])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([ECHO_N])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^ECHO_N$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([ECHO_T])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([ECHO_T])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^ECHO_T$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([build_alias])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([build_alias])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^build_alias$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([host_alias])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([host_alias])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^host_alias$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([target_alias])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([target_alias])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^target_alias$])
|
||||
m4trace:configure.ac:17: -1- AM_INIT_AUTOMAKE
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
|
||||
m4trace:configure.ac:17: -1- AM_AUTOMAKE_VERSION([1.16.5])
|
||||
m4trace:configure.ac:17: -1- AC_REQUIRE_AUX_FILE([install-sh])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([INSTALL_PROGRAM])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([INSTALL_SCRIPT])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([INSTALL_DATA])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([INSTALL_DATA])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^INSTALL_DATA$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([am__isrc], [' -I$(srcdir)'])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([am__isrc])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^am__isrc$])
|
||||
m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([am__isrc])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([CYGPATH_W])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([CYGPATH_W])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^CYGPATH_W$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([PACKAGE])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^PACKAGE$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([VERSION])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.ac:17: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^PACKAGE$])
|
||||
m4trace:configure.ac:17: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
|
||||
@%:@undef PACKAGE])
|
||||
m4trace:configure.ac:17: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.ac:17: -1- AH_OUTPUT([VERSION], [/* Version number of package */
|
||||
@%:@undef VERSION])
|
||||
m4trace:configure.ac:17: -1- AC_REQUIRE_AUX_FILE([missing])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([ACLOCAL])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([ACLOCAL])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^ACLOCAL$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AUTOCONF])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AUTOCONF])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AUTOCONF$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AUTOMAKE])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AUTOMAKE])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AUTOMAKE$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AUTOHEADER])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AUTOHEADER])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AUTOHEADER$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([MAKEINFO])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([MAKEINFO])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^MAKEINFO$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([install_sh])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([install_sh])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^install_sh$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([STRIP])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([STRIP])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^STRIP$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
|
||||
m4trace:configure.ac:17: -1- AC_REQUIRE_AUX_FILE([install-sh])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([MKDIR_P])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([MKDIR_P])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^MKDIR_P$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([mkdir_p])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^mkdir_p$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AWK])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AWK])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AWK$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([SET_MAKE])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([SET_MAKE])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^SET_MAKE$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([am__leading_dot])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([am__leading_dot])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^am__leading_dot$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AMTAR], ['$${TAR-tar}'])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AMTAR])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AMTAR$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([am__tar])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([am__tar])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^am__tar$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([am__untar])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([am__untar])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^am__untar$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([CTAGS])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([CTAGS])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^CTAGS$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([ETAGS])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([ETAGS])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^ETAGS$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([CSCOPE])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([CSCOPE])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^CSCOPE$])
|
||||
m4trace:configure.ac:17: -1- AM_SILENT_RULES
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AM_V])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AM_V])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_V$])
|
||||
m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_V])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AM_DEFAULT_V])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AM_DEFAULT_V])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_DEFAULT_V$])
|
||||
m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AM_DEFAULT_VERBOSITY])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AM_DEFAULT_VERBOSITY])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AM_BACKSLASH])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AM_BACKSLASH])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_BACKSLASH$])
|
||||
m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
|
||||
m4trace:configure.ac:18: -1- AM_MAINTAINER_MODE
|
||||
m4trace:configure.ac:18: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
|
||||
m4trace:configure.ac:18: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
|
||||
m4trace:configure.ac:18: -1- AC_SUBST_TRACE([MAINTAINER_MODE_TRUE])
|
||||
m4trace:configure.ac:18: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$])
|
||||
m4trace:configure.ac:18: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
|
||||
m4trace:configure.ac:18: -1- AC_SUBST_TRACE([MAINTAINER_MODE_FALSE])
|
||||
m4trace:configure.ac:18: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$])
|
||||
m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE])
|
||||
m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE])
|
||||
m4trace:configure.ac:18: -1- AC_SUBST([MAINT])
|
||||
m4trace:configure.ac:18: -1- AC_SUBST_TRACE([MAINT])
|
||||
m4trace:configure.ac:18: -1- m4_pattern_allow([^MAINT$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CFLAGS])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CFLAGS])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CFLAGS$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([LDFLAGS])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([ac_ct_CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([ac_ct_CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^ac_ct_CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([EXEEXT])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^EXEEXT$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([OBJEXT])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^OBJEXT$])
|
||||
m4trace:configure.ac:35: -1- AC_REQUIRE_AUX_FILE([compile])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([DEPDIR])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^DEPDIR$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([am__include])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([am__include])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^am__include$])
|
||||
m4trace:configure.ac:35: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([AMDEP_TRUE])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([AMDEP_TRUE])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^AMDEP_TRUE$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([AMDEP_FALSE])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([AMDEP_FALSE])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^AMDEP_FALSE$])
|
||||
m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
|
||||
m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([AMDEPBACKSLASH])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
|
||||
m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([am__nodep])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([am__nodep])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^am__nodep$])
|
||||
m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([am__nodep])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CCDEPMODE])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CCDEPMODE$])
|
||||
m4trace:configure.ac:35: -1- AM_CONDITIONAL([am__fastdepCC], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([am__fastdepCC_TRUE])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([am__fastdepCC_FALSE])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
|
||||
m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
|
||||
m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([CXX])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CXX])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^CXX$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([CXXFLAGS])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CXXFLAGS])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^CXXFLAGS$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([LDFLAGS])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([CXX])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CXX])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^CXX$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([ac_ct_CXX])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([ac_ct_CXX])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^ac_ct_CXX$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CXXDEPMODE])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^CXXDEPMODE$])
|
||||
m4trace:configure.ac:36: -1- AM_CONDITIONAL([am__fastdepCXX], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([am__fastdepCXX_TRUE])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([am__fastdepCXX_FALSE])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
|
||||
m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
|
||||
m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
|
||||
m4trace:configure.ac:37: -1- _m4_warn([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete.
|
||||
You should run autoupdate.], [aclocal.m4:8510: AC_LIBTOOL_WIN32_DLL is expanded from...
|
||||
configure.ac:37: the top level])
|
||||
m4trace:configure.ac:37: -1- AC_CANONICAL_HOST
|
||||
m4trace:configure.ac:37: -1- AC_CANONICAL_BUILD
|
||||
m4trace:configure.ac:37: -1- AC_REQUIRE_AUX_FILE([config.sub])
|
||||
m4trace:configure.ac:37: -1- AC_REQUIRE_AUX_FILE([config.guess])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([build], [$ac_cv_build])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([build])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^build$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([build_cpu], [$[1]])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([build_cpu])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^build_cpu$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([build_vendor], [$[2]])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([build_vendor])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^build_vendor$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([build_os])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([build_os])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^build_os$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([host], [$ac_cv_host])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([host])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^host$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([host_cpu], [$[1]])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([host_cpu])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^host_cpu$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([host_vendor], [$[2]])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([host_vendor])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^host_vendor$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([host_os])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([host_os])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^host_os$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([AS])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([AS])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^AS$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([DLLTOOL])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([DLLTOOL])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^DLLTOOL$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([OBJDUMP])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([OBJDUMP])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^OBJDUMP$])
|
||||
m4trace:configure.ac:37: -1- _m4_warn([obsolete], [AC_LIBTOOL_WIN32_DLL: Remove this warning and the call to _LT_SET_OPTION when you
|
||||
put the 'win32-dll' option into LT_INIT's first parameter.], [./lib/autoconf/general.m4:2434: AC_DIAGNOSE is expanded from...
|
||||
aclocal.m4:8510: AC_LIBTOOL_WIN32_DLL is expanded from...
|
||||
configure.ac:37: the top level])
|
||||
m4trace:configure.ac:38: -1- AC_PROG_LIBTOOL
|
||||
m4trace:configure.ac:38: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
|
||||
You should run autoupdate.], [aclocal.m4:121: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.ac:38: the top level])
|
||||
m4trace:configure.ac:38: -1- LT_INIT
|
||||
m4trace:configure.ac:38: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
|
||||
m4trace:configure.ac:38: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LIBTOOL])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LIBTOOL])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LIBTOOL$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([SED])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([SED])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^SED$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([GREP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([GREP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^GREP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([EGREP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([EGREP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^EGREP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([FGREP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([FGREP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^FGREP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([GREP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([GREP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^GREP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LD])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LD])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LD$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([DUMPBIN])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([DUMPBIN])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^DUMPBIN$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([ac_ct_DUMPBIN])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([DUMPBIN])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([DUMPBIN])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^DUMPBIN$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([NM])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([NM])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^NM$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LN_S], [$as_ln_s])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LN_S])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LN_S$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([OBJDUMP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([OBJDUMP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^OBJDUMP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([OBJDUMP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([OBJDUMP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^OBJDUMP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([DLLTOOL])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([DLLTOOL])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^DLLTOOL$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([DLLTOOL])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([DLLTOOL])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^DLLTOOL$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([AR])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([AR])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^AR$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([ac_ct_AR])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([ac_ct_AR])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^ac_ct_AR$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([STRIP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([STRIP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^STRIP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([RANLIB])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([RANLIB])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^RANLIB$])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([LT_OBJDIR])
|
||||
m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LT_OBJDIR$])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
||||
@%:@undef LT_OBJDIR])
|
||||
m4trace:configure.ac:38: -1- LT_SUPPORTED_TAG([CC])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([MANIFEST_TOOL])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([MANIFEST_TOOL])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^MANIFEST_TOOL$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([DSYMUTIL])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([DSYMUTIL])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^DSYMUTIL$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([NMEDIT])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([NMEDIT])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^NMEDIT$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LIPO])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LIPO])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LIPO$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([OTOOL])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([OTOOL])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^OTOOL$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([OTOOL64])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([OTOOL64])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^OTOOL64$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LT_SYS_LIBRARY_PATH])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LT_SYS_LIBRARY_PATH])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LT_SYS_LIBRARY_PATH$])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
@%:@undef HAVE_DLFCN_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STDIO_H], [/* Define to 1 if you have the <stdio.h> header file. */
|
||||
@%:@undef HAVE_STDIO_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
@%:@undef HAVE_STDLIB_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
|
||||
@%:@undef HAVE_STRING_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
@%:@undef HAVE_INTTYPES_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
|
||||
@%:@undef HAVE_STDINT_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
|
||||
@%:@undef HAVE_STRINGS_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
@%:@undef HAVE_SYS_STAT_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
@%:@undef HAVE_SYS_TYPES_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
|
||||
@%:@undef HAVE_UNISTD_H])
|
||||
m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^STDC_HEADERS$])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if all of the C90 standard headers exist (not just the ones
|
||||
required in a freestanding environment). This macro is provided for
|
||||
backward compatibility; new code need not use it. */
|
||||
@%:@undef STDC_HEADERS])
|
||||
m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLFCN_H])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
|
||||
m4trace:configure.ac:38: -1- LT_SUPPORTED_TAG([CXX])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([CXXCPP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CXXCPP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^CXXCPP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([CXXCPP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CXXCPP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^CXXCPP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LD])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LD])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LD$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LT_SYS_LIBRARY_PATH])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LT_SYS_LIBRARY_PATH])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LT_SYS_LIBRARY_PATH$])
|
||||
m4trace:configure.ac:41: -1- AC_SUBST([DEFAULT_INCLUDES])
|
||||
m4trace:configure.ac:41: -1- AC_SUBST_TRACE([DEFAULT_INCLUDES])
|
||||
m4trace:configure.ac:41: -1- m4_pattern_allow([^DEFAULT_INCLUDES$])
|
||||
m4trace:configure.ac:42: -1- AC_SUBST([PORTAUDIO_ROOT])
|
||||
m4trace:configure.ac:42: -1- AC_SUBST_TRACE([PORTAUDIO_ROOT])
|
||||
m4trace:configure.ac:42: -1- m4_pattern_allow([^PORTAUDIO_ROOT$])
|
||||
m4trace:configure.ac:43: -1- AC_SUBST([CXXFLAGS])
|
||||
m4trace:configure.ac:43: -1- AC_SUBST_TRACE([CXXFLAGS])
|
||||
m4trace:configure.ac:43: -1- m4_pattern_allow([^CXXFLAGS$])
|
||||
m4trace:configure.ac:44: -1- AC_SUBST([LT_VERSION_INFO])
|
||||
m4trace:configure.ac:44: -1- AC_SUBST_TRACE([LT_VERSION_INFO])
|
||||
m4trace:configure.ac:44: -1- m4_pattern_allow([^LT_VERSION_INFO$])
|
||||
m4trace:configure.ac:46: -1- AC_CONFIG_FILES([
|
||||
Makefile
|
||||
lib/Makefile
|
||||
include/Makefile
|
||||
bin/Makefile
|
||||
doc/Makefile
|
||||
portaudiocpp.pc
|
||||
])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
|
||||
m4trace:configure.ac:54: -1- m4_pattern_allow([^LIB@&t@OBJS$])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([LTLIBOBJS])
|
||||
m4trace:configure.ac:54: -1- m4_pattern_allow([^LTLIBOBJS$])
|
||||
m4trace:configure.ac:54: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST([am__EXEEXT_TRUE])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
|
||||
m4trace:configure.ac:54: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST([am__EXEEXT_FALSE])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
|
||||
m4trace:configure.ac:54: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
|
||||
m4trace:configure.ac:54: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
|
||||
m4trace:configure.ac:54: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([top_builddir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([top_build_prefix])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([srcdir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([abs_srcdir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([top_srcdir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([abs_top_srcdir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([builddir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([abs_builddir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([abs_top_builddir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([INSTALL])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([MKDIR_P])
|
||||
m4trace:configure.ac:54: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
|
||||
|
|
@ -1,618 +0,0 @@
|
|||
m4trace:aclocal.m4:9759: -1- AC_SUBST([am__quote])
|
||||
m4trace:aclocal.m4:9759: -1- AC_SUBST_TRACE([am__quote])
|
||||
m4trace:aclocal.m4:9759: -1- m4_pattern_allow([^am__quote$])
|
||||
m4trace:configure.ac:15: -1- AC_INIT([PortAudioCpp], [12])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_forbid([^_?A[CHUM]_])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_forbid([_AC_])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^AS_FLAGS$])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_forbid([^_?m4_])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_forbid([^dnl$])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_forbid([^_?AS_])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([SHELL])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([SHELL])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^SHELL$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PATH_SEPARATOR])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PATH_SEPARATOR$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE_NAME])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE_STRING])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([PACKAGE_URL])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([exec_prefix], [NONE])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([exec_prefix])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^exec_prefix$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([prefix], [NONE])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([prefix])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^prefix$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([program_transform_name], [s,x,x,])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([program_transform_name])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^program_transform_name$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([bindir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^bindir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([sbindir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^sbindir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([libexecdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^libexecdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([datarootdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^datarootdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([datadir], ['${datarootdir}'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([datadir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^datadir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([sysconfdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^sysconfdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([sharedstatedir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^sharedstatedir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([localstatedir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^localstatedir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([runstatedir], ['${localstatedir}/run'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([runstatedir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^runstatedir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([includedir], ['${prefix}/include'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([includedir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^includedir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([oldincludedir], ['/usr/include'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([oldincludedir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^oldincludedir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
|
||||
['${datarootdir}/doc/${PACKAGE_TARNAME}'],
|
||||
['${datarootdir}/doc/${PACKAGE}'])])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([docdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^docdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([infodir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^infodir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([htmldir], ['${docdir}'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([htmldir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^htmldir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([dvidir], ['${docdir}'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([dvidir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^dvidir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([pdfdir], ['${docdir}'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([pdfdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^pdfdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([psdir], ['${docdir}'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([psdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^psdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([libdir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^libdir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([localedir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^localedir$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([mandir])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^mandir$])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
|
||||
@%:@undef PACKAGE_NAME])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
|
||||
@%:@undef PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
|
||||
@%:@undef PACKAGE_VERSION])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
|
||||
@%:@undef PACKAGE_STRING])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
|
||||
@%:@undef PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */
|
||||
@%:@undef PACKAGE_URL])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([DEFS])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([DEFS])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^DEFS$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([ECHO_C])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([ECHO_C])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^ECHO_C$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([ECHO_N])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([ECHO_N])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^ECHO_N$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([ECHO_T])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([ECHO_T])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^ECHO_T$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([build_alias])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([build_alias])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^build_alias$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([host_alias])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([host_alias])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^host_alias$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([target_alias])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([target_alias])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^target_alias$])
|
||||
m4trace:configure.ac:17: -1- AM_INIT_AUTOMAKE
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
|
||||
m4trace:configure.ac:17: -1- AM_AUTOMAKE_VERSION([1.16.5])
|
||||
m4trace:configure.ac:17: -1- AC_REQUIRE_AUX_FILE([install-sh])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([INSTALL_PROGRAM])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([INSTALL_SCRIPT])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([INSTALL_DATA])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([INSTALL_DATA])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^INSTALL_DATA$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([am__isrc], [' -I$(srcdir)'])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([am__isrc])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^am__isrc$])
|
||||
m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([am__isrc])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([CYGPATH_W])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([CYGPATH_W])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^CYGPATH_W$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([PACKAGE])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^PACKAGE$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([VERSION])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.ac:17: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^PACKAGE$])
|
||||
m4trace:configure.ac:17: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
|
||||
@%:@undef PACKAGE])
|
||||
m4trace:configure.ac:17: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.ac:17: -1- AH_OUTPUT([VERSION], [/* Version number of package */
|
||||
@%:@undef VERSION])
|
||||
m4trace:configure.ac:17: -1- AC_REQUIRE_AUX_FILE([missing])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([ACLOCAL])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([ACLOCAL])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^ACLOCAL$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AUTOCONF])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AUTOCONF])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AUTOCONF$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AUTOMAKE])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AUTOMAKE])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AUTOMAKE$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AUTOHEADER])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AUTOHEADER])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AUTOHEADER$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([MAKEINFO])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([MAKEINFO])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^MAKEINFO$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([install_sh])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([install_sh])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^install_sh$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([STRIP])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([STRIP])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^STRIP$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
|
||||
m4trace:configure.ac:17: -1- AC_REQUIRE_AUX_FILE([install-sh])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([MKDIR_P])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([MKDIR_P])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^MKDIR_P$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([mkdir_p])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^mkdir_p$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AWK])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AWK])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AWK$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([SET_MAKE])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([SET_MAKE])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^SET_MAKE$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([am__leading_dot])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([am__leading_dot])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^am__leading_dot$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AMTAR], ['$${TAR-tar}'])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AMTAR])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AMTAR$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([am__tar])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([am__tar])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^am__tar$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([am__untar])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([am__untar])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^am__untar$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([CTAGS])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([CTAGS])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^CTAGS$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([ETAGS])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([ETAGS])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^ETAGS$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([CSCOPE])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([CSCOPE])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^CSCOPE$])
|
||||
m4trace:configure.ac:17: -1- AM_SILENT_RULES
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AM_V])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AM_V])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_V$])
|
||||
m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_V])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AM_DEFAULT_V])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AM_DEFAULT_V])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_DEFAULT_V$])
|
||||
m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AM_DEFAULT_VERBOSITY])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AM_DEFAULT_VERBOSITY])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST([AM_BACKSLASH])
|
||||
m4trace:configure.ac:17: -1- AC_SUBST_TRACE([AM_BACKSLASH])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^AM_BACKSLASH$])
|
||||
m4trace:configure.ac:17: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
|
||||
m4trace:configure.ac:18: -1- AM_MAINTAINER_MODE
|
||||
m4trace:configure.ac:18: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
|
||||
m4trace:configure.ac:18: -1- AC_SUBST([MAINTAINER_MODE_TRUE])
|
||||
m4trace:configure.ac:18: -1- AC_SUBST_TRACE([MAINTAINER_MODE_TRUE])
|
||||
m4trace:configure.ac:18: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$])
|
||||
m4trace:configure.ac:18: -1- AC_SUBST([MAINTAINER_MODE_FALSE])
|
||||
m4trace:configure.ac:18: -1- AC_SUBST_TRACE([MAINTAINER_MODE_FALSE])
|
||||
m4trace:configure.ac:18: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$])
|
||||
m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE])
|
||||
m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE])
|
||||
m4trace:configure.ac:18: -1- AC_SUBST([MAINT])
|
||||
m4trace:configure.ac:18: -1- AC_SUBST_TRACE([MAINT])
|
||||
m4trace:configure.ac:18: -1- m4_pattern_allow([^MAINT$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CFLAGS])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CFLAGS])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CFLAGS$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([LDFLAGS])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([ac_ct_CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([ac_ct_CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^ac_ct_CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([EXEEXT])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^EXEEXT$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([OBJEXT])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^OBJEXT$])
|
||||
m4trace:configure.ac:35: -1- AC_REQUIRE_AUX_FILE([compile])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([DEPDIR])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^DEPDIR$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([am__include])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([am__include])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^am__include$])
|
||||
m4trace:configure.ac:35: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([AMDEP_TRUE])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([AMDEP_TRUE])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^AMDEP_TRUE$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([AMDEP_FALSE])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([AMDEP_FALSE])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^AMDEP_FALSE$])
|
||||
m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
|
||||
m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([AMDEPBACKSLASH])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
|
||||
m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([am__nodep])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([am__nodep])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^am__nodep$])
|
||||
m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([am__nodep])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([CCDEPMODE])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^CCDEPMODE$])
|
||||
m4trace:configure.ac:35: -1- AM_CONDITIONAL([am__fastdepCC], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([am__fastdepCC_TRUE])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST([am__fastdepCC_FALSE])
|
||||
m4trace:configure.ac:35: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
|
||||
m4trace:configure.ac:35: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
|
||||
m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
|
||||
m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([CXX])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CXX])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^CXX$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([CXXFLAGS])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CXXFLAGS])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^CXXFLAGS$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([LDFLAGS])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([CXX])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CXX])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^CXX$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([ac_ct_CXX])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([ac_ct_CXX])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^ac_ct_CXX$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CXXDEPMODE])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^CXXDEPMODE$])
|
||||
m4trace:configure.ac:36: -1- AM_CONDITIONAL([am__fastdepCXX], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([am__fastdepCXX_TRUE])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST([am__fastdepCXX_FALSE])
|
||||
m4trace:configure.ac:36: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE])
|
||||
m4trace:configure.ac:36: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
|
||||
m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
|
||||
m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
|
||||
m4trace:configure.ac:37: -1- _m4_warn([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete.
|
||||
You should run autoupdate.], [aclocal.m4:8510: AC_LIBTOOL_WIN32_DLL is expanded from...
|
||||
configure.ac:37: the top level])
|
||||
m4trace:configure.ac:37: -1- AC_CANONICAL_HOST
|
||||
m4trace:configure.ac:37: -1- AC_CANONICAL_BUILD
|
||||
m4trace:configure.ac:37: -1- AC_REQUIRE_AUX_FILE([config.sub])
|
||||
m4trace:configure.ac:37: -1- AC_REQUIRE_AUX_FILE([config.guess])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([build], [$ac_cv_build])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([build])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^build$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([build_cpu], [$[1]])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([build_cpu])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^build_cpu$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([build_vendor], [$[2]])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([build_vendor])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^build_vendor$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([build_os])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([build_os])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^build_os$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([host], [$ac_cv_host])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([host])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^host$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([host_cpu], [$[1]])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([host_cpu])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^host_cpu$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([host_vendor], [$[2]])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([host_vendor])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^host_vendor$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([host_os])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([host_os])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^host_os$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([AS])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([AS])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^AS$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([DLLTOOL])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([DLLTOOL])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^DLLTOOL$])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST([OBJDUMP])
|
||||
m4trace:configure.ac:37: -1- AC_SUBST_TRACE([OBJDUMP])
|
||||
m4trace:configure.ac:37: -1- m4_pattern_allow([^OBJDUMP$])
|
||||
m4trace:configure.ac:37: -1- _m4_warn([obsolete], [AC_LIBTOOL_WIN32_DLL: Remove this warning and the call to _LT_SET_OPTION when you
|
||||
put the 'win32-dll' option into LT_INIT's first parameter.], [./lib/autoconf/general.m4:2434: AC_DIAGNOSE is expanded from...
|
||||
aclocal.m4:8510: AC_LIBTOOL_WIN32_DLL is expanded from...
|
||||
configure.ac:37: the top level])
|
||||
m4trace:configure.ac:38: -1- AC_PROG_LIBTOOL
|
||||
m4trace:configure.ac:38: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
|
||||
You should run autoupdate.], [aclocal.m4:121: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.ac:38: the top level])
|
||||
m4trace:configure.ac:38: -1- LT_INIT
|
||||
m4trace:configure.ac:38: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
|
||||
m4trace:configure.ac:38: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LIBTOOL])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LIBTOOL])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LIBTOOL$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([SED])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([SED])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^SED$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([GREP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([GREP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^GREP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([EGREP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([EGREP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^EGREP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([FGREP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([FGREP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^FGREP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([GREP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([GREP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^GREP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LD])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LD])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LD$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([DUMPBIN])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([DUMPBIN])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^DUMPBIN$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([ac_ct_DUMPBIN])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([DUMPBIN])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([DUMPBIN])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^DUMPBIN$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([NM])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([NM])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^NM$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LN_S], [$as_ln_s])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LN_S])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LN_S$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([OBJDUMP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([OBJDUMP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^OBJDUMP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([OBJDUMP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([OBJDUMP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^OBJDUMP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([DLLTOOL])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([DLLTOOL])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^DLLTOOL$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([DLLTOOL])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([DLLTOOL])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^DLLTOOL$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([AR])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([AR])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^AR$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([ac_ct_AR])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([ac_ct_AR])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^ac_ct_AR$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([STRIP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([STRIP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^STRIP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([RANLIB])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([RANLIB])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^RANLIB$])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([LT_OBJDIR])
|
||||
m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LT_OBJDIR$])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
||||
@%:@undef LT_OBJDIR])
|
||||
m4trace:configure.ac:38: -1- LT_SUPPORTED_TAG([CC])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([MANIFEST_TOOL])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([MANIFEST_TOOL])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^MANIFEST_TOOL$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([DSYMUTIL])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([DSYMUTIL])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^DSYMUTIL$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([NMEDIT])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([NMEDIT])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^NMEDIT$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LIPO])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LIPO])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LIPO$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([OTOOL])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([OTOOL])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^OTOOL$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([OTOOL64])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([OTOOL64])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^OTOOL64$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LT_SYS_LIBRARY_PATH])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LT_SYS_LIBRARY_PATH])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LT_SYS_LIBRARY_PATH$])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
@%:@undef HAVE_DLFCN_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STDIO_H], [/* Define to 1 if you have the <stdio.h> header file. */
|
||||
@%:@undef HAVE_STDIO_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
@%:@undef HAVE_STDLIB_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
|
||||
@%:@undef HAVE_STRING_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
@%:@undef HAVE_INTTYPES_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
|
||||
@%:@undef HAVE_STDINT_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
|
||||
@%:@undef HAVE_STRINGS_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
@%:@undef HAVE_SYS_STAT_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
@%:@undef HAVE_SYS_TYPES_H])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
|
||||
@%:@undef HAVE_UNISTD_H])
|
||||
m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^STDC_HEADERS$])
|
||||
m4trace:configure.ac:38: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if all of the C90 standard headers exist (not just the ones
|
||||
required in a freestanding environment). This macro is provided for
|
||||
backward compatibility; new code need not use it. */
|
||||
@%:@undef STDC_HEADERS])
|
||||
m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLFCN_H])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
|
||||
m4trace:configure.ac:38: -1- LT_SUPPORTED_TAG([CXX])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([CXXCPP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CXXCPP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^CXXCPP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([CXXCPP])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CXXCPP])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^CXXCPP$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LD])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LD])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LD$])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST([LT_SYS_LIBRARY_PATH])
|
||||
m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LT_SYS_LIBRARY_PATH])
|
||||
m4trace:configure.ac:38: -1- m4_pattern_allow([^LT_SYS_LIBRARY_PATH$])
|
||||
m4trace:configure.ac:41: -1- AC_SUBST([DEFAULT_INCLUDES])
|
||||
m4trace:configure.ac:41: -1- AC_SUBST_TRACE([DEFAULT_INCLUDES])
|
||||
m4trace:configure.ac:41: -1- m4_pattern_allow([^DEFAULT_INCLUDES$])
|
||||
m4trace:configure.ac:42: -1- AC_SUBST([PORTAUDIO_ROOT])
|
||||
m4trace:configure.ac:42: -1- AC_SUBST_TRACE([PORTAUDIO_ROOT])
|
||||
m4trace:configure.ac:42: -1- m4_pattern_allow([^PORTAUDIO_ROOT$])
|
||||
m4trace:configure.ac:43: -1- AC_SUBST([CXXFLAGS])
|
||||
m4trace:configure.ac:43: -1- AC_SUBST_TRACE([CXXFLAGS])
|
||||
m4trace:configure.ac:43: -1- m4_pattern_allow([^CXXFLAGS$])
|
||||
m4trace:configure.ac:44: -1- AC_SUBST([LT_VERSION_INFO])
|
||||
m4trace:configure.ac:44: -1- AC_SUBST_TRACE([LT_VERSION_INFO])
|
||||
m4trace:configure.ac:44: -1- m4_pattern_allow([^LT_VERSION_INFO$])
|
||||
m4trace:configure.ac:46: -1- AC_CONFIG_FILES([
|
||||
Makefile
|
||||
lib/Makefile
|
||||
include/Makefile
|
||||
bin/Makefile
|
||||
doc/Makefile
|
||||
portaudiocpp.pc
|
||||
])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
|
||||
m4trace:configure.ac:54: -1- m4_pattern_allow([^LIB@&t@OBJS$])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([LTLIBOBJS])
|
||||
m4trace:configure.ac:54: -1- m4_pattern_allow([^LTLIBOBJS$])
|
||||
m4trace:configure.ac:54: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST([am__EXEEXT_TRUE])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
|
||||
m4trace:configure.ac:54: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST([am__EXEEXT_FALSE])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
|
||||
m4trace:configure.ac:54: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
|
||||
m4trace:configure.ac:54: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
|
||||
m4trace:configure.ac:54: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([top_builddir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([top_build_prefix])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([srcdir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([abs_srcdir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([top_srcdir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([abs_top_srcdir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([builddir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([abs_builddir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([abs_top_builddir])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([INSTALL])
|
||||
m4trace:configure.ac:54: -1- AC_SUBST_TRACE([MKDIR_P])
|
||||
m4trace:configure.ac:54: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.16.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
|
@ -15,17 +15,7 @@
|
|||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
|
|
@ -90,11 +80,12 @@ build_triplet = @build@
|
|||
host_triplet = @host@
|
||||
noinst_PROGRAMS = devs$(EXEEXT) sine$(EXEEXT)
|
||||
subdir = bin
|
||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||
$(top_srcdir)/../../depcomp
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
|
|
@ -125,9 +116,8 @@ AM_V_at = $(am__v_at_@AM_V@)
|
|||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/devs.Po ./$(DEPDIR)/sine.Po
|
||||
depcomp = $(SHELL) $(top_srcdir)/../../depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
|
|
@ -171,7 +161,8 @@ am__define_uniq_tagged_files = \
|
|||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
|
|
@ -185,9 +176,8 @@ AWK = @AWK@
|
|||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
|
|
@ -203,7 +193,6 @@ ECHO_C = @ECHO_C@
|
|||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
|
|
@ -220,7 +209,6 @@ LIBTOOL = @LIBTOOL@
|
|||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
|
||||
LT_VERSION_INFO = @LT_VERSION_INFO@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
|
|
@ -292,7 +280,6 @@ pdfdir = @pdfdir@
|
|||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
|
|
@ -322,13 +309,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
|
|||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bin/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu bin/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
|
|
@ -363,14 +351,8 @@ mostlyclean-compile:
|
|||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/devs.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sine.Po@am__quote@ # am--include-marker
|
||||
|
||||
$(am__depfiles_remade):
|
||||
@$(MKDIR_P) $(@D)
|
||||
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
|
||||
|
||||
am--depfiles: $(am__depfiles_remade)
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/devs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sine.Po@am__quote@
|
||||
|
||||
.cxx.o:
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
|
|
@ -478,10 +460,8 @@ cscopelist-am: $(am__tagged_files)
|
|||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
|
|
@ -551,8 +531,7 @@ clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
|
|||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f ./$(DEPDIR)/devs.Po
|
||||
-rm -f ./$(DEPDIR)/sine.Po
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
|
@ -598,8 +577,7 @@ install-ps-am:
|
|||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f ./$(DEPDIR)/devs.Po
|
||||
-rm -f ./$(DEPDIR)/sine.Po
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
|
|
@ -620,9 +598,9 @@ uninstall-am:
|
|||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
|
||||
clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \
|
||||
ctags ctags-am distclean distclean-compile distclean-generic \
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
|
||||
clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
|
||||
ctags-am distclean distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
|
|
@ -634,8 +612,6 @@ uninstall-am:
|
|||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags tags-am uninstall uninstall-am
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
|
|
|
|||
|
|
@ -1,348 +0,0 @@
|
|||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand '-c -o'.
|
||||
|
||||
scriptversion=2018-03-07.03; # UTC
|
||||
|
||||
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
nl='
|
||||
'
|
||||
|
||||
# We need space, tab and new line, in precisely that order. Quoting is
|
||||
# there to prevent tools from complaining about whitespace usage.
|
||||
IFS=" "" $nl"
|
||||
|
||||
file_conv=
|
||||
|
||||
# func_file_conv build_file lazy
|
||||
# Convert a $build file to $host form and store it in $file
|
||||
# Currently only supports Windows hosts. If the determined conversion
|
||||
# type is listed in (the comma separated) LAZY, no conversion will
|
||||
# take place.
|
||||
func_file_conv ()
|
||||
{
|
||||
file=$1
|
||||
case $file in
|
||||
/ | /[!/]*) # absolute file, and not a UNC file
|
||||
if test -z "$file_conv"; then
|
||||
# lazily determine how to convert abs files
|
||||
case `uname -s` in
|
||||
MINGW*)
|
||||
file_conv=mingw
|
||||
;;
|
||||
CYGWIN* | MSYS*)
|
||||
file_conv=cygwin
|
||||
;;
|
||||
*)
|
||||
file_conv=wine
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
case $file_conv/,$2, in
|
||||
*,$file_conv,*)
|
||||
;;
|
||||
mingw/*)
|
||||
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||
;;
|
||||
cygwin/* | msys/*)
|
||||
file=`cygpath -m "$file" || echo "$file"`
|
||||
;;
|
||||
wine/*)
|
||||
file=`winepath -w "$file" || echo "$file"`
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# func_cl_dashL linkdir
|
||||
# Make cl look for libraries in LINKDIR
|
||||
func_cl_dashL ()
|
||||
{
|
||||
func_file_conv "$1"
|
||||
if test -z "$lib_path"; then
|
||||
lib_path=$file
|
||||
else
|
||||
lib_path="$lib_path;$file"
|
||||
fi
|
||||
linker_opts="$linker_opts -LIBPATH:$file"
|
||||
}
|
||||
|
||||
# func_cl_dashl library
|
||||
# Do a library search-path lookup for cl
|
||||
func_cl_dashl ()
|
||||
{
|
||||
lib=$1
|
||||
found=no
|
||||
save_IFS=$IFS
|
||||
IFS=';'
|
||||
for dir in $lib_path $LIB
|
||||
do
|
||||
IFS=$save_IFS
|
||||
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.dll.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/$lib.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/lib$lib.a"; then
|
||||
found=yes
|
||||
lib=$dir/lib$lib.a
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS=$save_IFS
|
||||
|
||||
if test "$found" != yes; then
|
||||
lib=$lib.lib
|
||||
fi
|
||||
}
|
||||
|
||||
# func_cl_wrapper cl arg...
|
||||
# Adjust compile command to suit cl
|
||||
func_cl_wrapper ()
|
||||
{
|
||||
# Assume a capable shell
|
||||
lib_path=
|
||||
shared=:
|
||||
linker_opts=
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.[oO][bB][jJ])
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fo"$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fe"$file"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I)
|
||||
eat=1
|
||||
func_file_conv "$2" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-I*)
|
||||
func_file_conv "${1#-I}" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-l)
|
||||
eat=1
|
||||
func_cl_dashl "$2"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-l*)
|
||||
func_cl_dashl "${1#-l}"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-L)
|
||||
eat=1
|
||||
func_cl_dashL "$2"
|
||||
;;
|
||||
-L*)
|
||||
func_cl_dashL "${1#-L}"
|
||||
;;
|
||||
-static)
|
||||
shared=false
|
||||
;;
|
||||
-Wl,*)
|
||||
arg=${1#-Wl,}
|
||||
save_ifs="$IFS"; IFS=','
|
||||
for flag in $arg; do
|
||||
IFS="$save_ifs"
|
||||
linker_opts="$linker_opts $flag"
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
;;
|
||||
-Xlinker)
|
||||
eat=1
|
||||
linker_opts="$linker_opts $2"
|
||||
;;
|
||||
-*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||
func_file_conv "$1"
|
||||
set x "$@" -Tp"$file"
|
||||
shift
|
||||
;;
|
||||
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||
func_file_conv "$1" mingw
|
||||
set x "$@" "$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
if test -n "$linker_opts"; then
|
||||
linker_opts="-link$linker_opts"
|
||||
fi
|
||||
exec "$@" $linker_opts
|
||||
exit 1
|
||||
}
|
||||
|
||||
eat=
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Wrapper for compilers which do not understand '-c -o'.
|
||||
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||
arguments, and rename the output as expected.
|
||||
|
||||
If you are trying to build a whole package this is not the
|
||||
right script to run: please start by reading the file 'INSTALL'.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "compile $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
|
||||
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
|
||||
func_cl_wrapper "$@" # Doesn't return...
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
# So we strip '-o arg' only if arg is an object.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.obj)
|
||||
ofile=$2
|
||||
;;
|
||||
*)
|
||||
set x "$@" -o "$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no '-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# '.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$@"
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
exit $ret
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
BIN
bindings/cpp/config.guess
vendored
BIN
bindings/cpp/config.guess
vendored
Binary file not shown.
BIN
bindings/cpp/config.sub
vendored
BIN
bindings/cpp/config.sub
vendored
Binary file not shown.
BIN
bindings/cpp/configure
vendored
BIN
bindings/cpp/configure
vendored
Binary file not shown.
19376
bindings/cpp/configure~
19376
bindings/cpp/configure~
File diff suppressed because it is too large
Load diff
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.16.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
|
@ -14,17 +14,7 @@
|
|||
|
||||
@SET_MAKE@
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
|
|
@ -88,11 +78,11 @@ POST_UNINSTALL = :
|
|||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = doc
|
||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
|
|
@ -116,7 +106,6 @@ am__can_run_installinfo = \
|
|||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in README
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
|
|
@ -130,9 +119,8 @@ AWK = @AWK@
|
|||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
|
|
@ -148,7 +136,6 @@ ECHO_C = @ECHO_C@
|
|||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
|
|
@ -165,7 +152,6 @@ LIBTOOL = @LIBTOOL@
|
|||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
|
||||
LT_VERSION_INFO = @LT_VERSION_INFO@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
|
|
@ -237,7 +223,6 @@ pdfdir = @pdfdir@
|
|||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
|
|
@ -262,13 +247,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
|
|||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu doc/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
|
|
@ -291,10 +277,8 @@ ctags CTAGS:
|
|||
|
||||
cscope cscopelist:
|
||||
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
|
|
@ -438,8 +422,6 @@ uninstall-am:
|
|||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags-am uninstall uninstall-am
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
#INCLUDES = -I$(srcdir)/$(PACPP_ROOT)/include -I$(top_srcdir)/include
|
||||
|
||||
docs:
|
||||
|
|
|
|||
|
|
@ -8,44 +8,44 @@
|
|||
// ---------------------------------------------------------------------------------------
|
||||
|
||||
void printSupportedStandardSampleRates(
|
||||
const portaudio::DirectionSpecificStreamParameters &inputParameters,
|
||||
const portaudio::DirectionSpecificStreamParameters &outputParameters)
|
||||
const portaudio::DirectionSpecificStreamParameters &inputParameters,
|
||||
const portaudio::DirectionSpecificStreamParameters &outputParameters)
|
||||
{
|
||||
static double STANDARD_SAMPLE_RATES[] = {
|
||||
8000.0, 9600.0, 11025.0, 12000.0, 16000.0, 22050.0, 24000.0, 32000.0,
|
||||
44100.0, 48000.0, 88200.0, 96000.0, -1 }; // negative terminated list
|
||||
static double STANDARD_SAMPLE_RATES[] = {
|
||||
8000.0, 9600.0, 11025.0, 12000.0, 16000.0, 22050.0, 24000.0, 32000.0,
|
||||
44100.0, 48000.0, 88200.0, 96000.0, -1 }; // negative terminated list
|
||||
|
||||
int printCount = 0;
|
||||
int printCount = 0;
|
||||
|
||||
for (int i = 0; STANDARD_SAMPLE_RATES[i] > 0; ++i)
|
||||
{
|
||||
portaudio::StreamParameters tmp = portaudio::StreamParameters(inputParameters, outputParameters, STANDARD_SAMPLE_RATES[i], 0, paNoFlag);
|
||||
for (int i = 0; STANDARD_SAMPLE_RATES[i] > 0; ++i)
|
||||
{
|
||||
portaudio::StreamParameters tmp = portaudio::StreamParameters(inputParameters, outputParameters, STANDARD_SAMPLE_RATES[i], 0, paNoFlag);
|
||||
|
||||
if (tmp.isSupported())
|
||||
{
|
||||
if (printCount == 0)
|
||||
{
|
||||
std::cout << " " << STANDARD_SAMPLE_RATES[i]; // 8.2
|
||||
printCount = 1;
|
||||
}
|
||||
else if (printCount == 4)
|
||||
{
|
||||
std::cout << "," << std::endl;
|
||||
std::cout << " " << STANDARD_SAMPLE_RATES[i]; // 8.2
|
||||
printCount = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << ", " << STANDARD_SAMPLE_RATES[i]; // 8.2
|
||||
++printCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (tmp.isSupported())
|
||||
{
|
||||
if (printCount == 0)
|
||||
{
|
||||
std::cout << " " << STANDARD_SAMPLE_RATES[i]; // 8.2
|
||||
printCount = 1;
|
||||
}
|
||||
else if (printCount == 4)
|
||||
{
|
||||
std::cout << "," << std::endl;
|
||||
std::cout << " " << STANDARD_SAMPLE_RATES[i]; // 8.2
|
||||
printCount = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << ", " << STANDARD_SAMPLE_RATES[i]; // 8.2
|
||||
++printCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (printCount == 0)
|
||||
std::cout << "None" << std::endl;
|
||||
else
|
||||
std::cout << std::endl;
|
||||
if (printCount == 0)
|
||||
std::cout << "None" << std::endl;
|
||||
else
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
@ -53,125 +53,125 @@ void printSupportedStandardSampleRates(
|
|||
int main(int, char*[]);
|
||||
int main(int, char*[])
|
||||
{
|
||||
try
|
||||
{
|
||||
portaudio::AutoSystem autoSys;
|
||||
try
|
||||
{
|
||||
portaudio::AutoSystem autoSys;
|
||||
|
||||
portaudio::System &sys = portaudio::System::instance();
|
||||
portaudio::System &sys = portaudio::System::instance();
|
||||
|
||||
std::cout << "PortAudio version number = " << sys.version() << std::endl;
|
||||
std::cout << "PortAudio version text = '" << sys.versionText() << "'" << std::endl;
|
||||
std::cout << "PortAudio version number = " << sys.version() << std::endl;
|
||||
std::cout << "PortAudio version text = '" << sys.versionText() << "'" << std::endl;
|
||||
|
||||
int numDevices = sys.deviceCount();
|
||||
std::cout << "Number of devices = " << numDevices << std::endl;
|
||||
int numDevices = sys.deviceCount();
|
||||
std::cout << "Number of devices = " << numDevices << std::endl;
|
||||
|
||||
for (portaudio::System::DeviceIterator i = sys.devicesBegin(); i != sys.devicesEnd(); ++i)
|
||||
{
|
||||
std::cout << "--------------------------------------- device #" << (*i).index() << std::endl;
|
||||
for (portaudio::System::DeviceIterator i = sys.devicesBegin(); i != sys.devicesEnd(); ++i)
|
||||
{
|
||||
std::cout << "--------------------------------------- device #" << (*i).index() << std::endl;
|
||||
|
||||
// Mark global and API specific default devices:
|
||||
bool defaultDisplayed = false;
|
||||
// Mark global and API specific default devices:
|
||||
bool defaultDisplayed = false;
|
||||
|
||||
if ((*i).isSystemDefaultInputDevice())
|
||||
{
|
||||
std::cout << "[ Default Input";
|
||||
defaultDisplayed = true;
|
||||
}
|
||||
else if ((*i).isHostApiDefaultInputDevice())
|
||||
{
|
||||
std::cout << "[ Default " << (*i).hostApi().name() << " Input";
|
||||
defaultDisplayed = true;
|
||||
}
|
||||
if ((*i).isSystemDefaultInputDevice())
|
||||
{
|
||||
std::cout << "[ Default Input";
|
||||
defaultDisplayed = true;
|
||||
}
|
||||
else if ((*i).isHostApiDefaultInputDevice())
|
||||
{
|
||||
std::cout << "[ Default " << (*i).hostApi().name() << " Input";
|
||||
defaultDisplayed = true;
|
||||
}
|
||||
|
||||
if ((*i).isSystemDefaultOutputDevice())
|
||||
{
|
||||
std::cout << (defaultDisplayed ? "," : "[");
|
||||
std::cout << " Default Output";
|
||||
defaultDisplayed = true;
|
||||
}
|
||||
else if ((*i).isHostApiDefaultOutputDevice())
|
||||
{
|
||||
std::cout << (defaultDisplayed ? "," : "[");
|
||||
std::cout << " Default " << (*i).hostApi().name() << " Output";
|
||||
defaultDisplayed = true;
|
||||
}
|
||||
if ((*i).isSystemDefaultOutputDevice())
|
||||
{
|
||||
std::cout << (defaultDisplayed ? "," : "[");
|
||||
std::cout << " Default Output";
|
||||
defaultDisplayed = true;
|
||||
}
|
||||
else if ((*i).isHostApiDefaultOutputDevice())
|
||||
{
|
||||
std::cout << (defaultDisplayed ? "," : "[");
|
||||
std::cout << " Default " << (*i).hostApi().name() << " Output";
|
||||
defaultDisplayed = true;
|
||||
}
|
||||
|
||||
if (defaultDisplayed)
|
||||
std::cout << " ]" << std::endl;
|
||||
|
||||
if (defaultDisplayed)
|
||||
std::cout << " ]" << std::endl;
|
||||
// Print device info:
|
||||
std::cout << "Name = " << (*i).name() << std::endl;
|
||||
std::cout << "Host API = " << (*i).hostApi().name() << std::endl;
|
||||
std::cout << "Max inputs = " << (*i).maxInputChannels() << ", Max outputs = " << (*i).maxOutputChannels() << std::endl;
|
||||
|
||||
// Print device info:
|
||||
std::cout << "Name = " << (*i).name() << std::endl;
|
||||
std::cout << "Host API = " << (*i).hostApi().name() << std::endl;
|
||||
std::cout << "Max inputs = " << (*i).maxInputChannels() << ", Max outputs = " << (*i).maxOutputChannels() << std::endl;
|
||||
|
||||
std::cout << "Default low input latency = " << (*i).defaultLowInputLatency() << std::endl; // 8.3
|
||||
std::cout << "Default low output latency = " << (*i).defaultLowOutputLatency() << std::endl; // 8.3
|
||||
std::cout << "Default high input latency = " << (*i).defaultHighInputLatency() << std::endl; // 8.3
|
||||
std::cout << "Default high output latency = " << (*i).defaultHighOutputLatency() << std::endl; // 8.3
|
||||
std::cout << "Default low input latency = " << (*i).defaultLowInputLatency() << std::endl; // 8.3
|
||||
std::cout << "Default low output latency = " << (*i).defaultLowOutputLatency() << std::endl; // 8.3
|
||||
std::cout << "Default high input latency = " << (*i).defaultHighInputLatency() << std::endl; // 8.3
|
||||
std::cout << "Default high output latency = " << (*i).defaultHighOutputLatency() << std::endl; // 8.3
|
||||
|
||||
#ifdef WIN32
|
||||
// ASIO specific latency information:
|
||||
if ((*i).hostApi().typeId() == paASIO)
|
||||
{
|
||||
portaudio::AsioDeviceAdapter asioDevice((*i));
|
||||
// ASIO specific latency information:
|
||||
if ((*i).hostApi().typeId() == paASIO)
|
||||
{
|
||||
portaudio::AsioDeviceAdapter asioDevice((*i));
|
||||
|
||||
std::cout << "ASIO minimum buffer size = " << asioDevice.minBufferSize() << std::endl;
|
||||
std::cout << "ASIO maximum buffer size = " << asioDevice.maxBufferSize() << std::endl;
|
||||
std::cout << "ASIO preferred buffer size = " << asioDevice.preferredBufferSize() << std::endl;
|
||||
std::cout << "ASIO minimum buffer size = " << asioDevice.minBufferSize() << std::endl;
|
||||
std::cout << "ASIO maximum buffer size = " << asioDevice.maxBufferSize() << std::endl;
|
||||
std::cout << "ASIO preferred buffer size = " << asioDevice.preferredBufferSize() << std::endl;
|
||||
|
||||
if (asioDevice.granularity() == -1)
|
||||
std::cout << "ASIO buffer granularity = power of 2" << std::endl;
|
||||
else
|
||||
std::cout << "ASIO buffer granularity = " << asioDevice.granularity() << std::endl;
|
||||
}
|
||||
if (asioDevice.granularity() == -1)
|
||||
std::cout << "ASIO buffer granularity = power of 2" << std::endl;
|
||||
else
|
||||
std::cout << "ASIO buffer granularity = " << asioDevice.granularity() << std::endl;
|
||||
}
|
||||
#endif // WIN32
|
||||
|
||||
std::cout << "Default sample rate = " << (*i).defaultSampleRate() << std::endl; // 8.2
|
||||
std::cout << "Default sample rate = " << (*i).defaultSampleRate() << std::endl; // 8.2
|
||||
|
||||
// Poll for standard sample rates:
|
||||
portaudio::DirectionSpecificStreamParameters inputParameters((*i), (*i).maxInputChannels(), portaudio::INT16, true, 0.0, NULL);
|
||||
portaudio::DirectionSpecificStreamParameters outputParameters((*i), (*i).maxOutputChannels(), portaudio::INT16, true, 0.0, NULL);
|
||||
// Poll for standard sample rates:
|
||||
portaudio::DirectionSpecificStreamParameters inputParameters((*i), (*i).maxInputChannels(), portaudio::INT16, true, 0.0, NULL);
|
||||
portaudio::DirectionSpecificStreamParameters outputParameters((*i), (*i).maxOutputChannels(), portaudio::INT16, true, 0.0, NULL);
|
||||
|
||||
if (inputParameters.numChannels() > 0)
|
||||
{
|
||||
std::cout << "Supported standard sample rates" << std::endl;
|
||||
std::cout << " for half-duplex 16 bit " << inputParameters.numChannels() << " channel input = " << std::endl;
|
||||
printSupportedStandardSampleRates(inputParameters, portaudio::DirectionSpecificStreamParameters::null());
|
||||
}
|
||||
if (inputParameters.numChannels() > 0)
|
||||
{
|
||||
std::cout << "Supported standard sample rates" << std::endl;
|
||||
std::cout << " for half-duplex 16 bit " << inputParameters.numChannels() << " channel input = " << std::endl;
|
||||
printSupportedStandardSampleRates(inputParameters, portaudio::DirectionSpecificStreamParameters::null());
|
||||
}
|
||||
|
||||
if (outputParameters.numChannels() > 0)
|
||||
{
|
||||
std::cout << "Supported standard sample rates" << std::endl;
|
||||
std::cout << " for half-duplex 16 bit " << outputParameters.numChannels() << " channel output = " << std::endl;
|
||||
printSupportedStandardSampleRates(portaudio::DirectionSpecificStreamParameters::null(), outputParameters);
|
||||
}
|
||||
if (outputParameters.numChannels() > 0)
|
||||
{
|
||||
std::cout << "Supported standard sample rates" << std::endl;
|
||||
std::cout << " for half-duplex 16 bit " << outputParameters.numChannels() << " channel output = " << std::endl;
|
||||
printSupportedStandardSampleRates(portaudio::DirectionSpecificStreamParameters::null(), outputParameters);
|
||||
}
|
||||
|
||||
if (inputParameters.numChannels() > 0 && outputParameters.numChannels() > 0)
|
||||
{
|
||||
std::cout << "Supported standard sample rates" << std::endl;
|
||||
std::cout << " for full-duplex 16 bit " << inputParameters.numChannels() << " channel input, " << outputParameters.numChannels() << " channel output = " << std::endl;
|
||||
printSupportedStandardSampleRates(inputParameters, outputParameters);
|
||||
}
|
||||
}
|
||||
if (inputParameters.numChannels() > 0 && outputParameters.numChannels() > 0)
|
||||
{
|
||||
std::cout << "Supported standard sample rates" << std::endl;
|
||||
std::cout << " for full-duplex 16 bit " << inputParameters.numChannels() << " channel input, " << outputParameters.numChannels() << " channel output = " << std::endl;
|
||||
printSupportedStandardSampleRates(inputParameters, outputParameters);
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << "----------------------------------------------" << std::endl;
|
||||
}
|
||||
catch (const portaudio::PaException &e)
|
||||
{
|
||||
std::cout << "A PortAudio error occurred: " << e.paErrorText() << std::endl;
|
||||
}
|
||||
catch (const portaudio::PaCppException &e)
|
||||
{
|
||||
std::cout << "A PortAudioCpp error occurred: " << e.what() << std::endl;
|
||||
}
|
||||
catch (const std::exception &e)
|
||||
{
|
||||
std::cout << "A generic exception occurred: " << e.what() << std::endl;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
std::cout << "An unknown exception occurred." << std::endl;
|
||||
}
|
||||
std::cout << "----------------------------------------------" << std::endl;
|
||||
}
|
||||
catch (const portaudio::PaException &e)
|
||||
{
|
||||
std::cout << "A PortAudio error occurred: " << e.paErrorText() << std::endl;
|
||||
}
|
||||
catch (const portaudio::PaCppException &e)
|
||||
{
|
||||
std::cout << "A PortAudioCpp error occurred: " << e.what() << std::endl;
|
||||
}
|
||||
catch (const std::exception &e)
|
||||
{
|
||||
std::cout << "A generic exception occurred: " << e.what() << std::endl;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
std::cout << "An unknown exception occurred." << std::endl;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,50 +20,50 @@ const int TABLE_SIZE = 200;
|
|||
class SineGenerator
|
||||
{
|
||||
public:
|
||||
SineGenerator(int tableSize) : tableSize_(tableSize), leftPhase_(0), rightPhase_(0)
|
||||
{
|
||||
const double PI = 3.14159265;
|
||||
table_ = new float[tableSize];
|
||||
for (int i = 0; i < tableSize; ++i)
|
||||
{
|
||||
table_[i] = 0.125f * (float)sin(((double)i/(double)tableSize)*PI*2.);
|
||||
}
|
||||
}
|
||||
SineGenerator(int tableSize) : tableSize_(tableSize), leftPhase_(0), rightPhase_(0)
|
||||
{
|
||||
const double PI = 3.14159265;
|
||||
table_ = new float[tableSize];
|
||||
for (int i = 0; i < tableSize; ++i)
|
||||
{
|
||||
table_[i] = 0.125f * (float)sin(((double)i/(double)tableSize)*PI*2.);
|
||||
}
|
||||
}
|
||||
|
||||
~SineGenerator()
|
||||
{
|
||||
delete[] table_;
|
||||
}
|
||||
~SineGenerator()
|
||||
{
|
||||
delete[] table_;
|
||||
}
|
||||
|
||||
int generate(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags)
|
||||
{
|
||||
assert(outputBuffer != NULL);
|
||||
int generate(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags)
|
||||
{
|
||||
assert(outputBuffer != NULL);
|
||||
|
||||
float **out = static_cast<float **>(outputBuffer);
|
||||
float **out = static_cast<float **>(outputBuffer);
|
||||
|
||||
for (unsigned int i = 0; i < framesPerBuffer; ++i)
|
||||
{
|
||||
out[0][i] = table_[leftPhase_];
|
||||
out[1][i] = table_[rightPhase_];
|
||||
for (unsigned int i = 0; i < framesPerBuffer; ++i)
|
||||
{
|
||||
out[0][i] = table_[leftPhase_];
|
||||
out[1][i] = table_[rightPhase_];
|
||||
|
||||
leftPhase_ += 1;
|
||||
if (leftPhase_ >= tableSize_)
|
||||
leftPhase_ -= tableSize_;
|
||||
leftPhase_ += 1;
|
||||
if (leftPhase_ >= tableSize_)
|
||||
leftPhase_ -= tableSize_;
|
||||
|
||||
rightPhase_ += 3;
|
||||
if (rightPhase_ >= tableSize_)
|
||||
rightPhase_ -= tableSize_;
|
||||
}
|
||||
rightPhase_ += 3;
|
||||
if (rightPhase_ >= tableSize_)
|
||||
rightPhase_ -= tableSize_;
|
||||
}
|
||||
|
||||
return paContinue;
|
||||
}
|
||||
return paContinue;
|
||||
}
|
||||
|
||||
private:
|
||||
float *table_;
|
||||
int tableSize_;
|
||||
int leftPhase_;
|
||||
int rightPhase_;
|
||||
float *table_;
|
||||
int tableSize_;
|
||||
int leftPhase_;
|
||||
int rightPhase_;
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
@ -72,64 +72,66 @@ private:
|
|||
int main(int, char *[]);
|
||||
int main(int, char *[])
|
||||
{
|
||||
try
|
||||
{
|
||||
// Create a SineGenerator object:
|
||||
SineGenerator sineGenerator(TABLE_SIZE);
|
||||
try
|
||||
{
|
||||
// Create a SineGenerator object:
|
||||
SineGenerator sineGenerator(TABLE_SIZE);
|
||||
|
||||
std::cout << "Setting up PortAudio..." << std::endl;
|
||||
std::cout << "Setting up PortAudio..." << std::endl;
|
||||
|
||||
// Set up the System:
|
||||
portaudio::AutoSystem autoSys;
|
||||
portaudio::System &sys = portaudio::System::instance();
|
||||
// Set up the System:
|
||||
portaudio::AutoSystem autoSys;
|
||||
portaudio::System &sys = portaudio::System::instance();
|
||||
|
||||
// Set up the parameters required to open a (Callback)Stream:
|
||||
portaudio::DirectionSpecificStreamParameters outParams(sys.defaultOutputDevice(), 2, portaudio::FLOAT32, false, sys.defaultOutputDevice().defaultLowOutputLatency(), NULL);
|
||||
portaudio::StreamParameters params(portaudio::DirectionSpecificStreamParameters::null(), outParams, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff);
|
||||
// Set up the parameters required to open a (Callback)Stream:
|
||||
portaudio::DirectionSpecificStreamParameters outParams(sys.defaultOutputDevice(), 2, portaudio::FLOAT32, false, sys.defaultOutputDevice().defaultLowOutputLatency(), NULL);
|
||||
portaudio::StreamParameters params(portaudio::DirectionSpecificStreamParameters::null(), outParams, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff);
|
||||
|
||||
std::cout << "Opening stereo output stream..." << std::endl;
|
||||
std::cout << "Opening stereo output stream..." << std::endl;
|
||||
|
||||
// Create (and open) a new Stream, using the SineGenerator::generate function as a callback:
|
||||
portaudio::MemFunCallbackStream<SineGenerator> stream(params, sineGenerator, &SineGenerator::generate);
|
||||
// Create (and open) a new Stream, using the SineGenerator::generate function as a callback:
|
||||
portaudio::MemFunCallbackStream<SineGenerator> stream(params, sineGenerator, &SineGenerator::generate);
|
||||
|
||||
std::cout << "Starting playback for " << NUM_SECONDS << " seconds." << std::endl;
|
||||
std::cout << "Starting playback for " << NUM_SECONDS << " seconds." << std::endl;
|
||||
|
||||
// Start the Stream (audio playback starts):
|
||||
stream.start();
|
||||
// Start the Stream (audio playback starts):
|
||||
stream.start();
|
||||
|
||||
// Wait for 5 seconds:
|
||||
sys.sleep(NUM_SECONDS * 1000);
|
||||
// Wait for 5 seconds:
|
||||
sys.sleep(NUM_SECONDS * 1000);
|
||||
|
||||
std::cout << "Closing stream..." <<std::endl;
|
||||
std::cout << "Closing stream..." <<std::endl;
|
||||
|
||||
// Stop the Stream (not strictly needed as termintating the System will also stop all open Streams):
|
||||
stream.stop();
|
||||
// Stop the Stream (not strictly needed as termintating the System will also stop all open Streams):
|
||||
stream.stop();
|
||||
|
||||
// Close the Stream (not strictly needed as terminating the System will also close all open Streams):
|
||||
stream.close();
|
||||
// Close the Stream (not strictly needed as terminating the System will also close all open Streams):
|
||||
stream.close();
|
||||
|
||||
// Terminate the System (not strictly needed as the AutoSystem will also take care of this when it
|
||||
// goes out of scope):
|
||||
sys.terminate();
|
||||
// Terminate the System (not strictly needed as the AutoSystem will also take care of this when it
|
||||
// goes out of scope):
|
||||
sys.terminate();
|
||||
|
||||
std::cout << "Test finished." << std::endl;
|
||||
}
|
||||
catch (const portaudio::PaException &e)
|
||||
{
|
||||
std::cout << "A PortAudio error occurred: " << e.paErrorText() << std::endl;
|
||||
}
|
||||
catch (const portaudio::PaCppException &e)
|
||||
{
|
||||
std::cout << "A PortAudioCpp error occurred: " << e.what() << std::endl;
|
||||
}
|
||||
catch (const std::exception &e)
|
||||
{
|
||||
std::cout << "A generic exception occurred: " << e.what() << std::endl;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
std::cout << "An unknown exception occurred." << std::endl;
|
||||
}
|
||||
std::cout << "Test finished." << std::endl;
|
||||
}
|
||||
catch (const portaudio::PaException &e)
|
||||
{
|
||||
std::cout << "A PortAudio error occurred: " << e.paErrorText() << std::endl;
|
||||
}
|
||||
catch (const portaudio::PaCppException &e)
|
||||
{
|
||||
std::cout << "A PortAudioCpp error occurred: " << e.what() << std::endl;
|
||||
}
|
||||
catch (const std::exception &e)
|
||||
{
|
||||
std::cout << "A generic exception occurred: " << e.what() << std::endl;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
std::cout << "An unknown exception occurred." << std::endl;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.16.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
|
@ -15,17 +15,7 @@
|
|||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
|
|
@ -89,12 +79,12 @@ POST_UNINSTALL = :
|
|||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = include
|
||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||
$(pkginclude_HEADERS)
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(pkginclude_HEADERS) \
|
||||
$(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
|
|
@ -163,7 +153,8 @@ am__define_uniq_tagged_files = \
|
|||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
|
|
@ -177,9 +168,8 @@ AWK = @AWK@
|
|||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
|
|
@ -195,7 +185,6 @@ ECHO_C = @ECHO_C@
|
|||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
|
|
@ -212,7 +201,6 @@ LIBTOOL = @LIBTOOL@
|
|||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
|
||||
LT_VERSION_INFO = @LT_VERSION_INFO@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
|
|
@ -284,7 +272,6 @@ pdfdir = @pdfdir@
|
|||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
|
|
@ -329,13 +316,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
|
|||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu include/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
|
|
@ -425,10 +413,8 @@ cscopelist-am: $(am__tagged_files)
|
|||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
|
|
@ -577,8 +563,6 @@ uninstall-am: uninstall-pkgincludeHEADERS
|
|||
ps ps-am tags tags-am uninstall uninstall-am \
|
||||
uninstall-pkgincludeHEADERS
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
# portaudiocpp/AsioDeviceAdapter.hxx
|
||||
|
||||
|
|
|
|||
|
|
@ -4,41 +4,41 @@
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
// Forward declaration(s):
|
||||
class Device;
|
||||
// Forward declaration(s):
|
||||
class Device;
|
||||
|
||||
// Declaration(s):
|
||||
//////
|
||||
/// @brief Adapts the given Device to an ASIO specific extension.
|
||||
///
|
||||
/// Deleting the AsioDeviceAdapter does not affect the underlying
|
||||
/// Device.
|
||||
//////
|
||||
class AsioDeviceAdapter
|
||||
{
|
||||
public:
|
||||
AsioDeviceAdapter(Device &device);
|
||||
// Declaration(s):
|
||||
//////
|
||||
/// @brief Adapts the given Device to an ASIO specific extension.
|
||||
///
|
||||
/// Deleting the AsioDeviceAdapter does not affect the underlying
|
||||
/// Device.
|
||||
//////
|
||||
class AsioDeviceAdapter
|
||||
{
|
||||
public:
|
||||
AsioDeviceAdapter(Device &device);
|
||||
|
||||
Device &device();
|
||||
Device &device();
|
||||
|
||||
long minBufferSize() const;
|
||||
long maxBufferSize() const;
|
||||
long preferredBufferSize() const;
|
||||
long granularity() const;
|
||||
long minBufferSize() const;
|
||||
long maxBufferSize() const;
|
||||
long preferredBufferSize() const;
|
||||
long granularity() const;
|
||||
|
||||
void showControlPanel(void *systemSpecific);
|
||||
void showControlPanel(void *systemSpecific);
|
||||
|
||||
const char *inputChannelName(int channelIndex) const;
|
||||
const char *outputChannelName(int channelIndex) const;
|
||||
const char *inputChannelName(int channelIndex) const;
|
||||
const char *outputChannelName(int channelIndex) const;
|
||||
|
||||
private:
|
||||
Device *device_;
|
||||
private:
|
||||
Device *device_;
|
||||
|
||||
long minBufferSize_;
|
||||
long maxBufferSize_;
|
||||
long preferredBufferSize_;
|
||||
long granularity_;
|
||||
};
|
||||
long minBufferSize_;
|
||||
long maxBufferSize_;
|
||||
long preferredBufferSize_;
|
||||
long granularity_;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // INCLUDED_PORTAUDIO_ASIODEVICEADAPTER_HXX
|
||||
|
|
|
|||
|
|
@ -11,48 +11,48 @@ namespace portaudio
|
|||
{
|
||||
|
||||
|
||||
//////
|
||||
/// @brief A RAII idiom class to ensure automatic clean-up when an exception is
|
||||
/// raised.
|
||||
///
|
||||
/// A simple helper class which uses the 'Resource Acquisition is Initialization'
|
||||
/// idiom (RAII). Use this class to initialize/terminate the System rather than
|
||||
/// using System directly. AutoSystem must be created on stack and must be valid
|
||||
/// throughout the time you wish to use PortAudioCpp. Your 'main' function might be
|
||||
/// a good place for it.
|
||||
///
|
||||
/// To avoid having to type portaudio::System::instance().xyz() all the time, it's usually
|
||||
/// a good idea to make a reference to the System which can be accessed directly.
|
||||
/// @verbatim
|
||||
/// portaudio::AutoSys autoSys;
|
||||
/// portaudio::System &sys = portaudio::System::instance();
|
||||
/// @endverbatim
|
||||
//////
|
||||
class AutoSystem
|
||||
{
|
||||
public:
|
||||
AutoSystem(bool initialize = true)
|
||||
{
|
||||
if (initialize)
|
||||
System::initialize();
|
||||
}
|
||||
//////
|
||||
/// @brief A RAII idiom class to ensure automatic clean-up when an exception is
|
||||
/// raised.
|
||||
///
|
||||
/// A simple helper class which uses the 'Resource Acquisition is Initialization'
|
||||
/// idiom (RAII). Use this class to initialize/terminate the System rather than
|
||||
/// using System directly. AutoSystem must be created on stack and must be valid
|
||||
/// throughout the time you wish to use PortAudioCpp. Your 'main' function might be
|
||||
/// a good place for it.
|
||||
///
|
||||
/// To avoid having to type portaudio::System::instance().xyz() all the time, it's usually
|
||||
/// a good idea to make a reference to the System which can be accessed directly.
|
||||
/// @verbatim
|
||||
/// portaudio::AutoSys autoSys;
|
||||
/// portaudio::System &sys = portaudio::System::instance();
|
||||
/// @endverbatim
|
||||
//////
|
||||
class AutoSystem
|
||||
{
|
||||
public:
|
||||
AutoSystem(bool initialize = true)
|
||||
{
|
||||
if (initialize)
|
||||
System::initialize();
|
||||
}
|
||||
|
||||
~AutoSystem()
|
||||
{
|
||||
if (System::exists())
|
||||
System::terminate();
|
||||
}
|
||||
~AutoSystem()
|
||||
{
|
||||
if (System::exists())
|
||||
System::terminate();
|
||||
}
|
||||
|
||||
void initialize()
|
||||
{
|
||||
System::initialize();
|
||||
}
|
||||
void initialize()
|
||||
{
|
||||
System::initialize();
|
||||
}
|
||||
|
||||
void terminate()
|
||||
{
|
||||
System::terminate();
|
||||
}
|
||||
};
|
||||
void terminate()
|
||||
{
|
||||
System::terminate();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
} // namespace portaudio
|
||||
|
|
|
|||
|
|
@ -12,28 +12,28 @@ namespace portaudio
|
|||
|
||||
|
||||
|
||||
//////
|
||||
/// @brief Stream class for blocking read/write-style input and output.
|
||||
//////
|
||||
class BlockingStream : public Stream
|
||||
{
|
||||
public:
|
||||
BlockingStream();
|
||||
BlockingStream(const StreamParameters ¶meters);
|
||||
~BlockingStream();
|
||||
//////
|
||||
/// @brief Stream class for blocking read/write-style input and output.
|
||||
//////
|
||||
class BlockingStream : public Stream
|
||||
{
|
||||
public:
|
||||
BlockingStream();
|
||||
BlockingStream(const StreamParameters ¶meters);
|
||||
~BlockingStream();
|
||||
|
||||
void open(const StreamParameters ¶meters);
|
||||
void open(const StreamParameters ¶meters);
|
||||
|
||||
void read(void *buffer, unsigned long numFrames);
|
||||
void write(const void *buffer, unsigned long numFrames);
|
||||
void read(void *buffer, unsigned long numFrames);
|
||||
void write(const void *buffer, unsigned long numFrames);
|
||||
|
||||
signed long availableReadSize() const;
|
||||
signed long availableWriteSize() const;
|
||||
signed long availableReadSize() const;
|
||||
signed long availableWriteSize() const;
|
||||
|
||||
private:
|
||||
BlockingStream(const BlockingStream &); // non-copyable
|
||||
BlockingStream &operator=(const BlockingStream &); // non-copyable
|
||||
};
|
||||
private:
|
||||
BlockingStream(const BlockingStream &); // non-copyable
|
||||
BlockingStream &operator=(const BlockingStream &); // non-copyable
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
|
@ -42,3 +42,4 @@ namespace portaudio
|
|||
// ---------------------------------------------------------------------------------------
|
||||
|
||||
#endif // INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
// Forward declaration(s)
|
||||
namespace portaudio
|
||||
{
|
||||
class StreamParameters;
|
||||
class StreamParameters;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
@ -20,29 +20,30 @@ namespace portaudio
|
|||
// Declaration(s):
|
||||
namespace portaudio
|
||||
{
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// @brief Callback stream using a free function with C linkage. It's important that the function
|
||||
/// the passed function pointer points to is declared ``extern "C"''.
|
||||
//////
|
||||
class CFunCallbackStream : public CallbackStream
|
||||
{
|
||||
public:
|
||||
CFunCallbackStream();
|
||||
CFunCallbackStream(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData);
|
||||
~CFunCallbackStream();
|
||||
//////
|
||||
/// @brief Callback stream using a free function with C linkage. It's important that the function
|
||||
/// the passed function pointer points to is declared ``extern "C"''.
|
||||
//////
|
||||
class CFunCallbackStream : public CallbackStream
|
||||
{
|
||||
public:
|
||||
CFunCallbackStream();
|
||||
CFunCallbackStream(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData);
|
||||
~CFunCallbackStream();
|
||||
|
||||
void open(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData);
|
||||
|
||||
void open(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData);
|
||||
private:
|
||||
CFunCallbackStream(const CFunCallbackStream &); // non-copyable
|
||||
CFunCallbackStream &operator=(const CFunCallbackStream &); // non-copyable
|
||||
};
|
||||
|
||||
private:
|
||||
CFunCallbackStream(const CFunCallbackStream &); // non-copyable
|
||||
CFunCallbackStream &operator=(const CFunCallbackStream &); // non-copyable
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
} // portaudio
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
||||
#endif // INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX
|
||||
|
||||
|
|
|
|||
|
|
@ -9,34 +9,34 @@
|
|||
|
||||
namespace portaudio
|
||||
{
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// @brief Interface for an object that's callable as a PortAudioCpp callback object (ie that implements the
|
||||
/// paCallbackFun method).
|
||||
//////
|
||||
class CallbackInterface
|
||||
{
|
||||
public:
|
||||
virtual ~CallbackInterface() {}
|
||||
//////
|
||||
/// @brief Interface for an object that's callable as a PortAudioCpp callback object (ie that implements the
|
||||
/// paCallbackFun method).
|
||||
//////
|
||||
class CallbackInterface
|
||||
{
|
||||
public:
|
||||
virtual ~CallbackInterface() {}
|
||||
|
||||
virtual int paCallbackFun(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags) = 0;
|
||||
};
|
||||
virtual int paCallbackFun(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags) = 0;
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
namespace impl
|
||||
{
|
||||
extern "C"
|
||||
{
|
||||
int callbackInterfaceToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags,
|
||||
void *userData);
|
||||
} // extern "C"
|
||||
}
|
||||
namespace impl
|
||||
{
|
||||
extern "C"
|
||||
{
|
||||
int callbackInterfaceToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags,
|
||||
void *userData);
|
||||
} // extern "C"
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
} // namespace portaudio
|
||||
|
||||
|
|
|
|||
|
|
@ -14,23 +14,23 @@ namespace portaudio
|
|||
{
|
||||
|
||||
|
||||
//////
|
||||
/// @brief Base class for all Streams which use a callback-based mechanism.
|
||||
//////
|
||||
class CallbackStream : public Stream
|
||||
{
|
||||
protected:
|
||||
CallbackStream();
|
||||
virtual ~CallbackStream();
|
||||
//////
|
||||
/// @brief Base class for all Streams which use a callback-based mechanism.
|
||||
//////
|
||||
class CallbackStream : public Stream
|
||||
{
|
||||
protected:
|
||||
CallbackStream();
|
||||
virtual ~CallbackStream();
|
||||
|
||||
public:
|
||||
// stream info (time-varying)
|
||||
double cpuLoad() const;
|
||||
public:
|
||||
// stream info (time-varying)
|
||||
double cpuLoad() const;
|
||||
|
||||
private:
|
||||
CallbackStream(const CallbackStream &); // non-copyable
|
||||
CallbackStream &operator=(const CallbackStream &); // non-copyable
|
||||
};
|
||||
private:
|
||||
CallbackStream(const CallbackStream &); // non-copyable
|
||||
CallbackStream &operator=(const CallbackStream &); // non-copyable
|
||||
};
|
||||
|
||||
|
||||
} // namespace portaudio
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
// Forward declaration(s):
|
||||
namespace portaudio
|
||||
{
|
||||
class StreamParameters;
|
||||
class StreamParameters;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
@ -22,61 +22,61 @@ namespace portaudio
|
|||
{
|
||||
|
||||
|
||||
namespace impl
|
||||
{
|
||||
extern "C"
|
||||
{
|
||||
int cppCallbackToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags,
|
||||
void *userData);
|
||||
} // extern "C"
|
||||
}
|
||||
namespace impl
|
||||
{
|
||||
extern "C"
|
||||
{
|
||||
int cppCallbackToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags,
|
||||
void *userData);
|
||||
} // extern "C"
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// @brief Callback stream using a C++ function (either a free function or a static function)
|
||||
/// callback.
|
||||
//////
|
||||
class FunCallbackStream : public CallbackStream
|
||||
{
|
||||
public:
|
||||
typedef int (*CallbackFunPtr)(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags,
|
||||
void *userData);
|
||||
//////
|
||||
/// @brief Callback stream using a C++ function (either a free function or a static function)
|
||||
/// callback.
|
||||
//////
|
||||
class FunCallbackStream : public CallbackStream
|
||||
{
|
||||
public:
|
||||
typedef int (*CallbackFunPtr)(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags,
|
||||
void *userData);
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// @brief Simple structure containing a function pointer to the C++ callback function and a
|
||||
/// (void) pointer to the user supplied data.
|
||||
//////
|
||||
struct CppToCCallbackData
|
||||
{
|
||||
CppToCCallbackData();
|
||||
CppToCCallbackData(CallbackFunPtr funPtr, void *userData);
|
||||
void init(CallbackFunPtr funPtr, void *userData);
|
||||
//////
|
||||
/// @brief Simple structure containing a function pointer to the C++ callback function and a
|
||||
/// (void) pointer to the user supplied data.
|
||||
//////
|
||||
struct CppToCCallbackData
|
||||
{
|
||||
CppToCCallbackData();
|
||||
CppToCCallbackData(CallbackFunPtr funPtr, void *userData);
|
||||
void init(CallbackFunPtr funPtr, void *userData);
|
||||
|
||||
CallbackFunPtr funPtr;
|
||||
void *userData;
|
||||
};
|
||||
CallbackFunPtr funPtr;
|
||||
void *userData;
|
||||
};
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
FunCallbackStream();
|
||||
FunCallbackStream(const StreamParameters ¶meters, CallbackFunPtr funPtr, void *userData);
|
||||
~FunCallbackStream();
|
||||
FunCallbackStream();
|
||||
FunCallbackStream(const StreamParameters ¶meters, CallbackFunPtr funPtr, void *userData);
|
||||
~FunCallbackStream();
|
||||
|
||||
void open(const StreamParameters ¶meters, CallbackFunPtr funPtr, void *userData);
|
||||
void open(const StreamParameters ¶meters, CallbackFunPtr funPtr, void *userData);
|
||||
|
||||
private:
|
||||
FunCallbackStream(const FunCallbackStream &); // non-copyable
|
||||
FunCallbackStream &operator=(const FunCallbackStream &); // non-copyable
|
||||
private:
|
||||
FunCallbackStream(const FunCallbackStream &); // non-copyable
|
||||
FunCallbackStream &operator=(const FunCallbackStream &); // non-copyable
|
||||
|
||||
CppToCCallbackData adapterData_;
|
||||
CppToCCallbackData adapterData_;
|
||||
|
||||
void open(const StreamParameters ¶meters);
|
||||
};
|
||||
void open(const StreamParameters ¶meters);
|
||||
};
|
||||
|
||||
|
||||
} // portaudio
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@
|
|||
// Forward declaration(s):
|
||||
namespace portaudio
|
||||
{
|
||||
class System;
|
||||
class HostApi;
|
||||
class System;
|
||||
class HostApi;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
@ -24,67 +24,68 @@ namespace portaudio
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
//////
|
||||
/// @brief Class which represents a PortAudio device in the System.
|
||||
///
|
||||
/// A single physical device in the system may have multiple PortAudio
|
||||
/// Device representations using different HostApi 's though. A Device
|
||||
/// can be half-duplex or full-duplex. A half-duplex Device can be used
|
||||
/// to create a half-duplex Stream. A full-duplex Device can be used to
|
||||
/// create a full-duplex Stream. If supported by the HostApi, two
|
||||
/// half-duplex Devices can even be used to create a full-duplex Stream.
|
||||
///
|
||||
/// Note that Device objects are very light-weight and can be passed around
|
||||
/// by-value.
|
||||
//////
|
||||
class Device
|
||||
{
|
||||
public:
|
||||
// query info: name, max in channels, max out channels,
|
||||
// default low/high input/output latency, default sample rate
|
||||
PaDeviceIndex index() const;
|
||||
const char *name() const;
|
||||
int maxInputChannels() const;
|
||||
int maxOutputChannels() const;
|
||||
PaTime defaultLowInputLatency() const;
|
||||
PaTime defaultHighInputLatency() const;
|
||||
PaTime defaultLowOutputLatency() const;
|
||||
PaTime defaultHighOutputLatency() const;
|
||||
double defaultSampleRate() const;
|
||||
//////
|
||||
/// @brief Class which represents a PortAudio device in the System.
|
||||
///
|
||||
/// A single physical device in the system may have multiple PortAudio
|
||||
/// Device representations using different HostApi 's though. A Device
|
||||
/// can be half-duplex or full-duplex. A half-duplex Device can be used
|
||||
/// to create a half-duplex Stream. A full-duplex Device can be used to
|
||||
/// create a full-duplex Stream. If supported by the HostApi, two
|
||||
/// half-duplex Devices can even be used to create a full-duplex Stream.
|
||||
///
|
||||
/// Note that Device objects are very light-weight and can be passed around
|
||||
/// by-value.
|
||||
//////
|
||||
class Device
|
||||
{
|
||||
public:
|
||||
// query info: name, max in channels, max out channels,
|
||||
// default low/high input/output latency, default sample rate
|
||||
PaDeviceIndex index() const;
|
||||
const char *name() const;
|
||||
int maxInputChannels() const;
|
||||
int maxOutputChannels() const;
|
||||
PaTime defaultLowInputLatency() const;
|
||||
PaTime defaultHighInputLatency() const;
|
||||
PaTime defaultLowOutputLatency() const;
|
||||
PaTime defaultHighOutputLatency() const;
|
||||
double defaultSampleRate() const;
|
||||
|
||||
bool isInputOnlyDevice() const; // extended
|
||||
bool isOutputOnlyDevice() const; // extended
|
||||
bool isFullDuplexDevice() const; // extended
|
||||
bool isSystemDefaultInputDevice() const; // extended
|
||||
bool isSystemDefaultOutputDevice() const; // extended
|
||||
bool isHostApiDefaultInputDevice() const; // extended
|
||||
bool isHostApiDefaultOutputDevice() const; // extended
|
||||
bool isInputOnlyDevice() const; // extended
|
||||
bool isOutputOnlyDevice() const; // extended
|
||||
bool isFullDuplexDevice() const; // extended
|
||||
bool isSystemDefaultInputDevice() const; // extended
|
||||
bool isSystemDefaultOutputDevice() const; // extended
|
||||
bool isHostApiDefaultInputDevice() const; // extended
|
||||
bool isHostApiDefaultOutputDevice() const; // extended
|
||||
|
||||
bool operator==(const Device &rhs) const;
|
||||
bool operator!=(const Device &rhs) const;
|
||||
bool operator==(const Device &rhs) const;
|
||||
bool operator!=(const Device &rhs) const;
|
||||
|
||||
// host api reference
|
||||
HostApi &hostApi();
|
||||
const HostApi &hostApi() const;
|
||||
// host api reference
|
||||
HostApi &hostApi();
|
||||
const HostApi &hostApi() const;
|
||||
|
||||
private:
|
||||
PaDeviceIndex index_;
|
||||
const PaDeviceInfo *info_;
|
||||
private:
|
||||
PaDeviceIndex index_;
|
||||
const PaDeviceInfo *info_;
|
||||
|
||||
private:
|
||||
friend class System;
|
||||
private:
|
||||
friend class System;
|
||||
|
||||
explicit Device(PaDeviceIndex index);
|
||||
~Device();
|
||||
|
||||
explicit Device(PaDeviceIndex index);
|
||||
~Device();
|
||||
Device(const Device &); // non-copyable
|
||||
Device &operator=(const Device &); // non-copyable
|
||||
};
|
||||
|
||||
Device(const Device &); // non-copyable
|
||||
Device &operator=(const Device &); // non-copyable
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
} // namespace portaudio
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
||||
#endif // INCLUDED_PORTAUDIO_DEVICE_HXX
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
// Forward declaration(s):
|
||||
namespace portaudio
|
||||
{
|
||||
class Device;
|
||||
class Device;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
@ -24,50 +24,50 @@ namespace portaudio
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
//////
|
||||
/// @brief All parameters for one direction (either in or out) of a Stream. Together with
|
||||
/// parameters common to both directions, two DirectionSpecificStreamParameters can make up
|
||||
/// a StreamParameters object which contains all parameters for a Stream.
|
||||
//////
|
||||
class DirectionSpecificStreamParameters
|
||||
{
|
||||
public:
|
||||
static DirectionSpecificStreamParameters null();
|
||||
//////
|
||||
/// @brief All parameters for one direction (either in or out) of a Stream. Together with
|
||||
/// parameters common to both directions, two DirectionSpecificStreamParameters can make up
|
||||
/// a StreamParameters object which contains all parameters for a Stream.
|
||||
//////
|
||||
class DirectionSpecificStreamParameters
|
||||
{
|
||||
public:
|
||||
static DirectionSpecificStreamParameters null();
|
||||
|
||||
DirectionSpecificStreamParameters();
|
||||
DirectionSpecificStreamParameters(const Device &device, int numChannels, SampleDataFormat format,
|
||||
bool interleaved, PaTime suggestedLatency, void *hostApiSpecificStreamInfo);
|
||||
DirectionSpecificStreamParameters();
|
||||
DirectionSpecificStreamParameters(const Device &device, int numChannels, SampleDataFormat format,
|
||||
bool interleaved, PaTime suggestedLatency, void *hostApiSpecificStreamInfo);
|
||||
|
||||
// Set up methods:
|
||||
void setDevice(const Device &device);
|
||||
void setNumChannels(int numChannels);
|
||||
// Set up methods:
|
||||
void setDevice(const Device &device);
|
||||
void setNumChannels(int numChannels);
|
||||
|
||||
void setSampleFormat(SampleDataFormat format, bool interleaved = true);
|
||||
void setHostApiSpecificSampleFormat(PaSampleFormat format, bool interleaved = true);
|
||||
void setSampleFormat(SampleDataFormat format, bool interleaved = true);
|
||||
void setHostApiSpecificSampleFormat(PaSampleFormat format, bool interleaved = true);
|
||||
|
||||
void setSuggestedLatency(PaTime latency);
|
||||
void setSuggestedLatency(PaTime latency);
|
||||
|
||||
void setHostApiSpecificStreamInfo(void *streamInfo);
|
||||
void setHostApiSpecificStreamInfo(void *streamInfo);
|
||||
|
||||
// Accessor methods:
|
||||
PaStreamParameters *paStreamParameters();
|
||||
const PaStreamParameters *paStreamParameters() const;
|
||||
// Accessor methods:
|
||||
PaStreamParameters *paStreamParameters();
|
||||
const PaStreamParameters *paStreamParameters() const;
|
||||
|
||||
Device &device() const;
|
||||
int numChannels() const;
|
||||
Device &device() const;
|
||||
int numChannels() const;
|
||||
|
||||
SampleDataFormat sampleFormat() const;
|
||||
bool isSampleFormatInterleaved() const;
|
||||
bool isSampleFormatHostApiSpecific() const;
|
||||
PaSampleFormat hostApiSpecificSampleFormat() const;
|
||||
SampleDataFormat sampleFormat() const;
|
||||
bool isSampleFormatInterleaved() const;
|
||||
bool isSampleFormatHostApiSpecific() const;
|
||||
PaSampleFormat hostApiSpecificSampleFormat() const;
|
||||
|
||||
PaTime suggestedLatency() const;
|
||||
PaTime suggestedLatency() const;
|
||||
|
||||
void *hostApiSpecificStreamInfo() const;
|
||||
|
||||
private:
|
||||
PaStreamParameters paStreamParameters_;
|
||||
};
|
||||
void *hostApiSpecificStreamInfo() const;
|
||||
|
||||
private:
|
||||
PaStreamParameters paStreamParameters_;
|
||||
};
|
||||
|
||||
|
||||
} // namespace portaudio
|
||||
|
|
|
|||
|
|
@ -12,92 +12,92 @@
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
//////
|
||||
/// @brief Base class for all exceptions PortAudioCpp can throw.
|
||||
///
|
||||
/// Class is derived from std::exception.
|
||||
//////
|
||||
class Exception : public std::exception
|
||||
{
|
||||
public:
|
||||
virtual ~Exception() throw() {}
|
||||
//////
|
||||
/// @brief Base class for all exceptions PortAudioCpp can throw.
|
||||
///
|
||||
/// Class is derived from std::exception.
|
||||
//////
|
||||
class Exception : public std::exception
|
||||
{
|
||||
public:
|
||||
virtual ~Exception() throw() {}
|
||||
|
||||
virtual const char *what() const throw() = 0;
|
||||
};
|
||||
virtual const char *what() const throw() = 0;
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
//////
|
||||
/// @brief Wrapper for PortAudio error codes to C++ exceptions.
|
||||
///
|
||||
/// It wraps up PortAudio's error handling mechanism using
|
||||
/// C++ exceptions and is derived from std::exception for
|
||||
/// easy exception handling and to ease integration with
|
||||
/// other code.
|
||||
///
|
||||
/// To know what exceptions each function may throw, look up
|
||||
/// the errors that can occur in the PortAudio documentation
|
||||
/// for the equivalent functions.
|
||||
///
|
||||
/// Some functions are likely to throw an exception (such as
|
||||
/// Stream::open(), etc) and these should always be called in
|
||||
/// try{} catch{} blocks and the thrown exceptions should be
|
||||
/// handled properly (ie. the application shouldn't just abort,
|
||||
/// but merely display a warning dialog to the user or something).
|
||||
/// However nearly all functions in PortAudioCpp are capable
|
||||
/// of throwing exceptions. When a function like Stream::isStopped()
|
||||
/// throws an exception, it's such an exceptional state that it's
|
||||
/// not likely that it can be recovered. PaExceptions such as these
|
||||
/// can ``safely'' be left to be handled by some outer catch-all-like
|
||||
/// mechanism for unrecoverable errors.
|
||||
//////
|
||||
class PaException : public Exception
|
||||
{
|
||||
public:
|
||||
explicit PaException(PaError error);
|
||||
|
||||
//////
|
||||
/// @brief Wrapper for PortAudio error codes to C++ exceptions.
|
||||
///
|
||||
/// It wraps up PortAudio's error handling mechanism using
|
||||
/// C++ exceptions and is derived from std::exception for
|
||||
/// easy exception handling and to ease integration with
|
||||
/// other code.
|
||||
///
|
||||
/// To know what exceptions each function may throw, look up
|
||||
/// the errors that can occur in the PortAudio documentation
|
||||
/// for the equivalent functions.
|
||||
///
|
||||
/// Some functions are likely to throw an exception (such as
|
||||
/// Stream::open(), etc) and these should always be called in
|
||||
/// try{} catch{} blocks and the thrown exceptions should be
|
||||
/// handled properly (ie. the application shouldn't just abort,
|
||||
/// but merely display a warning dialog to the user or something).
|
||||
/// However nearly all functions in PortAudioCpp are capable
|
||||
/// of throwing exceptions. When a function like Stream::isStopped()
|
||||
/// throws an exception, it's such an exceptional state that it's
|
||||
/// not likely that it can be recovered. PaExceptions such as these
|
||||
/// can ``safely'' be left to be handled by some outer catch-all-like
|
||||
/// mechanism for unrecoverable errors.
|
||||
//////
|
||||
class PaException : public Exception
|
||||
{
|
||||
public:
|
||||
explicit PaException(PaError error);
|
||||
const char *what() const throw();
|
||||
|
||||
const char *what() const throw();
|
||||
PaError paError() const;
|
||||
const char *paErrorText() const;
|
||||
|
||||
PaError paError() const;
|
||||
const char *paErrorText() const;
|
||||
bool isHostApiError() const; // extended
|
||||
long lastHostApiError() const;
|
||||
const char *lastHostApiErrorText() const;
|
||||
|
||||
bool isHostApiError() const; // extended
|
||||
long lastHostApiError() const;
|
||||
const char *lastHostApiErrorText() const;
|
||||
bool operator==(const PaException &rhs) const;
|
||||
bool operator!=(const PaException &rhs) const;
|
||||
|
||||
bool operator==(const PaException &rhs) const;
|
||||
bool operator!=(const PaException &rhs) const;
|
||||
private:
|
||||
PaError error_;
|
||||
};
|
||||
|
||||
private:
|
||||
PaError error_;
|
||||
};
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
//////
|
||||
/// @brief Exceptions specific to PortAudioCpp (ie. exceptions which do not have an
|
||||
/// equivalent PortAudio error code).
|
||||
//////
|
||||
class PaCppException : public Exception
|
||||
{
|
||||
public:
|
||||
enum ExceptionSpecifier
|
||||
{
|
||||
UNABLE_TO_ADAPT_DEVICE
|
||||
};
|
||||
|
||||
//////
|
||||
/// @brief Exceptions specific to PortAudioCpp (ie. exceptions which do not have an
|
||||
/// equivalent PortAudio error code).
|
||||
//////
|
||||
class PaCppException : public Exception
|
||||
{
|
||||
public:
|
||||
enum ExceptionSpecifier
|
||||
{
|
||||
UNABLE_TO_ADAPT_DEVICE
|
||||
};
|
||||
PaCppException(ExceptionSpecifier specifier);
|
||||
|
||||
PaCppException(ExceptionSpecifier specifier);
|
||||
const char *what() const throw();
|
||||
|
||||
const char *what() const throw();
|
||||
ExceptionSpecifier specifier() const;
|
||||
|
||||
ExceptionSpecifier specifier() const;
|
||||
bool operator==(const PaCppException &rhs) const;
|
||||
bool operator!=(const PaCppException &rhs) const;
|
||||
|
||||
bool operator==(const PaCppException &rhs) const;
|
||||
bool operator!=(const PaCppException &rhs) const;
|
||||
|
||||
private:
|
||||
ExceptionSpecifier specifier_;
|
||||
};
|
||||
private:
|
||||
ExceptionSpecifier specifier_;
|
||||
};
|
||||
|
||||
|
||||
} // namespace portaudio
|
||||
|
|
@ -105,3 +105,4 @@ namespace portaudio
|
|||
// ---------------------------------------------------------------------------------------
|
||||
|
||||
#endif // INCLUDED_PORTAUDIO_EXCEPTION_HXX
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
// Forward declaration(s):
|
||||
namespace portaudio
|
||||
{
|
||||
class Device;
|
||||
class Device;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
@ -22,50 +22,50 @@ namespace portaudio
|
|||
{
|
||||
|
||||
|
||||
//////
|
||||
/// @brief HostApi represents a host API (usually type of driver) in the System.
|
||||
///
|
||||
/// A single System can support multiple HostApi's each one typically having
|
||||
/// a set of Devices using that HostApi (usually driver type). All Devices in
|
||||
/// the HostApi can be enumerated and the default input/output Device for this
|
||||
/// HostApi can be retrieved.
|
||||
//////
|
||||
class HostApi
|
||||
{
|
||||
public:
|
||||
typedef System::DeviceIterator DeviceIterator;
|
||||
//////
|
||||
/// @brief HostApi represents a host API (usually type of driver) in the System.
|
||||
///
|
||||
/// A single System can support multiple HostApi's each one typically having
|
||||
/// a set of Devices using that HostApi (usually driver type). All Devices in
|
||||
/// the HostApi can be enumerated and the default input/output Device for this
|
||||
/// HostApi can be retrieved.
|
||||
//////
|
||||
class HostApi
|
||||
{
|
||||
public:
|
||||
typedef System::DeviceIterator DeviceIterator;
|
||||
|
||||
// query info: id, name, numDevices
|
||||
PaHostApiTypeId typeId() const;
|
||||
PaHostApiIndex index() const;
|
||||
const char *name() const;
|
||||
int deviceCount() const;
|
||||
// query info: id, name, numDevices
|
||||
PaHostApiTypeId typeId() const;
|
||||
PaHostApiIndex index() const;
|
||||
const char *name() const;
|
||||
int deviceCount() const;
|
||||
|
||||
// iterate devices
|
||||
DeviceIterator devicesBegin();
|
||||
DeviceIterator devicesEnd();
|
||||
// iterate devices
|
||||
DeviceIterator devicesBegin();
|
||||
DeviceIterator devicesEnd();
|
||||
|
||||
// default devices
|
||||
Device &defaultInputDevice() const;
|
||||
Device &defaultOutputDevice() const;
|
||||
// default devices
|
||||
Device &defaultInputDevice() const;
|
||||
Device &defaultOutputDevice() const;
|
||||
|
||||
// comparison operators
|
||||
bool operator==(const HostApi &rhs) const;
|
||||
bool operator!=(const HostApi &rhs) const;
|
||||
// comparison operators
|
||||
bool operator==(const HostApi &rhs) const;
|
||||
bool operator!=(const HostApi &rhs) const;
|
||||
|
||||
private:
|
||||
const PaHostApiInfo *info_;
|
||||
Device **devices_;
|
||||
private:
|
||||
const PaHostApiInfo *info_;
|
||||
Device **devices_;
|
||||
|
||||
private:
|
||||
friend class System;
|
||||
private:
|
||||
friend class System;
|
||||
|
||||
explicit HostApi(PaHostApiIndex index);
|
||||
~HostApi();
|
||||
explicit HostApi(PaHostApiIndex index);
|
||||
~HostApi();
|
||||
|
||||
HostApi(const HostApi &); // non-copyable
|
||||
HostApi &operator=(const HostApi &); // non-copyable
|
||||
};
|
||||
HostApi(const HostApi &); // non-copyable
|
||||
HostApi &operator=(const HostApi &); // non-copyable
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -73,3 +73,4 @@ namespace portaudio
|
|||
// ---------------------------------------------------------------------------------------
|
||||
|
||||
#endif // INCLUDED_PORTAUDIO_HOSTAPI_HXX
|
||||
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@
|
|||
// Forward declaration(s)
|
||||
namespace portaudio
|
||||
{
|
||||
class StreamParameters;
|
||||
class CallbackInterface;
|
||||
class StreamParameters;
|
||||
class CallbackInterface;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
@ -23,23 +23,23 @@ namespace portaudio
|
|||
{
|
||||
|
||||
|
||||
//////
|
||||
/// @brief Callback stream using an instance of an object that's derived from the CallbackInterface
|
||||
/// interface.
|
||||
//////
|
||||
class InterfaceCallbackStream : public CallbackStream
|
||||
{
|
||||
public:
|
||||
InterfaceCallbackStream();
|
||||
InterfaceCallbackStream(const StreamParameters ¶meters, CallbackInterface &instance);
|
||||
~InterfaceCallbackStream();
|
||||
//////
|
||||
/// @brief Callback stream using an instance of an object that's derived from the CallbackInterface
|
||||
/// interface.
|
||||
//////
|
||||
class InterfaceCallbackStream : public CallbackStream
|
||||
{
|
||||
public:
|
||||
InterfaceCallbackStream();
|
||||
InterfaceCallbackStream(const StreamParameters ¶meters, CallbackInterface &instance);
|
||||
~InterfaceCallbackStream();
|
||||
|
||||
void open(const StreamParameters ¶meters, CallbackInterface &instance);
|
||||
|
||||
void open(const StreamParameters ¶meters, CallbackInterface &instance);
|
||||
|
||||
private:
|
||||
InterfaceCallbackStream(const InterfaceCallbackStream &); // non-copyable
|
||||
InterfaceCallbackStream &operator=(const InterfaceCallbackStream &); // non-copyable
|
||||
};
|
||||
private:
|
||||
InterfaceCallbackStream(const InterfaceCallbackStream &); // non-copyable
|
||||
InterfaceCallbackStream &operator=(const InterfaceCallbackStream &); // non-copyable
|
||||
};
|
||||
|
||||
|
||||
} // portaudio
|
||||
|
|
|
|||
|
|
@ -17,87 +17,87 @@ namespace portaudio
|
|||
{
|
||||
|
||||
|
||||
//////
|
||||
/// @brief Callback stream using a class's member function as a callback. Template argument T is the type of the
|
||||
/// class of which a member function is going to be used.
|
||||
///
|
||||
/// Example usage:
|
||||
/// @verbatim MemFunCallback<MyClass> stream = MemFunCallbackStream(parameters, *this, &MyClass::myCallbackFunction); @endverbatim
|
||||
//////
|
||||
template<typename T>
|
||||
class MemFunCallbackStream : public CallbackStream
|
||||
{
|
||||
public:
|
||||
typedef int (T::*CallbackFunPtr)(const void *, void *, unsigned long, const PaStreamCallbackTimeInfo *,
|
||||
PaStreamCallbackFlags);
|
||||
//////
|
||||
/// @brief Callback stream using a class's member function as a callback. Template argument T is the type of the
|
||||
/// class of which a member function is going to be used.
|
||||
///
|
||||
/// Example usage:
|
||||
/// @verbatim MemFunCallback<MyClass> stream = MemFunCallbackStream(parameters, *this, &MyClass::myCallbackFunction); @endverbatim
|
||||
//////
|
||||
template<typename T>
|
||||
class MemFunCallbackStream : public CallbackStream
|
||||
{
|
||||
public:
|
||||
typedef int (T::*CallbackFunPtr)(const void *, void *, unsigned long, const PaStreamCallbackTimeInfo *,
|
||||
PaStreamCallbackFlags);
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
MemFunCallbackStream()
|
||||
{
|
||||
}
|
||||
MemFunCallbackStream()
|
||||
{
|
||||
}
|
||||
|
||||
MemFunCallbackStream(const StreamParameters ¶meters, T &instance, CallbackFunPtr memFun) : adapter_(instance, memFun)
|
||||
{
|
||||
open(parameters);
|
||||
}
|
||||
MemFunCallbackStream(const StreamParameters ¶meters, T &instance, CallbackFunPtr memFun) : adapter_(instance, memFun)
|
||||
{
|
||||
open(parameters);
|
||||
}
|
||||
|
||||
~MemFunCallbackStream()
|
||||
{
|
||||
close();
|
||||
}
|
||||
~MemFunCallbackStream()
|
||||
{
|
||||
close();
|
||||
}
|
||||
|
||||
void open(const StreamParameters ¶meters, T &instance, CallbackFunPtr memFun)
|
||||
{
|
||||
// XXX: need to check if already open?
|
||||
void open(const StreamParameters ¶meters, T &instance, CallbackFunPtr memFun)
|
||||
{
|
||||
// XXX: need to check if already open?
|
||||
|
||||
adapter_.init(instance, memFun);
|
||||
open(parameters);
|
||||
}
|
||||
adapter_.init(instance, memFun);
|
||||
open(parameters);
|
||||
}
|
||||
|
||||
private:
|
||||
MemFunCallbackStream(const MemFunCallbackStream &); // non-copyable
|
||||
MemFunCallbackStream &operator=(const MemFunCallbackStream &); // non-copyable
|
||||
private:
|
||||
MemFunCallbackStream(const MemFunCallbackStream &); // non-copyable
|
||||
MemFunCallbackStream &operator=(const MemFunCallbackStream &); // non-copyable
|
||||
|
||||
//////
|
||||
/// @brief Inner class which adapts a member function callback to a CallbackInterface compliant
|
||||
/// class (so it can be adapted using the paCallbackAdapter function).
|
||||
//////
|
||||
class MemFunToCallbackInterfaceAdapter : public CallbackInterface
|
||||
{
|
||||
public:
|
||||
MemFunToCallbackInterfaceAdapter() {}
|
||||
MemFunToCallbackInterfaceAdapter(T &instance, CallbackFunPtr memFun) : instance_(&instance), memFun_(memFun) {}
|
||||
//////
|
||||
/// @brief Inner class which adapts a member function callback to a CallbackInterface compliant
|
||||
/// class (so it can be adapted using the paCallbackAdapter function).
|
||||
//////
|
||||
class MemFunToCallbackInterfaceAdapter : public CallbackInterface
|
||||
{
|
||||
public:
|
||||
MemFunToCallbackInterfaceAdapter() {}
|
||||
MemFunToCallbackInterfaceAdapter(T &instance, CallbackFunPtr memFun) : instance_(&instance), memFun_(memFun) {}
|
||||
|
||||
void init(T &instance, CallbackFunPtr memFun)
|
||||
{
|
||||
instance_ = &instance;
|
||||
memFun_ = memFun;
|
||||
}
|
||||
void init(T &instance, CallbackFunPtr memFun)
|
||||
{
|
||||
instance_ = &instance;
|
||||
memFun_ = memFun;
|
||||
}
|
||||
|
||||
int paCallbackFun(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags)
|
||||
{
|
||||
return (instance_->*memFun_)(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags);
|
||||
}
|
||||
int paCallbackFun(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags)
|
||||
{
|
||||
return (instance_->*memFun_)(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags);
|
||||
}
|
||||
|
||||
private:
|
||||
T *instance_;
|
||||
CallbackFunPtr memFun_;
|
||||
};
|
||||
private:
|
||||
T *instance_;
|
||||
CallbackFunPtr memFun_;
|
||||
};
|
||||
|
||||
MemFunToCallbackInterfaceAdapter adapter_;
|
||||
MemFunToCallbackInterfaceAdapter adapter_;
|
||||
|
||||
void open(const StreamParameters ¶meters)
|
||||
{
|
||||
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
|
||||
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::callbackInterfaceToPaCallbackAdapter,
|
||||
static_cast<void *>(&adapter_));
|
||||
void open(const StreamParameters ¶meters)
|
||||
{
|
||||
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
|
||||
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::callbackInterfaceToPaCallbackAdapter,
|
||||
static_cast<void *>(&adapter_));
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
};
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
} // portaudio
|
||||
|
|
|
|||
|
|
@ -6,23 +6,23 @@
|
|||
//////
|
||||
/// @mainpage PortAudioCpp
|
||||
///
|
||||
/// <h1>PortAudioCpp - A Native C++ Binding of PortAudio V19</h1>
|
||||
/// <h1>PortAudioCpp - A Native C++ Binding of PortAudio V19</h1>
|
||||
/// <h2>PortAudio</h2>
|
||||
/// <p>
|
||||
/// PortAudio is a portable and mature C API for accessing audio hardware. It offers both callback-based and blocking
|
||||
/// style input and output, deals with sample data format conversions, dithering and much more. There are a large number
|
||||
/// of implementations available for various platforms including Windows MME, Windows DirectX, Windows and MacOS (Classic)
|
||||
/// ASIO, MacOS Classic SoundManager, MacOS X CoreAudio, OSS (Linux), Linux ALSA, JACK (MacOS X and Linux) and SGI Irix
|
||||
/// AL. Note that, currently not all of these implementations are equally complete or up-to-date (as PortAudio V19 is
|
||||
/// still in development). Because PortAudio has a C API, it can easily be called from a variety of other programming
|
||||
/// PortAudio is a portable and mature C API for accessing audio hardware. It offers both callback-based and blocking
|
||||
/// style input and output, deals with sample data format conversions, dithering and much more. There are a large number
|
||||
/// of implementations available for various platforms including Windows MME, Windows DirectX, Windows and MacOS (Classic)
|
||||
/// ASIO, MacOS Classic SoundManager, MacOS X CoreAudio, OSS (Linux), Linux ALSA, JACK (MacOS X and Linux) and SGI Irix
|
||||
/// AL. Note that, currently not all of these implementations are equally complete or up-to-date (as PortAudio V19 is
|
||||
/// still in development). Because PortAudio has a C API, it can easily be called from a variety of other programming
|
||||
/// languages.
|
||||
/// </p>
|
||||
/// <h2>PortAudioCpp</h2>
|
||||
/// <p>
|
||||
/// Although, it is possible to use PortAudio's C API from within a C++ program, this is usually a little awkward
|
||||
/// as procedural and object-oriented paradigms need to be mixed. PortAudioCpp aims to resolve this by encapsulating
|
||||
/// PortAudio's C API to form an equivalent object-oriented C++ API. It provides a more natural integration of PortAudio
|
||||
/// into C++ programs as well as a more structured interface. PortAudio's concepts were preserved as much as possible and
|
||||
/// Although, it is possible to use PortAudio's C API from within a C++ program, this is usually a little awkward
|
||||
/// as procedural and object-oriented paradigms need to be mixed. PortAudioCpp aims to resolve this by encapsulating
|
||||
/// PortAudio's C API to form an equivalent object-oriented C++ API. It provides a more natural integration of PortAudio
|
||||
/// into C++ programs as well as a more structured interface. PortAudio's concepts were preserved as much as possible and
|
||||
/// no additional features were added except for some `convenience methods'.
|
||||
/// </p>
|
||||
/// <p>
|
||||
|
|
@ -30,15 +30,15 @@
|
|||
/// <ul>
|
||||
/// <li>Structured object model.</li>
|
||||
/// <li>C++ exception handling instead of C-style error return codes.</li>
|
||||
/// <li>Handling of callbacks using free functions (C and C++), static functions, member functions or instances of classes
|
||||
/// <li>Handling of callbacks using free functions (C and C++), static functions, member functions or instances of classes
|
||||
/// derived from a given interface.</li>
|
||||
/// <li>STL compliant iterators to host APIs and devices.</li>
|
||||
/// <li>Some additional convenience functions to more easily set up and use PortAudio.</li>
|
||||
/// </ul>
|
||||
/// </p>
|
||||
/// <p>
|
||||
/// PortAudioCpp requires a recent version of the PortAudio V19 source code. This can be obtained from CVS or as a snapshot
|
||||
/// from the website. The examples also require the ASIO 2 SDK which can be obtained from the Steinberg website. Alternatively, the
|
||||
/// PortAudioCpp requires a recent version of the PortAudio V19 source code. This can be obtained from CVS or as a snapshot
|
||||
/// from the website. The examples also require the ASIO 2 SDK which can be obtained from the Steinberg website. Alternatively, the
|
||||
/// examples can easily be modified to compile without needing ASIO.
|
||||
/// </p>
|
||||
/// <p>
|
||||
|
|
@ -50,12 +50,12 @@
|
|||
/// Other platforms should be easily supported as PortAudioCpp is platform-independent and (reasonably) C++ standard compliant.
|
||||
/// </p>
|
||||
/// <p>
|
||||
/// This documentation mainly provides information specific to PortAudioCpp. For a more complete explanation of all of the
|
||||
/// This documentation mainly provides information specific to PortAudioCpp. For a more complete explanation of all of the
|
||||
/// concepts used, please consult the PortAudio documentation.
|
||||
/// </p>
|
||||
/// <p>
|
||||
/// PortAudioCpp was developed by Merlijn Blaauw with many great suggestions and help from Ross Bencina. Ludwig Schwardt provided
|
||||
/// GNU/Linux build files and checked G++ compatibility. PortAudioCpp may be used under the same licensing, conditions and
|
||||
/// PortAudioCpp was developed by Merlijn Blaauw with many great suggestions and help from Ross Bencina. Ludwig Schwardt provided
|
||||
/// GNU/Linux build files and checked G++ compatibility. PortAudioCpp may be used under the same licensing, conditions and
|
||||
/// warranty as PortAudio. See <a href="http://www.portaudio.com/license.html">the PortAudio license</a> for more details.
|
||||
/// </p>
|
||||
/// <h2>Links</h2>
|
||||
|
|
@ -69,8 +69,8 @@
|
|||
//////
|
||||
/// @namespace portaudio
|
||||
///
|
||||
/// To avoid name collision, everything in PortAudioCpp is in the portaudio
|
||||
/// namespace. If this name is too long it's usually pretty safe to use an
|
||||
/// To avoid name collision, everything in PortAudioCpp is in the portaudio
|
||||
/// namespace. If this name is too long it's usually pretty safe to use an
|
||||
/// alias like ``namespace pa = portaudio;''.
|
||||
//////
|
||||
|
||||
|
|
|
|||
|
|
@ -11,21 +11,21 @@ namespace portaudio
|
|||
{
|
||||
|
||||
|
||||
//////
|
||||
/// @brief PortAudio sample data formats.
|
||||
///
|
||||
/// Small helper enum to wrap the PortAudio defines.
|
||||
//////
|
||||
enum SampleDataFormat
|
||||
{
|
||||
INVALID_FORMAT = 0,
|
||||
FLOAT32 = paFloat32,
|
||||
INT32 = paInt32,
|
||||
INT24 = paInt24,
|
||||
INT16 = paInt16,
|
||||
INT8 = paInt8,
|
||||
UINT8 = paUInt8
|
||||
};
|
||||
//////
|
||||
/// @brief PortAudio sample data formats.
|
||||
///
|
||||
/// Small helper enum to wrap the PortAudio defines.
|
||||
//////
|
||||
enum SampleDataFormat
|
||||
{
|
||||
INVALID_FORMAT = 0,
|
||||
FLOAT32 = paFloat32,
|
||||
INT32 = paInt32,
|
||||
INT24 = paInt24,
|
||||
INT16 = paInt16,
|
||||
INT8 = paInt8,
|
||||
UINT8 = paUInt8
|
||||
};
|
||||
|
||||
|
||||
} // namespace portaudio
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// Forward declaration(s):
|
||||
namespace portaudio
|
||||
{
|
||||
class StreamParameters;
|
||||
class StreamParameters;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
@ -18,64 +18,65 @@ namespace portaudio
|
|||
{
|
||||
|
||||
|
||||
//////
|
||||
/// @brief A Stream represents an active or inactive input and/or output data
|
||||
/// stream in the System.
|
||||
///
|
||||
/// Concrete Stream classes should ensure themselves being in a closed state at
|
||||
/// destruction (i.e. by calling their own close() method in their deconstructor).
|
||||
/// Following good C++ programming practices, care must be taken to ensure no
|
||||
/// exceptions are thrown by the deconstructor of these classes. As a consequence,
|
||||
/// clients need to explicitly call close() to ensure the stream closed successfully.
|
||||
///
|
||||
/// The Stream object can be used to manipulate the Stream's state. Also, time-constant
|
||||
/// and time-varying information about the Stream can be retrieved.
|
||||
//////
|
||||
class Stream
|
||||
{
|
||||
public:
|
||||
// Opening/closing:
|
||||
virtual ~Stream();
|
||||
//////
|
||||
/// @brief A Stream represents an active or inactive input and/or output data
|
||||
/// stream in the System.
|
||||
///
|
||||
/// Concrete Stream classes should ensure themselves being in a closed state at
|
||||
/// destruction (i.e. by calling their own close() method in their deconstructor).
|
||||
/// Following good C++ programming practices, care must be taken to ensure no
|
||||
/// exceptions are thrown by the deconstructor of these classes. As a consequence,
|
||||
/// clients need to explicitly call close() to ensure the stream closed successfully.
|
||||
///
|
||||
/// The Stream object can be used to manipulate the Stream's state. Also, time-constant
|
||||
/// and time-varying information about the Stream can be retrieved.
|
||||
//////
|
||||
class Stream
|
||||
{
|
||||
public:
|
||||
// Opening/closing:
|
||||
virtual ~Stream();
|
||||
|
||||
virtual void close();
|
||||
bool isOpen() const;
|
||||
virtual void close();
|
||||
bool isOpen() const;
|
||||
|
||||
// Additional set up:
|
||||
void setStreamFinishedCallback(PaStreamFinishedCallback *callback);
|
||||
// Additional set up:
|
||||
void setStreamFinishedCallback(PaStreamFinishedCallback *callback);
|
||||
|
||||
// State management:
|
||||
void start();
|
||||
void stop();
|
||||
void abort();
|
||||
// State management:
|
||||
void start();
|
||||
void stop();
|
||||
void abort();
|
||||
|
||||
bool isStopped() const;
|
||||
bool isActive() const;
|
||||
bool isStopped() const;
|
||||
bool isActive() const;
|
||||
|
||||
// Stream info (time-constant, but might become time-variant soon):
|
||||
PaTime inputLatency() const;
|
||||
PaTime outputLatency() const;
|
||||
double sampleRate() const;
|
||||
// Stream info (time-constant, but might become time-variant soon):
|
||||
PaTime inputLatency() const;
|
||||
PaTime outputLatency() const;
|
||||
double sampleRate() const;
|
||||
|
||||
// Stream info (time-varying):
|
||||
PaTime time() const;
|
||||
// Stream info (time-varying):
|
||||
PaTime time() const;
|
||||
|
||||
// Accessors for PortAudio PaStream, useful for interfacing
|
||||
// with PortAudio add-ons (such as PortMixer) for instance:
|
||||
const PaStream *paStream() const;
|
||||
PaStream *paStream();
|
||||
// Accessors for PortAudio PaStream, useful for interfacing
|
||||
// with PortAudio add-ons (such as PortMixer) for instance:
|
||||
const PaStream *paStream() const;
|
||||
PaStream *paStream();
|
||||
|
||||
protected:
|
||||
Stream(); // abstract class
|
||||
protected:
|
||||
Stream(); // abstract class
|
||||
|
||||
PaStream *stream_;
|
||||
PaStream *stream_;
|
||||
|
||||
private:
|
||||
Stream(const Stream &); // non-copyable
|
||||
Stream &operator=(const Stream &); // non-copyable
|
||||
};
|
||||
private:
|
||||
Stream(const Stream &); // non-copyable
|
||||
Stream &operator=(const Stream &); // non-copyable
|
||||
};
|
||||
|
||||
|
||||
} // namespace portaudio
|
||||
|
||||
|
||||
#endif // INCLUDED_PORTAUDIO_STREAM_HXX
|
||||
|
||||
|
|
|
|||
|
|
@ -13,61 +13,61 @@
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
//////
|
||||
/// @brief The entire set of parameters needed to configure and open
|
||||
/// a Stream.
|
||||
///
|
||||
/// It contains parameters of input, output and shared parameters.
|
||||
/// Using the isSupported() method, the StreamParameters can be
|
||||
/// checked if opening a Stream using this StreamParameters would
|
||||
/// succeed or not. Accessors are provided to higher-level parameters
|
||||
/// aswell as the lower-level parameters which are mainly intended for
|
||||
/// internal use.
|
||||
//////
|
||||
class StreamParameters
|
||||
{
|
||||
public:
|
||||
StreamParameters();
|
||||
StreamParameters(const DirectionSpecificStreamParameters &inputParameters,
|
||||
const DirectionSpecificStreamParameters &outputParameters, double sampleRate,
|
||||
unsigned long framesPerBuffer, PaStreamFlags flags);
|
||||
//////
|
||||
/// @brief The entire set of parameters needed to configure and open
|
||||
/// a Stream.
|
||||
///
|
||||
/// It contains parameters of input, output and shared parameters.
|
||||
/// Using the isSupported() method, the StreamParameters can be
|
||||
/// checked if opening a Stream using this StreamParameters would
|
||||
/// succeed or not. Accessors are provided to higher-level parameters
|
||||
/// aswell as the lower-level parameters which are mainly intended for
|
||||
/// internal use.
|
||||
//////
|
||||
class StreamParameters
|
||||
{
|
||||
public:
|
||||
StreamParameters();
|
||||
StreamParameters(const DirectionSpecificStreamParameters &inputParameters,
|
||||
const DirectionSpecificStreamParameters &outputParameters, double sampleRate,
|
||||
unsigned long framesPerBuffer, PaStreamFlags flags);
|
||||
|
||||
// Set up for direction-specific:
|
||||
void setInputParameters(const DirectionSpecificStreamParameters ¶meters);
|
||||
void setOutputParameters(const DirectionSpecificStreamParameters ¶meters);
|
||||
// Set up for direction-specific:
|
||||
void setInputParameters(const DirectionSpecificStreamParameters ¶meters);
|
||||
void setOutputParameters(const DirectionSpecificStreamParameters ¶meters);
|
||||
|
||||
// Set up for common parameters:
|
||||
void setSampleRate(double sampleRate);
|
||||
void setFramesPerBuffer(unsigned long framesPerBuffer);
|
||||
void setFlag(PaStreamFlags flag);
|
||||
void unsetFlag(PaStreamFlags flag);
|
||||
void clearFlags();
|
||||
// Set up for common parameters:
|
||||
void setSampleRate(double sampleRate);
|
||||
void setFramesPerBuffer(unsigned long framesPerBuffer);
|
||||
void setFlag(PaStreamFlags flag);
|
||||
void unsetFlag(PaStreamFlags flag);
|
||||
void clearFlags();
|
||||
|
||||
// Validation:
|
||||
bool isSupported() const;
|
||||
// Validation:
|
||||
bool isSupported() const;
|
||||
|
||||
// Accessors (direction-specific):
|
||||
DirectionSpecificStreamParameters &inputParameters();
|
||||
const DirectionSpecificStreamParameters &inputParameters() const;
|
||||
DirectionSpecificStreamParameters &outputParameters();
|
||||
const DirectionSpecificStreamParameters &outputParameters() const;
|
||||
// Accessors (direction-specific):
|
||||
DirectionSpecificStreamParameters &inputParameters();
|
||||
const DirectionSpecificStreamParameters &inputParameters() const;
|
||||
DirectionSpecificStreamParameters &outputParameters();
|
||||
const DirectionSpecificStreamParameters &outputParameters() const;
|
||||
|
||||
// Accessors (common):
|
||||
double sampleRate() const;
|
||||
unsigned long framesPerBuffer() const;
|
||||
PaStreamFlags flags() const;
|
||||
bool isFlagSet(PaStreamFlags flag) const;
|
||||
// Accessors (common):
|
||||
double sampleRate() const;
|
||||
unsigned long framesPerBuffer() const;
|
||||
PaStreamFlags flags() const;
|
||||
bool isFlagSet(PaStreamFlags flag) const;
|
||||
|
||||
private:
|
||||
// Half-duplex specific parameters:
|
||||
DirectionSpecificStreamParameters inputParameters_;
|
||||
DirectionSpecificStreamParameters outputParameters_;
|
||||
private:
|
||||
// Half-duplex specific parameters:
|
||||
DirectionSpecificStreamParameters inputParameters_;
|
||||
DirectionSpecificStreamParameters outputParameters_;
|
||||
|
||||
// Common parameters:
|
||||
double sampleRate_;
|
||||
unsigned long framesPerBuffer_;
|
||||
PaStreamFlags flags_;
|
||||
};
|
||||
// Common parameters:
|
||||
double sampleRate_;
|
||||
unsigned long framesPerBuffer_;
|
||||
PaStreamFlags flags_;
|
||||
};
|
||||
|
||||
|
||||
} // namespace portaudio
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@
|
|||
// Forward declaration(s):
|
||||
namespace portaudio
|
||||
{
|
||||
class Device;
|
||||
class Stream;
|
||||
class HostApi;
|
||||
class Device;
|
||||
class Stream;
|
||||
class HostApi;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
@ -22,85 +22,86 @@ namespace portaudio
|
|||
{
|
||||
|
||||
|
||||
//////
|
||||
/// @brief System singleton which represents the PortAudio system.
|
||||
///
|
||||
/// The System is used to initialize/terminate PortAudio and provide
|
||||
/// a single access point to the PortAudio System (instance()).
|
||||
/// It can be used to iterate through all HostApi 's in the System as
|
||||
/// well as all devices in the System. It also provides some utility
|
||||
/// functionality of PortAudio.
|
||||
///
|
||||
/// Terminating the System will also abort and close the open streams.
|
||||
/// The Stream objects will need to be deallocated by the client though
|
||||
/// (it's usually a good idea to have them cleaned up automatically).
|
||||
//////
|
||||
class System
|
||||
{
|
||||
public:
|
||||
class HostApiIterator; // forward declaration
|
||||
class DeviceIterator; // forward declaration
|
||||
//////
|
||||
/// @brief System singleton which represents the PortAudio system.
|
||||
///
|
||||
/// The System is used to initialize/terminate PortAudio and provide
|
||||
/// a single access point to the PortAudio System (instance()).
|
||||
/// It can be used to iterate through all HostApi 's in the System as
|
||||
/// well as all devices in the System. It also provides some utility
|
||||
/// functionality of PortAudio.
|
||||
///
|
||||
/// Terminating the System will also abort and close the open streams.
|
||||
/// The Stream objects will need to be deallocated by the client though
|
||||
/// (it's usually a good idea to have them cleaned up automatically).
|
||||
//////
|
||||
class System
|
||||
{
|
||||
public:
|
||||
class HostApiIterator; // forward declaration
|
||||
class DeviceIterator; // forward declaration
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
static int version();
|
||||
static const char *versionText();
|
||||
static int version();
|
||||
static const char *versionText();
|
||||
|
||||
static void initialize();
|
||||
static void terminate();
|
||||
static void initialize();
|
||||
static void terminate();
|
||||
|
||||
static System &instance();
|
||||
static bool exists();
|
||||
static System &instance();
|
||||
static bool exists();
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
// host apis:
|
||||
HostApiIterator hostApisBegin();
|
||||
HostApiIterator hostApisEnd();
|
||||
// host apis:
|
||||
HostApiIterator hostApisBegin();
|
||||
HostApiIterator hostApisEnd();
|
||||
|
||||
HostApi &defaultHostApi();
|
||||
HostApi &defaultHostApi();
|
||||
|
||||
HostApi &hostApiByTypeId(PaHostApiTypeId type);
|
||||
HostApi &hostApiByIndex(PaHostApiIndex index);
|
||||
HostApi &hostApiByTypeId(PaHostApiTypeId type);
|
||||
HostApi &hostApiByIndex(PaHostApiIndex index);
|
||||
|
||||
int hostApiCount();
|
||||
int hostApiCount();
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
// devices:
|
||||
DeviceIterator devicesBegin();
|
||||
DeviceIterator devicesEnd();
|
||||
// devices:
|
||||
DeviceIterator devicesBegin();
|
||||
DeviceIterator devicesEnd();
|
||||
|
||||
Device &defaultInputDevice();
|
||||
Device &defaultOutputDevice();
|
||||
Device &defaultInputDevice();
|
||||
Device &defaultOutputDevice();
|
||||
|
||||
Device &deviceByIndex(PaDeviceIndex index);
|
||||
Device &deviceByIndex(PaDeviceIndex index);
|
||||
|
||||
int deviceCount();
|
||||
int deviceCount();
|
||||
|
||||
static Device &nullDevice();
|
||||
static Device &nullDevice();
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
// misc:
|
||||
void sleep(long msec);
|
||||
int sizeOfSample(PaSampleFormat format);
|
||||
// misc:
|
||||
void sleep(long msec);
|
||||
int sizeOfSample(PaSampleFormat format);
|
||||
|
||||
private:
|
||||
System();
|
||||
~System();
|
||||
private:
|
||||
System();
|
||||
~System();
|
||||
|
||||
static System *instance_;
|
||||
static int initCount_;
|
||||
static System *instance_;
|
||||
static int initCount_;
|
||||
|
||||
static HostApi **hostApis_;
|
||||
static Device **devices_;
|
||||
static HostApi **hostApis_;
|
||||
static Device **devices_;
|
||||
|
||||
static Device *nullDevice_;
|
||||
};
|
||||
static Device *nullDevice_;
|
||||
};
|
||||
|
||||
|
||||
} // namespace portaudio
|
||||
|
||||
|
||||
#endif // INCLUDED_PORTAUDIO_SYSTEM_HXX
|
||||
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@
|
|||
// Forward declaration(s):
|
||||
namespace portaudio
|
||||
{
|
||||
class Device;
|
||||
class HostApi;
|
||||
class Device;
|
||||
class HostApi;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
@ -23,39 +23,39 @@ namespace portaudio
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
|
||||
//////
|
||||
/// @brief Iterator class for iterating through all Devices in a System.
|
||||
///
|
||||
/// Devices will be iterated by iterating all Devices in each
|
||||
/// HostApi in the System. Compliant with the STL bidirectional
|
||||
/// iterator concept.
|
||||
//////
|
||||
class System::DeviceIterator
|
||||
{
|
||||
public:
|
||||
typedef std::bidirectional_iterator_tag iterator_category;
|
||||
typedef Device value_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef Device * pointer;
|
||||
typedef Device & reference;
|
||||
|
||||
//////
|
||||
/// @brief Iterator class for iterating through all Devices in a System.
|
||||
///
|
||||
/// Devices will be iterated by iterating all Devices in each
|
||||
/// HostApi in the System. Compliant with the STL bidirectional
|
||||
/// iterator concept.
|
||||
//////
|
||||
class System::DeviceIterator
|
||||
{
|
||||
public:
|
||||
typedef std::bidirectional_iterator_tag iterator_category;
|
||||
typedef Device value_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef Device * pointer;
|
||||
typedef Device & reference;
|
||||
Device &operator*() const;
|
||||
Device *operator->() const;
|
||||
|
||||
Device &operator*() const;
|
||||
Device *operator->() const;
|
||||
DeviceIterator &operator++();
|
||||
DeviceIterator operator++(int);
|
||||
DeviceIterator &operator--();
|
||||
DeviceIterator operator--(int);
|
||||
|
||||
DeviceIterator &operator++();
|
||||
DeviceIterator operator++(int);
|
||||
DeviceIterator &operator--();
|
||||
DeviceIterator operator--(int);
|
||||
bool operator==(const DeviceIterator &rhs) const;
|
||||
bool operator!=(const DeviceIterator &rhs) const;
|
||||
|
||||
bool operator==(const DeviceIterator &rhs) const;
|
||||
bool operator!=(const DeviceIterator &rhs) const;
|
||||
|
||||
private:
|
||||
friend class System;
|
||||
friend class HostApi;
|
||||
Device **ptr_;
|
||||
};
|
||||
private:
|
||||
friend class System;
|
||||
friend class HostApi;
|
||||
Device **ptr_;
|
||||
};
|
||||
|
||||
|
||||
} // namespace portaudio
|
||||
|
|
@ -63,3 +63,4 @@ namespace portaudio
|
|||
// ---------------------------------------------------------------------------------------
|
||||
|
||||
#endif // INCLUDED_PORTAUDIO_SYSTEMDEVICEITERATOR_HXX
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
// Forward declaration(s):
|
||||
namespace portaudio
|
||||
{
|
||||
class HostApi;
|
||||
class HostApi;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------------
|
||||
|
|
@ -23,35 +23,35 @@ namespace portaudio
|
|||
{
|
||||
|
||||
|
||||
//////
|
||||
/// @brief Iterator class for iterating through all HostApis in a System.
|
||||
///
|
||||
/// Compliant with the STL bidirectional iterator concept.
|
||||
//////
|
||||
class System::HostApiIterator
|
||||
{
|
||||
public:
|
||||
typedef std::bidirectional_iterator_tag iterator_category;
|
||||
typedef Device value_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef HostApi * pointer;
|
||||
typedef HostApi & reference;
|
||||
//////
|
||||
/// @brief Iterator class for iterating through all HostApis in a System.
|
||||
///
|
||||
/// Compliant with the STL bidirectional iterator concept.
|
||||
//////
|
||||
class System::HostApiIterator
|
||||
{
|
||||
public:
|
||||
typedef std::bidirectional_iterator_tag iterator_category;
|
||||
typedef Device value_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef HostApi * pointer;
|
||||
typedef HostApi & reference;
|
||||
|
||||
HostApi &operator*() const;
|
||||
HostApi *operator->() const;
|
||||
HostApi &operator*() const;
|
||||
HostApi *operator->() const;
|
||||
|
||||
HostApiIterator &operator++();
|
||||
HostApiIterator operator++(int);
|
||||
HostApiIterator &operator--();
|
||||
HostApiIterator operator--(int);
|
||||
HostApiIterator &operator++();
|
||||
HostApiIterator operator++(int);
|
||||
HostApiIterator &operator--();
|
||||
HostApiIterator operator--(int);
|
||||
|
||||
bool operator==(const HostApiIterator &rhs) const;
|
||||
bool operator!=(const HostApiIterator &rhs) const;
|
||||
bool operator==(const HostApiIterator &rhs) const;
|
||||
bool operator!=(const HostApiIterator &rhs) const;
|
||||
|
||||
private:
|
||||
friend class System;
|
||||
HostApi **ptr_;
|
||||
};
|
||||
private:
|
||||
friend class System;
|
||||
HostApi **ptr_;
|
||||
};
|
||||
|
||||
|
||||
} // namespace portaudio
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,7 +1,7 @@
|
|||
# Makefile.in generated by automake 1.16.5 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.14.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
|
|
@ -15,17 +15,7 @@
|
|||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
|
|
@ -89,11 +79,12 @@ POST_UNINSTALL = :
|
|||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = lib
|
||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||
$(top_srcdir)/../../depcomp
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
|
|
@ -156,20 +147,8 @@ AM_V_at = $(am__v_at_@AM_V@)
|
|||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/BlockingStream.Plo \
|
||||
./$(DEPDIR)/CFunCallbackStream.Plo \
|
||||
./$(DEPDIR)/CallbackInterface.Plo \
|
||||
./$(DEPDIR)/CallbackStream.Plo \
|
||||
./$(DEPDIR)/CppFunCallbackStream.Plo ./$(DEPDIR)/Device.Plo \
|
||||
./$(DEPDIR)/DirectionSpecificStreamParameters.Plo \
|
||||
./$(DEPDIR)/Exception.Plo ./$(DEPDIR)/HostApi.Plo \
|
||||
./$(DEPDIR)/InterfaceCallbackStream.Plo \
|
||||
./$(DEPDIR)/MemFunCallbackStream.Plo ./$(DEPDIR)/Stream.Plo \
|
||||
./$(DEPDIR)/StreamParameters.Plo ./$(DEPDIR)/System.Plo \
|
||||
./$(DEPDIR)/SystemDeviceIterator.Plo \
|
||||
./$(DEPDIR)/SystemHostApiIterator.Plo
|
||||
depcomp = $(SHELL) $(top_srcdir)/../../depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
|
|
@ -213,7 +192,8 @@ am__define_uniq_tagged_files = \
|
|||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
|
|
@ -227,9 +207,8 @@ AWK = @AWK@
|
|||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
|
|
@ -245,7 +224,6 @@ ECHO_C = @ECHO_C@
|
|||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
|
|
@ -262,7 +240,6 @@ LIBTOOL = @LIBTOOL@
|
|||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
|
||||
LT_VERSION_INFO = @LT_VERSION_INFO@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
|
|
@ -334,7 +311,6 @@ pdfdir = @pdfdir@
|
|||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
|
|
@ -382,13 +358,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
|
|||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu lib/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
|
|
@ -444,28 +421,22 @@ mostlyclean-compile:
|
|||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BlockingStream.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CFunCallbackStream.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CallbackInterface.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CallbackStream.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CppFunCallbackStream.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Device.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DirectionSpecificStreamParameters.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Exception.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HostApi.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InterfaceCallbackStream.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MemFunCallbackStream.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Stream.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StreamParameters.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/System.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SystemDeviceIterator.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SystemHostApiIterator.Plo@am__quote@ # am--include-marker
|
||||
|
||||
$(am__depfiles_remade):
|
||||
@$(MKDIR_P) $(@D)
|
||||
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
|
||||
|
||||
am--depfiles: $(am__depfiles_remade)
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BlockingStream.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CFunCallbackStream.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CallbackInterface.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CallbackStream.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CppFunCallbackStream.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Device.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DirectionSpecificStreamParameters.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Exception.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HostApi.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InterfaceCallbackStream.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MemFunCallbackStream.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Stream.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StreamParameters.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/System.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SystemDeviceIterator.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SystemHostApiIterator.Plo@am__quote@
|
||||
|
||||
.cxx.o:
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
|
|
@ -657,10 +628,8 @@ cscopelist-am: $(am__tagged_files)
|
|||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
|
|
@ -733,22 +702,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
|||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f ./$(DEPDIR)/BlockingStream.Plo
|
||||
-rm -f ./$(DEPDIR)/CFunCallbackStream.Plo
|
||||
-rm -f ./$(DEPDIR)/CallbackInterface.Plo
|
||||
-rm -f ./$(DEPDIR)/CallbackStream.Plo
|
||||
-rm -f ./$(DEPDIR)/CppFunCallbackStream.Plo
|
||||
-rm -f ./$(DEPDIR)/Device.Plo
|
||||
-rm -f ./$(DEPDIR)/DirectionSpecificStreamParameters.Plo
|
||||
-rm -f ./$(DEPDIR)/Exception.Plo
|
||||
-rm -f ./$(DEPDIR)/HostApi.Plo
|
||||
-rm -f ./$(DEPDIR)/InterfaceCallbackStream.Plo
|
||||
-rm -f ./$(DEPDIR)/MemFunCallbackStream.Plo
|
||||
-rm -f ./$(DEPDIR)/Stream.Plo
|
||||
-rm -f ./$(DEPDIR)/StreamParameters.Plo
|
||||
-rm -f ./$(DEPDIR)/System.Plo
|
||||
-rm -f ./$(DEPDIR)/SystemDeviceIterator.Plo
|
||||
-rm -f ./$(DEPDIR)/SystemHostApiIterator.Plo
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
|
@ -794,22 +748,7 @@ install-ps-am:
|
|||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f ./$(DEPDIR)/BlockingStream.Plo
|
||||
-rm -f ./$(DEPDIR)/CFunCallbackStream.Plo
|
||||
-rm -f ./$(DEPDIR)/CallbackInterface.Plo
|
||||
-rm -f ./$(DEPDIR)/CallbackStream.Plo
|
||||
-rm -f ./$(DEPDIR)/CppFunCallbackStream.Plo
|
||||
-rm -f ./$(DEPDIR)/Device.Plo
|
||||
-rm -f ./$(DEPDIR)/DirectionSpecificStreamParameters.Plo
|
||||
-rm -f ./$(DEPDIR)/Exception.Plo
|
||||
-rm -f ./$(DEPDIR)/HostApi.Plo
|
||||
-rm -f ./$(DEPDIR)/InterfaceCallbackStream.Plo
|
||||
-rm -f ./$(DEPDIR)/MemFunCallbackStream.Plo
|
||||
-rm -f ./$(DEPDIR)/Stream.Plo
|
||||
-rm -f ./$(DEPDIR)/StreamParameters.Plo
|
||||
-rm -f ./$(DEPDIR)/System.Plo
|
||||
-rm -f ./$(DEPDIR)/SystemDeviceIterator.Plo
|
||||
-rm -f ./$(DEPDIR)/SystemHostApiIterator.Plo
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
|
|
@ -830,9 +769,9 @@ uninstall-am: uninstall-libLTLIBRARIES
|
|||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
|
||||
clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \
|
||||
ctags ctags-am distclean distclean-compile distclean-generic \
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
|
||||
clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
|
||||
ctags-am distclean distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
|
|
@ -844,8 +783,6 @@ uninstall-am: uninstall-libLTLIBRARIES
|
|||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
|
|
|
|||
11147
bindings/cpp/ltmain.sh
11147
bindings/cpp/ltmain.sh
File diff suppressed because it is too large
Load diff
|
|
@ -9,73 +9,75 @@
|
|||
|
||||
namespace portaudio
|
||||
{
|
||||
AsioDeviceAdapter::AsioDeviceAdapter(Device &device)
|
||||
{
|
||||
if (device.hostApi().typeId() != paASIO)
|
||||
throw PaCppException(PaCppException::UNABLE_TO_ADAPT_DEVICE);
|
||||
AsioDeviceAdapter::AsioDeviceAdapter(Device &device)
|
||||
{
|
||||
if (device.hostApi().typeId() != paASIO)
|
||||
throw PaCppException(PaCppException::UNABLE_TO_ADAPT_DEVICE);
|
||||
|
||||
device_ = &device;
|
||||
device_ = &device;
|
||||
|
||||
PaError err = PaAsio_GetAvailableLatencyValues(device_->index(), &minBufferSize_, &maxBufferSize_,
|
||||
&preferredBufferSize_, &granularity_);
|
||||
PaError err = PaAsio_GetAvailableLatencyValues(device_->index(), &minBufferSize_, &maxBufferSize_,
|
||||
&preferredBufferSize_, &granularity_);
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Device &AsioDeviceAdapter::device()
|
||||
{
|
||||
return *device_;
|
||||
}
|
||||
Device &AsioDeviceAdapter::device()
|
||||
{
|
||||
return *device_;
|
||||
}
|
||||
|
||||
long AsioDeviceAdapter::minBufferSize() const
|
||||
{
|
||||
return minBufferSize_;
|
||||
}
|
||||
long AsioDeviceAdapter::minBufferSize() const
|
||||
{
|
||||
return minBufferSize_;
|
||||
}
|
||||
|
||||
long AsioDeviceAdapter::maxBufferSize() const
|
||||
{
|
||||
return maxBufferSize_;
|
||||
}
|
||||
long AsioDeviceAdapter::maxBufferSize() const
|
||||
{
|
||||
return maxBufferSize_;
|
||||
}
|
||||
|
||||
long AsioDeviceAdapter::preferredBufferSize() const
|
||||
{
|
||||
return preferredBufferSize_;
|
||||
}
|
||||
long AsioDeviceAdapter::preferredBufferSize() const
|
||||
{
|
||||
return preferredBufferSize_;
|
||||
}
|
||||
|
||||
long AsioDeviceAdapter::granularity() const
|
||||
{
|
||||
return granularity_;
|
||||
}
|
||||
long AsioDeviceAdapter::granularity() const
|
||||
{
|
||||
return granularity_;
|
||||
}
|
||||
|
||||
void AsioDeviceAdapter::showControlPanel(void *systemSpecific)
|
||||
{
|
||||
PaError err = PaAsio_ShowControlPanel(device_->index(), systemSpecific);
|
||||
void AsioDeviceAdapter::showControlPanel(void *systemSpecific)
|
||||
{
|
||||
PaError err = PaAsio_ShowControlPanel(device_->index(), systemSpecific);
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
|
||||
const char *AsioDeviceAdapter::inputChannelName(int channelIndex) const
|
||||
{
|
||||
const char *channelName;
|
||||
PaError err = PaAsio_GetInputChannelName(device_->index(), channelIndex, &channelName);
|
||||
const char *AsioDeviceAdapter::inputChannelName(int channelIndex) const
|
||||
{
|
||||
const char *channelName;
|
||||
PaError err = PaAsio_GetInputChannelName(device_->index(), channelIndex, &channelName);
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
|
||||
return channelName;
|
||||
}
|
||||
return channelName;
|
||||
}
|
||||
|
||||
const char *AsioDeviceAdapter::outputChannelName(int channelIndex) const
|
||||
{
|
||||
const char *channelName;
|
||||
PaError err = PaAsio_GetOutputChannelName(device_->index(), channelIndex, &channelName);
|
||||
const char *AsioDeviceAdapter::outputChannelName(int channelIndex) const
|
||||
{
|
||||
const char *channelName;
|
||||
PaError err = PaAsio_GetOutputChannelName(device_->index(), channelIndex, &channelName);
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
|
||||
return channelName;
|
||||
}
|
||||
return channelName;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -8,90 +8,93 @@
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
// --------------------------------------------------------------------------------------
|
||||
// --------------------------------------------------------------------------------------
|
||||
|
||||
BlockingStream::BlockingStream()
|
||||
{
|
||||
}
|
||||
BlockingStream::BlockingStream()
|
||||
{
|
||||
}
|
||||
|
||||
BlockingStream::BlockingStream(const StreamParameters ¶meters)
|
||||
{
|
||||
open(parameters);
|
||||
}
|
||||
BlockingStream::BlockingStream(const StreamParameters ¶meters)
|
||||
{
|
||||
open(parameters);
|
||||
}
|
||||
|
||||
BlockingStream::~BlockingStream()
|
||||
{
|
||||
try
|
||||
{
|
||||
close();
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// ignore all errors
|
||||
}
|
||||
}
|
||||
BlockingStream::~BlockingStream()
|
||||
{
|
||||
try
|
||||
{
|
||||
close();
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// ignore all errors
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------
|
||||
// --------------------------------------------------------------------------------------
|
||||
|
||||
void BlockingStream::open(const StreamParameters ¶meters)
|
||||
{
|
||||
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
|
||||
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), NULL, NULL);
|
||||
void BlockingStream::open(const StreamParameters ¶meters)
|
||||
{
|
||||
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
|
||||
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), NULL, NULL);
|
||||
|
||||
if (err != paNoError)
|
||||
{
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
if (err != paNoError)
|
||||
{
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------
|
||||
// --------------------------------------------------------------------------------------
|
||||
|
||||
void BlockingStream::read(void *buffer, unsigned long numFrames)
|
||||
{
|
||||
PaError err = Pa_ReadStream(stream_, buffer, numFrames);
|
||||
void BlockingStream::read(void *buffer, unsigned long numFrames)
|
||||
{
|
||||
PaError err = Pa_ReadStream(stream_, buffer, numFrames);
|
||||
|
||||
if (err != paNoError)
|
||||
{
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
if (err != paNoError)
|
||||
{
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
|
||||
void BlockingStream::write(const void *buffer, unsigned long numFrames)
|
||||
{
|
||||
PaError err = Pa_WriteStream(stream_, buffer, numFrames);
|
||||
void BlockingStream::write(const void *buffer, unsigned long numFrames)
|
||||
{
|
||||
PaError err = Pa_WriteStream(stream_, buffer, numFrames);
|
||||
|
||||
if (err != paNoError)
|
||||
{
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
if (err != paNoError)
|
||||
{
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------
|
||||
// --------------------------------------------------------------------------------------
|
||||
|
||||
signed long BlockingStream::availableReadSize() const
|
||||
{
|
||||
signed long avail = Pa_GetStreamReadAvailable(stream_);
|
||||
signed long BlockingStream::availableReadSize() const
|
||||
{
|
||||
signed long avail = Pa_GetStreamReadAvailable(stream_);
|
||||
|
||||
if (avail < 0)
|
||||
{
|
||||
throw PaException(avail);
|
||||
}
|
||||
if (avail < 0)
|
||||
{
|
||||
throw PaException(avail);
|
||||
}
|
||||
|
||||
return avail;
|
||||
}
|
||||
return avail;
|
||||
}
|
||||
|
||||
signed long BlockingStream::availableWriteSize() const
|
||||
{
|
||||
signed long avail = Pa_GetStreamWriteAvailable(stream_);
|
||||
signed long BlockingStream::availableWriteSize() const
|
||||
{
|
||||
signed long avail = Pa_GetStreamWriteAvailable(stream_);
|
||||
|
||||
if (avail < 0)
|
||||
{
|
||||
throw PaException(avail);
|
||||
}
|
||||
if (avail < 0)
|
||||
{
|
||||
throw PaException(avail);
|
||||
}
|
||||
|
||||
return avail;
|
||||
}
|
||||
return avail;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------
|
||||
// --------------------------------------------------------------------------------------
|
||||
|
||||
} // portaudio
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,37 +5,37 @@
|
|||
|
||||
namespace portaudio
|
||||
{
|
||||
CFunCallbackStream::CFunCallbackStream()
|
||||
{
|
||||
}
|
||||
CFunCallbackStream::CFunCallbackStream()
|
||||
{
|
||||
}
|
||||
|
||||
CFunCallbackStream::CFunCallbackStream(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData)
|
||||
{
|
||||
open(parameters, funPtr, userData);
|
||||
}
|
||||
CFunCallbackStream::CFunCallbackStream(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData)
|
||||
{
|
||||
open(parameters, funPtr, userData);
|
||||
}
|
||||
|
||||
CFunCallbackStream::~CFunCallbackStream()
|
||||
{
|
||||
try
|
||||
{
|
||||
close();
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// ignore all errors
|
||||
}
|
||||
}
|
||||
CFunCallbackStream::~CFunCallbackStream()
|
||||
{
|
||||
try
|
||||
{
|
||||
close();
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// ignore all errors
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------==
|
||||
// ---------------------------------------------------------------------------------==
|
||||
|
||||
void CFunCallbackStream::open(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData)
|
||||
{
|
||||
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
|
||||
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), funPtr, userData);
|
||||
void CFunCallbackStream::open(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData)
|
||||
{
|
||||
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
|
||||
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), funPtr, userData);
|
||||
|
||||
if (err != paNoError)
|
||||
{
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
if (err != paNoError)
|
||||
{
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,21 +3,23 @@
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
namespace impl
|
||||
{
|
||||
namespace impl
|
||||
{
|
||||
|
||||
//////
|
||||
/// Adapts any CallbackInterface object to a C-callable function (ie this function). A
|
||||
/// pointer to the object should be passed as ``userData'' when setting up the callback.
|
||||
//////
|
||||
int callbackInterfaceToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData)
|
||||
{
|
||||
CallbackInterface *cb = static_cast<CallbackInterface *>(userData);
|
||||
return cb->paCallbackFun(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags);
|
||||
}
|
||||
//////
|
||||
/// Adapts any CallbackInterface object to a C-callable function (ie this function). A
|
||||
/// pointer to the object should be passed as ``userData'' when setting up the callback.
|
||||
//////
|
||||
int callbackInterfaceToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData)
|
||||
{
|
||||
CallbackInterface *cb = static_cast<CallbackInterface *>(userData);
|
||||
return cb->paCallbackFun(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags);
|
||||
}
|
||||
|
||||
|
||||
} // namespace impl
|
||||
} // namespace impl
|
||||
|
||||
} // namespace portaudio
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,19 +2,19 @@
|
|||
|
||||
namespace portaudio
|
||||
{
|
||||
CallbackStream::CallbackStream()
|
||||
{
|
||||
}
|
||||
CallbackStream::CallbackStream()
|
||||
{
|
||||
}
|
||||
|
||||
CallbackStream::~CallbackStream()
|
||||
{
|
||||
}
|
||||
CallbackStream::~CallbackStream()
|
||||
{
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
double CallbackStream::cpuLoad() const
|
||||
{
|
||||
return Pa_GetStreamCpuLoad(stream_);
|
||||
}
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
double CallbackStream::cpuLoad() const
|
||||
{
|
||||
return Pa_GetStreamCpuLoad(stream_);
|
||||
}
|
||||
|
||||
} // namespace portaudio
|
||||
|
|
|
|||
|
|
@ -5,77 +5,77 @@
|
|||
|
||||
namespace portaudio
|
||||
{
|
||||
namespace impl
|
||||
{
|
||||
//////
|
||||
/// Adapts any a C++ callback to a C-callable function (ie this function). A
|
||||
/// pointer to a struct with the C++ function pointer and the actual user data should be
|
||||
/// passed as the ``userData'' parameter when setting up the callback.
|
||||
//////
|
||||
int cppCallbackToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData)
|
||||
{
|
||||
FunCallbackStream::CppToCCallbackData *data = static_cast<FunCallbackStream::CppToCCallbackData *>(userData);
|
||||
return data->funPtr(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags, data->userData);
|
||||
}
|
||||
}
|
||||
namespace impl
|
||||
{
|
||||
//////
|
||||
/// Adapts any a C++ callback to a C-callable function (ie this function). A
|
||||
/// pointer to a struct with the C++ function pointer and the actual user data should be
|
||||
/// passed as the ``userData'' parameter when setting up the callback.
|
||||
//////
|
||||
int cppCallbackToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
|
||||
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData)
|
||||
{
|
||||
FunCallbackStream::CppToCCallbackData *data = static_cast<FunCallbackStream::CppToCCallbackData *>(userData);
|
||||
return data->funPtr(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags, data->userData);
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
FunCallbackStream::CppToCCallbackData::CppToCCallbackData()
|
||||
{
|
||||
}
|
||||
FunCallbackStream::CppToCCallbackData::CppToCCallbackData()
|
||||
{
|
||||
}
|
||||
|
||||
FunCallbackStream::CppToCCallbackData::CppToCCallbackData(CallbackFunPtr funPtr, void *userData) : funPtr(funPtr), userData(userData)
|
||||
{
|
||||
}
|
||||
FunCallbackStream::CppToCCallbackData::CppToCCallbackData(CallbackFunPtr funPtr, void *userData) : funPtr(funPtr), userData(userData)
|
||||
{
|
||||
}
|
||||
|
||||
void FunCallbackStream::CppToCCallbackData::init(CallbackFunPtr funPtr, void *userData)
|
||||
{
|
||||
this->funPtr = funPtr;
|
||||
this->userData = userData;
|
||||
}
|
||||
void FunCallbackStream::CppToCCallbackData::init(CallbackFunPtr funPtr, void *userData)
|
||||
{
|
||||
this->funPtr = funPtr;
|
||||
this->userData = userData;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
FunCallbackStream::FunCallbackStream()
|
||||
{
|
||||
}
|
||||
FunCallbackStream::FunCallbackStream()
|
||||
{
|
||||
}
|
||||
|
||||
FunCallbackStream::FunCallbackStream(const StreamParameters ¶meters, CallbackFunPtr funPtr, void *userData) : adapterData_(funPtr, userData)
|
||||
{
|
||||
open(parameters);
|
||||
}
|
||||
FunCallbackStream::FunCallbackStream(const StreamParameters ¶meters, CallbackFunPtr funPtr, void *userData) : adapterData_(funPtr, userData)
|
||||
{
|
||||
open(parameters);
|
||||
}
|
||||
|
||||
FunCallbackStream::~FunCallbackStream()
|
||||
{
|
||||
try
|
||||
{
|
||||
close();
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// ignore all errors
|
||||
}
|
||||
}
|
||||
FunCallbackStream::~FunCallbackStream()
|
||||
{
|
||||
try
|
||||
{
|
||||
close();
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// ignore all errors
|
||||
}
|
||||
}
|
||||
|
||||
void FunCallbackStream::open(const StreamParameters ¶meters, CallbackFunPtr funPtr, void *userData)
|
||||
{
|
||||
adapterData_.init(funPtr, userData);
|
||||
open(parameters);
|
||||
}
|
||||
void FunCallbackStream::open(const StreamParameters ¶meters, CallbackFunPtr funPtr, void *userData)
|
||||
{
|
||||
adapterData_.init(funPtr, userData);
|
||||
open(parameters);
|
||||
}
|
||||
|
||||
void FunCallbackStream::open(const StreamParameters ¶meters)
|
||||
{
|
||||
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
|
||||
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::cppCallbackToPaCallbackAdapter,
|
||||
static_cast<void *>(&adapterData_));
|
||||
void FunCallbackStream::open(const StreamParameters ¶meters)
|
||||
{
|
||||
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
|
||||
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::cppCallbackToPaCallbackAdapter,
|
||||
static_cast<void *>(&adapterData_));
|
||||
|
||||
if (err != paNoError)
|
||||
{
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
if (err != paNoError)
|
||||
{
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,158 +9,160 @@
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
Device::Device(PaDeviceIndex index) : index_(index)
|
||||
{
|
||||
if (index == paNoDevice)
|
||||
info_ = NULL;
|
||||
else
|
||||
info_ = Pa_GetDeviceInfo(index);
|
||||
}
|
||||
Device::Device(PaDeviceIndex index) : index_(index)
|
||||
{
|
||||
if (index == paNoDevice)
|
||||
info_ = NULL;
|
||||
else
|
||||
info_ = Pa_GetDeviceInfo(index);
|
||||
}
|
||||
|
||||
Device::~Device()
|
||||
{
|
||||
}
|
||||
Device::~Device()
|
||||
{
|
||||
}
|
||||
|
||||
PaDeviceIndex Device::index() const
|
||||
{
|
||||
return index_;
|
||||
}
|
||||
PaDeviceIndex Device::index() const
|
||||
{
|
||||
return index_;
|
||||
}
|
||||
|
||||
const char *Device::name() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return "";
|
||||
const char *Device::name() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return "";
|
||||
|
||||
return info_->name;
|
||||
}
|
||||
return info_->name;
|
||||
}
|
||||
|
||||
int Device::maxInputChannels() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return 0;
|
||||
int Device::maxInputChannels() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return 0;
|
||||
|
||||
return info_->maxInputChannels;
|
||||
}
|
||||
return info_->maxInputChannels;
|
||||
}
|
||||
|
||||
int Device::maxOutputChannels() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return 0;
|
||||
int Device::maxOutputChannels() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return 0;
|
||||
|
||||
return info_->maxOutputChannels;
|
||||
}
|
||||
return info_->maxOutputChannels;
|
||||
}
|
||||
|
||||
PaTime Device::defaultLowInputLatency() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return static_cast<PaTime>(0.0);
|
||||
PaTime Device::defaultLowInputLatency() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return static_cast<PaTime>(0.0);
|
||||
|
||||
return info_->defaultLowInputLatency;
|
||||
}
|
||||
return info_->defaultLowInputLatency;
|
||||
}
|
||||
|
||||
PaTime Device::defaultHighInputLatency() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return static_cast<PaTime>(0.0);
|
||||
PaTime Device::defaultHighInputLatency() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return static_cast<PaTime>(0.0);
|
||||
|
||||
return info_->defaultHighInputLatency;
|
||||
}
|
||||
return info_->defaultHighInputLatency;
|
||||
}
|
||||
|
||||
PaTime Device::defaultLowOutputLatency() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return static_cast<PaTime>(0.0);
|
||||
PaTime Device::defaultLowOutputLatency() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return static_cast<PaTime>(0.0);
|
||||
|
||||
return info_->defaultLowOutputLatency;
|
||||
}
|
||||
return info_->defaultLowOutputLatency;
|
||||
}
|
||||
|
||||
PaTime Device::defaultHighOutputLatency() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return static_cast<PaTime>(0.0);
|
||||
PaTime Device::defaultHighOutputLatency() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return static_cast<PaTime>(0.0);
|
||||
|
||||
return info_->defaultHighOutputLatency;
|
||||
}
|
||||
return info_->defaultHighOutputLatency;
|
||||
}
|
||||
|
||||
double Device::defaultSampleRate() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return 0.0;
|
||||
double Device::defaultSampleRate() const
|
||||
{
|
||||
if (info_ == NULL)
|
||||
return 0.0;
|
||||
|
||||
return info_->defaultSampleRate;
|
||||
}
|
||||
return info_->defaultSampleRate;
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
bool Device::isInputOnlyDevice() const
|
||||
{
|
||||
return (maxOutputChannels() == 0);
|
||||
}
|
||||
bool Device::isInputOnlyDevice() const
|
||||
{
|
||||
return (maxOutputChannels() == 0);
|
||||
}
|
||||
|
||||
bool Device::isOutputOnlyDevice() const
|
||||
{
|
||||
return (maxInputChannels() == 0);
|
||||
}
|
||||
bool Device::isOutputOnlyDevice() const
|
||||
{
|
||||
return (maxInputChannels() == 0);
|
||||
}
|
||||
|
||||
bool Device::isFullDuplexDevice() const
|
||||
{
|
||||
return (maxInputChannels() > 0 && maxOutputChannels() > 0);
|
||||
}
|
||||
bool Device::isFullDuplexDevice() const
|
||||
{
|
||||
return (maxInputChannels() > 0 && maxOutputChannels() > 0);
|
||||
}
|
||||
|
||||
bool Device::isSystemDefaultInputDevice() const
|
||||
{
|
||||
return (System::instance().defaultInputDevice() == *this);
|
||||
}
|
||||
bool Device::isSystemDefaultInputDevice() const
|
||||
{
|
||||
return (System::instance().defaultInputDevice() == *this);
|
||||
}
|
||||
|
||||
bool Device::isSystemDefaultOutputDevice() const
|
||||
{
|
||||
return (System::instance().defaultOutputDevice() == *this);
|
||||
}
|
||||
bool Device::isSystemDefaultOutputDevice() const
|
||||
{
|
||||
return (System::instance().defaultOutputDevice() == *this);
|
||||
}
|
||||
|
||||
bool Device::isHostApiDefaultInputDevice() const
|
||||
{
|
||||
return (hostApi().defaultInputDevice() == *this);
|
||||
}
|
||||
bool Device::isHostApiDefaultInputDevice() const
|
||||
{
|
||||
return (hostApi().defaultInputDevice() == *this);
|
||||
}
|
||||
|
||||
bool Device::isHostApiDefaultOutputDevice() const
|
||||
{
|
||||
return (hostApi().defaultOutputDevice() == *this);
|
||||
}
|
||||
bool Device::isHostApiDefaultOutputDevice() const
|
||||
{
|
||||
return (hostApi().defaultOutputDevice() == *this);
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
bool Device::operator==(const Device &rhs) const
|
||||
{
|
||||
return (index_ == rhs.index_);
|
||||
}
|
||||
bool Device::operator==(const Device &rhs) const
|
||||
{
|
||||
return (index_ == rhs.index_);
|
||||
}
|
||||
|
||||
bool Device::operator!=(const Device &rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
bool Device::operator!=(const Device &rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
HostApi &Device::hostApi()
|
||||
{
|
||||
// NOTE: will cause an exception when called for the null device
|
||||
if (info_ == NULL)
|
||||
throw PaException(paInternalError);
|
||||
HostApi &Device::hostApi()
|
||||
{
|
||||
// NOTE: will cause an exception when called for the null device
|
||||
if (info_ == NULL)
|
||||
throw PaException(paInternalError);
|
||||
|
||||
return System::instance().hostApiByIndex(info_->hostApi);
|
||||
}
|
||||
return System::instance().hostApiByIndex(info_->hostApi);
|
||||
}
|
||||
|
||||
const HostApi &Device::hostApi() const
|
||||
{
|
||||
// NOTE; will cause an exception when called for the null device
|
||||
if (info_ == NULL)
|
||||
throw PaException(paInternalError);
|
||||
const HostApi &Device::hostApi() const
|
||||
{
|
||||
// NOTE; will cause an exception when called for the null device
|
||||
if (info_ == NULL)
|
||||
throw PaException(paInternalError);
|
||||
|
||||
return System::instance().hostApiByIndex(info_->hostApi);
|
||||
}
|
||||
return System::instance().hostApiByIndex(info_->hostApi);
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// -------------------------------------------------------------------------------
|
||||
|
||||
} // namespace portaudio
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,159 +5,159 @@
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// Returns a `nil' DirectionSpecificStreamParameters object. This can be used to
|
||||
/// specify that one direction of a Stream is not required (i.e. when creating
|
||||
/// a half-duplex Stream). All fields of the null DirectionSpecificStreamParameters
|
||||
/// object are invalid except for the device and the number of channel, which are set
|
||||
/// to paNoDevice and 0 respectively.
|
||||
//////
|
||||
DirectionSpecificStreamParameters DirectionSpecificStreamParameters::null()
|
||||
{
|
||||
DirectionSpecificStreamParameters tmp;
|
||||
tmp.paStreamParameters_.device = paNoDevice;
|
||||
tmp.paStreamParameters_.channelCount = 0;
|
||||
return tmp;
|
||||
}
|
||||
//////
|
||||
/// Returns a `nil' DirectionSpecificStreamParameters object. This can be used to
|
||||
/// specify that one direction of a Stream is not required (i.e. when creating
|
||||
/// a half-duplex Stream). All fields of the null DirectionSpecificStreamParameters
|
||||
/// object are invalid except for the device and the number of channel, which are set
|
||||
/// to paNoDevice and 0 respectively.
|
||||
//////
|
||||
DirectionSpecificStreamParameters DirectionSpecificStreamParameters::null()
|
||||
{
|
||||
DirectionSpecificStreamParameters tmp;
|
||||
tmp.paStreamParameters_.device = paNoDevice;
|
||||
tmp.paStreamParameters_.channelCount = 0;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// Default constructor -- all parameters will be uninitialized.
|
||||
//////
|
||||
DirectionSpecificStreamParameters::DirectionSpecificStreamParameters()
|
||||
{
|
||||
}
|
||||
//////
|
||||
/// Default constructor -- all parameters will be uninitialized.
|
||||
//////
|
||||
DirectionSpecificStreamParameters::DirectionSpecificStreamParameters()
|
||||
{
|
||||
}
|
||||
|
||||
//////
|
||||
/// Constructor which sets all required fields.
|
||||
//////
|
||||
DirectionSpecificStreamParameters::DirectionSpecificStreamParameters(const Device &device, int numChannels,
|
||||
SampleDataFormat format, bool interleaved, PaTime suggestedLatency, void *hostApiSpecificStreamInfo)
|
||||
{
|
||||
setDevice(device);
|
||||
setNumChannels(numChannels);
|
||||
setSampleFormat(format, interleaved);
|
||||
setSuggestedLatency(suggestedLatency);
|
||||
setHostApiSpecificStreamInfo(hostApiSpecificStreamInfo);
|
||||
}
|
||||
//////
|
||||
/// Constructor which sets all required fields.
|
||||
//////
|
||||
DirectionSpecificStreamParameters::DirectionSpecificStreamParameters(const Device &device, int numChannels,
|
||||
SampleDataFormat format, bool interleaved, PaTime suggestedLatency, void *hostApiSpecificStreamInfo)
|
||||
{
|
||||
setDevice(device);
|
||||
setNumChannels(numChannels);
|
||||
setSampleFormat(format, interleaved);
|
||||
setSuggestedLatency(suggestedLatency);
|
||||
setHostApiSpecificStreamInfo(hostApiSpecificStreamInfo);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
void DirectionSpecificStreamParameters::setDevice(const Device &device)
|
||||
{
|
||||
paStreamParameters_.device = device.index();
|
||||
}
|
||||
void DirectionSpecificStreamParameters::setDevice(const Device &device)
|
||||
{
|
||||
paStreamParameters_.device = device.index();
|
||||
}
|
||||
|
||||
void DirectionSpecificStreamParameters::setNumChannels(int numChannels)
|
||||
{
|
||||
paStreamParameters_.channelCount = numChannels;
|
||||
}
|
||||
void DirectionSpecificStreamParameters::setNumChannels(int numChannels)
|
||||
{
|
||||
paStreamParameters_.channelCount = numChannels;
|
||||
}
|
||||
|
||||
void DirectionSpecificStreamParameters::setSampleFormat(SampleDataFormat format, bool interleaved)
|
||||
{
|
||||
paStreamParameters_.sampleFormat = static_cast<PaSampleFormat>(format);
|
||||
void DirectionSpecificStreamParameters::setSampleFormat(SampleDataFormat format, bool interleaved)
|
||||
{
|
||||
paStreamParameters_.sampleFormat = static_cast<PaSampleFormat>(format);
|
||||
|
||||
if (!interleaved)
|
||||
paStreamParameters_.sampleFormat |= paNonInterleaved;
|
||||
}
|
||||
if (!interleaved)
|
||||
paStreamParameters_.sampleFormat |= paNonInterleaved;
|
||||
}
|
||||
|
||||
void DirectionSpecificStreamParameters::setHostApiSpecificSampleFormat(PaSampleFormat format, bool interleaved)
|
||||
{
|
||||
paStreamParameters_.sampleFormat = format;
|
||||
void DirectionSpecificStreamParameters::setHostApiSpecificSampleFormat(PaSampleFormat format, bool interleaved)
|
||||
{
|
||||
paStreamParameters_.sampleFormat = format;
|
||||
|
||||
paStreamParameters_.sampleFormat |= paCustomFormat;
|
||||
paStreamParameters_.sampleFormat |= paCustomFormat;
|
||||
|
||||
if (!interleaved)
|
||||
paStreamParameters_.sampleFormat |= paNonInterleaved;
|
||||
}
|
||||
if (!interleaved)
|
||||
paStreamParameters_.sampleFormat |= paNonInterleaved;
|
||||
}
|
||||
|
||||
void DirectionSpecificStreamParameters::setSuggestedLatency(PaTime latency)
|
||||
{
|
||||
paStreamParameters_.suggestedLatency = latency;
|
||||
}
|
||||
void DirectionSpecificStreamParameters::setSuggestedLatency(PaTime latency)
|
||||
{
|
||||
paStreamParameters_.suggestedLatency = latency;
|
||||
}
|
||||
|
||||
void DirectionSpecificStreamParameters::setHostApiSpecificStreamInfo(void *streamInfo)
|
||||
{
|
||||
paStreamParameters_.hostApiSpecificStreamInfo = streamInfo;
|
||||
}
|
||||
void DirectionSpecificStreamParameters::setHostApiSpecificStreamInfo(void *streamInfo)
|
||||
{
|
||||
paStreamParameters_.hostApiSpecificStreamInfo = streamInfo;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
PaStreamParameters *DirectionSpecificStreamParameters::paStreamParameters()
|
||||
{
|
||||
if (paStreamParameters_.channelCount > 0 && paStreamParameters_.device != paNoDevice)
|
||||
return &paStreamParameters_;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
PaStreamParameters *DirectionSpecificStreamParameters::paStreamParameters()
|
||||
{
|
||||
if (paStreamParameters_.channelCount > 0 && paStreamParameters_.device != paNoDevice)
|
||||
return &paStreamParameters_;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const PaStreamParameters *DirectionSpecificStreamParameters::paStreamParameters() const
|
||||
{
|
||||
if (paStreamParameters_.channelCount > 0 && paStreamParameters_.device != paNoDevice)
|
||||
return &paStreamParameters_;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
const PaStreamParameters *DirectionSpecificStreamParameters::paStreamParameters() const
|
||||
{
|
||||
if (paStreamParameters_.channelCount > 0 && paStreamParameters_.device != paNoDevice)
|
||||
return &paStreamParameters_;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Device &DirectionSpecificStreamParameters::device() const
|
||||
{
|
||||
return System::instance().deviceByIndex(paStreamParameters_.device);
|
||||
}
|
||||
Device &DirectionSpecificStreamParameters::device() const
|
||||
{
|
||||
return System::instance().deviceByIndex(paStreamParameters_.device);
|
||||
}
|
||||
|
||||
int DirectionSpecificStreamParameters::numChannels() const
|
||||
{
|
||||
return paStreamParameters_.channelCount;
|
||||
}
|
||||
int DirectionSpecificStreamParameters::numChannels() const
|
||||
{
|
||||
return paStreamParameters_.channelCount;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the (non host api-specific) sample format, without including
|
||||
/// the paNonInterleaved flag. If the sample format is host api-spefific,
|
||||
/// INVALID_FORMAT (0) will be returned.
|
||||
//////
|
||||
SampleDataFormat DirectionSpecificStreamParameters::sampleFormat() const
|
||||
{
|
||||
if (isSampleFormatHostApiSpecific())
|
||||
return INVALID_FORMAT;
|
||||
else
|
||||
return static_cast<SampleDataFormat>(paStreamParameters_.sampleFormat & ~paNonInterleaved);
|
||||
}
|
||||
//////
|
||||
/// Returns the (non host api-specific) sample format, without including
|
||||
/// the paNonInterleaved flag. If the sample format is host api-spefific,
|
||||
/// INVALID_FORMAT (0) will be returned.
|
||||
//////
|
||||
SampleDataFormat DirectionSpecificStreamParameters::sampleFormat() const
|
||||
{
|
||||
if (isSampleFormatHostApiSpecific())
|
||||
return INVALID_FORMAT;
|
||||
else
|
||||
return static_cast<SampleDataFormat>(paStreamParameters_.sampleFormat & ~paNonInterleaved);
|
||||
}
|
||||
|
||||
bool DirectionSpecificStreamParameters::isSampleFormatInterleaved() const
|
||||
{
|
||||
return ((paStreamParameters_.sampleFormat & paNonInterleaved) == 0);
|
||||
}
|
||||
bool DirectionSpecificStreamParameters::isSampleFormatInterleaved() const
|
||||
{
|
||||
return ((paStreamParameters_.sampleFormat & paNonInterleaved) == 0);
|
||||
}
|
||||
|
||||
bool DirectionSpecificStreamParameters::isSampleFormatHostApiSpecific() const
|
||||
{
|
||||
return ((paStreamParameters_.sampleFormat & paCustomFormat) == 0);
|
||||
}
|
||||
bool DirectionSpecificStreamParameters::isSampleFormatHostApiSpecific() const
|
||||
{
|
||||
return ((paStreamParameters_.sampleFormat & paCustomFormat) == 0);
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the host api-specific sample format, without including any
|
||||
/// paCustomFormat or paNonInterleaved flags. Will return 0 if the sample format is
|
||||
/// not host api-specific.
|
||||
//////
|
||||
PaSampleFormat DirectionSpecificStreamParameters::hostApiSpecificSampleFormat() const
|
||||
{
|
||||
if (isSampleFormatHostApiSpecific())
|
||||
return paStreamParameters_.sampleFormat & ~paCustomFormat & ~paNonInterleaved;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
//////
|
||||
/// Returns the host api-specific sample format, without including any
|
||||
/// paCustomFormat or paNonInterleaved flags. Will return 0 if the sample format is
|
||||
/// not host api-specific.
|
||||
//////
|
||||
PaSampleFormat DirectionSpecificStreamParameters::hostApiSpecificSampleFormat() const
|
||||
{
|
||||
if (isSampleFormatHostApiSpecific())
|
||||
return paStreamParameters_.sampleFormat & ~paCustomFormat & ~paNonInterleaved;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
PaTime DirectionSpecificStreamParameters::suggestedLatency() const
|
||||
{
|
||||
return paStreamParameters_.suggestedLatency;
|
||||
}
|
||||
PaTime DirectionSpecificStreamParameters::suggestedLatency() const
|
||||
{
|
||||
return paStreamParameters_.suggestedLatency;
|
||||
}
|
||||
|
||||
void *DirectionSpecificStreamParameters::hostApiSpecificStreamInfo() const
|
||||
{
|
||||
return paStreamParameters_.hostApiSpecificStreamInfo;
|
||||
}
|
||||
void *DirectionSpecificStreamParameters::hostApiSpecificStreamInfo() const
|
||||
{
|
||||
return paStreamParameters_.hostApiSpecificStreamInfo;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
} // namespace portaudio
|
||||
|
|
|
|||
|
|
@ -2,120 +2,122 @@
|
|||
|
||||
namespace portaudio
|
||||
{
|
||||
// -----------------------------------------------------------------------------------
|
||||
// PaException:
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
// PaException:
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// Wraps a PortAudio error into a PortAudioCpp PaException.
|
||||
//////
|
||||
PaException::PaException(PaError error) : error_(error)
|
||||
{
|
||||
}
|
||||
//////
|
||||
/// Wraps a PortAudio error into a PortAudioCpp PaException.
|
||||
//////
|
||||
PaException::PaException(PaError error) : error_(error)
|
||||
{
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// Alias for paErrorText(), to have std::exception compliance.
|
||||
//////
|
||||
const char *PaException::what() const throw()
|
||||
{
|
||||
return paErrorText();
|
||||
}
|
||||
//////
|
||||
/// Alias for paErrorText(), to have std::exception compliance.
|
||||
//////
|
||||
const char *PaException::what() const throw()
|
||||
{
|
||||
return paErrorText();
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// Returns the PortAudio error code (PaError).
|
||||
//////
|
||||
PaError PaException::paError() const
|
||||
{
|
||||
return error_;
|
||||
}
|
||||
//////
|
||||
/// Returns the PortAudio error code (PaError).
|
||||
//////
|
||||
PaError PaException::paError() const
|
||||
{
|
||||
return error_;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the error as a (zero-terminated) text string.
|
||||
//////
|
||||
const char *PaException::paErrorText() const
|
||||
{
|
||||
return Pa_GetErrorText(error_);
|
||||
}
|
||||
//////
|
||||
/// Returns the error as a (zero-terminated) text string.
|
||||
//////
|
||||
const char *PaException::paErrorText() const
|
||||
{
|
||||
return Pa_GetErrorText(error_);
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns true is the error is a HostApi error.
|
||||
//////
|
||||
bool PaException::isHostApiError() const
|
||||
{
|
||||
return (error_ == paUnanticipatedHostError);
|
||||
}
|
||||
//////
|
||||
/// Returns true is the error is a HostApi error.
|
||||
//////
|
||||
bool PaException::isHostApiError() const
|
||||
{
|
||||
return (error_ == paUnanticipatedHostError);
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the last HostApi error (which is the current one if
|
||||
/// isHostApiError() returns true) as an error code.
|
||||
//////
|
||||
long PaException::lastHostApiError() const
|
||||
{
|
||||
return Pa_GetLastHostErrorInfo()->errorCode;
|
||||
}
|
||||
//////
|
||||
/// Returns the last HostApi error (which is the current one if
|
||||
/// isHostApiError() returns true) as an error code.
|
||||
//////
|
||||
long PaException::lastHostApiError() const
|
||||
{
|
||||
return Pa_GetLastHostErrorInfo()->errorCode;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the last HostApi error (which is the current one if
|
||||
/// isHostApiError() returns true) as a (zero-terminated) text
|
||||
/// string, if it's available.
|
||||
//////
|
||||
const char *PaException::lastHostApiErrorText() const
|
||||
{
|
||||
return Pa_GetLastHostErrorInfo()->errorText;
|
||||
}
|
||||
//////
|
||||
/// Returns the last HostApi error (which is the current one if
|
||||
/// isHostApiError() returns true) as a (zero-terminated) text
|
||||
/// string, if it's available.
|
||||
//////
|
||||
const char *PaException::lastHostApiErrorText() const
|
||||
{
|
||||
return Pa_GetLastHostErrorInfo()->errorText;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
bool PaException::operator==(const PaException &rhs) const
|
||||
{
|
||||
return (error_ == rhs.error_);
|
||||
}
|
||||
bool PaException::operator==(const PaException &rhs) const
|
||||
{
|
||||
return (error_ == rhs.error_);
|
||||
}
|
||||
|
||||
bool PaException::operator!=(const PaException &rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
bool PaException::operator!=(const PaException &rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// PaCppException:
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
// PaCppException:
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
PaCppException::PaCppException(ExceptionSpecifier specifier) : specifier_(specifier)
|
||||
{
|
||||
}
|
||||
|
||||
PaCppException::PaCppException(ExceptionSpecifier specifier) : specifier_(specifier)
|
||||
{
|
||||
}
|
||||
const char *PaCppException::what() const throw()
|
||||
{
|
||||
switch (specifier_)
|
||||
{
|
||||
case UNABLE_TO_ADAPT_DEVICE:
|
||||
{
|
||||
return "Unable to adapt the given device to the specified host api specific device extension";
|
||||
}
|
||||
}
|
||||
|
||||
const char *PaCppException::what() const throw()
|
||||
{
|
||||
switch (specifier_)
|
||||
{
|
||||
case UNABLE_TO_ADAPT_DEVICE:
|
||||
{
|
||||
return "Unable to adapt the given device to the specified host api specific device extension";
|
||||
}
|
||||
}
|
||||
return "Unknown exception";
|
||||
}
|
||||
|
||||
return "Unknown exception";
|
||||
}
|
||||
PaCppException::ExceptionSpecifier PaCppException::specifier() const
|
||||
{
|
||||
return specifier_;
|
||||
}
|
||||
|
||||
PaCppException::ExceptionSpecifier PaCppException::specifier() const
|
||||
{
|
||||
return specifier_;
|
||||
}
|
||||
bool PaCppException::operator==(const PaCppException &rhs) const
|
||||
{
|
||||
return (specifier_ == rhs.specifier_);
|
||||
}
|
||||
|
||||
bool PaCppException::operator==(const PaCppException &rhs) const
|
||||
{
|
||||
return (specifier_ == rhs.specifier_);
|
||||
}
|
||||
bool PaCppException::operator!=(const PaCppException &rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
|
||||
bool PaCppException::operator!=(const PaCppException &rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
} // namespace portaudio
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -8,114 +8,114 @@
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
HostApi::HostApi(PaHostApiIndex index) : devices_(NULL)
|
||||
{
|
||||
try
|
||||
{
|
||||
info_ = Pa_GetHostApiInfo(index);
|
||||
HostApi::HostApi(PaHostApiIndex index) : devices_(NULL)
|
||||
{
|
||||
try
|
||||
{
|
||||
info_ = Pa_GetHostApiInfo(index);
|
||||
|
||||
// Create and populate devices array:
|
||||
int numDevices = deviceCount();
|
||||
// Create and populate devices array:
|
||||
int numDevices = deviceCount();
|
||||
|
||||
devices_ = new Device*[numDevices];
|
||||
devices_ = new Device*[numDevices];
|
||||
|
||||
for (int i = 0; i < numDevices; ++i)
|
||||
{
|
||||
PaDeviceIndex deviceIndex = Pa_HostApiDeviceIndexToDeviceIndex(index, i);
|
||||
for (int i = 0; i < numDevices; ++i)
|
||||
{
|
||||
PaDeviceIndex deviceIndex = Pa_HostApiDeviceIndexToDeviceIndex(index, i);
|
||||
|
||||
if (deviceIndex < 0)
|
||||
{
|
||||
throw PaException(deviceIndex);
|
||||
}
|
||||
if (deviceIndex < 0)
|
||||
{
|
||||
throw PaException(deviceIndex);
|
||||
}
|
||||
|
||||
devices_[i] = &System::instance().deviceByIndex(deviceIndex);
|
||||
}
|
||||
}
|
||||
catch (const std::exception &e)
|
||||
{
|
||||
// Delete any (partially) constructed objects (deconstructor isn't called):
|
||||
delete[] devices_; // devices_ is either NULL or valid
|
||||
devices_[i] = &System::instance().deviceByIndex(deviceIndex);
|
||||
}
|
||||
}
|
||||
catch (const std::exception &e)
|
||||
{
|
||||
// Delete any (partially) constructed objects (deconstructor isn't called):
|
||||
delete[] devices_; // devices_ is either NULL or valid
|
||||
|
||||
// Re-throw exception:
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
// Re-throw exception:
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
HostApi::~HostApi()
|
||||
{
|
||||
// Destroy devices array:
|
||||
delete[] devices_;
|
||||
}
|
||||
HostApi::~HostApi()
|
||||
{
|
||||
// Destroy devices array:
|
||||
delete[] devices_;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
PaHostApiTypeId HostApi::typeId() const
|
||||
{
|
||||
return info_->type;
|
||||
}
|
||||
PaHostApiTypeId HostApi::typeId() const
|
||||
{
|
||||
return info_->type;
|
||||
}
|
||||
|
||||
PaHostApiIndex HostApi::index() const
|
||||
{
|
||||
PaHostApiIndex index = Pa_HostApiTypeIdToHostApiIndex(typeId());
|
||||
PaHostApiIndex HostApi::index() const
|
||||
{
|
||||
PaHostApiIndex index = Pa_HostApiTypeIdToHostApiIndex(typeId());
|
||||
|
||||
if (index < 0)
|
||||
throw PaException(index);
|
||||
if (index < 0)
|
||||
throw PaException(index);
|
||||
|
||||
return index;
|
||||
}
|
||||
return index;
|
||||
}
|
||||
|
||||
const char *HostApi::name() const
|
||||
{
|
||||
return info_->name;
|
||||
}
|
||||
const char *HostApi::name() const
|
||||
{
|
||||
return info_->name;
|
||||
}
|
||||
|
||||
int HostApi::deviceCount() const
|
||||
{
|
||||
return info_->deviceCount;
|
||||
}
|
||||
int HostApi::deviceCount() const
|
||||
{
|
||||
return info_->deviceCount;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
HostApi::DeviceIterator HostApi::devicesBegin()
|
||||
{
|
||||
DeviceIterator tmp;
|
||||
tmp.ptr_ = &devices_[0]; // begin (first element)
|
||||
return tmp;
|
||||
}
|
||||
HostApi::DeviceIterator HostApi::devicesBegin()
|
||||
{
|
||||
DeviceIterator tmp;
|
||||
tmp.ptr_ = &devices_[0]; // begin (first element)
|
||||
return tmp;
|
||||
}
|
||||
|
||||
HostApi::DeviceIterator HostApi::devicesEnd()
|
||||
{
|
||||
DeviceIterator tmp;
|
||||
tmp.ptr_ = &devices_[deviceCount()]; // end (one past last element)
|
||||
return tmp;
|
||||
}
|
||||
HostApi::DeviceIterator HostApi::devicesEnd()
|
||||
{
|
||||
DeviceIterator tmp;
|
||||
tmp.ptr_ = &devices_[deviceCount()]; // end (one past last element)
|
||||
return tmp;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
Device &HostApi::defaultInputDevice() const
|
||||
{
|
||||
return System::instance().deviceByIndex(info_->defaultInputDevice);
|
||||
}
|
||||
Device &HostApi::defaultInputDevice() const
|
||||
{
|
||||
return System::instance().deviceByIndex(info_->defaultInputDevice);
|
||||
}
|
||||
|
||||
Device &HostApi::defaultOutputDevice() const
|
||||
{
|
||||
return System::instance().deviceByIndex(info_->defaultOutputDevice);
|
||||
}
|
||||
Device &HostApi::defaultOutputDevice() const
|
||||
{
|
||||
return System::instance().deviceByIndex(info_->defaultOutputDevice);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
bool HostApi::operator==(const HostApi &rhs) const
|
||||
{
|
||||
return (typeId() == rhs.typeId());
|
||||
}
|
||||
bool HostApi::operator==(const HostApi &rhs) const
|
||||
{
|
||||
return (typeId() == rhs.typeId());
|
||||
}
|
||||
|
||||
bool HostApi::operator!=(const HostApi &rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
bool HostApi::operator!=(const HostApi &rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
} // namespace portaudio
|
||||
|
|
|
|||
|
|
@ -7,39 +7,39 @@
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
// ---------------------------------------------------------------------------------==
|
||||
// ---------------------------------------------------------------------------------==
|
||||
|
||||
InterfaceCallbackStream::InterfaceCallbackStream()
|
||||
{
|
||||
}
|
||||
InterfaceCallbackStream::InterfaceCallbackStream()
|
||||
{
|
||||
}
|
||||
|
||||
InterfaceCallbackStream::InterfaceCallbackStream(const StreamParameters ¶meters, CallbackInterface &instance)
|
||||
{
|
||||
open(parameters, instance);
|
||||
}
|
||||
InterfaceCallbackStream::InterfaceCallbackStream(const StreamParameters ¶meters, CallbackInterface &instance)
|
||||
{
|
||||
open(parameters, instance);
|
||||
}
|
||||
|
||||
InterfaceCallbackStream::~InterfaceCallbackStream()
|
||||
{
|
||||
try
|
||||
{
|
||||
close();
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// ignore all errors
|
||||
}
|
||||
}
|
||||
InterfaceCallbackStream::~InterfaceCallbackStream()
|
||||
{
|
||||
try
|
||||
{
|
||||
close();
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// ignore all errors
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------==
|
||||
// ---------------------------------------------------------------------------------==
|
||||
|
||||
void InterfaceCallbackStream::open(const StreamParameters ¶meters, CallbackInterface &instance)
|
||||
{
|
||||
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
|
||||
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::callbackInterfaceToPaCallbackAdapter, static_cast<void *>(&instance));
|
||||
void InterfaceCallbackStream::open(const StreamParameters ¶meters, CallbackInterface &instance)
|
||||
{
|
||||
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
|
||||
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::callbackInterfaceToPaCallbackAdapter, static_cast<void *>(&instance));
|
||||
|
||||
if (err != paNoError)
|
||||
{
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
if (err != paNoError)
|
||||
{
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#include "portaudiocpp/MemFunCallbackStream.hxx"
|
||||
|
||||
// (... template class ...)
|
||||
|
||||
|
|
|
|||
|
|
@ -8,188 +8,188 @@
|
|||
namespace portaudio
|
||||
{
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
Stream::Stream() : stream_(NULL)
|
||||
{
|
||||
}
|
||||
Stream::Stream() : stream_(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
Stream::~Stream()
|
||||
{
|
||||
// (can't call close here,
|
||||
// the derived class should atleast call
|
||||
// close() in it's deconstructor)
|
||||
}
|
||||
Stream::~Stream()
|
||||
{
|
||||
// (can't call close here,
|
||||
// the derived class should atleast call
|
||||
// close() in it's deconstructor)
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// Closes the Stream if it's open, else does nothing.
|
||||
//////
|
||||
void Stream::close()
|
||||
{
|
||||
if (isOpen() && System::exists())
|
||||
{
|
||||
PaError err = Pa_CloseStream(stream_);
|
||||
stream_ = NULL;
|
||||
//////
|
||||
/// Closes the Stream if it's open, else does nothing.
|
||||
//////
|
||||
void Stream::close()
|
||||
{
|
||||
if (isOpen() && System::exists())
|
||||
{
|
||||
PaError err = Pa_CloseStream(stream_);
|
||||
stream_ = NULL;
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns true if the Stream is open.
|
||||
//////
|
||||
bool Stream::isOpen() const
|
||||
{
|
||||
return (stream_ != NULL);
|
||||
}
|
||||
//////
|
||||
/// Returns true if the Stream is open.
|
||||
//////
|
||||
bool Stream::isOpen() const
|
||||
{
|
||||
return (stream_ != NULL);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
void Stream::setStreamFinishedCallback(PaStreamFinishedCallback *callback)
|
||||
{
|
||||
PaError err = Pa_SetStreamFinishedCallback(stream_, callback);
|
||||
void Stream::setStreamFinishedCallback(PaStreamFinishedCallback *callback)
|
||||
{
|
||||
PaError err = Pa_SetStreamFinishedCallback(stream_, callback);
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
void Stream::start()
|
||||
{
|
||||
PaError err = Pa_StartStream(stream_);
|
||||
void Stream::start()
|
||||
{
|
||||
PaError err = Pa_StartStream(stream_);
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
|
||||
void Stream::stop()
|
||||
{
|
||||
PaError err = Pa_StopStream(stream_);
|
||||
void Stream::stop()
|
||||
{
|
||||
PaError err = Pa_StopStream(stream_);
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
|
||||
void Stream::abort()
|
||||
{
|
||||
PaError err = Pa_AbortStream(stream_);
|
||||
void Stream::abort()
|
||||
{
|
||||
PaError err = Pa_AbortStream(stream_);
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
|
||||
bool Stream::isStopped() const
|
||||
{
|
||||
PaError ret = Pa_IsStreamStopped(stream_);
|
||||
bool Stream::isStopped() const
|
||||
{
|
||||
PaError ret = Pa_IsStreamStopped(stream_);
|
||||
|
||||
if (ret < 0)
|
||||
throw PaException(ret);
|
||||
if (ret < 0)
|
||||
throw PaException(ret);
|
||||
|
||||
return (ret == 1);
|
||||
}
|
||||
return (ret == 1);
|
||||
}
|
||||
|
||||
bool Stream::isActive() const
|
||||
{
|
||||
PaError ret = Pa_IsStreamActive(stream_);
|
||||
bool Stream::isActive() const
|
||||
{
|
||||
PaError ret = Pa_IsStreamActive(stream_);
|
||||
|
||||
if (ret < 0)
|
||||
throw PaException(ret);
|
||||
if (ret < 0)
|
||||
throw PaException(ret);
|
||||
|
||||
return (ret == 1);
|
||||
}
|
||||
return (ret == 1);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// Returns the best known input latency for the Stream. This value may differ from the
|
||||
/// suggested input latency set in the StreamParameters. Includes all sources of
|
||||
/// latency known to PortAudio such as internal buffering, and Host API reported latency.
|
||||
/// Doesn't include any estimates of unknown latency.
|
||||
//////
|
||||
PaTime Stream::inputLatency() const
|
||||
{
|
||||
const PaStreamInfo *info = Pa_GetStreamInfo(stream_);
|
||||
if (info == NULL)
|
||||
{
|
||||
throw PaException(paInternalError);
|
||||
return PaTime(0.0);
|
||||
}
|
||||
//////
|
||||
/// Returns the best known input latency for the Stream. This value may differ from the
|
||||
/// suggested input latency set in the StreamParameters. Includes all sources of
|
||||
/// latency known to PortAudio such as internal buffering, and Host API reported latency.
|
||||
/// Doesn't include any estimates of unknown latency.
|
||||
//////
|
||||
PaTime Stream::inputLatency() const
|
||||
{
|
||||
const PaStreamInfo *info = Pa_GetStreamInfo(stream_);
|
||||
if (info == NULL)
|
||||
{
|
||||
throw PaException(paInternalError);
|
||||
return PaTime(0.0);
|
||||
}
|
||||
|
||||
return info->inputLatency;
|
||||
}
|
||||
return info->inputLatency;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the best known output latency for the Stream. This value may differ from the
|
||||
/// suggested output latency set in the StreamParameters. Includes all sources of
|
||||
/// latency known to PortAudio such as internal buffering, and Host API reported latency.
|
||||
/// Doesn't include any estimates of unknown latency.
|
||||
//////
|
||||
PaTime Stream::outputLatency() const
|
||||
{
|
||||
const PaStreamInfo *info = Pa_GetStreamInfo(stream_);
|
||||
if (info == NULL)
|
||||
{
|
||||
throw PaException(paInternalError);
|
||||
return PaTime(0.0);
|
||||
}
|
||||
//////
|
||||
/// Returns the best known output latency for the Stream. This value may differ from the
|
||||
/// suggested output latency set in the StreamParameters. Includes all sources of
|
||||
/// latency known to PortAudio such as internal buffering, and Host API reported latency.
|
||||
/// Doesn't include any estimates of unknown latency.
|
||||
//////
|
||||
PaTime Stream::outputLatency() const
|
||||
{
|
||||
const PaStreamInfo *info = Pa_GetStreamInfo(stream_);
|
||||
if (info == NULL)
|
||||
{
|
||||
throw PaException(paInternalError);
|
||||
return PaTime(0.0);
|
||||
}
|
||||
|
||||
return info->outputLatency;
|
||||
}
|
||||
return info->outputLatency;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the sample rate of the Stream. Usually this will be the
|
||||
/// best known estimate of the used sample rate. For instance when opening a
|
||||
/// Stream setting 44100.0 Hz in the StreamParameters, the actual sample
|
||||
/// rate might be something like 44103.2 Hz (due to imperfections in the
|
||||
/// sound card hardware).
|
||||
//////
|
||||
double Stream::sampleRate() const
|
||||
{
|
||||
const PaStreamInfo *info = Pa_GetStreamInfo(stream_);
|
||||
if (info == NULL)
|
||||
{
|
||||
throw PaException(paInternalError);
|
||||
return 0.0;
|
||||
}
|
||||
//////
|
||||
/// Returns the sample rate of the Stream. Usually this will be the
|
||||
/// best known estimate of the used sample rate. For instance when opening a
|
||||
/// Stream setting 44100.0 Hz in the StreamParameters, the actual sample
|
||||
/// rate might be something like 44103.2 Hz (due to imperfections in the
|
||||
/// sound card hardware).
|
||||
//////
|
||||
double Stream::sampleRate() const
|
||||
{
|
||||
const PaStreamInfo *info = Pa_GetStreamInfo(stream_);
|
||||
if (info == NULL)
|
||||
{
|
||||
throw PaException(paInternalError);
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
return info->sampleRate;
|
||||
}
|
||||
return info->sampleRate;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
PaTime Stream::time() const
|
||||
{
|
||||
return Pa_GetStreamTime(stream_);
|
||||
}
|
||||
PaTime Stream::time() const
|
||||
{
|
||||
return Pa_GetStreamTime(stream_);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// Accessor (const) for PortAudio PaStream pointer, useful for interfacing with
|
||||
/// PortAudio add-ons such as PortMixer for instance. Normally accessing this
|
||||
/// pointer should not be needed as PortAudioCpp aims to provide all of PortAudio's
|
||||
/// functionality.
|
||||
//////
|
||||
const PaStream *Stream::paStream() const
|
||||
{
|
||||
return stream_;
|
||||
}
|
||||
//////
|
||||
/// Accessor (const) for PortAudio PaStream pointer, useful for interfacing with
|
||||
/// PortAudio add-ons such as PortMixer for instance. Normally accessing this
|
||||
/// pointer should not be needed as PortAudioCpp aims to provide all of PortAudio's
|
||||
/// functionality.
|
||||
//////
|
||||
const PaStream *Stream::paStream() const
|
||||
{
|
||||
return stream_;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Accessor (non-const) for PortAudio PaStream pointer, useful for interfacing with
|
||||
/// PortAudio add-ons such as PortMixer for instance. Normally accessing this
|
||||
/// pointer should not be needed as PortAudioCpp aims to provide all of PortAudio's
|
||||
/// functionality.
|
||||
//////
|
||||
PaStream *Stream::paStream()
|
||||
{
|
||||
return stream_;
|
||||
}
|
||||
//////
|
||||
/// Accessor (non-const) for PortAudio PaStream pointer, useful for interfacing with
|
||||
/// PortAudio add-ons such as PortMixer for instance. Normally accessing this
|
||||
/// pointer should not be needed as PortAudioCpp aims to provide all of PortAudio's
|
||||
/// functionality.
|
||||
//////
|
||||
PaStream *Stream::paStream()
|
||||
{
|
||||
return stream_;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
} // namespace portaudio
|
||||
|
|
|
|||
|
|
@ -6,155 +6,160 @@
|
|||
|
||||
namespace portaudio
|
||||
{
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// Default constructor; does nothing.
|
||||
//////
|
||||
StreamParameters::StreamParameters()
|
||||
{
|
||||
}
|
||||
//////
|
||||
/// Default constructor; does nothing.
|
||||
//////
|
||||
StreamParameters::StreamParameters()
|
||||
{
|
||||
}
|
||||
|
||||
//////
|
||||
/// Sets up the all parameters needed to open either a half-duplex or full-duplex Stream.
|
||||
///
|
||||
/// @param inputParameters The parameters for the input direction of the to-be opened
|
||||
/// Stream or DirectionSpecificStreamParameters::null() for an output-only Stream.
|
||||
/// @param outputParameters The parameters for the output direction of the to-be opened
|
||||
/// Stream or DirectionSpecificStreamParameters::null() for an input-only Stream.
|
||||
/// @param sampleRate The to-be opened Stream's sample rate in Hz.
|
||||
/// @param framesPerBuffer The number of frames per buffer for a CallbackStream, or
|
||||
/// the preferred buffer granularity for a BlockingStream.
|
||||
/// @param flags The flags for the to-be opened Stream; default paNoFlag.
|
||||
//////
|
||||
StreamParameters::StreamParameters(const DirectionSpecificStreamParameters &inputParameters,
|
||||
const DirectionSpecificStreamParameters &outputParameters, double sampleRate, unsigned long framesPerBuffer,
|
||||
PaStreamFlags flags) : inputParameters_(inputParameters), outputParameters_(outputParameters),
|
||||
sampleRate_(sampleRate), framesPerBuffer_(framesPerBuffer), flags_(flags)
|
||||
{
|
||||
}
|
||||
//////
|
||||
/// Sets up the all parameters needed to open either a half-duplex or full-duplex Stream.
|
||||
///
|
||||
/// @param inputParameters The parameters for the input direction of the to-be opened
|
||||
/// Stream or DirectionSpecificStreamParameters::null() for an output-only Stream.
|
||||
/// @param outputParameters The parameters for the output direction of the to-be opened
|
||||
/// Stream or DirectionSpecificStreamParameters::null() for an input-only Stream.
|
||||
/// @param sampleRate The to-be opened Stream's sample rate in Hz.
|
||||
/// @param framesPerBuffer The number of frames per buffer for a CallbackStream, or
|
||||
/// the preferred buffer granularity for a BlockingStream.
|
||||
/// @param flags The flags for the to-be opened Stream; default paNoFlag.
|
||||
//////
|
||||
StreamParameters::StreamParameters(const DirectionSpecificStreamParameters &inputParameters,
|
||||
const DirectionSpecificStreamParameters &outputParameters, double sampleRate, unsigned long framesPerBuffer,
|
||||
PaStreamFlags flags) : inputParameters_(inputParameters), outputParameters_(outputParameters),
|
||||
sampleRate_(sampleRate), framesPerBuffer_(framesPerBuffer), flags_(flags)
|
||||
{
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
//////
|
||||
/// Sets the requested sample rate. If this sample rate isn't supported by the hardware, the
|
||||
/// Stream will fail to open. The real-life sample rate used might differ slightly due to
|
||||
/// imperfections in the sound card hardware; use Stream::sampleRate() to retrieve the
|
||||
/// best known estimate for this value.
|
||||
//////
|
||||
void StreamParameters::setSampleRate(double sampleRate)
|
||||
{
|
||||
sampleRate_ = sampleRate;
|
||||
}
|
||||
//////
|
||||
/// Sets the requested sample rate. If this sample rate isn't supported by the hardware, the
|
||||
/// Stream will fail to open. The real-life sample rate used might differ slightly due to
|
||||
/// imperfections in the sound card hardware; use Stream::sampleRate() to retrieve the
|
||||
/// best known estimate for this value.
|
||||
//////
|
||||
void StreamParameters::setSampleRate(double sampleRate)
|
||||
{
|
||||
sampleRate_ = sampleRate;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Either the number of frames per buffer for a CallbackStream, or
|
||||
/// the preferred buffer granularity for a BlockingStream. See PortAudio
|
||||
/// documentation.
|
||||
//////
|
||||
void StreamParameters::setFramesPerBuffer(unsigned long framesPerBuffer)
|
||||
{
|
||||
framesPerBuffer_ = framesPerBuffer;
|
||||
}
|
||||
//////
|
||||
/// Either the number of frames per buffer for a CallbackStream, or
|
||||
/// the preferred buffer granularity for a BlockingStream. See PortAudio
|
||||
/// documentation.
|
||||
//////
|
||||
void StreamParameters::setFramesPerBuffer(unsigned long framesPerBuffer)
|
||||
{
|
||||
framesPerBuffer_ = framesPerBuffer;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Sets the specified flag or does nothing when the flag is already set. Doesn't
|
||||
/// `unset' any previously existing flags (use clearFlags() for that).
|
||||
//////
|
||||
void StreamParameters::setFlag(PaStreamFlags flag)
|
||||
{
|
||||
flags_ |= flag;
|
||||
}
|
||||
//////
|
||||
/// Sets the specified flag or does nothing when the flag is already set. Doesn't
|
||||
/// `unset' any previously existing flags (use clearFlags() for that).
|
||||
//////
|
||||
void StreamParameters::setFlag(PaStreamFlags flag)
|
||||
{
|
||||
flags_ |= flag;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Unsets the specified flag or does nothing if the flag isn't set. Doesn't affect
|
||||
/// any other flags.
|
||||
//////
|
||||
void StreamParameters::unsetFlag(PaStreamFlags flag)
|
||||
{
|
||||
flags_ &= ~flag;
|
||||
}
|
||||
//////
|
||||
/// Unsets the specified flag or does nothing if the flag isn't set. Doesn't affect
|
||||
/// any other flags.
|
||||
//////
|
||||
void StreamParameters::unsetFlag(PaStreamFlags flag)
|
||||
{
|
||||
flags_ &= ~flag;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Clears or `unsets' all set flags.
|
||||
//////
|
||||
void StreamParameters::clearFlags()
|
||||
{
|
||||
flags_ = paNoFlag;
|
||||
}
|
||||
//////
|
||||
/// Clears or `unsets' all set flags.
|
||||
//////
|
||||
void StreamParameters::clearFlags()
|
||||
{
|
||||
flags_ = paNoFlag;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
void StreamParameters::setInputParameters(const DirectionSpecificStreamParameters ¶meters)
|
||||
{
|
||||
inputParameters_ = parameters;
|
||||
}
|
||||
void StreamParameters::setInputParameters(const DirectionSpecificStreamParameters ¶meters)
|
||||
{
|
||||
inputParameters_ = parameters;
|
||||
}
|
||||
|
||||
void StreamParameters::setOutputParameters(const DirectionSpecificStreamParameters ¶meters)
|
||||
{
|
||||
outputParameters_ = parameters;
|
||||
}
|
||||
void StreamParameters::setOutputParameters(const DirectionSpecificStreamParameters ¶meters)
|
||||
{
|
||||
outputParameters_ = parameters;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
bool StreamParameters::isSupported() const
|
||||
{
|
||||
return (Pa_IsFormatSupported(inputParameters_.paStreamParameters(),
|
||||
outputParameters_.paStreamParameters(), sampleRate_) == paFormatIsSupported);
|
||||
}
|
||||
bool StreamParameters::isSupported() const
|
||||
{
|
||||
return (Pa_IsFormatSupported(inputParameters_.paStreamParameters(),
|
||||
outputParameters_.paStreamParameters(), sampleRate_) == paFormatIsSupported);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
double StreamParameters::sampleRate() const
|
||||
{
|
||||
return sampleRate_;
|
||||
}
|
||||
double StreamParameters::sampleRate() const
|
||||
{
|
||||
return sampleRate_;
|
||||
}
|
||||
|
||||
unsigned long StreamParameters::framesPerBuffer() const
|
||||
{
|
||||
return framesPerBuffer_;
|
||||
}
|
||||
unsigned long StreamParameters::framesPerBuffer() const
|
||||
{
|
||||
return framesPerBuffer_;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns all currently set flags as a binary combined
|
||||
/// integer value (PaStreamFlags). Use isFlagSet() to
|
||||
/// avoid dealing with the bitmasks.
|
||||
//////
|
||||
PaStreamFlags StreamParameters::flags() const
|
||||
{
|
||||
return flags_;
|
||||
}
|
||||
//////
|
||||
/// Returns all currently set flags as a binary combined
|
||||
/// integer value (PaStreamFlags). Use isFlagSet() to
|
||||
/// avoid dealing with the bitmasks.
|
||||
//////
|
||||
PaStreamFlags StreamParameters::flags() const
|
||||
{
|
||||
return flags_;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns true if the specified flag is currently set
|
||||
/// or false if it isn't.
|
||||
//////
|
||||
bool StreamParameters::isFlagSet(PaStreamFlags flag) const
|
||||
{
|
||||
return ((flags_ & flag) != 0);
|
||||
}
|
||||
//////
|
||||
/// Returns true if the specified flag is currently set
|
||||
/// or false if it isn't.
|
||||
//////
|
||||
bool StreamParameters::isFlagSet(PaStreamFlags flag) const
|
||||
{
|
||||
return ((flags_ & flag) != 0);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
DirectionSpecificStreamParameters &StreamParameters::inputParameters()
|
||||
{
|
||||
return inputParameters_;
|
||||
}
|
||||
DirectionSpecificStreamParameters &StreamParameters::inputParameters()
|
||||
{
|
||||
return inputParameters_;
|
||||
}
|
||||
|
||||
const DirectionSpecificStreamParameters &StreamParameters::inputParameters() const
|
||||
{
|
||||
return inputParameters_;
|
||||
}
|
||||
const DirectionSpecificStreamParameters &StreamParameters::inputParameters() const
|
||||
{
|
||||
return inputParameters_;
|
||||
}
|
||||
|
||||
DirectionSpecificStreamParameters &StreamParameters::outputParameters()
|
||||
{
|
||||
return outputParameters_;
|
||||
}
|
||||
DirectionSpecificStreamParameters &StreamParameters::outputParameters()
|
||||
{
|
||||
return outputParameters_;
|
||||
}
|
||||
|
||||
const DirectionSpecificStreamParameters &StreamParameters::outputParameters() const
|
||||
{
|
||||
return outputParameters_;
|
||||
}
|
||||
const DirectionSpecificStreamParameters &StreamParameters::outputParameters() const
|
||||
{
|
||||
return outputParameters_;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
} // namespace portaudio
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -12,296 +12,297 @@
|
|||
|
||||
namespace portaudio
|
||||
{
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
// Static members:
|
||||
System *System::instance_ = NULL;
|
||||
int System::initCount_ = 0;
|
||||
HostApi **System::hostApis_ = NULL;
|
||||
Device **System::devices_ = NULL;
|
||||
Device *System::nullDevice_ = NULL;
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
int System::version()
|
||||
{
|
||||
return Pa_GetVersion();
|
||||
}
|
||||
|
||||
const char *System::versionText()
|
||||
{
|
||||
return Pa_GetVersionText();
|
||||
}
|
||||
|
||||
void System::initialize()
|
||||
{
|
||||
++initCount_;
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
// Static members:
|
||||
System *System::instance_ = NULL;
|
||||
int System::initCount_ = 0;
|
||||
HostApi **System::hostApis_ = NULL;
|
||||
Device **System::devices_ = NULL;
|
||||
Device *System::nullDevice_ = NULL;
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
int System::version()
|
||||
{
|
||||
return Pa_GetVersion();
|
||||
}
|
||||
|
||||
const char *System::versionText()
|
||||
{
|
||||
return Pa_GetVersionText();
|
||||
}
|
||||
|
||||
void System::initialize()
|
||||
{
|
||||
++initCount_;
|
||||
|
||||
if (initCount_ == 1)
|
||||
{
|
||||
// Create singleton:
|
||||
assert(instance_ == NULL);
|
||||
instance_ = new System();
|
||||
|
||||
// Initialize the PortAudio system:
|
||||
{
|
||||
PaError err = Pa_Initialize();
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
|
||||
// Create and populate device array:
|
||||
{
|
||||
int numDevices = instance().deviceCount();
|
||||
|
||||
devices_ = new Device*[numDevices];
|
||||
|
||||
for (int i = 0; i < numDevices; ++i)
|
||||
devices_[i] = new Device(i);
|
||||
}
|
||||
|
||||
// Create and populate host api array:
|
||||
{
|
||||
int numHostApis = instance().hostApiCount();
|
||||
|
||||
hostApis_ = new HostApi*[numHostApis];
|
||||
|
||||
for (int i = 0; i < numHostApis; ++i)
|
||||
hostApis_[i] = new HostApi(i);
|
||||
}
|
||||
|
||||
// Create null device:
|
||||
nullDevice_ = new Device(paNoDevice);
|
||||
}
|
||||
}
|
||||
|
||||
void System::terminate()
|
||||
{
|
||||
PaError err = paNoError;
|
||||
|
||||
if (initCount_ == 1)
|
||||
{
|
||||
// Destroy null device:
|
||||
delete nullDevice_;
|
||||
|
||||
// Destroy host api array:
|
||||
{
|
||||
if (hostApis_ != NULL)
|
||||
{
|
||||
int numHostApis = instance().hostApiCount();
|
||||
|
||||
for (int i = 0; i < numHostApis; ++i)
|
||||
delete hostApis_[i];
|
||||
|
||||
delete[] hostApis_;
|
||||
hostApis_ = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (initCount_ == 1)
|
||||
{
|
||||
// Create singleton:
|
||||
assert(instance_ == NULL);
|
||||
instance_ = new System();
|
||||
// Destroy device array:
|
||||
{
|
||||
if (devices_ != NULL)
|
||||
{
|
||||
int numDevices = instance().deviceCount();
|
||||
|
||||
// Initialize the PortAudio system:
|
||||
{
|
||||
PaError err = Pa_Initialize();
|
||||
for (int i = 0; i < numDevices; ++i)
|
||||
delete devices_[i];
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
delete[] devices_;
|
||||
devices_ = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
// Create and populate device array:
|
||||
{
|
||||
int numDevices = instance().deviceCount();
|
||||
// Terminate the PortAudio system:
|
||||
assert(instance_ != NULL);
|
||||
err = Pa_Terminate();
|
||||
|
||||
devices_ = new Device*[numDevices];
|
||||
|
||||
for (int i = 0; i < numDevices; ++i)
|
||||
devices_[i] = new Device(i);
|
||||
}
|
||||
|
||||
// Create and populate host api array:
|
||||
{
|
||||
int numHostApis = instance().hostApiCount();
|
||||
|
||||
hostApis_ = new HostApi*[numHostApis];
|
||||
// Destroy singleton:
|
||||
delete instance_;
|
||||
instance_ = NULL;
|
||||
}
|
||||
|
||||
for (int i = 0; i < numHostApis; ++i)
|
||||
hostApis_[i] = new HostApi(i);
|
||||
}
|
||||
|
||||
// Create null device:
|
||||
nullDevice_ = new Device(paNoDevice);
|
||||
}
|
||||
}
|
||||
|
||||
void System::terminate()
|
||||
{
|
||||
PaError err = paNoError;
|
||||
|
||||
if (initCount_ == 1)
|
||||
{
|
||||
// Destroy null device:
|
||||
delete nullDevice_;
|
||||
|
||||
// Destroy host api array:
|
||||
{
|
||||
if (hostApis_ != NULL)
|
||||
{
|
||||
int numHostApis = instance().hostApiCount();
|
||||
|
||||
for (int i = 0; i < numHostApis; ++i)
|
||||
delete hostApis_[i];
|
||||
|
||||
delete[] hostApis_;
|
||||
hostApis_ = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
// Destroy device array:
|
||||
{
|
||||
if (devices_ != NULL)
|
||||
{
|
||||
int numDevices = instance().deviceCount();
|
||||
|
||||
for (int i = 0; i < numDevices; ++i)
|
||||
delete devices_[i];
|
||||
|
||||
delete[] devices_;
|
||||
devices_ = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
// Terminate the PortAudio system:
|
||||
assert(instance_ != NULL);
|
||||
err = Pa_Terminate();
|
||||
|
||||
// Destroy singleton:
|
||||
delete instance_;
|
||||
instance_ = NULL;
|
||||
}
|
||||
|
||||
if (initCount_ > 0)
|
||||
--initCount_;
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
|
||||
|
||||
System &System::instance()
|
||||
{
|
||||
assert(exists());
|
||||
|
||||
return *instance_;
|
||||
}
|
||||
|
||||
bool System::exists()
|
||||
{
|
||||
return (instance_ != NULL);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
System::HostApiIterator System::hostApisBegin()
|
||||
{
|
||||
System::HostApiIterator tmp;
|
||||
tmp.ptr_ = &hostApis_[0]; // begin (first element)
|
||||
return tmp;
|
||||
}
|
||||
|
||||
System::HostApiIterator System::hostApisEnd()
|
||||
{
|
||||
int count = hostApiCount();
|
||||
|
||||
System::HostApiIterator tmp;
|
||||
tmp.ptr_ = &hostApis_[count]; // end (one past last element)
|
||||
return tmp;
|
||||
}
|
||||
|
||||
HostApi &System::defaultHostApi()
|
||||
{
|
||||
PaHostApiIndex defaultHostApi = Pa_GetDefaultHostApi();
|
||||
|
||||
if (defaultHostApi < 0)
|
||||
throw PaException(defaultHostApi);
|
||||
|
||||
return *hostApis_[defaultHostApi];
|
||||
}
|
||||
|
||||
HostApi &System::hostApiByTypeId(PaHostApiTypeId type)
|
||||
{
|
||||
PaHostApiIndex index = Pa_HostApiTypeIdToHostApiIndex(type);
|
||||
|
||||
if (index < 0)
|
||||
throw PaException(index);
|
||||
|
||||
return *hostApis_[index];
|
||||
}
|
||||
|
||||
HostApi &System::hostApiByIndex(PaHostApiIndex index)
|
||||
{
|
||||
if (index < 0 || index >= hostApiCount())
|
||||
throw PaException(paInternalError);
|
||||
|
||||
return *hostApis_[index];
|
||||
}
|
||||
|
||||
int System::hostApiCount()
|
||||
{
|
||||
PaHostApiIndex count = Pa_GetHostApiCount();
|
||||
|
||||
if (count < 0)
|
||||
throw PaException(count);
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
System::DeviceIterator System::devicesBegin()
|
||||
{
|
||||
DeviceIterator tmp;
|
||||
tmp.ptr_ = &devices_[0];
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
System::DeviceIterator System::devicesEnd()
|
||||
{
|
||||
int count = deviceCount();
|
||||
|
||||
DeviceIterator tmp;
|
||||
tmp.ptr_ = &devices_[count];
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the System's default input Device, or the null Device if none
|
||||
/// was available.
|
||||
//////
|
||||
Device &System::defaultInputDevice()
|
||||
{
|
||||
PaDeviceIndex index = Pa_GetDefaultInputDevice();
|
||||
return deviceByIndex(index);
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the System's default output Device, or the null Device if none
|
||||
/// was available.
|
||||
//////
|
||||
Device &System::defaultOutputDevice()
|
||||
{
|
||||
PaDeviceIndex index = Pa_GetDefaultOutputDevice();
|
||||
return deviceByIndex(index);
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the Device for the given index.
|
||||
/// Will throw a paInternalError equivalent PaException if the given index
|
||||
/// is out of range.
|
||||
//////
|
||||
Device &System::deviceByIndex(PaDeviceIndex index)
|
||||
{
|
||||
if (index < -1 || index >= deviceCount())
|
||||
{
|
||||
throw PaException(paInternalError);
|
||||
}
|
||||
|
||||
if (index == -1)
|
||||
return System::instance().nullDevice();
|
||||
|
||||
return *devices_[index];
|
||||
}
|
||||
|
||||
int System::deviceCount()
|
||||
{
|
||||
PaDeviceIndex count = Pa_GetDeviceCount();
|
||||
|
||||
if (count < 0)
|
||||
throw PaException(count);
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
Device &System::nullDevice()
|
||||
{
|
||||
return *nullDevice_;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
void System::sleep(long msec)
|
||||
{
|
||||
Pa_Sleep(msec);
|
||||
}
|
||||
|
||||
int System::sizeOfSample(PaSampleFormat format)
|
||||
{
|
||||
PaError err = Pa_GetSampleSize(format);
|
||||
if (err < 0)
|
||||
{
|
||||
throw PaException(err);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
System::System()
|
||||
{
|
||||
// (left blank intentionally)
|
||||
}
|
||||
|
||||
System::~System()
|
||||
{
|
||||
// (left blank intentionally)
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
if (initCount_ > 0)
|
||||
--initCount_;
|
||||
|
||||
if (err != paNoError)
|
||||
throw PaException(err);
|
||||
}
|
||||
|
||||
|
||||
System &System::instance()
|
||||
{
|
||||
assert(exists());
|
||||
|
||||
return *instance_;
|
||||
}
|
||||
|
||||
bool System::exists()
|
||||
{
|
||||
return (instance_ != NULL);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
System::HostApiIterator System::hostApisBegin()
|
||||
{
|
||||
System::HostApiIterator tmp;
|
||||
tmp.ptr_ = &hostApis_[0]; // begin (first element)
|
||||
return tmp;
|
||||
}
|
||||
|
||||
System::HostApiIterator System::hostApisEnd()
|
||||
{
|
||||
int count = hostApiCount();
|
||||
|
||||
System::HostApiIterator tmp;
|
||||
tmp.ptr_ = &hostApis_[count]; // end (one past last element)
|
||||
return tmp;
|
||||
}
|
||||
|
||||
HostApi &System::defaultHostApi()
|
||||
{
|
||||
PaHostApiIndex defaultHostApi = Pa_GetDefaultHostApi();
|
||||
|
||||
if (defaultHostApi < 0)
|
||||
throw PaException(defaultHostApi);
|
||||
|
||||
return *hostApis_[defaultHostApi];
|
||||
}
|
||||
|
||||
HostApi &System::hostApiByTypeId(PaHostApiTypeId type)
|
||||
{
|
||||
PaHostApiIndex index = Pa_HostApiTypeIdToHostApiIndex(type);
|
||||
|
||||
if (index < 0)
|
||||
throw PaException(index);
|
||||
|
||||
return *hostApis_[index];
|
||||
}
|
||||
|
||||
HostApi &System::hostApiByIndex(PaHostApiIndex index)
|
||||
{
|
||||
if (index < 0 || index >= hostApiCount())
|
||||
throw PaException(paInternalError);
|
||||
|
||||
return *hostApis_[index];
|
||||
}
|
||||
|
||||
int System::hostApiCount()
|
||||
{
|
||||
PaHostApiIndex count = Pa_GetHostApiCount();
|
||||
|
||||
if (count < 0)
|
||||
throw PaException(count);
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
System::DeviceIterator System::devicesBegin()
|
||||
{
|
||||
DeviceIterator tmp;
|
||||
tmp.ptr_ = &devices_[0];
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
System::DeviceIterator System::devicesEnd()
|
||||
{
|
||||
int count = deviceCount();
|
||||
|
||||
DeviceIterator tmp;
|
||||
tmp.ptr_ = &devices_[count];
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the System's default input Device, or the null Device if none
|
||||
/// was available.
|
||||
//////
|
||||
Device &System::defaultInputDevice()
|
||||
{
|
||||
PaDeviceIndex index = Pa_GetDefaultInputDevice();
|
||||
return deviceByIndex(index);
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the System's default output Device, or the null Device if none
|
||||
/// was available.
|
||||
//////
|
||||
Device &System::defaultOutputDevice()
|
||||
{
|
||||
PaDeviceIndex index = Pa_GetDefaultOutputDevice();
|
||||
return deviceByIndex(index);
|
||||
}
|
||||
|
||||
//////
|
||||
/// Returns the Device for the given index.
|
||||
/// Will throw a paInternalError equivalent PaException if the given index
|
||||
/// is out of range.
|
||||
//////
|
||||
Device &System::deviceByIndex(PaDeviceIndex index)
|
||||
{
|
||||
if (index < -1 || index >= deviceCount())
|
||||
{
|
||||
throw PaException(paInternalError);
|
||||
}
|
||||
|
||||
if (index == -1)
|
||||
return System::instance().nullDevice();
|
||||
|
||||
return *devices_[index];
|
||||
}
|
||||
|
||||
int System::deviceCount()
|
||||
{
|
||||
PaDeviceIndex count = Pa_GetDeviceCount();
|
||||
|
||||
if (count < 0)
|
||||
throw PaException(count);
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
Device &System::nullDevice()
|
||||
{
|
||||
return *nullDevice_;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
void System::sleep(long msec)
|
||||
{
|
||||
Pa_Sleep(msec);
|
||||
}
|
||||
|
||||
int System::sizeOfSample(PaSampleFormat format)
|
||||
{
|
||||
PaError err = Pa_GetSampleSize(format);
|
||||
if (err < 0)
|
||||
{
|
||||
throw PaException(err);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
System::System()
|
||||
{
|
||||
// (left blank intentionally)
|
||||
}
|
||||
|
||||
System::~System()
|
||||
{
|
||||
// (left blank intentionally)
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
} // namespace portaudio
|
||||
|
||||
|
|
|
|||
|
|
@ -2,57 +2,59 @@
|
|||
|
||||
namespace portaudio
|
||||
{
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
Device &System::DeviceIterator::operator*() const
|
||||
{
|
||||
return **ptr_;
|
||||
}
|
||||
Device &System::DeviceIterator::operator*() const
|
||||
{
|
||||
return **ptr_;
|
||||
}
|
||||
|
||||
Device *System::DeviceIterator::operator->() const
|
||||
{
|
||||
return &**this;
|
||||
}
|
||||
Device *System::DeviceIterator::operator->() const
|
||||
{
|
||||
return &**this;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
System::DeviceIterator &System::DeviceIterator::operator++()
|
||||
{
|
||||
++ptr_;
|
||||
return *this;
|
||||
}
|
||||
System::DeviceIterator &System::DeviceIterator::operator++()
|
||||
{
|
||||
++ptr_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
System::DeviceIterator System::DeviceIterator::operator++(int)
|
||||
{
|
||||
System::DeviceIterator prev = *this;
|
||||
++*this;
|
||||
return prev;
|
||||
}
|
||||
System::DeviceIterator System::DeviceIterator::operator++(int)
|
||||
{
|
||||
System::DeviceIterator prev = *this;
|
||||
++*this;
|
||||
return prev;
|
||||
}
|
||||
|
||||
System::DeviceIterator &System::DeviceIterator::operator--()
|
||||
{
|
||||
--ptr_;
|
||||
return *this;
|
||||
}
|
||||
System::DeviceIterator &System::DeviceIterator::operator--()
|
||||
{
|
||||
--ptr_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
System::DeviceIterator System::DeviceIterator::operator--(int)
|
||||
{
|
||||
System::DeviceIterator prev = *this;
|
||||
--*this;
|
||||
return prev;
|
||||
}
|
||||
System::DeviceIterator System::DeviceIterator::operator--(int)
|
||||
{
|
||||
System::DeviceIterator prev = *this;
|
||||
--*this;
|
||||
return prev;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
bool System::DeviceIterator::operator==(const System::DeviceIterator &rhs) const
|
||||
{
|
||||
return (ptr_ == rhs.ptr_);
|
||||
}
|
||||
bool System::DeviceIterator::operator==(const System::DeviceIterator &rhs) const
|
||||
{
|
||||
return (ptr_ == rhs.ptr_);
|
||||
}
|
||||
|
||||
bool System::DeviceIterator::operator!=(const System::DeviceIterator &rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
bool System::DeviceIterator::operator!=(const System::DeviceIterator &rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
} // namespace portaudio
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,57 +2,58 @@
|
|||
|
||||
namespace portaudio
|
||||
{
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
HostApi &System::HostApiIterator::operator*() const
|
||||
{
|
||||
return **ptr_;
|
||||
}
|
||||
HostApi &System::HostApiIterator::operator*() const
|
||||
{
|
||||
return **ptr_;
|
||||
}
|
||||
|
||||
HostApi *System::HostApiIterator::operator->() const
|
||||
{
|
||||
return &**this;
|
||||
}
|
||||
HostApi *System::HostApiIterator::operator->() const
|
||||
{
|
||||
return &**this;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
System::HostApiIterator &System::HostApiIterator::operator++()
|
||||
{
|
||||
++ptr_;
|
||||
return *this;
|
||||
}
|
||||
System::HostApiIterator &System::HostApiIterator::operator++()
|
||||
{
|
||||
++ptr_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
System::HostApiIterator System::HostApiIterator::operator++(int)
|
||||
{
|
||||
System::HostApiIterator prev = *this;
|
||||
++*this;
|
||||
return prev;
|
||||
}
|
||||
System::HostApiIterator System::HostApiIterator::operator++(int)
|
||||
{
|
||||
System::HostApiIterator prev = *this;
|
||||
++*this;
|
||||
return prev;
|
||||
}
|
||||
|
||||
System::HostApiIterator &System::HostApiIterator::operator--()
|
||||
{
|
||||
--ptr_;
|
||||
return *this;
|
||||
}
|
||||
System::HostApiIterator &System::HostApiIterator::operator--()
|
||||
{
|
||||
--ptr_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
System::HostApiIterator System::HostApiIterator::operator--(int)
|
||||
{
|
||||
System::HostApiIterator prev = *this;
|
||||
--*this;
|
||||
return prev;
|
||||
}
|
||||
System::HostApiIterator System::HostApiIterator::operator--(int)
|
||||
{
|
||||
System::HostApiIterator prev = *this;
|
||||
--*this;
|
||||
return prev;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
|
||||
bool System::HostApiIterator::operator==(const System::HostApiIterator &rhs) const
|
||||
{
|
||||
return (ptr_ == rhs.ptr_);
|
||||
}
|
||||
bool System::HostApiIterator::operator==(const System::HostApiIterator &rhs) const
|
||||
{
|
||||
return (ptr_ == rhs.ptr_);
|
||||
}
|
||||
|
||||
bool System::HostApiIterator::operator!=(const System::HostApiIterator &rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
bool System::HostApiIterator::operator!=(const System::HostApiIterator &rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------------------
|
||||
} // namespace portaudio
|
||||
|
||||
|
|
|
|||
|
|
@ -26,13 +26,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -55,9 +55,9 @@
|
|||
JNIEXPORT jint JNICALL Java_com_portaudio_BlockingStream_getReadAvailable
|
||||
(JNIEnv *env, jobject blockingStream)
|
||||
{
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( stream == NULL ) return 0;
|
||||
return Pa_GetStreamReadAvailable( stream );
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( stream == NULL ) return 0;
|
||||
return Pa_GetStreamReadAvailable( stream );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -68,9 +68,9 @@ JNIEXPORT jint JNICALL Java_com_portaudio_BlockingStream_getReadAvailable
|
|||
JNIEXPORT jint JNICALL Java_com_portaudio_BlockingStream_getWriteAvailable
|
||||
(JNIEnv *env, jobject blockingStream)
|
||||
{
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( stream == NULL ) return 0;
|
||||
return Pa_GetStreamWriteAvailable( stream );
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( stream == NULL ) return 0;
|
||||
return Pa_GetStreamWriteAvailable( stream );
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -82,33 +82,33 @@ JNIEXPORT jint JNICALL Java_com_portaudio_BlockingStream_getWriteAvailable
|
|||
JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_writeFloats
|
||||
(JNIEnv *env, jobject blockingStream, jfloatArray buffer, jint numFrames)
|
||||
{
|
||||
jfloat *carr;
|
||||
jint err;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( buffer == NULL )
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
jfloat *carr;
|
||||
jint err;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( buffer == NULL )
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
"null stream buffer");
|
||||
return FALSE;
|
||||
}
|
||||
carr = (*env)->GetFloatArrayElements(env, buffer, NULL);
|
||||
if (carr == NULL)
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
return FALSE;
|
||||
}
|
||||
carr = (*env)->GetFloatArrayElements(env, buffer, NULL);
|
||||
if (carr == NULL)
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
"invalid stream buffer");
|
||||
return FALSE;
|
||||
}
|
||||
err = Pa_WriteStream( stream, carr, numFrames );
|
||||
(*env)->ReleaseFloatArrayElements(env, buffer, carr, 0);
|
||||
if( err == paOutputUnderflowed )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
jpa_CheckError( env, err );
|
||||
return FALSE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
err = Pa_WriteStream( stream, carr, numFrames );
|
||||
(*env)->ReleaseFloatArrayElements(env, buffer, carr, 0);
|
||||
if( err == paOutputUnderflowed )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
jpa_CheckError( env, err );
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -119,33 +119,33 @@ JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_writeFloats
|
|||
JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_readFloats
|
||||
(JNIEnv *env, jobject blockingStream, jfloatArray buffer, jint numFrames)
|
||||
{
|
||||
jfloat *carr;
|
||||
jint err;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( buffer == NULL )
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
jfloat *carr;
|
||||
jint err;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( buffer == NULL )
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
"null stream buffer");
|
||||
return FALSE;
|
||||
}
|
||||
carr = (*env)->GetFloatArrayElements(env, buffer, NULL);
|
||||
if (carr == NULL)
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
return FALSE;
|
||||
}
|
||||
carr = (*env)->GetFloatArrayElements(env, buffer, NULL);
|
||||
if (carr == NULL)
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
"invalid stream buffer");
|
||||
return FALSE;
|
||||
}
|
||||
err = Pa_ReadStream( stream, carr, numFrames );
|
||||
(*env)->ReleaseFloatArrayElements(env, buffer, carr, 0);
|
||||
if( err == paInputOverflowed )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
jpa_CheckError( env, err );
|
||||
return FALSE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
err = Pa_ReadStream( stream, carr, numFrames );
|
||||
(*env)->ReleaseFloatArrayElements(env, buffer, carr, 0);
|
||||
if( err == paInputOverflowed )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
jpa_CheckError( env, err );
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -156,33 +156,33 @@ JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_readFloats
|
|||
JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_writeShorts
|
||||
(JNIEnv *env, jobject blockingStream, jfloatArray buffer, jint numFrames)
|
||||
{
|
||||
jshort *carr;
|
||||
jint err;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( buffer == NULL )
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
jshort *carr;
|
||||
jint err;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( buffer == NULL )
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
"null stream buffer");
|
||||
return FALSE;
|
||||
}
|
||||
carr = (*env)->GetShortArrayElements(env, buffer, NULL);
|
||||
if (carr == NULL)
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
return FALSE;
|
||||
}
|
||||
carr = (*env)->GetShortArrayElements(env, buffer, NULL);
|
||||
if (carr == NULL)
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
"invalid stream buffer");
|
||||
return FALSE;
|
||||
}
|
||||
err = Pa_WriteStream( stream, carr, numFrames );
|
||||
(*env)->ReleaseShortArrayElements(env, buffer, carr, 0);
|
||||
if( err == paOutputUnderflowed )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
jpa_CheckError( env, err );
|
||||
return FALSE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
err = Pa_WriteStream( stream, carr, numFrames );
|
||||
(*env)->ReleaseShortArrayElements(env, buffer, carr, 0);
|
||||
if( err == paOutputUnderflowed )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
jpa_CheckError( env, err );
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -193,33 +193,33 @@ JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_writeShorts
|
|||
JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_readShorts
|
||||
(JNIEnv *env, jobject blockingStream, jfloatArray buffer, jint numFrames)
|
||||
{
|
||||
jshort *carr;
|
||||
jint err;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( buffer == NULL )
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
jshort *carr;
|
||||
jint err;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( buffer == NULL )
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
"null stream buffer");
|
||||
return FALSE;
|
||||
}
|
||||
carr = (*env)->GetShortArrayElements(env, buffer, NULL);
|
||||
if (carr == NULL)
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
return FALSE;
|
||||
}
|
||||
carr = (*env)->GetShortArrayElements(env, buffer, NULL);
|
||||
if (carr == NULL)
|
||||
{
|
||||
(*env)->ThrowNew( env, (*env)->FindClass(env,"java/lang/RuntimeException"),
|
||||
"invalid stream buffer");
|
||||
return FALSE;
|
||||
}
|
||||
err = Pa_ReadStream( stream, carr, numFrames );
|
||||
(*env)->ReleaseShortArrayElements(env, buffer, carr, 0);
|
||||
if( err == paInputOverflowed )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
jpa_CheckError( env, err );
|
||||
return FALSE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
err = Pa_ReadStream( stream, carr, numFrames );
|
||||
(*env)->ReleaseShortArrayElements(env, buffer, carr, 0);
|
||||
if( err == paInputOverflowed )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
jpa_CheckError( env, err );
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -230,9 +230,9 @@ JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_readShorts
|
|||
JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_start
|
||||
(JNIEnv *env, jobject blockingStream )
|
||||
{
|
||||
PaStream *stream = jpa_GetStreamPointer( env, blockingStream );
|
||||
int err = Pa_StartStream( stream );
|
||||
jpa_CheckError( env, err );
|
||||
PaStream *stream = jpa_GetStreamPointer( env, blockingStream );
|
||||
int err = Pa_StartStream( stream );
|
||||
jpa_CheckError( env, err );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -243,9 +243,9 @@ JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_start
|
|||
JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_stop
|
||||
(JNIEnv *env, jobject blockingStream )
|
||||
{
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
int err = Pa_StopStream( stream );
|
||||
jpa_CheckError( env, err );
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
int err = Pa_StopStream( stream );
|
||||
jpa_CheckError( env, err );
|
||||
}
|
||||
/*
|
||||
* Class: com_portaudio_BlockingStream
|
||||
|
|
@ -255,9 +255,9 @@ JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_stop
|
|||
JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_abort
|
||||
(JNIEnv *env, jobject blockingStream )
|
||||
{
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
int err = Pa_AbortStream( stream );
|
||||
jpa_CheckError( env, err );
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
int err = Pa_AbortStream( stream );
|
||||
jpa_CheckError( env, err );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -268,15 +268,15 @@ JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_abort
|
|||
JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_close
|
||||
(JNIEnv *env, jobject blockingStream )
|
||||
{
|
||||
jclass cls;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( stream != NULL )
|
||||
{
|
||||
int err = Pa_CloseStream( stream );
|
||||
jpa_CheckError( env, err );
|
||||
cls = (*env)->GetObjectClass(env, blockingStream);
|
||||
jpa_SetLongField( env, cls, blockingStream, "nativeStream", (jlong) 0 );
|
||||
}
|
||||
jclass cls;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( stream != NULL )
|
||||
{
|
||||
int err = Pa_CloseStream( stream );
|
||||
jpa_CheckError( env, err );
|
||||
cls = (*env)->GetObjectClass(env, blockingStream);
|
||||
jpa_SetLongField( env, cls, blockingStream, "nativeStream", (jlong) 0 );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -287,11 +287,11 @@ JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_close
|
|||
JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_isStopped
|
||||
(JNIEnv *env, jobject blockingStream )
|
||||
{
|
||||
int err;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( stream == NULL ) return 1;
|
||||
err = Pa_IsStreamStopped( stream );
|
||||
return (jpa_CheckError( env, err ) > 0);
|
||||
int err;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( stream == NULL ) return 1;
|
||||
err = Pa_IsStreamStopped( stream );
|
||||
return (jpa_CheckError( env, err ) > 0);
|
||||
}
|
||||
/*
|
||||
* Class: com_portaudio_BlockingStream
|
||||
|
|
@ -301,11 +301,11 @@ JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_isStopped
|
|||
JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_isActive
|
||||
(JNIEnv *env, jobject blockingStream )
|
||||
{
|
||||
int err;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( stream == NULL ) return 0;
|
||||
err = Pa_IsStreamActive( stream );
|
||||
return (jpa_CheckError( env, err ) > 0);
|
||||
int err;
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( stream == NULL ) return 0;
|
||||
err = Pa_IsStreamActive( stream );
|
||||
return (jpa_CheckError( env, err ) > 0);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -317,9 +317,9 @@ JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_isActive
|
|||
JNIEXPORT jdouble JNICALL Java_com_portaudio_BlockingStream_getTime
|
||||
(JNIEnv *env, jobject blockingStream )
|
||||
{
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( stream == NULL ) return 0.0;
|
||||
return Pa_GetStreamTime( stream );
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
if( stream == NULL ) return 0.0;
|
||||
return Pa_GetStreamTime( stream );
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -331,21 +331,22 @@ JNIEXPORT jdouble JNICALL Java_com_portaudio_BlockingStream_getTime
|
|||
JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_getInfo
|
||||
(JNIEnv *env, jobject blockingStream, jobject streamInfo)
|
||||
{
|
||||
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
const PaStreamInfo *info = Pa_GetStreamInfo( stream );
|
||||
if( streamInfo == NULL )
|
||||
{
|
||||
jpa_ThrowError( env, "Invalid stream." );
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Get a reference to obj's class */
|
||||
jclass cls = (*env)->GetObjectClass(env, streamInfo);
|
||||
|
||||
jpa_SetIntField( env, cls, streamInfo, "structVersion", info->structVersion );
|
||||
jpa_SetDoubleField( env, cls, streamInfo, "inputLatency", info->inputLatency );
|
||||
jpa_SetDoubleField( env, cls, streamInfo, "outputLatency", info->outputLatency );
|
||||
jpa_SetDoubleField( env, cls, streamInfo, "sampleRate", info->sampleRate );
|
||||
}
|
||||
|
||||
PaStream *stream =jpa_GetStreamPointer( env, blockingStream );
|
||||
const PaStreamInfo *info = Pa_GetStreamInfo( stream );
|
||||
if( streamInfo == NULL )
|
||||
{
|
||||
jpa_ThrowError( env, "Invalid stream." );
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Get a reference to obj's class */
|
||||
jclass cls = (*env)->GetObjectClass(env, streamInfo);
|
||||
|
||||
jpa_SetIntField( env, cls, streamInfo, "structVersion", info->structVersion );
|
||||
jpa_SetDoubleField( env, cls, streamInfo, "inputLatency", info->inputLatency );
|
||||
jpa_SetDoubleField( env, cls, streamInfo, "outputLatency", info->outputLatency );
|
||||
jpa_SetDoubleField( env, cls, streamInfo, "sampleRate", info->sampleRate );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,13 +26,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getVersion
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
return Pa_GetVersion();
|
||||
return Pa_GetVersion();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -59,7 +59,7 @@ JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getVersion
|
|||
JNIEXPORT jstring JNICALL Java_com_portaudio_PortAudio_getVersionText
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
return (*env)->NewStringUTF(env, Pa_GetVersionText() );
|
||||
return (*env)->NewStringUTF(env, Pa_GetVersionText() );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -70,8 +70,8 @@ JNIEXPORT jstring JNICALL Java_com_portaudio_PortAudio_getVersionText
|
|||
JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_initialize
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
PaError err = Pa_Initialize();
|
||||
jpa_CheckError( env, err );
|
||||
PaError err = Pa_Initialize();
|
||||
jpa_CheckError( env, err );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -82,8 +82,8 @@ JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_initialize
|
|||
JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_terminate
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
PaError err = Pa_Terminate();
|
||||
jpa_CheckError( env, err );
|
||||
PaError err = Pa_Terminate();
|
||||
jpa_CheckError( env, err );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -94,8 +94,8 @@ JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_terminate
|
|||
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDeviceCount
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
jint count = Pa_GetDeviceCount();
|
||||
return jpa_CheckError( env, count );
|
||||
jint count = Pa_GetDeviceCount();
|
||||
return jpa_CheckError( env, count );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -106,27 +106,27 @@ JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDeviceCount
|
|||
JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_getDeviceInfo
|
||||
(JNIEnv *env, jclass clazz, jint index, jobject deviceInfo)
|
||||
{
|
||||
const PaDeviceInfo *info;
|
||||
/* Get a reference to obj's class */
|
||||
jclass cls = (*env)->GetObjectClass(env, deviceInfo);
|
||||
|
||||
info = Pa_GetDeviceInfo( index );
|
||||
if( info == NULL )
|
||||
{
|
||||
jpa_ThrowError( env, "Pa_GetDeviceInfo returned NULL." );
|
||||
}
|
||||
else
|
||||
{
|
||||
jpa_SetStringField( env, cls, deviceInfo, "name", info->name );
|
||||
jpa_SetIntField( env, cls, deviceInfo, "maxInputChannels", info->maxInputChannels );
|
||||
jpa_SetIntField( env, cls, deviceInfo, "maxOutputChannels", info->maxOutputChannels );
|
||||
jpa_SetIntField( env, cls, deviceInfo, "hostApi", info->hostApi );
|
||||
jpa_SetDoubleField( env, cls, deviceInfo, "defaultSampleRate", info->defaultSampleRate );
|
||||
jpa_SetDoubleField( env, cls, deviceInfo, "defaultLowInputLatency", info->defaultLowInputLatency );
|
||||
jpa_SetDoubleField( env, cls, deviceInfo, "defaultLowInputLatency", info->defaultHighInputLatency );
|
||||
jpa_SetDoubleField( env, cls, deviceInfo, "defaultLowOutputLatency", info->defaultLowOutputLatency );
|
||||
jpa_SetDoubleField( env, cls, deviceInfo, "defaultHighOutputLatency", info->defaultHighOutputLatency );
|
||||
}
|
||||
const PaDeviceInfo *info;
|
||||
/* Get a reference to obj's class */
|
||||
jclass cls = (*env)->GetObjectClass(env, deviceInfo);
|
||||
|
||||
info = Pa_GetDeviceInfo( index );
|
||||
if( info == NULL )
|
||||
{
|
||||
jpa_ThrowError( env, "Pa_GetDeviceInfo returned NULL." );
|
||||
}
|
||||
else
|
||||
{
|
||||
jpa_SetStringField( env, cls, deviceInfo, "name", info->name );
|
||||
jpa_SetIntField( env, cls, deviceInfo, "maxInputChannels", info->maxInputChannels );
|
||||
jpa_SetIntField( env, cls, deviceInfo, "maxOutputChannels", info->maxOutputChannels );
|
||||
jpa_SetIntField( env, cls, deviceInfo, "hostApi", info->hostApi );
|
||||
jpa_SetDoubleField( env, cls, deviceInfo, "defaultSampleRate", info->defaultSampleRate );
|
||||
jpa_SetDoubleField( env, cls, deviceInfo, "defaultLowInputLatency", info->defaultLowInputLatency );
|
||||
jpa_SetDoubleField( env, cls, deviceInfo, "defaultLowInputLatency", info->defaultHighInputLatency );
|
||||
jpa_SetDoubleField( env, cls, deviceInfo, "defaultLowOutputLatency", info->defaultLowOutputLatency );
|
||||
jpa_SetDoubleField( env, cls, deviceInfo, "defaultHighOutputLatency", info->defaultHighOutputLatency );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -137,8 +137,8 @@ JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_getDeviceInfo
|
|||
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getHostApiCount
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
jint count = Pa_GetHostApiCount();
|
||||
return jpa_CheckError( env, count );
|
||||
jint count = Pa_GetHostApiCount();
|
||||
return jpa_CheckError( env, count );
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -150,7 +150,7 @@ JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getHostApiCount
|
|||
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_hostApiTypeIdToHostApiIndex
|
||||
(JNIEnv *env, jclass clazz, jint hostApiType)
|
||||
{
|
||||
return Pa_HostApiTypeIdToHostApiIndex( (PaHostApiTypeId) hostApiType );
|
||||
return Pa_HostApiTypeIdToHostApiIndex( (PaHostApiTypeId) hostApiType );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -161,7 +161,7 @@ JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_hostApiTypeIdToHostApiIndex
|
|||
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_hostApiDeviceIndexToDeviceIndex
|
||||
(JNIEnv *env, jclass clazz, jint hostApiIndex, jint apiDeviceIndex)
|
||||
{
|
||||
return Pa_HostApiDeviceIndexToDeviceIndex( hostApiIndex, apiDeviceIndex );
|
||||
return Pa_HostApiDeviceIndexToDeviceIndex( hostApiIndex, apiDeviceIndex );
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -173,24 +173,24 @@ JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_hostApiDeviceIndexToDeviceIn
|
|||
JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_getHostApiInfo
|
||||
(JNIEnv *env, jclass clazz, jint index, jobject hostApiInfo)
|
||||
{
|
||||
const PaHostApiInfo *info;
|
||||
/* Get a reference to obj's class */
|
||||
jclass cls = (*env)->GetObjectClass(env, hostApiInfo);
|
||||
|
||||
info = Pa_GetHostApiInfo( index );
|
||||
if( info == NULL )
|
||||
{
|
||||
jpa_ThrowError( env, "Pa_GetHostApiInfo returned NULL." );
|
||||
}
|
||||
else
|
||||
{
|
||||
jpa_SetIntField( env, cls, hostApiInfo, "version", info->structVersion );
|
||||
jpa_SetIntField( env, cls, hostApiInfo, "type", info->type );
|
||||
jpa_SetStringField( env, cls, hostApiInfo, "name", info->name );
|
||||
jpa_SetIntField( env, cls, hostApiInfo, "deviceCount", info->deviceCount );
|
||||
jpa_SetIntField( env, cls, hostApiInfo, "defaultInputDevice", info->defaultInputDevice );
|
||||
jpa_SetIntField( env, cls, hostApiInfo, "defaultOutputDevice", info->defaultOutputDevice );
|
||||
}
|
||||
const PaHostApiInfo *info;
|
||||
/* Get a reference to obj's class */
|
||||
jclass cls = (*env)->GetObjectClass(env, hostApiInfo);
|
||||
|
||||
info = Pa_GetHostApiInfo( index );
|
||||
if( info == NULL )
|
||||
{
|
||||
jpa_ThrowError( env, "Pa_GetHostApiInfo returned NULL." );
|
||||
}
|
||||
else
|
||||
{
|
||||
jpa_SetIntField( env, cls, hostApiInfo, "version", info->structVersion );
|
||||
jpa_SetIntField( env, cls, hostApiInfo, "type", info->type );
|
||||
jpa_SetStringField( env, cls, hostApiInfo, "name", info->name );
|
||||
jpa_SetIntField( env, cls, hostApiInfo, "deviceCount", info->deviceCount );
|
||||
jpa_SetIntField( env, cls, hostApiInfo, "defaultInputDevice", info->defaultInputDevice );
|
||||
jpa_SetIntField( env, cls, hostApiInfo, "defaultOutputDevice", info->defaultOutputDevice );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -201,8 +201,8 @@ JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_getHostApiInfo
|
|||
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDefaultInputDevice
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
jint deviceId = Pa_GetDefaultInputDevice();
|
||||
return jpa_CheckError( env, deviceId );
|
||||
jint deviceId = Pa_GetDefaultInputDevice();
|
||||
return jpa_CheckError( env, deviceId );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -213,8 +213,8 @@ JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDefaultInputDevice
|
|||
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDefaultOutputDevice
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
jint deviceId = Pa_GetDefaultOutputDevice();
|
||||
return jpa_CheckError( env, deviceId );
|
||||
jint deviceId = Pa_GetDefaultOutputDevice();
|
||||
return jpa_CheckError( env, deviceId );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -225,8 +225,8 @@ JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDefaultOutputDevice
|
|||
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDefaultHostApi
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
jint deviceId = Pa_GetDefaultHostApi();
|
||||
return jpa_CheckError( env, deviceId );
|
||||
jint deviceId = Pa_GetDefaultHostApi();
|
||||
return jpa_CheckError( env, deviceId );
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -237,13 +237,13 @@ JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDefaultHostApi
|
|||
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_isFormatSupported
|
||||
(JNIEnv *env, jclass clazz, jobject inParams, jobject outParams, jint sampleRate )
|
||||
{
|
||||
PaStreamParameters myInParams, *paInParams;
|
||||
PaStreamParameters myOutParams, *paOutParams;
|
||||
|
||||
paInParams = jpa_FillStreamParameters( env, inParams, &myInParams );
|
||||
paOutParams = jpa_FillStreamParameters( env, outParams, &myOutParams );
|
||||
|
||||
return Pa_IsFormatSupported( paInParams, paOutParams, sampleRate );
|
||||
PaStreamParameters myInParams, *paInParams;
|
||||
PaStreamParameters myOutParams, *paOutParams;
|
||||
|
||||
paInParams = jpa_FillStreamParameters( env, inParams, &myInParams );
|
||||
paOutParams = jpa_FillStreamParameters( env, outParams, &myOutParams );
|
||||
|
||||
return Pa_IsFormatSupported( paInParams, paOutParams, sampleRate );
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -255,25 +255,25 @@ JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_isFormatSupported
|
|||
JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_openStream
|
||||
(JNIEnv *env, jclass clazz, jobject blockingStream, jobject inParams, jobject outParams, jint sampleRate, jint framesPerBuffer, jint flags )
|
||||
{
|
||||
int err;
|
||||
PaStreamParameters myInParams, *paInParams;
|
||||
PaStreamParameters myOutParams, *paOutParams;
|
||||
PaStream *stream;
|
||||
|
||||
paInParams = jpa_FillStreamParameters( env, inParams, &myInParams );
|
||||
paOutParams = jpa_FillStreamParameters( env, outParams, &myOutParams );
|
||||
err = Pa_OpenStream( &stream, paInParams, paOutParams, sampleRate, framesPerBuffer, flags, NULL, NULL );
|
||||
if( jpa_CheckError( env, err ) == 0 )
|
||||
{
|
||||
jclass cls = (*env)->GetObjectClass(env, blockingStream);
|
||||
jpa_SetLongField( env, cls, blockingStream, "nativeStream", (jlong) stream );
|
||||
if( paInParams != NULL )
|
||||
{
|
||||
jpa_SetIntField( env, cls, blockingStream, "inputFormat", paInParams->sampleFormat );
|
||||
}
|
||||
if( paOutParams != NULL )
|
||||
{
|
||||
jpa_SetIntField( env, cls, blockingStream, "outputFormat", paOutParams->sampleFormat );
|
||||
}
|
||||
}
|
||||
int err;
|
||||
PaStreamParameters myInParams, *paInParams;
|
||||
PaStreamParameters myOutParams, *paOutParams;
|
||||
PaStream *stream;
|
||||
|
||||
paInParams = jpa_FillStreamParameters( env, inParams, &myInParams );
|
||||
paOutParams = jpa_FillStreamParameters( env, outParams, &myOutParams );
|
||||
err = Pa_OpenStream( &stream, paInParams, paOutParams, sampleRate, framesPerBuffer, flags, NULL, NULL );
|
||||
if( jpa_CheckError( env, err ) == 0 )
|
||||
{
|
||||
jclass cls = (*env)->GetObjectClass(env, blockingStream);
|
||||
jpa_SetLongField( env, cls, blockingStream, "nativeStream", (jlong) stream );
|
||||
if( paInParams != NULL )
|
||||
{
|
||||
jpa_SetIntField( env, cls, blockingStream, "inputFormat", paInParams->sampleFormat );
|
||||
}
|
||||
if( paOutParams != NULL )
|
||||
{
|
||||
jpa_SetIntField( env, cls, blockingStream, "outputFormat", paOutParams->sampleFormat );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,13 +26,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -45,14 +45,14 @@ jint jpa_GetIntField( JNIEnv *env, jclass cls, jobject obj, const char *fieldNam
|
|||
/* Look for the instance field maxInputChannels in cls */
|
||||
jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "I");
|
||||
if (fid == NULL)
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find integer JNI field." );
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return (*env)->GetIntField(env, obj, fid );
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find integer JNI field." );
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return (*env)->GetIntField(env, obj, fid );
|
||||
}
|
||||
}
|
||||
|
||||
void jpa_SetIntField( JNIEnv *env, jclass cls, jobject obj, const char *fieldName, jint value )
|
||||
|
|
@ -60,13 +60,13 @@ void jpa_SetIntField( JNIEnv *env, jclass cls, jobject obj, const char *fieldNam
|
|||
/* Look for the instance field maxInputChannels in cls */
|
||||
jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "I");
|
||||
if (fid == NULL)
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find integer JNI field." );
|
||||
}
|
||||
else
|
||||
{
|
||||
(*env)->SetIntField(env, obj, fid, value );
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find integer JNI field." );
|
||||
}
|
||||
else
|
||||
{
|
||||
(*env)->SetIntField(env, obj, fid, value );
|
||||
}
|
||||
}
|
||||
|
||||
jlong jpa_GetLongField( JNIEnv *env, jclass cls, jobject obj, const char *fieldName )
|
||||
|
|
@ -74,14 +74,14 @@ jlong jpa_GetLongField( JNIEnv *env, jclass cls, jobject obj, const char *fieldN
|
|||
/* Look for the instance field maxInputChannels in cls */
|
||||
jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "J");
|
||||
if (fid == NULL)
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find long JNI field." );
|
||||
return 0L;
|
||||
}
|
||||
else
|
||||
{
|
||||
return (*env)->GetLongField(env, obj, fid );
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find long JNI field." );
|
||||
return 0L;
|
||||
}
|
||||
else
|
||||
{
|
||||
return (*env)->GetLongField(env, obj, fid );
|
||||
}
|
||||
}
|
||||
|
||||
void jpa_SetLongField( JNIEnv *env, jclass cls, jobject obj, const char *fieldName, jlong value )
|
||||
|
|
@ -89,13 +89,13 @@ void jpa_SetLongField( JNIEnv *env, jclass cls, jobject obj, const char *fieldNa
|
|||
/* Look for the instance field maxInputChannels in cls */
|
||||
jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "J");
|
||||
if (fid == NULL)
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find long JNI field." );
|
||||
}
|
||||
else
|
||||
{
|
||||
(*env)->SetLongField(env, obj, fid, value );
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find long JNI field." );
|
||||
}
|
||||
else
|
||||
{
|
||||
(*env)->SetLongField(env, obj, fid, value );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -104,13 +104,13 @@ void jpa_SetDoubleField( JNIEnv *env, jclass cls, jobject obj, const char *field
|
|||
/* Look for the instance field maxInputChannels in cls */
|
||||
jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "D");
|
||||
if (fid == NULL)
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find double JNI field." );
|
||||
}
|
||||
else
|
||||
{
|
||||
(*env)->SetDoubleField(env, obj, fid, value );
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find double JNI field." );
|
||||
}
|
||||
else
|
||||
{
|
||||
(*env)->SetDoubleField(env, obj, fid, value );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -119,14 +119,14 @@ jdouble jpa_GetDoubleField( JNIEnv *env, jclass cls, jobject obj, const char *fi
|
|||
/* Look for the instance field maxInputChannels in cls */
|
||||
jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "D");
|
||||
if (fid == NULL)
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find double JNI field." );
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return (*env)->GetDoubleField(env, obj, fid );
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find double JNI field." );
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return (*env)->GetDoubleField(env, obj, fid );
|
||||
}
|
||||
}
|
||||
|
||||
void jpa_SetStringField( JNIEnv *env, jclass cls, jobject obj, const char *fieldName, const char *value )
|
||||
|
|
@ -134,75 +134,75 @@ void jpa_SetStringField( JNIEnv *env, jclass cls, jobject obj, const char *field
|
|||
/* Look for the instance field maxInputChannels in cls */
|
||||
jfieldID fid = (*env)->GetFieldID(env, cls, fieldName, "Ljava/lang/String;");
|
||||
if (fid == NULL)
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find String JNI field." );
|
||||
}
|
||||
else
|
||||
{
|
||||
jstring jstr = (*env)->NewStringUTF(env, value);
|
||||
if (jstr == NULL)
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot create new String." );
|
||||
}
|
||||
else
|
||||
{
|
||||
(*env)->SetObjectField(env, obj, fid, jstr );
|
||||
}
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot find String JNI field." );
|
||||
}
|
||||
else
|
||||
{
|
||||
jstring jstr = (*env)->NewStringUTF(env, value);
|
||||
if (jstr == NULL)
|
||||
{
|
||||
jpa_ThrowError( env, "Cannot create new String." );
|
||||
}
|
||||
else
|
||||
{
|
||||
(*env)->SetObjectField(env, obj, fid, jstr );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PaStreamParameters *jpa_FillStreamParameters( JNIEnv *env, jobject jstreamParam, PaStreamParameters *myParams )
|
||||
{
|
||||
jclass cls;
|
||||
jclass cls;
|
||||
|
||||
if( jstreamParam == NULL ) return NULL; // OK, not an error
|
||||
|
||||
if( jstreamParam == NULL ) return NULL; // OK, not an error
|
||||
cls = (*env)->GetObjectClass(env, jstreamParam);
|
||||
|
||||
myParams->channelCount = jpa_GetIntField( env, cls, jstreamParam, "channelCount" );
|
||||
myParams->device = jpa_GetIntField( env, cls, jstreamParam, "device" );
|
||||
myParams->sampleFormat = jpa_GetIntField( env, cls, jstreamParam, "sampleFormat" );
|
||||
myParams->suggestedLatency = jpa_GetDoubleField( env, cls, jstreamParam, "suggestedLatency" );
|
||||
myParams->hostApiSpecificStreamInfo = NULL;
|
||||
|
||||
cls = (*env)->GetObjectClass(env, jstreamParam);
|
||||
|
||||
myParams->channelCount = jpa_GetIntField( env, cls, jstreamParam, "channelCount" );
|
||||
myParams->device = jpa_GetIntField( env, cls, jstreamParam, "device" );
|
||||
myParams->sampleFormat = jpa_GetIntField( env, cls, jstreamParam, "sampleFormat" );
|
||||
myParams->suggestedLatency = jpa_GetDoubleField( env, cls, jstreamParam, "suggestedLatency" );
|
||||
myParams->hostApiSpecificStreamInfo = NULL;
|
||||
|
||||
return myParams;
|
||||
return myParams;
|
||||
}
|
||||
|
||||
// Create an exception that will be thrown when we return from the JNI call.
|
||||
jint jpa_ThrowError( JNIEnv *env, const char *message )
|
||||
{
|
||||
return (*env)->ThrowNew(env, (*env)->FindClass( env, "java/lang/RuntimeException"),
|
||||
return (*env)->ThrowNew(env, (*env)->FindClass( env, "java/lang/RuntimeException"),
|
||||
message );
|
||||
}
|
||||
|
||||
// Throw an exception on error.
|
||||
jint jpa_CheckError( JNIEnv *env, PaError err )
|
||||
{
|
||||
if( err == -1 )
|
||||
{
|
||||
if( err == -1 )
|
||||
{
|
||||
return jpa_ThrowError( env, "-1, possibly no available default device" );
|
||||
}
|
||||
else if( err < 0 )
|
||||
{
|
||||
if( err == paUnanticipatedHostError )
|
||||
{
|
||||
const PaHostErrorInfo *hostErrorInfo = Pa_GetLastHostErrorInfo();
|
||||
return jpa_ThrowError( env, hostErrorInfo->errorText );
|
||||
}
|
||||
else
|
||||
{
|
||||
return jpa_ThrowError( env, Pa_GetErrorText( err ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return err;
|
||||
}
|
||||
if( err == paUnanticipatedHostError )
|
||||
{
|
||||
const PaHostErrorInfo *hostErrorInfo = Pa_GetLastHostErrorInfo();
|
||||
return jpa_ThrowError( env, hostErrorInfo->errorText );
|
||||
}
|
||||
else
|
||||
{
|
||||
return jpa_ThrowError( env, Pa_GetErrorText( err ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
// Get the stream pointer from a BlockingStream long field.
|
||||
PaStream *jpa_GetStreamPointer( JNIEnv *env, jobject blockingStream )
|
||||
{
|
||||
jclass cls = (*env)->GetObjectClass(env, blockingStream);
|
||||
return (PaStream *) jpa_GetLongField( env, cls, blockingStream, "nativeStream" );
|
||||
jclass cls = (*env)->GetObjectClass(env, blockingStream);
|
||||
return (PaStream *) jpa_GetLongField( env, cls, blockingStream, "nativeStream" );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,13 +26,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ Pa_GetStreamReadAvailable @31
|
|||
Pa_GetStreamWriteAvailable @32
|
||||
Pa_GetSampleSize @33
|
||||
Pa_Sleep @34
|
||||
Pa_GetVersionInfo @35
|
||||
PaAsio_GetAvailableBufferSizes @50
|
||||
PaAsio_ShowControlPanel @51
|
||||
PaUtil_InitializeX86PlainConverters @52
|
||||
|
|
@ -56,4 +55,3 @@ PaWasapi_GetJackDescription @66
|
|||
PaWasapi_SetStreamStateHandler @68
|
||||
PaWasapiWinrt_SetDefaultDeviceId @67
|
||||
PaWasapiWinrt_PopulateDeviceList @69
|
||||
PaWasapi_GetIMMDevice @70
|
||||
|
|
|
|||
|
|
@ -38,25 +38,16 @@ Pa_GetStreamReadAvailable @31
|
|||
Pa_GetStreamWriteAvailable @32
|
||||
Pa_GetSampleSize @33
|
||||
Pa_Sleep @34
|
||||
Pa_GetVersionInfo @35
|
||||
@DEF_EXCLUDE_ASIO_SYMBOLS@PaAsio_GetAvailableBufferSizes @50
|
||||
@DEF_EXCLUDE_ASIO_SYMBOLS@PaAsio_ShowControlPanel @51
|
||||
@DEF_EXCLUDE_X86_PLAIN_CONVERTERS@PaUtil_InitializeX86PlainConverters @52
|
||||
@DEF_EXCLUDE_ASIO_SYMBOLS@PaAsio_GetInputChannelName @53
|
||||
@DEF_EXCLUDE_ASIO_SYMBOLS@PaAsio_GetOutputChannelName @54
|
||||
PaUtil_SetDebugPrintFunction @55
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetAudioClient @56
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_UpdateDeviceList @57
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetDeviceCurrentFormat @58
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetDeviceDefaultFormat @59
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetDeviceMixFormat @60
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetDeviceRole @61
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_ThreadPriorityBoost @62
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_ThreadPriorityRevert @63
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetFramesPerHostBuffer @64
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetJackCount @65
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetJackDescription @66
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_SetStreamStateHandler @68
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapiWinrt_SetDefaultDeviceId @67
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapiWinrt_PopulateDeviceList @69
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetIMMDevice @70
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetDeviceDefaultFormat @56
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetDeviceRole @57
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_ThreadPriorityBoost @58
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_ThreadPriorityRevert @59
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetFramesPerHostBuffer @60
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetJackDescription @61
|
||||
@DEF_EXCLUDE_WASAPI_SYMBOLS@PaWasapi_GetJackCount @62
|
||||
|
|
|
|||
BIN
config.guess
vendored
BIN
config.guess
vendored
Binary file not shown.
BIN
config.sub
vendored
BIN
config.sub
vendored
Binary file not shown.
BIN
configure
vendored
BIN
configure
vendored
Binary file not shown.
90
configure.in
90
configure.in
|
|
@ -11,15 +11,6 @@ dnl Init autoconf and make sure configure is being called
|
|||
dnl from the right directory
|
||||
AC_INIT([include/portaudio.h])
|
||||
|
||||
dnl This is is for testing compilation on Mac OS
|
||||
PAMAC_TEST_PROGRAM="
|
||||
/* cdefs.h checks for supported architectures. */
|
||||
#include <sys/cdefs.h>
|
||||
int main() {
|
||||
return 0;
|
||||
}
|
||||
"
|
||||
|
||||
dnl Define build, build_cpu, build_vendor, build_os
|
||||
AC_CANONICAL_BUILD
|
||||
dnl Define host, host_cpu, host_vendor, host_os
|
||||
|
|
@ -213,22 +204,82 @@ case "${host_os}" in
|
|||
|
||||
AC_DEFINE(PA_USE_COREAUDIO,1)
|
||||
|
||||
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/unix -Wno-deprecated"
|
||||
LIBS="-framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework CoreFoundation -framework CoreServices"
|
||||
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/unix -Wno-deprecated -Werror"
|
||||
LIBS="-framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework Carbon"
|
||||
|
||||
if test "x$enable_mac_universal" = "xyes" ; then
|
||||
mac_version_min="-mmacosx-version-min=10.6"
|
||||
mac_sysroot="-isysroot $(xcrun --sdk macosx --show-sdk-path)"
|
||||
case `xcodebuild -version | sed -n 's/Xcode \(.*\)/\1/p'` in
|
||||
|
||||
3.0|3.1)
|
||||
dnl In pre-3.2 versions of Xcode, xcodebuild doesn't
|
||||
dnl support -sdk, so we can't use that to look for
|
||||
dnl SDKs. However, in those versions of Xcode, the
|
||||
dnl SDKs are under /Developer/SDKs, so we can just look
|
||||
dnl there. Also, we assume they had no SDKs later
|
||||
dnl than 10.5, as 3.2 was the version that came with
|
||||
dnl 10.6, at least if the Wikipedia page for Xcode
|
||||
dnl is to be believed.
|
||||
if [[ -d /Developer/SDKs/MacOSX10.5.sdk ]] ; then
|
||||
mac_version_min="-mmacosx-version-min=10.3"
|
||||
mac_sysroot="-isysroot /Developer/SDKs/MacOSX10.5.sdk"
|
||||
else
|
||||
mac_version_min="-mmacosx-version-min=10.3"
|
||||
mac_sysroot="-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
dnl In 3.2 and later, xcodebuild supports -sdk, and, in
|
||||
dnl 4.3 and later, the SDKs aren't under /Developer/SDKs
|
||||
dnl as there *is* no /Developer, so we use -sdk to check
|
||||
dnl what SDKs are available and to get the full path of
|
||||
dnl the SDKs.
|
||||
if xcodebuild -version -sdk macosx10.5 Path >/dev/null 2>&1 ; then
|
||||
mac_version_min="-mmacosx-version-min=10.3"
|
||||
mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.5 Path`"
|
||||
elif xcodebuild -version -sdk macosx10.6 Path >/dev/null 2>&1 ; then
|
||||
mac_version_min="-mmacosx-version-min=10.4"
|
||||
mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.6 Path`"
|
||||
elif xcodebuild -version -sdk macosx10.7 Path >/dev/null 2>&1 ; then
|
||||
mac_version_min="-mmacosx-version-min=10.4"
|
||||
mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.7 Path`"
|
||||
elif xcodebuild -version -sdk macosx10.8 Path >/dev/null 2>&1 ; then
|
||||
mac_version_min="-mmacosx-version-min=10.4"
|
||||
mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.8 Path`"
|
||||
elif xcodebuild -version -sdk macosx10.9 Path >/dev/null 2>&1 ; then
|
||||
mac_version_min="-mmacosx-version-min=10.4"
|
||||
mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.9 Path`"
|
||||
elif xcodebuild -version -sdk macosx10.10 Path >/dev/null 2>&1 ; then
|
||||
mac_version_min="-mmacosx-version-min=10.4"
|
||||
mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.10 Path`"
|
||||
elif xcodebuild -version -sdk macosx10.11 Path >/dev/null 2>&1 ; then
|
||||
mac_version_min="-mmacosx-version-min=10.4"
|
||||
mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.11 Path`"
|
||||
elif xcodebuild -version -sdk macosx10.12 Path >/dev/null 2>&1 ; then
|
||||
mac_version_min="-mmacosx-version-min=10.4"
|
||||
mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.12 Path`"
|
||||
elif xcodebuild -version -sdk macosx10.13 Path >/dev/null 2>&1 ; then
|
||||
mac_version_min="-mmacosx-version-min=10.4"
|
||||
mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.13 Path`"
|
||||
elif xcodebuild -version -sdk macosx10.14 Path >/dev/null 2>&1 ; then
|
||||
mac_version_min="-mmacosx-version-min=10.4"
|
||||
mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.14 Path`"
|
||||
elif xcodebuild -version -sdk macosx10.15 Path >/dev/null 2>&1 ; then
|
||||
mac_version_min="-mmacosx-version-min=10.4"
|
||||
mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.15 Path`"
|
||||
else
|
||||
AC_MSG_ERROR([Could not find 10.5 to 10.13 SDK.])
|
||||
fi
|
||||
esac
|
||||
|
||||
dnl Pick which architectures to build for based on what
|
||||
dnl the compiler and SDK supports.
|
||||
dnl the compiler supports.
|
||||
mac_arches=""
|
||||
for arch in x86_64 arm64
|
||||
for arch in x86_64
|
||||
do
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -arch $arch"
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_SOURCE([$PAMAC_TEST_PROGRAM])],
|
||||
AC_TRY_COMPILE([], [return 0;],
|
||||
[
|
||||
if [[ -z "$mac_arches" ]] ; then
|
||||
mac_arches="-arch $arch"
|
||||
|
|
@ -265,7 +316,6 @@ case "${host_os}" in
|
|||
#VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
|
||||
#CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
|
||||
CFLAGS="$CFLAGS -I$DXDIR/include -UPA_USE_DS -DPA_USE_DS=1"
|
||||
INCLUDES="$INCLUDES pa_win_ds.h pa_win_waveformat.h"
|
||||
fi
|
||||
|
||||
if [[ "x$with_asio" = "xyes" ]]; then
|
||||
|
|
@ -274,7 +324,6 @@ case "${host_os}" in
|
|||
LIBS="${LIBS} -lwinmm -lm -lole32 -luuid"
|
||||
DLL_LIBS="${DLL_LIBS} -lwinmm -lm -lole32 -luuid"
|
||||
CFLAGS="$CFLAGS -ffast-math -fomit-frame-pointer -I\$(top_srcdir)/src/hostapi/asio -I$ASIODIR/host/pc -I$ASIODIR/common -I$ASIODIR/host -UPA_USE_ASIO -DPA_USE_ASIO=1 -DWINDOWS"
|
||||
INCLUDES="$INCLUDES pa_asio.h"
|
||||
|
||||
dnl Setting the windows version flags below resolves a conflict between Interlocked*
|
||||
dnl definitions in mingw winbase.h and Interlocked* hacks in ASIO SDK combase.h
|
||||
|
|
@ -293,7 +342,6 @@ case "${host_os}" in
|
|||
#VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
|
||||
#CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
|
||||
CFLAGS="$CFLAGS -I$DXDIR/include -UPA_USE_WDMKS -DPA_USE_WDMKS=1"
|
||||
INCLUDES="$INCLUDES pa_win_wdmks.h"
|
||||
fi
|
||||
|
||||
if [[ "x$with_wmme" = "xyes" ]]; then
|
||||
|
|
@ -301,7 +349,6 @@ case "${host_os}" in
|
|||
LIBS="${LIBS} -lwinmm -lm -lole32 -luuid"
|
||||
DLL_LIBS="${DLL_LIBS} -lwinmm"
|
||||
CFLAGS="$CFLAGS -UPA_USE_WMME -DPA_USE_WMME=1"
|
||||
INCLUDES="$INCLUDES pa_win_wmme.h pa_win_waveformat.h"
|
||||
fi
|
||||
|
||||
if [[ "x$with_wasapi" = "xyes" ]]; then
|
||||
|
|
@ -309,7 +356,6 @@ case "${host_os}" in
|
|||
LIBS="${LIBS} -lwinmm -lm -lole32 -luuid"
|
||||
DLL_LIBS="${DLL_LIBS} -lwinmm -lole32"
|
||||
CFLAGS="$CFLAGS -UPA_USE_WASAPI -DPA_USE_WASAPI=1"
|
||||
INCLUDES="$INCLUDES pa_win_wasapi.h pa_win_waveformat.h"
|
||||
fi
|
||||
;;
|
||||
|
||||
|
|
|
|||
20207
configure~
20207
configure~
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
|
@ -3,11 +3,11 @@
|
|||
|
||||
@section comp_mac_ca_1 Requirements
|
||||
|
||||
* OS X 10.6 or later. PortAudio v19.7 currently only compiles and runs on OS X version 10.6 or later.
|
||||
* OS X 10.4 or later. PortAudio v19 currently only compiles and runs on OS X version 10.4 or later. Because of its heavy reliance on memory barriers, it's not clear how easy it would be to back-port PortAudio to OS X version 10.3. Leopard support requires the 2007 snapshot or later.
|
||||
|
||||
* Apple's Xcode and its related tools installed in the default location. There is no Xcode project for PortAudio.
|
||||
|
||||
* Mac 10.6 SDK. Look for "/Developer/SDKs/MacOSX10.6.sdk" folder on your system. It may be installed with XCode. If not then you can download it from Apple Developer Connection. http://connect.apple.com/
|
||||
* Mac 10.4 SDK. Look for "/Developer/SDKs/MacOSX10.4u.sdk" folder on your system. It may be installed with XCode. If not then you can download it from Apple Developer Connection. http://connect.apple.com/
|
||||
|
||||
@section comp_mac_ca_2 Building
|
||||
|
||||
|
|
@ -29,7 +29,7 @@ There are a variety of other options for building PortAudio. The default describ
|
|||
|
||||
@subsection comp_mac_ca_3.1 Building Non-Universal Libraries
|
||||
|
||||
By default, PortAudio is built as a universal binary. This includes 64-bit versions if you are compiling on 10.6, Snow Leopard. If you want a "thin", or single architecture library, you have two options:
|
||||
By default, PortAudio is built as a universal binary. This includes 64-bit versions if you are compiling on 10.5, Leopard. If you want a "thin", or single architecture library, you have two options:
|
||||
|
||||
* build a non-universal library using configure options.
|
||||
* use lipo(1) on whatever part of the library you plan to use.
|
||||
|
|
@ -44,11 +44,11 @@ To build a non-universal library for the host architecture, simply use the <i>--
|
|||
./configure --disable-mac-universal && make
|
||||
@endcode
|
||||
|
||||
The <i>--disable-mac-universal</i> option may also be used in conjunction with environment variables to give you more control over the universal binary build process. For example, to build a universal binary for the i386 and ppc architectures using the 10.6 sdk, you might specify this configure command line:
|
||||
The <i>--disable-mac-universal</i> option may also be used in conjunction with environment variables to give you more control over the universal binary build process. For example, to build a universal binary for the i386 and ppc architectures using the 10.4u sdk (which is the default on 10.4, but not 10.5), you might specify this configure command line:
|
||||
|
||||
@code
|
||||
CFLAGS="-O2 -g -Wall -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.6" \
|
||||
LDFLAGS="-arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.6" \
|
||||
CFLAGS="-O2 -g -Wall -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.3" \
|
||||
LDFLAGS="-arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.3" \
|
||||
./configure --disable-mac-universal --disable-dependency-tracking
|
||||
@endcode
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ You will need to add the following frameworks to your XCode project:
|
|||
- AudioToolbox.framework
|
||||
- AudioUnit.framework
|
||||
- CoreServices.framework
|
||||
- CoreFoundation.framework
|
||||
- Carbon.framework
|
||||
|
||||
@section comp_mac_ca_5 Using the Library in Other Projects
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ The next task is to write your own "callback" function. The "callback" is a func
|
|||
Before we begin, it's important to realize that the callback is a delicate place. This is because some systems perform the callback in a special thread, or interrupt handler, and it is rarely treated the same as the rest of your code.
|
||||
For most modern systems, you won't be able to cause crashes by making disallowed calls in the callback, but if you want your code to produce glitch-free audio, you will have to make sure you avoid function calls that may take an unbounded amount of time
|
||||
to execute. Exactly what these are depend on your platform but almost certainly include the following: memory allocation/deallocation, I/O (including file I/O as well as console I/O, such as printf()), context switching (such as exec() or
|
||||
yield()), mutex operations, or anything else that might rely on the OS. If you think short critical sections are safe please go read about priority inversion. Windows and Mac OS schedulers have no real-time safe priority inversion prevention. Other platforms require special mutex flags. In addition, it is not safe to call any PortAudio API functions in the callback except as explicitly permitted in the documentation.
|
||||
yield()), mutex operations, or anything else that might rely on the OS. If you think short critical sections are safe please go read about priority inversion. Windows amd Mac OS schedulers have no real-time safe priority inversion prevention. Other platforms require special mutex flags. In addition, it is not safe to call any PortAudio API functions in the callback except as explicitly permitted in the documentation.
|
||||
|
||||
|
||||
Your callback function must return an int and accept the exact parameters specified in this typedef:
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
MACRO(ADD_EXAMPLE appl_name)
|
||||
ADD_EXECUTABLE(${appl_name} "${appl_name}.c")
|
||||
TARGET_LINK_LIBRARIES(${appl_name} portaudio_static)
|
||||
TARGET_INCLUDE_DIRECTORIES(${appl_name} PRIVATE ../src/common)
|
||||
SET_TARGET_PROPERTIES(${appl_name} PROPERTIES FOLDER "Examples C")
|
||||
IF(WIN32)
|
||||
SET_PROPERTY(TARGET ${appl_name} APPEND_STRING PROPERTY COMPILE_DEFINITIONS _CRT_SECURE_NO_WARNINGS)
|
||||
|
|
@ -25,10 +24,12 @@ IF(PA_USE_ASIO AND WIN32)
|
|||
ADD_EXAMPLE(paex_mono_asio_channel_select)
|
||||
ENDIF()
|
||||
ADD_EXAMPLE(paex_ocean_shore)
|
||||
TARGET_INCLUDE_DIRECTORIES(paex_ocean_shore PRIVATE ../src/common)
|
||||
ADD_EXAMPLE(paex_pink)
|
||||
ADD_EXAMPLE(paex_read_write_wire)
|
||||
ADD_EXAMPLE(paex_record)
|
||||
ADD_EXAMPLE(paex_record_file)
|
||||
TARGET_INCLUDE_DIRECTORIES(paex_record_file PRIVATE ../src/common)
|
||||
ADD_EXAMPLE(paex_saw)
|
||||
ADD_EXAMPLE(paex_sine)
|
||||
ADD_EXAMPLE_CPP(paex_sine_c++)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/** @file pa_devs.c
|
||||
@ingroup examples_src
|
||||
@ingroup examples_src
|
||||
@brief List available devices, including device information.
|
||||
@author Phil Burk http://www.softsynth.com
|
||||
@author Phil Burk http://www.softsynth.com
|
||||
|
||||
@note Define PA_USE_ASIO=0 to compile this code on Windows without
|
||||
ASIO support.
|
||||
|
|
@ -34,13 +34,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -106,14 +106,14 @@ int main(void)
|
|||
PaStreamParameters inputParameters, outputParameters;
|
||||
PaError err;
|
||||
|
||||
|
||||
|
||||
err = Pa_Initialize();
|
||||
if( err != paNoError )
|
||||
{
|
||||
printf( "ERROR: Pa_Initialize returned 0x%x\n", err );
|
||||
goto error;
|
||||
}
|
||||
|
||||
|
||||
printf( "PortAudio version: 0x%08X\n", Pa_GetVersion());
|
||||
printf( "Version text: '%s'\n", Pa_GetVersionInfo()->versionText );
|
||||
|
||||
|
|
@ -124,13 +124,13 @@ int main(void)
|
|||
err = numDevices;
|
||||
goto error;
|
||||
}
|
||||
|
||||
|
||||
printf( "Number of devices = %d\n", numDevices );
|
||||
for( i=0; i<numDevices; i++ )
|
||||
{
|
||||
deviceInfo = Pa_GetDeviceInfo( i );
|
||||
printf( "--------------------------------------- device #%d\n", i );
|
||||
|
||||
|
||||
/* Mark global and API specific default devices */
|
||||
defaultDisplayed = 0;
|
||||
if( i == Pa_GetDefaultInputDevice() )
|
||||
|
|
@ -144,7 +144,7 @@ int main(void)
|
|||
printf( "[ Default %s Input", hostInfo->name );
|
||||
defaultDisplayed = 1;
|
||||
}
|
||||
|
||||
|
||||
if( i == Pa_GetDefaultOutputDevice() )
|
||||
{
|
||||
printf( (defaultDisplayed ? "," : "[") );
|
||||
|
|
@ -154,7 +154,7 @@ int main(void)
|
|||
else if( i == Pa_GetHostApiInfo( deviceInfo->hostApi )->defaultOutputDevice )
|
||||
{
|
||||
const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi );
|
||||
printf( (defaultDisplayed ? "," : "[") );
|
||||
printf( (defaultDisplayed ? "," : "[") );
|
||||
printf( " Default %s Output", hostInfo->name );
|
||||
defaultDisplayed = 1;
|
||||
}
|
||||
|
|
@ -188,7 +188,7 @@ int main(void)
|
|||
long minLatency, maxLatency, preferredLatency, granularity;
|
||||
|
||||
err = PaAsio_GetAvailableLatencyValues( i,
|
||||
&minLatency, &maxLatency, &preferredLatency, &granularity );
|
||||
&minLatency, &maxLatency, &preferredLatency, &granularity );
|
||||
|
||||
printf( "ASIO minimum buffer size = %ld\n", minLatency );
|
||||
printf( "ASIO maximum buffer size = %ld\n", maxLatency );
|
||||
|
|
@ -210,7 +210,7 @@ int main(void)
|
|||
inputParameters.sampleFormat = paInt16;
|
||||
inputParameters.suggestedLatency = 0; /* ignored by Pa_IsFormatSupported() */
|
||||
inputParameters.hostApiSpecificStreamInfo = NULL;
|
||||
|
||||
|
||||
outputParameters.device = i;
|
||||
outputParameters.channelCount = deviceInfo->maxOutputChannels;
|
||||
outputParameters.sampleFormat = paInt16;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/** @file pa_fuzz.c
|
||||
@ingroup examples_src
|
||||
@ingroup examples_src
|
||||
@brief Distort input like a fuzz box.
|
||||
@author Phil Burk http://www.softsynth.com
|
||||
@author Phil Burk http://www.softsynth.com
|
||||
*/
|
||||
/*
|
||||
* $Id$
|
||||
|
|
@ -31,13 +31,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -116,7 +116,7 @@ static int fuzzCallback( const void *inputBuffer, void *outputBuffer,
|
|||
*out++ = *in++; /* right - clean */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return paContinue;
|
||||
}
|
||||
|
||||
|
|
@ -133,8 +133,8 @@ int main(void)
|
|||
|
||||
inputParameters.device = Pa_GetDefaultInputDevice(); /* default input device */
|
||||
if (inputParameters.device == paNoDevice) {
|
||||
fprintf(stderr,"Error: No default input device.\n");
|
||||
goto error;
|
||||
fprintf(stderr,"Error: No default input device.\n");
|
||||
goto error;
|
||||
}
|
||||
inputParameters.channelCount = 2; /* stereo input */
|
||||
inputParameters.sampleFormat = PA_SAMPLE_TYPE;
|
||||
|
|
@ -143,8 +143,8 @@ int main(void)
|
|||
|
||||
outputParameters.device = Pa_GetDefaultOutputDevice(); /* default output device */
|
||||
if (outputParameters.device == paNoDevice) {
|
||||
fprintf(stderr,"Error: No default output device.\n");
|
||||
goto error;
|
||||
fprintf(stderr,"Error: No default output device.\n");
|
||||
goto error;
|
||||
}
|
||||
outputParameters.channelCount = 2; /* stereo output */
|
||||
outputParameters.sampleFormat = PA_SAMPLE_TYPE;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
/** @file paex_mono_asio_channel_select.c
|
||||
@ingroup examples_src
|
||||
@brief Play a monophonic sine wave on a specific ASIO channel.
|
||||
@author Ross Bencina <rossb@audiomulch.com>
|
||||
@author Phil Burk <philburk@softsynth.com>
|
||||
@ingroup examples_src
|
||||
@brief Play a monophonic sine wave on a specific ASIO channel.
|
||||
@author Ross Bencina <rossb@audiomulch.com>
|
||||
@author Phil Burk <philburk@softsynth.com>
|
||||
*/
|
||||
/*
|
||||
* $Id$
|
||||
|
|
@ -36,13 +36,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -114,7 +114,7 @@ int main(void)
|
|||
data.sine[i] = (float) (AMPLITUDE * sin( ((double)i/(double)TABLE_SIZE) * M_PI * 2. ));
|
||||
}
|
||||
data.phase = 0;
|
||||
|
||||
|
||||
err = Pa_Initialize();
|
||||
if( err != paNoError ) goto error;
|
||||
|
||||
|
|
@ -123,7 +123,7 @@ int main(void)
|
|||
outputParameters.sampleFormat = paFloat32; /* 32 bit floating point output */
|
||||
outputParameters.suggestedLatency = Pa_GetDeviceInfo( outputParameters.device )->defaultLowOutputLatency;
|
||||
|
||||
/* Use an ASIO specific structure. WARNING - this is not portable. */
|
||||
/* Use an ASIO specific structure. WARNING - this is not portable. */
|
||||
asioOutputInfo.size = sizeof(PaAsioStreamInfo);
|
||||
asioOutputInfo.hostApiType = paASIO;
|
||||
asioOutputInfo.version = 1;
|
||||
|
|
@ -145,16 +145,16 @@ int main(void)
|
|||
|
||||
err = Pa_StartStream( stream );
|
||||
if( err != paNoError ) goto error;
|
||||
|
||||
|
||||
printf("Play for %d seconds.\n", NUM_SECONDS ); fflush(stdout);
|
||||
Pa_Sleep( NUM_SECONDS * 1000 );
|
||||
|
||||
err = Pa_StopStream( stream );
|
||||
if( err != paNoError ) goto error;
|
||||
|
||||
|
||||
err = Pa_CloseStream( stream );
|
||||
if( err != paNoError ) goto error;
|
||||
|
||||
|
||||
Pa_Terminate();
|
||||
printf("Test finished.\n");
|
||||
return err;
|
||||
|
|
|
|||
|
|
@ -1,21 +1,21 @@
|
|||
/** @file paex_ocean_shore.c
|
||||
@ingroup examples_src
|
||||
@brief Generate Pink Noise using Gardner method, and make "waves". Provides an example of how to
|
||||
/** @file paex_ocean_shore.c
|
||||
@ingroup examples_src
|
||||
@brief Generate Pink Noise using Gardner method, and make "waves". Provides an example of how to
|
||||
post stuff to/from the audio callback using lock-free FIFOs implemented by the PA ringbuffer.
|
||||
|
||||
Optimization suggested by James McCartney uses a tree
|
||||
to select which random value to replace.
|
||||
Optimization suggested by James McCartney uses a tree
|
||||
to select which random value to replace.
|
||||
<pre>
|
||||
x x x x x x x x x x x x x x x x
|
||||
x x x x x x x x
|
||||
x x x x
|
||||
x x
|
||||
x
|
||||
</pre>
|
||||
Tree is generated by counting trailing zeros in an increasing index.
|
||||
When the index is zero, no random number is selected.
|
||||
x x x x x x x x x x x x x x x x
|
||||
x x x x x x x x
|
||||
x x x x
|
||||
x x
|
||||
x
|
||||
</pre>
|
||||
Tree is generated by counting trailing zeros in an increasing index.
|
||||
When the index is zero, no random number is selected.
|
||||
|
||||
@author Phil Burk http://www.softsynth.com
|
||||
@author Phil Burk http://www.softsynth.com
|
||||
Robert Bielik
|
||||
*/
|
||||
/*
|
||||
|
|
@ -46,13 +46,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -80,7 +80,7 @@ typedef struct
|
|||
}
|
||||
PinkNoise;
|
||||
|
||||
typedef struct
|
||||
typedef struct
|
||||
{
|
||||
float bq_b0;
|
||||
float bq_b1;
|
||||
|
|
@ -213,7 +213,7 @@ unsigned GenerateWave( OceanWave* wave, float* output, unsigned noOfFrames )
|
|||
targetLevel = wave->wave_envelope_max_level;
|
||||
}
|
||||
/* Calculate lowpass biquad coeffs
|
||||
|
||||
|
||||
alpha = sin(w0)/(2*Q)
|
||||
|
||||
b0 = (1 - cos(w0))/2
|
||||
|
|
@ -324,8 +324,8 @@ paTestData;
|
|||
static int patestCallback(const void* inputBuffer,
|
||||
void* outputBuffer,
|
||||
unsigned long framesPerBuffer,
|
||||
const PaStreamCallbackTimeInfo* timeInfo,
|
||||
PaStreamCallbackFlags statusFlags,
|
||||
const PaStreamCallbackTimeInfo* timeInfo,
|
||||
PaStreamCallbackFlags statusFlags,
|
||||
void* userData)
|
||||
{
|
||||
int i;
|
||||
|
|
@ -427,8 +427,8 @@ int main(void)
|
|||
/* Open a stereo PortAudio stream so we can hear the result. */
|
||||
outputParameters.device = Pa_GetDefaultOutputDevice(); /* Take the default output device. */
|
||||
if (outputParameters.device == paNoDevice) {
|
||||
fprintf(stderr,"Error: No default output device.\n");
|
||||
goto error;
|
||||
fprintf(stderr,"Error: No default output device.\n");
|
||||
goto error;
|
||||
}
|
||||
outputParameters.channelCount = 2; /* Stereo output, most likely supported. */
|
||||
outputParameters.hostApiSpecificStreamInfo = NULL;
|
||||
|
|
@ -518,7 +518,7 @@ int main(void)
|
|||
{
|
||||
PaUtil_FreeMemory(data.rBufFromRTData);
|
||||
}
|
||||
|
||||
|
||||
Pa_Sleep(1000);
|
||||
|
||||
Pa_Terminate();
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
/** @file paex_pink.c
|
||||
@ingroup examples_src
|
||||
@brief Generate Pink Noise using Gardner method.
|
||||
@ingroup examples_src
|
||||
@brief Generate Pink Noise using Gardner method.
|
||||
|
||||
Optimization suggested by James McCartney uses a tree
|
||||
to select which random value to replace.
|
||||
Optimization suggested by James McCartney uses a tree
|
||||
to select which random value to replace.
|
||||
<pre>
|
||||
x x x x x x x x x x x x x x x x
|
||||
x x x x x x x x
|
||||
x x x x
|
||||
x x
|
||||
x
|
||||
</pre>
|
||||
Tree is generated by counting trailing zeros in an increasing index.
|
||||
When the index is zero, no random number is selected.
|
||||
x x x x x x x x x x x x x x x x
|
||||
x x x x x x x x
|
||||
x x x x
|
||||
x x
|
||||
x
|
||||
</pre>
|
||||
Tree is generated by counting trailing zeros in an increasing index.
|
||||
When the index is zero, no random number is selected.
|
||||
|
||||
@author Phil Burk http://www.softsynth.com
|
||||
@author Phil Burk http://www.softsynth.com
|
||||
*/
|
||||
/*
|
||||
* $Id$
|
||||
|
|
@ -44,13 +44,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -172,8 +172,8 @@ paTestData;
|
|||
static int patestCallback(const void* inputBuffer,
|
||||
void* outputBuffer,
|
||||
unsigned long framesPerBuffer,
|
||||
const PaStreamCallbackTimeInfo* timeInfo,
|
||||
PaStreamCallbackFlags statusFlags,
|
||||
const PaStreamCallbackTimeInfo* timeInfo,
|
||||
PaStreamCallbackFlags statusFlags,
|
||||
void* userData)
|
||||
{
|
||||
int finished;
|
||||
|
|
@ -214,7 +214,7 @@ int main(void)
|
|||
int totalSamps;
|
||||
static const double SR = 44100.0;
|
||||
static const int FPB = 2048; /* Frames per buffer: 46 ms buffers. */
|
||||
|
||||
|
||||
/* Initialize two pink noise signals with different numbers of rows. */
|
||||
InitializePinkNoise( &data.leftPink, 12 );
|
||||
InitializePinkNoise( &data.rightPink, 16 );
|
||||
|
|
@ -237,8 +237,8 @@ int main(void)
|
|||
/* Open a stereo PortAudio stream so we can hear the result. */
|
||||
outputParameters.device = Pa_GetDefaultOutputDevice(); /* Take the default output device. */
|
||||
if (outputParameters.device == paNoDevice) {
|
||||
fprintf(stderr,"Error: No default output device.\n");
|
||||
goto error;
|
||||
fprintf(stderr,"Error: No default output device.\n");
|
||||
goto error;
|
||||
}
|
||||
outputParameters.channelCount = 2; /* Stereo output, most likely supported. */
|
||||
outputParameters.hostApiSpecificStreamInfo = NULL;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/** @file paex_read_write_wire.c
|
||||
@ingroup examples_src
|
||||
@brief Tests full duplex blocking I/O by passing input straight to output.
|
||||
@author Bjorn Roche. XO Audio LLC for Z-Systems Engineering.
|
||||
@ingroup examples_src
|
||||
@brief Tests full duplex blocking I/O by passing input straight to output.
|
||||
@author Bjorn Roche. XO Audio LLC for Z-Systems Engineering.
|
||||
@author based on code by: Phil Burk http://www.softsynth.com
|
||||
@author based on code by: Ross Bencina rossb@audiomulch.com
|
||||
*/
|
||||
|
|
@ -179,22 +179,22 @@ int main(void)
|
|||
xrun:
|
||||
printf("err = %d\n", err); fflush(stdout);
|
||||
if( stream ) {
|
||||
Pa_AbortStream( stream );
|
||||
Pa_CloseStream( stream );
|
||||
Pa_AbortStream( stream );
|
||||
Pa_CloseStream( stream );
|
||||
}
|
||||
free( sampleBlock );
|
||||
Pa_Terminate();
|
||||
if( err & paInputOverflow )
|
||||
fprintf( stderr, "Input Overflow.\n" );
|
||||
fprintf( stderr, "Input Overflow.\n" );
|
||||
if( err & paOutputUnderflow )
|
||||
fprintf( stderr, "Output Underflow.\n" );
|
||||
fprintf( stderr, "Output Underflow.\n" );
|
||||
return -2;
|
||||
error1:
|
||||
free( sampleBlock );
|
||||
error2:
|
||||
if( stream ) {
|
||||
Pa_AbortStream( stream );
|
||||
Pa_CloseStream( stream );
|
||||
Pa_AbortStream( stream );
|
||||
Pa_CloseStream( stream );
|
||||
}
|
||||
Pa_Terminate();
|
||||
fprintf( stderr, "An error occurred while using the portaudio stream\n" );
|
||||
|
|
@ -202,3 +202,4 @@ error2:
|
|||
fprintf( stderr, "Error message: %s\n", Pa_GetErrorText( err ) );
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/** @file paex_record.c
|
||||
@ingroup examples_src
|
||||
@brief Record input into an array; Save array to a file; Playback recorded data.
|
||||
@author Phil Burk http://www.softsynth.com
|
||||
@ingroup examples_src
|
||||
@brief Record input into an array; Save array to a file; Playback recorded data.
|
||||
@author Phil Burk http://www.softsynth.com
|
||||
*/
|
||||
/*
|
||||
* $Id$
|
||||
|
|
@ -31,13 +31,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -326,15 +326,15 @@ int main(void)
|
|||
{
|
||||
err = Pa_StartStream( stream );
|
||||
if( err != paNoError ) goto done;
|
||||
|
||||
|
||||
printf("Waiting for playback to finish.\n"); fflush(stdout);
|
||||
|
||||
while( ( err = Pa_IsStreamActive( stream ) ) == 1 ) Pa_Sleep(100);
|
||||
if( err < 0 ) goto done;
|
||||
|
||||
|
||||
err = Pa_CloseStream( stream );
|
||||
if( err != paNoError ) goto done;
|
||||
|
||||
|
||||
printf("Done.\n"); fflush(stdout);
|
||||
}
|
||||
|
||||
|
|
@ -351,3 +351,4 @@ done:
|
|||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/** @file paex_record_file.c
|
||||
@ingroup examples_src
|
||||
@brief Record input into a file, then playback recorded data from file (Windows only at the moment)
|
||||
@author Robert Bielik
|
||||
@ingroup examples_src
|
||||
@brief Record input into a file, then playback recorded data from file (Windows only at the moment)
|
||||
@author Robert Bielik
|
||||
*/
|
||||
/*
|
||||
* $Id: paex_record_file.c 1752 2011-09-08 03:21:55Z philburk $
|
||||
|
|
@ -31,13 +31,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -258,6 +258,7 @@ static int recordCallback( const void *inputBuffer, void *outputBuffer,
|
|||
|
||||
data->frameIndex += PaUtil_WriteRingBuffer(&data->ringBuffer, rptr, elementsToWrite);
|
||||
|
||||
return paContinue;
|
||||
}
|
||||
|
||||
/* This routine will be called by the PortAudio engine when audio is needed.
|
||||
|
|
@ -271,11 +272,8 @@ static int playCallback( const void *inputBuffer, void *outputBuffer,
|
|||
void *userData )
|
||||
{
|
||||
paTestData *data = (paTestData*)userData;
|
||||
|
||||
ring_buffer_size_t elementsToPlay = PaUtil_GetRingBufferReadAvailable(&data->ringBuffer);
|
||||
|
||||
ring_buffer_size_t elementsToRead = rbs_min( elementsToPlay,
|
||||
(ring_buffer_size_t)(framesPerBuffer * NUM_CHANNELS) );
|
||||
ring_buffer_size_t elementsToRead = rbs_min(elementsToPlay, (ring_buffer_size_t)(framesPerBuffer * NUM_CHANNELS));
|
||||
SAMPLE* wptr = (SAMPLE*)outputBuffer;
|
||||
|
||||
(void) inputBuffer; /* Prevent unused variable warnings. */
|
||||
|
|
@ -435,12 +433,12 @@ int main(void)
|
|||
}
|
||||
if( err < 0 ) goto done;
|
||||
}
|
||||
|
||||
|
||||
err = Pa_CloseStream( stream );
|
||||
if( err != paNoError ) goto done;
|
||||
|
||||
fclose(data.file);
|
||||
|
||||
|
||||
printf("Done.\n"); fflush(stdout);
|
||||
}
|
||||
|
||||
|
|
@ -457,3 +455,4 @@ done:
|
|||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,46 +0,0 @@
|
|||
#include <time.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include "portaudio.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
PaError err = paNoError;
|
||||
|
||||
PaDeviceIndex defaultOutputDevice;
|
||||
PaDeviceIndex defaultInputDevice;
|
||||
|
||||
err = Pa_Initialize();
|
||||
if( err != paNoError )
|
||||
{
|
||||
printf( "ERROR: Pa_Initialize returned 0x%x\n", err );
|
||||
goto error;
|
||||
}
|
||||
|
||||
printf( "PortAudio version: 0x%08X\n", Pa_GetVersion());
|
||||
// printf( "Version text: '%s'\n", Pa_GetVersionInfo()->versionText );
|
||||
|
||||
const int count = 20;
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
defaultInputDevice = Pa_GetDefaultInputDevice();
|
||||
defaultOutputDevice = Pa_GetDefaultOutputDevice();
|
||||
printf("Input: %i, Output: %i\n", defaultInputDevice, defaultOutputDevice);
|
||||
|
||||
err = Pa_RefreshDevices();
|
||||
if( err != paNoError )
|
||||
{
|
||||
printf( "ERROR: Pa_RefreshDevices returned 0x%x\n", err );
|
||||
goto error;
|
||||
}
|
||||
|
||||
sleep(2);
|
||||
}
|
||||
|
||||
Pa_Terminate();
|
||||
|
||||
printf("----------------------------------------------\n");
|
||||
return 0;
|
||||
error:
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
/** @file paex_saw.c
|
||||
@ingroup examples_src
|
||||
@brief Play a simple (aliasing) sawtooth wave.
|
||||
@author Phil Burk http://www.softsynth.com
|
||||
@ingroup examples_src
|
||||
@brief Play a simple (aliasing) sawtooth wave.
|
||||
@author Phil Burk http://www.softsynth.com
|
||||
*/
|
||||
/*
|
||||
* $Id$
|
||||
|
|
@ -31,13 +31,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -92,14 +92,14 @@ int main(void)
|
|||
{
|
||||
PaStream *stream;
|
||||
PaError err;
|
||||
|
||||
|
||||
printf("PortAudio Test: output sawtooth wave.\n");
|
||||
/* Initialize our data for use by callback. */
|
||||
data.left_phase = data.right_phase = 0.0;
|
||||
/* Initialize library before making any other calls. */
|
||||
err = Pa_Initialize();
|
||||
if( err != paNoError ) goto error;
|
||||
|
||||
|
||||
/* Open an audio I/O stream. */
|
||||
err = Pa_OpenDefaultStream( &stream,
|
||||
0, /* no input channels */
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/** @file paex_sine.c
|
||||
@ingroup examples_src
|
||||
@brief Play a sine wave for several seconds.
|
||||
@author Ross Bencina <rossb@audiomulch.com>
|
||||
@ingroup examples_src
|
||||
@brief Play a sine wave for several seconds.
|
||||
@author Ross Bencina <rossb@audiomulch.com>
|
||||
@author Phil Burk <philburk@softsynth.com>
|
||||
*/
|
||||
/*
|
||||
|
|
@ -32,13 +32,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
|
|
@ -80,7 +80,7 @@ static int patestCallback( const void *inputBuffer, void *outputBuffer,
|
|||
(void) timeInfo; /* Prevent unused variable warnings. */
|
||||
(void) statusFlags;
|
||||
(void) inputBuffer;
|
||||
|
||||
|
||||
for( i=0; i<framesPerBuffer; i++ )
|
||||
{
|
||||
*out++ = data->sine[data->left_phase]; /* left */
|
||||
|
|
@ -90,7 +90,7 @@ static int patestCallback( const void *inputBuffer, void *outputBuffer,
|
|||
data->right_phase += 3; /* higher pitch so we can distinguish left and right. */
|
||||
if( data->right_phase >= TABLE_SIZE ) data->right_phase -= TABLE_SIZE;
|
||||
}
|
||||
|
||||
|
||||
return paContinue;
|
||||
}
|
||||
|
||||
|
|
@ -99,8 +99,8 @@ static int patestCallback( const void *inputBuffer, void *outputBuffer,
|
|||
*/
|
||||
static void StreamFinished( void* userData )
|
||||
{
|
||||
paTestData *data = (paTestData *) userData;
|
||||
printf( "Stream Completed: %s\n", data->message );
|
||||
paTestData *data = (paTestData *) userData;
|
||||
printf( "Stream Completed: %s\n", data->message );
|
||||
}
|
||||
|
||||
/*******************************************************************/
|
||||
|
|
@ -121,14 +121,14 @@ int main(void)
|
|||
data.sine[i] = (float) sin( ((double)i/(double)TABLE_SIZE) * M_PI * 2. );
|
||||
}
|
||||
data.left_phase = data.right_phase = 0;
|
||||
|
||||
|
||||
err = Pa_Initialize();
|
||||
if( err != paNoError ) goto error;
|
||||
|
||||
outputParameters.device = Pa_GetDefaultOutputDevice(); /* default output device */
|
||||
if (outputParameters.device == paNoDevice) {
|
||||
fprintf(stderr,"Error: No default output device.\n");
|
||||
goto error;
|
||||
fprintf(stderr,"Error: No default output device.\n");
|
||||
goto error;
|
||||
}
|
||||
outputParameters.channelCount = 2; /* stereo output */
|
||||
outputParameters.sampleFormat = paFloat32; /* 32 bit floating point output */
|
||||
|
|
@ -154,7 +154,6 @@ int main(void)
|
|||
if( err != paNoError ) goto error;
|
||||
|
||||
printf("Play for %d seconds.\n", NUM_SECONDS );
|
||||
|
||||
Pa_Sleep( NUM_SECONDS * 1000 );
|
||||
|
||||
err = Pa_StopStream( stream );
|
||||
|
|
@ -165,7 +164,7 @@ int main(void)
|
|||
|
||||
Pa_Terminate();
|
||||
printf("Test finished.\n");
|
||||
|
||||
|
||||
return err;
|
||||
error:
|
||||
Pa_Terminate();
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/** @file paex_sine.c
|
||||
@ingroup examples_src
|
||||
@brief Play a sine wave for several seconds.
|
||||
@author Ross Bencina <rossb@audiomulch.com>
|
||||
@ingroup examples_src
|
||||
@brief Play a sine wave for several seconds.
|
||||
@author Ross Bencina <rossb@audiomulch.com>
|
||||
@author Phil Burk <philburk@softsynth.com>
|
||||
*/
|
||||
/*
|
||||
|
|
@ -32,13 +32,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
|
|
@ -189,7 +189,7 @@ private:
|
|||
PaStreamCallbackFlags statusFlags,
|
||||
void *userData )
|
||||
{
|
||||
/* Here we cast userData to Sine* type so we can call the instance method paCallbackMethod, we can do that since
|
||||
/* Here we cast userData to Sine* type so we can call the instance method paCallbackMethod, we can do that since
|
||||
we called Pa_OpenStream with 'this' for userData */
|
||||
return ((Sine*)userData)->paCallbackMethod(inputBuffer, outputBuffer,
|
||||
framesPerBuffer,
|
||||
|
|
@ -247,7 +247,7 @@ int main(void)
|
|||
Sine sine;
|
||||
|
||||
printf("PortAudio Test: output sine wave. SR = %d, BufSize = %d\n", SAMPLE_RATE, FRAMES_PER_BUFFER);
|
||||
|
||||
|
||||
ScopedPaHandler paInit;
|
||||
if( paInit.result() != paNoError ) goto error;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/** @file paex_wmme_ac3.c
|
||||
@ingroup examples_src
|
||||
@brief Use WMME-specific interface to send raw AC3 data to a S/PDIF output.
|
||||
@author Ross Bencina <rossb@audiomulch.com>
|
||||
@ingroup examples_src
|
||||
@brief Use WMME-specific interface to send raw AC3 data to a S/PDIF output.
|
||||
@author Ross Bencina <rossb@audiomulch.com>
|
||||
*/
|
||||
/*
|
||||
* $Id: $
|
||||
|
|
@ -31,13 +31,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -91,17 +91,17 @@ static int patestCallback( const void *inputBuffer, void *outputBuffer,
|
|||
(void) inputBuffer;
|
||||
|
||||
/* stream out contents of data->buffer looping at end */
|
||||
|
||||
|
||||
for( i=0; i<framesPerBuffer; i++ )
|
||||
{
|
||||
for( j = 0; j < CHANNEL_COUNT; ++j ){
|
||||
for( j = 0; j < CHANNEL_COUNT; ++j ){
|
||||
*out++ = data->buffer[ data->playbackIndex++ ];
|
||||
|
||||
if( data->playbackIndex >= data->bufferSampleCount )
|
||||
data->playbackIndex = 0; /* loop at end of buffer */
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return paContinue;
|
||||
}
|
||||
|
||||
|
|
@ -120,10 +120,10 @@ int main(int argc, char* argv[])
|
|||
|
||||
printf("usage: patest_wmme_ac3 fileName [paDeviceIndex]\n");
|
||||
printf("**IMPORTANT*** The provided file must include the spdif preamble at the start of every AC-3 frame. Using a normal ac3 file won't work.\n");
|
||||
printf("PortAudio Test: output a raw spdif ac3 stream. SR = %d, BufSize = %d, Chans = %d\n",
|
||||
printf("PortAudio Test: output a raw spdif ac3 stream. SR = %d, BufSize = %d, Chans = %d\n",
|
||||
SAMPLE_RATE, FRAMES_PER_BUFFER, CHANNEL_COUNT);
|
||||
|
||||
|
||||
|
||||
if( argc >= 2 )
|
||||
fileName = argv[1];
|
||||
|
||||
|
|
@ -154,14 +154,14 @@ int main(int argc, char* argv[])
|
|||
err = Pa_Initialize();
|
||||
if( err != paNoError ) goto error;
|
||||
|
||||
deviceIndex = Pa_GetHostApiInfo( Pa_HostApiTypeIdToHostApiIndex( paMME ) )->defaultOutputDevice;
|
||||
if( argc >= 3 ){
|
||||
sscanf( argv[1], "%d", &deviceIndex );
|
||||
}
|
||||
|
||||
printf( "using device id %d (%s)\n", deviceIndex, Pa_GetDeviceInfo(deviceIndex)->name );
|
||||
deviceIndex = Pa_GetHostApiInfo( Pa_HostApiTypeIdToHostApiIndex( paMME ) )->defaultOutputDevice;
|
||||
if( argc >= 3 ){
|
||||
sscanf( argv[1], "%d", &deviceIndex );
|
||||
}
|
||||
|
||||
printf( "using device id %d (%s)\n", deviceIndex, Pa_GetDeviceInfo(deviceIndex)->name );
|
||||
|
||||
|
||||
outputParameters.device = deviceIndex;
|
||||
outputParameters.channelCount = CHANNEL_COUNT;
|
||||
outputParameters.sampleFormat = paInt16; /* IMPORTANT must use paInt16 for WMME AC3 */
|
||||
|
|
@ -169,17 +169,17 @@ int main(int argc, char* argv[])
|
|||
outputParameters.hostApiSpecificStreamInfo = NULL;
|
||||
|
||||
wmmeStreamInfo.size = sizeof(PaWinMmeStreamInfo);
|
||||
wmmeStreamInfo.hostApiType = paMME;
|
||||
wmmeStreamInfo.hostApiType = paMME;
|
||||
wmmeStreamInfo.version = 1;
|
||||
wmmeStreamInfo.flags = paWinMmeWaveFormatDolbyAc3Spdif;
|
||||
outputParameters.hostApiSpecificStreamInfo = &wmmeStreamInfo;
|
||||
|
||||
|
||||
if( Pa_IsFormatSupported( 0, &outputParameters, SAMPLE_RATE ) == paFormatIsSupported ){
|
||||
printf( "Pa_IsFormatSupported reports device will support %d channels.\n", CHANNEL_COUNT );
|
||||
}else{
|
||||
printf( "Pa_IsFormatSupported reports device will not support %d channels.\n", CHANNEL_COUNT );
|
||||
}
|
||||
if( Pa_IsFormatSupported( 0, &outputParameters, SAMPLE_RATE ) == paFormatIsSupported ){
|
||||
printf( "Pa_IsFormatSupported reports device will support %d channels.\n", CHANNEL_COUNT );
|
||||
}else{
|
||||
printf( "Pa_IsFormatSupported reports device will not support %d channels.\n", CHANNEL_COUNT );
|
||||
}
|
||||
|
||||
err = Pa_OpenStream(
|
||||
&stream,
|
||||
|
|
@ -207,7 +207,7 @@ int main(int argc, char* argv[])
|
|||
Pa_Terminate();
|
||||
free( data.buffer );
|
||||
printf("Test finished.\n");
|
||||
|
||||
|
||||
return err;
|
||||
error:
|
||||
Pa_Terminate();
|
||||
|
|
@ -218,3 +218,4 @@ error:
|
|||
fprintf( stderr, "Error message: %s\n", Pa_GetErrorText( err ) );
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/** @file paex_wmme_surround.c
|
||||
@ingroup examples_src
|
||||
@brief Use WMME-specific channelMask to request 5.1 surround sound output.
|
||||
@author Ross Bencina <rossb@audiomulch.com>
|
||||
@ingroup examples_src
|
||||
@brief Use WMME-specific channelMask to request 5.1 surround sound output.
|
||||
@author Ross Bencina <rossb@audiomulch.com>
|
||||
*/
|
||||
/*
|
||||
* $Id: $
|
||||
|
|
@ -31,13 +31,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -67,9 +67,9 @@
|
|||
typedef struct
|
||||
{
|
||||
float sine[TABLE_SIZE];
|
||||
int phase;
|
||||
int currentChannel;
|
||||
int cycleCount;
|
||||
int phase;
|
||||
int currentChannel;
|
||||
int cycleCount;
|
||||
}
|
||||
paTestData;
|
||||
|
||||
|
|
@ -90,31 +90,31 @@ static int patestCallback( const void *inputBuffer, void *outputBuffer,
|
|||
(void) timeInfo; /* Prevent unused variable warnings. */
|
||||
(void) statusFlags;
|
||||
(void) inputBuffer;
|
||||
|
||||
|
||||
for( i=0; i<framesPerBuffer; i++ )
|
||||
{
|
||||
for( j = 0; j < CHANNEL_COUNT; ++j ){
|
||||
if( j == data->currentChannel && data->cycleCount < 4410 ){
|
||||
*out++ = data->sine[data->phase];
|
||||
data->phase += 1 + j; // play each channel at a different pitch so they can be distinguished
|
||||
if( data->phase >= TABLE_SIZE ){
|
||||
data->phase -= TABLE_SIZE;
|
||||
}
|
||||
}else{
|
||||
*out++ = 0;
|
||||
}
|
||||
}
|
||||
|
||||
data->cycleCount++;
|
||||
if( data->cycleCount > 44100 ){
|
||||
data->cycleCount = 0;
|
||||
|
||||
++data->currentChannel;
|
||||
if( data->currentChannel >= CHANNEL_COUNT )
|
||||
data->currentChannel -= CHANNEL_COUNT;
|
||||
}
|
||||
}
|
||||
for( j = 0; j < CHANNEL_COUNT; ++j ){
|
||||
if( j == data->currentChannel && data->cycleCount < 4410 ){
|
||||
*out++ = data->sine[data->phase];
|
||||
data->phase += 1 + j; // play each channel at a different pitch so they can be distinguished
|
||||
if( data->phase >= TABLE_SIZE ){
|
||||
data->phase -= TABLE_SIZE;
|
||||
}
|
||||
}else{
|
||||
*out++ = 0;
|
||||
}
|
||||
}
|
||||
|
||||
data->cycleCount++;
|
||||
if( data->cycleCount > 44100 ){
|
||||
data->cycleCount = 0;
|
||||
|
||||
++data->currentChannel;
|
||||
if( data->currentChannel >= CHANNEL_COUNT )
|
||||
data->currentChannel -= CHANNEL_COUNT;
|
||||
}
|
||||
}
|
||||
|
||||
return paContinue;
|
||||
}
|
||||
|
||||
|
|
@ -134,12 +134,12 @@ int main(int argc, char* argv[])
|
|||
err = Pa_Initialize();
|
||||
if( err != paNoError ) goto error;
|
||||
|
||||
deviceIndex = Pa_GetHostApiInfo( Pa_HostApiTypeIdToHostApiIndex( paMME ) )->defaultOutputDevice;
|
||||
if( argc == 2 ){
|
||||
sscanf( argv[1], "%d", &deviceIndex );
|
||||
}
|
||||
deviceIndex = Pa_GetHostApiInfo( Pa_HostApiTypeIdToHostApiIndex( paMME ) )->defaultOutputDevice;
|
||||
if( argc == 2 ){
|
||||
sscanf( argv[1], "%d", &deviceIndex );
|
||||
}
|
||||
|
||||
printf( "using device id %d (%s)\n", deviceIndex, Pa_GetDeviceInfo(deviceIndex)->name );
|
||||
printf( "using device id %d (%s)\n", deviceIndex, Pa_GetDeviceInfo(deviceIndex)->name );
|
||||
|
||||
/* initialise sinusoidal wavetable */
|
||||
for( i=0; i<TABLE_SIZE; i++ )
|
||||
|
|
@ -147,9 +147,9 @@ int main(int argc, char* argv[])
|
|||
data.sine[i] = (float) sin( ((double)i/(double)TABLE_SIZE) * M_PI * 2. );
|
||||
}
|
||||
|
||||
data.phase = 0;
|
||||
data.currentChannel = 0;
|
||||
data.cycleCount = 0;
|
||||
data.phase = 0;
|
||||
data.currentChannel = 0;
|
||||
data.cycleCount = 0;
|
||||
|
||||
outputParameters.device = deviceIndex;
|
||||
outputParameters.channelCount = CHANNEL_COUNT;
|
||||
|
|
@ -161,18 +161,18 @@ int main(int argc, char* argv[])
|
|||
output. But if you want to be sure which channel mask PortAudio will use
|
||||
then you should supply one */
|
||||
wmmeStreamInfo.size = sizeof(PaWinMmeStreamInfo);
|
||||
wmmeStreamInfo.hostApiType = paMME;
|
||||
wmmeStreamInfo.hostApiType = paMME;
|
||||
wmmeStreamInfo.version = 1;
|
||||
wmmeStreamInfo.flags = paWinMmeUseChannelMask;
|
||||
wmmeStreamInfo.channelMask = PAWIN_SPEAKER_5POINT1; /* request 5.1 output format */
|
||||
outputParameters.hostApiSpecificStreamInfo = &wmmeStreamInfo;
|
||||
|
||||
|
||||
if( Pa_IsFormatSupported( 0, &outputParameters, SAMPLE_RATE ) == paFormatIsSupported ){
|
||||
printf( "Pa_IsFormatSupported reports device will support %d channels.\n", CHANNEL_COUNT );
|
||||
}else{
|
||||
printf( "Pa_IsFormatSupported reports device will not support %d channels.\n", CHANNEL_COUNT );
|
||||
}
|
||||
if( Pa_IsFormatSupported( 0, &outputParameters, SAMPLE_RATE ) == paFormatIsSupported ){
|
||||
printf( "Pa_IsFormatSupported reports device will support %d channels.\n", CHANNEL_COUNT );
|
||||
}else{
|
||||
printf( "Pa_IsFormatSupported reports device will not support %d channels.\n", CHANNEL_COUNT );
|
||||
}
|
||||
|
||||
err = Pa_OpenStream(
|
||||
&stream,
|
||||
|
|
@ -199,7 +199,7 @@ int main(int argc, char* argv[])
|
|||
|
||||
Pa_Terminate();
|
||||
printf("Test finished.\n");
|
||||
|
||||
|
||||
return err;
|
||||
error:
|
||||
Pa_Terminate();
|
||||
|
|
@ -208,3 +208,4 @@ error:
|
|||
fprintf( stderr, "Error message: %s\n", Pa_GetErrorText( err ) );
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/** @file paex_write_sine.c
|
||||
@ingroup examples_src
|
||||
@brief Play a sine wave for several seconds using the blocking API (Pa_WriteStream())
|
||||
@author Ross Bencina <rossb@audiomulch.com>
|
||||
@ingroup examples_src
|
||||
@brief Play a sine wave for several seconds using the blocking API (Pa_WriteStream())
|
||||
@author Ross Bencina <rossb@audiomulch.com>
|
||||
@author Phil Burk <philburk@softsynth.com>
|
||||
*/
|
||||
/*
|
||||
|
|
@ -32,13 +32,13 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*
|
||||
* Any person wishing to distribute modifications to the Software is
|
||||
* requested to send the modifications to the original developer so that
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* they can be incorporated into the canonical version. It is also
|
||||
* requested that these non-binding requests be included along with the
|
||||
* license above.
|
||||
*/
|
||||
|
||||
|
|
@ -71,23 +71,23 @@ int main(void)
|
|||
int right_inc = 3; /* higher pitch so we can distinguish left and right. */
|
||||
int i, j, k;
|
||||
int bufferCount;
|
||||
|
||||
|
||||
printf("PortAudio Test: output sine wave. SR = %d, BufSize = %d\n", SAMPLE_RATE, FRAMES_PER_BUFFER);
|
||||
|
||||
|
||||
/* initialise sinusoidal wavetable */
|
||||
for( i=0; i<TABLE_SIZE; i++ )
|
||||
{
|
||||
sine[i] = (float) sin( ((double)i/(double)TABLE_SIZE) * M_PI * 2. );
|
||||
}
|
||||
|
||||
|
||||
|
||||
err = Pa_Initialize();
|
||||
if( err != paNoError ) goto error;
|
||||
|
||||
outputParameters.device = Pa_GetDefaultOutputDevice(); /* default output device */
|
||||
if (outputParameters.device == paNoDevice) {
|
||||
fprintf(stderr,"Error: No default output device.\n");
|
||||
goto error;
|
||||
fprintf(stderr,"Error: No default output device.\n");
|
||||
goto error;
|
||||
}
|
||||
outputParameters.channelCount = 2; /* stereo output */
|
||||
outputParameters.sampleFormat = paFloat32; /* 32 bit floating point output */
|
||||
|
|
@ -107,7 +107,7 @@ int main(void)
|
|||
|
||||
|
||||
printf( "Play 3 times, higher each time.\n" );
|
||||
|
||||
|
||||
for( k=0; k < 3; ++k )
|
||||
{
|
||||
err = Pa_StartStream( stream );
|
||||
|
|
@ -131,7 +131,7 @@ int main(void)
|
|||
|
||||
err = Pa_WriteStream( stream, buffer, FRAMES_PER_BUFFER );
|
||||
if( err != paNoError ) goto error;
|
||||
}
|
||||
}
|
||||
|
||||
err = Pa_StopStream( stream );
|
||||
if( err != paNoError ) goto error;
|
||||
|
|
@ -147,20 +147,20 @@ int main(void)
|
|||
|
||||
Pa_Terminate();
|
||||
printf("Test finished.\n");
|
||||
|
||||
|
||||
return err;
|
||||
|
||||
error:
|
||||
fprintf( stderr, "An error occurred while using the portaudio stream\n" );
|
||||
fprintf( stderr, "Error number: %d\n", err );
|
||||
fprintf( stderr, "Error message: %s\n", Pa_GetErrorText( err ) );
|
||||
// Print more information about the error.
|
||||
if( err == paUnanticipatedHostError )
|
||||
{
|
||||
const PaHostErrorInfo *hostErrorInfo = Pa_GetLastHostErrorInfo();
|
||||
fprintf( stderr, "Host API error = #%ld, hostApiType = %d\n", hostErrorInfo->errorCode, hostErrorInfo->hostApiType );
|
||||
fprintf( stderr, "Host API error = %s\n", hostErrorInfo->errorText );
|
||||
}
|
||||
// Print more information about the error.
|
||||
if( err == paUnanticipatedHostError )
|
||||
{
|
||||
const PaHostErrorInfo *hostErrorInfo = Pa_GetLastHostErrorInfo();
|
||||
fprintf( stderr, "Host API error = #%ld, hostApiType = %d\n", hostErrorInfo->errorCode, hostErrorInfo->hostApiType );
|
||||
fprintf( stderr, "Host API error = %s\n", hostErrorInfo->errorText );
|
||||
}
|
||||
Pa_Terminate();
|
||||
return err;
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue