Compare commits

..
Author SHA1 Message Date
b939f22931 Update README to document Pa_RefreshDevice fork and Node.js bindings usage
Add clear documentation that this is a fork with Pa_RefreshDevice functionality,
link to the specific commit, and provide instructions for using with the nodeaudio
Node.js bindings.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-08-08 12:00:12 -05:00
f26c25af6c update README 2026-07-24 15:55:10 -05:00
Andrew Gundersen
aaf62b6f51 Updated README.md 2022-03-10 07:22:02 -06:00
Andrew Gundersen
3958fef3eb Updating ReadMe 2022-03-07 16:22:50 -06:00
Andrew Gundersen
1f01a3ddc0 Pa_RefreshDevice functionality 2021-08-20 11:09:19 -05:00
John Melas
16884fc201
Unify all stringizing macros to new PA_STRINGIZE macro in pa_util.h (#605) 2021-07-01 10:19:21 +10:00
John Melas
038a696aec
pa_win_wmme.c: replace LPCTSTR with LPCWSTR (#597) 2021-06-23 10:15:57 +10:00
Trent Piepho
d859f7d5df
Have PaUtil_GetTime() use monotonic time on Unix (#559)
The currently used clock, CLOCK_REALTIME, will have discontinuous jumps, forward
and backward, when the system clock is adjusted.  This is bad for synchronizing
audio.  CLOCK_MONOTONIC does not have jumps, and never moves backward, but does
have the continuous adjustments done by NTP to increase clock accuracy.

Since kernel 2.6.25 ALSA has use CLOCK_MONOTONIC by default for timestamps
(commit b751eef1 from Dec 13 2007).  This change means the timestamps provided
in the PA callbacks can be compared to PaUtil_GetTime(), which currently does
not work.

The function used on MacOS, mach_absolute_time(), behaves like CLOCK_MONOTONIC.

If the system does not have CLOCK_MONOTONIC, fallback to CLOCK_REALTIME, which
is what alsa-lib does for such systems.  Which at this point would need to be
very old.

* Use clock monotonic for condition variable

This is necessary to match PaUtil_GetTime() also using the monotonic
clock.  Otherwise the wait time, derived from that function, will be
completely incorrect.

This will also fix an obscure flaw if the system clock is adjust while
waiting for the stream to open, it might not wait at all and fail or
wait (effectively) forever instead of timing out, depend on the
adjustment direction.
2021-06-08 17:52:32 -07:00
John Melas
52a78c72f3
Unify windows error processing into a single PaWinUtil_SetLastSystemErrorInfo function (#495) 2021-06-09 10:43:40 +10:00
Phil Burk
8124f82f5c
alsa: init stream variable in pa_linux_alsa.c (#584)
Prevent compiler warnings.

Alternative to #567
2021-06-08 17:19:44 -07:00
Phil Burk
8ef5021a9d
test: time out in patest_sine_time.c (#585)
On ALSA the StreamTime was not advancing so the while()
loop never exited. Now it will time out if it plays for much
longer than expected without the stream time changing.

Also measure timestamp latency from callback info.
2021-06-08 17:19:14 -07:00
Phil Burk
2bd663ca75
pa_mac_core.c: init streamLatency and others (#591)
Prevent compiler warnings.
2021-06-08 17:06:48 -07:00
Trent Piepho
9413fa051f
Alsa: Use hires timestamps (#560)
ALSA added nanosecond timestamps in library version 0.9.1.  Use these
instead of microsecond timestamps for reporting audio timestamps as well
as underrun/overrun times.

alsa-lib version 0.9.1 was released on Mar 11 2003.  I had fallback code
to use non-hires timestamps, but after 18 years it didn't seem
necessary, and I removed it from this commit.
2021-06-02 18:03:42 -07:00
Ross Bencina
9faca9b95b Add documentation indicating that Pa_ReadStream, Pa_WriteStream, Pa_GetStreamReadAvailable and Pa_GetStreamWriteAvailable are only valid while the stream is running (between calls to Pa_StartStream and Pa_StopStream.) 2021-05-26 17:10:56 -07:00
Mirko Rajkovaca
15dfd46b33
Added Pa_GetVersionInfo to portaudio.def (#574)
* - added Pa_GetVersionInfo to portaudio.def

* - added Pa_GetVersionInfo to `cmake_support/template_portaudio.def`

Co-authored-by: Mirko Rajkovaca <mirko@mrcode.dev>
2021-05-27 10:07:27 +10:00
MonkeybreadSoftware
840489460f
alsa: Increase snprintf buffer size to fix warning (#566)
Avoid compiler warning suggesting the buffer is too small:

../PortAudioLib/portaudio/src/hostapi/alsa/pa_linux_alsa.c: In function 'BuildDeviceList.constprop':
../PortAudioLib/portaudio/src/hostapi/alsa/pa_linux_alsa.c:1304:45: warning: '%s' directive output may be truncated writing up to 49 bytes into a region of size between 46 and 50 [-Wformat-truncation=]
             snprintf( buf, sizeof (buf), "%s%s,%d", hwPrefix, alsaCardName, devIdx );
                                             ^~                ~~~~~~~~~~~~
../PortAudioLib/portaudio/src/hostapi/alsa/pa_linux_alsa.c:1304:42: note: directive argument in the range [0, 2147483647]
             snprintf( buf, sizeof (buf), "%s%s,%d", hwPrefix, alsaCardName, devIdx );
                                          ^~~~~~~~~
../PortAudioLib/portaudio/src/hostapi/alsa/pa_linux_alsa.c:1304:13: note: 'snprintf' output between 3 and 65 bytes into a destination of size 50
             snprintf( buf, sizeof (buf), "%s%s,%d", hwPrefix, alsaCardName, devIdx );
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-05-13 10:36:10 +10:00
Be
febd58ebba
MME: fix comparison of IO buffer sizes in CalculateBufferSettings() (#571)
Pull in fix from Audacity: https://bugzilla.audacityteam.org/show_bug.cgi?id=1969

The problem was some kind of typo, comparing pointers instead of the values of pointers.
2021-05-13 10:17:10 +10:00
Dmitry Kostjuchenko
39bfe6c63d
Merge pull request #552 from PortAudio/winrt
wasapi: Fixed compilation with MinGW (W64)
2021-04-29 09:27:50 +03:00
John Melas
aa053464eb
[macOS] drop support for 10.5 (#511)
* drop support for 10.5

* more documentation fixes

Co-authored-by: John Melas <john@jmelas.gr>
2021-04-28 17:38:18 -07:00
Be
b184fe82ed
remove deprecated pablio (#437)
This is deprecated code from 1999.
2021-04-28 17:35:03 -07:00
MichalPetryka
a563f2d39d
Whitespace cleanup in Java and C++ bindings#458) 2021-04-28 17:23:52 -07:00
Be
3e782f2494 CMake: clean up including headers for examples 2021-04-28 17:13:32 -07:00
Be
640d26cdea CMake: build qa executables 2021-04-28 17:13:32 -07:00
Be
ee2c707495 CMake: build all tests 2021-04-28 17:13:32 -07:00
Be
dfa969b3d9 GH Actions: add separate workflow for CMake testing every OS 2021-04-28 17:13:32 -07:00
Be
c5d6563d1c CMake: bump minimum version to 3.0.0 to fix deprecation warning 2021-04-28 17:13:32 -07:00
Phil Burk
32f5cbda7e
paqa_devs.c: define _USE_MATH_DEFINES (#554)
before including math.h

Fixes #551
2021-04-17 13:00:18 -07:00
Phil Burk
df2be4e048
patest_unplug.c: change int32_t to int (#553)
To prevent compiler errors and to avoid controversy over
stdint.h vs inttypes.h.

Fixes #550
2021-04-17 12:56:16 -07:00
dmitrykos
c6178e8592 wasapi: Fixed compilation with MinGW (W64) when targeting 32-bit platform 2021-04-15 11:39:02 +03:00
Phil Burk
67caa13f19
fix patest_converters.c argc argv order (#544)
They were reversed.
Also added void casts to prevent unused parameter warnings.
2021-04-12 06:29:03 -07:00
Ross Bencina
147dd72254
Improve JACK regex pattern escape code (see ticket #534). Improves previously merged PR #405 master commit eec7bb7 by performing string conversion directly in to the target buffer, thus avoiding one allocation and one strncpy per client/device name. (#536) 2021-03-31 17:17:30 -07:00
Be
eec7bb7397
JACK PipeWire fixes (escape regex chars) (#504)
This patch fixes a problem caused by special regex characters
appearing in the device names when using the Jack interface to PipeWire.

It is uncommon for JACK ports to have any characters that need to
be escaped in a regex. jackd simply calls the audio interface
"system". However PipeWire uses the device name from ALSA for the
JACK port names. If this contains any special regex characters,
BuildDeviceList would find the device but determine it has 0
input channels and 0 output channels. In my case, I have an RME
Babyface Pro which puts its serial number in parentheses:

$ aplay -l
card 0: Pro70785713 [Babyface Pro (70785713)], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
2021-03-19 10:51:31 -07:00
Phil Burk
3f7bee79a6 Bump version to 19.7.0 2021-03-07 07:33:41 -08:00
Phil Burk
b14e866b27 configure: better test for Mac OS arch
Use AC_COMPILE_IFELSE because AC_TRY_COMPILE is deprecated.
Include cdefs.h because it has checks for architcture.
2021-02-25 07:06:33 -08:00
petris
793c7ffc18 WASAPI final whitespace fix 2021-02-24 17:34:47 -08:00
MichalPetryka
78415a838a
Add .editorconfig (#394) 2021-02-18 12:49:18 +11:00
Ross Bencina
79932a5919
Clean up whitespace in src/hostapi/coreaudio in preparation for .editorconfig. (#502)
* Clean up whitespace in src/hostapi/coreaudio in preparation for .editorconfig. Convert tabs to 4 spaces. Indent by 4 spaces. Strip trailing whitespace. Ensure only one EOL at EOF.
2021-02-18 12:11:14 +11:00
Dmitry Kostjuchenko
078fc760c5
Merge pull request #510 from alienpenguin/fix-vs2010-compilation
wasapi: Fix compilation for VS2010.
2021-02-17 09:13:45 +02:00
Francesco Lamonica
9ef2c28bb8 fixed VS2010 compilation 2021-02-16 23:15:53 +01:00
Dmitry Kostjuchenko
8ccd53fe7c
Merge pull request #509 from PortAudio/winrt
wasapi: Fixed compilation for UWP platform, minor cleanup and refactoring.
2021-02-16 12:54:24 +02:00
dmitrykos
712685c71a wasapi: Fixed compilation for UWP platform, minor cleanup and refactoring. 2021-02-16 12:43:58 +02:00
Dmitry Kostjuchenko
c47aa44c1c
Merge pull request #508 from PortAudio/winrt
wasapi: Fixed glitchy audio in case of Exclusive polling mode and 24-bit packed format.
2021-02-16 12:34:26 +02:00
dmitrykos
7926e3a8ee wasapi: Fixed glitchy audio in case of Exclusive mode, 24-bit packed format and USB DAC (other audio devices using the same audio format could be affected too). 2021-02-16 12:15:00 +02:00
Phil Burk
0ac93f8634 coreaudio: remove pa_mac_core_old.c
It has not been used for years.

Fixes #493
2021-02-12 08:13:07 -08:00
MichalPetryka
73291bb1f5
Cleanup newlines at EOF in oss (#491) 2021-02-11 14:02:46 +11:00
MichalPetryka
94e4cf69c3
Cleanup newlines at EOF in dsound (#490) 2021-02-11 14:02:22 +11:00
Peter Ross
b2a4d5cb80
configure/make: export PaWasapi_* and PaWasapiWinrt_* symbols (#500) 2021-02-11 12:37:23 +11:00
Phil Burk
fa42d1284e macos: consider major version 11
Change version logic to allow for major 11 or later.

Partial fix for #492
2021-02-10 17:11:52 -08:00
Dmitry Kostjuchenko
0b73f1589c
Merge pull request #496 from rouseabout/master
wasapi: add PaWasapi_GetIMMDevice function
2021-02-09 23:39:33 +02:00
Peter Ross
38eba25bcc WASAPI: Add PaWaspi_GetIMMDevice function
The IMMDevice pointer enables access to audio device capabiltiies not exposed by PortAudio.
https://docs.microsoft.com/en-us/windows/win32/api/mmdeviceapi/nn-mmdeviceapi-immdevice
2021-02-10 08:10:21 +11:00
Dmitry Kostjuchenko
ec3dd05855
Merge pull request #499 from rouseabout/consistent-export-symbol-numbers
cmake_support/template_portaudio.def: make symbol numbers consistent …
2021-02-09 23:03:29 +02:00
Peter Ross
0f26679b88 cmake_support/template_portaudio.def: make symbol numbers consistent with build/msvc/portaudio.def 2021-02-10 07:29:15 +11:00
orbea
4932b488c5 build: Fix builds with parallel make. 2021-02-05 15:40:33 -08:00
John Melas
dd857f6108 replace Carbon with CoreFoundation and CoreServices 2021-02-05 11:06:09 -08:00
Ed Maste
607b7d94d0
OSS: support 32-bit signed format AFMT_S32_NE (#462)
It may not be provided by all OSS implementations, so wrap the cases in
`#ifdef AFMT_S32_NE`.
2021-02-04 13:11:03 +11:00
Phil Burk
51547aa31c configure: add arm64 for Mac M1
Add additional architecture to builds.

Fixes #445
2021-02-03 17:35:08 -08:00
Phil Burk
9756c86061 configure: add INCLUDES for mingw build
Previously, only portaudio.h was installed when building under mingw using
make. This behavior differs from CMakeLists.txt PA_PUBLIC_INCLUDES where
pa_win_*.h header files are installed.

To cross-compile using MXE (https://mxe.cc/) we need pa_win_*.h headers.
Add them to configure.in so that they are installed.

Patch by Stefan Hajnoczi
2021-02-03 17:31:02 -08:00
MichalPetryka
9a5c7cb346
Cleanup newlines at EOF in skeleton (#480) 2021-02-04 12:20:11 +11:00
MichalPetryka
74fa59a036
Cleanup newlines at EOF in src/os/win (#481) 2021-02-04 12:19:45 +11:00
MichalPetryka
b5a55169b9
Cleanup newlines at EOF in src/common (#482) 2021-02-04 12:19:23 +11:00
MichalPetryka
67dc808f69
Cleanup newlines at EOF in src/hostapi/asio (#483) 2021-02-04 12:18:29 +11:00
Ross Bencina
d36033d5da
Clean up whitespace in src/hostapi/wasapi in preparation for .editorconfig. Indent by 4 spaces. Strip trailing whitespace. (#477) 2021-02-04 12:17:29 +11:00
Ross Bencina
bfb9b7f7e7
Clean up whitespace in src/hostapi/wdmks in preparation for .editorconfig. Indent by 4 spaces. Strip trailing whitespace. (#476) 2021-02-04 12:17:16 +11:00
Ross Bencina
3686f2f053
Clean up whitespace in src/hostapi/alsa in preparation for .editorconfig. Indent by 4 spaces. (#475) 2021-02-04 12:17:00 +11:00
Davide Gerhard
813b281826 pa_mac_core.c: add missing definition to fix build on older systems
thanks to @kencu
2021-01-31 09:08:05 -08:00
luz paz
52b1026c1f Fix user-facing and non-user-facing typos
Found via `codespell v2.1.dev0`  
`codespell -q 3 -L chello,gord,guid,numer,pres,uint,wirth`
2021-01-27 17:40:26 -08:00
John Melas
b50bca981e
use variadic arguments in DEFINE_GUID also for MSVC (#374)
The fix for DEFINE_GUID that was recently added in pa_win_wdmks.c is also needed for the MSVC compiler.
Latest versions of the compiler support the /Zc:preprocessor option which is conforming to C99 and later standards
https://docs.microsoft.com/en-us/cpp/build/reference/zc-preprocessor?view=msvc-160
so it generates the exact same error as Clang (too many arguments error).

Co-authored-by: John Melas <john@jmelas.gr>
2021-01-28 12:29:24 +11:00
Ross Bencina
358d153564
Run MSBuild MSVC project CI for pull requests (#419) 2021-01-27 23:50:10 +11:00
Phil Burk
fa525d6199
mac autoconf: support current and future SDKs (#470)
Improve the way we generate the path to the SDK so that it
it not tied to specific Mac versions.

Also changed macosx-version-min to 10.6

Fixes #378
Fixes #468

Use xcrun instead of xcodebuild

Note that "configure" was generated using autoconf on Linux.
2021-01-26 15:25:10 -08:00
Phil Burk
68e1c5685b
Fix patest1 printf (#467)
* Fix patest1.c printf

Got changed from fprintf() accidentally.

Fixes #466
2021-01-24 14:54:28 -08:00
orbea
6a86d4bd3b autoconf build: add src dir src/hostapi/skeleton to fix out of tree builds." 2021-01-22 07:40:11 -08:00
petris
85f7602a3c Whitespace cleanup in test 2021-01-22 07:34:52 -08:00
petris
92e7210603 Whitespace cleanup in examples 2021-01-22 07:34:09 -08:00
petris
2d0a88a618 Whitespace cleanup in qa 2021-01-22 07:18:08 -08:00
Phil Burk
f7efb6b53c
docs: Pa_OpenStream() fails if sampleRate unavailable (#446)
It was not clear in the previous docs.
Fixes #443
2021-01-21 08:17:27 -08:00
Ross Bencina
0b832f5ff1
Clean up whitespace in qa/ in preparation for .editorconfig. (#418)
* Clean up whitespace in qa/ in preparation for .editorconfig. Convert tabs to 4 spaces. Indent by 4 spaces. Strip trailing whitespace. Ensure EOL at EOF.
2021-01-22 00:00:40 +11:00
Ross Bencina
f58b69dc36
Clean up whitespace in test/ in preparation for .editorconfig. (#417)
* Clean up whitespace in test/ in preparation for .editorconfig. Convert tabs to 4 spaces. Indent by 4 spaces. Strip trailing whitespace. Ensure EOL at EOF.
2021-01-21 23:45:10 +11:00
Ross Bencina
b251bdd7f8
Clean up whitespace in src/os/unix in preparation for .editorconfig. Convert tabs to 4 spaces. Indent by 4 spaces. Strip trailing whitespace. Ensure EOL at EOF. (#410) 2021-01-21 23:27:43 +11:00
Ross Bencina
4c673d1f2b
Clean up whitespace in src/os/win in preparation for .editorconfig. (#409)
* Clean up whitespace in src/os/win in preparation for .editorconfig. Convert tabs to 4 spaces. Indent by 4 spaces. Strip trailing whitespace. Ensure EOL at EOF.
2021-01-21 23:23:00 +11:00
Ross Bencina
fac71001ee
Clean up whitespace in src/common in preparation for .editorconfig. (#408)
* Clean up whitespace in src/common in preparation for .editorconfig. Convert tabs to 4 spaces. Indent by 4 spaces. Strip trailing whitespace.
2021-01-21 23:06:08 +11:00
Ross Bencina
af9f4e3e19
Clean up whitespace in pa_win_wmme.c in preparation for .editorconfig (#413)
* Clean up whitespace in pa_win_wmme.c in preparation for .editorconfig. Convert tabs to 4 spaces. Indent by 4 spaces. Strip trailing whitespace. Ensure EOL at EOF.

* vertically align trailing comments on 4 space boundary
2021-01-21 22:46:49 +11:00
Ross Bencina
fd4cebf2cb
Clean up whitespace in src\hostapi\dsound in preparation for .editorconfig. Convert tabs to 4 spaces. Indent by 4 spaces. Strip trailing whitespace. Ensure EOL at EOF. (#412) 2021-01-21 22:32:05 +11:00
Ross Bencina
238d8db31a
Clean up whitespace in examples/ in preparation for .editorconfig. Convert tabs to 4 spaces. Indent by 4 spaces. Strip trailing whitespace. Ensure EOL at EOF. (#416) 2021-01-21 22:23:23 +11:00
Ross Bencina
f476839ab8
Clean up whitespace in pa_asio.cpp in preparation for .editorconfig. Convert tabs to 4 spaces. Indent by 4 spaces. Strip trailing whitespace. Ensure EOL at EOF. (#411) 2021-01-21 22:17:17 +11:00
Etienne Dechamps
80c5f27120
Ignore the Visual Studio CMake settings file. (#422)
When using CMake, this file is written by Visual Studio to hold custom
CMake parameters.
2021-01-21 22:16:44 +11:00
Ross Bencina
20a971df57
Clean up whitespace in src/hostapi/{asihpi, jack, oss, skeleton} in preparation for .editorconfig. (#414)
* Clean up whitespace in src/hostapi/{asihpi, jack, oss, skeleton} in preparation for .editorconfig. Convert tabs to 4 spaces. Indent by 4 spaces. Strip trailing whitespace. Ensure EOL at EOF.

* Additional formatting cleanups.
2021-01-21 21:58:54 +11:00
Ross Bencina
c441223dfa
Clean up whitespace in include/ in preparation for .editorconfig. (#415)
* Clean up whitespace in include/ in preparation for .editorconfig. Convert tabs to 4 spaces. Indent by 4 spaces. Strip trailing whitespace. Ensure EOL at EOF.
2021-01-21 14:19:22 +11:00
John Melas
51e075d3dc alignment fixes 2021-01-20 18:21:30 -08:00
John Melas
9a1fa58773 remove todo comments 2021-01-20 18:21:30 -08:00
John Melas
ac76dea010 pass input size in AudioConverterFillComplexBuffer as number of packets 2021-01-20 18:21:30 -08:00
John Melas
61c402f941 fix ringBufferIOProc 2021-01-20 18:21:30 -08:00
John Melas
1d3a239fd0 remove support for OS X 10.4, rename functions pa_ -> PaMacCore_ 2021-01-20 18:21:30 -08:00
John Melas
f4ca438599 formatting and #ifdef comment 2021-01-20 18:21:30 -08:00
John Melas
992e84387f fix compile error 2021-01-20 18:21:30 -08:00
John Melas
98ea697d33 new hal 2021-01-20 18:21:30 -08:00
John Melas
afc6591519 fix logging warnings 2021-01-20 18:21:30 -08:00
Ed Maste
fc2a24d394 OSS: correct test for unsupported formats
Previously GetAvailableFormats returned paSampleFormatNotSupported if
AFMT_S16_NE was not supported, regardless of the supported state of any
other formats.  Instead, return paSampleFormatNotSupported if no
supported formats are found.
2021-01-20 18:16:21 -08:00
Ed Maste
f13ab77c46 OSS: include both /dev/dsp and /dev/dsp0
On FreeBSD /dev/dsp is the default device but may not be /dev/dsp0.
PortAudio in the FreeBSD ports collection initially had a patch to
replace the default device with /dev/dsp (for example, with three
devices and /dev/dsp1 as the default we'd have /dev/dsp0, /dev/dsp,
/dev/dsp2).  This caused some trouble (the first device is no longer
default) and was later replaced with this change, leaving /dev/dsp
as the first entry, and just adding each /dev/dsp%d that exists.

FreeBSD bugs 208968 and 236118.
2021-01-20 18:15:56 -08:00
Be
91debabf3f remove unused and undocumented fixdir.bat & fixfile.bat 2021-01-21 12:56:56 +11:00
Be
0377f169b7 remove index.html
This file does not belong in a code repository.
2021-01-20 17:54:15 -08:00
Dmitry Kostjuchenko
93df249256
Merge pull request #429 from bluecataudio/fix_wsapi_failure
wasapi: Device list should not fail with error if no audio device found.
2021-01-07 20:36:10 +02:00
Blue Cat Audio
3532e56784 Fix: WASAPI should not fail with error if no device found 2021-01-07 12:52:09 +01:00
Dmitry Kostjuchenko
00df77e6b1
Merge pull request #421 from dechamps/mixdef
Add missing PaWasapi_GetDeviceMixFormat cmake DLL export
2021-01-02 17:30:05 +02:00
Etienne Dechamps
5b75613f06 Add missing PaWasapi_GetDeviceMixFormat cmake DLL export
This omission made it impossible to use PaWasapi_GetDeviceMixFormat()
from a PortAudio DLL built using CMake.
2021-01-01 15:42:20 +00:00
Dmitry Kostjuchenko
d6fc190012
Merge pull request #376 from jmelas/wasapi_mismatch
wasapi: Fix signed/unsigned mismatch warning.
2020-12-29 17:30:48 +02:00
John Melas
159b415af0 fix signed/unsigned mismatch warning 2020-12-29 17:22:57 +02:00
Dmitry Kostjuchenko
a4cbc426d2
Merge pull request #406 from bear101/startstream_block
WASAPI: Report thread running so Pa_StartStream can return
2020-12-29 10:46:16 +02:00
Bjørn Damstedt Rasmussen
2d8c7eb0f7 Report thread running so Pa_StartStream can return prior to PaStreamCallback
StartStream() calls WaitForSingleObject(stream->hThreadStart, 60*1000)
but it will not be able to return until X number of PaStreamCallback
have been performed by ProcessOutputBuffer().

The above behaviour will cause a deadlock if the user supplied
PaStreamCallback tries to access a shared lock currently held by the
function calling Pa_StartStream().

Also it's a bit weird that you start receiving PaStreamCallbacks
before Pa_StartStream() is able to complete.
2020-12-29 09:27:38 +01:00
MichalPetryka
f4a9023400 Align slashes 2020-12-28 08:22:23 -08:00
MichalPetryka
6f90db9612 Update pa_win_wmme.c 2020-12-28 08:22:23 -08:00
petris
17b895bb8f Fix ANSI in MME and DSound 2020-12-28 08:22:23 -08:00
Ross Bencina
7ffe61ea26 Fix uninitialized variable warnings. Improved solution for PR #377 2020-12-28 23:19:59 +11:00
Ross Bencina
6a676d3ecb wdmks: Reset packet->Header.OptionsFlags = 0 for each packet. Fixes issue with Focusrite Scarlett 2i4 (1st Gen). Fixes #310 2020-12-27 23:04:42 +11:00
Ross Bencina
fb9b6463eb Rename build steps for clarity. 2020-12-27 23:03:46 +11:00
Ross Bencina
cdd1cf69fe Add new GitHub action to build PortAudio using the MSVC project file. Fixes #368. 2020-12-27 23:03:46 +11:00
Jean-Michaël Celerier
a7bda88e6b Fix a GCC warning due to unsigned substraction
Given

    unsigned int reqRate, setRate, deviation;

then 

    setRate - reqRate

is also an unsigned int - the code works "by chance" as `abs` casts that to an int which overflows and is technically undefined behaviour, for instance for setRate = 44100 and reqRate = 48000.

Thus cast them to int when computing the absolute value to ensure no UB.
2020-12-26 15:41:53 -08:00
Phil Burk
63bbb63343 paqa_devs.c: improve file comment 2020-12-26 08:47:56 -08:00
Phil Burk
d68a78d30b paqa_devs.c: remove some white space 2020-12-26 08:47:56 -08:00
Phil Burk
5f869e787e paqa_devs: test default device
Use sine wave instead of sawtooth because it is
easier to hear glitches.

Add some options:
    -a - Test ALL devices, otherwise just the default devices.
    -i - Test INPUT only.
    -o - Test OUTPUT only.
2020-12-26 08:47:56 -08:00
Ross Bencina
1a5c410f7f return paInternalError from PaWasapi_UpdateDeviceList() when it is disabled 2020-12-21 16:37:38 +11:00
Ross Bencina
4ce9f0d0a8 fix issue #321 broken MSVC build. Always define PaWasapi_UpdateDeviceList() even when it is a no-op because it is mentioned in the .def file. 2020-12-21 16:37:38 +11:00
Ross Bencina
609b998334 Fix compiler warnings: 'type cast': conversion from 'int' to 'HWAVEIN' of greater size. See ticket #370 2020-12-21 16:35:52 +11:00
Phil Burk
cff8571659
Merge pull request #344 from daschuer/ChameleonPatch
Don't crash if alsa_snd_pcm_poll_descriptors fails
2020-12-18 09:57:32 -08:00
Phil Burk
0da139d46d
Merge pull request #373 from jmelas/dword_thread
Change PaWinUtilComInitializationResult::initializingThreadId to DWORD to match the native type of WIN32 thread id
2020-12-18 09:50:36 -08:00
John Melas
7503d9f239 fix non latin1 character in pa_debugprint.c 2020-12-18 22:58:22 +11:00
John Melas
1c54d71e2a use DWORD for thread id 2020-12-18 11:50:44 +02:00
Dmitry Kostjuchenko
3c6337b268
Merge pull request #364 from MichalPetryka/patch-1
Update def files for #340
2020-12-18 09:30:49 +02:00
MichalPetryka
11a3e23917
Update portaudio.def 2020-12-17 10:53:44 +01:00
MichalPetryka
b900df6d9d
Add PaWasapiWinrt_PopulateDeviceList 2020-12-17 09:53:16 +01:00
MichalPetryka
e5cb1a620f
Update def files for #340 2020-12-15 19:39:22 +01:00
Daniel Schürmann
9ddb047ab1 Improve code style 2020-12-14 08:22:54 +01:00
Daniel Schürmann
8f63b51808 Don't crash for alsa_snd_pcm_poll_descriptors fail in another case 2020-12-14 08:03:04 +01:00
Phil Burk
e76f8fdd40
Merge pull request #361 from luzpaz/typos
Fix user-facing and non-user-facing typos
2020-12-13 14:39:55 -08:00
luzpaz
0588b306c4
Revert typo
Co-authored-by: Phil Burk <philburk@mobileer.com>
2020-12-12 21:35:50 -05:00
luz paz
e1c3e59ee8 Fix user-facing and non-user-facing typos
Found via `codespell v2.1.dev0`
2020-12-11 20:24:05 -05:00
Dmitry Kostjuchenko
37a97ac470
Merge pull request #362 from PortAudio/winrt
wasapi: Fixed underruns in the Exclusive mode on UWP platform.
2020-12-11 15:33:26 +02:00
dmitrykos
f3924081ab wasapi: Fixed underruns in the Exclusive mode on UWP platform (or when timeBeginPeriod does not allow to set 1 ms granularity) by assuming that system timer granularity on UWP equals to 10 msec, make sure time to sleep provided by GetNextSleepTime is aligned to the granularity of the system timer. 2020-12-11 15:30:08 +02:00
Nemirtingas
e5279859ce
Fix GUID defines in pa_win_wdmks.c when compiling with clang-cl (#327)
Fix GUID defines in pa_win_wdmks.c when compiling with clang-cl

Co-authored-by: Nemirtingas <nanaki89@hotmail.fr>
2020-12-08 17:28:56 +11:00
Dmitry Kostjuchenko
5f35d35ad0
Fixed breaking strict-aliasing rules (if compiled with GCC with -fstrict-aliasing) in PaWin_InitializeWaveFormatExtensible(). (#342) 2020-12-08 17:26:54 +11:00
Daniel Schürmann
b37657be70 Remove superfluid void cast 2020-11-27 08:40:45 +01:00
Ross Bencina
521209c633
pa_mac_core_utilities: add void to empty function argument list (#355)
Insert "void" in the argument list to turn initializeXRunListenerList and destroyXRunListenerList declarations into valid prototypes. Also update the function definitions to match. Thanks to Paul Boersma.
2020-11-26 13:46:05 +11:00
Paul Boersma
4793ce4fbf
Add missing void argument, and include include pa_jack.h in pa_jack.c (#347)
* Update pa_jack.c

include `pa_jack.h` in `pa_jack.c`, which provides prototypes for PaJack_SetClientName() and PaJack_GetClientName()

* Update pa_unix_util.h

PaUnixThreading_Initialize() is not a prototype in C, make it PaUnixThreading_Initialize(void)

* Update pa_unix_util.c

make PaUnixThreading_Initialize definition correspond to prototype
2020-11-26 12:39:01 +11:00
Colin McEwan
7e2a33c875
Fix crashes on disconnected pins in wmdks topologies. (#300)
* Fix crashes on disconnected pins in wmdks topologies.
* Fix potential assert on disconnected physical output pin in PinNew
2020-11-19 13:22:22 +11:00
Daniel Schürmann
ccc88607b6 Don't crash if alsa_snd_pcm_poll_descriptors fails 2020-11-12 00:25:34 +01:00
Phil Burk
88c71a6ec4
Merge pull request #338 from hoolrory/ticket_218_2
Replace usage of deprecated component manager APIs on 10.6+
2020-10-28 17:32:30 -07:00
Nemirtingas
fd0d181261 Add the install interface. 2020-10-29 11:30:33 +11:00
Dmitry Kostjuchenko
f1cd56e05b
Merge pull request #341 from PortAudio/winrt
wasapi: Fixed compilation with MinGW32 (original mingw32, not mingw-w64).
2020-10-26 22:29:00 +02:00
dmitrykos
b3592b0749 wasapi: Fixed compilation with MinGW (mingw32): gcc version 6.3.0 (MinGW.org GCC-6.3.0-1), include /mingw-include folder explicitly (when compiling with mingw-w64 the /mingw-include folder must not be included). 2020-10-26 21:28:37 +02:00
Dmitry Kostjuchenko
e86babdcb2
Merge pull request #340 from PortAudio/winrt
wasapi: Support multiple devices in the device list on Windows UWP/WiRT platform.
2020-10-26 16:49:44 +02:00
dmitrykos
a5fb8d94aa wasapi: Support multiple devices in the device list on Windows UWP/WinRT platform. All UWP/WinRT functions are now prefixed as PaWasapiWinrt_ to be clearly visible, therefore PaWasapi_SetDefaultInterfaceId() was renamed to PaWasapiWinrt_SetDefaultDeviceId(). Expanded Important notes regarding UWP/WinRT platform and how to make the fully-functional device list with the corresponding pseudo-code example for easier understanding of the functionality. 2020-10-26 16:40:25 +02:00
Hool, Rory
b1a0902852 Replace usage of deprecated component manager APIs on 10.6+
These APIs are deprecated in 10.8+ and are disabled on 11.0(10.16)+ https://developer.apple.com/documentation/coreservices/carbon_core/component_manager?language=objc
> "This application, or a library it uses, is using the deprecated Component Manager for hosting Audio Components. This is not supported when rebuilding against the 10.16 or later SDK. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h."
2020-10-22 13:53:56 -04:00
Etienne Dechamps
9d3e583ce5 Add a GitHub action for building with CMake on MSVC. 2020-10-22 08:16:51 -07:00
Etienne Dechamps
e96c5dbdec Add a GitHub action for building with CMake. 2020-10-22 08:16:51 -07:00
Dmitry Kostjuchenko
da20219f27
Merge pull request #312 from PortAudio/alsa_ignore_all_plugins
alsa: Option to ignore all ALSA plugin devices.
2020-10-22 10:34:51 +03:00
Jean-Michaël Celerier
58fe947b7f Add support for enabling dynamic alsa loading in CMakeLists.txt
It had been added to the source code a long time ago, but was not integrated to the
build system.
2020-10-22 11:50:48 +11:00
Etienne Dechamps
5bc01421c8 Add a GitHub action for cross-compiling to MinGW via CMake. 2020-10-22 11:40:11 +11:00
Etienne Dechamps
bd5b68a62b Ignore files generated by Visual Studio 2017/2019. 2020-10-22 11:31:37 +11:00
dmitrykos
6bb858643b alsa: Introduce possibility to ignore all ALSA plugin devices by setting the environment variable PA_ALSA_IGNORE_ALL_PLUGINS to non-0. Fixed logic of guarding assertion in BuildDeviceList() when only one or none PCM device is available (may occur if PA_ALSA_IGNORE_ALL_PLUGINS is set to non-0 or when device has no any audio device available, including plugin devices). 2020-10-15 11:05:05 +03:00
Dmitry Kostjuchenko
6a90e596b6
Merge pull request #325 from PortAudio/winrt
wasapi: Refactored device list creation, if faulty audio device is re…
2020-10-10 00:43:32 +03:00
dmitrykos
522f982158 wasapi: Refactored device list creation, if faulty audio device is reported as active by WASAPI then it will not break device list creation, silenced warnings when compiling for UWP platform. 2020-10-10 00:42:20 +03:00
Dmitry Kostjuchenko
3913a95a9b
Merge pull request #324 from PortAudio/winrt
wasapi: Replace tabs with 4-spaces to comply with PortAudio code styl…
2020-10-09 00:59:40 +03:00
dmitrykos
aa6ff975af wasapi: Replace tabs with 4-spaces to comply with PortAudio code style guidelines (http://github.com/PortAudio/portaudio/wiki/ImplementationStyleGuidelines). 2020-10-09 00:57:23 +03:00
Ross Bencina
19f638da5a wdmks: ensure that pins that failed creation by PinNew() are set to NULL. Note that PaUtil_AllocateMemory currently calls GlobalAlloc without the GMEM_ZEROINIT flag, so there was no guarantee that filter->pins[pinId] was zero. 2020-10-08 12:03:47 +11:00
Phil Burk
e90b19ef2b docs: change Assembla links to GitHub
Fixes #298
2020-10-08 10:18:37 +11:00
Dmitry Kostjuchenko
7db12305c3
Merge pull request #316 from PortAudio/winrt
wasapi: Fix paInvalidSampleRate (and any other) error code is replaced with paInvalidDevice.
2020-10-05 20:56:42 +03:00
Phil Burk
2a7f8fcd7a build: add new Mac SDKs to configure
Add SDK 10.14 and 10.15 to configure.in

Removed i386 and PPC architectures on Mac because they are
deprecated and make fails if they are used.

The configure file was generated from the configure.in
file by entering this on Linux:

    aclocal
    autoconf

Fixes 308
2020-10-03 17:01:58 -07:00
dmitrykos
dcc2f7fa48 wasapi: Fix paInvalidSampleRate (and any other) error code is replaced with paInvalidDevice if audio client failed to be created due to some reason. 2020-10-03 23:21:11 +03:00
Dmitry Kostjuchenko
8c6cc73265
Merge pull request #307 from PortAudio/winrt
wasapi: Improvement to lower possible cases of underruns due to coarse system timer and time-hungry user-side processing..
2020-10-03 23:00:22 +03:00
dmitrykos
697fcddce5 wasapi: Improve stability of playback in Polling Shared mode with a low host latency requsted (22 ms):
- Implement workaround for system timer coarse granularity causing underruns by using timeBeginPeriod/timeEndPeriod APIs inside the Event and Poll thread handlers.
- Update next sleep time of the Poll rendering loop dynamically depending on time taken for processing/rendering of audio data into the available host buffer to avoid underruns and fit processing time into periodic polling time slots.
- Add support for time slots logging in Poll mode if PA_WASAPI_LOG_TIME_SLOTS is defined. Fixed audible glitches by preloading the whole host buffer before stream is started.
- Fix audible glitches on stream start by preloading the whole host buffer before stream is started.
2020-10-03 22:55:36 +03:00
Tatsuya Matsumoto
519364b9a5 Fix a broken link (Tutorial Start) in README.md. 2020-10-03 07:52:54 -07:00
Ross Bencina
8119355f76
Update bug_report.md with more details 2020-10-01 10:38:48 +10:00
Phil Burk
2a1b7d4ad6 Add bug report template 2020-10-01 10:26:08 +10:00
Phil Burk
df4e0bf405 Create c-cpp.yml
Add continuous integration build test.
2020-09-30 17:16:35 -07:00
Phil Burk
d7c67287b8
Merge pull request #304 from ibauersachs/patch-1
Fix CMake build after renaming readme
2020-09-27 18:28:19 -07:00
Dmitry Kostjuchenko
0326a6573b
Merge pull request #305 from sveinse/feature-wasapi-glitch-fix
wasapi: Implement fix for glitching WASAPI playback in the Shared Mode
2020-09-27 21:17:23 +03:00
Svein Seldal
9ebe293dc5 Implement fix for glitching WASAPI playback #303 2020-09-27 18:28:19 +02:00
Ingo Bauersachs
e1443bae25
Fix CMake build after renaming readme 2020-09-27 00:02:53 +02:00
Phil Burk
a63ed32b99
Merge pull request #299 from RossBencina/RossBencina-README-patch-1
Fix doc and examples references in README.md
2020-09-24 09:55:49 -07:00
Ross Bencina
ffa556a475
Fix doc and examples references in README.md 2020-09-24 14:11:42 +10:00
Ross Bencina
be86be4b8e
Merge pull request #297 from philburk/philburk-patch-readme
Update and rename README.txt to README.md
2020-09-24 14:01:04 +10:00
Phil Burk
7273b8de27
Update and rename README.txt to README.md
Use markdown
2020-09-23 20:36:04 -07:00
Ross Bencina
09087cf5a6 Merge branch 'edechamps-remove-testcvs' into 'master'
Get rid of the garbage testcvs/ directory

+1: Phil Burk, Ross Bencina

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7106691
2020-08-06 00:38:10 +00:00
Ross Bencina
f828ad5fdc Merge branch 'alsa_uninitialized_dir_fixes' into 'master'
Fix additional cases of uninitialized dir variable in pa_linux_alsa.c

+1: Phil Burk

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7613051
2020-08-06 00:25:37 +00:00
Ross Bencina
b107f0853a Merge branch 'ticket_263_alsa_uninitialized_var_2' into 'master'
Fix uninitialized dir variable in pa_linux_alsa.c (Version 2)

+1: Ross Bencina, Phil Burk

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7612921
2020-08-06 00:23:46 +00:00
dmitrykos
799a6834a5 wasapi: Fixed OSVERSIONINFO initialization (patch provided by Carlo Bramini). 2020-03-26 20:05:53 +02:00
Ross Bencina
f269bf93e6 follow up fix related to 933b05c331 (ticket #263 uninitialized dir variable): fix the three other places where dir parameter wasn't set prior to entry to a snd_pcm_*_get_* function. There is some ambiguity about (a) whether this is intentional (i.e. use the rounding dir returned by previous *_get_* call, the PA source code does not indicate), and (b) whether it is meaningful (i.e. whether *_get_* functions actually use the value upon input -- the ALSA docs are not clear. regarding (a): I don't think it's intentional, i think it was just oversight. In any case thr risk is low: the underlying values of period_size, periods_max, periods_min, are all integer and should not be rounded, get_rate_min/get_rate_max are used only for debug reporting (I've set them to 0,0 for a minimal change from the current code, but -1,1 makes more sense). 2019-05-14 07:36:24 +10:00
Ross Bencina
933b05c331 fix uninitialized dir variable in pa_linux_alsa.c GropeDevice() by removing it. pass NULL as parameter to ALSA functions instead. see ticket #263. 2019-05-14 07:00:47 +10:00
Phil Burk
c5d2c51bd6 Merge branch 'removeasio' into 'master'
asio: remove unnecessary ASIO SDK files

+1: Phil Burk

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7559751
2019-04-26 16:48:28 +00:00
Phil Burk
ab665735ad asio: remove unnecessary ASIO SDK files
These files should be obtained directly from Steinberg.
2019-04-26 09:43:52 -07:00
Dmitry Kostjuchenko
eb6b5e2598 Merge branch 'winrt' into 'master'
WASAPI: Add paWinWasapiAutoConvert flag, which sets AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM | AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY for Shared mode streams.

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7481081
2019-04-05 07:42:43 +00:00
dmitrykos
c40b969e1b wasapi: some cleanup of Jörn Heusipp's patch 2019-04-05 10:38:44 +03:00
Jörn Heusipp
aa0748a5b5 wasapi: Add paWinWasapiAutoConvert flag, which sets AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM | AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY for Shared mode streams.
AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM is required in order to allow for sample rates other than the system mixer configured sample rate. Otherwise, WASAPI is limited to a single system configured sample rate in Shared mode, which is a severe limitation compared to other APIs supported by PortAudio.
AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY is recommended to be used additionally.
See <https://docs.microsoft.com/en-us/windows/desktop/coreaudio/audclnt-streamflags-xxx-constants> for documentation.

GetClosestFormat is modified to exit early when paWinWasapiAutoConvert is set in Shared mode because we trust the WASAPI conversions to succeed.

We restrict these changes to Windows 7 (and later) because documentation does not clearly state the minimum required Windows version. Windows Vista was not available for testing.

This patch has been in production in OpenMPT (<https://openmpt.org/>) since version 1.27.01.00 (2017-09-27). PortAudio WASAPI Shared mode is the default output device type in OpenMPT for Windows 7 (and later) and also for Wine setups.
2019-04-05 10:02:17 +03:00
Dmitry Kostjuchenko
d7229de83b Merge branch 'winrt' into 'master'
WASAPI: Fix failing with unsupported format error if PaWasapiStreamCategory is other than default

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7376301
2019-04-05 06:53:39 +00:00
dmitrykos
d99940b26e wasapi: set IAudioClient2+ properties before GetClosestFormat() in order to avoid failing with unsupported format error if PaWasapiStreamCategory is other than default, for example eAudioCategorySpeech 2019-03-09 12:43:14 +02:00
Dmitry Kostjuchenko
7bfa11f463 Merge branch 'winrt' into 'master'
WASAPI: Improved audio output stability in Exclusive mode for some UAC2 DACs

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7327181
2019-02-23 21:04:57 +00:00
dmitrykos
96f81c0ec1 wasapi: Improved audio output stability in Exclusive mode for some UAC2 DACs with custom USB Audio driver by calculating buffer periodicity being equal (or almost equal) to the requested user frames (Capturing is excluded from this implementation as it has not yet been tested but can be included if tests show the improvement), cleanup/refactor some code to make it better readable 2019-02-23 23:02:38 +02:00
Dmitry Kostjuchenko
b7870b08f7 Merge branch 'winrt' into 'master'
WASAPI: new API PaWasapi_SetStreamStateHandler(), header cleanup and minor fix

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7129721
2018-12-24 12:22:35 +00:00
dmitrykos
83ab55b62d wasapi: new API PaWasapi_SetStreamStateHandler() to be able to catch WASAPI error inside the rendering thread loop (and handle it gracefully, for example restart the stream), protect from dangling pointer during device list update, cleanup header 2018-12-24 14:20:29 +02:00
Etienne Dechamps
8d0e18f87b Get rid of the garbage testcvs/ directory. 2018-12-15 15:15:59 +00:00
Etienne Dechamps
76e31c2a24 Merge branch 'winbuild' into 'master'
Improvements to CMake build system on Windows

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7040151
2018-12-15 15:06:22 +00:00
Etienne Dechamps
95e86c307b Install pa_win_waveformat.h with MME, DirectSound and WASAPI.
pa_win_wmme.h, pa_win_ds.h and pa_win_wasapi.h all include
pa_win_waveformat.h. If the latter is not installed, none of these
headers are usable.
2018-12-15 15:04:20 +00:00
Etienne Dechamps
0baa1e2e31 Treat DirectSound just like any other standard Windows SDK library.
Currently the CMake build system goes through complicated logic to
find the DirectX SDK. This is completely unnecessary, because modern
versions of the Windows SDK include dsound.h and dsound.lib in the
standard paths, so it can be treated just like the other Windows OS
libraries and we can safely assume it is available.

This commit simplifies the logic and will allow the vcpkg portaudio
port to align with portaudio stream, by getting rid of this patch:
  95f9ce56f3/ports/portaudio/find_dsound.patch

I have verified that PortAudio CMake still builds with this commit
with the following toolchains:
 - Windows Visual Studio 2017 native CMake support
 - mingw-w64 on Windows (msys2)
 - mingw-w64 cross-compiling from Debian Unstable
2018-12-15 15:04:20 +00:00
Dmitry Kostjuchenko
dfd780389b Merge branch 'winrt' into 'master'
WASAPI: relax latency check in Exclusive mode when switching from Event to Poll mode

+1: Etienne Dechamps

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7097201
2018-12-12 21:39:57 +00:00
dmitrykos
7572245aec wasapi: relax check for a latency range when deciding to switch from Event to Poll mode to have 1-21 ms range fine tuneable, add check for a min period when correcting period for UAC1 devices to avoid failure to initialize audio client due to invalid period error 2018-12-12 23:29:44 +02:00
Dmitry Kostjuchenko
b22a83a600 Merge branch 'winrt' into 'master'
WASAPI: fix rare case when Shared Mode format obtained by PKEY_AudioEngine_DeviceFormat not accepted by WASAPI

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7085071
2018-12-10 08:52:59 +00:00
dmitrykos
d74ea7b610 wasapi: get channels count and sample rate from a mix format (IAudioClient::GetMixFormat) for a PaDeviceInfo to circumvent rare cases when WASAPI does not accept format provided PKEY_AudioEngine_DeviceFormat due to a wrong channel count (bug and solution reported by Etienne Dechamps (edechamps), discussion: http://app.assembla.com/spaces/portaudio/git/merge_requests/7024281), new PaWasapi_GetDeviceMixFormat API to get mix format provided by IAudioClient::GetMixFormat 2018-12-10 10:50:31 +02:00
Dmitry Kostjuchenko
0cdb346fdc Merge branch 'winrt' into 'master'
WASAPI: fixed MonoToStereo converter could write beyond the allowed memory region if sample format is packed 24-bit integer, fixed DEF file by adding missing WASAPI API

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/6928491
2018-10-21 10:24:52 +00:00
dmitrykos
57b98d5a8c wasapi: fixed MonoToStereo converter could write beyond the allowed memory region if sample format is packed 24-bit integer, fixed DEF file by adding missing WASAPI API 2018-10-21 13:21:28 +03:00
Nicholas Appleton
05994e022d Merge branch 'cmake_mingw_additions' into 'master'
commit Rainer's work and make some minor modifications to the top-level cmakelists to make visual studio happy

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/4858113
2018-10-21 04:14:22 +00:00
Nick Appleton
365163674b update cmake documentation 2018-10-12 22:43:17 +11:00
Nicholas Appleton
294881a1b9 fix typo 2018-10-04 20:09:08 +10:00
Nick Appleton
495b303bbd Merge branch 'cmake_mingw_additions' of https://git.assembla.com/portaudio into cmake_mingw_additions 2018-10-02 21:55:27 +10:00
Nick Appleton
d3e00091c7 create and install cmake export targets to make it easier for people to include portaudio in larger projects: 2018-10-02 21:54:44 +10:00
Nicholas Appleton
ea11061b20 commit Rainer's work and make some minor modifications to the top-level cmakelists to make visual studio happy 2018-10-02 21:54:44 +10:00
Nick Appleton
396c189c01 create and install cmake export targets to make it easier for people to include portaudio in larger projects: 2018-10-02 21:53:41 +10:00
Dmitry Kostjuchenko
4f6fd67c3f Merge branch 'winrt' into 'master'
WASAPI: Fixed callback not called for Input stream if 1 channel format is requested.

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/6838604
2018-09-23 17:46:21 +00:00
dmitrykos
eb4a7d25dc wasapi: fixed callback not called for Input stream if 1 channel format is requested 2018-09-23 20:44:21 +03:00
Dmitry Kostjuchenko
c0d239712d Merge branch 'winrt' into 'master'
WASAPI: Fixed crash on NULL.

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/6794444
2018-09-10 20:11:26 +00:00
dmitrykos
5dec767af1 wasapi: fixed crash on NULL 2018-09-10 23:09:44 +03:00
Dmitry Kostjuchenko
b2f6d82342 Merge branch 'winrt' into 'master'
WASAPI: Fixed input device can not be opened in Exclusive mode (regression of previous commit).

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/6794374
2018-09-10 19:57:42 +00:00
dmitrykos
fe2c8e1f42 wasapi: fixed input device can not be opened in Exclusive mode (regression of previous commit) 2018-09-10 22:55:27 +03:00
Dmitry Kostjuchenko
9a8922da23 Merge branch 'winrt' into 'master'
WASAPI: Support for Exclusive mode on UWP, private API extension, fixes.

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/6785374
2018-09-06 17:52:14 +00:00
dmitrykos
c3fee03ff1 wasapi: support Exclusive mode on UWP (use new function PaWasapi_SetDefaultInterfaceId to set device's interface id to make Exclusive mode work);
- support for explicit 8.24 format (24-bit inside 32-bit container) by specifying paCustomFormat (see IMPORTANT notes in the header file);
 - new flag paWinWasapiExplicitSampleFormat to force explicit format and avoid fallback to a closest working;
 - new function PaWasapi_GetDeviceCurrentFormat to get device format of the opened stream;
 - support PaWasapi_ThreadPriorityXXX API on UWP to boot thread priority;
 - improved selection of the closest format in Exclusive mode.
2018-09-06 20:45:22 +03:00
Phil Burk
8a8078a9ba Merge branch 'ticket_274_xcode' into 'master'
configure: support SDK 10.13 in XCode

fixed #274

+1: Ryan Ollos

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/6183813
2018-08-19 21:16:00 +00:00
Dmitry Kostjuchenko
69d1b1e3cc Merge branch 'winrt' into 'master'
WASAPI: Fixed compilation error of PaWasapi_GetAudioClient().

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/6638133
2018-07-19 18:47:52 +00:00
dmitrykos
d7a4cb482d wasapi: fixed compilation error of PaWasapi_GetAudioClient() 2018-07-19 21:42:21 +03:00
Dmitry Kostjuchenko
64ad96ea3c Merge branch 'winrt' into 'master'
New PaWasapi_GetAudioClient() API and workaround to get real Windows version and thus use correct AudioClient interface version.

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/6574173
2018-07-01 10:04:04 +00:00
dmitrykos
a802290e83 wasapi: new PaWasapi_GetAudioClient() API to get pointer to IAudioClient from PaStream, workaround to get real Windows version in order to be able to create correct version of IAudioClient interface (Windows 10 was reported as Windows 8 when using just GetVersion()) 2018-06-30 12:21:59 +03:00
Phil Burk
8dc6d59877 Merge branch 'ticket_275_pass_void' into 'master'
Add void argument to Pa_GetVersionInfo()

+1: Anonymous

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/6415893
2018-05-26 04:49:10 +00:00
DaShun
c5e8f1dca7 Add asio lib. 2018-04-17 11:36:55 +08:00
Dmitry Kostjuchenko
3215043f0d Merge branch 'winrt' into 'master'
wasapi: new WASAPI specific API PaWasapi_UpdateDeviceList() which allows to update WASAPI device list dynamically without a need to call Pa_Terminate() and then Pa_Initialize()

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/6241053
2018-04-02 19:16:19 +00:00
dmitrykos
d3e65ce690 wasapi: correction to PaWasapi_UpdateDeviceList() API by making it unavailable by default unless PA_WASAPI_MAX_CONST_DEVICE_COUNT is explicitly defined 2018-04-02 22:15:49 +03:00
Dmitry Kostjuchenko
9923e1dc31 Merge branch 'winrt' into 'master'
WinRT: fixed failure to initialize WASAPI when Capture device is not provided by OS, and additional minor corrections.

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/5913713
2018-04-02 18:55:13 +00:00
dmitrykos
eb62287494 wasapi: new WASAPI specific API PaWasapi_UpdateDeviceList() which allows to update WASAPI device list dynamically without a need to call Pa_Terminate() and then Pa_Initialize().
This new implementation overcomes current limitation of Pa_GetDeviceCount() API which gives constant device count by making WASAPI device list constant (32 devices by default) where 32 device slots can either be filled with a real device info or be empty for a future device changes.

Constant device list size can be altered by PA_WASAPI_MAX_CONST_DEVICE_COUNT define during a compile time. If PA_WASAPI_MAX_CONST_DEVICE_COUNT is set to 0 then PaWasapi_UpdateDeviceList() will be unavailable as well as dynamic device list update functionality.

This implementation also detects the audio device format change if user alters it via Windows Audio Controller GUI.

This implementation also makes WASAPI backend ready for a future implementation of device list updates via PortAudio public API. See internal PaError UpdateDeviceList().
2018-04-02 21:50:16 +03:00
Phil Burk
6e3f6b702f configure: support SDK 10.13 in XCode
Updated configure.in
then ran autoconf to regenerate the configure script.

Fixes #274
2018-03-18 15:30:36 -07:00
dmitrykos
a525c38289 wasapi: fixed failure to initialize when Capture device is not provided by OS, silenced warnings in log functions 2018-01-10 20:58:14 +02:00
Ross Bencina
1bdcb9e413 Merge branch 'winrt' into 'master'
WASAPI: corrections for Windows 10 UWP

+1: Ross Bencina, Anonymous, Roland Winklmeier

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/4995123
2017-11-13 06:42:49 +00:00
dmitrykos
bc40f42cba wasapi: corrected GetWindowsVersion() to return Windows 10 (was max Windows 8)
wasapi: use IAudioClient3 for Windows 10 for best compatibility
wasapi: fix compilation when Windows 10 SDK (10.0.15063.0) is used by removing SignalObjectAndWait() definition which creates duplicates with the system defined SignalObjectAndWait() (since 10.0.15063.0 it is supported by the OS again)
2017-05-29 22:44:36 +03:00
Nicholas Appleton
72e319ad04 commit Rainer's work and make some minor modifications to the top-level cmakelists to make visual studio happy 2017-04-30 22:04:34 +10:00
Nicholas Appleton
a1f61a9a2c fix a tragic typo I made which prevented WASAPI being included with the CMake support. 2017-01-15 21:30:35 +11:00
Phil Burk
396fe4b669 Merge branch 'ticket_260_terminate' into 'master'
pa_front.c: fix initializationCount_ in Pa_Terminate()

+1: Ross Bencina

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/4012103
2016-10-24 16:10:12 +00:00
Phil Burk
dde71d1114 pa_front.c: fix initializationCount_ in Pa_Terminate()
Was decrementing too soon and causing Pa_CloseStream() to fail.
See ticket #260
2016-10-23 14:50:01 -07:00
Ross Bencina
49d0634189 Merge branch 'cmake_mingw_fixes' into 'master'
CMakedLists.txt: Replicate the library dependencies in the configure script

+1: Ross Bencina

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3915533
2016-10-10 00:56:01 +00:00
Ross Bencina
037f18a2e4 Merge branch '257-wdmks-winioctl-include' into 'master'
Fix for ticket #257: MinGW-w64: Inclusion of <winioctl.h> triggers multiple redefinition errors.

+1: Phil Burk

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3915493
2016-10-04 12:59:26 +00:00
Nicholas Appleton
e0947b7d6a replicate the library dependencies in the configure script 2016-10-02 21:50:42 +11:00
Ross Bencina
18b2ab2339 Fix for ticket #257: MinGW-w64: Inclusion of <winioctl.h> triggers multiple redefinition errors. 2016-10-02 20:34:04 +11:00
Phil Burk
82773feed7 Merge branch 'ticket_256_numchannels' into 'master'
paex_read_write_wire: fix crossed initialization

+1: Ross Bencina

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3888083
2016-09-27 15:49:46 +00:00
Phil Burk
f275c76ca9 paex_read_write_wire: fix crossed initialization
MinGW complained.

Fixes ticket #256
2016-09-26 15:42:38 -07:00
Ross Bencina
03eabbf9cd Merge branch 'rb-doxygen-tweaks' into 'master'
Doxygen documentation: Fix Front Page formatting, fix broken links, link to MinGW build instructions on Wiki

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3876603
2016-09-25 08:07:53 +00:00
Ross Bencina
fcc15ae053 Merge branch 'rb-document-api-version' into 'master'
Document API Version Availability (e.g. `Available as of 19.5.0`).

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3881793
2016-09-25 08:07:41 +00:00
Ross Bencina
12f967356b Added Available as of version 19.6.0 doc comments for new wasapi host-api-specific APIs. 2016-09-25 17:55:12 +10:00
Ross Bencina
e50b31bd40 Update doxygen comments for WDM/KS to indicate that new APIs are available in 19.5.0 2016-09-25 17:49:15 +10:00
Ross Bencina
d940dcb8b8 Fix formatting of version API doxygen comments in portaudio.h. Add additional documentation details, see also, and version information (e.g. Available as of 19.5.0). 2016-09-25 17:34:16 +10:00
Ross Bencina
6dbb8a6d64 Merge branch 'bump_version' into 'master'
pa_front: bump version to 19.6.0 for release

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3873413
2016-09-25 05:49:16 +00:00
Ross Bencina
3765e908c2 Merge branch 'cmake_updates' into 'master'
Update PortAudio CMake Support

+1: Ross Bencina

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3751483
2016-09-25 05:48:45 +00:00
Phil Burk
3f7248cd00 pa_front: bumped to 19.6.0 2016-09-24 09:02:56 -07:00
Phil Burk
b69214bcb4 Merge branch 'ticket_252_nohang' into 'master'
pa_mac_core_blocking: fix hang when running stream stopped (fixed merge)

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3829453
2016-09-24 16:01:14 +00:00
Phil Burk
339e875f42 pa_mac_core: fix whitespace and missing semicolon
It compiled without the semicolon because it was followed by a VDBUG,
which was followed by a semicolon. The VDBUG was disabled so its
semicolon finished the line above.
2016-09-24 08:53:28 -07:00
Ross Bencina
5044381068 Merge branch 'rb-version-doc-comment-cleanup' into 'master'
Updated doc comments in portaudio.h to reflect that versionControlRevision is now a git revision hash

+1: Phil Burk, Ross Bencina

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3877593
2016-09-24 06:25:06 +00:00
Ross Bencina
c2326aa8f0 updated doc comments to reflect that versionControlRevision is now a git revision hash 2016-09-23 21:10:21 +10:00
Ross Bencina
2c0aed9d8f Doxygen document tweaks: * Link to our Wiki for latest MinGW build information. * Fix for latest doxygen: non-displaying links on main page (add space before <br>). * Remove broken link to java binding docs (not compiled). * Update link to mailing list. 2016-09-23 18:49:00 +10:00
Phil Burk
b2f9375237 pa_front: bump version to 19.5.1 for release 2016-09-22 09:29:36 -07:00
Phil Burk
cacc5dc4ba pa_mac_core: use MAX(inputFrames,outputFrames)
Double-check whether the stream does ouput before draining the buffer.
2016-09-22 09:05:38 -07:00
Ross Bencina
8b7f390907 Merge branch 'remove-microsoft-include-files' into 'master'
Remove Microsoft copyright include files from src/hostapi/wasapi/mingw-include

+1: Phil Burk, Ross Bencina

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3848293
2016-09-22 12:12:47 +00:00
Phil Burk
a38df79293 pa_mac_core_blocking: Fix timeout.
Change alignment of comment.
2016-09-21 15:46:30 -07:00
Ross Bencina
1cf10aa43f remove Microsoft copyright include files from src/hostapi/wasapi/mingw-include 2016-09-17 18:21:52 +10:00
Phil Burk
52bd2afb1d Merge branch 'ticket_251_alsacancel' into 'master'
pa_linux_alsa: fix hang in callback caused by abort

+1: Phil Burk

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3834073
2016-09-16 15:50:33 +00:00
Nick Appleton
0c10cb6c0c address all problems picked up by cmakelint except for line-length related comments. don't use min() in paex_record_file as it is a macro specific to windows. 2016-09-15 22:52:44 +10:00
Nicholas Appleton
1389dee5f6 get examples compiling with CMake on Windows again 2016-09-15 22:18:12 +10:00
Phil Burk
f17d549093 pa_linux_alsa: fix hang in callback caused by abort
The author of this patch is Alan Horstmann.

Fixes ticket #251
2016-09-14 08:50:33 -07:00
Phil Burk
0bc7cf9465 pa_mac_core_blocking: fix hang when running stream stopped
One thread was filling the buffer while
another thread was waiting for it to be empty.

Add thread safety warnings.

Fix ticket #252
2016-09-13 18:49:00 -07:00
Nicholas Appleton
2251a12026 undo whitespace change to pa_win_wasapi.c and fix a CMake grumbling about an unmatched ENDIF() closing expression 2016-09-13 22:16:55 +10:00
Nicholas Appleton
0fc163720c supply pkg-config version via setting in CMakeLists.txt - allow installation when using MinGW 2016-09-13 22:04:31 +10:00
Nicholas Appleton
dc568d54a8 only build x86 plain converters in Visual Studio due because of assembly syntax. add library dependencies for asio to get MinGW builds linking. disable WASAPI when using MinGW as I cannot get it to work. 2016-09-13 21:55:31 +10:00
Ross Bencina
05da7a854d Merge branch 'winrt' into 'master'
Correction to WASAPI host API implementation for WinRT platform

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3772573
2016-09-11 17:38:12 +00:00
Phil Burk
9e2cf27ca7 Merge branch 'ticket_248_gitrevision' into 'master'
PA_GIT_REVISION: new scripts to replace SVN revision

+1: Ross Bencina

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3790093
2016-09-10 17:16:19 +00:00
Phil Burk
fc5de750f8 Remove version printing from paex_sine.c 2016-09-09 09:06:27 -07:00
Phil Burk
a553478d71 PA_GIT_REVISION: new scripts to replace SVN revision
update_gitrevision.sh should be run before building on Mac or Linux.
2016-09-05 17:03:27 -07:00
dmitrykos
e1d4ec6664 wasapi: made ActivateAudioInterface_WINRT more universal in terms of getting other audio interfaces, for example IAudioEndpointVolume 2016-09-01 09:00:38 +03:00
Ross Bencina
d0d5020ddf Merge branch 'rb-fix-pa-front-c99isms' into 'master'
Don't use C99 designated initializer syntax it's not C89 compatible

+1: Phil Burk

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3747023
2016-09-01 00:36:17 +00:00
dmitrykos
72dd5db968 wasapi: return E_NOINTERFACE in PaActivateAudioInterfaceCompletionHandler::QueryInterface, use C-style API for calling interface functions (in order to be unified with the rest of WASAPI code) 2016-08-29 09:54:49 +03:00
Ross Bencina
0648f7e63b Merge branch 'winrt' into 'master'
WASAPI: ported to WinRT (UWP) platform, compatibility fixes to compile PortAudio as Windows Store library

+1: Phil Burk, Ross Bencina

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3643753
2016-08-28 00:14:32 +00:00
Nicholas Appleton
cdbc78e54f change the compiler flags into a compiler definitions list as we never modify the flags - add some documentation 2016-08-27 10:43:42 +10:00
Nicholas Appleton
983a853635 move changes to cmake lists made in my personal github space into the assembla branch. I will work in here from this point. 2016-08-27 09:52:57 +10:00
dmitrykos
319b19203a wasapi: replaced InterlockedCompareExchange with InterlockedOr and added clarifying comment why Interlocked API is used 2016-08-26 22:31:45 +03:00
Ross Bencina
037e260d64 comment out C99 designated initializer syntax for versionInfo_ initializer. not C89 compatible 2016-08-26 19:42:09 +10:00
Ross Bencina
fce3367c23 remove trailing whitespace from end of lines 2016-08-26 19:33:31 +10:00
dmitrykos
dae0d7f8e7 wasapi: reverted the usage of Interlocked APIs for PaWasapiStream::running 2016-08-26 09:43:50 +03:00
dmitrykos
46bce3c39f wasapi: use InterlockedXXX APIs to secure inter-thread r/w access to variables to avoid possible deadlocks or logic corruption 2016-08-24 22:04:17 +03:00
dmitrykos
ef449bb5bf wasapi: more cleanup - normalized WIN32_WINRT to PA_WINRT, removed excessive declarations from SignalObjectAndWait, ActivateAudioInterfaceCompletionHandler set of functions 2016-08-14 19:01:20 +03:00
dmitrykos
326549c55e wasapi: use Windows common Sleep() API instead of PA_Sleep()
use GetTickCount64() API which is awailable for Windows Store app instead of _ftime_s()
remove WAVEFORMAT and WAVEFORMATEX declaration and use the corresponding Windows include file instead
2016-08-14 10:52:36 +03:00
dmitrykos
26c0dc4458 wasapi: code cleanup, removed compiler warnings 2016-08-08 21:09:15 +03:00
dmitrykos
2e7545f17f wasapi: ported to WinRT (UWP)
os: compatibility fixes for compilation of PortAudio as Windows Store library (only WASAPI hostapi is compatible with Windows Store APIs)
2016-08-03 22:39:41 +03:00
Phil Burk
7edc5cb655 Merge branch 'loopback' into 'master'
Loopback: fix warnings that prevent compilation

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3604853
2016-08-03 00:53:41 +00:00
Phil Burk
cf4ef2ce19 Loopback: fix warnings that prevent compilation
Add newline in biquad_filter.c
Add integer assert with tolerance.
2016-07-26 19:10:23 -07:00
Phil Burk
e111b3a269 Merge branch 'ticket_229' into 'master'
Fix assert when reading or writing with non-power of 2 channels.

fixed #229

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3299213
2016-05-29 19:22:24 +00:00
Phil Burk
e89441f968 Restore paqa_devs 2016-05-21 17:31:53 -07:00
Phil Burk
36a6c92caa Revert paqa_devs 2016-05-21 17:30:21 -07:00
Phil Burk
315309f60e Mac: test adjustable number of channels. 2016-05-21 17:25:18 -07:00
Phil Burk
110043f842 Fix assert when reading or writing with non-power of 2 channels. 2016-05-18 22:29:45 -07:00
Phil Burk
21d185f815 Merge branch 'fixeol' into 'master'
Add .gitattributes to fix EOL

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3299183
2016-05-19 05:20:42 +00:00
Phil Burk
ed463ba658 Normalize all the line endings 2016-05-18 22:13:20 -07:00
Phil Burk
b99790cb7c Add .gitattributes to fix EOL 2016-05-18 22:05:13 -07:00
Phil Burk
89d176178b Merge branch 'noassert' into 'master'
pa_mac_core: stop stream instead of asserting

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3218623
2016-05-18 03:42:26 +00:00
Phil Burk
e18ea33d22 pa_mac_core.c: Removed some comments. Cleaned up logic. 2016-05-16 22:30:28 -07:00
Phil Burk
06ff140a61 Merge branch 'testgit2' into 'master'
test git changesets

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3221493
2016-05-03 01:26:54 +00:00
Phil Burk
cc1908fafb Another change and commit to the same branch 2016-05-02 09:13:22 -07:00
Phil Burk
274a289911 test git changesets 2016-05-02 09:12:05 -07:00
Phil Burk
09588cc5d6 pa_mac_core: stop stream instead of asserting
Bug: 158
2016-05-01 18:10:23 -07:00
Phil Burk
6c11a007c5 Merge branch 'ignorebin' into 'master'
gitignore: add more files from configure and make

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3218493
2016-05-01 22:42:50 +00:00
Phil Burk
83891bff3f gitignore: add more files from configure and make 2016-05-01 15:39:03 -07:00
Phil Burk
a68bacd2cf Merge branch 'ignore' into 'master'
Add .gitignore for C++

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3218363
2016-05-01 19:59:13 +00:00
Phil Burk
faff433ba6 Add .gitignore for C++ 2016-05-01 12:54:03 -07:00
philburk
13b2159821 patest_out_underflow: cleanup
Replace some tabs.
Print overflow under stress.
Prevent accidental overrange of phases array.
2016-04-10 18:12:03 +00:00
philburk
3d4139cb00 Update docs for building on Linux 2016-02-15 17:06:54 +00:00
philburk
d0628e9238 Files needed for compiling on El Capitan.
These files were autogenerated using autoreconf based
on changes from the previous commit.
2016-01-04 17:22:56 +00:00
philburk
6e9b37491a Add support for 10.11 SDK so PortAudio can compile on Mac.
Also allow deprecated APIs until we can remove them.

Note that this commit only includes the source files that were changed.
The next commit will include the files that are generated by autoreconf.
So look at this commit to see what really changed.
2016-01-04 17:22:00 +00:00
dmitrykos
f7b2d1542f wasapi: correction to the previous commit 2015-10-21 14:25:07 +00:00
dmitrykos
58eca02986 wasapi: workaround to avoid PaWasapi_Initialize() failure when enumerating devices and device fails to report min/default periods with IAudioClient::GetDevicePeriod(): ignore error and assign WASAPI common known period values for min/default 2015-10-20 16:02:39 +00:00
dmitrykos
4e194eaecf wasapi: support for setting the WASAPI's AudioClientProperties options via PaWasapiStreamInfo struct (__IAudioClient2_INTERFACE_DEFINED__ must be defined by Windows SDK (for Windows 8 and up) to have effect from these new options, otherwise it will be noop) 2015-10-19 11:03:31 +00:00
rbencina
fb929ad5fb update doxygen main page to reference developer guidelines and implementation style guidelines on the Wiki 2015-09-06 13:17:05 +00:00
rbencina
03db857ef7 checkfiledocs.py: blacklist mingw-include from doc check 2015-09-06 12:43:06 +00:00
rbencina
01ae699291 checkfiledocs.py: only check source code under src and include 2015-09-06 12:37:38 +00:00
rbencina
19d0819931 Issue #234 fixed typo in configure and configure.in affecting mingw builds. Rename: pa_win_wdmks_util.o --> pa_win_wdmks_utils.o 2015-09-06 10:55:01 +00:00
rbencina
ebffcefcb9 removed bindings/java from doxygen generated documentation 2015-09-06 10:26:16 +00:00
gineera
c0c0cb1414 Pa_process: Fix output channel adaption by not skipping the conversion when the host and user number-of-channels are not equal. Reported by Leif Asbrink when using an envy24 soundcard on Linux at it's native Int32 format with 1 or 2 channels. Corresponding fix for input already in r1913. 2015-04-19 18:48:38 +00:00
philburk
199e88fa66 Add Pa_GetVersionInfo()
Add scripts to update pa_svnrevision.h
2015-04-10 04:00:09 +00:00
philburk
05bcd37d1f Test adding a second file with SVN keywords. 2015-03-12 16:23:11 +00:00
philburk
aeea9954a6 Used propset to enable SVN keywords on test file. 2015-03-12 16:21:04 +00:00
philburk
9a9d86d87d Experiment with the SVN version keywords. 2015-03-12 16:16:44 +00:00
philburk
cd6b1868de Add version numbering with major.minor.subminor format.
Bump version to 19.5.0
2015-03-03 17:28:15 +00:00
rbencina
039bc21bda pa/wmme: avoid potential (but highly unlikely) overflow in buffer size in call to WideCharToMultiByte if a device name length exceeds INT_MAX. should also fix compiler warning about size_t to int assignment. 2015-01-21 06:52:11 +00:00
rbencina
808eaf5786 removed declaration of unused variable 2015-01-21 06:32:29 +00:00
rbencina
98d12b21fa fixed compiler warning: conversion from 'double' to 'float', possible loss of data 2015-01-21 06:30:53 +00:00
rbencina
b3216e814b disabled deprecated API warning for GetVersionEx in dsound, wmme and wdmks host APIs. 2015-01-21 06:24:32 +00:00
rbencina
71b8f8142e Removed MSVC dependence on ksguid.lib from src/os/win/pa_win_wdmks_utils.c (ksguid.lib is no longer in Platform SDK 8.0). Always use static instances of GUIDs like the GCC builds do. Removed ksguid.lib from MSVC project file. The following symbols are no longer used: PA_WDMKS_NO_KSGUID_LIB, PAWIN_WDMKS_NO_KSGUID_LIB; removed them from CMakeLists.txt and the MSVC project file. 2015-01-21 05:35:39 +00:00
rbencina
83056ee196 cpp binding: make operator == and != const. thanks to Riot for this patch. ticket #230 2015-01-20 05:10:17 +00:00
rbencina
7f4f7e44cb PA/CoreAudio: fixed copy-pasto: last host error was being associated with paInDevelopment host api not paCoreAudio 2014-11-05 01:03:57 +00:00
robiwan
6733684fca Added more debugging info in wdmks/pa_win_wdmks.c 2014-08-28 05:59:40 +00:00
robiwan
d7085cb226 Committing Lelands patch for WDM-KS, should take care of some of the problems referenced here http://music.columbia.edu/pipermail/portaudio/2014-August/016246.html 2014-08-15 06:35:32 +00:00
bejayoharen
55adee0a90 olivier's device name patch for os x 2014-06-28 16:28:17 +00:00
rbencina
4c720adbfa pa_win_ds.c converted tabs to spaces (only a small amount of code was incorrectly using tabs). 2014-04-11 05:46:40 +00:00
rbencina
666f30ea67 DirectSound: correctly output device names as UTF-8 when compiled with UNICODE defined. Note that this patch may not be correct if UNICODE is not defined. Patch from Tobias Erichsen. See ticket #224 for details. 2014-04-11 05:44:50 +00:00
rbencina
9222d8bfb4 pa_win_wmme.c: converted tabs to spaces (just a few sections) 2014-04-11 05:31:13 +00:00
rbencina
7a3b2d1dd9 WMME: correctly convert device names to UTF-8, see ticket #224. Thanks to Tobias Erichsen for the patch. 2014-04-11 05:25:48 +00:00
robiwan
4aa340a57e CMake: Added PA_WDMKS_NO_KSGUID_LIB to WDMKS and solution folders
WDMKS: Support for default device (see caveat for input devices though in ScanDeviceInfos)
       Added possibility to set channel mask
2014-04-09 14:27:21 +00:00
bejayoharen
c8cc50d6d1 Clarified safety of operations in callback (doc) 2014-02-05 18:43:31 +00:00
rbencina
7bb4da2af9 updated Windows+ASIO build tutorial: Building Portaudio for Windows with ASIO support using MSVC. The tutorial was out of date and contained a number of errors that broke the build process. 2014-01-30 11:46:42 +00:00
rbencina
37e8b23aba tweaked Windows build tutorial: Building PortAudio for Windows using Microsoft Visual Studio - various improvements to clarity of text. Fixed broken ASIO SDK URL. 2014-01-30 10:12:02 +00:00
philburk
13c1e731db Add stub to pa_trace.c to eliminate warning.
"make install" was causing a warning if PA_TRACE_REALTIME_EVENTS
was not defined.
2014-01-17 03:45:15 +00:00
philburk
e4138f1c59 [tests] Add EOL to patest_mono.c
Build was failing on Mac because of the missing end-of-line.
2014-01-16 17:51:26 +00:00
philburk
d51191a829 [macosx] Add support for SDK 10.8 and 10.9.
This was required to fix a broken build caused
by not having SDK 10.7 or earlier.
2014-01-16 17:49:33 +00:00
gineera
5583cd452b Pa_process: Fix input channel adaption by not skipping the input conversion when the host and user number-of-channels are not equal. The bug manifested when recording mono from a stereo-only device (eg with Alsa hw: devices on some sound-cards), and was reported by the Mixxx team -see https://bugs.launchpad.net/mixxx/+bug/900364. (In the long-term, some refactoring may be preferable.) Also fixed copy-paste typos in comments. 2013-11-18 11:42:27 +00:00
gineera
e62b586273 Jack: Add a port-type filter expression to calls to jack_get_ports() so that only audio ports are listed (removing eg Midi etc) as reported by 'sqweek'. 2013-11-15 12:27:07 +00:00
gineera
e2662ae2ad Alsa: Revise the use of the environment variable 'PA_ALSA_PLUGHW' so it correctly influences the Device-List and the capabilities reported. Also rename a mis-leading variable and add one additional DEBUG line. 2013-10-17 12:44:09 +00:00
gineera
27c3b518cb paqa_devs: limit max number of channels tested (to 4); add a fixed decimal format to the timestamp printout. 2013-09-07 10:14:52 +00:00
rbencina
c23e362fcb pa_mac_core.c line 664 fixed incorrect memset size (was using sizeof(ptr) not sizeof(struct type) 2013-08-29 00:36:56 +00:00
gineera
3029485a0e Alsa: Add function to prevent duplicate parts in the visible pa device name string, that occur when the pcm-device name starts with the card name (since they are both used). Achieved by trimming the pcm-device string beginning. 2013-08-27 17:14:51 +00:00
gineera
bbf60ab137 Alsa: Fix memory leak as nonMmapBuffers were not freed (since change to realloc). Clean out corresponding dead code chunk. 2013-08-22 22:01:17 +00:00
gineera
d17353a602 Alsa: Rename some variables in pa_linux_alsa where the meaning is mis-leading or wrong in the Alsa context. Also tweak one debug message and a few typos. 2013-08-22 19:43:07 +00:00
gineera
b1a62661bf Alsa: Fix handling of poll descriptors in PaAlsaStream_WaitForFrames(). Otherwise if capture signals before playback a duplex stream could poll the wrong descriptor, causing a loop (reported by Alexander Kartashov). 2013-08-13 20:37:04 +00:00
rbencina
2a992efaa8 fixed bug that was causing memory corruption in PA/ALSA when host sample format was lager than user format. e.g. using 16 bit output with a sound card that used 24 bit buffers. the incorrect input zeroer was being used. Thanks to Anders Tornvig for identifying the problem 2013-08-06 08:26:55 +00:00
rbencina
1ae8d616a9 fixed doxygen markup for a few line breaks in the tutorial 2013-07-24 15:37:15 +00:00
gineera
80c77d9ae4 OSS: revise default latency reporting: previous fixed values could not actually be achieved with OSS power-of-2 sizes. Instead try a configuration and correctly report the default latency based on one less than the number of fragments; also fix the stream component 'bufSz' calculation. 2013-06-08 19:30:41 +00:00
gineera
28f9ee0965 Alsa: revise latency use and calculations, since the latency should be equivalent to one Alsa period less than the Alsa ringbuffer (was based on the whole). Also fixes failure if zero latency was specified. 2013-06-08 19:12:25 +00:00
gineera
8082b07db4 qa-latency: fix printout typos; re-enable checks of default high vs low latency - but allow them to be equal; remove rogue tab. 2013-05-30 11:30:28 +00:00
rbencina
4149c894a0 added code to print error result from Pa_Initialize() in pa_devs.c example 2013-05-05 14:00:02 +00:00
rbencina
a51584e3b1 factored out InitPaDeviceInfoFromAsioDriver function. skip device rather than failing entire init process if a single ASIO driver returns an error during init. This was happening with MOTU devices if the device wasn't present. See ticket #221 2013-05-02 01:06:01 +00:00
rbencina
3dd3c9f5ce move static variables into x86 section so they don't generate warnings when trying to build on 64 bit 2013-04-07 14:15:24 +00:00
rbencina
85e52783f0 configure.in fix from Leland '[Portaudio] Small patch to fix Mac build' march 4 2013-04-07 10:20:18 +00:00
robiwan
dd82ba9976 Fix for WaveRT WDM drivers that do not support memory mapped position register, and correct 8 channel speaker geometry mapping. 2012-12-28 16:54:25 +00:00
rbencina
33df37a804 increase upper limit for absurd sample rates from 200000 to 384000 Hz. via Richard from Audacity 2012-12-04 18:39:48 +00:00
rbencina
b1f0cc8829 fix assertion failures with blocking io in ASIO host api. host buffer formats were not inited with non-interleaved flag in parameters to blocking i/o buffer processor 2012-12-04 14:45:31 +00:00
rbencina
b054f44292 clarified and corrected comment 2012-11-11 13:27:22 +00:00
rbencina
58d75e6d8e check for NULL data->interface passed to KsPropertySetEnumerateCallback. Thanks to Asinbow Wang 2012-11-10 02:55:20 +00:00
bejayoharen
7236740522 added carbon to docs. 2012-11-08 17:54:26 +00:00
rbencina
878e2d2839 fixes for unicode build 2012-10-31 06:21:34 +00:00
rbencina
f33048b20c fix for unicode build 2012-10-31 06:20:59 +00:00
philburk
042f67383c Add comment about including source code for ring buffer in app. 2012-10-07 19:00:11 +00:00
bejayoharen
109bb6fe1f minor fix for OS X 10.7: include AudioToolbox 2012-10-07 15:31:25 +00:00
robiwan
b053bf5ce9 https://www.assembla.com/spaces/portaudio/tickets/217 2012-09-17 06:19:34 +00:00
philburk
108bcabe4b Add example of calling JPortAudio. 2012-09-04 23:41:14 +00:00
philburk
3291a153e1 Add the JPortAudio JavaDocs to the PortAudio reference. 2012-09-04 23:38:34 +00:00
philburk
d693c3c583 Just return true if a Java blocking IO stream underflows or overflows on read or write.
Only throw an exception if something truly nasty occurs.
2012-09-04 18:25:58 +00:00
philburk
ac4bb571cb Modified to JPortAudio to support builds on Macintosh. 2012-09-02 01:43:30 +00:00
philburk
373c29f7b0 Use universal library on Mac. The _x86 or _x64 distinction is only needed on Windows. 2012-09-02 01:40:56 +00:00
philburk
f1435229e4 Fix fprintf format for long int. 2012-09-01 21:16:25 +00:00
philburk
62ebf76ad7 Apply patch to configure to fix build on Mac Lion.
See ticket #216.
2012-09-01 21:11:27 +00:00
philburk
27bc47d77b Test SVN on assembla. 2012-09-01 21:06:52 +00:00
philburk
b9d82e4d34 Report HostAPI errors in paex_write_sine.c to aid debugging. 2012-09-01 19:37:10 +00:00
philburk
da19fa6a7a Make include paths in JPortAudio project portable. 2012-09-01 19:36:21 +00:00
philburk
e58d315241 Initial check-in for an experimental Java binding for PortAudio called JPortAudio. 2012-09-01 18:43:58 +00:00
philburk
468c6bceb7 Fix some typos in docs.
Fix some compiler warnings for win32.
2012-09-01 00:10:13 +00:00
robiwan
1c153276e4 Added support for multi api static build on mingw (patch from Stefan Hajnoczi), tested with ASIO,WMME,WASAPI and WDMKS 2012-07-31 12:34:06 +00:00
robiwan
5a9c79405d Cleanup of code 2012-07-10 08:25:18 +00:00
robiwan
a889a60546 Added typedef to remove error with _beginthreadex 2012-07-10 08:16:48 +00:00
robiwan
82556314f6 Cleanup of code 2012-07-10 04:44:58 +00:00
philburk
9828a55938 Use pa_ringbuffer.h in pablio.h.
Mark PABLIO as deprecated in pablio/README.txt
2012-07-09 15:53:00 +00:00
robiwan
4669893212 Small fix to paex_record_file.c 2012-07-09 11:28:57 +00:00
robiwan
94b08c88bf Added a simple example that records to/plays from a file (using callback + ring buffer). Windows only at the moment. 2012-07-09 09:53:23 +00:00
robiwan
ee7fa396e1 Removed _alloca in WdmGetPropertySimple which seems to mess up the stack when using MinGW 2012-07-02 08:19:02 +00:00
robiwan
eaf970f1e2 Removed warnings when building with MinGW 2012-06-30 05:47:46 +00:00
robiwan
1cc4bbbf9a Changes to make compilation/linking work on Mingw 2012-06-29 12:30:43 +00:00
robiwan
3d13eb88be Added option to CMakeLists.txt to enable PA debug output 2012-06-29 11:45:21 +00:00
robiwan
3438e46e74 Minor refactoring to remove some warnings 2012-06-29 11:44:12 +00:00
robiwan
2e6ad64c00 Changed so that Mingw build should reference WASAPI supplied Mingw includes + minor refactorings 2012-06-29 10:04:30 +00:00
robiwan
2f29f8611c Added GUID, enumerators and structs to accomodate Vista and later OSs. 2012-06-29 09:58:48 +00:00
philburk
b4a22b91ff Fix ring buffer handling in pa_mac_core.c that caused many spurious paInputOverflow flags.
Fixed size bug when input underflow detected. Code was confused between bytes and elements.
Zero out the beginning of a recording when detecting pops to prevent start of audio from looking like a pop in qa loopback test.
2012-06-25 01:12:29 +00:00
philburk
44bdc45b2a Added counters for status flags in patest_wire.c. It then prints how many under and overflows occured.
This was added to help debug issue #171.
2012-06-22 21:58:10 +00:00
philburk
39f9a22d28 Fixed warnings that broke build.
Fixed bug added to paqa_latency.c that caused a failed test to appear to succeed. Error result was not passed up to main.
2012-06-22 21:02:36 +00:00
robiwan
3e9e7dd334 Forgot error check after Pa_OpenStream. Naughty. 2012-06-19 20:08:03 +00:00
robiwan
9f48ec4609 Added C++ variant of paex_sine 2012-06-19 20:03:33 +00:00
gineera
6d881ec6dc qa-latency: use defaultSampleRate; fix crash on single loops; change latency check limits; continue after a failed test; some alterations to printed messages. 2012-06-05 16:36:54 +00:00
robiwan
86aef22e9c Fixed bug in DS code 2012-05-30 06:37:58 +00:00
philburk
ef2e72c22a Added build instruction for loopback test. 2012-05-27 00:46:28 +00:00
gineera
f69a02a99a Alsa: re-write SetApproximateSampleRate() to allow small deviations from a nominal requested rate, so inexactly clocked cards do not fail (use 1% tolerance). 2012-05-18 16:04:30 +00:00
gineera
8a244e09f1 Alsa: remove tabs and fix whitespace in pa_linux_alsa.c in line with the Portaudio coding standards 2012-05-04 08:18:05 +00:00
gineera
d82cd55923 Alsa: default sample rate should always be chosen with Alsa-lib sample-rate conversion disabled. 2012-05-02 21:46:01 +00:00
gineera
ce083a09b7 Alsa: fix defaultHighLatency - sample rate has to be set following reset of hwParams. 2012-05-02 21:32:40 +00:00
rbencina
ebd20865db rolling back r1822 and r1815 to pa_linux_alsa.c . will recommit on alsa_hw_endian_subdevice branch 2012-05-01 08:18:14 +00:00
dmitrykos
4ae4fa0ef9 wasapi: provide meaningful error code when opening the stream and error occurred instead of just paInvalidDevice 2012-04-16 08:16:20 +00:00
dmitrykos
5701b05e0f wasapi: zero wasapi host api rep immediately after init. prevents (unlikely) issue with trying to free uninited allocations if com init fails during Pa_Initialize() (Ross Bencina) 2012-04-02 12:25:14 +00:00
rbencina
17e4472219 zero asio host api rep immediately after init. prevents (unlikely) issue with trying to free uninited allocations if com init fails during Pa_Initialize() 2012-04-02 07:58:04 +00:00
rbencina
e2f0932362 explicit casts for double->int. comment cleanups. fixed an bug where uninited pointer could be freed during teardown if memory allocation failed during directsound host api init (extremely unlikely). 2012-04-02 07:45:18 +00:00
rbencina
21f039bd09 fixed typo in comment. added whitespace. 2012-04-02 07:20:04 +00:00
dmitrykos
1526a5bfc7 alsa: fix paSwapEndian applied to non-24bit formats due to incorrect logic of tests 2012-03-28 16:14:49 +00:00
gineera
00502bdef0 Alsa: add a workaround for stuttering/xruns when using default device on Alsa-lib older than 1.0.16 (caused by zero 'revents' when poll() returns). 2012-03-01 21:20:07 +00:00
robiwan
1c9b4fe4b9 WDM-KS:
- Fixed so default sample rate prioritizes frequencies earlier in search order
- Changed WIN32 to _WIN32 (as it is always defined, both in x86 & x64 builds)
2012-02-25 07:43:10 +00:00
robiwan
32e0080310 ASIO:
- Certain drivers write over the available memory of PaAsioDriverInfo, now a padding area makes sure
  the stack doesn't get corrupted.
WDM-KS:
- Corrected capture event handling
2012-02-23 15:29:24 +00:00
robiwan
f5bb9cfec0 Added support for displaying UTF-8 encoded device names 2012-02-22 12:44:10 +00:00
robiwan
6803965617 General:
- Change of CMake options to utilize built in header configuration support (PA_USE_*)
- Added CMakeLists.txt for examples
- Added paex_ocean_shore.c as an example how to use PA ring buffer for lock-free communication with the audio callback
WDM-KS:
- Added better default sample rate support
- Made sure that all pins now have a name, even if only "Input" or "Output"
- IsUSBDevice fixed acc. to Alex Lessard's suggestion
- IsNameUSBAudioDevice fixed similarly
2012-02-22 12:20:26 +00:00
dmitrykos
d998066452 alsa:
- support for sub-devices;
- fixed 24-bit format support for some devices which on little-endian machine operate only in big-endian format, example of such device is Audio4DJ which supports only SND_PCM_FORMAT_S24_3BE (for this patch implemented support only for 24-bit audio samples although other formats may be added in case of necessity and if such devices exist);
! special thanks to Owen Williams from Mixxx project who tested these changes/fixes on real Audio4DJ device.
2012-02-16 16:59:03 +00:00
dmitrykos
341eb04550 wasapi:
- fixed possible buffer overrun inside WASAPI for Output poll-driven mode according ticket #196 (thanks to Ross Bencina for spotting this and proposing the solution)
2012-02-16 15:02:08 +00:00
dmitrykos
9bc432b603 wasapi:
- fixed device name incorrect in case it contains non-Latin characters (thanks to Robert Bielik for proposed solution), now it is converted to UTF-8 encoded string
- fixed damaged audio (pops & clicks) for Input exclusive event-driven mode if specified latency was below 23 ms
2012-02-16 14:49:28 +00:00
robiwan
c5874f23c4 Merged WaveRT branch (excluding stuff pertaining to ticket #169) 2012-02-14 09:32:57 +00:00
rbencina
de1d97419b cleaned up tutorial start page 2012-01-25 07:08:11 +00:00
rbencina
b9b26560a9 doc tweak 2012-01-25 06:52:41 +00:00
rbencina
1610f46ddf tweaked tutorial doc to reference local files 2012-01-25 06:50:10 +00:00
rbencina
692afbcbaa added tutorial doxygen pages converted from old trac wiki 2012-01-25 06:44:05 +00:00
rossb
0a05ae27fe fixed bug in coreaudio host api: suggested latency of zero with fixed user buffer size resulted in min supported buffer size instead of requested user buffer size 2012-01-11 13:22:50 +00:00
rossb
4b2f4dcd37 added function to query core audio buffer size range 2012-01-11 13:03:11 +00:00
rossb
c1390f8c18 fixed regression in r1718 (PA/coreaudio) where PA callback timestamps would be offset by massive latency (frames interpreted as seconds) if the initial query for actual device sample rate failed. This checkin reinstates the use of nominal sample rate as default for latency calculations when actual sample rate query fails. 2011-12-27 08:58:59 +00:00
alan_horstmann
56f148f7b8 Correct some entries in the devices 'predefinedNames' list - 'dmix' device is always only for playback. This removes an Alsa-lib dmix error message during Portaudio initialization. 2011-12-08 19:43:29 +00:00
rossb
220b2989ec added dsound find best latency params test. resolves #186 2011-11-24 18:58:13 +00:00
rossb
e996fc8ff6 Implemented host-API specific mechanism for setting DirectSound buffer sizes in frames. resolves #129 2011-11-24 18:11:33 +00:00
rossb
d60f24abc5 updated ASIO-README.txt closes ticket #8 2011-11-20 07:12:10 +00:00
philburk
4d310bdef2 Ran autoreconf for mods from Ross. 2011-11-11 18:27:15 +00:00
rossb
a665b0928c fixed configure.in and makefile.in. attempt #2. fixes incorrect escapes in r1772 2011-11-11 04:06:17 +00:00
philburk
bc0538e059 Ran autoreconf for configure updates. 2011-11-10 18:33:29 +00:00
rossb
24f64176e7 name therapy: suggestedLatency => targetBufferingLatency 2011-11-10 14:51:15 +00:00
rossb
434f36c1c7 name therapy: renamed suggestedLatencyFrames to targetBufferingLatencyFrames 2011-11-10 13:59:53 +00:00
rossb
4b1aa56f00 use bufferMaxSize for defaultHighLatency in asio impl 2011-11-10 13:37:05 +00:00
rossb
002db0d9ff added comments explaining why ticket #199 can't be fixed 2011-11-10 08:34:00 +00:00
rossb
6b8eba624b fixed host buffer size algorithm to prefer multiples of user frames per buffer. fixes #93 2011-11-10 06:55:33 +00:00
rossb
fc14177a05 tweaked dsound callback time info calculations. implemented adc time. resolves #122 2011-11-10 05:47:50 +00:00
rossb
01fbe8de7c define WIN32_WINNT and WINVER to 501 (winxp) to resolve conflict between mingw winbase.h and asio sdk combase.h 2011-11-10 03:51:52 +00:00
rossb
3d8db8375a configure.in and makefile.in changes to (hopefully) fix include paths issues on mingw 2011-11-10 03:01:11 +00:00
philburk
454b7559e0 Ran autoreconf to rebuild configure. 2011-10-31 16:27:38 +00:00
rossb
e20f5824e2 fix configure.in to find a C++ compiler when needed. seems this has been a problem with asio since march 2011. 2011-10-31 14:02:13 +00:00
philburk
5bf2843e7c test SVN repository 2011-10-27 16:35:59 +00:00
philburk
36e86d649a Apply patch for Debian from Samuel Thibault. 2011-10-27 06:52:01 +00:00
rossb
f519653f7e CoreAudio: if user specifies framesPerBuffer make sure host buffer is an integer multiple of user buffer 2011-10-20 09:40:12 +00:00
eblennerhassett
3130f5c1af Update header authors, copyrights, HPI url. Remove Ludwig Schwardt bugreport email. 2011-10-18 20:48:49 +00:00
eblennerhassett
82be702f17 Replace deprecated HPI functions and datatypes with current (HPIv4.08) for #197
Remove support for HPI < 3.5
Replace unused subsys pointer parameter with NULL.
2011-10-18 20:34:48 +00:00
philburk
1d645d8e5d Fix warnings in loopback.
Disable test for defaultHigh > defaultLow.
2011-09-08 09:29:21 +00:00
philburk
a08b3b1856 Add self tests to paqa_latency.c 2011-09-08 09:13:16 +00:00
philburk
7a78469780 Fix compiler warnings on Mac. 2011-09-08 06:09:29 +00:00
philburk
d2054b201e Move paqa_devs and paqa_errs to qa folder. Clean up tests. 2011-09-08 05:32:07 +00:00
rossb
4fd99433f3 added Doxyfile.developer for generating internal docs. added doxygen brief descriptions to mme example files 2011-09-08 04:17:58 +00:00
rossb
30d0807075 updated doxygen stuff to generate sane user documentation (work in progress) 2011-09-08 03:34:03 +00:00
philburk
57dd0b608f moved example programs from test folder to examples folder 2011-09-08 03:21:55 +00:00
philburk
4512b4dc09 Fixed configure so it works for paex_sine. 2011-09-07 23:57:43 +00:00
philburk
4b7c5a1241 Experiment with moving example code into its own folder.
Note that this revision needs to have autoreconf run.
I tried to do that on Mac but it failed. So I will try on Linux.
2011-09-07 23:54:04 +00:00
philburk
9cdd56f5b4 Implement the Float32 to UInt8 converters.
The loopback test now passes cleanly for the first time on my PreSonus FireStudio.
Added tests for clip and dither flag combinations to loopback.
2011-09-01 22:08:32 +00:00
rossb
a1dabb01fe test ignore 2011-08-27 17:19:22 +00:00
rossb
91d6a84b55 added stream callback documentation describing real-time constraints including not calling non-real-time code, and that it should be safe to consume 70% or more of available CPU time in the callback. resolves #96 2011-08-25 17:44:01 +00:00
rossb
4939e41248 Fixed directsound PaDeviceInfo default latency and PaStreamInfo latency fields. Fixed host buffer size calculations based on suggestedLatency parameters. Switched to using 48kHz as default sample rate when other info isn't available. Fixed edge case in TimeSlice() where a full duplex stream could read data even though either input or output reported zero bytes available. Renamed some variables for clarity. Fixes ticket #160 (PaStreamInfo latency). Addresses #122 (although we're still using old default latency values from V18 codebase). Addresses #99 (correct interpretation of suggestedLatency down to zero). 2011-08-25 15:59:32 +00:00
rossb
0750039754 added large primes to patest_suggested_vs_streaminfo_latency.py 2011-08-25 15:56:25 +00:00
rossb
59b9cf7180 fixed some warnings and minor bugs in patest_suggested_vs_streaminfo_latency.c 2011-08-25 14:40:00 +00:00
rossb
b3eeb36d05 added #include and deleted 2 unused variables from a test 2011-08-25 08:51:46 +00:00
philburk
b511280f66 Fix #164 by using if instead if ifdef PA_USE_* for unix builds. 2011-08-25 07:17:48 +00:00
rossb
16f40db4c8 wmme limit host buffer size to 32k. try to make host buffer size a factor of over-limit user buffer size. closes #189 2011-08-25 07:15:31 +00:00
rossb
6aa858c0f7 memory barrier change take two 2011-08-18 11:47:28 +00:00
rossb
924b65ed3d added comment about MSVC compiler barrier intrinsics 2011-08-18 11:29:40 +00:00
rossb
48cb6b726c updated memory barrier comment urgh 2011-08-18 11:24:15 +00:00
rossb
f22cec3d45 moved memory barriers as per this thread: http://music.columbia.edu/pipermail/portaudio/2011-August/012803.html . use volatile because MSVC Read/WriteBarrier() intrinsics are just compiler barriers, but MSVC will insert memory barriers if you use volatile. see: http://msdn.microsoft.com/en-us/library/ms686355(VS.85).aspx 2011-08-18 11:19:36 +00:00
philburk
fa8a45c845 Fix removal of device property change listeners.
This may fix some occasional memory corruption isses we were seeing in the loopback test.
I think the listeners may have gotten called after the stream was freed.
2011-08-18 08:44:03 +00:00
philburk
8b40f6d9e5 Use bigger threshold to fix odd latency calculations.
Use low default latency for loopback.
2011-08-18 08:23:53 +00:00
rossb
8f6b491bae revised WMME default latency on XP, Vista, Win7 to 90ms. Resolves ticket #80. Could go lower if we had more results from ticket #185 2011-08-18 05:58:56 +00:00
rossb
e0a057f28e set defaultHostApiIndex_ to zero when uninitialized 2011-08-18 03:43:51 +00:00
rossb
ebe9c54048 tweaked comment 2011-08-18 03:40:47 +00:00
rossb
58015f7b17 changed default host API logic to use first successfully initialized host api with a defined default input or output device. resolves ticket #49 2011-08-18 03:31:51 +00:00
rossb
e49abeb2f2 extended paqa loopback test output to print reported PaStreamInfo input, output and total latency 2011-08-11 14:37:41 +00:00
rossb
17882c465f Updated patest_suggested_vs_streaminfo_latency test. Python script now creates plots for a number of different buffer sizes. Supports testing at different sample rates. 2011-08-11 12:18:02 +00:00
rossb
903263d777 Fixed pa_win_wmme.c latency calculations to result in non-decreasing actual latency for increasing suggested latency. 2011-08-11 12:16:47 +00:00
rossb
d15c703f8f updated patest_suggested_vs_streaminfo_latency to generate pdf files 2011-08-04 14:29:58 +00:00
rossb
35073f0c65 updated patest_suggested_vs_streaminfo_latency to support running multiple test iterations from the python script 2011-08-04 13:56:52 +00:00
rossb
b526d0fd56 added patest_suggested_vs_streaminfo_latency test and python graphing script 2011-08-04 13:15:59 +00:00
philburk
948250370c Calculate timestamp offsets from device properties.
Combine multiple user buffers in a host buffer to honor longer latency.
2011-07-29 18:22:04 +00:00
rossb
e07e139e0d pa_win_wmme.c fixed bug in stream info inputLatency see ticket #178. improved interpretation of suggestedLatency based on recent discussions. see tickets #98 #99 #181 2011-07-28 12:03:09 +00:00
philburk
b9e71acd6f Add check for min maxDeltaDacTime for timestamps. 2011-07-28 07:17:09 +00:00
rossb
8a27b95617 paqa_latency: tweak parameter printing 2011-07-28 05:47:22 +00:00
rossb
3ed32c7a04 paqa_latency: tweak parameter printing 2011-07-28 05:45:57 +00:00
rossb
ac176b9462 paqa_latency: print device name and api. c89ize 2011-07-28 05:26:15 +00:00
philburk
062e8a7a86 Draft version for debugging latency and timing. 2011-07-28 04:59:17 +00:00
rossb
a6b18bb64c mme latency test: minor cleanups. randomised tone pitch 2011-07-28 04:40:42 +00:00
rossb
eb0d429b7a mme test only list output devices 2011-07-26 04:24:49 +00:00
rossb
73c241d7ba fixed switch statement in test that would report Win7 when the platform was Vista 2011-07-24 05:28:47 +00:00
philburk
6fa03e953c Fix broken build due to unused variables. Grrr. 2011-07-21 18:47:18 +00:00
philburk
edac3c99eb Fix improper calculation of big buffer sizes. See bug #187
This fixes a click heard with big buffers.
2011-07-21 18:44:58 +00:00
philburk
3aad8c0a9f Fixed broken Mac build by removing unused label. 2011-07-21 17:34:19 +00:00
rossb
3165f0f473 updated wmme manual latency test 2011-07-21 14:34:15 +00:00
philburk
e3387a98a7 Improve calculation of default latencies on Mac CoreAudio.
Allow very low buffer sizes if suggestedLatency is low.
Set actual latencies in StreamInfo.
2011-07-21 08:29:26 +00:00
rossb
ddc1a3ce11 cleaned up doc comments for PaStreamCallbackTimeInfo and PaStreamCallbackResult 2011-07-20 03:24:00 +00:00
bjornroche
ab8a1489ef this should resolve issues on OS X with systems where only sdk 10.6 is available and includes a likely fix for future simillar issues with 10.7. See ticket 179. 2011-07-14 17:56:47 +00:00
rossb
6f7f5f0325 initial implementation of patest_wmme_find_best_latency_params.c. just a draft. needs work 2011-07-14 09:02:08 +00:00
philburk
20f5792a19 Remove dev-cpp support.
This IDE is no longer used and the build files are not working.
http://www.portaudio.com/trac/ticket/162
2011-07-14 05:17:42 +00:00
bjornroche
7d6950a757 Fix for doxygen for pa_mac_core.h. Ticket #70. Patch from chris share modified slightly. 2011-07-09 15:01:52 +00:00
rossb
982dd233f5 fixed regression in r1612 that broke coreaudio non-interleaved callback i/o 2011-06-30 12:48:08 +00:00
rossb
d06505b72c fixed def file to reference PaAsio_GetAvailableBufferSizes instead of PaAsio_GetAvailableLatencyValues. thanks Chris. 2011-06-23 07:33:44 +00:00
rossb
f95c722aad made ring buffer params const-correct 2011-06-17 08:01:02 +00:00
aknudsen
ef2d8b6cd8 PA ALSA: define SND_PCM_TSTAMP_ENABLE as SND_PCM_TSTAMP_MMAP if the former is undefined 2011-05-26 20:19:19 +00:00
rob_bielik
e535a7b800 Initial CMake support (MSVC only at the moment) 2011-05-19 08:24:02 +00:00
rossb
5716669053 extra comments 2011-05-11 21:05:18 +00:00
rossb
56422c6c56 fixed use of timeBeginPeriod/timeEndPeriod in pa_win_ds.c 2011-05-11 20:52:24 +00:00
rossb
28397f5c4a Replaced MM timer with a high priority thread for audio compute, based on a patch by Dmitry Kostjuchenko. Reason: there is one global MM timer thread per process and doing audio compute in it was interfering with timer accuracy and also with running multiple DSound streams. The old MM timer based implementation is still available if you define PA_WIN_DS_USE_WMME_TIMER -- this may be removed in future. 2011-05-11 10:00:52 +00:00
rossb
d03dd9e357 added userFramesPerBuffer parameter to SelectHostBufferSize in preparation for improving asio buffer size handling 2011-05-10 15:58:15 +00:00
rob_bielik
b5fc9f995f Added pa_win_coinitialize.c to MSVC project and windows configure scripts 2011-05-10 06:35:21 +00:00
rossb
52ab9d6600 refactored COM initialization for dsound, asio and wasapi to new source file pa_win_coinitialize.c. fixes com uninitialisation bugs in error cases. resolves ticket #128 2011-05-09 20:05:34 +00:00
rossb
cbd24dc45c renamed PaUtil_GetBufferProcessorInputLatency to PaUtil_GetBufferProcessorInputLatencyFrames and PaUtil_GetBufferProcessorOutputLatency to PaUtil_GetBufferProcessorOutputLatencyFrames. see ticket #161 2011-05-02 17:07:11 +00:00
rossb
1938ce6628 renamed PaAsio_GetAvailableLatencyValues to PaAsio_GetAvailableBufferSizes and included a backward compatibility #define. see ticket #111. 2011-05-02 15:49:20 +00:00
rossb
b1035dcd8f removed #ifndef check for PA_USE_DS from pa_win_ds.c 2011-05-01 16:14:29 +00:00
rossb
57264ba799 fixed copy/past error in PA_USE_DS check code in pa_win_ds.c 2011-05-01 12:05:52 +00:00
355 changed files with 189595 additions and 62977 deletions

13
.editorconfig Normal file
View file

@ -0,0 +1,13 @@
# 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

43
.gitattributes vendored Normal file
View file

@ -0,0 +1,43 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text
*.cpp text
*.hpp text
*.fth text
*.java text
*.f text
*.txt text
*.dox text
*.m text
# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf
*.def text eol=crlf
*.dsp text eol=crlf
*.dsw text eol=crlf
*.vcproj text eol=crlf
*.sln text eol=crlf
*.doc text eol=crlf
*.bat text eol=crlf
# Denote all files that are truly binary and should not be modified.
*.dic binary
*.odt binary
*.pdf binary
*.png binary
*.jpg binary
*.wav binary
*.la binary
config.guess binary
config.status binary
config.sub binary
configure binary
depcomp binary
install-sh binary
libtool binary
missing binary

34
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,34 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
(Please use the mailing list for support requests and general discussion. This is only for actual bugs.)
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior. Include code if applicable.
1.
**Expected behavior**
A clear and concise description of what you expected to happen.
**Actual behavior**
What actually happened.
Include a recording if helpful.
Error messages or logs longer than a page should be attached as a .txt file.
**Desktop (please complete the following information):**
- OS: [e.g. Mac OS]
- OS Version [e.g. 22]
- PortAudio version: stable, nightly snapshot (which?), current (please give date and/or Git hash):
- If Windows or Linux, which Host API (e.g. WASAPI):
**Additional context**
Add any other context about the problem here.

96
.github/workflows/MSBuild.yml vendored Normal file
View file

@ -0,0 +1,96 @@
name: MSBuild MSVC Project File CI
on: [push, pull_request]
env:
# Path to the solution file relative to the root of the project.
SOLUTION_FILE_PATH: ./build/msvc/portaudio.sln
VCPROJ_FILE_PATH: ./build/msvc/portaudio.vcproj
VCXPROJ_FILE_PATH: ./build/msvc/portaudio.vcxproj
VCXPROJ_FILTERS_FILE_PATH: ./build/msvc/portaudio.vcxproj.filters
VCXPROJ_USER_FILE_PATH: ./build/msvc/portaudio.vcxproj.user
DEF_FILE_PATH: ./build/msvc/portaudio.def
jobs:
build:
runs-on: windows-latest
strategy:
matrix:
BUILD_CONFIGURATION: [Release]
BUILD_PLATFORM: [Win32, x64]
steps:
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v1
- uses: actions/checkout@v2
- name: Upgrade VC Project File
# We maintain our vcproj file in an old format to maintain backwards compatibility
# This step upgrades the project to the latest version of MSVC
# see https://docs.microsoft.com/en-us/visualstudio/ide/reference/upgrade-devenv-exe?view=vs-2019
# pipe to file to ensure that it terminates https://stackoverflow.com/questions/48896010/occasionally-occurring-msbuild-error-msb3428/48918105#48918105
# discussion of using vswhere.exe here: https://stackoverflow.com/questions/65287456/how-to-upgrade-a-visual-studio-project-from-within-a-github-action/65311868#65311868
run: |
$devenv = & vswhere.exe '-property' productPath
Write-Output "$devenv"
& $devenv "${{env.VCPROJ_FILE_PATH}}" /Upgrade /NoSplash | Out-Null
Write-Output "devenv launched"
while (!(Test-Path "${{env.VCXPROJ_FILE_PATH}}")) { Start-Sleep -Seconds 10 }
Write-Output "vcxproj found"
while (!(Test-Path "${{env.VCXPROJ_FILTERS_FILE_PATH}}")) { Start-Sleep -Seconds 10 }
Write-Output "vcxproj.filters found"
Start-Sleep -Seconds 10
Write-Output "done."
- name: Remove ASIO Files and Enable PA_USE_DS=1
# Process the project files to remove ASIO-related sources and includes (since we can not access the ASIO SDK in a public build)
run: |
# Process .vcxproj file: remove source files
$xdoc = new-object System.Xml.XmlDocument
$vcxprojFile = resolve-path("${{env.VCXPROJ_FILE_PATH}}")
$xdoc.load($vcxprojFile)
$namespace = New-Object -TypeName "Xml.XmlNamespaceManager" -ArgumentList $xdoc.NameTable
$namespace.AddNamespace("vs", $xdoc.DocumentElement.NamespaceURI)
$nodes = $xdoc.SelectNodes("//vs:ClCompile[contains(@Include, '..\src\hostapi\asio')]", $namespace)
Write-Output "deleting ASIO related compilation nodes from .vcxproj:"
Write-Output $nodes
ForEach($node in $nodes) {
$parent = $node.ParentNode
$parent.RemoveChild($node)
}
# Enable DirectSound host API
$nodes = $xdoc.SelectNodes("//vs:PreprocessorDefinitions[contains(., 'PA_USE_DS=0')]", $namespace)
ForEach($node in $nodes) {
$text = $node.InnerText
$node.InnerText = $text -replace 'PA_USE_DS=0', 'PA_USE_DS=1'
}
$xdoc.save($vcxprojFile)
# Process .vcxproj.filters file: remove source files and includes
$vcxprojFiltersFile = resolve-path("${{env.VCXPROJ_FILTERS_FILE_PATH}}")
$xdoc.load($vcxprojFiltersFile)
$namespace = New-Object -TypeName "Xml.XmlNamespaceManager" -ArgumentList $xdoc.NameTable
$namespace.AddNamespace("vs", $xdoc.DocumentElement.NamespaceURI)
$nodes = $xdoc.SelectNodes("//vs:ClCompile[contains(@Include, '..\src\hostapi\asio')]", $namespace)
Write-Output "deleting ASIO related compilation nodes from .vcxproj.filters:"
Write-Output $nodes
ForEach($node in $nodes) {
$parent = $node.ParentNode
$parent.RemoveChild($node)
}
$nodes = $xdoc.SelectNodes("//vs:ClInclude[contains(@Include, 'pa_asio.h')]", $namespace)
Write-Output "deleting ASIO related include nodes from .vcxproj.filters:"
Write-Output $nodes
ForEach($node in $nodes) {
$parent = $node.ParentNode
$parent.RemoveChild($node)
}
$xdoc.save($vcxprojFiltersFile)
# Process .def file: remove PaAsio_ symbols
Set-Content -Path "${{env.DEF_FILE_PATH}}" -Value (Get-Content -Path "${{env.DEF_FILE_PATH}}" | Select-String -Pattern 'PaAsio_' -NotMatch)
- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
# Add additional options to the MSBuild command line here (like platform or verbosity level).
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
run: msbuild /m /p:Configuration=${{matrix.BUILD_CONFIGURATION}} /p:Platform=${{matrix.BUILD_PLATFORM}} ${{env.VCXPROJ_FILE_PATH}}

20
.github/workflows/autotools.yml vendored Normal file
View file

@ -0,0 +1,20 @@
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

56
.github/workflows/cmake.yml vendored Normal file
View file

@ -0,0 +1,56 @@
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 }}

52
.gitignore vendored Normal file
View file

@ -0,0 +1,52 @@
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# annoying files
**/.DS_Store
# Generated by configure and make
Makefile
bin-stamp
bin/*
config.log
config.status
lib-stamp
lib/*
libtool
portaudio-2.0.pc
autom4te.cache/*
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
# Visual Studio 2017/2019 state folder
.vs/
# Visual Studio CMake build output folder
out/
# Visual Studio CMake settings file
CMakeSettings.json

499
CMakeLists.txt Normal file
View file

@ -0,0 +1,499 @@
# $Id: $
#
# For a "How-To" please refer to the Portaudio documentation at:
# http://www.portaudio.com/trac/wiki/TutorialDir/Compile/CMake
#
CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
# 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
# been imported by some other CMakeLists.txt), we don't want to trump over
# the top of that project's global settings.
IF(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_LIST_DIR})
PROJECT(portaudio)
# CMAKE_CONFIGURATION_TYPES only exists for multi-config generators (like
# Visual Studio or Xcode). For these projects, we won't define
# CMAKE_BUILD_TYPE as it does not make sense.
IF(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
MESSAGE(STATUS "Setting CMAKE_BUILD_TYPE type to 'Debug' as none was specified.")
SET(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build." FORCE)
SET_PROPERTY(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release")
ENDIF()
SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
IF(WIN32 AND MSVC)
OPTION(PA_DLL_LINK_WITH_STATIC_RUNTIME "Link with static runtime libraries (minimizes runtime dependencies)" ON)
IF(PA_DLL_LINK_WITH_STATIC_RUNTIME)
FOREACH(flag_var
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
IF(${flag_var} MATCHES "/MD")
STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
ENDIF()
ENDFOREACH()
ENDIF()
ENDIF()
ENDIF()
SET(PA_VERSION 19)
SET(PA_PKGCONFIG_VERSION ${PA_VERSION})
SET(PA_SOVERSION "${PA_VERSION}.0")
# Most of the code from this point onwards is related to populating the
# following variables:
# PA_PUBLIC_INCLUDES - This contains the list of public PortAudio header
# files. These files will be copied into /include paths on Unix'y
# systems when "make install" is invoked.
# PA_PRIVATE_INCLUDES - This contains the list of header files which
# are not part of PortAudio, but are required by the various hostapis.
# It is only used by CMake IDE generators (like Visual Studio) to
# provide quick-links to useful headers. It has no impact on build
# output.
# PA_PRIVATE_INCLUDE_PATHS - This contains the list of include paths which
# will be passed to the compiler while PortAudio is being built which
# are not required by applications using the PortAudio API.
# PA_PRIVATE_COMPILE_DEFINITIONS - This contains a list of preprocessor
# macro definitions which will be set when compiling PortAudio source
# files.
# PA_SOURCES - This contains the list of source files which will be built
# into the static and shared PortAudio libraries.
# PA_NON_UNICODE_SOURCES - This also contains a list of source files which
# will be build into the static and shared PortAudio libraries. However,
# these sources will not have any unicode compiler definitions added
# to them. This list should only contain external source dependencies.
# PA_EXTRA_SHARED_SOURCES - Contains a list of extra files which will be
# associated only with the shared PortAudio library. This only seems
# relevant for Windows shared libraries which require a list of export
# symbols.
# Where other PA_* variables are set, these are almost always only used to
# preserve the historic SOURCE_GROUP behavior (which again only has an impact
# on IDE-style generators for visual appearance) or store the output of
# find_library() calls.
SET(PA_COMMON_INCLUDES
src/common/pa_allocation.h
src/common/pa_converters.h
src/common/pa_cpuload.h
src/common/pa_debugprint.h
src/common/pa_dither.h
src/common/pa_endianness.h
src/common/pa_hostapi.h
src/common/pa_memorybarrier.h
src/common/pa_process.h
src/common/pa_ringbuffer.h
src/common/pa_stream.h
src/common/pa_trace.h
src/common/pa_types.h
src/common/pa_util.h
)
SET(PA_COMMON_SOURCES
src/common/pa_allocation.c
src/common/pa_converters.c
src/common/pa_cpuload.c
src/common/pa_debugprint.c
src/common/pa_dither.c
src/common/pa_front.c
src/common/pa_process.c
src/common/pa_ringbuffer.c
src/common/pa_stream.c
src/common/pa_trace.c
)
SOURCE_GROUP("common" FILES ${PA_COMMON_INCLUDES} ${PA_COMMON_SOURCES})
SET(PA_PUBLIC_INCLUDES include/portaudio.h)
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake_support)
SET(PA_SKELETON_SOURCES src/hostapi/skeleton/pa_hostapi_skeleton.c)
SOURCE_GROUP("hostapi\\skeleton" ${PA_SKELETON_SOURCES})
SET(PA_SOURCES ${PA_COMMON_SOURCES} ${PA_SKELETON_SOURCES})
SET(PA_PRIVATE_INCLUDE_PATHS src/common ${CMAKE_CURRENT_BINARY_DIR})
IF(WIN32)
SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} _CRT_SECURE_NO_WARNINGS)
SET(PA_PLATFORM_SOURCES
src/os/win/pa_win_hostapis.c
src/os/win/pa_win_util.c
src/os/win/pa_win_waveformat.c
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)
IF(MSVC)
SET(PA_PLATFORM_SOURCES ${PA_PLATFORM_SOURCES} src/os/win/pa_x86_plain_converters.c)
SET(PA_PLATFORM_INCLUDES ${PA_PLATFORM_INCLUDES} src/os/win/pa_x86_plain_converters.h)
ELSE()
SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} _WIN32_WINNT=0x0501 WINVER=0x0501)
SET(DEF_EXCLUDE_X86_PLAIN_CONVERTERS ";")
ENDIF()
SOURCE_GROUP("os\\win" FILES ${PA_PLATFORM_SOURCES} ${PA_PLATFORM_INCLUDES})
SET(PA_SOURCES ${PA_SOURCES} ${PA_PLATFORM_SOURCES})
SET(PA_PRIVATE_INCLUDES ${PA_PRIVATE_INCLUDES} ${PA_PLATFORM_INCLUDES})
SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} src/os/win)
SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} winmm)
# Try to find ASIO SDK (assumes that portaudio and asiosdk folders are side-by-side, see
# http://www.portaudio.com/trac/wiki/TutorialDir/Compile/WindowsASIOMSVC)
FIND_PACKAGE(ASIOSDK)
IF(ASIOSDK_FOUND)
OPTION(PA_USE_ASIO "Enable support for ASIO" ON)
ELSE()
OPTION(PA_USE_ASIO "Enable support for ASIO" OFF)
ENDIF()
IF(PA_USE_ASIO)
SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} ${ASIOSDK_ROOT_DIR}/common)
SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} ${ASIOSDK_ROOT_DIR}/host)
SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} ${ASIOSDK_ROOT_DIR}/host/pc)
SET(PA_ASIO_SOURCES src/hostapi/asio/pa_asio.cpp src/hostapi/asio/iasiothiscallresolver.cpp)
SET(PA_ASIOSDK_SOURCES ${ASIOSDK_ROOT_DIR}/common/asio.cpp ${ASIOSDK_ROOT_DIR}/host/pc/asiolist.cpp ${ASIOSDK_ROOT_DIR}/host/asiodrivers.cpp)
SOURCE_GROUP("hostapi\\ASIO" FILES ${PA_ASIO_SOURCES})
SOURCE_GROUP("hostapi\\ASIO\\ASIOSDK" FILES ${PA_ASIOSDK_SOURCES})
SET(PA_PUBLIC_INCLUDES ${PA_PUBLIC_INCLUDES} include/pa_asio.h)
SET(PA_SOURCES ${PA_SOURCES} ${PA_ASIO_SOURCES})
SET(PA_NON_UNICODE_SOURCES ${PA_NON_UNICODE_SOURCES} ${PA_ASIOSDK_SOURCES})
SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ole32 uuid)
ELSE()
# Set variables for DEF file expansion
SET(DEF_EXCLUDE_ASIO_SYMBOLS ";")
ENDIF()
OPTION(PA_USE_DS "Enable support for DirectSound" ON)
IF(PA_USE_DS)
IF(MINGW)
MESSAGE(STATUS "DirectSound support will be built with DSound provided by MinGW.")
OPTION(PA_USE_DIRECTSOUNDFULLDUPLEXCREATE "Use DirectSound full duplex create" OFF)
ELSE(MINGW)
OPTION(PA_USE_DIRECTSOUNDFULLDUPLEXCREATE "Use DirectSound full duplex create" ON)
ENDIF(MINGW)
MARK_AS_ADVANCED(PA_USE_DIRECTSOUNDFULLDUPLEXCREATE)
IF(PA_USE_DIRECTSOUNDFULLDUPLEXCREATE)
SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PAWIN_USE_DIRECTSOUNDFULLDUPLEXCREATE)
ENDIF()
SET(PA_DS_INCLUDES src/hostapi/dsound/pa_win_ds_dynlink.h)
SET(PA_DS_SOURCES src/hostapi/dsound/pa_win_ds.c src/hostapi/dsound/pa_win_ds_dynlink.c)
SOURCE_GROUP("hostapi\\dsound" FILES ${PA_DS_INCLUDES} ${PA_DS_SOURCES})
SET(PA_PUBLIC_INCLUDES ${PA_PUBLIC_INCLUDES} include/pa_win_ds.h include/pa_win_waveformat.h)
SET(PA_PRIVATE_INCLUDES ${PA_PRIVATE_INCLUDES} ${PA_DS_INCLUDES})
SET(PA_SOURCES ${PA_SOURCES} ${PA_DS_SOURCES})
SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} dsound)
ENDIF(PA_USE_DS)
OPTION(PA_USE_WMME "Enable support for MME" ON)
IF(PA_USE_WMME)
SET(PA_WMME_SOURCES src/hostapi/wmme/pa_win_wmme.c)
SOURCE_GROUP("hostapi\\wmme" FILES ${PA_WMME_SOURCES})
SET(PA_PUBLIC_INCLUDES ${PA_PUBLIC_INCLUDES} include/pa_win_wmme.h include/pa_win_waveformat.h)
SET(PA_SOURCES ${PA_SOURCES} ${PA_WMME_SOURCES})
SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ole32 uuid)
ENDIF()
# MinGW versions below 4.93, especially non MinGW-w64 distributions may
# break in the wasapi build. If an older MinGW version is required, WASAPI-
# support needs to be disabled.
OPTION(PA_USE_WASAPI "Enable support for WASAPI" ON)
IF(PA_USE_WASAPI)
SET(PA_WASAPI_SOURCES src/hostapi/wasapi/pa_win_wasapi.c)
SOURCE_GROUP("hostapi\\wasapi" FILES ${PA_WASAPI_SOURCES})
SET(PA_PUBLIC_INCLUDES ${PA_PUBLIC_INCLUDES} include/pa_win_wasapi.h include/pa_win_waveformat.h)
SET(PA_SOURCES ${PA_SOURCES} ${PA_WASAPI_SOURCES})
SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ole32 uuid)
ELSE()
SET(DEF_EXCLUDE_WASAPI_SYMBOLS ";")
ENDIF()
OPTION(PA_USE_WDMKS "Enable support for WDMKS" ON)
IF(PA_USE_WDMKS)
SET(PA_WDMKS_SOURCES src/hostapi/wdmks/pa_win_wdmks.c)
SOURCE_GROUP("hostapi\\wdmks" FILES ${PA_WDMKS_SOURCES})
SET(PA_PUBLIC_INCLUDES ${PA_PUBLIC_INCLUDES} include/pa_win_wdmks.h)
SET(PA_SOURCES ${PA_SOURCES} ${PA_WDMKS_SOURCES})
SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} setupapi ole32 uuid)
ENDIF()
OPTION(PA_USE_WDMKS_DEVICE_INFO "Use WDM/KS API for device info" ON)
MARK_AS_ADVANCED(PA_USE_WDMKS_DEVICE_INFO)
IF(PA_USE_WDMKS_DEVICE_INFO)
SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PAWIN_USE_WDMKS_DEVICE_INFO)
ENDIF()
SET(GENERATED_MESSAGE "CMake generated file, do NOT edit! Use CMake-GUI to change configuration instead.")
CONFIGURE_FILE(cmake_support/template_portaudio.def ${CMAKE_CURRENT_BINARY_DIR}/portaudio_cmake.def @ONLY)
CONFIGURE_FILE(cmake_support/options_cmake.h.in ${CMAKE_CURRENT_BINARY_DIR}/options_cmake.h @ONLY)
SET(PA_PRIVATE_INCLUDES ${PA_PRIVATE_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}/options_cmake.h)
SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PORTAUDIO_CMAKE_GENERATED)
SOURCE_GROUP("cmake_generated" FILES ${CMAKE_CURRENT_BINARY_DIR}/portaudio_cmake.def ${CMAKE_CURRENT_BINARY_DIR}/options_cmake.h)
SET(PA_EXTRA_SHARED_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/portaudio_cmake.def)
ELSE()
SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} src/os/unix)
SET(PA_PLATFORM_SOURCES src/os/unix/pa_unix_hostapis.c src/os/unix/pa_unix_util.c)
SOURCE_GROUP("os\\unix" FILES ${PA_PLATFORM_SOURCES})
SET(PA_SOURCES ${PA_SOURCES} ${PA_PLATFORM_SOURCES})
IF(APPLE)
SET(CMAKE_MACOSX_RPATH 1)
OPTION(PA_USE_COREAUDIO "Enable support for CoreAudio" ON)
IF(PA_USE_COREAUDIO)
SET(PA_COREAUDIO_SOURCES
src/hostapi/coreaudio/pa_mac_core.c
src/hostapi/coreaudio/pa_mac_core_blocking.c
src/hostapi/coreaudio/pa_mac_core_utilities.c)
SET(PA_COREAUDIO_INCLUDES
src/hostapi/coreaudio/pa_mac_core_blocking.h
src/hostapi/coreaudio/pa_mac_core_utilities.h)
SOURCE_GROUP("hostapi\\coreaudio" FILES ${PA_COREAUDIO_SOURCES} ${PA_COREAUDIO_INCLUDES})
SET(PA_PUBLIC_INCLUDES ${PA_PUBLIC_INCLUDES} include/pa_mac_core.h)
SET(PA_PRIVATE_INCLUDES ${PA_PRIVATE_INCLUDES} ${PA_COREAUDIO_INCLUDES})
SET(PA_SOURCES ${PA_SOURCES} ${PA_COREAUDIO_SOURCES})
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})
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")
ENDIF()
ELSEIF(UNIX)
FIND_PACKAGE(Jack)
IF(JACK_FOUND)
OPTION(PA_USE_JACK "Enable support for Jack" ON)
ELSE()
OPTION(PA_USE_JACK "Enable support for Jack" OFF)
ENDIF()
IF(PA_USE_JACK)
SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} ${JACK_INCLUDE_DIRS})
SET(PA_JACK_SOURCES src/hostapi/jack/pa_jack.c)
SOURCE_GROUP("hostapi\\JACK" FILES ${PA_JACK_SOURCES})
SET(PA_PUBLIC_INCLUDES ${PA_PUBLIC_INCLUDES} include/pa_jack.h)
SET(PA_SOURCES ${PA_SOURCES} ${PA_JACK_SOURCES})
SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PA_USE_JACK)
SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ${JACK_LIBRARIES})
SET(PA_PKGCONFIG_LDFLAGS "${PA_PKGCONFIG_LDFLAGS} -ljack")
ENDIF()
FIND_PACKAGE(ALSA)
IF(ALSA_FOUND)
OPTION(PA_USE_ALSA "Enable support for ALSA" ON)
OPTION(PA_ALSA_DYNAMIC "Enable loading ALSA through dlopen" OFF)
ELSE()
OPTION(PA_USE_ALSA "Enable support for ALSA" OFF)
ENDIF()
IF(PA_USE_ALSA)
SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} ${ALSA_INCLUDE_DIRS})
SET(PA_ALSA_SOURCES src/hostapi/alsa/pa_linux_alsa.c)
SOURCE_GROUP("hostapi\\ALSA" FILES ${PA_ALSA_SOURCES})
SET(PA_PUBLIC_INCLUDES ${PA_PUBLIC_INCLUDES} include/pa_linux_alsa.h)
SET(PA_SOURCES ${PA_SOURCES} ${PA_ALSA_SOURCES})
SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PA_USE_ALSA)
IF(PA_ALSA_DYNAMIC)
SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PA_ALSA_DYNAMIC)
SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ${CMAKE_DL_LIBS})
SET(PA_PKGCONFIG_LDFLAGS "${PA_PKGCONFIG_LDFLAGS} -l${CMAKE_DL_LIBS}")
ELSE()
SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ${ALSA_LIBRARIES})
SET(PA_PKGCONFIG_LDFLAGS "${PA_PKGCONFIG_LDFLAGS} -lasound")
ENDIF()
ENDIF()
ENDIF()
SET(PA_PKGCONFIG_LDFLAGS "${PA_PKGCONFIG_LDFLAGS} -lm -lpthread")
SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} m pthread)
ENDIF()
SOURCE_GROUP("include" FILES ${PA_PUBLIC_INCLUDES})
SET(PA_INCLUDES ${PA_PRIVATE_INCLUDES} ${PA_PUBLIC_INCLUDES})
IF(WIN32)
OPTION(PA_UNICODE_BUILD "Enable Portaudio Unicode build" ON)
IF(PA_UNICODE_BUILD)
SET_SOURCE_FILES_PROPERTIES(${PA_SOURCES} PROPERTIES COMPILE_DEFINITIONS "UNICODE;_UNICODE")
ENDIF()
ENDIF()
OPTION(PA_ENABLE_DEBUG_OUTPUT "Enable debug output for Portaudio" OFF)
IF(PA_ENABLE_DEBUG_OUTPUT)
SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PA_ENABLE_DEBUG_OUTPUT)
ENDIF()
INCLUDE(TestBigEndian)
TEST_BIG_ENDIAN(IS_BIG_ENDIAN)
IF(IS_BIG_ENDIAN)
SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PA_BIG_ENDIAN)
ELSE()
SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PA_LITTLE_ENDIAN)
ENDIF()
OPTION(PA_BUILD_STATIC "Build static library" ON)
OPTION(PA_BUILD_SHARED "Build shared/dynamic library" ON)
IF(MSVC)
OPTION(PA_LIBNAME_ADD_SUFFIX "Add suffix _static to static library name" ON)
ELSE()
OPTION(PA_LIBNAME_ADD_SUFFIX "Add suffix _static to static library name" OFF)
ENDIF()
# MSVC: if PA_LIBNAME_ADD_SUFFIX is not used, and both static and shared libraries are
# built, one, of import- and static libraries, will overwrite the other. In
# embedded builds this is not an issue as they will only build the configuration
# used in the host application.
MARK_AS_ADVANCED(PA_LIBNAME_ADD_SUFFIX)
IF(MSVC AND PA_BUILD_STATIC AND PA_BUILD_SHARED AND NOT PA_LIBNAME_ADD_SUFFIX)
MESSAGE(WARNING "Building both shared and static libraries, and avoiding the suffix _static will lead to a name conflict")
SET(PA_LIBNAME_ADD_SUFFIX ON CACHE BOOL "Forcing use of suffix _static to avoid name conflict between static and import library" FORCE)
MESSAGE(WARNING "PA_LIBNAME_ADD_SUFFIX was set to ON")
ENDIF()
SET(PA_TARGETS "")
IF(PA_BUILD_SHARED)
LIST(APPEND PA_TARGETS portaudio)
ADD_LIBRARY(portaudio SHARED ${PA_INCLUDES} ${PA_COMMON_INCLUDES} ${PA_SOURCES} ${PA_NON_UNICODE_SOURCES} ${PA_EXTRA_SHARED_SOURCES})
SET_PROPERTY(TARGET portaudio APPEND_STRING PROPERTY COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(portaudio PRIVATE ${PA_PRIVATE_INCLUDE_PATHS})
TARGET_INCLUDE_DIRECTORIES(portaudio PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>" "$<INSTALL_INTERFACE:include>")
TARGET_LINK_LIBRARIES(portaudio ${PA_LIBRARY_DEPENDENCIES})
ENDIF()
IF(PA_BUILD_STATIC)
LIST(APPEND PA_TARGETS portaudio_static)
ADD_LIBRARY(portaudio_static STATIC ${PA_INCLUDES} ${PA_COMMON_INCLUDES} ${PA_SOURCES} ${PA_NON_UNICODE_SOURCES})
SET_PROPERTY(TARGET portaudio_static APPEND_STRING PROPERTY COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(portaudio_static PRIVATE ${PA_PRIVATE_INCLUDE_PATHS})
TARGET_INCLUDE_DIRECTORIES(portaudio_static PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>" "$<INSTALL_INTERFACE:include>")
TARGET_LINK_LIBRARIES(portaudio_static ${PA_LIBRARY_DEPENDENCIES})
IF(NOT PA_LIBNAME_ADD_SUFFIX)
SET_PROPERTY(TARGET portaudio_static PROPERTY OUTPUT_NAME portaudio)
ENDIF()
ENDIF()
IF(WIN32 AND MSVC)
OPTION(PA_CONFIG_LIB_OUTPUT_PATH "Make sure that output paths are kept neat" OFF)
IF(CMAKE_CL_64)
SET(TARGET_POSTFIX x64)
IF(PA_CONFIG_LIB_OUTPUT_PATH)
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin/x64)
ENDIF()
ELSE()
SET(TARGET_POSTFIX x86)
IF(PA_CONFIG_LIB_OUTPUT_PATH)
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin/Win32)
ENDIF()
ENDIF()
IF(PA_BUILD_SHARED)
IF(PA_LIBNAME_ADD_SUFFIX)
SET_TARGET_PROPERTIES(portaudio PROPERTIES OUTPUT_NAME portaudio_${TARGET_POSTFIX})
ELSE()
SET_TARGET_PROPERTIES(portaudio PROPERTIES OUTPUT_NAME portaudio)
ENDIF()
ENDIF()
IF(PA_BUILD_STATIC)
IF(PA_LIBNAME_ADD_SUFFIX)
SET_TARGET_PROPERTIES(portaudio_static PROPERTIES OUTPUT_NAME portaudio_static_${TARGET_POSTFIX})
ELSE()
SET_TARGET_PROPERTIES(portaudio_static PROPERTIES OUTPUT_NAME portaudio)
ENDIF()
ENDIF()
ELSE()
IF(APPLE AND CMAKE_VERSION VERSION_GREATER 3.4.2)
OPTION(PA_OUTPUT_OSX_FRAMEWORK "Generate an OS X framework instead of the simple library" OFF)
IF(PA_OUTPUT_OSX_FRAMEWORK)
SET_TARGET_PROPERTIES(portaudio PROPERTIES
FRAMEWORK TRUE
MACOSX_FRAMEWORK_IDENTIFIER com.portaudio
FRAMEWORK_VERSION A
PUBLIC_HEADER "${PA_PUBLIC_INCLUDES}"
VERSION ${PA_SOVERSION}
SOVERSION ${PA_SOVERSION})
ENDIF()
ENDIF()
ENDIF()
# At least on Windows in embedded builds, portaudio's install target should likely
# not be executed, as the library would usually already be installed as part of, and
# by means of the host application.
# The option below offers the option to avoid executing the portaudio install target
# for cases in which the host-application executes install, but no independent install
# of portaudio is wished.
OPTION(PA_DISABLE_INSTALL "Disable targets install and uninstall (for embedded builds)" OFF)
IF(NOT PA_OUTPUT_OSX_FRAMEWORK AND NOT PA_DISABLE_INSTALL)
INCLUDE(CMakePackageConfigHelpers)
CONFIGURE_PACKAGE_CONFIG_FILE(cmake_support/portaudioConfig.cmake.in ${CMAKE_BINARY_DIR}/cmake/portaudio/portaudioConfig.cmake
INSTALL_DESTINATION "lib/cmake/portaudio"
NO_CHECK_REQUIRED_COMPONENTS_MACRO)
WRITE_BASIC_PACKAGE_VERSION_FILE(${CMAKE_BINARY_DIR}/cmake/portaudio/portaudioConfigVersion.cmake
VERSION ${PA_VERSION}
COMPATIBILITY SameMajorVersion)
CONFIGURE_FILE(cmake_support/portaudio-2.0.pc.in ${CMAKE_CURRENT_BINARY_DIR}/portaudio-2.0.pc @ONLY)
INSTALL(FILES README.md DESTINATION share/doc/portaudio)
INSTALL(FILES LICENSE.txt DESTINATION share/doc/portaudio)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/portaudio-2.0.pc DESTINATION lib/pkgconfig)
INSTALL(FILES ${PA_PUBLIC_INCLUDES} DESTINATION include)
INSTALL(TARGETS ${PA_TARGETS}
EXPORT portaudio-targets
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
INSTALL(EXPORT portaudio-targets FILE "portaudioTargets.cmake" DESTINATION "lib/cmake/portaudio")
EXPORT(TARGETS ${PA_TARGETS} FILE "${PROJECT_BINARY_DIR}/cmake/portaudio/portaudioTargets.cmake")
INSTALL(FILES "${CMAKE_BINARY_DIR}/cmake/portaudio/portaudioConfig.cmake"
"${CMAKE_BINARY_DIR}/cmake/portaudio/portaudioConfigVersion.cmake"
DESTINATION "lib/cmake/portaudio")
IF (NOT TARGET uninstall)
CONFIGURE_FILE(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_support/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
ADD_CUSTOM_TARGET(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
ENDIF()
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
OPTION(PA_BUILD_EXAMPLES "Include example projects" OFF)
IF(PA_BUILD_EXAMPLES)
SUBDIRS(examples)
ENDIF()

View file

@ -43,7 +43,7 @@ SUBGROUPING = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Build related configuration options # Build related configuration options
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
EXTRACT_ALL = YES EXTRACT_ALL = NO
EXTRACT_PRIVATE = NO EXTRACT_PRIVATE = NO
EXTRACT_STATIC = NO EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_CLASSES = YES
@ -60,14 +60,14 @@ INLINE_INFO = YES
SORT_MEMBER_DOCS = YES SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES GENERATE_TODOLIST = NO
GENERATE_TESTLIST = YES GENERATE_TESTLIST = NO
GENERATE_BUGLIST = YES GENERATE_BUGLIST = NO
GENERATE_DEPRECATEDLIST= YES GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS = ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30 MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES SHOW_USED_FILES = YES
SHOW_DIRECTORIES = NO SHOW_DIRECTORIES = YES
FILE_VERSION_FILTER = FILE_VERSION_FILTER =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to warning and progress messages # configuration options related to warning and progress messages
@ -83,15 +83,15 @@ WARN_LOGFILE =
# configuration options related to the input files # configuration options related to the input files
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
INPUT = doc/src \ INPUT = doc/src \
src \
include \ include \
test examples
FILE_PATTERNS = *.h \ FILE_PATTERNS = *.h \
*.c \ *.c \
*.cpp \ *.cpp \
*.java \
*.dox *.dox
RECURSIVE = YES RECURSIVE = YES
EXCLUDE = EXCLUDE = src/hostapi/wasapi/mingw-include
EXCLUDE_SYMLINKS = NO EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = EXCLUDE_PATTERNS =
EXAMPLE_PATH = EXAMPLE_PATH =
@ -104,7 +104,7 @@ FILTER_SOURCE_FILES = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to source browsing # configuration options related to source browsing
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
SOURCE_BROWSER = NO SOURCE_BROWSER = YES
INLINE_SOURCES = NO INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES REFERENCED_BY_RELATION = YES

242
Doxyfile.developer Normal file
View file

@ -0,0 +1,242 @@
# Doxyfile 1.4.6
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = PortAudio
PROJECT_NUMBER = 2.0
OUTPUT_DIRECTORY = ./doc/
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
BUILTIN_STL_SUPPORT = NO
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = YES
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS = INTERNAL
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = YES
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = doc/src \
include \
examples \
src \
test \
qa
FILE_PATTERNS = *.h \
*.c \
*.cpp \
*.java \
*.dox
RECURSIVE = YES
EXCLUDE = src/hostapi/wasapi/mingw-include
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH = doc/src/images
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = NO
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO

View file

@ -18,7 +18,7 @@ libdir = @libdir@
includedir = @includedir@ includedir = @includedir@
CC = @CC@ CC = @CC@
CXX = @CXX@ CXX = @CXX@
CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/src/common -I$(top_srcdir)/src/os/unix @CFLAGS@ @DEFS@ CFLAGS = @CFLAGS@ @DEFS@
LIBS = @LIBS@ LIBS = @LIBS@
AR = @AR@ AR = @AR@
RANLIB = @RANLIB@ RANLIB = @RANLIB@
@ -44,7 +44,7 @@ PALIB = libportaudio.la
PAINC = include/portaudio.h PAINC = include/portaudio.h
PA_LDFLAGS = $(LDFLAGS) $(SHARED_FLAGS) -rpath $(libdir) -no-undefined \ PA_LDFLAGS = $(LDFLAGS) $(SHARED_FLAGS) -rpath $(libdir) -no-undefined \
-export-symbols-regex "(Pa|PaMacCore|PaJack|PaAlsa|PaAsio|PaOSS)_.*" \ -export-symbols-regex "(Pa|PaMacCore|PaJack|PaAlsa|PaAsio|PaOSS|PaWasapi|PaWasapiWinrt)_.*" \
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
COMMON_OBJS = \ COMMON_OBJS = \
@ -67,9 +67,23 @@ LOOPBACK_OBJS = \
qa/loopback/src/write_wav.o \ qa/loopback/src/write_wav.o \
qa/loopback/src/paqa.o qa/loopback/src/paqa.o
TESTS = \ EXAMPLES = \
bin/pa_devs \
bin/pa_fuzz \
bin/paex_pink \
bin/paex_read_write_wire \
bin/paex_record \
bin/paex_saw \
bin/paex_sine \
bin/paex_write_sine \
bin/paex_write_sine_nonint
SELFTESTS = \
bin/paqa_devs \ bin/paqa_devs \
bin/paqa_errs \ bin/paqa_errs \
bin/paqa_latency
TESTS = \
bin/patest1 \ bin/patest1 \
bin/patest_buffer \ bin/patest_buffer \
bin/patest_callbackstop \ bin/patest_callbackstop \
@ -85,15 +99,9 @@ TESTS = \
bin/patest_mono \ bin/patest_mono \
bin/patest_multi_sine \ bin/patest_multi_sine \
bin/patest_out_underflow \ bin/patest_out_underflow \
bin/patest_pink \
bin/patest_prime \ bin/patest_prime \
bin/patest_read_record \
bin/patest_read_write_wire \
bin/patest_record \
bin/patest_ringmix \ bin/patest_ringmix \
bin/patest_saw \
bin/patest_sine8 \ bin/patest_sine8 \
bin/patest_sine \
bin/patest_sine_channelmaps \ bin/patest_sine_channelmaps \
bin/patest_sine_formats \ bin/patest_sine_formats \
bin/patest_sine_time \ bin/patest_sine_time \
@ -105,11 +113,6 @@ TESTS = \
bin/patest_two_rates \ bin/patest_two_rates \
bin/patest_underflow \ bin/patest_underflow \
bin/patest_wire \ bin/patest_wire \
bin/patest_write_sine \
bin/patest_write_sine_nonint \
bin/patest_update_available_device_list \
bin/pa_devs \
bin/pa_fuzz \
bin/pa_minlat bin/pa_minlat
# Most of these don't compile yet. Put them in TESTS, above, if # Most of these don't compile yet. Put them in TESTS, above, if
@ -143,20 +146,24 @@ SRC_DIRS = \
src/hostapi/dsound \ src/hostapi/dsound \
src/hostapi/jack \ src/hostapi/jack \
src/hostapi/oss \ src/hostapi/oss \
src/hostapi/skeleton \
src/hostapi/wasapi \ src/hostapi/wasapi \
src/hostapi/wdmks \ src/hostapi/wdmks \
src/hostapi/wmme \ src/hostapi/wmme \
src/os/unix \ src/os/unix \
src/os/mac_osx \
src/os/win src/os/win
SUBDIRS = SUBDIRS =
@ENABLE_CXX_TRUE@SUBDIRS += bindings/cpp @ENABLE_CXX_TRUE@SUBDIRS += bindings/cpp
all: lib/$(PALIB) all-recursive tests all: lib/$(PALIB) all-recursive tests examples selftests
tests: bin-stamp $(TESTS) tests: bin-stamp $(TESTS)
examples: bin-stamp $(EXAMPLES)
selftests: bin-stamp $(SELFTESTS)
loopback: bin-stamp bin/paloopback loopback: bin-stamp bin/paloopback
# With ASIO enabled we must link libportaudio and all test programs with CXX # With ASIO enabled we must link libportaudio and all test programs with CXX
@ -168,6 +175,14 @@ $(ALL_TESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) test/%.c
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS) @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS) @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
$(EXAMPLES): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) examples/%.c
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
$(SELFTESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) qa/%.c
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
bin/paloopback: lib/$(PALIB) $(MAKEFILE) $(PAINC) $(LOOPBACK_OBJS) bin/paloopback: lib/$(PALIB) $(MAKEFILE) $(PAINC) $(LOOPBACK_OBJS)
@WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS) @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
@WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS) @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
@ -206,16 +221,16 @@ clean:
distclean: clean distclean: clean
$(RM) config.log config.status Makefile libtool portaudio-2.0.pc $(RM) config.log config.status Makefile libtool portaudio-2.0.pc
%.o: %.c $(MAKEFILE) $(PAINC) %.o: %.c $(MAKEFILE) $(PAINC) lib-stamp
$(CC) -c $(CFLAGS) $< -o $@ $(CC) -c $(CFLAGS) $< -o $@
%.lo: %.c $(MAKEFILE) $(PAINC) %.lo: %.c $(MAKEFILE) $(PAINC) lib-stamp
$(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) $< -o $@ $(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) $< -o $@
%.lo: %.cpp $(MAKEFILE) $(PAINC) %.lo: %.cpp $(MAKEFILE) $(PAINC) lib-stamp
$(LIBTOOL) --mode=compile --tag=CXX $(CXX) -c $(CXXFLAGS) $< -o $@ $(LIBTOOL) --mode=compile --tag=CXX $(CXX) -c $(CXXFLAGS) $< -o $@
%.o: %.cpp $(MAKEFILE) $(PAINC) %.o: %.cpp $(MAKEFILE) $(PAINC) lib-stamp
$(CXX) -c $(CXXFLAGS) $< -o $@ $(CXX) -c $(CXXFLAGS) $< -o $@
%.o: %.asm %.o: %.asm

View file

@ -1,16 +1,26 @@
PortAudio uses "autoconf" tools to generate Makefiles for Linux and Mac platforms. PortAudio uses "autoconf" tools to generate Makefiles for Linux and Mac platforms.
The source for these are configure.in and Makefile.in The source for these are configure.in and Makefile.in
If you modify either of these files then please run this command before If you modify either of these files then please run this command before
testing and checking in your changes. testing and checking in your changes. I run this command on Linux.
autoreconf -if autoreconf -if
If you do not have autoreconf then do:
sudo apt-get install autoconf
If you get error like "possibly undefined macro: AC_LIBTOOL_WIN32_DLL"
then you try installing some more packages and then try again.
sudo apt-get install build-essential
sudo apt-get install pkg-config
sudo apt-get install libtool
autoreconf -if
Then test a build by doing: Then test a build by doing:
./configure ./configure
make clean make clean
make make
sudo make install
then check in the related files that are modified. then check in the related files that are modified.
These might include files like: These might include files like:

103
README.md Normal file
View file

@ -0,0 +1,103 @@
# 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
native audio subsystem and the client. Audio can be processed in various
formats, including 32 bit floating point, and will be converted to the
native format internally.
## Documentation:
* Documentation is available at http://www.portaudio.com/docs/
* Or at `/doc/html/index.html` after running Doxygen.
* Also see `src/common/portaudio.h` for the API spec.
* And see the `examples/` and `test/` directories for many examples of usage. (We suggest `examples/paex_saw.c` for an example.)
For information on compiling programs with PortAudio, please see the
tutorial at:
http://portaudio.com/docs/v19-doxydocs/tutorial_start.html
We have an active mailing list for user and developer discussions.
Please feel free to join. See http://www.portaudio.com for details.
## Important Files and Folders:
include/portaudio.h = header file for PortAudio API. Specifies API.
src/common/ = platform independent code, host independent
code for all implementations.
src/os = os specific (but host api neutral) code
src/hostapi = implementations for different host apis
### Host API Implementations:
src/hostapi/alsa = Advanced Linux Sound Architecture (ALSA)
src/hostapi/asihpi = AudioScience HPI
src/hostapi/asio = ASIO for Windows and Macintosh
src/hostapi/coreaudio = Macintosh Core Audio for OS X
src/hostapi/dsound = Windows Direct Sound
src/hostapi/jack = JACK Audio Connection Kit
src/hostapi/oss = Unix Open Sound System (OSS)
src/hostapi/wasapi = Windows Vista WASAPI
src/hostapi/wdmks = Windows WDM Kernel Streaming
src/hostapi/wmme = Windows MultiMedia Extensions (MME)
### Test Programs:
test/pa_fuzz.c = guitar fuzz box
test/pa_devs.c = print a list of available devices
test/pa_minlat.c = determine minimum latency for your machine
test/paqa_devs.c = self test that opens all devices
test/paqa_errs.c = test error detection and reporting
test/patest_clip.c = hear a sine wave clipped and unclipped
test/patest_dither.c = hear effects of dithering (extremely subtle)
test/patest_pink.c = fun with pink noise
test/patest_record.c = record and playback some audio
test/patest_maxsines.c = how many sine waves can we play? Tests Pa_GetCPULoad().
test/patest_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.

View file

@ -1,98 +0,0 @@
README for PortAudio
/*
* PortAudio Portable Real-Time Audio Library
* Latest Version at: http://www.portaudio.com
*
* Copyright (c) 1999-2008 Phil Burk and Ross Bencina
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files
* (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/*
* 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
* license above.
*/
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
native audio subsystem and the client. Audio can be processed in various
formats, including 32 bit floating point, and will be converted to the
native format internally.
Documentation:
Documentation is available in "/doc/html/index.html"
Also see "src/common/portaudio.h" for API spec.
Also see http://www.portaudio.com/docs/
And see the "test/" directory for many examples of usage
(we suggest "test/patest_saw.c" for an example)
For information on compiling programs with PortAudio, please see the
tutorial at:
http://portaudio.com/trac/wiki/TutorialDir/TutorialStart
We have an active mailing list for user and developer discussions.
Please feel free to join. See http://www.portaudio.com for details.
Important Files and Folders:
include/portaudio.h = header file for PortAudio API. Specifies API.
src/common/ = platform independant code, host independant
code for all implementations.
src/os = os specific (but host api neutral) code
src/hostapi = implementations for different host apis
Host API Implementations:
src/hostapi/alsa = Advanced Linux Sound Architecture (ALSA)
src/hostapi/asihpi = AudioScience HPI
src/hostapi/asio = ASIO for Windows and Macintosh
src/hostapi/coreaudio = Macintosh Core Audio for OS X
src/hostapi/dsound = Windows Direct Sound
src/hostapi/jack = JACK Audio Connection Kit
src/hostapi/oss = Unix Open Sound System (OSS)
src/hostapi/wasapi = Windows Vista WASAPI
src/hostapi/wdmks = Windows WDM Kernel Streaming
src/hostapi/wmme = Windows MultiMedia Extensions (MME)
Test Programs:
test/pa_fuzz.c = guitar fuzz box
test/pa_devs.c = print a list of available devices
test/pa_minlat.c = determine minimum latency for your machine
test/paqa_devs.c = self test that opens all devices
test/paqa_errs.c = test error detection and reporting
test/patest_clip.c = hear a sine wave clipped and unclipped
test/patest_dither.c = hear effects of dithering (extremely subtle)
test/patest_pink.c = fun with pink noise
test/patest_record.c = record and playback some audio
test/patest_maxsines.c = how many sine waves can we play? Tests Pa_GetCPULoad().
test/patest_sine.c = output a sine wave in a simple PA app
test/patest_sync.c = test syncronization of audio and video
test/patest_wire.c = pass input to output, wire simulator

4941
aclocal.m4 vendored

File diff suppressed because it is too large Load diff

View file

@ -1,178 +1,178 @@
Note: Because PortAudioCpp is now in the main PortAudio SVN repository, having these per-release changelogs probably doesn't make much sense anymore. Perhaps it's better to just note mayor changes by date from now on. Note: Because PortAudioCpp is now in the main PortAudio SVN repository, having these per-release changelogs probably doesn't make much sense anymore. Perhaps it's better to just note mayor changes by date from now on.
PortAudioCpp v19 revision 16 06/05/22: PortAudioCpp v19 revision 16 06/05/22:
mblaauw: mblaauw:
- Added up-to-date MSVC 6.0 projects created by David Moore. Besides MSVC 6.0 users, MSVC 7.0 users may use these projects and automatically convert them to MSVC 7.0 projects. - Added up-to-date MSVC 6.0 projects created by David Moore. Besides MSVC 6.0 users, MSVC 7.0 users may use these projects and automatically convert them to MSVC 7.0 projects.
- Changed the code and projects (MSVC 7.1 only) to be up-to-date with PortAudio's new directory structure. - Changed the code and projects (MSVC 7.1 only) to be up-to-date with PortAudio's new directory structure.
- Added equivalents of the PaAsio_GetInputChannelName() and PaAsio_GetOutputChannelName() functions to the AsioDeviceAdapter wrapper-class (missing functions pointed out by David Moore). - Added equivalents of the PaAsio_GetInputChannelName() and PaAsio_GetOutputChannelName() functions to the AsioDeviceAdapter wrapper-class (missing functions pointed out by David Moore).
- Added code to PortAudio's main SVN repository. - Added code to PortAudio's main SVN repository.
PortAudioCpp v19 revision 15 (unknown release date): PortAudioCpp v19 revision 15 (unknown release date):
mblaauw: mblaauw:
- Changed some exception handling code in HostApi's constructor. - Changed some exception handling code in HostApi's constructor.
- Added accessors to PortAudio PaStream from PortAudioCpp Stream (their absense being pointed out - Added accessors to PortAudio PaStream from PortAudioCpp Stream (their absence being pointed out
by Tom Jordan). by Tom Jordan).
- Fixed a bug/typo in MemFunToCallbackInterfaceAdapter::init() thanks to Fredrik Viklund. - Fixed a bug/typo in MemFunToCallbackInterfaceAdapter::init() thanks to Fredrik Viklund.
- Fixed issue with concrete Stream classes possibly throwing an exception and fixed documentation w.r.t. this. - Fixed issue with concrete Stream classes possibly throwing an exception and fixed documentation w.r.t. this.
- Moved files to portaudio/binding/cpp/. Made new msvc 7.1 projects to reflect the change and removed msvc 6.0 - Moved files to portaudio/binding/cpp/. Made new msvc 7.1 projects to reflect the change and removed msvc 6.0
and 7.0 projects (because I can no longer maintain them myself). Gnu projects will probably need updating. and 7.0 projects (because I can no longer maintain them myself). Gnu projects will probably need updating.
PortAudioCpp v19 revision 14 03/10/24: PortAudioCpp v19 revision 14 03/10/24:
mblaauw: mblaauw:
- Fixed some error handling bugs in Stream and System (pointed out by Tom Jordan). - Fixed some error handling bugs in Stream and System (pointed out by Tom Jordan).
- Updated documentation a little (main page). - Updated documentation a little (main page).
- Fixed order of members so initializer list was in the right order in - Fixed order of members so initializer list was in the right order in
StreamParameters (pointed out by Ludwig Schwardt). StreamParameters (pointed out by Ludwig Schwardt).
- Added new lines at EOF's (as indicated by Ludwig Schwardt). - Added new lines at EOF's (as indicated by Ludwig Schwardt).
PortAudioCpp v19 revision 13 03/10/19: PortAudioCpp v19 revision 13 03/10/19:
lschwardt: lschwardt:
- Added build files for GNU/Linux. - Added build files for GNU/Linux.
- Fixed bug in Exception where the inherited what() member function (and destructor) had looser - Fixed bug in Exception where the inherited what() member function (and destructor) had looser
exception specification (namely no exception specification, i.e. could throw anything) than exception specification (namely no exception specification, i.e. could throw anything) than
the std::exception base class's what() member function (which had throw(), i.e. no-throw guarantee). the std::exception base class's what() member function (which had throw(), i.e. no-throw guarantee).
- Changed the iterators so that they have a set of public typedefs instead of deriving the C++ standard - Changed the iterators so that they have a set of public typedefs instead of deriving the C++ standard
library std::iterator<> struct. G++ 2.95 doesn't support std::exception<> and composition-by-aggregation library std::iterator<> struct. G++ 2.95 doesn't support std::exception<> and composition-by-aggregation
is prefered over composition-by-inheritance in this case. is preferred over composition-by-inheritance in this case.
- Changed some minor things to avoid G++ warning messages. - Changed some minor things to avoid G++ warning messages.
mblaauw: mblaauw:
- Renamed this file (/WHATSNEW.txt) to /CHANGELOG. - Renamed this file (/WHATSNEW.txt) to /CHANGELOG.
- Renamed /PA_ISSUES.txt to /PA_ISSUES. - Renamed /PA_ISSUES.txt to /PA_ISSUES.
- Added /INSTALL file with some build info for GNU/Linux and VC6. - Added /INSTALL file with some build info for GNU/Linux and VC6.
- Added MSVC 6.0 projects for building PortAudioCpp as a staticly or dynamically linkable library. - Added MSVC 6.0 projects for building PortAudioCpp as a statically or dynamically linkable library.
- Moved build files to /build/(gnu/ or vc6/). - Moved build files to /build/(gnu/ or vc6/).
- Moved Doxygen configuration files to /doc/ and output to /doc/api_reference/. - Moved Doxygen configuration files to /doc/ and output to /doc/api_reference/.
- Added a /doc/README with some info how to generate Doxygen documentation. - Added a /doc/README with some info how to generate Doxygen documentation.
PortAudioCpp v19 revision 12 03/09/02: PortAudioCpp v19 revision 12 03/09/02:
mblaauw: mblaauw:
- Updated code to reflect changes on V19-devel CVS branch. - Updated code to reflect changes on V19-devel CVS branch.
- Fixed some typos in the documentation. - Fixed some typos in the documentation.
PortAudioCpp v19 revision 11 03/07/31: PortAudioCpp v19 revision 11 03/07/31:
mblaauw: mblaauw:
- Renamed SingleDirecionStreamParameters to DirectionSpecificStreamParameters. - Renamed SingleDirecionStreamParameters to DirectionSpecificStreamParameters.
- Implemented BlockingStream. - Implemented BlockingStream.
- Updated code to reflect recent changes to PortAudio V19-devel. - Updated code to reflect recent changes to PortAudio V19-devel.
- Fixed a potential memory leak when an exception was thrown in the HostApi - Fixed a potential memory leak when an exception was thrown in the HostApi
constructor. constructor.
- Renamed ``Latency'' to ``BufferSize'' in AsioDeviceAdapter. - Renamed ``Latency'' to ``BufferSize'' in AsioDeviceAdapter.
- Updated class documentation. - Updated class documentation.
PortAudioCpp v19 revision 10 03/07/18: PortAudioCpp v19 revision 10 03/07/18:
mblaauw: mblaauw:
- SingleDirectionStreamParameters now has a (static) null() method. - SingleDirectionStreamParameters now has a (static) null() method.
- StreamParameters uses references for the direction-specific stream parameters - StreamParameters uses references for the direction-specific stream parameters
instead of pointers (use null() method (above) instead of NULL). instead of pointers (use null() method (above) instead of NULL).
- StreamParameters and SingleDirectionStreamParameters must now be fully specified - StreamParameters and SingleDirectionStreamParameters must now be fully specified
and now default values are used (because this was not very useful in general and and now default values are used (because this was not very useful in general and
only made things more complex). only made things more complex).
- Updated documentation. - Updated documentation.
PortAudioCpp v19 revision 09 03/06/25: PortAudioCpp v19 revision 09 03/06/25:
mblaauw: mblaauw:
- Changed some things in SingleDirectionStreamParameters to ease it's usage. - Changed some things in SingleDirectionStreamParameters to ease it's usage.
- Placed all SingleDirectionStreamParameters stuff into a separate file. - Placed all SingleDirectionStreamParameters stuff into a separate file.
+ Totally redid the callback stuff, now it's less ackward and supports C++ functions. + Totally redid the callback stuff, now it's less awkward and supports C++ functions.
PortAudioCpp v19 revision 08 03/06/20: PortAudioCpp v19 revision 08 03/06/20:
mblaauw: mblaauw:
- Made deconstructors for Device and HostApi private. - Made deconstructors for Device and HostApi private.
+ Added a AsioDeviceWrapper host api specific device extension class. + Added a AsioDeviceWrapper host api specific device extension class.
- Refactored Exception into a Exception base class and PaException and PaCppException - Refactored Exception into a Exception base class and PaException and PaCppException
derived classes. derived classes.
- Added ASIO specific device info to the devs.cxx example. - Added ASIO specific device info to the devs.cxx example.
- Fixed a bug in System::hostApiCount() and System::defaultHostApi(). - Fixed a bug in System::hostApiCount() and System::defaultHostApi().
+ Moved Device::null to System::nullDevice. + Moved Device::null to System::nullDevice.
- Fixed some bugs in Device and System. - Fixed some bugs in Device and System.
PortAudioCpp v19 revision 07 03/06/08: PortAudioCpp v19 revision 07 03/06/08:
mblaauw: mblaauw:
- Updated some doxy comments. - Updated some doxy comments.
+ Renamed CbXyz to CallbackXyz. + Renamed CbXyz to CallbackXyz.
+ Renamed all ``configurations'' to ``parameters''. + Renamed all ``configurations'' to ``parameters''.
+ Renamed HalfDuplexStreamConfiguration to SingleDirectionStreamConfiguration. + Renamed HalfDuplexStreamConfiguration to SingleDirectionStreamConfiguration.
- Renamed SingleDirectionStreamParameters::streamParameters() to - Renamed SingleDirectionStreamParameters::streamParameters() to
SingleDirectionStreamParameters::paSteamParameters. SingleDirectionStreamParameters::paSteamParameters.
- Added a non-constant version of SingleDirectionStreamParameters::paStreamParameters(). - Added a non-constant version of SingleDirectionStreamParameters::paStreamParameters().
- A few improvements to SingleDirectionStreamParameters. - A few improvements to SingleDirectionStreamParameters.
- Allowed AutoSystem to be created without initializing the System singleton - Allowed AutoSystem to be created without initializing the System singleton
(using a ctor flag). (using a ctor flag).
- Added a BlockingStream class (not implemented for now). - Added a BlockingStream class (not implemented for now).
- Fixed many bugs in the implementation of the iterators. - Fixed many bugs in the implementation of the iterators.
- Fixed a bug in Device::operator==(). - Fixed a bug in Device::operator==().
+ Added a C++ version of the patest_sine.c test/example. + Added a C++ version of the patest_sine.c test/example.
- Added a ctor for StreamParameters for a default half-duplex stream. - Added a ctor for StreamParameters for a default half-duplex stream.
- Added SingleDirectionStreamParameters::setDevice() and setNumChannels(). - Added SingleDirectionStreamParameters::setDevice() and setNumChannels().
- Renamed System::numHostApis() to System::hostApiCount(). - Renamed System::numHostApis() to System::hostApiCount().
+ Rewrote the iterators and related classes. They are now fully STL compliant. The System now + Rewrote the iterators and related classes. They are now fully STL compliant. The System now
has a static array of all HostApis and all Devices. Only the System can create HostApis and has a static array of all HostApis and all Devices. Only the System can create HostApis and
Devices and they are non-copyable now. All HostApis and Devices are now passed by-reference. Devices and they are non-copyable now. All HostApis and Devices are now passed by-reference.
- Renamed (System::) getVersion() to version() and getVersionText() to versionText(). - Renamed (System::) getVersion() to version() and getVersionText() to versionText().
- Renamed (Device::) numXyzChannels() to maxXyzChannels(). - Renamed (Device::) numXyzChannels() to maxXyzChannels().
- Changed some stuff in StreamParameters. - Changed some stuff in StreamParameters.
+ Added a C++ version of the patest_devs.c test/example. + Added a C++ version of the patest_devs.c test/example.
PortAudioCpp v19 revision 06 03/06/04: PortAudioCpp v19 revision 06 03/06/04:
mblaauw: mblaauw:
+ Added this file to the project (roughly, a `+' denotes a major change, a `-' a minor change). + Added this file to the project (roughly, a `+' denotes a major change, a `-' a minor change).
- Added System::deviceByIndex(), useful when a Device's index is stored for instance. - Added System::deviceByIndex(), useful when a Device's index is stored for instance.
- Renamed System::hostApiFromTypeId() to System::hostApiByTypeId(). - Renamed System::hostApiFromTypeId() to System::hostApiByTypeId().
- Updated and added some Doxygen documentation. - Updated and added some Doxygen documentation.
- Made Stream::usedIntputLatency(), Stream::usedOutputLatency() and - Made Stream::usedIntputLatency(), Stream::usedOutputLatency() and
Stream::usedSampleRate() throw an paInternalError equivalent exception instead of paBadStreamPtr. Stream::usedSampleRate() throw an paInternalError equivalent exception instead of paBadStreamPtr.
- Changed exception handling in Stream::open() functions. They now follow the PA error handling - Changed exception handling in Stream::open() functions. They now follow the PA error handling
mechanism better and a couple of bugs regarding ownership of objects were fixed. mechanism better and a couple of bugs regarding ownership of objects were fixed.
- Renamed Device::isDefaultXyzDevice() to Device::isSystemDefaultXyzDevice(). - Renamed Device::isDefaultXyzDevice() to Device::isSystemDefaultXyzDevice().
- Added Device::isHostApiDefaultXyzDevice(). - Added Device::isHostApiDefaultXyzDevice().
- Added StreamConfiguration::unsetFlag(). - Added StreamConfiguration::unsetFlag().
- Removed CUSTOM from SampleDataFormat. - Removed CUSTOM from SampleDataFormat.
- System::hostApiByTypeId() now throws an paInternalError if the type id was out-of-range; this - System::hostApiByTypeId() now throws an paInternalError if the type id was out-of-range; this
is a temporary work-around (see comments). is a temporary work-around (see comments).
- Changed CbInterface to use paCallbackFun() instead of operator()(). - Changed CbInterface to use paCallbackFun() instead of operator()().
- Renamed ``object'' to ``instance'' in CbMemFunAdapter.hxx. - Renamed ``object'' to ``instance'' in CbMemFunAdapter.hxx.
- Added StreamConfiguration::setXyzHostApiSpecificSampleFormat(). - Added StreamConfiguration::setXyzHostApiSpecificSampleFormat().
- Added StreamConfiguration::isXyzSampleFormatHostApiSpecific(). - Added StreamConfiguration::isXyzSampleFormatHostApiSpecific().
- Changed error handling in System::terminate(), it can now throw an Exception. - Changed error handling in System::terminate(), it can now throw an Exception.
- Added error handling in System::defaultHostApi(). - Added error handling in System::defaultHostApi().
- Added error handling in System::hostApisEnd(). - Added error handling in System::hostApisEnd().
- Changed some (but probably not all) C casts to C++ casts to avoid confusion with a - Changed some (but probably not all) C casts to C++ casts to avoid confusion with a
certain Python person. certain Python person.
- Renamed RaiiSystem to AutoSystem (class and file) as this is a come common convention. - Renamed RaiiSystem to AutoSystem (class and file) as this is a come common convention.
- Renamed System::numDevices() to System::deviceCount() to be more compatible with PortAudio - Renamed System::numDevices() to System::deviceCount() to be more compatible with PortAudio
(although PortAudio uses Pa_CountDevices() instead, see comment). (although PortAudio uses Pa_CountDevices() instead, see comment).
- Renamed HostApi::numDevices() to HostApi::deviceCount(). - Renamed HostApi::numDevices() to HostApi::deviceCount().
- Changed INC_ to INCLUDED_ in the header multiple include guards. - Changed INC_ to INCLUDED_ in the header multiple include guards.
- Changed the order of functions in the StreamConfiguration class' header. - Changed the order of functions in the StreamConfiguration class' header.
- Written some more info in PortAudioCpp.hxx (Doxygen). - Written some more info in PortAudioCpp.hxx (Doxygen).
- Added CallbackStream.hxx and CallbackStream.cxx files. - Added CallbackStream.hxx and CallbackStream.cxx files.
+ Refactored StreamConfiguration to remove the duplication which was there. There is now a + Refactored StreamConfiguration to remove the duplication which was there. There is now a
HalfDuplexStreamConfiguration class. Also made some improvements to these classes while HalfDuplexStreamConfiguration class. Also made some improvements to these classes while
doing the refactoring. doing the refactoring.
+ Moved all code files to source/portaudiocpp/ and changed includes. + Moved all code files to source/portaudiocpp/ and changed includes.
+ Moved all header files to include/portaudiocpp/ to easy a binary build if needed. The project + Moved all header files to include/portaudiocpp/ to easy a binary build if needed. The project
must be set to have .../include/ as a path to look for includes. must be set to have .../include/ as a path to look for includes.
+ Refactored the Stream class into a Stream base class and a CallbackStream derived class. + Refactored the Stream class into a Stream base class and a CallbackStream derived class.
- Renamed Stream::usingXyz() to Stream::xyz(). - Renamed Stream::usingXyz() to Stream::xyz().
- Updated some doxy comments. - Updated some doxy comments.
- Changed ``using namespace portaudio'' in .cxx files to ``namespace portaudio { ... }''. - Changed ``using namespace portaudio'' in .cxx files to ``namespace portaudio { ... }''.
PortAudioCpp v19 revision 05 03/04/09: PortAudioCpp v19 revision 05 03/04/09:
mblaauw: mblaauw:
- Initial release on the PortAudio mailinglist. - Initial release on the PortAudio mailinglist.

View file

@ -1,8 +1,8 @@
Installation Instructions Installation Instructions
************************* *************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free
2006, 2007, 2008, 2009 Free Software Foundation, Inc. Software Foundation, Inc.
Copying and distribution of this file, with or without modification, Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright are permitted in any medium without royalty provided the copyright
@ -12,97 +12,96 @@ without warranty of any kind.
Basic Installation Basic Installation
================== ==================
Briefly, the shell commands `./configure; make; make install' should Briefly, the shell command './configure && make && make install'
configure, build, and install this package. The following 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 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 below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions. 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 various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package. those values to create a 'Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent It may also create one or more '.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that definitions. Finally, it creates a shell script 'config.status' that
you can run in the future to recreate the current configuration, and a you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for file 'config.log' containing compiler output (useful mainly for
debugging `configure'). debugging 'configure').
It can also use an optional file (typically called `config.cache' It can also use an optional file (typically called 'config.cache' and
and enabled with `--cache-file=config.cache' or simply `-C') that saves enabled with '--cache-file=config.cache' or simply '-C') that saves the
the results of its tests to speed up reconfiguring. Caching is results of its tests to speed up reconfiguring. Caching is disabled by
disabled by default to prevent problems with accidental use of stale default to prevent problems with accidental use of stale cache files.
cache files.
If you need to do unusual things to compile the package, please try 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 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 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 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. may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create The file 'configure.ac' (or 'configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if 'configure' by a program called 'autoconf'. You need 'configure.ac' if
you want to change it or regenerate `configure' using a newer version you want to change it or regenerate 'configure' using a newer version of
of `autoconf'. 'autoconf'.
The simplest way to compile this package is: The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type 1. 'cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. './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. 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. 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 documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular 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. 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 time using the binaries in their final installed location.
This target does not install anything. Running this target as a 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 root privileges, verifies that the installation completed
correctly. correctly.
6. You can remove the program binaries and object files from the 6. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the source code directory by typing 'make clean'. To also remove the
files that `configure' created (so you can compile the package for files that 'configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is a different kind of computer), type 'make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly 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 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 all sorts of other programs in order to regenerate files that came
with the distribution. 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 files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the uninstallation works correctly, even though it is required by the
GNU Coding Standards. 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 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. This target is generally not run by end users.
Compilers and Options Compilers and Options
===================== =====================
Some systems require unusual options for compilation or linking that 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. for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters You can give 'configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here by setting variables in the command line or in the environment. Here is
is an example: an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix ./configure CC=c99 CFLAGS=-g LIBS=-lposix
@ -111,23 +110,23 @@ is an example:
Compiling For Multiple Architectures Compiling For Multiple Architectures
==================================== ====================================
You can compile the package for more than one kind of computer at the 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 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 directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the the 'configure' script. 'configure' automatically checks for the source
source code in the directory that `configure' is in and in `..'. This code in the directory that 'configure' is in and in '..'. This is known
is known as a "VPATH" build. 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 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. reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple `-arch' options to the "universal" binaries--by specifying multiple '-arch' options to the
compiler but only a single `-arch' option to the preprocessor. Like compiler but only a single '-arch' option to the preprocessor. Like
this: this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
@ -136,100 +135,104 @@ this:
This is not guaranteed to produce working output in all cases, you 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 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 Installation Names
================== ==================
By default, `make install' installs the package's commands under By default, 'make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You '/usr/local/bin', include files under '/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving can specify an installation prefix other than '/usr/local' by giving
`configure' the option `--prefix=PREFIX', where PREFIX must be an 'configure' the option '--prefix=PREFIX', where PREFIX must be an
absolute file name. absolute file name.
You can specify separate installation prefixes for You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you 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. PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix. Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular options like '--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories 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 you can set and what kinds of files go in them. In general, the default
default for these options is expressed in terms of `${prefix}', so that for these options is expressed in terms of '${prefix}', so that
specifying just `--prefix' will affect all of the other directory specifying just '--prefix' will affect all of the other directory
specifications that were not explicitly provided. specifications that were not explicitly provided.
The most portable way to affect installation locations is to pass the 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 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. having to reconfigure or recompile.
The first method involves providing an override variable for each 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 prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of directory configuration variables that were expressed in terms of
`${prefix}'. Any directories that were specified during `configure', '${prefix}'. Any directories that were specified during 'configure',
but not in terms of `${prefix}', must each be overridden at install but not in terms of '${prefix}', must each be overridden at install time
time for the entire installation to be relocated. The approach of for the entire installation to be relocated. The approach of makefile
makefile variable overrides for each directory variable is required by variable overrides for each directory variable is required by the GNU
the GNU Coding Standards, and ideally causes no recompilation. Coding Standards, and ideally causes no recompilation. However, some
However, some platforms have known limitations with the semantics of platforms have known limitations with the semantics of shared libraries
shared libraries that end up requiring recompilation when using this that end up requiring recompilation when using this method, particularly
method, particularly noticeable in packages that use GNU Libtool. noticeable in packages that use GNU Libtool.
The second method involves providing the `DESTDIR' variable. For The second method involves providing the 'DESTDIR' variable. For
example, `make install DESTDIR=/alternate/directory' will prepend example, 'make install DESTDIR=/alternate/directory' will prepend
`/alternate/directory' before all installation names. The approach of '/alternate/directory' before all installation names. The approach of
`DESTDIR' overrides is not required by the GNU Coding Standards, and 'DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand, does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even it does better at avoiding recompilation issues, and works well even
when some directory options were not specified in terms of `${prefix}' when some directory options were not specified in terms of '${prefix}'
at `configure' time. at 'configure' time.
Optional Features Optional Features
================= =================
If the package supports it, you can cause programs to be installed 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 with an extra prefix or suffix on their names by giving 'configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
Some packages pay attention to `--enable-FEATURE' options to Some packages pay attention to '--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package. 'configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where 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 is something like 'gnu-as' or 'x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the 'README' should mention any '--enable-' and '--with-' options that the
package recognizes. 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, find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and you can use the 'configure' options '--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations. '--x-libraries=DIR' to specify their locations.
Some packages offer the ability to configure how verbose the 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 --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 --disable-silent-rules' sets the default to verbose, which can be
overridden with `make V=0'. overridden with 'make V=0'.
Particular systems Particular systems
================== ==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
CC is not installed, it is recommended to use the following options in is not installed, it is recommended to use the following options in
order to use an ANSI C compiler: order to use an ANSI C compiler:
./configure CC="cc -Ae -D_XOPEN_SOURCE=500" ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX. 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.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot 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 parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
a workaround. If GNU CC is not installed, it is therefore recommended workaround. If GNU CC is not installed, it is therefore recommended to
to try try
./configure CC="cc" ./configure CC="cc"
@ -237,26 +240,26 @@ and if that doesn't work, try
./configure CC="cc -nodtk" ./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 directory contains several dysfunctional programs; working variants of
these programs are available in `/usr/bin'. So, if you need `/usr/ucb' these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
in your `PATH', put it _after_ `/usr/bin'. in your 'PATH', put it _after_ '/usr/bin'.
On Haiku, software installed for all users goes in `/boot/common', On Haiku, software installed for all users goes in '/boot/common',
not `/usr/local'. It is recommended to use the following options: not '/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common ./configure --prefix=/boot/common
Specifying the System Type 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 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 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 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 '--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: type, such as 'sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM CPU-COMPANY-SYSTEM
@ -265,101 +268,101 @@ where SYSTEM can have one of these forms:
OS OS
KERNEL-OS KERNEL-OS
See the file `config.sub' for the possible values of each field. If 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 'config.sub' isn't included in this package, then this package doesn't
need to know the machine type. need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should 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. produce code for.
If you want to _use_ a cross compiler, that generates code for a If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will "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 Sharing Defaults
================ ================
If you want to set default values for `configure' scripts to share, If you want to set default values for 'configure' scripts to share,
you can create a site shell script called `config.site' that gives you can create a site shell script called 'config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'. default values for variables like 'CC', 'cache_file', and 'prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then 'configure' looks for 'PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the 'PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script. 'CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script. A warning: not all 'configure' scripts look for a site script.
Defining Variables Defining Variables
================== ==================
Variables not defined in a site shell script can be set in the 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 configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set 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 ./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). overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
an Autoconf bug. Until the bug is fixed you can use this workaround: Autoconf limitation. Until the limitation is lifted, you can use this
workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash 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. operates.
`--help' '--help'
`-h' '-h'
Print a summary of all of the options to `configure', and exit. Print a summary of all of the options to 'configure', and exit.
`--help=short' '--help=short'
`--help=recursive' '--help=recursive'
Print a summary of the options unique to this package's Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used 'configure', and exit. The 'short' variant lists options used only
only in the top level, while the `recursive' variant lists options in the top level, while the 'recursive' variant lists options also
also present in any nested packages. present in any nested packages.
`--version' '--version'
`-V' '-V'
Print the version of Autoconf used to generate the `configure' Print the version of Autoconf used to generate the 'configure'
script, and exit. script, and exit.
`--cache-file=FILE' '--cache-file=FILE'
Enable the cache: use and save the results of the tests in 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. disable caching.
`--config-cache' '--config-cache'
`-C' '-C'
Alias for `--cache-file=config.cache'. Alias for '--cache-file=config.cache'.
`--quiet' '--quiet'
`--silent' '--silent'
`-q' '-q'
Do not print messages saying which checks are being made. To 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). messages will still be shown).
`--srcdir=DIR' '--srcdir=DIR'
Look for the package's source code in directory DIR. Usually 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' '--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names:: Use DIR as the installation prefix. *note Installation Names:: for
for more details, including other options available for fine-tuning more details, including other options available for fine-tuning the
the installation locations. installation locations.
`--no-create' '--no-create'
`-n' '-n'
Run the configure checks, but stop before creating any output Run the configure checks, but stop before creating any output
files. files.
`configure' also accepts some other, not widely useful, options. Run 'configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details. 'configure --help' for more details.

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am. # Makefile.in generated by automake 1.16.5 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2021 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -16,6 +15,61 @@
@SET_MAKE@ @SET_MAKE@
VPATH = @srcdir@ 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__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -35,30 +89,44 @@ POST_UNINSTALL = :
build_triplet = @build@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
subdir = . subdir = .
DIST_COMMON = README $(am__configure_deps) \
$(srcdir)/../../config.guess $(srcdir)/../../config.sub \
$(srcdir)/../../install-sh $(srcdir)/../../ltmain.sh \
$(srcdir)/../../missing $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/portaudiocpp.pc.in \
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4) $(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 \ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = portaudiocpp.pc CONFIG_CLEAN_FILES = portaudiocpp.pc
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
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 =
SOURCES = SOURCES =
DIST_SOURCES = DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
html-recursive info-recursive install-data-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \
install-dvi-recursive install-exec-recursive \ install-data-recursive install-dvi-recursive \
install-html-recursive install-info-recursive \ install-exec-recursive install-html-recursive \
install-pdf-recursive install-ps-recursive install-recursive \ install-info-recursive install-pdf-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \
ps-recursive uninstall-recursive installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \ am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@ -80,23 +148,53 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \ am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(pkgconfigdir)" am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
DATA = $(pkgconfig_DATA) DATA = $(pkgconfig_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ am__recursive_targets = \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ $(RECURSIVE_TARGETS) \
distdir dist dist-all distcheck $(RECURSIVE_CLEAN_TARGETS) \
ETAGS = etags $(am__extra_recursive_targets)
CTAGS = ctags AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope distdir distdir-am 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
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
DIST_SUBDIRS = $(SUBDIRS) 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) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION) distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir) top_distdir = $(distdir)
am__remove_distdir = \ am__remove_distdir = \
{ test ! -d "$(distdir)" \ if test -d "$(distdir)"; then \
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr "$(distdir)"; }; } && rm -rf "$(distdir)" \
|| { sleep 5 && rm -rf "$(distdir)"; }; \
else :; fi
am__post_remove_distdir = $(am__remove_distdir)
am__relativize = \ am__relativize = \
dir0=`pwd`; \ dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@ -124,10 +222,16 @@ am__relativize = \
reldir="$$dir2" reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best 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 distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
AS = @AS@ AS = @AS@
AUTOCONF = @AUTOCONF@ AUTOCONF = @AUTOCONF@
@ -137,8 +241,9 @@ AWK = @AWK@
CC = @CC@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CSCOPE = @CSCOPE@
CTAGS = @CTAGS@
CXX = @CXX@ CXX = @CXX@
CXXCPP = @CXXCPP@ CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@ CXXDEPMODE = @CXXDEPMODE@
@ -154,6 +259,7 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@ EGREP = @EGREP@
ETAGS = @ETAGS@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FGREP = @FGREP@ FGREP = @FGREP@
GREP = @GREP@ GREP = @GREP@
@ -170,9 +276,11 @@ LIBTOOL = @LIBTOOL@
LIPO = @LIPO@ LIPO = @LIPO@
LN_S = @LN_S@ LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@ LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
LT_VERSION_INFO = @LT_VERSION_INFO@ LT_VERSION_INFO = @LT_VERSION_INFO@
MAINT = @MAINT@ MAINT = @MAINT@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@ MKDIR_P = @MKDIR_P@
NM = @NM@ NM = @NM@
NMEDIT = @NMEDIT@ NMEDIT = @NMEDIT@
@ -199,6 +307,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@ abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@ ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@ ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@ -232,7 +341,6 @@ libdir = @libdir@
libexecdir = @libexecdir@ libexecdir = @libexecdir@
localedir = @localedir@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
@ -240,6 +348,7 @@ pdfdir = @pdfdir@
prefix = @prefix@ prefix = @prefix@
program_transform_name = @program_transform_name@ program_transform_name = @program_transform_name@
psdir = @psdir@ psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@ srcdir = @srcdir@
@ -256,30 +365,29 @@ pkgconfig_DATA = portaudiocpp.pc
all: all-recursive all: all-recursive
.SUFFIXES: .SUFFIXES:
am--refresh: am--refresh: Makefile
@: @:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \ @for dep in $?; do \
case '$(am__configure_deps)' in \ case '$(am__configure_deps)' in \
*$$dep*) \ *$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
&& exit 0; \ && exit 0; \
exit 1;; \ exit 1;; \
esac; \ esac; \
done; \ done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
$(am__cd) $(top_srcdir) && \ $(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile $(AUTOMAKE) --gnu Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \ @case '$?' in \
*config.status*) \ *config.status*) \
echo ' $(SHELL) ./config.status'; \ echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \ $(SHELL) ./config.status;; \
*) \ *) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
esac; esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@ -303,8 +411,11 @@ distclean-libtool:
-rm -f libtool config.lt -rm -f libtool config.lt
install-pkgconfigDATA: $(pkgconfig_DATA) install-pkgconfigDATA: $(pkgconfig_DATA)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
fi; \
for p in $$list; do \ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \ echo "$$d$$p"; \
@ -318,27 +429,28 @@ uninstall-pkgconfigDATA:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
# This directory's subdirectories are mostly independent; you can cd # This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile. # into them and run 'make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles, # To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status' # (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run `make'); # (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the `make' command line. # (2) otherwise, pass the desired values on the 'make' command line.
$(RECURSIVE_TARGETS): $(am__recursive_targets):
@fail= failcom='exit 1'; \ @fail=; \
for f in x $$MAKEFLAGS; do \ if $(am__make_keepgoing); then \
case $$f in \ failcom='fail=yes'; \
*=* | --[!k]*);; \ else \
*k*) failcom='fail=yes';; \ failcom='exit 1'; \
esac; \ fi; \
done; \
dot_seen=no; \ dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \ target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \ case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \ echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \ if test "$$subdir" = "."; then \
dot_seen=yes; \ dot_seen=yes; \
@ -353,57 +465,12 @@ $(RECURSIVE_TARGETS):
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail" fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS): ID: $(am__tagged_files)
@fail= failcom='exit 1'; \ $(am__define_uniq_tagged_files); mkid -fID $$unique
for f in x $$MAKEFLAGS; do \ tags: tags-recursive
case $$f in \ TAGS: tags
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \ set x; \
here=`pwd`; \ here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@ -419,32 +486,23 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \ fi; \
done; \ done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \ shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \ test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \ if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \ "$$@" $$unique; \
else \ else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \ $$unique; \
fi; \ fi; \
fi fi
ctags: CTAGS ctags: ctags-recursive
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) CTAGS: ctags
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
unique=`for i in $$list; do \ $(am__define_uniq_tagged_files); \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique $$unique
@ -453,11 +511,35 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \ here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \ && $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here" && gtags -i $(GTAGS_ARGS) "$$here"
cscope: cscope.files
test ! -s cscope.files \
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
clean-cscope:
-rm -f cscope.files
cscope.files: clean-cscope cscopelist
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH 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: $(DISTFILES) distdir-am: $(DISTFILES)
$(am__remove_distdir) $(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)" test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@ -470,14 +552,14 @@ distdir: $(DISTFILES)
*/*) $(MKDIR_P) `echo "$$dist_files" | \ */*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \ sort -u` ;; \
esac; \ esac; \
for file in $$dist_files; do \ for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \ if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \ if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
@ -491,13 +573,10 @@ distdir: $(DISTFILES)
done done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \ if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \ $(am__make_dryrun) \
|| $(MKDIR_P) "$(distdir)/$$subdir" \ || test -d "$(distdir)/$$subdir" \
|| exit 1; \ || $(MKDIR_P) "$(distdir)/$$subdir" \
fi; \ || exit 1; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \ $(am__relativize); \
new_distdir=$$reldir; \ new_distdir=$$reldir; \
@ -525,37 +604,47 @@ distdir: $(DISTFILES)
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)" || chmod -R a+r "$(distdir)"
dist-gzip: distdir dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
$(am__remove_distdir) $(am__post_remove_distdir)
dist-bzip2: distdir dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__remove_distdir) $(am__post_remove_distdir)
dist-lzma: distdir dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__remove_distdir) $(am__post_remove_distdir)
dist-xz: distdir dist-xz: distdir
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__remove_distdir) $(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 dist-tarZ: distdir
@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
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir) $(am__post_remove_distdir)
dist-shar: distdir dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz @echo WARNING: "Support for shar distribution archives is" \
$(am__remove_distdir) "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
$(am__post_remove_distdir)
dist-zip: distdir dist-zip: distdir
-rm -f $(distdir).zip -rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir) zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir) $(am__post_remove_distdir)
dist dist-all: distdir dist dist-all:
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
$(am__remove_distdir) $(am__post_remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then # This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another # it guarantees that the distribution is self-contained by making another
@ -563,33 +652,37 @@ dist dist-all: distdir
distcheck: dist distcheck: dist
case '$(DIST_ARCHIVES)' in \ case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \ *.tar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \ *.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \ *.tar.lz*) \
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
*.tar.xz*) \ *.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \ *.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \ *.shar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \ *.zip*) \
unzip $(distdir).zip ;;\ unzip $(distdir).zip ;;\
*.tar.zst*) \
zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
esac esac
chmod -R a-w $(distdir); chmod a+w $(distdir) chmod -R a-w $(distdir)
mkdir $(distdir)/_build chmod u+w $(distdir)
mkdir $(distdir)/_inst mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
chmod a-w $(distdir) chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \ test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \ && am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \ && $(am__cd) $(distdir)/_build/sub \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \ && ../../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \
--srcdir=../.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
&& $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
@ -610,13 +703,21 @@ distcheck: dist
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \ && cd "$$am__cwd" \
|| exit 1 || exit 1
$(am__remove_distdir) $(am__post_remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \ @(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck: distuninstallcheck:
@$(am__cd) '$(distuninstallcheck_dir)' \ @test -n '$(distuninstallcheck_dir)' || { \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ echo 'ERROR: trying to run $@ with an empty' \
'$$(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
$(am__cd) '$(distuninstallcheck_dir)' || { \
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left after uninstall:" ; \ || { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \ if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \ echo " (check DESTDIR support)"; \
@ -650,10 +751,15 @@ install-am: all-am
installcheck: installcheck-recursive installcheck: installcheck-recursive
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ if test -z '$(STRIP)'; then \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
@ -735,25 +841,26 @@ ps-am:
uninstall-am: uninstall-pkgconfigDATA uninstall-am: uninstall-pkgconfigDATA
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ .MAKE: $(am__recursive_targets) install-am install-strip
install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
all all-am am--refresh check check-am clean clean-generic \ am--refresh check check-am clean clean-cscope clean-generic \
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ clean-libtool cscope cscopelist-am ctags ctags-am dist \
dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
distcheck distclean distclean-generic distclean-libtool \ dist-xz dist-zip dist-zstd distcheck distclean \
distclean-tags distcleancheck distdir distuninstallcheck dvi \ distclean-generic distclean-libtool distclean-tags \
dvi-am html html-am info info-am install install-am \ distcleancheck distdir distuninstallcheck dvi dvi-am html \
install-data install-data-am install-dvi install-dvi-am \ html-am info info-am install install-am install-data \
install-exec install-exec-am install-html install-html-am \ install-data-am install-dvi install-dvi-am install-exec \
install-info install-info-am install-man install-pdf \ install-exec-am install-html install-html-am install-info \
install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ install-info-am install-man install-pdf install-pdf-am \
install-strip installcheck installcheck-am installdirs \ install-pkgconfigDATA install-ps install-ps-am install-strip \
installdirs-am maintainer-clean maintainer-clean-generic \ installcheck installcheck-am installdirs installdirs-am \
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ maintainer-clean maintainer-clean-generic mostlyclean \
ps ps-am tags tags-recursive uninstall uninstall-am \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
uninstall-pkgconfigDATA tags tags-am uninstall uninstall-am uninstall-pkgconfigDATA
.PRECIOUS: Makefile
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.

5571
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

View file

@ -0,0 +1,382 @@
# 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

View file

@ -0,0 +1,618 @@
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])

View file

@ -0,0 +1,618 @@
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])

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am. # Makefile.in generated by automake 1.16.5 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2021 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -16,6 +15,61 @@
@SET_MAKE@ @SET_MAKE@
VPATH = @srcdir@ 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__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -36,11 +90,11 @@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
noinst_PROGRAMS = devs$(EXEEXT) sine$(EXEEXT) noinst_PROGRAMS = devs$(EXEEXT) sine$(EXEEXT)
subdir = bin subdir = bin
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4) $(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
@ -50,30 +104,78 @@ devs_OBJECTS = $(am_devs_OBJECTS)
devs_LDADD = $(LDADD) devs_LDADD = $(LDADD)
devs_DEPENDENCIES = $(LIBDIR)/libportaudiocpp.la \ devs_DEPENDENCIES = $(LIBDIR)/libportaudiocpp.la \
$(top_builddir)/$(PORTAUDIO_ROOT)/lib/libportaudio.la $(top_builddir)/$(PORTAUDIO_ROOT)/lib/libportaudio.la
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
am_sine_OBJECTS = sine.$(OBJEXT) am_sine_OBJECTS = sine.$(OBJEXT)
sine_OBJECTS = $(am_sine_OBJECTS) sine_OBJECTS = $(am_sine_OBJECTS)
sine_LDADD = $(LDADD) sine_LDADD = $(LDADD)
sine_DEPENDENCIES = $(LIBDIR)/libportaudiocpp.la \ sine_DEPENDENCIES = $(LIBDIR)/libportaudiocpp.la \
$(top_builddir)/$(PORTAUDIO_ROOT)/lib/libportaudio.la $(top_builddir)/$(PORTAUDIO_ROOT)/lib/libportaudio.la
depcomp = $(SHELL) $(top_srcdir)/../../depcomp AM_V_P = $(am__v_P_@AM_V@)
am__depfiles_maybe = depfiles am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
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
am__mv = mv -f am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
am__v_CXX_0 = @echo " CXX " $@;
am__v_CXX_1 =
CXXLD = $(CXX) CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(LDFLAGS) -o $@ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
am__v_CXXLD_0 = @echo " CXXLD " $@;
am__v_CXXLD_1 =
SOURCES = $(devs_SOURCES) $(sine_SOURCES) SOURCES = $(devs_SOURCES) $(sine_SOURCES)
DIST_SOURCES = $(devs_SOURCES) $(sine_SOURCES) DIST_SOURCES = $(devs_SOURCES) $(sine_SOURCES)
ETAGS = etags am__can_run_installinfo = \
CTAGS = ctags case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
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
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__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
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
AS = @AS@ AS = @AS@
AUTOCONF = @AUTOCONF@ AUTOCONF = @AUTOCONF@
@ -83,8 +185,9 @@ AWK = @AWK@
CC = @CC@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CSCOPE = @CSCOPE@
CTAGS = @CTAGS@
CXX = @CXX@ CXX = @CXX@
CXXCPP = @CXXCPP@ CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@ CXXDEPMODE = @CXXDEPMODE@
@ -100,6 +203,7 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@ EGREP = @EGREP@
ETAGS = @ETAGS@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FGREP = @FGREP@ FGREP = @FGREP@
GREP = @GREP@ GREP = @GREP@
@ -116,9 +220,11 @@ LIBTOOL = @LIBTOOL@
LIPO = @LIPO@ LIPO = @LIPO@
LN_S = @LN_S@ LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@ LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
LT_VERSION_INFO = @LT_VERSION_INFO@ LT_VERSION_INFO = @LT_VERSION_INFO@
MAINT = @MAINT@ MAINT = @MAINT@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@ MKDIR_P = @MKDIR_P@
NM = @NM@ NM = @NM@
NMEDIT = @NMEDIT@ NMEDIT = @NMEDIT@
@ -145,6 +251,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@ abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@ ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@ ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@ -178,7 +285,6 @@ libdir = @libdir@
libexecdir = @libexecdir@ libexecdir = @libexecdir@
localedir = @localedir@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
@ -186,6 +292,7 @@ pdfdir = @pdfdir@
prefix = @prefix@ prefix = @prefix@
program_transform_name = @program_transform_name@ program_transform_name = @program_transform_name@
psdir = @psdir@ psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@ srcdir = @srcdir@
@ -215,14 +322,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bin/Makefile'; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bin/Makefile'; \
$(am__cd) $(top_srcdir) && \ $(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu bin/Makefile $(AUTOMAKE) --gnu bin/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \ @case '$?' in \
*config.status*) \ *config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \ *) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac; esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@ -242,12 +348,14 @@ clean-noinstPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \ echo " rm -f" $$list; \
rm -f $$list rm -f $$list
devs$(EXEEXT): $(devs_OBJECTS) $(devs_DEPENDENCIES)
devs$(EXEEXT): $(devs_OBJECTS) $(devs_DEPENDENCIES) $(EXTRA_devs_DEPENDENCIES)
@rm -f devs$(EXEEXT) @rm -f devs$(EXEEXT)
$(CXXLINK) $(devs_OBJECTS) $(devs_LDADD) $(LIBS) $(AM_V_CXXLD)$(CXXLINK) $(devs_OBJECTS) $(devs_LDADD) $(LIBS)
sine$(EXEEXT): $(sine_OBJECTS) $(sine_DEPENDENCIES)
sine$(EXEEXT): $(sine_OBJECTS) $(sine_DEPENDENCIES) $(EXTRA_sine_DEPENDENCIES)
@rm -f sine$(EXEEXT) @rm -f sine$(EXEEXT)
$(CXXLINK) $(sine_OBJECTS) $(sine_LDADD) $(LIBS) $(AM_V_CXXLD)$(CXXLINK) $(sine_OBJECTS) $(sine_LDADD) $(LIBS)
mostlyclean-compile: mostlyclean-compile:
-rm -f *.$(OBJEXT) -rm -f *.$(OBJEXT)
@ -255,57 +363,63 @@ mostlyclean-compile:
distclean-compile: distclean-compile:
-rm -f *.tab.c -rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/devs.Po@am__quote@ @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@ @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)
.cxx.o: .cxx.o:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
.cxx.obj: .cxx.obj:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cxx.lo: .cxx.lo:
@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
devs.o: $(BINDIR)/devs.cxx devs.o: $(BINDIR)/devs.cxx
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT devs.o -MD -MP -MF $(DEPDIR)/devs.Tpo -c -o devs.o `test -f '$(BINDIR)/devs.cxx' || echo '$(srcdir)/'`$(BINDIR)/devs.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT devs.o -MD -MP -MF $(DEPDIR)/devs.Tpo -c -o devs.o `test -f '$(BINDIR)/devs.cxx' || echo '$(srcdir)/'`$(BINDIR)/devs.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/devs.Tpo $(DEPDIR)/devs.Po @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/devs.Tpo $(DEPDIR)/devs.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(BINDIR)/devs.cxx' object='devs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(BINDIR)/devs.cxx' object='devs.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o devs.o `test -f '$(BINDIR)/devs.cxx' || echo '$(srcdir)/'`$(BINDIR)/devs.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o devs.o `test -f '$(BINDIR)/devs.cxx' || echo '$(srcdir)/'`$(BINDIR)/devs.cxx
devs.obj: $(BINDIR)/devs.cxx devs.obj: $(BINDIR)/devs.cxx
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT devs.obj -MD -MP -MF $(DEPDIR)/devs.Tpo -c -o devs.obj `if test -f '$(BINDIR)/devs.cxx'; then $(CYGPATH_W) '$(BINDIR)/devs.cxx'; else $(CYGPATH_W) '$(srcdir)/$(BINDIR)/devs.cxx'; fi` @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT devs.obj -MD -MP -MF $(DEPDIR)/devs.Tpo -c -o devs.obj `if test -f '$(BINDIR)/devs.cxx'; then $(CYGPATH_W) '$(BINDIR)/devs.cxx'; else $(CYGPATH_W) '$(srcdir)/$(BINDIR)/devs.cxx'; fi`
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/devs.Tpo $(DEPDIR)/devs.Po @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/devs.Tpo $(DEPDIR)/devs.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(BINDIR)/devs.cxx' object='devs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(BINDIR)/devs.cxx' object='devs.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o devs.obj `if test -f '$(BINDIR)/devs.cxx'; then $(CYGPATH_W) '$(BINDIR)/devs.cxx'; else $(CYGPATH_W) '$(srcdir)/$(BINDIR)/devs.cxx'; fi` @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o devs.obj `if test -f '$(BINDIR)/devs.cxx'; then $(CYGPATH_W) '$(BINDIR)/devs.cxx'; else $(CYGPATH_W) '$(srcdir)/$(BINDIR)/devs.cxx'; fi`
sine.o: $(BINDIR)/sine.cxx sine.o: $(BINDIR)/sine.cxx
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sine.o -MD -MP -MF $(DEPDIR)/sine.Tpo -c -o sine.o `test -f '$(BINDIR)/sine.cxx' || echo '$(srcdir)/'`$(BINDIR)/sine.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sine.o -MD -MP -MF $(DEPDIR)/sine.Tpo -c -o sine.o `test -f '$(BINDIR)/sine.cxx' || echo '$(srcdir)/'`$(BINDIR)/sine.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/sine.Tpo $(DEPDIR)/sine.Po @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sine.Tpo $(DEPDIR)/sine.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(BINDIR)/sine.cxx' object='sine.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(BINDIR)/sine.cxx' object='sine.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sine.o `test -f '$(BINDIR)/sine.cxx' || echo '$(srcdir)/'`$(BINDIR)/sine.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sine.o `test -f '$(BINDIR)/sine.cxx' || echo '$(srcdir)/'`$(BINDIR)/sine.cxx
sine.obj: $(BINDIR)/sine.cxx sine.obj: $(BINDIR)/sine.cxx
@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sine.obj -MD -MP -MF $(DEPDIR)/sine.Tpo -c -o sine.obj `if test -f '$(BINDIR)/sine.cxx'; then $(CYGPATH_W) '$(BINDIR)/sine.cxx'; else $(CYGPATH_W) '$(srcdir)/$(BINDIR)/sine.cxx'; fi` @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sine.obj -MD -MP -MF $(DEPDIR)/sine.Tpo -c -o sine.obj `if test -f '$(BINDIR)/sine.cxx'; then $(CYGPATH_W) '$(BINDIR)/sine.cxx'; else $(CYGPATH_W) '$(srcdir)/$(BINDIR)/sine.cxx'; fi`
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/sine.Tpo $(DEPDIR)/sine.Po @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sine.Tpo $(DEPDIR)/sine.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(BINDIR)/sine.cxx' object='sine.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(BINDIR)/sine.cxx' object='sine.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sine.obj `if test -f '$(BINDIR)/sine.cxx'; then $(CYGPATH_W) '$(BINDIR)/sine.cxx'; else $(CYGPATH_W) '$(srcdir)/$(BINDIR)/sine.cxx'; fi` @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sine.obj `if test -f '$(BINDIR)/sine.cxx'; then $(CYGPATH_W) '$(BINDIR)/sine.cxx'; else $(CYGPATH_W) '$(srcdir)/$(BINDIR)/sine.cxx'; fi`
mostlyclean-libtool: mostlyclean-libtool:
-rm -f *.lo -rm -f *.lo
@ -313,26 +427,15 @@ mostlyclean-libtool:
clean-libtool: clean-libtool:
-rm -rf .libs _libs -rm -rf .libs _libs
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ID: $(am__tagged_files)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); mkid -fID $$unique
unique=`for i in $$list; do \ tags: tags-am
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ TAGS: tags
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(TAGS_FILES) $(LISP)
set x; \ set x; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \ shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \ test -n "$$unique" || unique=$$empty_fix; \
@ -344,15 +447,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \ $$unique; \
fi; \ fi; \
fi fi
ctags: CTAGS ctags: ctags-am
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) CTAGS: ctags
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
unique=`for i in $$list; do \ $(am__define_uniq_tagged_files); \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique $$unique
@ -361,11 +460,28 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \ here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \ && $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here" && gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir: $(DISTFILES) distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \ list='$(DISTFILES)'; \
@ -409,10 +525,15 @@ install-am: all-am
installcheck: installcheck-am installcheck: installcheck-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ if test -z '$(STRIP)'; then \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
@ -430,7 +551,8 @@ clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
mostlyclean-am mostlyclean-am
distclean: distclean-am distclean: distclean-am
-rm -rf ./$(DEPDIR) -rm -f ./$(DEPDIR)/devs.Po
-rm -f ./$(DEPDIR)/sine.Po
-rm -f Makefile -rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \ distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags distclean-tags
@ -476,7 +598,8 @@ install-ps-am:
installcheck-am: installcheck-am:
maintainer-clean: maintainer-clean-am maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR) -rm -f ./$(DEPDIR)/devs.Po
-rm -f ./$(DEPDIR)/sine.Po
-rm -f Makefile -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic maintainer-clean-am: distclean-am maintainer-clean-generic
@ -497,18 +620,21 @@ uninstall-am:
.MAKE: install-am install-strip .MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
clean-libtool clean-noinstPROGRAMS ctags distclean \ clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \
distclean-compile distclean-generic distclean-libtool \ ctags ctags-am distclean distclean-compile distclean-generic \
distclean-tags distdir dvi dvi-am html html-am info info-am \ distclean-libtool distclean-tags distdir dvi dvi-am html \
install install-am install-data install-data-am install-dvi \ html-am info info-am install install-am install-data \
install-dvi-am install-exec install-exec-am install-html \ install-data-am install-dvi install-dvi-am install-exec \
install-html-am install-info install-info-am install-man \ install-exec-am install-html install-html-am install-info \
install-pdf install-pdf-am install-ps install-ps-am \ install-info-am install-man install-pdf install-pdf-am \
install-strip installcheck installcheck-am installdirs \ install-ps install-ps-am install-strip installcheck \
maintainer-clean maintainer-clean-generic mostlyclean \ installcheck-am installdirs maintainer-clean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ maintainer-clean-generic mostlyclean mostlyclean-compile \
pdf pdf-am ps ps-am tags uninstall 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. # Tell versions [3.59,3.63) of GNU make to not export all variables.

Binary file not shown.

View file

@ -1,248 +1,248 @@
# Microsoft Developer Studio Project File - Name="devs_example" - Package Owner=<4> # Microsoft Developer Studio Project File - Name="devs_example" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00 # Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT ** # ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103 # TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=devs_example - Win32 Debug CFG=devs_example - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run !MESSAGE use the Export Makefile command and run
!MESSAGE !MESSAGE
!MESSAGE NMAKE /f "devs_example.mak". !MESSAGE NMAKE /f "devs_example.mak".
!MESSAGE !MESSAGE
!MESSAGE You can specify a configuration when running NMAKE !MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE !MESSAGE
!MESSAGE NMAKE /f "devs_example.mak" CFG="devs_example - Win32 Debug" !MESSAGE NMAKE /f "devs_example.mak" CFG="devs_example - Win32 Debug"
!MESSAGE !MESSAGE
!MESSAGE Possible choices for configuration are: !MESSAGE Possible choices for configuration are:
!MESSAGE !MESSAGE
!MESSAGE "devs_example - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "devs_example - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "devs_example - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE "devs_example - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE !MESSAGE
# Begin Project # Begin Project
# PROP AllowPerConfigDependencies 0 # PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "" # PROP Scc_ProjName ""
# PROP Scc_LocalPath "" # PROP Scc_LocalPath ""
CPP=cl.exe CPP=cl.exe
RSC=rc.exe RSC=rc.exe
!IF "$(CFG)" == "devs_example - Win32 Release" !IF "$(CFG)" == "devs_example - Win32 Release"
# PROP BASE Use_MFC 0 # PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0 # PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release" # PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release" # PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir "" # PROP BASE Target_Dir ""
# PROP Use_MFC 0 # PROP Use_MFC 0
# PROP Use_Debug_Libraries 0 # PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release" # PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release" # PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /GX /O2 /I "../../include/" /I "../../../../include/" /I "../../../../src/common/" /I "../../../../../asiosdk2/common/" /I "../../../../../asiosdk2/host/" /I "../../../../../asiosdk2/host/pc/" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c # ADD CPP /nologo /MTd /W3 /GX /O2 /I "../../include/" /I "../../../../include/" /I "../../../../src/common/" /I "../../../../../asiosdk2/common/" /I "../../../../../asiosdk2/host/" /I "../../../../../asiosdk2/host/pc/" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
# ADD BASE RSC /l 0x809 /d "NDEBUG" # ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG" # ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe BSC32=bscmake.exe
# ADD BASE BSC32 /nologo # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 portaudiocpp-vc6-r.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../bin/devs_example.exe" /libpath:"../../lib" # ADD LINK32 portaudiocpp-vc6-r.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../bin/devs_example.exe" /libpath:"../../lib"
!ELSEIF "$(CFG)" == "devs_example - Win32 Debug" !ELSEIF "$(CFG)" == "devs_example - Win32 Debug"
# PROP BASE Use_MFC 0 # PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1 # PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug" # PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug" # PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir "" # PROP BASE Target_Dir ""
# PROP Use_MFC 0 # PROP Use_MFC 0
# PROP Use_Debug_Libraries 1 # PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug" # PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug" # PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include/" /I "../../../../include/" /I "../../../../src/common/" /I "../../../../../asiosdk2/common/" /I "../../../../../asiosdk2/host/" /I "../../../../../asiosdk2/host/pc/" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include/" /I "../../../../include/" /I "../../../../src/common/" /I "../../../../../asiosdk2/common/" /I "../../../../../asiosdk2/host/" /I "../../../../../asiosdk2/host/pc/" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
# ADD BASE RSC /l 0x809 /d "_DEBUG" # ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG" # ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe BSC32=bscmake.exe
# ADD BASE BSC32 /nologo # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 portaudiocpp-vc6-d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../bin/devs_example.exe" /pdbtype:sept /libpath:"../../lib" # ADD LINK32 portaudiocpp-vc6-d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../bin/devs_example.exe" /pdbtype:sept /libpath:"../../lib"
!ENDIF !ENDIF
# Begin Target # Begin Target
# Name "devs_example - Win32 Release" # Name "devs_example - Win32 Release"
# Name "devs_example - Win32 Debug" # Name "devs_example - Win32 Debug"
# Begin Group "Source Files" # Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\pa_asio\iasiothiscallresolver.cpp SOURCE=..\..\..\..\pa_asio\iasiothiscallresolver.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_allocation.c SOURCE=..\..\..\..\src\common\pa_allocation.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\pa_asio\pa_asio.cpp SOURCE=..\..\..\..\pa_asio\pa_asio.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_converters.c SOURCE=..\..\..\..\src\common\pa_converters.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_cpuload.c SOURCE=..\..\..\..\src\common\pa_cpuload.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_dither.c SOURCE=..\..\..\..\src\common\pa_dither.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_front.c SOURCE=..\..\..\..\src\common\pa_front.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_process.c SOURCE=..\..\..\..\src\common\pa_process.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\hostapi\skeleton\pa_hostapi_skeleton.c SOURCE=..\..\..\..\src\hostapi\skeleton\pa_hostapi_skeleton.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_stream.c SOURCE=..\..\..\..\src\common\pa_stream.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_trace.c SOURCE=..\..\..\..\src\common\pa_trace.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds.c SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.c SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\os\win\pa_win_hostapis.c SOURCE=..\..\..\..\src\os\win\pa_win_hostapis.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\os\win\pa_win_util.c SOURCE=..\..\..\..\src\os\win\pa_win_util.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\hostapi\wmme\pa_win_wmme.c SOURCE=..\..\..\..\src\hostapi\wmme\pa_win_wmme.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\os\win\pa_x86_plain_converters.c SOURCE=..\..\..\..\src\os\win\pa_x86_plain_converters.c
# End Source File # End Source File
# End Group # End Group
# Begin Group "Header Files" # Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl" # PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\pa_asio\iasiothiscallresolver.h SOURCE=..\..\..\..\pa_asio\iasiothiscallresolver.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_allocation.h SOURCE=..\..\..\..\src\common\pa_allocation.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_converters.h SOURCE=..\..\..\..\src\common\pa_converters.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_cpuload.h SOURCE=..\..\..\..\src\common\pa_cpuload.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_dither.h SOURCE=..\..\..\..\src\common\pa_dither.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_endianness.h SOURCE=..\..\..\..\src\common\pa_endianness.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_hostapi.h SOURCE=..\..\..\..\src\common\pa_hostapi.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_process.h SOURCE=..\..\..\..\src\common\pa_process.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_stream.h SOURCE=..\..\..\..\src\common\pa_stream.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_trace.h SOURCE=..\..\..\..\src\common\pa_trace.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_types.h SOURCE=..\..\..\..\src\common\pa_types.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_util.h SOURCE=..\..\..\..\src\common\pa_util.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.h SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\os\win\pa_x86_plain_converters.h SOURCE=..\..\..\..\src\os\win\pa_x86_plain_converters.h
# End Source File # End Source File
# End Group # End Group
# Begin Group "Resource Files" # Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group # End Group
# Begin Group "Example Files" # Begin Group "Example Files"
# PROP Default_Filter "" # PROP Default_Filter ""
# Begin Source File # Begin Source File
SOURCE=..\..\example\devs.cxx SOURCE=..\..\example\devs.cxx
# End Source File # End Source File
# End Group # End Group
# Begin Group "ASIO 2 SDK" # Begin Group "ASIO 2 SDK"
# PROP Default_Filter "" # PROP Default_Filter ""
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\..\asiosdk2\common\asio.cpp SOURCE=..\..\..\..\..\asiosdk2\common\asio.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\..\asiosdk2\host\asiodrivers.cpp SOURCE=..\..\..\..\..\asiosdk2\host\asiodrivers.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\..\asiosdk2\host\pc\asiolist.cpp SOURCE=..\..\..\..\..\asiosdk2\host\pc\asiolist.cpp
# End Source File # End Source File
# End Group # End Group
# End Target # End Target
# End Project # End Project

View file

@ -1,44 +1,44 @@
Microsoft Developer Studio Workspace File, Format Version 6.00 Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
############################################################################### ###############################################################################
Project: "devs_example"=".\devs_example.dsp" - Package Owner=<4> Project: "devs_example"=".\devs_example.dsp" - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
}}} }}}
Package=<4> Package=<4>
{{{ {{{
Begin Project Dependency Begin Project Dependency
Project_Dep_Name static_library Project_Dep_Name static_library
End Project Dependency End Project Dependency
}}} }}}
############################################################################### ###############################################################################
Project: "static_library"=".\static_library.dsp" - Package Owner=<4> Project: "static_library"=".\static_library.dsp" - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
}}} }}}
Package=<4> Package=<4>
{{{ {{{
}}} }}}
############################################################################### ###############################################################################
Global: Global:
Package=<5> Package=<5>
{{{ {{{
}}} }}}
Package=<3> Package=<3>
{{{ {{{
}}} }}}
############################################################################### ###############################################################################

View file

@ -1,252 +1,252 @@
# Microsoft Developer Studio Project File - Name="sine_example" - Package Owner=<4> # Microsoft Developer Studio Project File - Name="sine_example" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00 # Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT ** # ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103 # TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=sine_example - Win32 Debug CFG=sine_example - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run !MESSAGE use the Export Makefile command and run
!MESSAGE !MESSAGE
!MESSAGE NMAKE /f "sine_example.mak". !MESSAGE NMAKE /f "sine_example.mak".
!MESSAGE !MESSAGE
!MESSAGE You can specify a configuration when running NMAKE !MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE !MESSAGE
!MESSAGE NMAKE /f "sine_example.mak" CFG="sine_example - Win32 Debug" !MESSAGE NMAKE /f "sine_example.mak" CFG="sine_example - Win32 Debug"
!MESSAGE !MESSAGE
!MESSAGE Possible choices for configuration are: !MESSAGE Possible choices for configuration are:
!MESSAGE !MESSAGE
!MESSAGE "sine_example - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "sine_example - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "sine_example - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE "sine_example - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE !MESSAGE
# Begin Project # Begin Project
# PROP AllowPerConfigDependencies 0 # PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "" # PROP Scc_ProjName ""
# PROP Scc_LocalPath "" # PROP Scc_LocalPath ""
CPP=cl.exe CPP=cl.exe
RSC=rc.exe RSC=rc.exe
!IF "$(CFG)" == "sine_example - Win32 Release" !IF "$(CFG)" == "sine_example - Win32 Release"
# PROP BASE Use_MFC 0 # PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0 # PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release" # PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release" # PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir "" # PROP BASE Target_Dir ""
# PROP Use_MFC 0 # PROP Use_MFC 0
# PROP Use_Debug_Libraries 0 # PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release" # PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release" # PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /GX /O2 /I "../../include/" /I "../../../../include/" /I "../../../../src/common/" /I "../../../../../asiosdk2/common/" /I "../../../../../asiosdk2/host/" /I "../../../../../asiosdk2/host/pc/" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c # ADD CPP /nologo /MTd /W3 /GX /O2 /I "../../include/" /I "../../../../include/" /I "../../../../src/common/" /I "../../../../../asiosdk2/common/" /I "../../../../../asiosdk2/host/" /I "../../../../../asiosdk2/host/pc/" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
# ADD BASE RSC /l 0x809 /d "NDEBUG" # ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG" # ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe BSC32=bscmake.exe
# ADD BASE BSC32 /nologo # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 portaudiocpp-vc6-r.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../bin/sine_example.exe" /libpath:"../../lib" # ADD LINK32 portaudiocpp-vc6-r.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../bin/sine_example.exe" /libpath:"../../lib"
!ELSEIF "$(CFG)" == "sine_example - Win32 Debug" !ELSEIF "$(CFG)" == "sine_example - Win32 Debug"
# PROP BASE Use_MFC 0 # PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1 # PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug" # PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug" # PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir "" # PROP BASE Target_Dir ""
# PROP Use_MFC 0 # PROP Use_MFC 0
# PROP Use_Debug_Libraries 1 # PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug" # PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug" # PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include/" /I "../../../../include/" /I "../../../../src/common/" /I "../../../../../asiosdk2/common/" /I "../../../../../asiosdk2/host/" /I "../../../../../asiosdk2/host/pc/" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include/" /I "../../../../include/" /I "../../../../src/common/" /I "../../../../../asiosdk2/common/" /I "../../../../../asiosdk2/host/" /I "../../../../../asiosdk2/host/pc/" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
# ADD BASE RSC /l 0x809 /d "_DEBUG" # ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG" # ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe BSC32=bscmake.exe
# ADD BASE BSC32 /nologo # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo # ADD BSC32 /nologo
LINK32=link.exe LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 portaudiocpp-vc6-d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../bin/sine_example.exe" /pdbtype:sept /libpath:"../../lib" # ADD LINK32 portaudiocpp-vc6-d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../bin/sine_example.exe" /pdbtype:sept /libpath:"../../lib"
!ENDIF !ENDIF
# Begin Target # Begin Target
# Name "sine_example - Win32 Release" # Name "sine_example - Win32 Release"
# Name "sine_example - Win32 Debug" # Name "sine_example - Win32 Debug"
# Begin Group "Header Files" # Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl" # PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\pa_asio\iasiothiscallresolver.h SOURCE=..\..\..\..\pa_asio\iasiothiscallresolver.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_allocation.h SOURCE=..\..\..\..\src\common\pa_allocation.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_converters.h SOURCE=..\..\..\..\src\common\pa_converters.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_cpuload.h SOURCE=..\..\..\..\src\common\pa_cpuload.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_dither.h SOURCE=..\..\..\..\src\common\pa_dither.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_endianness.h SOURCE=..\..\..\..\src\common\pa_endianness.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_hostapi.h SOURCE=..\..\..\..\src\common\pa_hostapi.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_process.h SOURCE=..\..\..\..\src\common\pa_process.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_stream.h SOURCE=..\..\..\..\src\common\pa_stream.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_trace.h SOURCE=..\..\..\..\src\common\pa_trace.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_types.h SOURCE=..\..\..\..\src\common\pa_types.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_util.h SOURCE=..\..\..\..\src\common\pa_util.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.h SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\os\win\pa_x86_plain_converters.h SOURCE=..\..\..\..\src\os\win\pa_x86_plain_converters.h
# End Source File # End Source File
# End Group # End Group
# Begin Group "Resource Files" # Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group # End Group
# Begin Group "Example Files" # Begin Group "Example Files"
# PROP Default_Filter "" # PROP Default_Filter ""
# Begin Source File # Begin Source File
SOURCE=..\..\example\sine.cxx SOURCE=..\..\example\sine.cxx
# End Source File # End Source File
# End Group # End Group
# Begin Group "Source Files" # Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\pa_asio\iasiothiscallresolver.cpp SOURCE=..\..\..\..\pa_asio\iasiothiscallresolver.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_allocation.c SOURCE=..\..\..\..\src\common\pa_allocation.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\pa_asio\pa_asio.cpp SOURCE=..\..\..\..\pa_asio\pa_asio.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_converters.c SOURCE=..\..\..\..\src\common\pa_converters.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_cpuload.c SOURCE=..\..\..\..\src\common\pa_cpuload.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_dither.c SOURCE=..\..\..\..\src\common\pa_dither.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_front.c SOURCE=..\..\..\..\src\common\pa_front.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_process.c SOURCE=..\..\..\..\src\common\pa_process.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\hostapi\skeleton\pa_hostapi_skeleton.c SOURCE=..\..\..\..\src\hostapi\skeleton\pa_hostapi_skeleton.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_stream.c SOURCE=..\..\..\..\src\common\pa_stream.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\common\pa_trace.c SOURCE=..\..\..\..\src\common\pa_trace.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds.c SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.c SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\os\win\pa_win_hostapis.c SOURCE=..\..\..\..\src\os\win\pa_win_hostapis.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\os\win\pa_win_util.c SOURCE=..\..\..\..\src\os\win\pa_win_util.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\hostapi\wasapi\pa_win_wasapi.cpp SOURCE=..\..\..\..\src\hostapi\wasapi\pa_win_wasapi.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\hostapi\wmme\pa_win_wmme.c SOURCE=..\..\..\..\src\hostapi\wmme\pa_win_wmme.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\src\os\win\pa_x86_plain_converters.c SOURCE=..\..\..\..\src\os\win\pa_x86_plain_converters.c
# End Source File # End Source File
# End Group # End Group
# Begin Group "ASIO 2 SDK" # Begin Group "ASIO 2 SDK"
# PROP Default_Filter "" # PROP Default_Filter ""
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\..\asiosdk2\common\asio.cpp SOURCE=..\..\..\..\..\asiosdk2\common\asio.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\..\asiosdk2\host\asiodrivers.cpp SOURCE=..\..\..\..\..\asiosdk2\host\asiodrivers.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\..\..\..\asiosdk2\host\pc\asiolist.cpp SOURCE=..\..\..\..\..\asiosdk2\host\pc\asiolist.cpp
# End Source File # End Source File
# End Group # End Group
# End Target # End Target
# End Project # End Project

View file

@ -1,44 +1,44 @@
Microsoft Developer Studio Workspace File, Format Version 6.00 Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
############################################################################### ###############################################################################
Project: "sine_example"=".\sine_example.dsp" - Package Owner=<4> Project: "sine_example"=".\sine_example.dsp" - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
}}} }}}
Package=<4> Package=<4>
{{{ {{{
Begin Project Dependency Begin Project Dependency
Project_Dep_Name static_library Project_Dep_Name static_library
End Project Dependency End Project Dependency
}}} }}}
############################################################################### ###############################################################################
Project: "static_library"=".\static_library.dsp" - Package Owner=<4> Project: "static_library"=".\static_library.dsp" - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
}}} }}}
Package=<4> Package=<4>
{{{ {{{
}}} }}}
############################################################################### ###############################################################################
Global: Global:
Package=<5> Package=<5>
{{{ {{{
}}} }}}
Package=<3> Package=<3>
{{{ {{{
}}} }}}
############################################################################### ###############################################################################

View file

@ -1,395 +1,395 @@
# Microsoft Developer Studio Project File - Name="static_library" - Package Owner=<4> # Microsoft Developer Studio Project File - Name="static_library" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00 # Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT ** # ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104 # TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=static_library - Win32 Debug CFG=static_library - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run !MESSAGE use the Export Makefile command and run
!MESSAGE !MESSAGE
!MESSAGE NMAKE /f "static_library.mak". !MESSAGE NMAKE /f "static_library.mak".
!MESSAGE !MESSAGE
!MESSAGE You can specify a configuration when running NMAKE !MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE !MESSAGE
!MESSAGE NMAKE /f "static_library.mak" CFG="static_library - Win32 Debug" !MESSAGE NMAKE /f "static_library.mak" CFG="static_library - Win32 Debug"
!MESSAGE !MESSAGE
!MESSAGE Possible choices for configuration are: !MESSAGE Possible choices for configuration are:
!MESSAGE !MESSAGE
!MESSAGE "static_library - Win32 Release" (based on "Win32 (x86) Static Library") !MESSAGE "static_library - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "static_library - Win32 Debug" (based on "Win32 (x86) Static Library") !MESSAGE "static_library - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE !MESSAGE
# Begin Project # Begin Project
# PROP AllowPerConfigDependencies 0 # PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName "" # PROP Scc_ProjName ""
# PROP Scc_LocalPath "" # PROP Scc_LocalPath ""
CPP=cl.exe CPP=cl.exe
RSC=rc.exe RSC=rc.exe
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
# PROP BASE Use_MFC 0 # PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0 # PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release" # PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release" # PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir "" # PROP BASE Target_Dir ""
# PROP Use_MFC 0 # PROP Use_MFC 0
# PROP Use_Debug_Libraries 0 # PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release" # PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release" # PROP Intermediate_Dir "Release"
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MTd /W3 /GX /O2 /I "../../include/" /I "../../../../include/" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c # ADD CPP /nologo /MTd /W3 /GX /O2 /I "../../include/" /I "../../../../include/" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
# ADD BASE RSC /l 0x809 /d "NDEBUG" # ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG" # ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe BSC32=bscmake.exe
# ADD BASE BSC32 /nologo # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo # ADD BSC32 /nologo
LIB32=link.exe -lib LIB32=link.exe -lib
# ADD BASE LIB32 /nologo # ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"../../lib/portaudiocpp-vc6-r.lib" # ADD LIB32 /nologo /out:"../../lib/portaudiocpp-vc6-r.lib"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# PROP BASE Use_MFC 0 # PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1 # PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug" # PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug" # PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir "" # PROP BASE Target_Dir ""
# PROP Use_MFC 0 # PROP Use_MFC 0
# PROP Use_Debug_Libraries 1 # PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug" # PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug" # PROP Intermediate_Dir "Debug"
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include/" /I "../../../../include/" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c # ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include/" /I "../../../../include/" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
# ADD BASE RSC /l 0x809 /d "_DEBUG" # ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG" # ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe BSC32=bscmake.exe
# ADD BASE BSC32 /nologo # ADD BASE BSC32 /nologo
# ADD BSC32 /nologo # ADD BSC32 /nologo
LIB32=link.exe -lib LIB32=link.exe -lib
# ADD BASE LIB32 /nologo # ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"../../lib/portaudiocpp-vc6-d.lib" # ADD LIB32 /nologo /out:"../../lib/portaudiocpp-vc6-d.lib"
!ENDIF !ENDIF
# Begin Target # Begin Target
# Name "static_library - Win32 Release" # Name "static_library - Win32 Release"
# Name "static_library - Win32 Debug" # Name "static_library - Win32 Debug"
# Begin Group "Source Files" # Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\AsioDeviceAdapter.cxx SOURCE=..\..\source\portaudiocpp\AsioDeviceAdapter.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\BlockingStream.cxx SOURCE=..\..\source\portaudiocpp\BlockingStream.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\CallbackInterface.cxx SOURCE=..\..\source\portaudiocpp\CallbackInterface.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\CallbackStream.cxx SOURCE=..\..\source\portaudiocpp\CallbackStream.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\CFunCallbackStream.cxx SOURCE=..\..\source\portaudiocpp\CFunCallbackStream.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\CppFunCallbackStream.cxx SOURCE=..\..\source\portaudiocpp\CppFunCallbackStream.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\Device.cxx SOURCE=..\..\source\portaudiocpp\Device.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\DirectionSpecificStreamParameters.cxx SOURCE=..\..\source\portaudiocpp\DirectionSpecificStreamParameters.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\Exception.cxx SOURCE=..\..\source\portaudiocpp\Exception.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\HostApi.cxx SOURCE=..\..\source\portaudiocpp\HostApi.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\InterfaceCallbackStream.cxx SOURCE=..\..\source\portaudiocpp\InterfaceCallbackStream.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\MemFunCallbackStream.cxx SOURCE=..\..\source\portaudiocpp\MemFunCallbackStream.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\Stream.cxx SOURCE=..\..\source\portaudiocpp\Stream.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\StreamParameters.cxx SOURCE=..\..\source\portaudiocpp\StreamParameters.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\System.cxx SOURCE=..\..\source\portaudiocpp\System.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\SystemDeviceIterator.cxx SOURCE=..\..\source\portaudiocpp\SystemDeviceIterator.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\source\portaudiocpp\SystemHostApiIterator.cxx SOURCE=..\..\source\portaudiocpp\SystemHostApiIterator.cxx
!IF "$(CFG)" == "static_library - Win32 Release" !IF "$(CFG)" == "static_library - Win32 Release"
!ELSEIF "$(CFG)" == "static_library - Win32 Debug" !ELSEIF "$(CFG)" == "static_library - Win32 Debug"
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
!ENDIF !ENDIF
# End Source File # End Source File
# End Group # End Group
# Begin Group "Header Files" # Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl" # PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\AsioDeviceAdapter.hxx SOURCE=..\..\include\portaudiocpp\AsioDeviceAdapter.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\AutoSystem.hxx SOURCE=..\..\include\portaudiocpp\AutoSystem.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\BlockingStream.hxx SOURCE=..\..\include\portaudiocpp\BlockingStream.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\CallbackInterface.hxx SOURCE=..\..\include\portaudiocpp\CallbackInterface.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\CallbackStream.hxx SOURCE=..\..\include\portaudiocpp\CallbackStream.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\CFunCallbackStream.hxx SOURCE=..\..\include\portaudiocpp\CFunCallbackStream.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\CppFunCallbackStream.hxx SOURCE=..\..\include\portaudiocpp\CppFunCallbackStream.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\Device.hxx SOURCE=..\..\include\portaudiocpp\Device.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\DirectionSpecificStreamParameters.hxx SOURCE=..\..\include\portaudiocpp\DirectionSpecificStreamParameters.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\Exception.hxx SOURCE=..\..\include\portaudiocpp\Exception.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\HostApi.hxx SOURCE=..\..\include\portaudiocpp\HostApi.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\InterfaceCallbackStream.hxx SOURCE=..\..\include\portaudiocpp\InterfaceCallbackStream.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\MemFunCallbackStream.hxx SOURCE=..\..\include\portaudiocpp\MemFunCallbackStream.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\PortAudioCpp.hxx SOURCE=..\..\include\portaudiocpp\PortAudioCpp.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\SampleDataFormat.hxx SOURCE=..\..\include\portaudiocpp\SampleDataFormat.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\Stream.hxx SOURCE=..\..\include\portaudiocpp\Stream.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\StreamParameters.hxx SOURCE=..\..\include\portaudiocpp\StreamParameters.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\System.hxx SOURCE=..\..\include\portaudiocpp\System.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\SystemDeviceIterator.hxx SOURCE=..\..\include\portaudiocpp\SystemDeviceIterator.hxx
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\include\portaudiocpp\SystemHostApiIterator.hxx SOURCE=..\..\include\portaudiocpp\SystemHostApiIterator.hxx
# End Source File # End Source File
# End Group # End Group
# End Target # End Target
# End Project # End Project

View file

@ -1,29 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00 Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
############################################################################### ###############################################################################
Project: "static_library"=".\static_library.dsp" - Package Owner=<4> Project: "static_library"=".\static_library.dsp" - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
}}} }}}
Package=<4> Package=<4>
{{{ {{{
}}} }}}
############################################################################### ###############################################################################
Global: Global:
Package=<5> Package=<5>
{{{ {{{
}}} }}}
Package=<3> Package=<3>
{{{ {{{
}}} }}}
############################################################################### ###############################################################################

View file

@ -1,30 +1,30 @@
Microsoft Visual Studio Solution File, Format Version 8.00 Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "devs_example", "devs_example.vcproj", "{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "devs_example", "devs_example.vcproj", "{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{D18EA0C9-8C65-441D-884C-55EB43A84F2A} = {D18EA0C9-8C65-441D-884C-55EB43A84F2A} {D18EA0C9-8C65-441D-884C-55EB43A84F2A} = {D18EA0C9-8C65-441D-884C-55EB43A84F2A}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "static_library", "static_library.vcproj", "{D18EA0C9-8C65-441D-884C-55EB43A84F2A}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "static_library", "static_library.vcproj", "{D18EA0C9-8C65-441D-884C-55EB43A84F2A}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
EndProjectSection EndProjectSection
EndProject EndProject
Global Global
GlobalSection(SolutionConfiguration) = preSolution GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug Debug = Debug
Release = Release Release = Release
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution GlobalSection(ProjectConfiguration) = postSolution
{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Debug.ActiveCfg = Debug|Win32 {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Debug.ActiveCfg = Debug|Win32
{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Debug.Build.0 = Debug|Win32 {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Debug.Build.0 = Debug|Win32
{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Release.ActiveCfg = Release|Win32 {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Release.ActiveCfg = Release|Win32
{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Release.Build.0 = Release|Win32 {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Release.Build.0 = Release|Win32
{D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.ActiveCfg = Debug|Win32 {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.ActiveCfg = Debug|Win32
{D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.Build.0 = Debug|Win32 {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.Build.0 = Debug|Win32
{D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.ActiveCfg = Release|Win32 {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.ActiveCfg = Release|Win32
{D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.Build.0 = Release|Win32 {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.Build.0 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View file

@ -1,195 +1,195 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="7.10" Version="7.10"
Name="devs_example" Name="devs_example"
ProjectGUID="{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}" ProjectGUID="{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}"
Keyword="Win32Proj"> Keyword="Win32Proj">
<Platforms> <Platforms>
<Platform <Platform
Name="Win32"/> Name="Win32"/>
</Platforms> </Platforms>
<Configurations> <Configurations>
<Configuration <Configuration
Name="Debug|Win32" Name="Debug|Win32"
OutputDirectory="Debug" OutputDirectory="Debug"
IntermediateDirectory="Debug" IntermediateDirectory="Debug"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="2"> CharacterSet="2">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="../../include/;../../../../include/;../../../../src/common/;../../../../../asiosdk2/common/,../../../../../asiosdk2/host/,../../../../../asiosdk2/host/pc/" AdditionalIncludeDirectories="../../include/;../../../../include/;../../../../src/common/;../../../../../asiosdk2/common/,../../../../../asiosdk2/host/,../../../../../asiosdk2/host/pc/"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="TRUE" MinimalRebuild="TRUE"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="3" RuntimeLibrary="3"
UsePrecompiledHeader="0" UsePrecompiledHeader="0"
ProgramDataBaseFileName="$(IntDir)/vc71.pdb" ProgramDataBaseFileName="$(IntDir)/vc71.pdb"
WarningLevel="3" WarningLevel="3"
Detect64BitPortabilityProblems="TRUE" Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/> DebugInformationFormat="3"/>
<Tool <Tool
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="../../lib/portaudiocpp-vc7_1-d.lib" AdditionalDependencies="../../lib/portaudiocpp-vc7_1-d.lib"
OutputFile="../../bin/devs_example.exe" OutputFile="../../bin/devs_example.exe"
LinkIncremental="2" LinkIncremental="2"
GenerateDebugInformation="TRUE" GenerateDebugInformation="TRUE"
ProgramDatabaseFile="$(OutDir)/devs_example.pdb" ProgramDatabaseFile="$(OutDir)/devs_example.pdb"
SubSystem="1" SubSystem="1"
TargetMachine="1"/> TargetMachine="1"/>
<Tool <Tool
Name="VCMIDLTool"/> Name="VCMIDLTool"/>
<Tool <Tool
Name="VCPostBuildEventTool"/> Name="VCPostBuildEventTool"/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCPreBuildEventTool"/>
<Tool <Tool
Name="VCPreLinkEventTool"/> Name="VCPreLinkEventTool"/>
<Tool <Tool
Name="VCResourceCompilerTool"/> Name="VCResourceCompilerTool"/>
<Tool <Tool
Name="VCWebServiceProxyGeneratorTool"/> Name="VCWebServiceProxyGeneratorTool"/>
<Tool <Tool
Name="VCXMLDataGeneratorTool"/> Name="VCXMLDataGeneratorTool"/>
<Tool <Tool
Name="VCWebDeploymentTool"/> Name="VCWebDeploymentTool"/>
<Tool <Tool
Name="VCManagedWrapperGeneratorTool"/> Name="VCManagedWrapperGeneratorTool"/>
<Tool <Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|Win32" Name="Release|Win32"
OutputDirectory="Release" OutputDirectory="Release"
IntermediateDirectory="Release" IntermediateDirectory="Release"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="2"> CharacterSet="2">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../../include/;../../../../include/;../../../../src/common/;../../../../../asiosdk2/common/,../../../../../asiosdk2/host/,../../../../../asiosdk2/host/pc/" AdditionalIncludeDirectories="../../include/;../../../../include/;../../../../src/common/;../../../../../asiosdk2/common/,../../../../../asiosdk2/host/,../../../../../asiosdk2/host/pc/"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2" RuntimeLibrary="2"
UsePrecompiledHeader="0" UsePrecompiledHeader="0"
ProgramDataBaseFileName="$(IntDir)/vc71.pdb" ProgramDataBaseFileName="$(IntDir)/vc71.pdb"
WarningLevel="3" WarningLevel="3"
Detect64BitPortabilityProblems="TRUE" Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/> DebugInformationFormat="3"/>
<Tool <Tool
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="../../lib/portaudiocpp-vc7_1-r.lib" AdditionalDependencies="../../lib/portaudiocpp-vc7_1-r.lib"
OutputFile="../../bin/devs_example.exe" OutputFile="../../bin/devs_example.exe"
LinkIncremental="1" LinkIncremental="1"
GenerateDebugInformation="TRUE" GenerateDebugInformation="TRUE"
SubSystem="1" SubSystem="1"
OptimizeReferences="2" OptimizeReferences="2"
EnableCOMDATFolding="2" EnableCOMDATFolding="2"
TargetMachine="1"/> TargetMachine="1"/>
<Tool <Tool
Name="VCMIDLTool"/> Name="VCMIDLTool"/>
<Tool <Tool
Name="VCPostBuildEventTool"/> Name="VCPostBuildEventTool"/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCPreBuildEventTool"/>
<Tool <Tool
Name="VCPreLinkEventTool"/> Name="VCPreLinkEventTool"/>
<Tool <Tool
Name="VCResourceCompilerTool"/> Name="VCResourceCompilerTool"/>
<Tool <Tool
Name="VCWebServiceProxyGeneratorTool"/> Name="VCWebServiceProxyGeneratorTool"/>
<Tool <Tool
Name="VCXMLDataGeneratorTool"/> Name="VCXMLDataGeneratorTool"/>
<Tool <Tool
Name="VCWebDeploymentTool"/> Name="VCWebDeploymentTool"/>
<Tool <Tool
Name="VCManagedWrapperGeneratorTool"/> Name="VCManagedWrapperGeneratorTool"/>
<Tool <Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration> </Configuration>
</Configurations> </Configurations>
<References> <References>
</References> </References>
<Files> <Files>
<Filter <Filter
Name="Files" Name="Files"
Filter=""> Filter="">
<File <File
RelativePath="..\..\example\devs.cxx"> RelativePath="..\..\example\devs.cxx">
</File> </File>
</Filter> </Filter>
<Filter <Filter
Name="PortAudio v19 Files" Name="PortAudio v19 Files"
Filter=""> Filter="">
<File <File
RelativePath="..\..\..\..\src\common\pa_allocation.c"> RelativePath="..\..\..\..\src\common\pa_allocation.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\hostapi\asio\pa_asio.cpp"> RelativePath="..\..\..\..\src\hostapi\asio\pa_asio.cpp">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_converters.c"> RelativePath="..\..\..\..\src\common\pa_converters.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_cpuload.c"> RelativePath="..\..\..\..\src\common\pa_cpuload.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_dither.c"> RelativePath="..\..\..\..\src\common\pa_dither.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_front.c"> RelativePath="..\..\..\..\src\common\pa_front.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_process.c"> RelativePath="..\..\..\..\src\common\pa_process.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\hostapi\skeleton\pa_hostapi_skeleton.c"> RelativePath="..\..\..\..\src\hostapi\skeleton\pa_hostapi_skeleton.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_stream.c"> RelativePath="..\..\..\..\src\common\pa_stream.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_trace.c"> RelativePath="..\..\..\..\src\common\pa_trace.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\hostapi\dsound\pa_win_ds.c"> RelativePath="..\..\..\..\src\hostapi\dsound\pa_win_ds.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.c"> RelativePath="..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\os\win\pa_win_hostapis.c"> RelativePath="..\..\..\..\src\os\win\pa_win_hostapis.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\os\win\pa_win_util.c"> RelativePath="..\..\..\..\src\os\win\pa_win_util.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\hostapi\wasapi\pa_win_wasapi.cpp"> RelativePath="..\..\..\..\src\hostapi\wasapi\pa_win_wasapi.cpp">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\hostapi\wmme\pa_win_wmme.c"> RelativePath="..\..\..\..\src\hostapi\wmme\pa_win_wmme.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\os\win\pa_x86_plain_converters.c"> RelativePath="..\..\..\..\src\os\win\pa_x86_plain_converters.c">
</File> </File>
</Filter> </Filter>
<Filter <Filter
Name="ASIO 2 SDK Files" Name="ASIO 2 SDK Files"
Filter=""> Filter="">
<File <File
RelativePath="..\..\..\..\..\asiosdk2\common\asio.cpp"> RelativePath="..\..\..\..\..\asiosdk2\common\asio.cpp">
</File> </File>
<File <File
RelativePath="..\..\..\..\..\asiosdk2\host\asiodrivers.cpp"> RelativePath="..\..\..\..\..\asiosdk2\host\asiodrivers.cpp">
</File> </File>
<File <File
RelativePath="..\..\..\..\..\asiosdk2\host\pc\asiolist.cpp"> RelativePath="..\..\..\..\..\asiosdk2\host\pc\asiolist.cpp">
</File> </File>
</Filter> </Filter>
</Files> </Files>
<Globals> <Globals>
</Globals> </Globals>
</VisualStudioProject> </VisualStudioProject>

View file

@ -1,30 +1,30 @@
Microsoft Visual Studio Solution File, Format Version 8.00 Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sine_example", "sine_example.vcproj", "{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sine_example", "sine_example.vcproj", "{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{D18EA0C9-8C65-441D-884C-55EB43A84F2A} = {D18EA0C9-8C65-441D-884C-55EB43A84F2A} {D18EA0C9-8C65-441D-884C-55EB43A84F2A} = {D18EA0C9-8C65-441D-884C-55EB43A84F2A}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "static_library", "static_library.vcproj", "{D18EA0C9-8C65-441D-884C-55EB43A84F2A}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "static_library", "static_library.vcproj", "{D18EA0C9-8C65-441D-884C-55EB43A84F2A}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
EndProjectSection EndProjectSection
EndProject EndProject
Global Global
GlobalSection(SolutionConfiguration) = preSolution GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug Debug = Debug
Release = Release Release = Release
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution GlobalSection(ProjectConfiguration) = postSolution
{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Debug.ActiveCfg = Debug|Win32 {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Debug.ActiveCfg = Debug|Win32
{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Debug.Build.0 = Debug|Win32 {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Debug.Build.0 = Debug|Win32
{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Release.ActiveCfg = Release|Win32 {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Release.ActiveCfg = Release|Win32
{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Release.Build.0 = Release|Win32 {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Release.Build.0 = Release|Win32
{D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.ActiveCfg = Debug|Win32 {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.ActiveCfg = Debug|Win32
{D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.Build.0 = Debug|Win32 {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.Build.0 = Debug|Win32
{D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.ActiveCfg = Release|Win32 {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.ActiveCfg = Release|Win32
{D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.Build.0 = Release|Win32 {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.Build.0 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View file

@ -1,327 +1,327 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="7.10" Version="7.10"
Name="sine_example" Name="sine_example"
ProjectGUID="{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}" ProjectGUID="{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}"
Keyword="Win32Proj"> Keyword="Win32Proj">
<Platforms> <Platforms>
<Platform <Platform
Name="Win32"/> Name="Win32"/>
</Platforms> </Platforms>
<Configurations> <Configurations>
<Configuration <Configuration
Name="Debug|Win32" Name="Debug|Win32"
OutputDirectory="Debug" OutputDirectory="Debug"
IntermediateDirectory="Debug" IntermediateDirectory="Debug"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="2"> CharacterSet="2">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="../../include/;../../../../include/;../../../../src/common/;../../../../../asiosdk2/common/,../../../../../asiosdk2/host/,../../../../../asiosdk2/host/pc/" AdditionalIncludeDirectories="../../include/;../../../../include/;../../../../src/common/;../../../../../asiosdk2/common/,../../../../../asiosdk2/host/,../../../../../asiosdk2/host/pc/"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="TRUE" MinimalRebuild="TRUE"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="3" RuntimeLibrary="3"
UsePrecompiledHeader="0" UsePrecompiledHeader="0"
ProgramDataBaseFileName="$(IntDir)/vc71.pdb" ProgramDataBaseFileName="$(IntDir)/vc71.pdb"
WarningLevel="3" WarningLevel="3"
Detect64BitPortabilityProblems="TRUE" Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/> DebugInformationFormat="3"/>
<Tool <Tool
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="../../lib/portaudiocpp-vc7_1-d.lib" AdditionalDependencies="../../lib/portaudiocpp-vc7_1-d.lib"
OutputFile="../../bin/sine_example.exe" OutputFile="../../bin/sine_example.exe"
LinkIncremental="2" LinkIncremental="2"
GenerateDebugInformation="TRUE" GenerateDebugInformation="TRUE"
ProgramDatabaseFile="$(OutDir)/sine_example.pdb" ProgramDatabaseFile="$(OutDir)/sine_example.pdb"
SubSystem="1" SubSystem="1"
TargetMachine="1"/> TargetMachine="1"/>
<Tool <Tool
Name="VCMIDLTool"/> Name="VCMIDLTool"/>
<Tool <Tool
Name="VCPostBuildEventTool"/> Name="VCPostBuildEventTool"/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCPreBuildEventTool"/>
<Tool <Tool
Name="VCPreLinkEventTool"/> Name="VCPreLinkEventTool"/>
<Tool <Tool
Name="VCResourceCompilerTool"/> Name="VCResourceCompilerTool"/>
<Tool <Tool
Name="VCWebServiceProxyGeneratorTool"/> Name="VCWebServiceProxyGeneratorTool"/>
<Tool <Tool
Name="VCXMLDataGeneratorTool"/> Name="VCXMLDataGeneratorTool"/>
<Tool <Tool
Name="VCWebDeploymentTool"/> Name="VCWebDeploymentTool"/>
<Tool <Tool
Name="VCManagedWrapperGeneratorTool"/> Name="VCManagedWrapperGeneratorTool"/>
<Tool <Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|Win32" Name="Release|Win32"
OutputDirectory="Release" OutputDirectory="Release"
IntermediateDirectory="Release" IntermediateDirectory="Release"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="2"> CharacterSet="2">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../../include/;../../../../include/;../../../../src/common/;../../../../../asiosdk2/common/,../../../../../asiosdk2/host/,../../../../../asiosdk2/host/pc/" AdditionalIncludeDirectories="../../include/;../../../../include/;../../../../src/common/;../../../../../asiosdk2/common/,../../../../../asiosdk2/host/,../../../../../asiosdk2/host/pc/"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2" RuntimeLibrary="2"
UsePrecompiledHeader="0" UsePrecompiledHeader="0"
ProgramDataBaseFileName="$(IntDir)/vc71.pdb" ProgramDataBaseFileName="$(IntDir)/vc71.pdb"
WarningLevel="3" WarningLevel="3"
Detect64BitPortabilityProblems="TRUE" Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/> DebugInformationFormat="3"/>
<Tool <Tool
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="../../lib/portaudiocpp-vc7_1-r.lib" AdditionalDependencies="../../lib/portaudiocpp-vc7_1-r.lib"
OutputFile="../../bin/sine_example.exe" OutputFile="../../bin/sine_example.exe"
LinkIncremental="1" LinkIncremental="1"
GenerateDebugInformation="TRUE" GenerateDebugInformation="TRUE"
SubSystem="1" SubSystem="1"
OptimizeReferences="2" OptimizeReferences="2"
EnableCOMDATFolding="2" EnableCOMDATFolding="2"
TargetMachine="1"/> TargetMachine="1"/>
<Tool <Tool
Name="VCMIDLTool"/> Name="VCMIDLTool"/>
<Tool <Tool
Name="VCPostBuildEventTool"/> Name="VCPostBuildEventTool"/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCPreBuildEventTool"/>
<Tool <Tool
Name="VCPreLinkEventTool"/> Name="VCPreLinkEventTool"/>
<Tool <Tool
Name="VCResourceCompilerTool"/> Name="VCResourceCompilerTool"/>
<Tool <Tool
Name="VCWebServiceProxyGeneratorTool"/> Name="VCWebServiceProxyGeneratorTool"/>
<Tool <Tool
Name="VCXMLDataGeneratorTool"/> Name="VCXMLDataGeneratorTool"/>
<Tool <Tool
Name="VCWebDeploymentTool"/> Name="VCWebDeploymentTool"/>
<Tool <Tool
Name="VCManagedWrapperGeneratorTool"/> Name="VCManagedWrapperGeneratorTool"/>
<Tool <Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration> </Configuration>
</Configurations> </Configurations>
<References> <References>
</References> </References>
<Files> <Files>
<Filter <Filter
Name="Files" Name="Files"
Filter=""> Filter="">
<File <File
RelativePath="..\..\example\sine.cxx"> RelativePath="..\..\example\sine.cxx">
</File> </File>
</Filter> </Filter>
<Filter <Filter
Name="PortAudio v19 Files" Name="PortAudio v19 Files"
Filter=""> Filter="">
<File <File
RelativePath="..\..\..\..\src\common\pa_allocation.c"> RelativePath="..\..\..\..\src\common\pa_allocation.c">
<FileConfiguration <FileConfiguration
Name="Debug|Win32"> Name="Debug|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|Win32"> Name="Release|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\..\src\hostapi\asio\pa_asio.cpp"> RelativePath="..\..\..\..\src\hostapi\asio\pa_asio.cpp">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_converters.c"> RelativePath="..\..\..\..\src\common\pa_converters.c">
<FileConfiguration <FileConfiguration
Name="Debug|Win32"> Name="Debug|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|Win32"> Name="Release|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_cpuload.c"> RelativePath="..\..\..\..\src\common\pa_cpuload.c">
<FileConfiguration <FileConfiguration
Name="Debug|Win32"> Name="Debug|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|Win32"> Name="Release|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_dither.c"> RelativePath="..\..\..\..\src\common\pa_dither.c">
<FileConfiguration <FileConfiguration
Name="Debug|Win32"> Name="Debug|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|Win32"> Name="Release|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_front.c"> RelativePath="..\..\..\..\src\common\pa_front.c">
<FileConfiguration <FileConfiguration
Name="Debug|Win32"> Name="Debug|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|Win32"> Name="Release|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_process.c"> RelativePath="..\..\..\..\src\common\pa_process.c">
<FileConfiguration <FileConfiguration
Name="Debug|Win32"> Name="Debug|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|Win32"> Name="Release|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\..\src\hostapi\skeleton\pa_hostapi_skeleton.c"> RelativePath="..\..\..\..\src\hostapi\skeleton\pa_hostapi_skeleton.c">
<FileConfiguration <FileConfiguration
Name="Debug|Win32"> Name="Debug|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|Win32"> Name="Release|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_stream.c"> RelativePath="..\..\..\..\src\common\pa_stream.c">
<FileConfiguration <FileConfiguration
Name="Debug|Win32"> Name="Debug|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|Win32"> Name="Release|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\..\src\common\pa_trace.c"> RelativePath="..\..\..\..\src\common\pa_trace.c">
<FileConfiguration <FileConfiguration
Name="Debug|Win32"> Name="Debug|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|Win32"> Name="Release|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\..\src\hostapi\dsound\pa_win_ds.c"> RelativePath="..\..\..\..\src\hostapi\dsound\pa_win_ds.c">
<FileConfiguration <FileConfiguration
Name="Debug|Win32"> Name="Debug|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|Win32"> Name="Release|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.c"> RelativePath="..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\os\win\pa_win_hostapis.c"> RelativePath="..\..\..\..\src\os\win\pa_win_hostapis.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\os\win\pa_win_util.c"> RelativePath="..\..\..\..\src\os\win\pa_win_util.c">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\hostapi\wasapi\pa_win_wasapi.cpp"> RelativePath="..\..\..\..\src\hostapi\wasapi\pa_win_wasapi.cpp">
</File> </File>
<File <File
RelativePath="..\..\..\..\src\hostapi\wmme\pa_win_wmme.c"> RelativePath="..\..\..\..\src\hostapi\wmme\pa_win_wmme.c">
<FileConfiguration <FileConfiguration
Name="Debug|Win32"> Name="Debug|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|Win32"> Name="Release|Win32">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/> ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration> </FileConfiguration>
</File> </File>
<File <File
RelativePath="..\..\..\..\src\os\win\pa_x86_plain_converters.c"> RelativePath="..\..\..\..\src\os\win\pa_x86_plain_converters.c">
</File> </File>
</Filter> </Filter>
<Filter <Filter
Name="ASIO 2 SDK Files" Name="ASIO 2 SDK Files"
Filter=""> Filter="">
<File <File
RelativePath="..\..\..\..\..\asiosdk2\common\asio.cpp"> RelativePath="..\..\..\..\..\asiosdk2\common\asio.cpp">
</File> </File>
<File <File
RelativePath="..\..\..\..\..\asiosdk2\host\asiodrivers.cpp"> RelativePath="..\..\..\..\..\asiosdk2\host\asiodrivers.cpp">
</File> </File>
<File <File
RelativePath="..\..\..\..\..\asiosdk2\host\pc\asiolist.cpp"> RelativePath="..\..\..\..\..\asiosdk2\host\pc\asiolist.cpp">
</File> </File>
</Filter> </Filter>
</Files> </Files>
<Globals> <Globals>
</Globals> </Globals>
</VisualStudioProject> </VisualStudioProject>

View file

@ -1,21 +1,21 @@
Microsoft Visual Studio Solution File, Format Version 8.00 Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "static_library", "static_library.vcproj", "{D18EA0C9-8C65-441D-884C-55EB43A84F2A}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "static_library", "static_library.vcproj", "{D18EA0C9-8C65-441D-884C-55EB43A84F2A}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
EndProjectSection EndProjectSection
EndProject EndProject
Global Global
GlobalSection(SolutionConfiguration) = preSolution GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug Debug = Debug
Release = Release Release = Release
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution GlobalSection(ProjectConfiguration) = postSolution
{D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.ActiveCfg = Debug|Win32 {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.ActiveCfg = Debug|Win32
{D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.Build.0 = Debug|Win32 {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.Build.0 = Debug|Win32
{D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.ActiveCfg = Release|Win32 {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.ActiveCfg = Release|Win32
{D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.Build.0 = Release|Win32 {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.Build.0 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View file

@ -1,218 +1,218 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="7.10" Version="7.10"
Name="static_library" Name="static_library"
ProjectGUID="{D18EA0C9-8C65-441D-884C-55EB43A84F2A}" ProjectGUID="{D18EA0C9-8C65-441D-884C-55EB43A84F2A}"
Keyword="Win32Proj"> Keyword="Win32Proj">
<Platforms> <Platforms>
<Platform <Platform
Name="Win32"/> Name="Win32"/>
</Platforms> </Platforms>
<Configurations> <Configurations>
<Configuration <Configuration
Name="Debug|Win32" Name="Debug|Win32"
OutputDirectory="../../lib/" OutputDirectory="../../lib/"
IntermediateDirectory="Debug" IntermediateDirectory="Debug"
ConfigurationType="4" ConfigurationType="4"
CharacterSet="2"> CharacterSet="2">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0" Optimization="0"
AdditionalIncludeDirectories="../../include/;../../../../include/" AdditionalIncludeDirectories="../../include/;../../../../include/"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB" PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
MinimalRebuild="TRUE" MinimalRebuild="TRUE"
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="3" RuntimeLibrary="3"
UsePrecompiledHeader="0" UsePrecompiledHeader="0"
ProgramDataBaseFileName="$(IntDir)/vc71.pdb" ProgramDataBaseFileName="$(IntDir)/vc71.pdb"
WarningLevel="3" WarningLevel="3"
Detect64BitPortabilityProblems="TRUE" Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/> DebugInformationFormat="3"/>
<Tool <Tool
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLibrarianTool" Name="VCLibrarianTool"
OutputFile="$(OutDir)/portaudiocpp-vc7_1-d.lib"/> OutputFile="$(OutDir)/portaudiocpp-vc7_1-d.lib"/>
<Tool <Tool
Name="VCMIDLTool"/> Name="VCMIDLTool"/>
<Tool <Tool
Name="VCPostBuildEventTool"/> Name="VCPostBuildEventTool"/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCPreBuildEventTool"/>
<Tool <Tool
Name="VCPreLinkEventTool"/> Name="VCPreLinkEventTool"/>
<Tool <Tool
Name="VCResourceCompilerTool"/> Name="VCResourceCompilerTool"/>
<Tool <Tool
Name="VCWebServiceProxyGeneratorTool"/> Name="VCWebServiceProxyGeneratorTool"/>
<Tool <Tool
Name="VCXMLDataGeneratorTool"/> Name="VCXMLDataGeneratorTool"/>
<Tool <Tool
Name="VCManagedWrapperGeneratorTool"/> Name="VCManagedWrapperGeneratorTool"/>
<Tool <Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|Win32" Name="Release|Win32"
OutputDirectory="../../lib/" OutputDirectory="../../lib/"
IntermediateDirectory="Release" IntermediateDirectory="Release"
ConfigurationType="4" ConfigurationType="4"
CharacterSet="2"> CharacterSet="2">
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
AdditionalIncludeDirectories="../../include/;../../../../include/" AdditionalIncludeDirectories="../../include/;../../../../include/"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB" PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
RuntimeLibrary="2" RuntimeLibrary="2"
UsePrecompiledHeader="0" UsePrecompiledHeader="0"
ProgramDataBaseFileName="$(IntDir)/vc71.pdb" ProgramDataBaseFileName="$(IntDir)/vc71.pdb"
WarningLevel="3" WarningLevel="3"
Detect64BitPortabilityProblems="TRUE" Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/> DebugInformationFormat="3"/>
<Tool <Tool
Name="VCCustomBuildTool"/> Name="VCCustomBuildTool"/>
<Tool <Tool
Name="VCLibrarianTool" Name="VCLibrarianTool"
OutputFile="$(OutDir)/portaudiocpp-vc7_1-r.lib"/> OutputFile="$(OutDir)/portaudiocpp-vc7_1-r.lib"/>
<Tool <Tool
Name="VCMIDLTool"/> Name="VCMIDLTool"/>
<Tool <Tool
Name="VCPostBuildEventTool"/> Name="VCPostBuildEventTool"/>
<Tool <Tool
Name="VCPreBuildEventTool"/> Name="VCPreBuildEventTool"/>
<Tool <Tool
Name="VCPreLinkEventTool"/> Name="VCPreLinkEventTool"/>
<Tool <Tool
Name="VCResourceCompilerTool"/> Name="VCResourceCompilerTool"/>
<Tool <Tool
Name="VCWebServiceProxyGeneratorTool"/> Name="VCWebServiceProxyGeneratorTool"/>
<Tool <Tool
Name="VCXMLDataGeneratorTool"/> Name="VCXMLDataGeneratorTool"/>
<Tool <Tool
Name="VCManagedWrapperGeneratorTool"/> Name="VCManagedWrapperGeneratorTool"/>
<Tool <Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/> Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration> </Configuration>
</Configurations> </Configurations>
<References> <References>
</References> </References>
<Files> <Files>
<Filter <Filter
Name="Files" Name="Files"
Filter=""> Filter="">
<File <File
RelativePath="..\..\source\portaudiocpp\AsioDeviceAdapter.cxx"> RelativePath="..\..\source\portaudiocpp\AsioDeviceAdapter.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\AsioDeviceAdapter.hxx"> RelativePath="..\..\include\portaudiocpp\AsioDeviceAdapter.hxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\AutoSystem.hxx"> RelativePath="..\..\include\portaudiocpp\AutoSystem.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\BlockingStream.cxx"> RelativePath="..\..\source\portaudiocpp\BlockingStream.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\BlockingStream.hxx"> RelativePath="..\..\include\portaudiocpp\BlockingStream.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\CallbackInterface.cxx"> RelativePath="..\..\source\portaudiocpp\CallbackInterface.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\CallbackInterface.hxx"> RelativePath="..\..\include\portaudiocpp\CallbackInterface.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\CallbackStream.cxx"> RelativePath="..\..\source\portaudiocpp\CallbackStream.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\CallbackStream.hxx"> RelativePath="..\..\include\portaudiocpp\CallbackStream.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\CFunCallbackStream.cxx"> RelativePath="..\..\source\portaudiocpp\CFunCallbackStream.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\CFunCallbackStream.hxx"> RelativePath="..\..\include\portaudiocpp\CFunCallbackStream.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\CppFunCallbackStream.cxx"> RelativePath="..\..\source\portaudiocpp\CppFunCallbackStream.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\CppFunCallbackStream.hxx"> RelativePath="..\..\include\portaudiocpp\CppFunCallbackStream.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\Device.cxx"> RelativePath="..\..\source\portaudiocpp\Device.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\Device.hxx"> RelativePath="..\..\include\portaudiocpp\Device.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\DirectionSpecificStreamParameters.cxx"> RelativePath="..\..\source\portaudiocpp\DirectionSpecificStreamParameters.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\DirectionSpecificStreamParameters.hxx"> RelativePath="..\..\include\portaudiocpp\DirectionSpecificStreamParameters.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\Exception.cxx"> RelativePath="..\..\source\portaudiocpp\Exception.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\Exception.hxx"> RelativePath="..\..\include\portaudiocpp\Exception.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\HostApi.cxx"> RelativePath="..\..\source\portaudiocpp\HostApi.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\HostApi.hxx"> RelativePath="..\..\include\portaudiocpp\HostApi.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\InterfaceCallbackStream.cxx"> RelativePath="..\..\source\portaudiocpp\InterfaceCallbackStream.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\InterfaceCallbackStream.hxx"> RelativePath="..\..\include\portaudiocpp\InterfaceCallbackStream.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\MemFunCallbackStream.cxx"> RelativePath="..\..\source\portaudiocpp\MemFunCallbackStream.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\MemFunCallbackStream.hxx"> RelativePath="..\..\include\portaudiocpp\MemFunCallbackStream.hxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\PortAudioCpp.hxx"> RelativePath="..\..\include\portaudiocpp\PortAudioCpp.hxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\SampleDataFormat.hxx"> RelativePath="..\..\include\portaudiocpp\SampleDataFormat.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\Stream.cxx"> RelativePath="..\..\source\portaudiocpp\Stream.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\Stream.hxx"> RelativePath="..\..\include\portaudiocpp\Stream.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\StreamParameters.cxx"> RelativePath="..\..\source\portaudiocpp\StreamParameters.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\StreamParameters.hxx"> RelativePath="..\..\include\portaudiocpp\StreamParameters.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\System.cxx"> RelativePath="..\..\source\portaudiocpp\System.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\System.hxx"> RelativePath="..\..\include\portaudiocpp\System.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\SystemDeviceIterator.cxx"> RelativePath="..\..\source\portaudiocpp\SystemDeviceIterator.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\SystemDeviceIterator.hxx"> RelativePath="..\..\include\portaudiocpp\SystemDeviceIterator.hxx">
</File> </File>
<File <File
RelativePath="..\..\source\portaudiocpp\SystemHostApiIterator.cxx"> RelativePath="..\..\source\portaudiocpp\SystemHostApiIterator.cxx">
</File> </File>
<File <File
RelativePath="..\..\include\portaudiocpp\SystemHostApiIterator.hxx"> RelativePath="..\..\include\portaudiocpp\SystemHostApiIterator.hxx">
</File> </File>
</Filter> </Filter>
</Files> </Files>
<Globals> <Globals>
</Globals> </Globals>
</VisualStudioProject> </VisualStudioProject>

348
bindings/cpp/compile Executable file
View file

@ -0,0 +1,348 @@
#! /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 Executable file

Binary file not shown.

BIN
bindings/cpp/config.sub vendored Executable file

Binary file not shown.

BIN
bindings/cpp/configure vendored

Binary file not shown.

19376
bindings/cpp/configure~ Normal file

File diff suppressed because it is too large Load diff

BIN
bindings/cpp/depcomp Executable file

Binary file not shown.

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am. # Makefile.in generated by automake 1.16.5 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2021 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -15,6 +14,61 @@
@SET_MAKE@ @SET_MAKE@
VPATH = @srcdir@ 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__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -34,19 +88,39 @@ POST_UNINSTALL = :
build_triplet = @build@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
subdir = doc subdir = doc
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4) $(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
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 =
SOURCES = SOURCES =
DIST_SOURCES = DIST_SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (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) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
AS = @AS@ AS = @AS@
AUTOCONF = @AUTOCONF@ AUTOCONF = @AUTOCONF@
@ -56,8 +130,9 @@ AWK = @AWK@
CC = @CC@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CSCOPE = @CSCOPE@
CTAGS = @CTAGS@
CXX = @CXX@ CXX = @CXX@
CXXCPP = @CXXCPP@ CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@ CXXDEPMODE = @CXXDEPMODE@
@ -73,6 +148,7 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@ EGREP = @EGREP@
ETAGS = @ETAGS@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FGREP = @FGREP@ FGREP = @FGREP@
GREP = @GREP@ GREP = @GREP@
@ -89,9 +165,11 @@ LIBTOOL = @LIBTOOL@
LIPO = @LIPO@ LIPO = @LIPO@
LN_S = @LN_S@ LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@ LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
LT_VERSION_INFO = @LT_VERSION_INFO@ LT_VERSION_INFO = @LT_VERSION_INFO@
MAINT = @MAINT@ MAINT = @MAINT@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@ MKDIR_P = @MKDIR_P@
NM = @NM@ NM = @NM@
NMEDIT = @NMEDIT@ NMEDIT = @NMEDIT@
@ -118,6 +196,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@ abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@ ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@ ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@ -151,7 +230,6 @@ libdir = @libdir@
libexecdir = @libexecdir@ libexecdir = @libexecdir@
localedir = @localedir@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
@ -159,6 +237,7 @@ pdfdir = @pdfdir@
prefix = @prefix@ prefix = @prefix@
program_transform_name = @program_transform_name@ program_transform_name = @program_transform_name@
psdir = @psdir@ psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@ srcdir = @srcdir@
@ -183,14 +262,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
$(am__cd) $(top_srcdir) && \ $(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/Makefile $(AUTOMAKE) --gnu doc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \ @case '$?' in \
*config.status*) \ *config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \ *) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac; esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@ -207,14 +285,16 @@ mostlyclean-libtool:
clean-libtool: clean-libtool:
-rm -rf .libs _libs -rm -rf .libs _libs
tags: TAGS tags TAGS:
TAGS:
ctags: CTAGS ctags CTAGS:
CTAGS:
cscope cscopelist:
distdir: $(DISTFILES) distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \ list='$(DISTFILES)'; \
@ -258,10 +338,15 @@ install-am: all-am
installcheck: installcheck-am installcheck: installcheck-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ if test -z '$(STRIP)'; then \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
@ -342,15 +427,18 @@ uninstall-am:
.MAKE: install-am install-strip .MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \ .PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \ cscopelist-am ctags-am distclean distclean-generic \
dvi-am html html-am info info-am install install-am \ distclean-libtool distdir dvi dvi-am html html-am info info-am \
install-data install-data-am install-dvi install-dvi-am \ install install-am install-data install-data-am install-dvi \
install-exec install-exec-am install-html install-html-am \ install-dvi-am install-exec install-exec-am install-html \
install-info install-info-am install-man install-pdf \ install-html-am install-info install-info-am install-man \
install-pdf-am install-ps install-ps-am install-strip \ install-pdf install-pdf-am install-ps install-ps-am \
installcheck installcheck-am installdirs maintainer-clean \ install-strip installcheck installcheck-am installdirs \
maintainer-clean-generic mostlyclean mostlyclean-generic \ maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-libtool pdf pdf-am ps ps-am uninstall 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 #INCLUDES = -I$(srcdir)/$(PACPP_ROOT)/include -I$(top_srcdir)/include

View file

@ -1,34 +1,34 @@
GNU/Linux: GNU/Linux:
---------- ----------
1) Download and install a recent version of Doxygen (preferably version 1.3.3 or 1) Download and install a recent version of Doxygen (preferably version 1.3.3 or
later). See http://www.doxygen.org/. later). See http://www.doxygen.org/.
2) Download and install a recent version of GraphViz. See 2) Download and install a recent version of GraphViz. See
http://www.research.att.com/sw/tools/graphviz/. http://www.research.att.com/sw/tools/graphviz/.
3) Run ``doxygen config.doxy.linux'' in this directory or load and generate the file 3) Run ``doxygen config.doxy.linux'' in this directory or load and generate the file
config.doxy.linux from the Doxywizard application. Or alternatively ``make docs'' can config.doxy.linux from the Doxywizard application. Or alternatively ``make docs'' can
be run from the build/gnu folder. be run from the build/gnu folder.
The generated html documentation will be placed in /doc/api_reference/. To open The generated html documentation will be placed in /doc/api_reference/. To open
the main page of the documentation, open the file /doc/api_reference/index.html in the main page of the documentation, open the file /doc/api_reference/index.html in
an html browser. an html browser.
Windows: Windows:
-------- --------
1) Download and install a recent Doxygen (preferably version 1.3.4 or later). See 1) Download and install a recent Doxygen (preferably version 1.3.4 or later). See
http://www.doxygen.org/. http://www.doxygen.org/.
2) Download and install a recent version of GraphViz. See 2) Download and install a recent version of GraphViz. See
http://www.research.att.com/sw/tools/graphviz/. http://www.research.att.com/sw/tools/graphviz/.
3) If needed, edit the config.doxy file in an ascii text editor so that 3) If needed, edit the config.doxy file in an ascii text editor so that
``DOT_PATH'' variable points to the folder where GraphViz is installed. ``DOT_PATH'' variable points to the folder where GraphViz is installed.
4) Run ``doxygen config.doxy'' in this directory or load and generate the file 4) Run ``doxygen config.doxy'' in this directory or load and generate the file
config.doxy from the Doxywizard application. config.doxy from the Doxywizard application.
The generated html documentation will be placed in /doc/api_reference/. To open The generated html documentation will be placed in /doc/api_reference/. To open
the main page of the documentation, open the file /doc/api_reference/index.html in the main page of the documentation, open the file /doc/api_reference/index.html in
an html browser. an html browser.

View file

@ -1,210 +1,210 @@
# Doxyfile 1.3.3 # Doxyfile 1.3.3
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# General configuration options # General configuration options
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
PROJECT_NAME = PortAudioCpp PROJECT_NAME = PortAudioCpp
PROJECT_NUMBER = 2.0 PROJECT_NUMBER = 2.0
OUTPUT_DIRECTORY = ./ OUTPUT_DIRECTORY = ./
OUTPUT_LANGUAGE = English OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = YES USE_WINDOWS_ENCODING = YES
EXTRACT_ALL = YES EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_CLASSES = YES
HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO HIDE_IN_BODY_DOCS = NO
BRIEF_MEMBER_DESC = YES BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES REPEAT_BRIEF = YES
ALWAYS_DETAILED_SEC = YES ALWAYS_DETAILED_SEC = YES
INLINE_INHERITED_MEMB = NO INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO FULL_PATH_NAMES = NO
STRIP_FROM_PATH = STRIP_FROM_PATH =
INTERNAL_DOCS = NO INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES CASE_SENSE_NAMES = YES
SHORT_NAMES = YES SHORT_NAMES = YES
HIDE_SCOPE_NAMES = NO HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES SHOW_INCLUDE_FILES = YES
JAVADOC_AUTOBRIEF = NO JAVADOC_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = YES DETAILS_AT_TOP = YES
INHERIT_DOCS = YES INHERIT_DOCS = YES
INLINE_INFO = YES INLINE_INFO = YES
SORT_MEMBER_DOCS = NO SORT_MEMBER_DOCS = NO
DISTRIBUTE_GROUP_DOC = NO DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 4 TAB_SIZE = 4
GENERATE_TODOLIST = YES GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES GENERATE_DEPRECATEDLIST= YES
ALIASES = ALIASES =
ENABLED_SECTIONS = ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30 MAX_INITIALIZER_LINES = 30
OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO OPTIMIZE_OUTPUT_JAVA = NO
SHOW_USED_FILES = YES SHOW_USED_FILES = YES
SUBGROUPING = YES SUBGROUPING = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to warning and progress messages # configuration options related to warning and progress messages
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
QUIET = NO QUIET = NO
WARNINGS = YES WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES WARN_IF_DOC_ERROR = YES
WARN_FORMAT = "$file:$line: $text" WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE = WARN_LOGFILE =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the input files # configuration options related to the input files
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
INPUT = ../source \ INPUT = ../source \
../include ../include
FILE_PATTERNS = *.hxx \ FILE_PATTERNS = *.hxx \
*.cxx *.cxx
RECURSIVE = YES RECURSIVE = YES
EXCLUDE = EXCLUDE =
EXCLUDE_SYMLINKS = NO EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = EXCLUDE_PATTERNS =
EXAMPLE_PATH = EXAMPLE_PATH =
EXAMPLE_PATTERNS = EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO EXAMPLE_RECURSIVE = NO
IMAGE_PATH = IMAGE_PATH =
INPUT_FILTER = INPUT_FILTER =
FILTER_SOURCE_FILES = NO FILTER_SOURCE_FILES = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to source browsing # configuration options related to source browsing
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
SOURCE_BROWSER = NO SOURCE_BROWSER = NO
INLINE_SOURCES = NO INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES REFERENCES_RELATION = YES
VERBATIM_HEADERS = YES VERBATIM_HEADERS = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the alphabetical class index # configuration options related to the alphabetical class index
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 2 COLS_IN_ALPHA_INDEX = 2
IGNORE_PREFIX = IGNORE_PREFIX =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the HTML output # configuration options related to the HTML output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_HTML = YES GENERATE_HTML = YES
HTML_OUTPUT = api_reference HTML_OUTPUT = api_reference
HTML_FILE_EXTENSION = .html HTML_FILE_EXTENSION = .html
HTML_HEADER = HTML_HEADER =
HTML_FOOTER = HTML_FOOTER =
HTML_STYLESHEET = HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO GENERATE_HTMLHELP = NO
CHM_FILE = CHM_FILE =
HHC_LOCATION = HHC_LOCATION =
GENERATE_CHI = NO GENERATE_CHI = NO
BINARY_TOC = NO BINARY_TOC = NO
TOC_EXPAND = NO TOC_EXPAND = NO
DISABLE_INDEX = NO DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4 ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250 TREEVIEW_WIDTH = 250
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the LaTeX output # configuration options related to the LaTeX output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_LATEX = NO GENERATE_LATEX = NO
LATEX_OUTPUT = latex LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO COMPACT_LATEX = NO
PAPER_TYPE = a4wide PAPER_TYPE = a4wide
EXTRA_PACKAGES = EXTRA_PACKAGES =
LATEX_HEADER = LATEX_HEADER =
PDF_HYPERLINKS = NO PDF_HYPERLINKS = NO
USE_PDFLATEX = NO USE_PDFLATEX = NO
LATEX_BATCHMODE = NO LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO LATEX_HIDE_INDICES = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the RTF output # configuration options related to the RTF output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_RTF = NO GENERATE_RTF = NO
RTF_OUTPUT = rtf RTF_OUTPUT = rtf
COMPACT_RTF = NO COMPACT_RTF = NO
RTF_HYPERLINKS = NO RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE = RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE = RTF_EXTENSIONS_FILE =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the man page output # configuration options related to the man page output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_MAN = NO GENERATE_MAN = NO
MAN_OUTPUT = man MAN_OUTPUT = man
MAN_EXTENSION = .3 MAN_EXTENSION = .3
MAN_LINKS = NO MAN_LINKS = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the XML output # configuration options related to the XML output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_XML = NO GENERATE_XML = NO
XML_OUTPUT = xml XML_OUTPUT = xml
XML_SCHEMA = XML_SCHEMA =
XML_DTD = XML_DTD =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output # configuration options for the AutoGen Definitions output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO GENERATE_AUTOGEN_DEF = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the Perl module output # configuration options related to the Perl module output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_PERLMOD = NO GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX = PERLMOD_MAKEVAR_PREFIX =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the preprocessor # Configuration options related to the preprocessor
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES SEARCH_INCLUDES = YES
INCLUDE_PATH = INCLUDE_PATH =
INCLUDE_FILE_PATTERNS = INCLUDE_FILE_PATTERNS =
PREDEFINED = PREDEFINED =
EXPAND_AS_DEFINED = EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES SKIP_FUNCTION_MACROS = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration::addtions related to external references # Configuration::addtions related to external references
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
TAGFILES = TAGFILES =
GENERATE_TAGFILE = GENERATE_TAGFILE =
ALLEXTERNALS = NO ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl PERL_PATH = /usr/bin/perl
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the dot tool # Configuration options related to the dot tool
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = YES HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES HAVE_DOT = YES
CLASS_GRAPH = YES CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES COLLABORATION_GRAPH = YES
UML_LOOK = YES UML_LOOK = YES
TEMPLATE_RELATIONS = YES TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = YES GRAPHICAL_HIERARCHY = YES
DOT_IMAGE_FORMAT = png DOT_IMAGE_FORMAT = png
DOT_PATH = "/usr/bin/dot" DOT_PATH = "/usr/bin/dot"
DOTFILE_DIRS = DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 0 MAX_DOT_GRAPH_DEPTH = 0
GENERATE_LEGEND = YES GENERATE_LEGEND = YES
DOT_CLEANUP = YES DOT_CLEANUP = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration::addtions related to the search engine # Configuration::addtions related to the search engine
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
SEARCHENGINE = NO SEARCHENGINE = NO
CGI_NAME = search.cgi CGI_NAME = search.cgi
CGI_URL = CGI_URL =
DOC_URL = DOC_URL =
DOC_ABSPATH = DOC_ABSPATH =
BIN_ABSPATH = /usr/local/bin/ BIN_ABSPATH = /usr/local/bin/
EXT_DOC_PATHS = EXT_DOC_PATHS =

View file

@ -8,44 +8,44 @@
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
void printSupportedStandardSampleRates( void printSupportedStandardSampleRates(
const portaudio::DirectionSpecificStreamParameters &inputParameters, const portaudio::DirectionSpecificStreamParameters &inputParameters,
const portaudio::DirectionSpecificStreamParameters &outputParameters) const portaudio::DirectionSpecificStreamParameters &outputParameters)
{ {
static double STANDARD_SAMPLE_RATES[] = { static double STANDARD_SAMPLE_RATES[] = {
8000.0, 9600.0, 11025.0, 12000.0, 16000.0, 22050.0, 24000.0, 32000.0, 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 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) for (int i = 0; STANDARD_SAMPLE_RATES[i] > 0; ++i)
{ {
portaudio::StreamParameters tmp = portaudio::StreamParameters(inputParameters, outputParameters, STANDARD_SAMPLE_RATES[i], 0, paNoFlag); portaudio::StreamParameters tmp = portaudio::StreamParameters(inputParameters, outputParameters, STANDARD_SAMPLE_RATES[i], 0, paNoFlag);
if (tmp.isSupported()) if (tmp.isSupported())
{ {
if (printCount == 0) if (printCount == 0)
{ {
std::cout << " " << STANDARD_SAMPLE_RATES[i]; // 8.2 std::cout << " " << STANDARD_SAMPLE_RATES[i]; // 8.2
printCount = 1; printCount = 1;
} }
else if (printCount == 4) else if (printCount == 4)
{ {
std::cout << "," << std::endl; std::cout << "," << std::endl;
std::cout << " " << STANDARD_SAMPLE_RATES[i]; // 8.2 std::cout << " " << STANDARD_SAMPLE_RATES[i]; // 8.2
printCount = 1; printCount = 1;
} }
else else
{ {
std::cout << ", " << STANDARD_SAMPLE_RATES[i]; // 8.2 std::cout << ", " << STANDARD_SAMPLE_RATES[i]; // 8.2
++printCount; ++printCount;
} }
} }
} }
if (printCount == 0) if (printCount == 0)
std::cout << "None" << std::endl; std::cout << "None" << std::endl;
else else
std::cout << std::endl; std::cout << std::endl;
} }
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
@ -53,125 +53,125 @@ void printSupportedStandardSampleRates(
int main(int, char*[]); int main(int, char*[]);
int main(int, char*[]) int main(int, char*[])
{ {
try try
{ {
portaudio::AutoSystem autoSys; 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 number = " << sys.version() << std::endl;
std::cout << "PortAudio version text = '" << sys.versionText() << "'" << std::endl; std::cout << "PortAudio version text = '" << sys.versionText() << "'" << std::endl;
int numDevices = sys.deviceCount(); int numDevices = sys.deviceCount();
std::cout << "Number of devices = " << numDevices << std::endl; std::cout << "Number of devices = " << numDevices << std::endl;
for (portaudio::System::DeviceIterator i = sys.devicesBegin(); i != sys.devicesEnd(); ++i) for (portaudio::System::DeviceIterator i = sys.devicesBegin(); i != sys.devicesEnd(); ++i)
{ {
std::cout << "--------------------------------------- device #" << (*i).index() << std::endl; std::cout << "--------------------------------------- device #" << (*i).index() << std::endl;
// Mark global and API specific default devices: // Mark global and API specific default devices:
bool defaultDisplayed = false; bool defaultDisplayed = false;
if ((*i).isSystemDefaultInputDevice()) if ((*i).isSystemDefaultInputDevice())
{ {
std::cout << "[ Default Input"; std::cout << "[ Default Input";
defaultDisplayed = true; defaultDisplayed = true;
} }
else if ((*i).isHostApiDefaultInputDevice()) else if ((*i).isHostApiDefaultInputDevice())
{ {
std::cout << "[ Default " << (*i).hostApi().name() << " Input"; std::cout << "[ Default " << (*i).hostApi().name() << " Input";
defaultDisplayed = true; defaultDisplayed = true;
} }
if ((*i).isSystemDefaultOutputDevice()) if ((*i).isSystemDefaultOutputDevice())
{ {
std::cout << (defaultDisplayed ? "," : "["); std::cout << (defaultDisplayed ? "," : "[");
std::cout << " Default Output"; std::cout << " Default Output";
defaultDisplayed = true; defaultDisplayed = true;
} }
else if ((*i).isHostApiDefaultOutputDevice()) else if ((*i).isHostApiDefaultOutputDevice())
{ {
std::cout << (defaultDisplayed ? "," : "["); std::cout << (defaultDisplayed ? "," : "[");
std::cout << " Default " << (*i).hostApi().name() << " Output"; std::cout << " Default " << (*i).hostApi().name() << " Output";
defaultDisplayed = true; defaultDisplayed = true;
} }
if (defaultDisplayed)
std::cout << " ]" << std::endl;
// Print device info: if (defaultDisplayed)
std::cout << "Name = " << (*i).name() << std::endl; std::cout << " ]" << 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 // Print device info:
std::cout << "Default low output latency = " << (*i).defaultLowOutputLatency() << std::endl; // 8.3 std::cout << "Name = " << (*i).name() << std::endl;
std::cout << "Default high input latency = " << (*i).defaultHighInputLatency() << std::endl; // 8.3 std::cout << "Host API = " << (*i).hostApi().name() << std::endl;
std::cout << "Default high output latency = " << (*i).defaultHighOutputLatency() << std::endl; // 8.3 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
#ifdef WIN32 #ifdef WIN32
// ASIO specific latency information: // ASIO specific latency information:
if ((*i).hostApi().typeId() == paASIO) if ((*i).hostApi().typeId() == paASIO)
{ {
portaudio::AsioDeviceAdapter asioDevice((*i)); portaudio::AsioDeviceAdapter asioDevice((*i));
std::cout << "ASIO minimum buffer size = " << asioDevice.minBufferSize() << 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 maximum buffer size = " << asioDevice.maxBufferSize() << std::endl;
std::cout << "ASIO preferred buffer size = " << asioDevice.preferredBufferSize() << std::endl; std::cout << "ASIO preferred buffer size = " << asioDevice.preferredBufferSize() << std::endl;
if (asioDevice.granularity() == -1) if (asioDevice.granularity() == -1)
std::cout << "ASIO buffer granularity = power of 2" << std::endl; std::cout << "ASIO buffer granularity = power of 2" << std::endl;
else else
std::cout << "ASIO buffer granularity = " << asioDevice.granularity() << std::endl; std::cout << "ASIO buffer granularity = " << asioDevice.granularity() << std::endl;
} }
#endif // WIN32 #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: // Poll for standard sample rates:
portaudio::DirectionSpecificStreamParameters inputParameters((*i), (*i).maxInputChannels(), portaudio::INT16, true, 0.0, NULL); portaudio::DirectionSpecificStreamParameters inputParameters((*i), (*i).maxInputChannels(), portaudio::INT16, true, 0.0, NULL);
portaudio::DirectionSpecificStreamParameters outputParameters((*i), (*i).maxOutputChannels(), portaudio::INT16, true, 0.0, NULL); portaudio::DirectionSpecificStreamParameters outputParameters((*i), (*i).maxOutputChannels(), portaudio::INT16, true, 0.0, NULL);
if (inputParameters.numChannels() > 0) if (inputParameters.numChannels() > 0)
{ {
std::cout << "Supported standard sample rates" << std::endl; std::cout << "Supported standard sample rates" << std::endl;
std::cout << " for half-duplex 16 bit " << inputParameters.numChannels() << " channel input = " << std::endl; std::cout << " for half-duplex 16 bit " << inputParameters.numChannels() << " channel input = " << std::endl;
printSupportedStandardSampleRates(inputParameters, portaudio::DirectionSpecificStreamParameters::null()); printSupportedStandardSampleRates(inputParameters, portaudio::DirectionSpecificStreamParameters::null());
} }
if (outputParameters.numChannels() > 0) if (outputParameters.numChannels() > 0)
{ {
std::cout << "Supported standard sample rates" << std::endl; std::cout << "Supported standard sample rates" << std::endl;
std::cout << " for half-duplex 16 bit " << outputParameters.numChannels() << " channel output = " << std::endl; std::cout << " for half-duplex 16 bit " << outputParameters.numChannels() << " channel output = " << std::endl;
printSupportedStandardSampleRates(portaudio::DirectionSpecificStreamParameters::null(), outputParameters); printSupportedStandardSampleRates(portaudio::DirectionSpecificStreamParameters::null(), outputParameters);
} }
if (inputParameters.numChannels() > 0 && outputParameters.numChannels() > 0) if (inputParameters.numChannels() > 0 && outputParameters.numChannels() > 0)
{ {
std::cout << "Supported standard sample rates" << std::endl; 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; std::cout << " for full-duplex 16 bit " << inputParameters.numChannels() << " channel input, " << outputParameters.numChannels() << " channel output = " << std::endl;
printSupportedStandardSampleRates(inputParameters, outputParameters); printSupportedStandardSampleRates(inputParameters, outputParameters);
} }
} }
std::cout << "----------------------------------------------" << std::endl; std::cout << "----------------------------------------------" << std::endl;
} }
catch (const portaudio::PaException &e) catch (const portaudio::PaException &e)
{ {
std::cout << "A PortAudio error occured: " << e.paErrorText() << std::endl; std::cout << "A PortAudio error occurred: " << e.paErrorText() << std::endl;
} }
catch (const portaudio::PaCppException &e) catch (const portaudio::PaCppException &e)
{ {
std::cout << "A PortAudioCpp error occured: " << e.what() << std::endl; std::cout << "A PortAudioCpp error occurred: " << e.what() << std::endl;
} }
catch (const std::exception &e) catch (const std::exception &e)
{ {
std::cout << "A generic exception occured: " << e.what() << std::endl; std::cout << "A generic exception occurred: " << e.what() << std::endl;
} }
catch (...) catch (...)
{ {
std::cout << "An unknown exception occured." << std::endl; std::cout << "An unknown exception occurred." << std::endl;
} }
return 0; return 0;
} }

View file

@ -1,137 +1,135 @@
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include <iostream> #include <iostream>
#include <cmath> #include <cmath>
#include <cassert> #include <cassert>
#include <cstddef> #include <cstddef>
#include "portaudiocpp/PortAudioCpp.hxx" #include "portaudiocpp/PortAudioCpp.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Some constants: // Some constants:
const int NUM_SECONDS = 5; const int NUM_SECONDS = 5;
const double SAMPLE_RATE = 44100.0; const double SAMPLE_RATE = 44100.0;
const int FRAMES_PER_BUFFER = 64; const int FRAMES_PER_BUFFER = 64;
const int TABLE_SIZE = 200; const int TABLE_SIZE = 200;
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// SineGenerator class: // SineGenerator class:
class SineGenerator class SineGenerator
{ {
public: public:
SineGenerator(int tableSize) : tableSize_(tableSize), leftPhase_(0), rightPhase_(0) SineGenerator(int tableSize) : tableSize_(tableSize), leftPhase_(0), rightPhase_(0)
{ {
const double PI = 3.14159265; const double PI = 3.14159265;
table_ = new float[tableSize]; table_ = new float[tableSize];
for (int i = 0; i < tableSize; ++i) for (int i = 0; i < tableSize; ++i)
{ {
table_[i] = 0.125f * (float)sin(((double)i/(double)tableSize)*PI*2.); table_[i] = 0.125f * (float)sin(((double)i/(double)tableSize)*PI*2.);
} }
} }
~SineGenerator() ~SineGenerator()
{ {
delete[] table_; delete[] table_;
} }
int generate(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, int generate(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer,
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags) const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags)
{ {
assert(outputBuffer != NULL); assert(outputBuffer != NULL);
float **out = static_cast<float **>(outputBuffer); float **out = static_cast<float **>(outputBuffer);
for (unsigned int i = 0; i < framesPerBuffer; ++i) for (unsigned int i = 0; i < framesPerBuffer; ++i)
{ {
out[0][i] = table_[leftPhase_]; out[0][i] = table_[leftPhase_];
out[1][i] = table_[rightPhase_]; out[1][i] = table_[rightPhase_];
leftPhase_ += 1; leftPhase_ += 1;
if (leftPhase_ >= tableSize_) if (leftPhase_ >= tableSize_)
leftPhase_ -= tableSize_; leftPhase_ -= tableSize_;
rightPhase_ += 3; rightPhase_ += 3;
if (rightPhase_ >= tableSize_) if (rightPhase_ >= tableSize_)
rightPhase_ -= tableSize_; rightPhase_ -= tableSize_;
} }
return paContinue; return paContinue;
} }
private: private:
float *table_; float *table_;
int tableSize_; int tableSize_;
int leftPhase_; int leftPhase_;
int rightPhase_; int rightPhase_;
}; };
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// main: // main:
int main(int, char *[]); int main(int, char *[]);
int main(int, char *[]) int main(int, char *[])
{ {
try try
{ {
// Create a SineGenerator object: // Create a SineGenerator object:
SineGenerator sineGenerator(TABLE_SIZE); SineGenerator sineGenerator(TABLE_SIZE);
std::cout << "Setting up PortAudio..." << std::endl; std::cout << "Setting up PortAudio..." << std::endl;
// Set up the System: // Set up the System:
portaudio::AutoSystem autoSys; portaudio::AutoSystem autoSys;
portaudio::System &sys = portaudio::System::instance(); portaudio::System &sys = portaudio::System::instance();
// Set up the parameters required to open a (Callback)Stream: // Set up the parameters required to open a (Callback)Stream:
portaudio::DirectionSpecificStreamParameters outParams(sys.defaultOutputDevice(), 2, portaudio::FLOAT32, false, sys.defaultOutputDevice().defaultLowOutputLatency(), NULL); 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); 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: // Create (and open) a new Stream, using the SineGenerator::generate function as a callback:
portaudio::MemFunCallbackStream<SineGenerator> stream(params, sineGenerator, &SineGenerator::generate); 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): // Start the Stream (audio playback starts):
stream.start(); stream.start();
// Wait for 5 seconds: // Wait for 5 seconds:
sys.sleep(NUM_SECONDS * 1000); 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): // Stop the Stream (not strictly needed as termintating the System will also stop all open Streams):
stream.stop(); stream.stop();
// Close the Stream (not strictly needed as terminating the System will also close all open Streams): // Close the Stream (not strictly needed as terminating the System will also close all open Streams):
stream.close(); stream.close();
// Terminate the System (not strictly needed as the AutoSystem will also take care of this when it // Terminate the System (not strictly needed as the AutoSystem will also take care of this when it
// goes out of scope): // goes out of scope):
sys.terminate(); sys.terminate();
std::cout << "Test finished." << std::endl; std::cout << "Test finished." << std::endl;
} }
catch (const portaudio::PaException &e) catch (const portaudio::PaException &e)
{ {
std::cout << "A PortAudio error occured: " << e.paErrorText() << std::endl; std::cout << "A PortAudio error occurred: " << e.paErrorText() << std::endl;
} }
catch (const portaudio::PaCppException &e) catch (const portaudio::PaCppException &e)
{ {
std::cout << "A PortAudioCpp error occured: " << e.what() << std::endl; std::cout << "A PortAudioCpp error occurred: " << e.what() << std::endl;
} }
catch (const std::exception &e) catch (const std::exception &e)
{ {
std::cout << "A generic exception occured: " << e.what() << std::endl; std::cout << "A generic exception occurred: " << e.what() << std::endl;
} }
catch (...) catch (...)
{ {
std::cout << "An unknown exception occured." << std::endl; std::cout << "An unknown exception occurred." << std::endl;
} }
return 0; return 0;
} }

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am. # Makefile.in generated by automake 1.16.5 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2021 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -16,6 +15,61 @@
@SET_MAKE@ @SET_MAKE@
VPATH = @srcdir@ 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__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -35,17 +89,34 @@ POST_UNINSTALL = :
build_triplet = @build@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
subdir = include subdir = include
DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4) $(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(pkginclude_HEADERS) \
$(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
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 =
SOURCES = SOURCES =
DIST_SOURCES = DIST_SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \ am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@ -67,13 +138,36 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \ am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(pkgincludedir)" am__installdirs = "$(DESTDIR)$(pkgincludedir)"
HEADERS = $(pkginclude_HEADERS) HEADERS = $(pkginclude_HEADERS)
ETAGS = etags am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
CTAGS = ctags # Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__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
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
AS = @AS@ AS = @AS@
AUTOCONF = @AUTOCONF@ AUTOCONF = @AUTOCONF@
@ -83,8 +177,9 @@ AWK = @AWK@
CC = @CC@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CSCOPE = @CSCOPE@
CTAGS = @CTAGS@
CXX = @CXX@ CXX = @CXX@
CXXCPP = @CXXCPP@ CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@ CXXDEPMODE = @CXXDEPMODE@
@ -100,6 +195,7 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@ EGREP = @EGREP@
ETAGS = @ETAGS@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FGREP = @FGREP@ FGREP = @FGREP@
GREP = @GREP@ GREP = @GREP@
@ -116,9 +212,11 @@ LIBTOOL = @LIBTOOL@
LIPO = @LIPO@ LIPO = @LIPO@
LN_S = @LN_S@ LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@ LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
LT_VERSION_INFO = @LT_VERSION_INFO@ LT_VERSION_INFO = @LT_VERSION_INFO@
MAINT = @MAINT@ MAINT = @MAINT@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@ MKDIR_P = @MKDIR_P@
NM = @NM@ NM = @NM@
NMEDIT = @NMEDIT@ NMEDIT = @NMEDIT@
@ -145,6 +243,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@ abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@ ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@ ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@ -178,7 +277,6 @@ libdir = @libdir@
libexecdir = @libexecdir@ libexecdir = @libexecdir@
localedir = @localedir@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
@ -186,6 +284,7 @@ pdfdir = @pdfdir@
prefix = @prefix@ prefix = @prefix@
program_transform_name = @program_transform_name@ program_transform_name = @program_transform_name@
psdir = @psdir@ psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@ srcdir = @srcdir@
@ -230,14 +329,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \
$(am__cd) $(top_srcdir) && \ $(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu include/Makefile $(AUTOMAKE) --gnu include/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \ @case '$?' in \
*config.status*) \ *config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \ *) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac; esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@ -256,8 +354,11 @@ clean-libtool:
-rm -rf .libs _libs -rm -rf .libs _libs
install-pkgincludeHEADERS: $(pkginclude_HEADERS) install-pkgincludeHEADERS: $(pkginclude_HEADERS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)"
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \
$(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \
fi; \
for p in $$list; do \ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \ echo "$$d$$p"; \
@ -271,30 +372,17 @@ uninstall-pkgincludeHEADERS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \ dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir)
echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ID: $(am__tagged_files)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); mkid -fID $$unique
unique=`for i in $$list; do \ tags: tags-am
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ TAGS: tags
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(TAGS_FILES) $(LISP)
set x; \ set x; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \ shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \ test -n "$$unique" || unique=$$empty_fix; \
@ -306,15 +394,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \ $$unique; \
fi; \ fi; \
fi fi
ctags: CTAGS ctags: ctags-am
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) CTAGS: ctags
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
unique=`for i in $$list; do \ $(am__define_uniq_tagged_files); \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique $$unique
@ -323,11 +407,28 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \ here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \ && $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here" && gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir: $(DISTFILES) distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \ list='$(DISTFILES)'; \
@ -374,10 +475,15 @@ install-am: all-am
installcheck: installcheck-am installcheck: installcheck-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ if test -z '$(STRIP)'; then \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
@ -457,18 +563,21 @@ uninstall-am: uninstall-pkgincludeHEADERS
.MAKE: install-am install-strip .MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
clean-libtool ctags distclean distclean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \
distclean-libtool distclean-tags distdir dvi dvi-am html \ distclean-generic distclean-libtool distclean-tags distdir dvi \
html-am info info-am install install-am install-data \ dvi-am html html-am info info-am install install-am \
install-data-am install-dvi install-dvi-am install-exec \ install-data install-data-am install-dvi install-dvi-am \
install-exec-am install-html install-html-am install-info \ install-exec install-exec-am install-html install-html-am \
install-info-am install-man install-pdf install-pdf-am \ install-info install-info-am install-man install-pdf \
install-pkgincludeHEADERS install-ps install-ps-am \ install-pdf-am install-pkgincludeHEADERS install-ps \
install-strip installcheck installcheck-am installdirs \ install-ps-am install-strip installcheck installcheck-am \
maintainer-clean maintainer-clean-generic mostlyclean \ installdirs maintainer-clean maintainer-clean-generic \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
tags uninstall uninstall-am uninstall-pkgincludeHEADERS ps ps-am tags tags-am uninstall uninstall-am \
uninstall-pkgincludeHEADERS
.PRECIOUS: Makefile
# portaudiocpp/AsioDeviceAdapter.hxx # portaudiocpp/AsioDeviceAdapter.hxx

View file

@ -4,41 +4,41 @@
namespace portaudio namespace portaudio
{ {
// Forward declaration(s): // Forward declaration(s):
class Device; class Device;
// Declaration(s): // Declaration(s):
////// //////
/// @brief Adapts the given Device to an ASIO specific extension. /// @brief Adapts the given Device to an ASIO specific extension.
/// ///
/// Deleting the AsioDeviceAdapter does not affect the underlaying /// Deleting the AsioDeviceAdapter does not affect the underlying
/// Device. /// Device.
////// //////
class AsioDeviceAdapter class AsioDeviceAdapter
{ {
public: public:
AsioDeviceAdapter(Device &device); AsioDeviceAdapter(Device &device);
Device &device(); Device &device();
long minBufferSize() const; long minBufferSize() const;
long maxBufferSize() const; long maxBufferSize() const;
long preferredBufferSize() const; long preferredBufferSize() const;
long granularity() const; long granularity() const;
void showControlPanel(void *systemSpecific); void showControlPanel(void *systemSpecific);
const char *inputChannelName(int channelIndex) const; const char *inputChannelName(int channelIndex) const;
const char *outputChannelName(int channelIndex) const; const char *outputChannelName(int channelIndex) const;
private: private:
Device *device_; Device *device_;
long minBufferSize_; long minBufferSize_;
long maxBufferSize_; long maxBufferSize_;
long preferredBufferSize_; long preferredBufferSize_;
long granularity_; long granularity_;
}; };
} }
#endif // INCLUDED_PORTAUDIO_ASIODEVICEADAPTER_HXX #endif // INCLUDED_PORTAUDIO_ASIODEVICEADAPTER_HXX

View file

@ -1,62 +1,62 @@
#ifndef INCLUDED_PORTAUDIO_AUTOSYSTEM_HXX #ifndef INCLUDED_PORTAUDIO_AUTOSYSTEM_HXX
#define INCLUDED_PORTAUDIO_AUTOSYSTEM_HXX #define INCLUDED_PORTAUDIO_AUTOSYSTEM_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudiocpp/System.hxx" #include "portaudiocpp/System.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief A RAII idiom class to ensure automatic clean-up when an exception is /// @brief A RAII idiom class to ensure automatic clean-up when an exception is
/// raised. /// raised.
/// ///
/// A simple helper class which uses the 'Resource Acquisition is Initialization' /// A simple helper class which uses the 'Resource Acquisition is Initialization'
/// idiom (RAII). Use this class to initialize/terminate the System rather than /// 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 /// 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 /// throughout the time you wish to use PortAudioCpp. Your 'main' function might be
/// a good place for it. /// a good place for it.
/// ///
/// To avoid having to type portaudio::System::instance().xyz() all the time, it's usually /// 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. /// a good idea to make a reference to the System which can be accessed directly.
/// @verbatim /// @verbatim
/// portaudio::AutoSys autoSys; /// portaudio::AutoSys autoSys;
/// portaudio::System &sys = portaudio::System::instance(); /// portaudio::System &sys = portaudio::System::instance();
/// @endverbatim /// @endverbatim
////// //////
class AutoSystem class AutoSystem
{ {
public: public:
AutoSystem(bool initialize = true) AutoSystem(bool initialize = true)
{ {
if (initialize) if (initialize)
System::initialize(); System::initialize();
} }
~AutoSystem() ~AutoSystem()
{ {
if (System::exists()) if (System::exists())
System::terminate(); System::terminate();
} }
void initialize() void initialize()
{ {
System::initialize(); System::initialize();
} }
void terminate() void terminate()
{ {
System::terminate(); System::terminate();
} }
}; };
} // namespace portaudio } // namespace portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_AUTOSYSTEM_HXX #endif // INCLUDED_PORTAUDIO_AUTOSYSTEM_HXX

View file

@ -1,45 +1,44 @@
#ifndef INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX #ifndef INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX
#define INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX #define INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudiocpp/Stream.hxx" #include "portaudiocpp/Stream.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief Stream class for blocking read/write-style input and output. /// @brief Stream class for blocking read/write-style input and output.
////// //////
class BlockingStream : public Stream class BlockingStream : public Stream
{ {
public: public:
BlockingStream(); BlockingStream();
BlockingStream(const StreamParameters &parameters); BlockingStream(const StreamParameters &parameters);
~BlockingStream(); ~BlockingStream();
void open(const StreamParameters &parameters); void open(const StreamParameters &parameters);
void read(void *buffer, unsigned long numFrames); void read(void *buffer, unsigned long numFrames);
void write(const void *buffer, unsigned long numFrames); void write(const void *buffer, unsigned long numFrames);
signed long availableReadSize() const; signed long availableReadSize() const;
signed long availableWriteSize() const; signed long availableWriteSize() const;
private: private:
BlockingStream(const BlockingStream &); // non-copyable BlockingStream(const BlockingStream &); // non-copyable
BlockingStream &operator=(const BlockingStream &); // non-copyable BlockingStream &operator=(const BlockingStream &); // non-copyable
}; };
} // portaudio } // portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX #endif // INCLUDED_PORTAUDIO_BLOCKINGSTREAM_HXX

View file

@ -1,49 +1,48 @@
#ifndef INCLUDED_PORTAUDIO_CFUNCALLBACKSTREAM_HXX #ifndef INCLUDED_PORTAUDIO_CFUNCALLBACKSTREAM_HXX
#define INCLUDED_PORTAUDIO_CFUNCALLBACKSTREAM_HXX #define INCLUDED_PORTAUDIO_CFUNCALLBACKSTREAM_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudio.h" #include "portaudio.h"
#include "portaudiocpp/CallbackStream.hxx" #include "portaudiocpp/CallbackStream.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Forward declaration(s) // Forward declaration(s)
namespace portaudio namespace portaudio
{ {
class StreamParameters; class StreamParameters;
} }
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Declaration(s): // Declaration(s):
namespace portaudio namespace portaudio
{ {
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// @brief Callback stream using a free function with C linkage. It's important that the function /// @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"''. /// the passed function pointer points to is declared ``extern "C"''.
////// //////
class CFunCallbackStream : public CallbackStream class CFunCallbackStream : public CallbackStream
{ {
public: public:
CFunCallbackStream(); CFunCallbackStream();
CFunCallbackStream(const StreamParameters &parameters, PaStreamCallback *funPtr, void *userData); CFunCallbackStream(const StreamParameters &parameters, PaStreamCallback *funPtr, void *userData);
~CFunCallbackStream(); ~CFunCallbackStream();
void open(const StreamParameters &parameters, PaStreamCallback *funPtr, void *userData); void open(const StreamParameters &parameters, PaStreamCallback *funPtr, void *userData);
private: private:
CFunCallbackStream(const CFunCallbackStream &); // non-copyable CFunCallbackStream(const CFunCallbackStream &); // non-copyable
CFunCallbackStream &operator=(const CFunCallbackStream &); // non-copyable CFunCallbackStream &operator=(const CFunCallbackStream &); // non-copyable
}; };
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
} // portaudio } // portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX #endif // INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX

View file

@ -1,45 +1,45 @@
#ifndef INCLUDED_PORTAUDIO_CALLBACKINTERFACE_HXX #ifndef INCLUDED_PORTAUDIO_CALLBACKINTERFACE_HXX
#define INCLUDED_PORTAUDIO_CALLBACKINTERFACE_HXX #define INCLUDED_PORTAUDIO_CALLBACKINTERFACE_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudio.h" #include "portaudio.h"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
namespace portaudio namespace portaudio
{ {
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// @brief Interface for an object that's callable as a PortAudioCpp callback object (ie that implements the /// @brief Interface for an object that's callable as a PortAudioCpp callback object (ie that implements the
/// paCallbackFun method). /// paCallbackFun method).
////// //////
class CallbackInterface class CallbackInterface
{ {
public: public:
virtual ~CallbackInterface() {} virtual ~CallbackInterface() {}
virtual int paCallbackFun(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, virtual int paCallbackFun(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags) = 0; const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags) = 0;
}; };
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
namespace impl namespace impl
{ {
extern "C" extern "C"
{ {
int callbackInterfaceToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, int callbackInterfaceToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags,
void *userData); void *userData);
} // extern "C" } // extern "C"
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
} // namespace portaudio } // namespace portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_CALLBACKINTERFACE_HXX #endif // INCLUDED_PORTAUDIO_CALLBACKINTERFACE_HXX

View file

@ -1,40 +1,40 @@
#ifndef INCLUDED_PORTAUDIO_CALLBACKSTREAM_HXX #ifndef INCLUDED_PORTAUDIO_CALLBACKSTREAM_HXX
#define INCLUDED_PORTAUDIO_CALLBACKSTREAM_HXX #define INCLUDED_PORTAUDIO_CALLBACKSTREAM_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudio.h" #include "portaudio.h"
#include "portaudiocpp/Stream.hxx" #include "portaudiocpp/Stream.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Declaration(s): // Declaration(s):
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief Base class for all Streams which use a callback-based mechanism. /// @brief Base class for all Streams which use a callback-based mechanism.
////// //////
class CallbackStream : public Stream class CallbackStream : public Stream
{ {
protected: protected:
CallbackStream(); CallbackStream();
virtual ~CallbackStream(); virtual ~CallbackStream();
public: public:
// stream info (time-varying) // stream info (time-varying)
double cpuLoad() const; double cpuLoad() const;
private: private:
CallbackStream(const CallbackStream &); // non-copyable CallbackStream(const CallbackStream &); // non-copyable
CallbackStream &operator=(const CallbackStream &); // non-copyable CallbackStream &operator=(const CallbackStream &); // non-copyable
}; };
} // namespace portaudio } // namespace portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_CALLBACKSTREAM_HXX #endif // INCLUDED_PORTAUDIO_CALLBACKSTREAM_HXX

View file

@ -1,86 +1,86 @@
#ifndef INCLUDED_PORTAUDIO_CPPFUNCALLBACKSTREAM_HXX #ifndef INCLUDED_PORTAUDIO_CPPFUNCALLBACKSTREAM_HXX
#define INCLUDED_PORTAUDIO_CPPFUNCALLBACKSTREAM_HXX #define INCLUDED_PORTAUDIO_CPPFUNCALLBACKSTREAM_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudio.h" #include "portaudio.h"
#include "portaudiocpp/CallbackStream.hxx" #include "portaudiocpp/CallbackStream.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Forward declaration(s): // Forward declaration(s):
namespace portaudio namespace portaudio
{ {
class StreamParameters; class StreamParameters;
} }
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Declaration(s): // Declaration(s):
namespace portaudio namespace portaudio
{ {
namespace impl namespace impl
{ {
extern "C" extern "C"
{ {
int cppCallbackToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, int cppCallbackToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags,
void *userData); void *userData);
} // extern "C" } // extern "C"
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// @brief Callback stream using a C++ function (either a free function or a static function) /// @brief Callback stream using a C++ function (either a free function or a static function)
/// callback. /// callback.
////// //////
class FunCallbackStream : public CallbackStream class FunCallbackStream : public CallbackStream
{ {
public: public:
typedef int (*CallbackFunPtr)(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, typedef int (*CallbackFunPtr)(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags,
void *userData); void *userData);
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
////// //////
/// @brief Simple structure containing a function pointer to the C++ callback function and a /// @brief Simple structure containing a function pointer to the C++ callback function and a
/// (void) pointer to the user supplied data. /// (void) pointer to the user supplied data.
////// //////
struct CppToCCallbackData struct CppToCCallbackData
{ {
CppToCCallbackData(); CppToCCallbackData();
CppToCCallbackData(CallbackFunPtr funPtr, void *userData); CppToCCallbackData(CallbackFunPtr funPtr, void *userData);
void init(CallbackFunPtr funPtr, void *userData); void init(CallbackFunPtr funPtr, void *userData);
CallbackFunPtr funPtr; CallbackFunPtr funPtr;
void *userData; void *userData;
}; };
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
FunCallbackStream(); FunCallbackStream();
FunCallbackStream(const StreamParameters &parameters, CallbackFunPtr funPtr, void *userData); FunCallbackStream(const StreamParameters &parameters, CallbackFunPtr funPtr, void *userData);
~FunCallbackStream(); ~FunCallbackStream();
void open(const StreamParameters &parameters, CallbackFunPtr funPtr, void *userData); void open(const StreamParameters &parameters, CallbackFunPtr funPtr, void *userData);
private: private:
FunCallbackStream(const FunCallbackStream &); // non-copyable FunCallbackStream(const FunCallbackStream &); // non-copyable
FunCallbackStream &operator=(const FunCallbackStream &); // non-copyable FunCallbackStream &operator=(const FunCallbackStream &); // non-copyable
CppToCCallbackData adapterData_; CppToCCallbackData adapterData_;
void open(const StreamParameters &parameters); void open(const StreamParameters &parameters);
}; };
} // portaudio } // portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_CPPFUNCALLBACKSTREAM_HXX #endif // INCLUDED_PORTAUDIO_CPPFUNCALLBACKSTREAM_HXX

View file

@ -1,91 +1,90 @@
#ifndef INCLUDED_PORTAUDIO_DEVICE_HXX #ifndef INCLUDED_PORTAUDIO_DEVICE_HXX
#define INCLUDED_PORTAUDIO_DEVICE_HXX #define INCLUDED_PORTAUDIO_DEVICE_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include <iterator> #include <iterator>
#include "portaudio.h" #include "portaudio.h"
#include "portaudiocpp/SampleDataFormat.hxx" #include "portaudiocpp/SampleDataFormat.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Forward declaration(s): // Forward declaration(s):
namespace portaudio namespace portaudio
{ {
class System; class System;
class HostApi; class HostApi;
} }
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Declaration(s): // Declaration(s):
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief Class which represents a PortAudio device in the System. /// @brief Class which represents a PortAudio device in the System.
/// ///
/// A single physical device in the system may have multiple PortAudio /// A single physical device in the system may have multiple PortAudio
/// Device representations using different HostApi 's though. A Device /// Device representations using different HostApi 's though. A Device
/// can be half-duplex or full-duplex. A half-duplex Device can be used /// 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 /// 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 /// create a full-duplex Stream. If supported by the HostApi, two
/// half-duplex Devices can even be used to create a full-duplex Stream. /// 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 /// Note that Device objects are very light-weight and can be passed around
/// by-value. /// by-value.
////// //////
class Device class Device
{ {
public: public:
// query info: name, max in channels, max out channels, // query info: name, max in channels, max out channels,
// default low/hight input/output latency, default sample rate // default low/high input/output latency, default sample rate
PaDeviceIndex index() const; PaDeviceIndex index() const;
const char *name() const; const char *name() const;
int maxInputChannels() const; int maxInputChannels() const;
int maxOutputChannels() const; int maxOutputChannels() const;
PaTime defaultLowInputLatency() const; PaTime defaultLowInputLatency() const;
PaTime defaultHighInputLatency() const; PaTime defaultHighInputLatency() const;
PaTime defaultLowOutputLatency() const; PaTime defaultLowOutputLatency() const;
PaTime defaultHighOutputLatency() const; PaTime defaultHighOutputLatency() const;
double defaultSampleRate() const; double defaultSampleRate() const;
bool isInputOnlyDevice() const; // extended bool isInputOnlyDevice() const; // extended
bool isOutputOnlyDevice() const; // extended bool isOutputOnlyDevice() const; // extended
bool isFullDuplexDevice() const; // extended bool isFullDuplexDevice() const; // extended
bool isSystemDefaultInputDevice() const; // extended bool isSystemDefaultInputDevice() const; // extended
bool isSystemDefaultOutputDevice() const; // extended bool isSystemDefaultOutputDevice() const; // extended
bool isHostApiDefaultInputDevice() const; // extended bool isHostApiDefaultInputDevice() const; // extended
bool isHostApiDefaultOutputDevice() const; // extended bool isHostApiDefaultOutputDevice() const; // extended
bool operator==(const Device &rhs); bool operator==(const Device &rhs) const;
bool operator!=(const Device &rhs); bool operator!=(const Device &rhs) const;
// host api reference // host api reference
HostApi &hostApi(); HostApi &hostApi();
const HostApi &hostApi() const; const HostApi &hostApi() const;
private: private:
PaDeviceIndex index_; PaDeviceIndex index_;
const PaDeviceInfo *info_; const PaDeviceInfo *info_;
private: private:
friend class System; friend class System;
explicit Device(PaDeviceIndex index); explicit Device(PaDeviceIndex index);
~Device(); ~Device();
Device(const Device &); // non-copyable Device(const Device &); // non-copyable
Device &operator=(const Device &); // non-copyable Device &operator=(const Device &); // non-copyable
}; };
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
} // namespace portaudio } // namespace portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_DEVICE_HXX #endif // INCLUDED_PORTAUDIO_DEVICE_HXX

View file

@ -1,77 +1,77 @@
#ifndef INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX #ifndef INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX
#define INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX #define INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include <cstddef> #include <cstddef>
#include "portaudio.h" #include "portaudio.h"
#include "portaudiocpp/System.hxx" #include "portaudiocpp/System.hxx"
#include "portaudiocpp/SampleDataFormat.hxx" #include "portaudiocpp/SampleDataFormat.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Forward declaration(s): // Forward declaration(s):
namespace portaudio namespace portaudio
{ {
class Device; class Device;
} }
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Declaration(s): // Declaration(s):
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief All parameters for one direction (either in or out) of a Stream. Together with /// @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 /// parameters common to both directions, two DirectionSpecificStreamParameters can make up
/// a StreamParameters object which contains all parameters for a Stream. /// a StreamParameters object which contains all parameters for a Stream.
////// //////
class DirectionSpecificStreamParameters class DirectionSpecificStreamParameters
{ {
public: public:
static DirectionSpecificStreamParameters null(); static DirectionSpecificStreamParameters null();
DirectionSpecificStreamParameters(); DirectionSpecificStreamParameters();
DirectionSpecificStreamParameters(const Device &device, int numChannels, SampleDataFormat format, DirectionSpecificStreamParameters(const Device &device, int numChannels, SampleDataFormat format,
bool interleaved, PaTime suggestedLatency, void *hostApiSpecificStreamInfo); bool interleaved, PaTime suggestedLatency, void *hostApiSpecificStreamInfo);
// Set up methods: // Set up methods:
void setDevice(const Device &device); void setDevice(const Device &device);
void setNumChannels(int numChannels); void setNumChannels(int numChannels);
void setSampleFormat(SampleDataFormat format, bool interleaved = true); void setSampleFormat(SampleDataFormat format, bool interleaved = true);
void setHostApiSpecificSampleFormat(PaSampleFormat 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: // Accessor methods:
PaStreamParameters *paStreamParameters(); PaStreamParameters *paStreamParameters();
const PaStreamParameters *paStreamParameters() const; const PaStreamParameters *paStreamParameters() const;
Device &device() const; Device &device() const;
int numChannels() const; int numChannels() const;
SampleDataFormat sampleFormat() const; SampleDataFormat sampleFormat() const;
bool isSampleFormatInterleaved() const; bool isSampleFormatInterleaved() const;
bool isSampleFormatHostApiSpecific() const; bool isSampleFormatHostApiSpecific() const;
PaSampleFormat hostApiSpecificSampleFormat() const; PaSampleFormat hostApiSpecificSampleFormat() const;
PaTime suggestedLatency() const; PaTime suggestedLatency() const;
void *hostApiSpecificStreamInfo() const; void *hostApiSpecificStreamInfo() const;
private: private:
PaStreamParameters paStreamParameters_; PaStreamParameters paStreamParameters_;
}; };
} // namespace portaudio } // namespace portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX #endif // INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX

View file

@ -1,108 +1,107 @@
#ifndef INCLUDED_PORTAUDIO_EXCEPTION_HXX #ifndef INCLUDED_PORTAUDIO_EXCEPTION_HXX
#define INCLUDED_PORTAUDIO_EXCEPTION_HXX #define INCLUDED_PORTAUDIO_EXCEPTION_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include <exception> #include <exception>
#include "portaudio.h" #include "portaudio.h"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief Base class for all exceptions PortAudioCpp can throw. /// @brief Base class for all exceptions PortAudioCpp can throw.
/// ///
/// Class is derived from std::exception. /// Class is derived from std::exception.
////// //////
class Exception : public std::exception class Exception : public std::exception
{ {
public: public:
virtual ~Exception() throw() {} 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. /// @brief Wrapper for PortAudio error codes to C++ exceptions.
/// ///
/// It wraps up PortAudio's error handling mechanism using /// It wraps up PortAudio's error handling mechanism using
/// C++ exceptions and is derived from std::exception for /// C++ exceptions and is derived from std::exception for
/// easy exception handling and to ease integration with /// easy exception handling and to ease integration with
/// other code. /// other code.
/// ///
/// To know what exceptions each function may throw, look up /// To know what exceptions each function may throw, look up
/// the errors that can occure in the PortAudio documentation /// the errors that can occur in the PortAudio documentation
/// for the equivalent functions. /// for the equivalent functions.
/// ///
/// Some functions are likely to throw an exception (such as /// Some functions are likely to throw an exception (such as
/// Stream::open(), etc) and these should always be called in /// Stream::open(), etc) and these should always be called in
/// try{} catch{} blocks and the thrown exceptions should be /// try{} catch{} blocks and the thrown exceptions should be
/// handled properly (ie. the application shouldn't just abort, /// handled properly (ie. the application shouldn't just abort,
/// but merely display a warning dialog to the user or something). /// but merely display a warning dialog to the user or something).
/// However nearly all functions in PortAudioCpp are capable /// However nearly all functions in PortAudioCpp are capable
/// of throwing exceptions. When a function like Stream::isStopped() /// of throwing exceptions. When a function like Stream::isStopped()
/// throws an exception, it's such an exceptional state that it's /// throws an exception, it's such an exceptional state that it's
/// not likely that it can be recovered. PaExceptions such as these /// not likely that it can be recovered. PaExceptions such as these
/// can ``safely'' be left to be handled by some outer catch-all-like /// can ``safely'' be left to be handled by some outer catch-all-like
/// mechanism for unrecoverable errors. /// mechanism for unrecoverable errors.
////// //////
class PaException : public Exception class PaException : public Exception
{ {
public: public:
explicit PaException(PaError error); explicit PaException(PaError error);
const char *what() const throw(); const char *what() const throw();
PaError paError() const; PaError paError() const;
const char *paErrorText() const; const char *paErrorText() const;
bool isHostApiError() const; // extended bool isHostApiError() const; // extended
long lastHostApiError() const; long lastHostApiError() const;
const char *lastHostApiErrorText() 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: private:
PaError error_; PaError error_;
}; };
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// @brief Exceptions specific to PortAudioCpp (ie. exceptions which do not have an /// @brief Exceptions specific to PortAudioCpp (ie. exceptions which do not have an
/// equivalent PortAudio error code). /// equivalent PortAudio error code).
////// //////
class PaCppException : public Exception class PaCppException : public Exception
{ {
public: public:
enum ExceptionSpecifier enum ExceptionSpecifier
{ {
UNABLE_TO_ADAPT_DEVICE 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: private:
ExceptionSpecifier specifier_; ExceptionSpecifier specifier_;
}; };
} // namespace portaudio } // namespace portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_EXCEPTION_HXX #endif // INCLUDED_PORTAUDIO_EXCEPTION_HXX

View file

@ -1,76 +1,75 @@
#ifndef INCLUDED_PORTAUDIO_HOSTAPI_HXX #ifndef INCLUDED_PORTAUDIO_HOSTAPI_HXX
#define INCLUDED_PORTAUDIO_HOSTAPI_HXX #define INCLUDED_PORTAUDIO_HOSTAPI_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudio.h" #include "portaudio.h"
#include "portaudiocpp/System.hxx" #include "portaudiocpp/System.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Forward declaration(s): // Forward declaration(s):
namespace portaudio namespace portaudio
{ {
class Device; class Device;
} }
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Declaration(s): // Declaration(s):
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief HostApi represents a host API (usually type of driver) in the System. /// @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 single System can support multiple HostApi's each one typically having
/// a set of Devices using that HostApi (usually driver type). All Devices in /// 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 /// the HostApi can be enumerated and the default input/output Device for this
/// HostApi can be retreived. /// HostApi can be retrieved.
////// //////
class HostApi class HostApi
{ {
public: public:
typedef System::DeviceIterator DeviceIterator; typedef System::DeviceIterator DeviceIterator;
// query info: id, name, numDevices // query info: id, name, numDevices
PaHostApiTypeId typeId() const; PaHostApiTypeId typeId() const;
PaHostApiIndex index() const; PaHostApiIndex index() const;
const char *name() const; const char *name() const;
int deviceCount() const; int deviceCount() const;
// iterate devices // iterate devices
DeviceIterator devicesBegin(); DeviceIterator devicesBegin();
DeviceIterator devicesEnd(); DeviceIterator devicesEnd();
// default devices // default devices
Device &defaultInputDevice() const; Device &defaultInputDevice() const;
Device &defaultOutputDevice() const; Device &defaultOutputDevice() const;
// comparison operators // comparison operators
bool operator==(const HostApi &rhs) const; bool operator==(const HostApi &rhs) const;
bool operator!=(const HostApi &rhs) const; bool operator!=(const HostApi &rhs) const;
private: private:
const PaHostApiInfo *info_; const PaHostApiInfo *info_;
Device **devices_; Device **devices_;
private: private:
friend class System; friend class System;
explicit HostApi(PaHostApiIndex index); explicit HostApi(PaHostApiIndex index);
~HostApi(); ~HostApi();
HostApi(const HostApi &); // non-copyable HostApi(const HostApi &); // non-copyable
HostApi &operator=(const HostApi &); // non-copyable HostApi &operator=(const HostApi &); // non-copyable
}; };
} }
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_HOSTAPI_HXX #endif // INCLUDED_PORTAUDIO_HOSTAPI_HXX

View file

@ -1,49 +1,49 @@
#ifndef INCLUDED_PORTAUDIO_INTERFACECALLBACKSTREAM_HXX #ifndef INCLUDED_PORTAUDIO_INTERFACECALLBACKSTREAM_HXX
#define INCLUDED_PORTAUDIO_INTERFACECALLBACKSTREAM_HXX #define INCLUDED_PORTAUDIO_INTERFACECALLBACKSTREAM_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudio.h" #include "portaudio.h"
#include "portaudiocpp/CallbackStream.hxx" #include "portaudiocpp/CallbackStream.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Forward declaration(s) // Forward declaration(s)
namespace portaudio namespace portaudio
{ {
class StreamParameters; class StreamParameters;
class CallbackInterface; class CallbackInterface;
} }
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Declaration(s): // Declaration(s):
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief Callback stream using an instance of an object that's derived from the CallbackInterface /// @brief Callback stream using an instance of an object that's derived from the CallbackInterface
/// interface. /// interface.
////// //////
class InterfaceCallbackStream : public CallbackStream class InterfaceCallbackStream : public CallbackStream
{ {
public: public:
InterfaceCallbackStream(); InterfaceCallbackStream();
InterfaceCallbackStream(const StreamParameters &parameters, CallbackInterface &instance); InterfaceCallbackStream(const StreamParameters &parameters, CallbackInterface &instance);
~InterfaceCallbackStream(); ~InterfaceCallbackStream();
void open(const StreamParameters &parameters, CallbackInterface &instance); void open(const StreamParameters &parameters, CallbackInterface &instance);
private: private:
InterfaceCallbackStream(const InterfaceCallbackStream &); // non-copyable InterfaceCallbackStream(const InterfaceCallbackStream &); // non-copyable
InterfaceCallbackStream &operator=(const InterfaceCallbackStream &); // non-copyable InterfaceCallbackStream &operator=(const InterfaceCallbackStream &); // non-copyable
}; };
} // portaudio } // portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_INTERFACECALLBACKSTREAM_HXX #endif // INCLUDED_PORTAUDIO_INTERFACECALLBACKSTREAM_HXX

View file

@ -1,107 +1,107 @@
#ifndef INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX #ifndef INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX
#define INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX #define INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudio.h" #include "portaudio.h"
#include "portaudiocpp/CallbackStream.hxx" #include "portaudiocpp/CallbackStream.hxx"
#include "portaudiocpp/CallbackInterface.hxx" #include "portaudiocpp/CallbackInterface.hxx"
#include "portaudiocpp/StreamParameters.hxx" #include "portaudiocpp/StreamParameters.hxx"
#include "portaudiocpp/Exception.hxx" #include "portaudiocpp/Exception.hxx"
#include "portaudiocpp/InterfaceCallbackStream.hxx" #include "portaudiocpp/InterfaceCallbackStream.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief Callback stream using a class's member function as a callback. Template argument T is the type of the /// @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. /// class of which a member function is going to be used.
/// ///
/// Example usage: /// Example usage:
/// @verbatim MemFunCallback<MyClass> stream = MemFunCallbackStream(parameters, *this, &MyClass::myCallbackFunction); @endverbatim /// @verbatim MemFunCallback<MyClass> stream = MemFunCallbackStream(parameters, *this, &MyClass::myCallbackFunction); @endverbatim
////// //////
template<typename T> template<typename T>
class MemFunCallbackStream : public CallbackStream class MemFunCallbackStream : public CallbackStream
{ {
public: public:
typedef int (T::*CallbackFunPtr)(const void *, void *, unsigned long, const PaStreamCallbackTimeInfo *, typedef int (T::*CallbackFunPtr)(const void *, void *, unsigned long, const PaStreamCallbackTimeInfo *,
PaStreamCallbackFlags); PaStreamCallbackFlags);
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
MemFunCallbackStream() MemFunCallbackStream()
{ {
} }
MemFunCallbackStream(const StreamParameters &parameters, T &instance, CallbackFunPtr memFun) : adapter_(instance, memFun) MemFunCallbackStream(const StreamParameters &parameters, T &instance, CallbackFunPtr memFun) : adapter_(instance, memFun)
{ {
open(parameters); open(parameters);
} }
~MemFunCallbackStream() ~MemFunCallbackStream()
{ {
close(); close();
} }
void open(const StreamParameters &parameters, T &instance, CallbackFunPtr memFun) void open(const StreamParameters &parameters, T &instance, CallbackFunPtr memFun)
{ {
// XXX: need to check if already open? // XXX: need to check if already open?
adapter_.init(instance, memFun); adapter_.init(instance, memFun);
open(parameters); open(parameters);
} }
private: private:
MemFunCallbackStream(const MemFunCallbackStream &); // non-copyable MemFunCallbackStream(const MemFunCallbackStream &); // non-copyable
MemFunCallbackStream &operator=(const MemFunCallbackStream &); // non-copyable MemFunCallbackStream &operator=(const MemFunCallbackStream &); // non-copyable
////// //////
/// @brief Inner class which adapts a member function callback to a CallbackInterface compliant /// @brief Inner class which adapts a member function callback to a CallbackInterface compliant
/// class (so it can be adapted using the paCallbackAdapter function). /// class (so it can be adapted using the paCallbackAdapter function).
////// //////
class MemFunToCallbackInterfaceAdapter : public CallbackInterface class MemFunToCallbackInterfaceAdapter : public CallbackInterface
{ {
public: public:
MemFunToCallbackInterfaceAdapter() {} MemFunToCallbackInterfaceAdapter() {}
MemFunToCallbackInterfaceAdapter(T &instance, CallbackFunPtr memFun) : instance_(&instance), memFun_(memFun) {} MemFunToCallbackInterfaceAdapter(T &instance, CallbackFunPtr memFun) : instance_(&instance), memFun_(memFun) {}
void init(T &instance, CallbackFunPtr memFun) void init(T &instance, CallbackFunPtr memFun)
{ {
instance_ = &instance; instance_ = &instance;
memFun_ = memFun; memFun_ = memFun;
} }
int paCallbackFun(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, int paCallbackFun(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags) const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags)
{ {
return (instance_->*memFun_)(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags); return (instance_->*memFun_)(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags);
} }
private: private:
T *instance_; T *instance_;
CallbackFunPtr memFun_; CallbackFunPtr memFun_;
}; };
MemFunToCallbackInterfaceAdapter adapter_; MemFunToCallbackInterfaceAdapter adapter_;
void open(const StreamParameters &parameters) void open(const StreamParameters &parameters)
{ {
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::callbackInterfaceToPaCallbackAdapter, parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::callbackInterfaceToPaCallbackAdapter,
static_cast<void *>(&adapter_)); static_cast<void *>(&adapter_));
if (err != paNoError) if (err != paNoError)
throw PaException(err); throw PaException(err);
} }
}; };
} // portaudio } // portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX #endif // INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX

View file

@ -1,109 +1,109 @@
#ifndef INCLUDED_PORTAUDIO_PORTAUDIOCPP_HXX #ifndef INCLUDED_PORTAUDIO_PORTAUDIOCPP_HXX
#define INCLUDED_PORTAUDIO_PORTAUDIOCPP_HXX #define INCLUDED_PORTAUDIO_PORTAUDIOCPP_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
////// //////
/// @mainpage PortAudioCpp /// @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> /// <h2>PortAudio</h2>
/// <p> /// <p>
/// PortAudio is a portable and mature C API for accessing audio hardware. It offers both callback-based and blocking /// 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 /// 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) /// 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 /// 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 /// 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 /// still in development). Because PortAudio has a C API, it can easily be called from a variety of other programming
/// languages. /// languages.
/// </p> /// </p>
/// <h2>PortAudioCpp</h2> /// <h2>PortAudioCpp</h2>
/// <p> /// <p>
/// Although, it is possible to use PortAudio's C API from within a C++ program, this is usually a little awkward /// 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 /// 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 /// 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 /// 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'. /// no additional features were added except for some `convenience methods'.
/// </p> /// </p>
/// <p> /// <p>
/// PortAudioCpp's main features are: /// PortAudioCpp's main features are:
/// <ul> /// <ul>
/// <li>Structured object model.</li> /// <li>Structured object model.</li>
/// <li>C++ exception handling instead of C-style error return codes.</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> /// derived from a given interface.</li>
/// <li>STL compliant iterators to host APIs and devices.</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> /// <li>Some additional convenience functions to more easily set up and use PortAudio.</li>
/// </ul> /// </ul>
/// </p> /// </p>
/// <p> /// <p>
/// PortAudioCpp requires a recent version of the PortAudio V19 source code. This can be obtained from CVS or as a snapshot /// 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 /// 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. /// examples can easily be modified to compile without needing ASIO.
/// </p> /// </p>
/// <p> /// <p>
/// Supported platforms: /// Supported platforms:
/// <ul> /// <ul>
/// <li>Microsoft Visual C++ 6.0, 7.0 (.NET 2002) and 7.1 (.NET 2003).</li> /// <li>Microsoft Visual C++ 6.0, 7.0 (.NET 2002) and 7.1 (.NET 2003).</li>
/// <li>GNU G++ 2.95 and G++ 3.3.</li> /// <li>GNU G++ 2.95 and G++ 3.3.</li>
/// </ul> /// </ul>
/// Other platforms should be easily supported as PortAudioCpp is platform-independent and (reasonably) C++ standard compliant. /// Other platforms should be easily supported as PortAudioCpp is platform-independent and (reasonably) C++ standard compliant.
/// </p> /// </p>
/// <p> /// <p>
/// This documentation mainly provides information specific to PortAudioCpp. For a more complete explaination 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. /// concepts used, please consult the PortAudio documentation.
/// </p> /// </p>
/// <p> /// <p>
/// PortAudioCpp was developed by Merlijn Blaauw with many great suggestions and help from Ross Bencina. Ludwig Schwardt provided /// 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 /// 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. /// warranty as PortAudio. See <a href="http://www.portaudio.com/license.html">the PortAudio license</a> for more details.
/// </p> /// </p>
/// <h2>Links</h2> /// <h2>Links</h2>
/// <p> /// <p>
/// <a href="http://www.portaudio.com/">Official PortAudio site.</a><br> /// <a href="http://www.portaudio.com/">Official PortAudio site.</a><br>
/// </p> /// </p>
////// //////
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
////// //////
/// @namespace portaudio /// @namespace portaudio
/// ///
/// To avoid name collision, everything in PortAudioCpp is in the 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 /// namespace. If this name is too long it's usually pretty safe to use an
/// alias like ``namespace pa = portaudio;''. /// alias like ``namespace pa = portaudio;''.
////// //////
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
////// //////
/// @file PortAudioCpp.hxx /// @file PortAudioCpp.hxx
/// An include-all header file (for lazy programmers and using pre-compiled headers). /// An include-all header file (for lazy programmers and using pre-compiled headers).
////// //////
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudio.h" #include "portaudio.h"
#include "portaudiocpp/AutoSystem.hxx" #include "portaudiocpp/AutoSystem.hxx"
#include "portaudiocpp/BlockingStream.hxx" #include "portaudiocpp/BlockingStream.hxx"
#include "portaudiocpp/CallbackInterface.hxx" #include "portaudiocpp/CallbackInterface.hxx"
#include "portaudiocpp/CallbackStream.hxx" #include "portaudiocpp/CallbackStream.hxx"
#include "portaudiocpp/CFunCallbackStream.hxx" #include "portaudiocpp/CFunCallbackStream.hxx"
#include "portaudiocpp/CppFunCallbackStream.hxx" #include "portaudiocpp/CppFunCallbackStream.hxx"
#include "portaudiocpp/Device.hxx" #include "portaudiocpp/Device.hxx"
#include "portaudiocpp/Exception.hxx" #include "portaudiocpp/Exception.hxx"
#include "portaudiocpp/HostApi.hxx" #include "portaudiocpp/HostApi.hxx"
#include "portaudiocpp/InterfaceCallbackStream.hxx" #include "portaudiocpp/InterfaceCallbackStream.hxx"
#include "portaudiocpp/MemFunCallbackStream.hxx" #include "portaudiocpp/MemFunCallbackStream.hxx"
#include "portaudiocpp/SampleDataFormat.hxx" #include "portaudiocpp/SampleDataFormat.hxx"
#include "portaudiocpp/DirectionSpecificStreamParameters.hxx" #include "portaudiocpp/DirectionSpecificStreamParameters.hxx"
#include "portaudiocpp/Stream.hxx" #include "portaudiocpp/Stream.hxx"
#include "portaudiocpp/StreamParameters.hxx" #include "portaudiocpp/StreamParameters.hxx"
#include "portaudiocpp/System.hxx" #include "portaudiocpp/System.hxx"
#include "portaudiocpp/SystemDeviceIterator.hxx" #include "portaudiocpp/SystemDeviceIterator.hxx"
#include "portaudiocpp/SystemHostApiIterator.hxx" #include "portaudiocpp/SystemHostApiIterator.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_PORTAUDIOCPP_HXX #endif // INCLUDED_PORTAUDIO_PORTAUDIOCPP_HXX

View file

@ -1,35 +1,35 @@
#ifndef INCLUDED_PORTAUDIO_SAMPLEDATAFORMAT_HXX #ifndef INCLUDED_PORTAUDIO_SAMPLEDATAFORMAT_HXX
#define INCLUDED_PORTAUDIO_SAMPLEDATAFORMAT_HXX #define INCLUDED_PORTAUDIO_SAMPLEDATAFORMAT_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudio.h" #include "portaudio.h"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief PortAudio sample data formats. /// @brief PortAudio sample data formats.
/// ///
/// Small helper enum to wrap the PortAudio defines. /// Small helper enum to wrap the PortAudio defines.
////// //////
enum SampleDataFormat enum SampleDataFormat
{ {
INVALID_FORMAT = 0, INVALID_FORMAT = 0,
FLOAT32 = paFloat32, FLOAT32 = paFloat32,
INT32 = paInt32, INT32 = paInt32,
INT24 = paInt24, INT24 = paInt24,
INT16 = paInt16, INT16 = paInt16,
INT8 = paInt8, INT8 = paInt8,
UINT8 = paUInt8 UINT8 = paUInt8
}; };
} // namespace portaudio } // namespace portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_SAMPLEDATAFORMAT_HXX #endif // INCLUDED_PORTAUDIO_SAMPLEDATAFORMAT_HXX

View file

@ -1,82 +1,81 @@
#ifndef INCLUDED_PORTAUDIO_STREAM_HXX #ifndef INCLUDED_PORTAUDIO_STREAM_HXX
#define INCLUDED_PORTAUDIO_STREAM_HXX #define INCLUDED_PORTAUDIO_STREAM_HXX
#include "portaudio.h" #include "portaudio.h"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Forward declaration(s): // Forward declaration(s):
namespace portaudio namespace portaudio
{ {
class StreamParameters; class StreamParameters;
} }
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Declaration(s): // Declaration(s):
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief A Stream represents an active or inactive input and/or output data /// @brief A Stream represents an active or inactive input and/or output data
/// stream in the System. /// stream in the System.
/// ///
/// Concrete Stream classes should ensure themselves being in a closed state at /// Concrete Stream classes should ensure themselves being in a closed state at
/// destruction (i.e. by calling their own close() method in their deconstructor). /// destruction (i.e. by calling their own close() method in their deconstructor).
/// Following good C++ programming practices, care must be taken to ensure no /// Following good C++ programming practices, care must be taken to ensure no
/// exceptions are thrown by the deconstructor of these classes. As a consequence, /// exceptions are thrown by the deconstructor of these classes. As a consequence,
/// clients need to explicitly call close() to ensure the stream closed successfully. /// 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 /// The Stream object can be used to manipulate the Stream's state. Also, time-constant
/// and time-varying information about the Stream can be retreived. /// and time-varying information about the Stream can be retrieved.
////// //////
class Stream class Stream
{ {
public: public:
// Opening/closing: // Opening/closing:
virtual ~Stream(); virtual ~Stream();
virtual void close(); virtual void close();
bool isOpen() const; bool isOpen() const;
// Additional set up: // Additional set up:
void setStreamFinishedCallback(PaStreamFinishedCallback *callback); void setStreamFinishedCallback(PaStreamFinishedCallback *callback);
// State management: // State management:
void start(); void start();
void stop(); void stop();
void abort(); void abort();
bool isStopped() const; bool isStopped() const;
bool isActive() const; bool isActive() const;
// Stream info (time-constant, but might become time-variant soon): // Stream info (time-constant, but might become time-variant soon):
PaTime inputLatency() const; PaTime inputLatency() const;
PaTime outputLatency() const; PaTime outputLatency() const;
double sampleRate() const; double sampleRate() const;
// Stream info (time-varying): // Stream info (time-varying):
PaTime time() const; PaTime time() const;
// Accessors for PortAudio PaStream, useful for interfacing // Accessors for PortAudio PaStream, useful for interfacing
// with PortAudio add-ons (such as PortMixer) for instance: // with PortAudio add-ons (such as PortMixer) for instance:
const PaStream *paStream() const; const PaStream *paStream() const;
PaStream *paStream(); PaStream *paStream();
protected: protected:
Stream(); // abstract class Stream(); // abstract class
PaStream *stream_; PaStream *stream_;
private: private:
Stream(const Stream &); // non-copyable Stream(const Stream &); // non-copyable
Stream &operator=(const Stream &); // non-copyable Stream &operator=(const Stream &); // non-copyable
}; };
} // namespace portaudio } // namespace portaudio
#endif // INCLUDED_PORTAUDIO_STREAM_HXX #endif // INCLUDED_PORTAUDIO_STREAM_HXX

View file

@ -1,77 +1,77 @@
#ifndef INCLUDED_PORTAUDIO_STREAMPARAMETERS_HXX #ifndef INCLUDED_PORTAUDIO_STREAMPARAMETERS_HXX
#define INCLUDED_PORTAUDIO_STREAMPARAMETERS_HXX #define INCLUDED_PORTAUDIO_STREAMPARAMETERS_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudio.h" #include "portaudio.h"
#include "portaudiocpp/DirectionSpecificStreamParameters.hxx" #include "portaudiocpp/DirectionSpecificStreamParameters.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Declaration(s): // Declaration(s):
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief The entire set of parameters needed to configure and open /// @brief The entire set of parameters needed to configure and open
/// a Stream. /// a Stream.
/// ///
/// It contains parameters of input, output and shared parameters. /// It contains parameters of input, output and shared parameters.
/// Using the isSupported() method, the StreamParameters can be /// Using the isSupported() method, the StreamParameters can be
/// checked if opening a Stream using this StreamParameters would /// checked if opening a Stream using this StreamParameters would
/// succeed or not. Accessors are provided to higher-level parameters /// succeed or not. Accessors are provided to higher-level parameters
/// aswell as the lower-level parameters which are mainly intended for /// aswell as the lower-level parameters which are mainly intended for
/// internal use. /// internal use.
////// //////
class StreamParameters class StreamParameters
{ {
public: public:
StreamParameters(); StreamParameters();
StreamParameters(const DirectionSpecificStreamParameters &inputParameters, StreamParameters(const DirectionSpecificStreamParameters &inputParameters,
const DirectionSpecificStreamParameters &outputParameters, double sampleRate, const DirectionSpecificStreamParameters &outputParameters, double sampleRate,
unsigned long framesPerBuffer, PaStreamFlags flags); unsigned long framesPerBuffer, PaStreamFlags flags);
// Set up for direction-specific: // Set up for direction-specific:
void setInputParameters(const DirectionSpecificStreamParameters &parameters); void setInputParameters(const DirectionSpecificStreamParameters &parameters);
void setOutputParameters(const DirectionSpecificStreamParameters &parameters); void setOutputParameters(const DirectionSpecificStreamParameters &parameters);
// Set up for common parameters: // Set up for common parameters:
void setSampleRate(double sampleRate); void setSampleRate(double sampleRate);
void setFramesPerBuffer(unsigned long framesPerBuffer); void setFramesPerBuffer(unsigned long framesPerBuffer);
void setFlag(PaStreamFlags flag); void setFlag(PaStreamFlags flag);
void unsetFlag(PaStreamFlags flag); void unsetFlag(PaStreamFlags flag);
void clearFlags(); void clearFlags();
// Validation: // Validation:
bool isSupported() const; bool isSupported() const;
// Accessors (direction-specific): // Accessors (direction-specific):
DirectionSpecificStreamParameters &inputParameters(); DirectionSpecificStreamParameters &inputParameters();
const DirectionSpecificStreamParameters &inputParameters() const; const DirectionSpecificStreamParameters &inputParameters() const;
DirectionSpecificStreamParameters &outputParameters(); DirectionSpecificStreamParameters &outputParameters();
const DirectionSpecificStreamParameters &outputParameters() const; const DirectionSpecificStreamParameters &outputParameters() const;
// Accessors (common): // Accessors (common):
double sampleRate() const; double sampleRate() const;
unsigned long framesPerBuffer() const; unsigned long framesPerBuffer() const;
PaStreamFlags flags() const; PaStreamFlags flags() const;
bool isFlagSet(PaStreamFlags flag) const; bool isFlagSet(PaStreamFlags flag) const;
private: private:
// Half-duplex specific parameters: // Half-duplex specific parameters:
DirectionSpecificStreamParameters inputParameters_; DirectionSpecificStreamParameters inputParameters_;
DirectionSpecificStreamParameters outputParameters_; DirectionSpecificStreamParameters outputParameters_;
// Common parameters: // Common parameters:
double sampleRate_; double sampleRate_;
unsigned long framesPerBuffer_; unsigned long framesPerBuffer_;
PaStreamFlags flags_; PaStreamFlags flags_;
}; };
} // namespace portaudio } // namespace portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_STREAMPARAMETERS_HXX #endif // INCLUDED_PORTAUDIO_STREAMPARAMETERS_HXX

View file

@ -1,107 +1,106 @@
#ifndef INCLUDED_PORTAUDIO_SYSTEM_HXX #ifndef INCLUDED_PORTAUDIO_SYSTEM_HXX
#define INCLUDED_PORTAUDIO_SYSTEM_HXX #define INCLUDED_PORTAUDIO_SYSTEM_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include "portaudio.h" #include "portaudio.h"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Forward declaration(s): // Forward declaration(s):
namespace portaudio namespace portaudio
{ {
class Device; class Device;
class Stream; class Stream;
class HostApi; class HostApi;
} }
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Declaration(s): // Declaration(s):
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief System singleton which represents the PortAudio system. /// @brief System singleton which represents the PortAudio system.
/// ///
/// The System is used to initialize/terminate PortAudio and provide /// The System is used to initialize/terminate PortAudio and provide
/// a single acccess point to the PortAudio System (instance()). /// a single access point to the PortAudio System (instance()).
/// It can be used to iterate through all HostApi 's in the System as /// 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 /// well as all devices in the System. It also provides some utility
/// functionality of PortAudio. /// functionality of PortAudio.
/// ///
/// Terminating the System will also abort and close the open streams. /// Terminating the System will also abort and close the open streams.
/// The Stream objects will need to be deallocated by the client though /// The Stream objects will need to be deallocated by the client though
/// (it's usually a good idea to have them cleaned up automatically). /// (it's usually a good idea to have them cleaned up automatically).
////// //////
class System class System
{ {
public: public:
class HostApiIterator; // forward declaration class HostApiIterator; // forward declaration
class DeviceIterator; // forward declaration class DeviceIterator; // forward declaration
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
static int version(); static int version();
static const char *versionText(); static const char *versionText();
static void initialize(); static void initialize();
static void terminate(); static void terminate();
static System &instance(); static System &instance();
static bool exists(); static bool exists();
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
// host apis: // host apis:
HostApiIterator hostApisBegin(); HostApiIterator hostApisBegin();
HostApiIterator hostApisEnd(); HostApiIterator hostApisEnd();
HostApi &defaultHostApi(); HostApi &defaultHostApi();
HostApi &hostApiByTypeId(PaHostApiTypeId type); HostApi &hostApiByTypeId(PaHostApiTypeId type);
HostApi &hostApiByIndex(PaHostApiIndex index); HostApi &hostApiByIndex(PaHostApiIndex index);
int hostApiCount(); int hostApiCount();
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
// devices: // devices:
DeviceIterator devicesBegin(); DeviceIterator devicesBegin();
DeviceIterator devicesEnd(); DeviceIterator devicesEnd();
Device &defaultInputDevice(); Device &defaultInputDevice();
Device &defaultOutputDevice(); Device &defaultOutputDevice();
Device &deviceByIndex(PaDeviceIndex index); Device &deviceByIndex(PaDeviceIndex index);
int deviceCount(); int deviceCount();
static Device &nullDevice(); static Device &nullDevice();
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
// misc: // misc:
void sleep(long msec); void sleep(long msec);
int sizeOfSample(PaSampleFormat format); int sizeOfSample(PaSampleFormat format);
private: private:
System(); System();
~System(); ~System();
static System *instance_; static System *instance_;
static int initCount_; static int initCount_;
static HostApi **hostApis_; static HostApi **hostApis_;
static Device **devices_; static Device **devices_;
static Device *nullDevice_; static Device *nullDevice_;
}; };
} // namespace portaudio } // namespace portaudio
#endif // INCLUDED_PORTAUDIO_SYSTEM_HXX #endif // INCLUDED_PORTAUDIO_SYSTEM_HXX

View file

@ -1,66 +1,65 @@
#ifndef INCLUDED_PORTAUDIO_SYSTEMDEVICEITERATOR_HXX #ifndef INCLUDED_PORTAUDIO_SYSTEMDEVICEITERATOR_HXX
#define INCLUDED_PORTAUDIO_SYSTEMDEVICEITERATOR_HXX #define INCLUDED_PORTAUDIO_SYSTEMDEVICEITERATOR_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include <iterator> #include <iterator>
#include <cstddef> #include <cstddef>
#include "portaudiocpp/System.hxx" #include "portaudiocpp/System.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Forward declaration(s): // Forward declaration(s):
namespace portaudio namespace portaudio
{ {
class Device; class Device;
class HostApi; class HostApi;
} }
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Declaration(s): // Declaration(s):
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief Iterator class for iterating through all Devices in a System. /// @brief Iterator class for iterating through all Devices in a System.
/// ///
/// Devices will be iterated by iterating all Devices in each /// Devices will be iterated by iterating all Devices in each
/// HostApi in the System. Compliant with the STL bidirectional /// HostApi in the System. Compliant with the STL bidirectional
/// iterator concept. /// iterator concept.
////// //////
class System::DeviceIterator class System::DeviceIterator
{ {
public: public:
typedef std::bidirectional_iterator_tag iterator_category; typedef std::bidirectional_iterator_tag iterator_category;
typedef Device value_type; typedef Device value_type;
typedef ptrdiff_t difference_type; typedef ptrdiff_t difference_type;
typedef Device * pointer; typedef Device * pointer;
typedef Device & reference; typedef Device & reference;
Device &operator*() const; Device &operator*() const;
Device *operator->() const; Device *operator->() const;
DeviceIterator &operator++(); DeviceIterator &operator++();
DeviceIterator operator++(int); DeviceIterator operator++(int);
DeviceIterator &operator--(); DeviceIterator &operator--();
DeviceIterator operator--(int); DeviceIterator operator--(int);
bool operator==(const DeviceIterator &rhs); bool operator==(const DeviceIterator &rhs) const;
bool operator!=(const DeviceIterator &rhs); bool operator!=(const DeviceIterator &rhs) const;
private: private:
friend class System; friend class System;
friend class HostApi; friend class HostApi;
Device **ptr_; Device **ptr_;
}; };
} // namespace portaudio } // namespace portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_SYSTEMDEVICEITERATOR_HXX #endif // INCLUDED_PORTAUDIO_SYSTEMDEVICEITERATOR_HXX

View file

@ -1,61 +1,61 @@
#ifndef INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX #ifndef INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX
#define INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX #define INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#include <iterator> #include <iterator>
#include <cstddef> #include <cstddef>
#include "portaudiocpp/System.hxx" #include "portaudiocpp/System.hxx"
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Forward declaration(s): // Forward declaration(s):
namespace portaudio namespace portaudio
{ {
class HostApi; class HostApi;
} }
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Declaration(s): // Declaration(s):
namespace portaudio namespace portaudio
{ {
////// //////
/// @brief Iterator class for iterating through all HostApis in a System. /// @brief Iterator class for iterating through all HostApis in a System.
/// ///
/// Compliant with the STL bidirectional iterator concept. /// Compliant with the STL bidirectional iterator concept.
////// //////
class System::HostApiIterator class System::HostApiIterator
{ {
public: public:
typedef std::bidirectional_iterator_tag iterator_category; typedef std::bidirectional_iterator_tag iterator_category;
typedef Device value_type; typedef Device value_type;
typedef ptrdiff_t difference_type; typedef ptrdiff_t difference_type;
typedef HostApi * pointer; typedef HostApi * pointer;
typedef HostApi & reference; typedef HostApi & reference;
HostApi &operator*() const; HostApi &operator*() const;
HostApi *operator->() const; HostApi *operator->() const;
HostApiIterator &operator++(); HostApiIterator &operator++();
HostApiIterator operator++(int); HostApiIterator operator++(int);
HostApiIterator &operator--(); HostApiIterator &operator--();
HostApiIterator operator--(int); HostApiIterator operator--(int);
bool operator==(const HostApiIterator &rhs); bool operator==(const HostApiIterator &rhs) const;
bool operator!=(const HostApiIterator &rhs); bool operator!=(const HostApiIterator &rhs) const;
private: private:
friend class System; friend class System;
HostApi **ptr_; HostApi **ptr_;
}; };
} // namespace portaudio } // namespace portaudio
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
#endif // INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX #endif // INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX

BIN
bindings/cpp/install-sh Executable file

Binary file not shown.

View file

@ -1,9 +1,8 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am. # Makefile.in generated by automake 1.16.5 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994-2021 Free Software Foundation, Inc.
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -16,6 +15,61 @@
@SET_MAKE@ @SET_MAKE@
VPATH = @srcdir@ 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__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
@ -35,11 +89,11 @@ POST_UNINSTALL = :
build_triplet = @build@ build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
subdir = lib subdir = lib
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4) $(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES = CONFIG_CLEAN_VPATH_FILES =
@ -64,6 +118,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \ am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(libdir)" am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES) LTLIBRARIES = $(lib_LTLIBRARIES)
libportaudiocpp_la_DEPENDENCIES = \ libportaudiocpp_la_DEPENDENCIES = \
@ -76,28 +136,88 @@ am_libportaudiocpp_la_OBJECTS = BlockingStream.lo CallbackInterface.lo \
StreamParameters.lo System.lo SystemDeviceIterator.lo \ StreamParameters.lo System.lo SystemDeviceIterator.lo \
SystemHostApiIterator.lo SystemHostApiIterator.lo
libportaudiocpp_la_OBJECTS = $(am_libportaudiocpp_la_OBJECTS) libportaudiocpp_la_OBJECTS = $(am_libportaudiocpp_la_OBJECTS)
libportaudiocpp_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ AM_V_lt = $(am__v_lt_@AM_V@)
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
$(CXXFLAGS) $(libportaudiocpp_la_LDFLAGS) $(LDFLAGS) -o $@ am__v_lt_0 = --silent
depcomp = $(SHELL) $(top_srcdir)/../../depcomp am__v_lt_1 =
am__depfiles_maybe = depfiles libportaudiocpp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
$(AM_CXXFLAGS) $(CXXFLAGS) $(libportaudiocpp_la_LDFLAGS) \
$(LDFLAGS) -o $@
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
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
am__mv = mv -f am__mv = mv -f
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
am__v_CXX_0 = @echo " CXX " $@;
am__v_CXX_1 =
CXXLD = $(CXX) CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(LDFLAGS) -o $@ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
am__v_CXXLD_0 = @echo " CXXLD " $@;
am__v_CXXLD_1 =
SOURCES = $(libportaudiocpp_la_SOURCES) SOURCES = $(libportaudiocpp_la_SOURCES)
DIST_SOURCES = $(libportaudiocpp_la_SOURCES) DIST_SOURCES = $(libportaudiocpp_la_SOURCES)
ETAGS = etags am__can_run_installinfo = \
CTAGS = ctags case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
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
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__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
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@ AR = @AR@
AS = @AS@ AS = @AS@
AUTOCONF = @AUTOCONF@ AUTOCONF = @AUTOCONF@
@ -107,8 +227,9 @@ AWK = @AWK@
CC = @CC@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CSCOPE = @CSCOPE@
CTAGS = @CTAGS@
CXX = @CXX@ CXX = @CXX@
CXXCPP = @CXXCPP@ CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@ CXXDEPMODE = @CXXDEPMODE@
@ -124,6 +245,7 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@ EGREP = @EGREP@
ETAGS = @ETAGS@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
FGREP = @FGREP@ FGREP = @FGREP@
GREP = @GREP@ GREP = @GREP@
@ -140,9 +262,11 @@ LIBTOOL = @LIBTOOL@
LIPO = @LIPO@ LIPO = @LIPO@
LN_S = @LN_S@ LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@ LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
LT_VERSION_INFO = @LT_VERSION_INFO@ LT_VERSION_INFO = @LT_VERSION_INFO@
MAINT = @MAINT@ MAINT = @MAINT@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@ MKDIR_P = @MKDIR_P@
NM = @NM@ NM = @NM@
NMEDIT = @NMEDIT@ NMEDIT = @NMEDIT@
@ -169,6 +293,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@ abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@ ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@ ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@ -202,7 +327,6 @@ libdir = @libdir@
libexecdir = @libexecdir@ libexecdir = @libexecdir@
localedir = @localedir@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@ mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
@ -210,6 +334,7 @@ pdfdir = @pdfdir@
prefix = @prefix@ prefix = @prefix@
program_transform_name = @program_transform_name@ program_transform_name = @program_transform_name@
psdir = @psdir@ psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@ srcdir = @srcdir@
@ -257,14 +382,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \
$(am__cd) $(top_srcdir) && \ $(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu lib/Makefile $(AUTOMAKE) --gnu lib/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \ @case '$?' in \
*config.status*) \ *config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \ *) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac; esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@ -275,9 +399,9 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps): $(am__aclocal_m4_deps):
install-libLTLIBRARIES: $(lib_LTLIBRARIES) install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
list2=; for p in $$list; do \ list2=; for p in $$list; do \
if test -f $$p; then \ if test -f $$p; then \
@ -285,6 +409,8 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
else :; fi; \ else :; fi; \
done; \ done; \
test -z "$$list2" || { \ test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
} }
@ -300,14 +426,17 @@ uninstall-libLTLIBRARIES:
clean-libLTLIBRARIES: clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \ @list='$(lib_LTLIBRARIES)'; \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ locs=`for p in $$list; do echo $$p; done | \
test "$$dir" != "$$p" || dir=.; \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
echo "rm -f \"$${dir}/so_locations\""; \ sort -u`; \
rm -f "$${dir}/so_locations"; \ test -z "$$locs" || { \
done echo rm -f $${locs}; \
libportaudiocpp.la: $(libportaudiocpp_la_OBJECTS) $(libportaudiocpp_la_DEPENDENCIES) rm -f $${locs}; \
$(libportaudiocpp_la_LINK) -rpath $(libdir) $(libportaudiocpp_la_OBJECTS) $(libportaudiocpp_la_LIBADD) $(LIBS) }
libportaudiocpp.la: $(libportaudiocpp_la_OBJECTS) $(libportaudiocpp_la_DEPENDENCIES) $(EXTRA_libportaudiocpp_la_DEPENDENCIES)
$(AM_V_CXXLD)$(libportaudiocpp_la_LINK) -rpath $(libdir) $(libportaudiocpp_la_OBJECTS) $(libportaudiocpp_la_LIBADD) $(LIBS)
mostlyclean-compile: mostlyclean-compile:
-rm -f *.$(OBJEXT) -rm -f *.$(OBJEXT)
@ -315,155 +444,161 @@ mostlyclean-compile:
distclean-compile: distclean-compile:
-rm -f *.tab.c -rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BlockingStream.Plo@am__quote@ @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@ @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@ @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@ @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@ @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@ @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@ @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@ @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@ @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@ @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@ @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@ @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@ @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@ @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@ @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@ @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)
.cxx.o: .cxx.o:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
.cxx.obj: .cxx.obj:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cxx.lo: .cxx.lo:
@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
BlockingStream.lo: $(SRCDIR)/BlockingStream.cxx BlockingStream.lo: $(SRCDIR)/BlockingStream.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BlockingStream.lo -MD -MP -MF $(DEPDIR)/BlockingStream.Tpo -c -o BlockingStream.lo `test -f '$(SRCDIR)/BlockingStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/BlockingStream.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BlockingStream.lo -MD -MP -MF $(DEPDIR)/BlockingStream.Tpo -c -o BlockingStream.lo `test -f '$(SRCDIR)/BlockingStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/BlockingStream.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/BlockingStream.Tpo $(DEPDIR)/BlockingStream.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/BlockingStream.Tpo $(DEPDIR)/BlockingStream.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/BlockingStream.cxx' object='BlockingStream.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/BlockingStream.cxx' object='BlockingStream.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BlockingStream.lo `test -f '$(SRCDIR)/BlockingStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/BlockingStream.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BlockingStream.lo `test -f '$(SRCDIR)/BlockingStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/BlockingStream.cxx
CallbackInterface.lo: $(SRCDIR)/CallbackInterface.cxx CallbackInterface.lo: $(SRCDIR)/CallbackInterface.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CallbackInterface.lo -MD -MP -MF $(DEPDIR)/CallbackInterface.Tpo -c -o CallbackInterface.lo `test -f '$(SRCDIR)/CallbackInterface.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CallbackInterface.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CallbackInterface.lo -MD -MP -MF $(DEPDIR)/CallbackInterface.Tpo -c -o CallbackInterface.lo `test -f '$(SRCDIR)/CallbackInterface.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CallbackInterface.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/CallbackInterface.Tpo $(DEPDIR)/CallbackInterface.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CallbackInterface.Tpo $(DEPDIR)/CallbackInterface.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/CallbackInterface.cxx' object='CallbackInterface.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/CallbackInterface.cxx' object='CallbackInterface.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CallbackInterface.lo `test -f '$(SRCDIR)/CallbackInterface.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CallbackInterface.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CallbackInterface.lo `test -f '$(SRCDIR)/CallbackInterface.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CallbackInterface.cxx
CallbackStream.lo: $(SRCDIR)/CallbackStream.cxx CallbackStream.lo: $(SRCDIR)/CallbackStream.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CallbackStream.lo -MD -MP -MF $(DEPDIR)/CallbackStream.Tpo -c -o CallbackStream.lo `test -f '$(SRCDIR)/CallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CallbackStream.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CallbackStream.lo -MD -MP -MF $(DEPDIR)/CallbackStream.Tpo -c -o CallbackStream.lo `test -f '$(SRCDIR)/CallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CallbackStream.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/CallbackStream.Tpo $(DEPDIR)/CallbackStream.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CallbackStream.Tpo $(DEPDIR)/CallbackStream.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/CallbackStream.cxx' object='CallbackStream.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/CallbackStream.cxx' object='CallbackStream.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CallbackStream.lo `test -f '$(SRCDIR)/CallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CallbackStream.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CallbackStream.lo `test -f '$(SRCDIR)/CallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CallbackStream.cxx
CFunCallbackStream.lo: $(SRCDIR)/CFunCallbackStream.cxx CFunCallbackStream.lo: $(SRCDIR)/CFunCallbackStream.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CFunCallbackStream.lo -MD -MP -MF $(DEPDIR)/CFunCallbackStream.Tpo -c -o CFunCallbackStream.lo `test -f '$(SRCDIR)/CFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CFunCallbackStream.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CFunCallbackStream.lo -MD -MP -MF $(DEPDIR)/CFunCallbackStream.Tpo -c -o CFunCallbackStream.lo `test -f '$(SRCDIR)/CFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CFunCallbackStream.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/CFunCallbackStream.Tpo $(DEPDIR)/CFunCallbackStream.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CFunCallbackStream.Tpo $(DEPDIR)/CFunCallbackStream.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/CFunCallbackStream.cxx' object='CFunCallbackStream.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/CFunCallbackStream.cxx' object='CFunCallbackStream.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CFunCallbackStream.lo `test -f '$(SRCDIR)/CFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CFunCallbackStream.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CFunCallbackStream.lo `test -f '$(SRCDIR)/CFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CFunCallbackStream.cxx
CppFunCallbackStream.lo: $(SRCDIR)/CppFunCallbackStream.cxx CppFunCallbackStream.lo: $(SRCDIR)/CppFunCallbackStream.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CppFunCallbackStream.lo -MD -MP -MF $(DEPDIR)/CppFunCallbackStream.Tpo -c -o CppFunCallbackStream.lo `test -f '$(SRCDIR)/CppFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CppFunCallbackStream.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CppFunCallbackStream.lo -MD -MP -MF $(DEPDIR)/CppFunCallbackStream.Tpo -c -o CppFunCallbackStream.lo `test -f '$(SRCDIR)/CppFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CppFunCallbackStream.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/CppFunCallbackStream.Tpo $(DEPDIR)/CppFunCallbackStream.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/CppFunCallbackStream.Tpo $(DEPDIR)/CppFunCallbackStream.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/CppFunCallbackStream.cxx' object='CppFunCallbackStream.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/CppFunCallbackStream.cxx' object='CppFunCallbackStream.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CppFunCallbackStream.lo `test -f '$(SRCDIR)/CppFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CppFunCallbackStream.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CppFunCallbackStream.lo `test -f '$(SRCDIR)/CppFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CppFunCallbackStream.cxx
Device.lo: $(SRCDIR)/Device.cxx Device.lo: $(SRCDIR)/Device.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Device.lo -MD -MP -MF $(DEPDIR)/Device.Tpo -c -o Device.lo `test -f '$(SRCDIR)/Device.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Device.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Device.lo -MD -MP -MF $(DEPDIR)/Device.Tpo -c -o Device.lo `test -f '$(SRCDIR)/Device.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Device.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Device.Tpo $(DEPDIR)/Device.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Device.Tpo $(DEPDIR)/Device.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/Device.cxx' object='Device.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/Device.cxx' object='Device.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Device.lo `test -f '$(SRCDIR)/Device.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Device.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Device.lo `test -f '$(SRCDIR)/Device.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Device.cxx
DirectionSpecificStreamParameters.lo: $(SRCDIR)/DirectionSpecificStreamParameters.cxx DirectionSpecificStreamParameters.lo: $(SRCDIR)/DirectionSpecificStreamParameters.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DirectionSpecificStreamParameters.lo -MD -MP -MF $(DEPDIR)/DirectionSpecificStreamParameters.Tpo -c -o DirectionSpecificStreamParameters.lo `test -f '$(SRCDIR)/DirectionSpecificStreamParameters.cxx' || echo '$(srcdir)/'`$(SRCDIR)/DirectionSpecificStreamParameters.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DirectionSpecificStreamParameters.lo -MD -MP -MF $(DEPDIR)/DirectionSpecificStreamParameters.Tpo -c -o DirectionSpecificStreamParameters.lo `test -f '$(SRCDIR)/DirectionSpecificStreamParameters.cxx' || echo '$(srcdir)/'`$(SRCDIR)/DirectionSpecificStreamParameters.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DirectionSpecificStreamParameters.Tpo $(DEPDIR)/DirectionSpecificStreamParameters.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/DirectionSpecificStreamParameters.Tpo $(DEPDIR)/DirectionSpecificStreamParameters.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/DirectionSpecificStreamParameters.cxx' object='DirectionSpecificStreamParameters.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/DirectionSpecificStreamParameters.cxx' object='DirectionSpecificStreamParameters.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DirectionSpecificStreamParameters.lo `test -f '$(SRCDIR)/DirectionSpecificStreamParameters.cxx' || echo '$(srcdir)/'`$(SRCDIR)/DirectionSpecificStreamParameters.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DirectionSpecificStreamParameters.lo `test -f '$(SRCDIR)/DirectionSpecificStreamParameters.cxx' || echo '$(srcdir)/'`$(SRCDIR)/DirectionSpecificStreamParameters.cxx
Exception.lo: $(SRCDIR)/Exception.cxx Exception.lo: $(SRCDIR)/Exception.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Exception.lo -MD -MP -MF $(DEPDIR)/Exception.Tpo -c -o Exception.lo `test -f '$(SRCDIR)/Exception.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Exception.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Exception.lo -MD -MP -MF $(DEPDIR)/Exception.Tpo -c -o Exception.lo `test -f '$(SRCDIR)/Exception.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Exception.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Exception.Tpo $(DEPDIR)/Exception.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Exception.Tpo $(DEPDIR)/Exception.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/Exception.cxx' object='Exception.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/Exception.cxx' object='Exception.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Exception.lo `test -f '$(SRCDIR)/Exception.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Exception.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Exception.lo `test -f '$(SRCDIR)/Exception.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Exception.cxx
HostApi.lo: $(SRCDIR)/HostApi.cxx HostApi.lo: $(SRCDIR)/HostApi.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT HostApi.lo -MD -MP -MF $(DEPDIR)/HostApi.Tpo -c -o HostApi.lo `test -f '$(SRCDIR)/HostApi.cxx' || echo '$(srcdir)/'`$(SRCDIR)/HostApi.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT HostApi.lo -MD -MP -MF $(DEPDIR)/HostApi.Tpo -c -o HostApi.lo `test -f '$(SRCDIR)/HostApi.cxx' || echo '$(srcdir)/'`$(SRCDIR)/HostApi.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/HostApi.Tpo $(DEPDIR)/HostApi.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/HostApi.Tpo $(DEPDIR)/HostApi.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/HostApi.cxx' object='HostApi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/HostApi.cxx' object='HostApi.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o HostApi.lo `test -f '$(SRCDIR)/HostApi.cxx' || echo '$(srcdir)/'`$(SRCDIR)/HostApi.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o HostApi.lo `test -f '$(SRCDIR)/HostApi.cxx' || echo '$(srcdir)/'`$(SRCDIR)/HostApi.cxx
InterfaceCallbackStream.lo: $(SRCDIR)/InterfaceCallbackStream.cxx InterfaceCallbackStream.lo: $(SRCDIR)/InterfaceCallbackStream.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InterfaceCallbackStream.lo -MD -MP -MF $(DEPDIR)/InterfaceCallbackStream.Tpo -c -o InterfaceCallbackStream.lo `test -f '$(SRCDIR)/InterfaceCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/InterfaceCallbackStream.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InterfaceCallbackStream.lo -MD -MP -MF $(DEPDIR)/InterfaceCallbackStream.Tpo -c -o InterfaceCallbackStream.lo `test -f '$(SRCDIR)/InterfaceCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/InterfaceCallbackStream.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/InterfaceCallbackStream.Tpo $(DEPDIR)/InterfaceCallbackStream.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/InterfaceCallbackStream.Tpo $(DEPDIR)/InterfaceCallbackStream.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/InterfaceCallbackStream.cxx' object='InterfaceCallbackStream.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/InterfaceCallbackStream.cxx' object='InterfaceCallbackStream.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InterfaceCallbackStream.lo `test -f '$(SRCDIR)/InterfaceCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/InterfaceCallbackStream.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InterfaceCallbackStream.lo `test -f '$(SRCDIR)/InterfaceCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/InterfaceCallbackStream.cxx
MemFunCallbackStream.lo: $(SRCDIR)/MemFunCallbackStream.cxx MemFunCallbackStream.lo: $(SRCDIR)/MemFunCallbackStream.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MemFunCallbackStream.lo -MD -MP -MF $(DEPDIR)/MemFunCallbackStream.Tpo -c -o MemFunCallbackStream.lo `test -f '$(SRCDIR)/MemFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/MemFunCallbackStream.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MemFunCallbackStream.lo -MD -MP -MF $(DEPDIR)/MemFunCallbackStream.Tpo -c -o MemFunCallbackStream.lo `test -f '$(SRCDIR)/MemFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/MemFunCallbackStream.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/MemFunCallbackStream.Tpo $(DEPDIR)/MemFunCallbackStream.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/MemFunCallbackStream.Tpo $(DEPDIR)/MemFunCallbackStream.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/MemFunCallbackStream.cxx' object='MemFunCallbackStream.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/MemFunCallbackStream.cxx' object='MemFunCallbackStream.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MemFunCallbackStream.lo `test -f '$(SRCDIR)/MemFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/MemFunCallbackStream.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MemFunCallbackStream.lo `test -f '$(SRCDIR)/MemFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/MemFunCallbackStream.cxx
Stream.lo: $(SRCDIR)/Stream.cxx Stream.lo: $(SRCDIR)/Stream.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Stream.lo -MD -MP -MF $(DEPDIR)/Stream.Tpo -c -o Stream.lo `test -f '$(SRCDIR)/Stream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Stream.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Stream.lo -MD -MP -MF $(DEPDIR)/Stream.Tpo -c -o Stream.lo `test -f '$(SRCDIR)/Stream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Stream.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Stream.Tpo $(DEPDIR)/Stream.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/Stream.Tpo $(DEPDIR)/Stream.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/Stream.cxx' object='Stream.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/Stream.cxx' object='Stream.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Stream.lo `test -f '$(SRCDIR)/Stream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Stream.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Stream.lo `test -f '$(SRCDIR)/Stream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Stream.cxx
StreamParameters.lo: $(SRCDIR)/StreamParameters.cxx StreamParameters.lo: $(SRCDIR)/StreamParameters.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StreamParameters.lo -MD -MP -MF $(DEPDIR)/StreamParameters.Tpo -c -o StreamParameters.lo `test -f '$(SRCDIR)/StreamParameters.cxx' || echo '$(srcdir)/'`$(SRCDIR)/StreamParameters.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StreamParameters.lo -MD -MP -MF $(DEPDIR)/StreamParameters.Tpo -c -o StreamParameters.lo `test -f '$(SRCDIR)/StreamParameters.cxx' || echo '$(srcdir)/'`$(SRCDIR)/StreamParameters.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/StreamParameters.Tpo $(DEPDIR)/StreamParameters.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/StreamParameters.Tpo $(DEPDIR)/StreamParameters.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/StreamParameters.cxx' object='StreamParameters.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/StreamParameters.cxx' object='StreamParameters.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StreamParameters.lo `test -f '$(SRCDIR)/StreamParameters.cxx' || echo '$(srcdir)/'`$(SRCDIR)/StreamParameters.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StreamParameters.lo `test -f '$(SRCDIR)/StreamParameters.cxx' || echo '$(srcdir)/'`$(SRCDIR)/StreamParameters.cxx
System.lo: $(SRCDIR)/System.cxx System.lo: $(SRCDIR)/System.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT System.lo -MD -MP -MF $(DEPDIR)/System.Tpo -c -o System.lo `test -f '$(SRCDIR)/System.cxx' || echo '$(srcdir)/'`$(SRCDIR)/System.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT System.lo -MD -MP -MF $(DEPDIR)/System.Tpo -c -o System.lo `test -f '$(SRCDIR)/System.cxx' || echo '$(srcdir)/'`$(SRCDIR)/System.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/System.Tpo $(DEPDIR)/System.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/System.Tpo $(DEPDIR)/System.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/System.cxx' object='System.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/System.cxx' object='System.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o System.lo `test -f '$(SRCDIR)/System.cxx' || echo '$(srcdir)/'`$(SRCDIR)/System.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o System.lo `test -f '$(SRCDIR)/System.cxx' || echo '$(srcdir)/'`$(SRCDIR)/System.cxx
SystemDeviceIterator.lo: $(SRCDIR)/SystemDeviceIterator.cxx SystemDeviceIterator.lo: $(SRCDIR)/SystemDeviceIterator.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SystemDeviceIterator.lo -MD -MP -MF $(DEPDIR)/SystemDeviceIterator.Tpo -c -o SystemDeviceIterator.lo `test -f '$(SRCDIR)/SystemDeviceIterator.cxx' || echo '$(srcdir)/'`$(SRCDIR)/SystemDeviceIterator.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SystemDeviceIterator.lo -MD -MP -MF $(DEPDIR)/SystemDeviceIterator.Tpo -c -o SystemDeviceIterator.lo `test -f '$(SRCDIR)/SystemDeviceIterator.cxx' || echo '$(srcdir)/'`$(SRCDIR)/SystemDeviceIterator.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SystemDeviceIterator.Tpo $(DEPDIR)/SystemDeviceIterator.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/SystemDeviceIterator.Tpo $(DEPDIR)/SystemDeviceIterator.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/SystemDeviceIterator.cxx' object='SystemDeviceIterator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/SystemDeviceIterator.cxx' object='SystemDeviceIterator.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SystemDeviceIterator.lo `test -f '$(SRCDIR)/SystemDeviceIterator.cxx' || echo '$(srcdir)/'`$(SRCDIR)/SystemDeviceIterator.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SystemDeviceIterator.lo `test -f '$(SRCDIR)/SystemDeviceIterator.cxx' || echo '$(srcdir)/'`$(SRCDIR)/SystemDeviceIterator.cxx
SystemHostApiIterator.lo: $(SRCDIR)/SystemHostApiIterator.cxx SystemHostApiIterator.lo: $(SRCDIR)/SystemHostApiIterator.cxx
@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SystemHostApiIterator.lo -MD -MP -MF $(DEPDIR)/SystemHostApiIterator.Tpo -c -o SystemHostApiIterator.lo `test -f '$(SRCDIR)/SystemHostApiIterator.cxx' || echo '$(srcdir)/'`$(SRCDIR)/SystemHostApiIterator.cxx @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SystemHostApiIterator.lo -MD -MP -MF $(DEPDIR)/SystemHostApiIterator.Tpo -c -o SystemHostApiIterator.lo `test -f '$(SRCDIR)/SystemHostApiIterator.cxx' || echo '$(srcdir)/'`$(SRCDIR)/SystemHostApiIterator.cxx
@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SystemHostApiIterator.Tpo $(DEPDIR)/SystemHostApiIterator.Plo @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/SystemHostApiIterator.Tpo $(DEPDIR)/SystemHostApiIterator.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/SystemHostApiIterator.cxx' object='SystemHostApiIterator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$(SRCDIR)/SystemHostApiIterator.cxx' object='SystemHostApiIterator.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SystemHostApiIterator.lo `test -f '$(SRCDIR)/SystemHostApiIterator.cxx' || echo '$(srcdir)/'`$(SRCDIR)/SystemHostApiIterator.cxx @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SystemHostApiIterator.lo `test -f '$(SRCDIR)/SystemHostApiIterator.cxx' || echo '$(srcdir)/'`$(SRCDIR)/SystemHostApiIterator.cxx
mostlyclean-libtool: mostlyclean-libtool:
-rm -f *.lo -rm -f *.lo
@ -471,26 +606,15 @@ mostlyclean-libtool:
clean-libtool: clean-libtool:
-rm -rf .libs _libs -rm -rf .libs _libs
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ID: $(am__tagged_files)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); mkid -fID $$unique
unique=`for i in $$list; do \ tags: tags-am
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ TAGS: tags
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(TAGS_FILES) $(LISP)
set x; \ set x; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ $(am__define_uniq_tagged_files); \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \ shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \ test -n "$$unique" || unique=$$empty_fix; \
@ -502,15 +626,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \ $$unique; \
fi; \ fi; \
fi fi
ctags: CTAGS ctags: ctags-am
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) CTAGS: ctags
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
unique=`for i in $$list; do \ $(am__define_uniq_tagged_files); \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique $$unique
@ -519,11 +639,28 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \ here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \ && $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here" && gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir: $(DISTFILES) distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \ list='$(DISTFILES)'; \
@ -570,10 +707,15 @@ install-am: all-am
installcheck: installcheck-am installcheck: installcheck-am
install-strip: install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ if test -z '$(STRIP)'; then \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
`test -z '$(STRIP)' || \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
@ -591,7 +733,22 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am mostlyclean-am
distclean: distclean-am distclean: distclean-am
-rm -rf ./$(DEPDIR) -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 -f Makefile -rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \ distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags distclean-tags
@ -637,7 +794,22 @@ install-ps-am:
installcheck-am: installcheck-am:
maintainer-clean: maintainer-clean-am maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR) -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 -f Makefile -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic maintainer-clean-am: distclean-am maintainer-clean-generic
@ -658,19 +830,21 @@ uninstall-am: uninstall-libLTLIBRARIES
.MAKE: install-am install-strip .MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
clean-libLTLIBRARIES clean-libtool ctags distclean \ clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \
distclean-compile distclean-generic distclean-libtool \ ctags ctags-am distclean distclean-compile distclean-generic \
distclean-tags distdir dvi dvi-am html html-am info info-am \ distclean-libtool distclean-tags distdir dvi dvi-am html \
install install-am install-data install-data-am install-dvi \ html-am info info-am install install-am install-data \
install-dvi-am install-exec install-exec-am install-html \ install-data-am install-dvi install-dvi-am install-exec \
install-html-am install-info install-info-am \ install-exec-am install-html install-html-am install-info \
install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-info-am install-libLTLIBRARIES install-man install-pdf \
install-ps install-ps-am install-strip installcheck \ install-pdf-am install-ps install-ps-am install-strip \
installcheck-am installdirs maintainer-clean \ installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \ maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-libLTLIBRARIES tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
.PRECIOUS: Makefile
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.

11147
bindings/cpp/ltmain.sh Normal file

File diff suppressed because it is too large Load diff

BIN
bindings/cpp/missing Executable file

Binary file not shown.

View file

@ -1,83 +1,81 @@
#include "portaudiocpp/AsioDeviceAdapter.hxx" #include "portaudiocpp/AsioDeviceAdapter.hxx"
#include "portaudio.h"
#include "pa_asio.h"
#include "portaudiocpp/Device.hxx"
#include "portaudiocpp/HostApi.hxx"
#include "portaudiocpp/Exception.hxx"
namespace portaudio
{
AsioDeviceAdapter::AsioDeviceAdapter(Device &device)
{
if (device.hostApi().typeId() != paASIO)
throw PaCppException(PaCppException::UNABLE_TO_ADAPT_DEVICE);
device_ = &device;
PaError err = PaAsio_GetAvailableLatencyValues(device_->index(), &minBufferSize_, &maxBufferSize_,
&preferredBufferSize_, &granularity_);
if (err != paNoError)
throw PaException(err);
}
Device &AsioDeviceAdapter::device()
{
return *device_;
}
long AsioDeviceAdapter::minBufferSize() const
{
return minBufferSize_;
}
long AsioDeviceAdapter::maxBufferSize() const
{
return maxBufferSize_;
}
long AsioDeviceAdapter::preferredBufferSize() const
{
return preferredBufferSize_;
}
long AsioDeviceAdapter::granularity() const
{
return granularity_;
}
void AsioDeviceAdapter::showControlPanel(void *systemSpecific)
{
PaError err = PaAsio_ShowControlPanel(device_->index(), systemSpecific);
if (err != paNoError)
throw PaException(err);
}
const char *AsioDeviceAdapter::inputChannelName(int channelIndex) const
{
const char *channelName;
PaError err = PaAsio_GetInputChannelName(device_->index(), channelIndex, &channelName);
if (err != paNoError) #include "portaudio.h"
throw PaException(err); #include "pa_asio.h"
return channelName; #include "portaudiocpp/Device.hxx"
} #include "portaudiocpp/HostApi.hxx"
#include "portaudiocpp/Exception.hxx"
const char *AsioDeviceAdapter::outputChannelName(int channelIndex) const
{
const char *channelName;
PaError err = PaAsio_GetOutputChannelName(device_->index(), channelIndex, &channelName);
if (err != paNoError) namespace portaudio
throw PaException(err); {
AsioDeviceAdapter::AsioDeviceAdapter(Device &device)
{
if (device.hostApi().typeId() != paASIO)
throw PaCppException(PaCppException::UNABLE_TO_ADAPT_DEVICE);
return channelName; device_ = &device;
}
} PaError err = PaAsio_GetAvailableLatencyValues(device_->index(), &minBufferSize_, &maxBufferSize_,
&preferredBufferSize_, &granularity_);
if (err != paNoError)
throw PaException(err);
}
Device &AsioDeviceAdapter::device()
{
return *device_;
}
long AsioDeviceAdapter::minBufferSize() const
{
return minBufferSize_;
}
long AsioDeviceAdapter::maxBufferSize() const
{
return maxBufferSize_;
}
long AsioDeviceAdapter::preferredBufferSize() const
{
return preferredBufferSize_;
}
long AsioDeviceAdapter::granularity() const
{
return granularity_;
}
void AsioDeviceAdapter::showControlPanel(void *systemSpecific)
{
PaError err = PaAsio_ShowControlPanel(device_->index(), systemSpecific);
if (err != paNoError)
throw PaException(err);
}
const char *AsioDeviceAdapter::inputChannelName(int channelIndex) const
{
const char *channelName;
PaError err = PaAsio_GetInputChannelName(device_->index(), channelIndex, &channelName);
if (err != paNoError)
throw PaException(err);
return 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);
return channelName;
}
}

View file

@ -1,100 +1,97 @@
#include "portaudiocpp/BlockingStream.hxx" #include "portaudiocpp/BlockingStream.hxx"
#include "portaudio.h" #include "portaudio.h"
#include "portaudiocpp/StreamParameters.hxx" #include "portaudiocpp/StreamParameters.hxx"
#include "portaudiocpp/Exception.hxx" #include "portaudiocpp/Exception.hxx"
namespace portaudio namespace portaudio
{ {
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
BlockingStream::BlockingStream() BlockingStream::BlockingStream()
{ {
} }
BlockingStream::BlockingStream(const StreamParameters &parameters) BlockingStream::BlockingStream(const StreamParameters &parameters)
{ {
open(parameters); open(parameters);
} }
BlockingStream::~BlockingStream() BlockingStream::~BlockingStream()
{ {
try try
{ {
close(); close();
} }
catch (...) catch (...)
{ {
// ignore all errors // ignore all errors
} }
} }
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
void BlockingStream::open(const StreamParameters &parameters) void BlockingStream::open(const StreamParameters &parameters)
{ {
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), NULL, NULL); parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), NULL, NULL);
if (err != paNoError) if (err != paNoError)
{ {
throw PaException(err); throw PaException(err);
} }
} }
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
void BlockingStream::read(void *buffer, unsigned long numFrames) void BlockingStream::read(void *buffer, unsigned long numFrames)
{ {
PaError err = Pa_ReadStream(stream_, buffer, numFrames); PaError err = Pa_ReadStream(stream_, buffer, numFrames);
if (err != paNoError) if (err != paNoError)
{ {
throw PaException(err); throw PaException(err);
} }
} }
void BlockingStream::write(const void *buffer, unsigned long numFrames) void BlockingStream::write(const void *buffer, unsigned long numFrames)
{ {
PaError err = Pa_WriteStream(stream_, buffer, numFrames); PaError err = Pa_WriteStream(stream_, buffer, numFrames);
if (err != paNoError) if (err != paNoError)
{ {
throw PaException(err); throw PaException(err);
} }
} }
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
signed long BlockingStream::availableReadSize() const signed long BlockingStream::availableReadSize() const
{ {
signed long avail = Pa_GetStreamReadAvailable(stream_); signed long avail = Pa_GetStreamReadAvailable(stream_);
if (avail < 0) if (avail < 0)
{ {
throw PaException(avail); throw PaException(avail);
} }
return avail; return avail;
} }
signed long BlockingStream::availableWriteSize() const signed long BlockingStream::availableWriteSize() const
{ {
signed long avail = Pa_GetStreamWriteAvailable(stream_); signed long avail = Pa_GetStreamWriteAvailable(stream_);
if (avail < 0) if (avail < 0)
{ {
throw PaException(avail); throw PaException(avail);
} }
return avail; return avail;
} }
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
} // portaudio } // portaudio

View file

@ -1,41 +1,41 @@
#include "portaudiocpp/CFunCallbackStream.hxx" #include "portaudiocpp/CFunCallbackStream.hxx"
#include "portaudiocpp/StreamParameters.hxx" #include "portaudiocpp/StreamParameters.hxx"
#include "portaudiocpp/Exception.hxx" #include "portaudiocpp/Exception.hxx"
namespace portaudio namespace portaudio
{ {
CFunCallbackStream::CFunCallbackStream() CFunCallbackStream::CFunCallbackStream()
{ {
} }
CFunCallbackStream::CFunCallbackStream(const StreamParameters &parameters, PaStreamCallback *funPtr, void *userData) CFunCallbackStream::CFunCallbackStream(const StreamParameters &parameters, PaStreamCallback *funPtr, void *userData)
{ {
open(parameters, funPtr, userData); open(parameters, funPtr, userData);
} }
CFunCallbackStream::~CFunCallbackStream() CFunCallbackStream::~CFunCallbackStream()
{ {
try try
{ {
close(); close();
} }
catch (...) catch (...)
{ {
// ignore all errors // ignore all errors
} }
} }
// ---------------------------------------------------------------------------------== // ---------------------------------------------------------------------------------==
void CFunCallbackStream::open(const StreamParameters &parameters, PaStreamCallback *funPtr, void *userData) void CFunCallbackStream::open(const StreamParameters &parameters, PaStreamCallback *funPtr, void *userData)
{ {
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), funPtr, userData); parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), funPtr, userData);
if (err != paNoError) if (err != paNoError)
{ {
throw PaException(err); throw PaException(err);
} }
} }
} }

View file

@ -1,25 +1,23 @@
#include "portaudiocpp/CallbackInterface.hxx" #include "portaudiocpp/CallbackInterface.hxx"
namespace portaudio namespace portaudio
{ {
namespace impl namespace impl
{ {
////// //////
/// Adapts any CallbackInterface object to a C-callable function (ie this function). A /// 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. /// pointer to the object should be passed as ``userData'' when setting up the callback.
////// //////
int callbackInterfaceToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, int callbackInterfaceToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData) const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData)
{ {
CallbackInterface *cb = static_cast<CallbackInterface *>(userData); CallbackInterface *cb = static_cast<CallbackInterface *>(userData);
return cb->paCallbackFun(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags); return cb->paCallbackFun(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags);
} }
} // namespace impl } // namespace impl
} // namespace portaudio } // namespace portaudio

View file

@ -1,20 +1,20 @@
#include "portaudiocpp/CallbackStream.hxx" #include "portaudiocpp/CallbackStream.hxx"
namespace portaudio namespace portaudio
{ {
CallbackStream::CallbackStream() CallbackStream::CallbackStream()
{ {
} }
CallbackStream::~CallbackStream() CallbackStream::~CallbackStream()
{ {
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
double CallbackStream::cpuLoad() const double CallbackStream::cpuLoad() const
{ {
return Pa_GetStreamCpuLoad(stream_); return Pa_GetStreamCpuLoad(stream_);
} }
} // namespace portaudio } // namespace portaudio

View file

@ -1,81 +1,81 @@
#include "portaudiocpp/CppFunCallbackStream.hxx" #include "portaudiocpp/CppFunCallbackStream.hxx"
#include "portaudiocpp/StreamParameters.hxx" #include "portaudiocpp/StreamParameters.hxx"
#include "portaudiocpp/Exception.hxx" #include "portaudiocpp/Exception.hxx"
namespace portaudio namespace portaudio
{ {
namespace impl namespace impl
{ {
////// //////
/// Adapts any a C++ callback to a C-callable function (ie this function). A /// 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 /// 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. /// passed as the ``userData'' parameter when setting up the callback.
////// //////
int cppCallbackToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, int cppCallbackToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames,
const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData) const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData)
{ {
FunCallbackStream::CppToCCallbackData *data = static_cast<FunCallbackStream::CppToCCallbackData *>(userData); FunCallbackStream::CppToCCallbackData *data = static_cast<FunCallbackStream::CppToCCallbackData *>(userData);
return data->funPtr(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags, data->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) void FunCallbackStream::CppToCCallbackData::init(CallbackFunPtr funPtr, void *userData)
{ {
this->funPtr = funPtr; this->funPtr = funPtr;
this->userData = userData; this->userData = userData;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
FunCallbackStream::FunCallbackStream() FunCallbackStream::FunCallbackStream()
{ {
} }
FunCallbackStream::FunCallbackStream(const StreamParameters &parameters, CallbackFunPtr funPtr, void *userData) : adapterData_(funPtr, userData) FunCallbackStream::FunCallbackStream(const StreamParameters &parameters, CallbackFunPtr funPtr, void *userData) : adapterData_(funPtr, userData)
{ {
open(parameters); open(parameters);
} }
FunCallbackStream::~FunCallbackStream() FunCallbackStream::~FunCallbackStream()
{ {
try try
{ {
close(); close();
} }
catch (...) catch (...)
{ {
// ignore all errors // ignore all errors
} }
} }
void FunCallbackStream::open(const StreamParameters &parameters, CallbackFunPtr funPtr, void *userData) void FunCallbackStream::open(const StreamParameters &parameters, CallbackFunPtr funPtr, void *userData)
{ {
adapterData_.init(funPtr, userData); adapterData_.init(funPtr, userData);
open(parameters); open(parameters);
} }
void FunCallbackStream::open(const StreamParameters &parameters) void FunCallbackStream::open(const StreamParameters &parameters)
{ {
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::cppCallbackToPaCallbackAdapter, parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::cppCallbackToPaCallbackAdapter,
static_cast<void *>(&adapterData_)); static_cast<void *>(&adapterData_));
if (err != paNoError) if (err != paNoError)
{ {
throw PaException(err); throw PaException(err);
} }
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
} }

View file

@ -1,168 +1,166 @@
#include "portaudiocpp/Device.hxx" #include "portaudiocpp/Device.hxx"
#include <cstddef> #include <cstddef>
#include "portaudiocpp/HostApi.hxx" #include "portaudiocpp/HostApi.hxx"
#include "portaudiocpp/System.hxx" #include "portaudiocpp/System.hxx"
#include "portaudiocpp/Exception.hxx" #include "portaudiocpp/Exception.hxx"
namespace portaudio namespace portaudio
{ {
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
Device::Device(PaDeviceIndex index) : index_(index) Device::Device(PaDeviceIndex index) : index_(index)
{ {
if (index == paNoDevice) if (index == paNoDevice)
info_ = NULL; info_ = NULL;
else else
info_ = Pa_GetDeviceInfo(index); info_ = Pa_GetDeviceInfo(index);
} }
Device::~Device() Device::~Device()
{ {
} }
PaDeviceIndex Device::index() const PaDeviceIndex Device::index() const
{ {
return index_; return index_;
} }
const char *Device::name() const const char *Device::name() const
{ {
if (info_ == NULL) if (info_ == NULL)
return ""; return "";
return info_->name; return info_->name;
} }
int Device::maxInputChannels() const int Device::maxInputChannels() const
{ {
if (info_ == NULL) if (info_ == NULL)
return 0; return 0;
return info_->maxInputChannels; return info_->maxInputChannels;
} }
int Device::maxOutputChannels() const int Device::maxOutputChannels() const
{ {
if (info_ == NULL) if (info_ == NULL)
return 0; return 0;
return info_->maxOutputChannels; return info_->maxOutputChannels;
} }
PaTime Device::defaultLowInputLatency() const PaTime Device::defaultLowInputLatency() const
{ {
if (info_ == NULL) if (info_ == NULL)
return static_cast<PaTime>(0.0); return static_cast<PaTime>(0.0);
return info_->defaultLowInputLatency; return info_->defaultLowInputLatency;
} }
PaTime Device::defaultHighInputLatency() const PaTime Device::defaultHighInputLatency() const
{ {
if (info_ == NULL) if (info_ == NULL)
return static_cast<PaTime>(0.0); return static_cast<PaTime>(0.0);
return info_->defaultHighInputLatency; return info_->defaultHighInputLatency;
} }
PaTime Device::defaultLowOutputLatency() const PaTime Device::defaultLowOutputLatency() const
{ {
if (info_ == NULL) if (info_ == NULL)
return static_cast<PaTime>(0.0); return static_cast<PaTime>(0.0);
return info_->defaultLowOutputLatency; return info_->defaultLowOutputLatency;
} }
PaTime Device::defaultHighOutputLatency() const PaTime Device::defaultHighOutputLatency() const
{ {
if (info_ == NULL) if (info_ == NULL)
return static_cast<PaTime>(0.0); return static_cast<PaTime>(0.0);
return info_->defaultHighOutputLatency; return info_->defaultHighOutputLatency;
} }
double Device::defaultSampleRate() const double Device::defaultSampleRate() const
{ {
if (info_ == NULL) if (info_ == NULL)
return 0.0; return 0.0;
return info_->defaultSampleRate; return info_->defaultSampleRate;
} }
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
bool Device::isInputOnlyDevice() const bool Device::isInputOnlyDevice() const
{ {
return (maxOutputChannels() == 0); return (maxOutputChannels() == 0);
} }
bool Device::isOutputOnlyDevice() const bool Device::isOutputOnlyDevice() const
{ {
return (maxInputChannels() == 0); return (maxInputChannels() == 0);
} }
bool Device::isFullDuplexDevice() const bool Device::isFullDuplexDevice() const
{ {
return (maxInputChannels() > 0 && maxOutputChannels() > 0); return (maxInputChannels() > 0 && maxOutputChannels() > 0);
} }
bool Device::isSystemDefaultInputDevice() const bool Device::isSystemDefaultInputDevice() const
{ {
return (System::instance().defaultInputDevice() == *this); return (System::instance().defaultInputDevice() == *this);
} }
bool Device::isSystemDefaultOutputDevice() const bool Device::isSystemDefaultOutputDevice() const
{ {
return (System::instance().defaultOutputDevice() == *this); return (System::instance().defaultOutputDevice() == *this);
} }
bool Device::isHostApiDefaultInputDevice() const bool Device::isHostApiDefaultInputDevice() const
{ {
return (hostApi().defaultInputDevice() == *this); return (hostApi().defaultInputDevice() == *this);
} }
bool Device::isHostApiDefaultOutputDevice() const bool Device::isHostApiDefaultOutputDevice() const
{ {
return (hostApi().defaultOutputDevice() == *this); return (hostApi().defaultOutputDevice() == *this);
} }
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
bool Device::operator==(const Device &rhs) bool Device::operator==(const Device &rhs) const
{ {
return (index_ == rhs.index_); return (index_ == rhs.index_);
} }
bool Device::operator!=(const Device &rhs) bool Device::operator!=(const Device &rhs) const
{ {
return !(*this == rhs); return !(*this == rhs);
} }
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
HostApi &Device::hostApi() HostApi &Device::hostApi()
{ {
// NOTE: will cause an exception when called for the null device // NOTE: will cause an exception when called for the null device
if (info_ == NULL) if (info_ == NULL)
throw PaException(paInternalError); throw PaException(paInternalError);
return System::instance().hostApiByIndex(info_->hostApi); return System::instance().hostApiByIndex(info_->hostApi);
} }
const HostApi &Device::hostApi() const const HostApi &Device::hostApi() const
{ {
// NOTE; will cause an exception when called for the null device // NOTE; will cause an exception when called for the null device
if (info_ == NULL) if (info_ == NULL)
throw PaException(paInternalError); throw PaException(paInternalError);
return System::instance().hostApiByIndex(info_->hostApi); return System::instance().hostApiByIndex(info_->hostApi);
} }
// ------------------------------------------------------------------------------- // -------------------------------------------------------------------------------
} // namespace portaudio } // namespace portaudio

View file

@ -1,163 +1,163 @@
#include "portaudiocpp/DirectionSpecificStreamParameters.hxx" #include "portaudiocpp/DirectionSpecificStreamParameters.hxx"
#include "portaudiocpp/Device.hxx" #include "portaudiocpp/Device.hxx"
namespace portaudio namespace portaudio
{ {
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// Returns a `nil' DirectionSpecificStreamParameters object. This can be used to /// Returns a `nil' DirectionSpecificStreamParameters object. This can be used to
/// specify that one direction of a Stream is not required (i.e. when creating /// specify that one direction of a Stream is not required (i.e. when creating
/// a half-duplex Stream). All fields of the null DirectionSpecificStreamParameters /// 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 /// object are invalid except for the device and the number of channel, which are set
/// to paNoDevice and 0 respectively. /// to paNoDevice and 0 respectively.
////// //////
DirectionSpecificStreamParameters DirectionSpecificStreamParameters::null() DirectionSpecificStreamParameters DirectionSpecificStreamParameters::null()
{ {
DirectionSpecificStreamParameters tmp; DirectionSpecificStreamParameters tmp;
tmp.paStreamParameters_.device = paNoDevice; tmp.paStreamParameters_.device = paNoDevice;
tmp.paStreamParameters_.channelCount = 0; tmp.paStreamParameters_.channelCount = 0;
return tmp; return tmp;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// Default constructor -- all parameters will be uninitialized. /// Default constructor -- all parameters will be uninitialized.
////// //////
DirectionSpecificStreamParameters::DirectionSpecificStreamParameters() DirectionSpecificStreamParameters::DirectionSpecificStreamParameters()
{ {
} }
////// //////
/// Constructor which sets all required fields. /// Constructor which sets all required fields.
////// //////
DirectionSpecificStreamParameters::DirectionSpecificStreamParameters(const Device &device, int numChannels, DirectionSpecificStreamParameters::DirectionSpecificStreamParameters(const Device &device, int numChannels,
SampleDataFormat format, bool interleaved, PaTime suggestedLatency, void *hostApiSpecificStreamInfo) SampleDataFormat format, bool interleaved, PaTime suggestedLatency, void *hostApiSpecificStreamInfo)
{ {
setDevice(device); setDevice(device);
setNumChannels(numChannels); setNumChannels(numChannels);
setSampleFormat(format, interleaved); setSampleFormat(format, interleaved);
setSuggestedLatency(suggestedLatency); setSuggestedLatency(suggestedLatency);
setHostApiSpecificStreamInfo(hostApiSpecificStreamInfo); setHostApiSpecificStreamInfo(hostApiSpecificStreamInfo);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
void DirectionSpecificStreamParameters::setDevice(const Device &device) void DirectionSpecificStreamParameters::setDevice(const Device &device)
{ {
paStreamParameters_.device = device.index(); paStreamParameters_.device = device.index();
} }
void DirectionSpecificStreamParameters::setNumChannels(int numChannels) void DirectionSpecificStreamParameters::setNumChannels(int numChannels)
{ {
paStreamParameters_.channelCount = numChannels; paStreamParameters_.channelCount = numChannels;
} }
void DirectionSpecificStreamParameters::setSampleFormat(SampleDataFormat format, bool interleaved) void DirectionSpecificStreamParameters::setSampleFormat(SampleDataFormat format, bool interleaved)
{ {
paStreamParameters_.sampleFormat = static_cast<PaSampleFormat>(format); paStreamParameters_.sampleFormat = static_cast<PaSampleFormat>(format);
if (!interleaved) if (!interleaved)
paStreamParameters_.sampleFormat |= paNonInterleaved; paStreamParameters_.sampleFormat |= paNonInterleaved;
} }
void DirectionSpecificStreamParameters::setHostApiSpecificSampleFormat(PaSampleFormat format, bool interleaved) void DirectionSpecificStreamParameters::setHostApiSpecificSampleFormat(PaSampleFormat format, bool interleaved)
{ {
paStreamParameters_.sampleFormat = format; paStreamParameters_.sampleFormat = format;
paStreamParameters_.sampleFormat |= paCustomFormat; paStreamParameters_.sampleFormat |= paCustomFormat;
if (!interleaved) if (!interleaved)
paStreamParameters_.sampleFormat |= paNonInterleaved; paStreamParameters_.sampleFormat |= paNonInterleaved;
} }
void DirectionSpecificStreamParameters::setSuggestedLatency(PaTime latency) void DirectionSpecificStreamParameters::setSuggestedLatency(PaTime latency)
{ {
paStreamParameters_.suggestedLatency = latency; paStreamParameters_.suggestedLatency = latency;
} }
void DirectionSpecificStreamParameters::setHostApiSpecificStreamInfo(void *streamInfo) void DirectionSpecificStreamParameters::setHostApiSpecificStreamInfo(void *streamInfo)
{ {
paStreamParameters_.hostApiSpecificStreamInfo = streamInfo; paStreamParameters_.hostApiSpecificStreamInfo = streamInfo;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
PaStreamParameters *DirectionSpecificStreamParameters::paStreamParameters() PaStreamParameters *DirectionSpecificStreamParameters::paStreamParameters()
{ {
if (paStreamParameters_.channelCount > 0 && paStreamParameters_.device != paNoDevice) if (paStreamParameters_.channelCount > 0 && paStreamParameters_.device != paNoDevice)
return &paStreamParameters_; return &paStreamParameters_;
else else
return NULL; return NULL;
} }
const PaStreamParameters *DirectionSpecificStreamParameters::paStreamParameters() const const PaStreamParameters *DirectionSpecificStreamParameters::paStreamParameters() const
{ {
if (paStreamParameters_.channelCount > 0 && paStreamParameters_.device != paNoDevice) if (paStreamParameters_.channelCount > 0 && paStreamParameters_.device != paNoDevice)
return &paStreamParameters_; return &paStreamParameters_;
else else
return NULL; return NULL;
} }
Device &DirectionSpecificStreamParameters::device() const Device &DirectionSpecificStreamParameters::device() const
{ {
return System::instance().deviceByIndex(paStreamParameters_.device); return System::instance().deviceByIndex(paStreamParameters_.device);
} }
int DirectionSpecificStreamParameters::numChannels() const int DirectionSpecificStreamParameters::numChannels() const
{ {
return paStreamParameters_.channelCount; return paStreamParameters_.channelCount;
} }
////// //////
/// Returns the (non host api-specific) sample format, without including /// Returns the (non host api-specific) sample format, without including
/// the paNonInterleaved flag. If the sample format is host api-spefific, /// the paNonInterleaved flag. If the sample format is host api-spefific,
/// INVALID_FORMAT (0) will be returned. /// INVALID_FORMAT (0) will be returned.
////// //////
SampleDataFormat DirectionSpecificStreamParameters::sampleFormat() const SampleDataFormat DirectionSpecificStreamParameters::sampleFormat() const
{ {
if (isSampleFormatHostApiSpecific()) if (isSampleFormatHostApiSpecific())
return INVALID_FORMAT; return INVALID_FORMAT;
else else
return static_cast<SampleDataFormat>(paStreamParameters_.sampleFormat & ~paNonInterleaved); return static_cast<SampleDataFormat>(paStreamParameters_.sampleFormat & ~paNonInterleaved);
} }
bool DirectionSpecificStreamParameters::isSampleFormatInterleaved() const bool DirectionSpecificStreamParameters::isSampleFormatInterleaved() const
{ {
return ((paStreamParameters_.sampleFormat & paNonInterleaved) == 0); return ((paStreamParameters_.sampleFormat & paNonInterleaved) == 0);
} }
bool DirectionSpecificStreamParameters::isSampleFormatHostApiSpecific() const bool DirectionSpecificStreamParameters::isSampleFormatHostApiSpecific() const
{ {
return ((paStreamParameters_.sampleFormat & paCustomFormat) == 0); return ((paStreamParameters_.sampleFormat & paCustomFormat) == 0);
} }
////// //////
/// Returns the host api-specific sample format, without including any /// Returns the host api-specific sample format, without including any
/// paCustomFormat or paNonInterleaved flags. Will return 0 if the sample format is /// paCustomFormat or paNonInterleaved flags. Will return 0 if the sample format is
/// not host api-specific. /// not host api-specific.
////// //////
PaSampleFormat DirectionSpecificStreamParameters::hostApiSpecificSampleFormat() const PaSampleFormat DirectionSpecificStreamParameters::hostApiSpecificSampleFormat() const
{ {
if (isSampleFormatHostApiSpecific()) if (isSampleFormatHostApiSpecific())
return paStreamParameters_.sampleFormat & ~paCustomFormat & ~paNonInterleaved; return paStreamParameters_.sampleFormat & ~paCustomFormat & ~paNonInterleaved;
else else
return 0; return 0;
} }
PaTime DirectionSpecificStreamParameters::suggestedLatency() const PaTime DirectionSpecificStreamParameters::suggestedLatency() const
{ {
return paStreamParameters_.suggestedLatency; return paStreamParameters_.suggestedLatency;
} }
void *DirectionSpecificStreamParameters::hostApiSpecificStreamInfo() const void *DirectionSpecificStreamParameters::hostApiSpecificStreamInfo() const
{ {
return paStreamParameters_.hostApiSpecificStreamInfo; return paStreamParameters_.hostApiSpecificStreamInfo;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
} // namespace portaudio } // namespace portaudio

View file

@ -1,123 +1,121 @@
#include "portaudiocpp/Exception.hxx" #include "portaudiocpp/Exception.hxx"
namespace portaudio namespace portaudio
{ {
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
// PaException: // PaException:
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// Wraps a PortAudio error into a PortAudioCpp PaException. /// Wraps a PortAudio error into a PortAudioCpp PaException.
////// //////
PaException::PaException(PaError error) : error_(error) PaException::PaException(PaError error) : error_(error)
{ {
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// Alias for paErrorText(), to have std::exception compliance. /// Alias for paErrorText(), to have std::exception compliance.
////// //////
const char *PaException::what() const throw() const char *PaException::what() const throw()
{ {
return paErrorText(); return paErrorText();
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// Returns the PortAudio error code (PaError). /// Returns the PortAudio error code (PaError).
////// //////
PaError PaException::paError() const PaError PaException::paError() const
{ {
return error_; return error_;
} }
////// //////
/// Returns the error as a (zero-terminated) text string. /// Returns the error as a (zero-terminated) text string.
////// //////
const char *PaException::paErrorText() const const char *PaException::paErrorText() const
{ {
return Pa_GetErrorText(error_); return Pa_GetErrorText(error_);
} }
////// //////
/// Returns true is the error is a HostApi error. /// Returns true is the error is a HostApi error.
////// //////
bool PaException::isHostApiError() const bool PaException::isHostApiError() const
{ {
return (error_ == paUnanticipatedHostError); return (error_ == paUnanticipatedHostError);
} }
////// //////
/// Returns the last HostApi error (which is the current one if /// Returns the last HostApi error (which is the current one if
/// isHostApiError() returns true) as an error code. /// isHostApiError() returns true) as an error code.
////// //////
long PaException::lastHostApiError() const long PaException::lastHostApiError() const
{ {
return Pa_GetLastHostErrorInfo()->errorCode; return Pa_GetLastHostErrorInfo()->errorCode;
} }
////// //////
/// Returns the last HostApi error (which is the current one if /// Returns the last HostApi error (which is the current one if
/// isHostApiError() returns true) as a (zero-terminated) text /// isHostApiError() returns true) as a (zero-terminated) text
/// string, if it's available. /// string, if it's available.
////// //////
const char *PaException::lastHostApiErrorText() const const char *PaException::lastHostApiErrorText() const
{ {
return Pa_GetLastHostErrorInfo()->errorText; return Pa_GetLastHostErrorInfo()->errorText;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
bool PaException::operator==(const PaException &rhs) const bool PaException::operator==(const PaException &rhs) const
{ {
return (error_ == rhs.error_); return (error_ == rhs.error_);
} }
bool PaException::operator!=(const PaException &rhs) const bool PaException::operator!=(const PaException &rhs) const
{ {
return !(*this == rhs); return !(*this == rhs);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
// PaCppException: // PaCppException:
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
PaCppException::PaCppException(ExceptionSpecifier specifier) : specifier_(specifier) PaCppException::PaCppException(ExceptionSpecifier specifier) : specifier_(specifier)
{ {
} }
const char *PaCppException::what() const throw() const char *PaCppException::what() const throw()
{ {
switch (specifier_) switch (specifier_)
{ {
case UNABLE_TO_ADAPT_DEVICE: case UNABLE_TO_ADAPT_DEVICE:
{ {
return "Unable to adapt the given device to the specified host api specific device extension"; 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 PaCppException::ExceptionSpecifier PaCppException::specifier() const
{ {
return specifier_; return specifier_;
} }
bool PaCppException::operator==(const PaCppException &rhs) const bool PaCppException::operator==(const PaCppException &rhs) const
{ {
return (specifier_ == rhs.specifier_); return (specifier_ == rhs.specifier_);
} }
bool PaCppException::operator!=(const PaCppException &rhs) const bool PaCppException::operator!=(const PaCppException &rhs) const
{ {
return !(*this == rhs); return !(*this == rhs);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
} // namespace portaudio } // namespace portaudio

View file

@ -1,121 +1,121 @@
#include "portaudiocpp/HostApi.hxx" #include "portaudiocpp/HostApi.hxx"
#include "portaudiocpp/System.hxx" #include "portaudiocpp/System.hxx"
#include "portaudiocpp/Device.hxx" #include "portaudiocpp/Device.hxx"
#include "portaudiocpp/SystemDeviceIterator.hxx" #include "portaudiocpp/SystemDeviceIterator.hxx"
#include "portaudiocpp/Exception.hxx" #include "portaudiocpp/Exception.hxx"
namespace portaudio namespace portaudio
{ {
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
HostApi::HostApi(PaHostApiIndex index) : devices_(NULL) HostApi::HostApi(PaHostApiIndex index) : devices_(NULL)
{ {
try try
{ {
info_ = Pa_GetHostApiInfo(index); info_ = Pa_GetHostApiInfo(index);
// Create and populate devices array: // Create and populate devices array:
int numDevices = deviceCount(); int numDevices = deviceCount();
devices_ = new Device*[numDevices]; devices_ = new Device*[numDevices];
for (int i = 0; i < numDevices; ++i) for (int i = 0; i < numDevices; ++i)
{ {
PaDeviceIndex deviceIndex = Pa_HostApiDeviceIndexToDeviceIndex(index, i); PaDeviceIndex deviceIndex = Pa_HostApiDeviceIndexToDeviceIndex(index, i);
if (deviceIndex < 0) if (deviceIndex < 0)
{ {
throw PaException(deviceIndex); throw PaException(deviceIndex);
} }
devices_[i] = &System::instance().deviceByIndex(deviceIndex); devices_[i] = &System::instance().deviceByIndex(deviceIndex);
} }
} }
catch (const std::exception &e) catch (const std::exception &e)
{ {
// Delete any (partially) constructed objects (deconstructor isn't called): // Delete any (partially) constructed objects (deconstructor isn't called):
delete[] devices_; // devices_ is either NULL or valid delete[] devices_; // devices_ is either NULL or valid
// Re-throw exception: // Re-throw exception:
throw e; throw e;
} }
} }
HostApi::~HostApi() HostApi::~HostApi()
{ {
// Destroy devices array: // Destroy devices array:
delete[] devices_; delete[] devices_;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
PaHostApiTypeId HostApi::typeId() const PaHostApiTypeId HostApi::typeId() const
{ {
return info_->type; return info_->type;
} }
PaHostApiIndex HostApi::index() const PaHostApiIndex HostApi::index() const
{ {
PaHostApiIndex index = Pa_HostApiTypeIdToHostApiIndex(typeId()); PaHostApiIndex index = Pa_HostApiTypeIdToHostApiIndex(typeId());
if (index < 0) if (index < 0)
throw PaException(index); throw PaException(index);
return index; return index;
} }
const char *HostApi::name() const const char *HostApi::name() const
{ {
return info_->name; return info_->name;
} }
int HostApi::deviceCount() const int HostApi::deviceCount() const
{ {
return info_->deviceCount; return info_->deviceCount;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
HostApi::DeviceIterator HostApi::devicesBegin() HostApi::DeviceIterator HostApi::devicesBegin()
{ {
DeviceIterator tmp; DeviceIterator tmp;
tmp.ptr_ = &devices_[0]; // begin (first element) tmp.ptr_ = &devices_[0]; // begin (first element)
return tmp; return tmp;
} }
HostApi::DeviceIterator HostApi::devicesEnd() HostApi::DeviceIterator HostApi::devicesEnd()
{ {
DeviceIterator tmp; DeviceIterator tmp;
tmp.ptr_ = &devices_[deviceCount()]; // end (one past last element) tmp.ptr_ = &devices_[deviceCount()]; // end (one past last element)
return tmp; return tmp;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
Device &HostApi::defaultInputDevice() const Device &HostApi::defaultInputDevice() const
{ {
return System::instance().deviceByIndex(info_->defaultInputDevice); return System::instance().deviceByIndex(info_->defaultInputDevice);
} }
Device &HostApi::defaultOutputDevice() const Device &HostApi::defaultOutputDevice() const
{ {
return System::instance().deviceByIndex(info_->defaultOutputDevice); return System::instance().deviceByIndex(info_->defaultOutputDevice);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
bool HostApi::operator==(const HostApi &rhs) const bool HostApi::operator==(const HostApi &rhs) const
{ {
return (typeId() == rhs.typeId()); return (typeId() == rhs.typeId());
} }
bool HostApi::operator!=(const HostApi &rhs) const bool HostApi::operator!=(const HostApi &rhs) const
{ {
return !(*this == rhs); return !(*this == rhs);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
} // namespace portaudio } // namespace portaudio

View file

@ -1,45 +1,45 @@
#include "portaudiocpp/InterfaceCallbackStream.hxx" #include "portaudiocpp/InterfaceCallbackStream.hxx"
#include "portaudiocpp/StreamParameters.hxx" #include "portaudiocpp/StreamParameters.hxx"
#include "portaudiocpp/Exception.hxx" #include "portaudiocpp/Exception.hxx"
#include "portaudiocpp/CallbackInterface.hxx" #include "portaudiocpp/CallbackInterface.hxx"
namespace portaudio namespace portaudio
{ {
// ---------------------------------------------------------------------------------== // ---------------------------------------------------------------------------------==
InterfaceCallbackStream::InterfaceCallbackStream() InterfaceCallbackStream::InterfaceCallbackStream()
{ {
} }
InterfaceCallbackStream::InterfaceCallbackStream(const StreamParameters &parameters, CallbackInterface &instance) InterfaceCallbackStream::InterfaceCallbackStream(const StreamParameters &parameters, CallbackInterface &instance)
{ {
open(parameters, instance); open(parameters, instance);
} }
InterfaceCallbackStream::~InterfaceCallbackStream() InterfaceCallbackStream::~InterfaceCallbackStream()
{ {
try try
{ {
close(); close();
} }
catch (...) catch (...)
{ {
// ignore all errors // ignore all errors
} }
} }
// ---------------------------------------------------------------------------------== // ---------------------------------------------------------------------------------==
void InterfaceCallbackStream::open(const StreamParameters &parameters, CallbackInterface &instance) void InterfaceCallbackStream::open(const StreamParameters &parameters, CallbackInterface &instance)
{ {
PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(),
parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::callbackInterfaceToPaCallbackAdapter, static_cast<void *>(&instance)); parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::callbackInterfaceToPaCallbackAdapter, static_cast<void *>(&instance));
if (err != paNoError) if (err != paNoError)
{ {
throw PaException(err); throw PaException(err);
} }
} }
} }

View file

@ -1,4 +1,3 @@
#include "portaudiocpp/MemFunCallbackStream.hxx" #include "portaudiocpp/MemFunCallbackStream.hxx"
// (... template class ...) // (... template class ...)

View file

@ -1,195 +1,195 @@
#include "portaudiocpp/Stream.hxx" #include "portaudiocpp/Stream.hxx"
#include <cstddef> #include <cstddef>
#include "portaudiocpp/Exception.hxx" #include "portaudiocpp/Exception.hxx"
#include "portaudiocpp/System.hxx" #include "portaudiocpp/System.hxx"
namespace portaudio namespace portaudio
{ {
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
Stream::Stream() : stream_(NULL) Stream::Stream() : stream_(NULL)
{ {
} }
Stream::~Stream() Stream::~Stream()
{ {
// (can't call close here, // (can't call close here,
// the derived class should atleast call // the derived class should atleast call
// close() in it's deconstructor) // close() in it's deconstructor)
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// Closes the Stream if it's open, else does nothing. /// Closes the Stream if it's open, else does nothing.
////// //////
void Stream::close() void Stream::close()
{ {
if (isOpen() && System::exists()) if (isOpen() && System::exists())
{ {
PaError err = Pa_CloseStream(stream_); PaError err = Pa_CloseStream(stream_);
stream_ = NULL; stream_ = NULL;
if (err != paNoError) if (err != paNoError)
throw PaException(err); throw PaException(err);
} }
} }
////// //////
/// Returns true if the Stream is open. /// Returns true if the Stream is open.
////// //////
bool Stream::isOpen() const bool Stream::isOpen() const
{ {
return (stream_ != NULL); return (stream_ != NULL);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
void Stream::setStreamFinishedCallback(PaStreamFinishedCallback *callback) void Stream::setStreamFinishedCallback(PaStreamFinishedCallback *callback)
{ {
PaError err = Pa_SetStreamFinishedCallback(stream_, callback); PaError err = Pa_SetStreamFinishedCallback(stream_, callback);
if (err != paNoError) if (err != paNoError)
throw PaException(err); throw PaException(err);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
void Stream::start() void Stream::start()
{ {
PaError err = Pa_StartStream(stream_); PaError err = Pa_StartStream(stream_);
if (err != paNoError) if (err != paNoError)
throw PaException(err); throw PaException(err);
} }
void Stream::stop() void Stream::stop()
{ {
PaError err = Pa_StopStream(stream_); PaError err = Pa_StopStream(stream_);
if (err != paNoError) if (err != paNoError)
throw PaException(err); throw PaException(err);
} }
void Stream::abort() void Stream::abort()
{ {
PaError err = Pa_AbortStream(stream_); PaError err = Pa_AbortStream(stream_);
if (err != paNoError) if (err != paNoError)
throw PaException(err); throw PaException(err);
} }
bool Stream::isStopped() const bool Stream::isStopped() const
{ {
PaError ret = Pa_IsStreamStopped(stream_); PaError ret = Pa_IsStreamStopped(stream_);
if (ret < 0) if (ret < 0)
throw PaException(ret); throw PaException(ret);
return (ret == 1); return (ret == 1);
} }
bool Stream::isActive() const bool Stream::isActive() const
{ {
PaError ret = Pa_IsStreamActive(stream_); PaError ret = Pa_IsStreamActive(stream_);
if (ret < 0) if (ret < 0)
throw PaException(ret); throw PaException(ret);
return (ret == 1); return (ret == 1);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// Returns the best known input latency for the Stream. This value may differ from the /// 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 /// suggested input latency set in the StreamParameters. Includes all sources of
/// latency known to PortAudio such as internal buffering, and Host API reported latency. /// latency known to PortAudio such as internal buffering, and Host API reported latency.
/// Doesn't include any estimates of unknown latency. /// Doesn't include any estimates of unknown latency.
////// //////
PaTime Stream::inputLatency() const PaTime Stream::inputLatency() const
{ {
const PaStreamInfo *info = Pa_GetStreamInfo(stream_); const PaStreamInfo *info = Pa_GetStreamInfo(stream_);
if (info == NULL) if (info == NULL)
{ {
throw PaException(paInternalError); throw PaException(paInternalError);
return PaTime(0.0); 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 /// 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 /// suggested output latency set in the StreamParameters. Includes all sources of
/// latency known to PortAudio such as internal buffering, and Host API reported latency. /// latency known to PortAudio such as internal buffering, and Host API reported latency.
/// Doesn't include any estimates of unknown latency. /// Doesn't include any estimates of unknown latency.
////// //////
PaTime Stream::outputLatency() const PaTime Stream::outputLatency() const
{ {
const PaStreamInfo *info = Pa_GetStreamInfo(stream_); const PaStreamInfo *info = Pa_GetStreamInfo(stream_);
if (info == NULL) if (info == NULL)
{ {
throw PaException(paInternalError); throw PaException(paInternalError);
return PaTime(0.0); return PaTime(0.0);
} }
return info->outputLatency; return info->outputLatency;
} }
////// //////
/// Returns the sample rate of the Stream. Usually this will be the /// 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 /// best known estimate of the used sample rate. For instance when opening a
/// Stream setting 44100.0 Hz in the StreamParameters, the actual sample /// Stream setting 44100.0 Hz in the StreamParameters, the actual sample
/// rate might be something like 44103.2 Hz (due to imperfections in the /// rate might be something like 44103.2 Hz (due to imperfections in the
/// sound card hardware). /// sound card hardware).
////// //////
double Stream::sampleRate() const double Stream::sampleRate() const
{ {
const PaStreamInfo *info = Pa_GetStreamInfo(stream_); const PaStreamInfo *info = Pa_GetStreamInfo(stream_);
if (info == NULL) if (info == NULL)
{ {
throw PaException(paInternalError); throw PaException(paInternalError);
return 0.0; return 0.0;
} }
return info->sampleRate; return info->sampleRate;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
PaTime Stream::time() const PaTime Stream::time() const
{ {
return Pa_GetStreamTime(stream_); return Pa_GetStreamTime(stream_);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// Accessor (const) for PortAudio PaStream pointer, useful for interfacing with /// Accessor (const) for PortAudio PaStream pointer, useful for interfacing with
/// PortAudio add-ons such as PortMixer for instance. Normally accessing this /// 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 /// pointer should not be needed as PortAudioCpp aims to provide all of PortAudio's
/// functionality. /// functionality.
////// //////
const PaStream *Stream::paStream() const const PaStream *Stream::paStream() const
{ {
return stream_; return stream_;
} }
////// //////
/// Accessor (non-const) for PortAudio PaStream pointer, useful for interfacing with /// Accessor (non-const) for PortAudio PaStream pointer, useful for interfacing with
/// PortAudio add-ons such as PortMixer for instance. Normally accessing this /// 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 /// pointer should not be needed as PortAudioCpp aims to provide all of PortAudio's
/// functionality. /// functionality.
////// //////
PaStream *Stream::paStream() PaStream *Stream::paStream()
{ {
return stream_; return stream_;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
} // namespace portaudio } // namespace portaudio

View file

@ -1,165 +1,160 @@
#include "portaudiocpp/StreamParameters.hxx" #include "portaudiocpp/StreamParameters.hxx"
#include <cstddef> #include <cstddef>
#include "portaudiocpp/Device.hxx" #include "portaudiocpp/Device.hxx"
namespace portaudio namespace portaudio
{ {
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// Default constructor; does nothing. /// Default constructor; does nothing.
////// //////
StreamParameters::StreamParameters() StreamParameters::StreamParameters()
{ {
} }
////// //////
/// Sets up the all parameters needed to open either a half-duplex or full-duplex Stream. /// 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 /// @param inputParameters The parameters for the input direction of the to-be opened
/// Stream or DirectionSpecificStreamParameters::null() for an output-only Stream. /// Stream or DirectionSpecificStreamParameters::null() for an output-only Stream.
/// @param outputParameters The parameters for the output direction of the to-be opened /// @param outputParameters The parameters for the output direction of the to-be opened
/// Stream or DirectionSpecificStreamParameters::null() for an input-only Stream. /// Stream or DirectionSpecificStreamParameters::null() for an input-only Stream.
/// @param sampleRate The to-be opened Stream's sample rate in Hz. /// @param sampleRate The to-be opened Stream's sample rate in Hz.
/// @param framesPerBuffer The number of frames per buffer for a CallbackStream, or /// @param framesPerBuffer The number of frames per buffer for a CallbackStream, or
/// the preferred buffer granularity for a BlockingStream. /// the preferred buffer granularity for a BlockingStream.
/// @param flags The flags for the to-be opened Stream; default paNoFlag. /// @param flags The flags for the to-be opened Stream; default paNoFlag.
////// //////
StreamParameters::StreamParameters(const DirectionSpecificStreamParameters &inputParameters, StreamParameters::StreamParameters(const DirectionSpecificStreamParameters &inputParameters,
const DirectionSpecificStreamParameters &outputParameters, double sampleRate, unsigned long framesPerBuffer, const DirectionSpecificStreamParameters &outputParameters, double sampleRate, unsigned long framesPerBuffer,
PaStreamFlags flags) : inputParameters_(inputParameters), outputParameters_(outputParameters), PaStreamFlags flags) : inputParameters_(inputParameters), outputParameters_(outputParameters),
sampleRate_(sampleRate), framesPerBuffer_(framesPerBuffer), flags_(flags) sampleRate_(sampleRate), framesPerBuffer_(framesPerBuffer), flags_(flags)
{ {
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
////// //////
/// Sets the requested sample rate. If this sample rate isn't supported by the hardware, the /// 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 /// 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 retreive the /// imperfections in the sound card hardware; use Stream::sampleRate() to retrieve the
/// best known estimate for this value. /// best known estimate for this value.
////// //////
void StreamParameters::setSampleRate(double sampleRate) void StreamParameters::setSampleRate(double sampleRate)
{ {
sampleRate_ = sampleRate; sampleRate_ = sampleRate;
} }
////// //////
/// Either the number of frames per buffer for a CallbackStream, or /// Either the number of frames per buffer for a CallbackStream, or
/// the preferred buffer granularity for a BlockingStream. See PortAudio /// the preferred buffer granularity for a BlockingStream. See PortAudio
/// documentation. /// documentation.
////// //////
void StreamParameters::setFramesPerBuffer(unsigned long framesPerBuffer) void StreamParameters::setFramesPerBuffer(unsigned long framesPerBuffer)
{ {
framesPerBuffer_ = framesPerBuffer; framesPerBuffer_ = framesPerBuffer;
} }
////// //////
/// Sets the specified flag or does nothing when the flag is already set. Doesn't /// Sets the specified flag or does nothing when the flag is already set. Doesn't
/// `unset' any previously existing flags (use clearFlags() for that). /// `unset' any previously existing flags (use clearFlags() for that).
////// //////
void StreamParameters::setFlag(PaStreamFlags flag) void StreamParameters::setFlag(PaStreamFlags flag)
{ {
flags_ |= flag; flags_ |= flag;
} }
////// //////
/// Unsets the specified flag or does nothing if the flag isn't set. Doesn't affect /// Unsets the specified flag or does nothing if the flag isn't set. Doesn't affect
/// any other flags. /// any other flags.
////// //////
void StreamParameters::unsetFlag(PaStreamFlags flag) void StreamParameters::unsetFlag(PaStreamFlags flag)
{ {
flags_ &= ~flag; flags_ &= ~flag;
} }
////// //////
/// Clears or `unsets' all set flags. /// Clears or `unsets' all set flags.
////// //////
void StreamParameters::clearFlags() void StreamParameters::clearFlags()
{ {
flags_ = paNoFlag; flags_ = paNoFlag;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
void StreamParameters::setInputParameters(const DirectionSpecificStreamParameters &parameters) void StreamParameters::setInputParameters(const DirectionSpecificStreamParameters &parameters)
{ {
inputParameters_ = parameters; inputParameters_ = parameters;
} }
void StreamParameters::setOutputParameters(const DirectionSpecificStreamParameters &parameters) void StreamParameters::setOutputParameters(const DirectionSpecificStreamParameters &parameters)
{ {
outputParameters_ = parameters; outputParameters_ = parameters;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
bool StreamParameters::isSupported() const bool StreamParameters::isSupported() const
{ {
return (Pa_IsFormatSupported(inputParameters_.paStreamParameters(), return (Pa_IsFormatSupported(inputParameters_.paStreamParameters(),
outputParameters_.paStreamParameters(), sampleRate_) == paFormatIsSupported); outputParameters_.paStreamParameters(), sampleRate_) == paFormatIsSupported);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
double StreamParameters::sampleRate() const double StreamParameters::sampleRate() const
{ {
return sampleRate_; return sampleRate_;
} }
unsigned long StreamParameters::framesPerBuffer() const unsigned long StreamParameters::framesPerBuffer() const
{ {
return framesPerBuffer_; return framesPerBuffer_;
} }
////// //////
/// Returns all currently set flags as a binary combined /// Returns all currently set flags as a binary combined
/// integer value (PaStreamFlags). Use isFlagSet() to /// integer value (PaStreamFlags). Use isFlagSet() to
/// avoid dealing with the bitmasks. /// avoid dealing with the bitmasks.
////// //////
PaStreamFlags StreamParameters::flags() const PaStreamFlags StreamParameters::flags() const
{ {
return flags_; return flags_;
} }
////// //////
/// Returns true if the specified flag is currently set /// Returns true if the specified flag is currently set
/// or false if it isn't. /// or false if it isn't.
////// //////
bool StreamParameters::isFlagSet(PaStreamFlags flag) const bool StreamParameters::isFlagSet(PaStreamFlags flag) const
{ {
return ((flags_ & flag) != 0); return ((flags_ & flag) != 0);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
DirectionSpecificStreamParameters &StreamParameters::inputParameters() DirectionSpecificStreamParameters &StreamParameters::inputParameters()
{ {
return inputParameters_; return inputParameters_;
} }
const DirectionSpecificStreamParameters &StreamParameters::inputParameters() const const DirectionSpecificStreamParameters &StreamParameters::inputParameters() const
{ {
return inputParameters_; return inputParameters_;
} }
DirectionSpecificStreamParameters &StreamParameters::outputParameters() DirectionSpecificStreamParameters &StreamParameters::outputParameters()
{ {
return outputParameters_; return outputParameters_;
} }
const DirectionSpecificStreamParameters &StreamParameters::outputParameters() const const DirectionSpecificStreamParameters &StreamParameters::outputParameters() const
{ {
return outputParameters_; return outputParameters_;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
} // namespace portaudio } // namespace portaudio

View file

@ -1,308 +1,307 @@
#include "portaudiocpp/System.hxx" #include "portaudiocpp/System.hxx"
#include <cstddef> #include <cstddef>
#include <cassert> #include <cassert>
#include "portaudiocpp/HostApi.hxx" #include "portaudiocpp/HostApi.hxx"
#include "portaudiocpp/Device.hxx" #include "portaudiocpp/Device.hxx"
#include "portaudiocpp/Stream.hxx" #include "portaudiocpp/Stream.hxx"
#include "portaudiocpp/Exception.hxx" #include "portaudiocpp/Exception.hxx"
#include "portaudiocpp/SystemHostApiIterator.hxx" #include "portaudiocpp/SystemHostApiIterator.hxx"
#include "portaudiocpp/SystemDeviceIterator.hxx" #include "portaudiocpp/SystemDeviceIterator.hxx"
namespace portaudio namespace portaudio
{ {
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
// Static members: // Static members:
System *System::instance_ = NULL; System *System::instance_ = NULL;
int System::initCount_ = 0; int System::initCount_ = 0;
HostApi **System::hostApis_ = NULL; HostApi **System::hostApis_ = NULL;
Device **System::devices_ = NULL; Device **System::devices_ = NULL;
Device *System::nullDevice_ = NULL; Device *System::nullDevice_ = NULL;
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
int System::version() int System::version()
{ {
return Pa_GetVersion(); return Pa_GetVersion();
} }
const char *System::versionText() const char *System::versionText()
{ {
return Pa_GetVersionText(); return Pa_GetVersionText();
} }
void System::initialize() void System::initialize()
{ {
++initCount_; ++initCount_;
if (initCount_ == 1) if (initCount_ == 1)
{ {
// Create singleton: // Create singleton:
assert(instance_ == NULL); assert(instance_ == NULL);
instance_ = new System(); instance_ = new System();
// Initialize the PortAudio system: // Initialize the PortAudio system:
{ {
PaError err = Pa_Initialize(); PaError err = Pa_Initialize();
if (err != paNoError) if (err != paNoError)
throw PaException(err); throw PaException(err);
} }
// Create and populate device array: // Create and populate device array:
{ {
int numDevices = instance().deviceCount(); int numDevices = instance().deviceCount();
devices_ = new Device*[numDevices]; devices_ = new Device*[numDevices];
for (int i = 0; i < numDevices; ++i) for (int i = 0; i < numDevices; ++i)
devices_[i] = new Device(i); devices_[i] = new Device(i);
} }
// Create and populate host api array: // Create and populate host api array:
{ {
int numHostApis = instance().hostApiCount(); int numHostApis = instance().hostApiCount();
hostApis_ = new HostApi*[numHostApis]; hostApis_ = new HostApi*[numHostApis];
for (int i = 0; i < numHostApis; ++i) for (int i = 0; i < numHostApis; ++i)
hostApis_[i] = new HostApi(i); hostApis_[i] = new HostApi(i);
} }
// Create null device: // Create null device:
nullDevice_ = new Device(paNoDevice); nullDevice_ = new Device(paNoDevice);
} }
} }
void System::terminate() void System::terminate()
{ {
PaError err = paNoError; PaError err = paNoError;
if (initCount_ == 1) if (initCount_ == 1)
{ {
// Destroy null device: // Destroy null device:
delete nullDevice_; delete nullDevice_;
// Destroy host api array: // Destroy host api array:
{ {
if (hostApis_ != NULL) if (hostApis_ != NULL)
{ {
int numHostApis = instance().hostApiCount(); int numHostApis = instance().hostApiCount();
for (int i = 0; i < numHostApis; ++i) for (int i = 0; i < numHostApis; ++i)
delete hostApis_[i]; delete hostApis_[i];
delete[] hostApis_; delete[] hostApis_;
hostApis_ = NULL; hostApis_ = NULL;
} }
} }
// Destroy device array: // Destroy device array:
{ {
if (devices_ != NULL) if (devices_ != NULL)
{ {
int numDevices = instance().deviceCount(); int numDevices = instance().deviceCount();
for (int i = 0; i < numDevices; ++i) for (int i = 0; i < numDevices; ++i)
delete devices_[i]; delete devices_[i];
delete[] devices_; delete[] devices_;
devices_ = NULL; devices_ = NULL;
} }
} }
// Terminate the PortAudio system: // Terminate the PortAudio system:
assert(instance_ != NULL); assert(instance_ != NULL);
err = Pa_Terminate(); err = Pa_Terminate();
// Destroy singleton: // Destroy singleton:
delete instance_; delete instance_;
instance_ = NULL; instance_ = NULL;
} }
if (initCount_ > 0) if (initCount_ > 0)
--initCount_; --initCount_;
if (err != paNoError) if (err != paNoError)
throw PaException(err); throw PaException(err);
} }
System &System::instance() System &System::instance()
{ {
assert(exists()); assert(exists());
return *instance_; return *instance_;
} }
bool System::exists() bool System::exists()
{ {
return (instance_ != NULL); return (instance_ != NULL);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
System::HostApiIterator System::hostApisBegin() System::HostApiIterator System::hostApisBegin()
{ {
System::HostApiIterator tmp; System::HostApiIterator tmp;
tmp.ptr_ = &hostApis_[0]; // begin (first element) tmp.ptr_ = &hostApis_[0]; // begin (first element)
return tmp; return tmp;
} }
System::HostApiIterator System::hostApisEnd() System::HostApiIterator System::hostApisEnd()
{ {
int count = hostApiCount(); int count = hostApiCount();
System::HostApiIterator tmp; System::HostApiIterator tmp;
tmp.ptr_ = &hostApis_[count]; // end (one past last element) tmp.ptr_ = &hostApis_[count]; // end (one past last element)
return tmp; return tmp;
} }
HostApi &System::defaultHostApi() HostApi &System::defaultHostApi()
{ {
PaHostApiIndex defaultHostApi = Pa_GetDefaultHostApi(); PaHostApiIndex defaultHostApi = Pa_GetDefaultHostApi();
if (defaultHostApi < 0) if (defaultHostApi < 0)
throw PaException(defaultHostApi); throw PaException(defaultHostApi);
return *hostApis_[defaultHostApi]; return *hostApis_[defaultHostApi];
} }
HostApi &System::hostApiByTypeId(PaHostApiTypeId type) HostApi &System::hostApiByTypeId(PaHostApiTypeId type)
{ {
PaHostApiIndex index = Pa_HostApiTypeIdToHostApiIndex(type); PaHostApiIndex index = Pa_HostApiTypeIdToHostApiIndex(type);
if (index < 0) if (index < 0)
throw PaException(index); throw PaException(index);
return *hostApis_[index]; return *hostApis_[index];
} }
HostApi &System::hostApiByIndex(PaHostApiIndex index) HostApi &System::hostApiByIndex(PaHostApiIndex index)
{ {
if (index < 0 || index >= hostApiCount()) if (index < 0 || index >= hostApiCount())
throw PaException(paInternalError); throw PaException(paInternalError);
return *hostApis_[index]; return *hostApis_[index];
} }
int System::hostApiCount() int System::hostApiCount()
{ {
PaHostApiIndex count = Pa_GetHostApiCount(); PaHostApiIndex count = Pa_GetHostApiCount();
if (count < 0) if (count < 0)
throw PaException(count); throw PaException(count);
return count; return count;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
System::DeviceIterator System::devicesBegin() System::DeviceIterator System::devicesBegin()
{ {
DeviceIterator tmp; DeviceIterator tmp;
tmp.ptr_ = &devices_[0]; tmp.ptr_ = &devices_[0];
return tmp; return tmp;
} }
System::DeviceIterator System::devicesEnd() System::DeviceIterator System::devicesEnd()
{ {
int count = deviceCount(); int count = deviceCount();
DeviceIterator tmp; DeviceIterator tmp;
tmp.ptr_ = &devices_[count]; tmp.ptr_ = &devices_[count];
return tmp; return tmp;
} }
////// //////
/// Returns the System's default input Device, or the null Device if none /// Returns the System's default input Device, or the null Device if none
/// was available. /// was available.
////// //////
Device &System::defaultInputDevice() Device &System::defaultInputDevice()
{ {
PaDeviceIndex index = Pa_GetDefaultInputDevice(); PaDeviceIndex index = Pa_GetDefaultInputDevice();
return deviceByIndex(index); return deviceByIndex(index);
} }
////// //////
/// Returns the System's default output Device, or the null Device if none /// Returns the System's default output Device, or the null Device if none
/// was available. /// was available.
////// //////
Device &System::defaultOutputDevice() Device &System::defaultOutputDevice()
{ {
PaDeviceIndex index = Pa_GetDefaultOutputDevice(); PaDeviceIndex index = Pa_GetDefaultOutputDevice();
return deviceByIndex(index); return deviceByIndex(index);
} }
////// //////
/// Returns the Device for the given index. /// Returns the Device for the given index.
/// Will throw a paInternalError equivalent PaException if the given index /// Will throw a paInternalError equivalent PaException if the given index
/// is out of range. /// is out of range.
////// //////
Device &System::deviceByIndex(PaDeviceIndex index) Device &System::deviceByIndex(PaDeviceIndex index)
{ {
if (index < -1 || index >= deviceCount()) if (index < -1 || index >= deviceCount())
{ {
throw PaException(paInternalError); throw PaException(paInternalError);
} }
if (index == -1) if (index == -1)
return System::instance().nullDevice(); return System::instance().nullDevice();
return *devices_[index]; return *devices_[index];
} }
int System::deviceCount() int System::deviceCount()
{ {
PaDeviceIndex count = Pa_GetDeviceCount(); PaDeviceIndex count = Pa_GetDeviceCount();
if (count < 0) if (count < 0)
throw PaException(count); throw PaException(count);
return count; return count;
} }
Device &System::nullDevice() Device &System::nullDevice()
{ {
return *nullDevice_; return *nullDevice_;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
void System::sleep(long msec) void System::sleep(long msec)
{ {
Pa_Sleep(msec); Pa_Sleep(msec);
} }
int System::sizeOfSample(PaSampleFormat format) int System::sizeOfSample(PaSampleFormat format)
{ {
PaError err = Pa_GetSampleSize(format); PaError err = Pa_GetSampleSize(format);
if (err < 0) if (err < 0)
{ {
throw PaException(err); throw PaException(err);
return 0; return 0;
} }
return err; return err;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
System::System() System::System()
{ {
// (left blank intentionally) // (left blank intentionally)
} }
System::~System() System::~System()
{ {
// (left blank intentionally) // (left blank intentionally)
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
} // namespace portaudio } // namespace portaudio

View file

@ -1,60 +1,58 @@
#include "portaudiocpp/SystemDeviceIterator.hxx" #include "portaudiocpp/SystemDeviceIterator.hxx"
namespace portaudio namespace portaudio
{ {
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
Device &System::DeviceIterator::operator*() const Device &System::DeviceIterator::operator*() const
{ {
return **ptr_; return **ptr_;
} }
Device *System::DeviceIterator::operator->() const Device *System::DeviceIterator::operator->() const
{ {
return &**this; return &**this;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
System::DeviceIterator &System::DeviceIterator::operator++() System::DeviceIterator &System::DeviceIterator::operator++()
{ {
++ptr_; ++ptr_;
return *this; return *this;
} }
System::DeviceIterator System::DeviceIterator::operator++(int) System::DeviceIterator System::DeviceIterator::operator++(int)
{ {
System::DeviceIterator prev = *this; System::DeviceIterator prev = *this;
++*this; ++*this;
return prev; return prev;
} }
System::DeviceIterator &System::DeviceIterator::operator--() System::DeviceIterator &System::DeviceIterator::operator--()
{ {
--ptr_; --ptr_;
return *this; return *this;
} }
System::DeviceIterator System::DeviceIterator::operator--(int) System::DeviceIterator System::DeviceIterator::operator--(int)
{ {
System::DeviceIterator prev = *this; System::DeviceIterator prev = *this;
--*this; --*this;
return prev; return prev;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
bool System::DeviceIterator::operator==(const System::DeviceIterator &rhs) bool System::DeviceIterator::operator==(const System::DeviceIterator &rhs) const
{ {
return (ptr_ == rhs.ptr_); return (ptr_ == rhs.ptr_);
} }
bool System::DeviceIterator::operator!=(const System::DeviceIterator &rhs) bool System::DeviceIterator::operator!=(const System::DeviceIterator &rhs) const
{ {
return !(*this == rhs); return !(*this == rhs);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
} // namespace portaudio } // namespace portaudio

View file

@ -1,59 +1,58 @@
#include "portaudiocpp/SystemHostApiIterator.hxx" #include "portaudiocpp/SystemHostApiIterator.hxx"
namespace portaudio namespace portaudio
{ {
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
HostApi &System::HostApiIterator::operator*() const HostApi &System::HostApiIterator::operator*() const
{ {
return **ptr_; return **ptr_;
} }
HostApi *System::HostApiIterator::operator->() const HostApi *System::HostApiIterator::operator->() const
{ {
return &**this; return &**this;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
System::HostApiIterator &System::HostApiIterator::operator++() System::HostApiIterator &System::HostApiIterator::operator++()
{ {
++ptr_; ++ptr_;
return *this; return *this;
} }
System::HostApiIterator System::HostApiIterator::operator++(int) System::HostApiIterator System::HostApiIterator::operator++(int)
{ {
System::HostApiIterator prev = *this; System::HostApiIterator prev = *this;
++*this; ++*this;
return prev; return prev;
} }
System::HostApiIterator &System::HostApiIterator::operator--() System::HostApiIterator &System::HostApiIterator::operator--()
{ {
--ptr_; --ptr_;
return *this; return *this;
} }
System::HostApiIterator System::HostApiIterator::operator--(int) System::HostApiIterator System::HostApiIterator::operator--(int)
{ {
System::HostApiIterator prev = *this; System::HostApiIterator prev = *this;
--*this; --*this;
return prev; return prev;
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
bool System::HostApiIterator::operator==(const System::HostApiIterator &rhs) bool System::HostApiIterator::operator==(const System::HostApiIterator &rhs) const
{ {
return (ptr_ == rhs.ptr_); return (ptr_ == rhs.ptr_);
} }
bool System::HostApiIterator::operator!=(const System::HostApiIterator &rhs) bool System::HostApiIterator::operator!=(const System::HostApiIterator &rhs) const
{ {
return !(*this == rhs); return !(*this == rhs);
} }
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
} // namespace portaudio } // namespace portaudio

View file

@ -0,0 +1,26 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PortAudioJNI", "PortAudioJNI.vcxproj", "{4024D885-39B0-4C8A-B3E7-BAB4BA08DFBB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4024D885-39B0-4C8A-B3E7-BAB4BA08DFBB}.Debug|Win32.ActiveCfg = Debug|Win32
{4024D885-39B0-4C8A-B3E7-BAB4BA08DFBB}.Debug|Win32.Build.0 = Debug|Win32
{4024D885-39B0-4C8A-B3E7-BAB4BA08DFBB}.Debug|x64.ActiveCfg = Debug|x64
{4024D885-39B0-4C8A-B3E7-BAB4BA08DFBB}.Debug|x64.Build.0 = Debug|x64
{4024D885-39B0-4C8A-B3E7-BAB4BA08DFBB}.Release|Win32.ActiveCfg = Release|Win32
{4024D885-39B0-4C8A-B3E7-BAB4BA08DFBB}.Release|Win32.Build.0 = Release|Win32
{4024D885-39B0-4C8A-B3E7-BAB4BA08DFBB}.Release|x64.ActiveCfg = Release|x64
{4024D885-39B0-4C8A-B3E7-BAB4BA08DFBB}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View file

@ -0,0 +1,198 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="PortAudioJNI"
ProjectGUID="{4024D885-39B0-4C8A-B3E7-BAB4BA08DFBB}"
RootNamespace="PortAudioJNI"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="..\..\..\..\jportaudio"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="C:\glassfish3\jdk\include;C:\glassfish3\jdk\include\win32"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PORTAUDIOJNI_EXPORTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PORTAUDIOJNI_EXPORTS"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\..\src\com_portaudio_PortAudio.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\..\..\src\com_portaudio_PortAudio.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View file

@ -0,0 +1,174 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{4024D885-39B0-4C8A-B3E7-BAB4BA08DFBB}</ProjectGuid>
<RootNamespace>PortAudioJNI</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\jportaudio\</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\jportaudio\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\jportaudio\</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\jportaudio\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">jportaudio_x64</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">jportaudio_x86</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">jportaudio_x86</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">jportaudio_x64</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\..\..\include;%JAVA_HOME%\include;%JAVA_HOME%\include\win32</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;PORTAUDIOJNI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\..\..\include;%JAVA_HOME%\include;%JAVA_HOME%\include\win32</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;PORTAUDIOJNI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PORTAUDIOJNI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\..\..\..\..\include;%JAVA_HOME%\include;%JAVA_HOME%\include\win32</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;PORTAUDIOJNI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\..\..\..\..\include;%JAVA_HOME%\include;%JAVA_HOME%\include\win32</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\src\com_portaudio_BlockingStream.c" />
<ClCompile Include="..\..\..\src\com_portaudio_PortAudio.c" />
<ClCompile Include="..\..\..\src\jpa_tools.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\src\com_portaudio_BlockingStream.h" />
<ClInclude Include="..\..\..\src\com_portaudio_PortAudio.h" />
<ClInclude Include="..\..\..\src\jpa_tools.h" />
</ItemGroup>
<ItemGroup>
<Library Include="..\..\..\..\jportaudio\portaudio_x64.lib" />
<Library Include="..\..\..\..\jportaudio\portaudio_x86.lib" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -0,0 +1,351 @@
/*
* Portable Audio I/O Library
* Java Binding for PortAudio
*
* Based on the Open Source API proposed by Ross Bencina
* Copyright (c) 2008 Ross Bencina
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files
* (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/*
* 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
* license above.
*/
#include "com_portaudio_BlockingStream.h"
#include "portaudio.h"
#include "jpa_tools.h"
#ifndef FALSE
#define FALSE (0)
#endif
#ifndef TRUE
#define TRUE (!FALSE)
#endif
/*
* Class: com_portaudio_BlockingStream
* Method: getReadAvailable
* Signature: ()I
*/
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 );
}
/*
* Class: com_portaudio_BlockingStream
* Method: getWriteAvailable
* Signature: ()I
*/
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 );
}
/*
* Class: com_portaudio_BlockingStream
* Method: writeFloats
* Signature: ([FI)Z
*/
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"),
"null stream buffer");
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;
}
}
/*
* Class: com_portaudio_BlockingStream
* Method: readFloats
* Signature: ([FI)Z
*/
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"),
"null stream buffer");
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;
}
}
/*
* Class: com_portaudio_BlockingStream
* Method: writeShorts
* Signature: ([SI)Z
*/
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"),
"null stream buffer");
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;
}
}
/*
* Class: com_portaudio_BlockingStream
* Method: readShorts
* Signature: ([SI)Z
*/
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"),
"null stream buffer");
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;
}
}
/*
* Class: com_portaudio_BlockingStream
* Method: start
* Signature: ()V
*/
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 );
}
/*
* Class: com_portaudio_BlockingStream
* Method: stop
* Signature: ()V
*/
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 );
}
/*
* Class: com_portaudio_BlockingStream
* Method: abort
* Signature: ()V
*/
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 );
}
/*
* Class: com_portaudio_BlockingStream
* Method: close
* Signature: ()V
*/
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 );
}
}
/*
* Class: com_portaudio_BlockingStream
* Method: isStopped
* Signature: ()V
*/
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);
}
/*
* Class: com_portaudio_BlockingStream
* Method: isActive
* Signature: ()V
*/
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);
}
/*
* Class: com_portaudio_BlockingStream
* Method: getTime
* Signature: ()D
*/
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 );
}
/*
* Class: com_portaudio_BlockingStream
* Method: getInfo
* Signature: ()Lcom/portaudio/StreamInfo;
*/
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 );
}
}

View file

@ -0,0 +1,130 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#if defined(__APPLE__)
#include <JavaVM/jni.h>
#else
#include <jni.h>
#endif
/* Header for class com_portaudio_BlockingStream */
#ifndef _Included_com_portaudio_BlockingStream
#define _Included_com_portaudio_BlockingStream
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_portaudio_BlockingStream
* Method: getReadAvailable
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_BlockingStream_getReadAvailable
(JNIEnv *, jobject);
/*
* Class: com_portaudio_BlockingStream
* Method: getWriteAvailable
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_BlockingStream_getWriteAvailable
(JNIEnv *, jobject);
/*
* Class: com_portaudio_BlockingStream
* Method: readFloats
* Signature: ([FI)Z
*/
JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_readFloats
(JNIEnv *, jobject, jfloatArray, jint);
/*
* Class: com_portaudio_BlockingStream
* Method: writeFloats
* Signature: ([FI)Z
*/
JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_writeFloats
(JNIEnv *, jobject, jfloatArray, jint);
/*
* Class: com_portaudio_BlockingStream
* Method: readShorts
* Signature: ([SI)Z
*/
JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_readShorts
(JNIEnv *, jobject, jshortArray, jint);
/*
* Class: com_portaudio_BlockingStream
* Method: writeShorts
* Signature: ([SI)Z
*/
JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_writeShorts
(JNIEnv *, jobject, jshortArray, jint);
/*
* Class: com_portaudio_BlockingStream
* Method: start
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_start
(JNIEnv *, jobject);
/*
* Class: com_portaudio_BlockingStream
* Method: stop
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_stop
(JNIEnv *, jobject);
/*
* Class: com_portaudio_BlockingStream
* Method: abort
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_abort
(JNIEnv *, jobject);
/*
* Class: com_portaudio_BlockingStream
* Method: close
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_close
(JNIEnv *, jobject);
/*
* Class: com_portaudio_BlockingStream
* Method: isStopped
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_isStopped
(JNIEnv *, jobject);
/*
* Class: com_portaudio_BlockingStream
* Method: isActive
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_com_portaudio_BlockingStream_isActive
(JNIEnv *, jobject);
/*
* Class: com_portaudio_BlockingStream
* Method: getTime
* Signature: ()D
*/
JNIEXPORT jdouble JNICALL Java_com_portaudio_BlockingStream_getTime
(JNIEnv *, jobject);
/*
* Class: com_portaudio_BlockingStream
* Method: getInfo
* Signature: (Lcom/portaudio/StreamInfo;)V
*/
JNIEXPORT void JNICALL Java_com_portaudio_BlockingStream_getInfo
(JNIEnv *, jobject, jobject);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -0,0 +1,279 @@
/*
* Portable Audio I/O Library
* Java Binding for PortAudio
*
* Based on the Open Source API proposed by Ross Bencina
* Copyright (c) 2008 Ross Bencina
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files
* (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/*
* 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
* license above.
*/
#include "com_portaudio_PortAudio.h"
#include "portaudio.h"
#include "jpa_tools.h"
/*
* Class: com_portaudio_PortAudio
* Method: getVersion
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getVersion
(JNIEnv *env, jclass clazz)
{
return Pa_GetVersion();
}
/*
* Class: com_portaudio_PortAudio
* Method: getVersionText
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_com_portaudio_PortAudio_getVersionText
(JNIEnv *env, jclass clazz)
{
return (*env)->NewStringUTF(env, Pa_GetVersionText() );
}
/*
* Class: com_portaudio_PortAudio
* Method: initialize
* Signature: ()I
*/
JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_initialize
(JNIEnv *env, jclass clazz)
{
PaError err = Pa_Initialize();
jpa_CheckError( env, err );
}
/*
* Class: com_portaudio_PortAudio
* Method: terminate
* Signature: ()I
*/
JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_terminate
(JNIEnv *env, jclass clazz)
{
PaError err = Pa_Terminate();
jpa_CheckError( env, err );
}
/*
* Class: com_portaudio_PortAudio
* Method: getDeviceCount
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDeviceCount
(JNIEnv *env, jclass clazz)
{
jint count = Pa_GetDeviceCount();
return jpa_CheckError( env, count );
}
/*
* Class: com_portaudio_PortAudio
* Method: getDeviceInfo
* Signature: (ILcom/portaudio/DeviceInfo;)I
*/
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 );
}
}
/*
* Class: com_portaudio_PortAudio
* Method: geHostApiCount
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getHostApiCount
(JNIEnv *env, jclass clazz)
{
jint count = Pa_GetHostApiCount();
return jpa_CheckError( env, count );
}
/*
* Class: com_portaudio_PortAudio
* Method: hostApiTypeIdToHostApiIndex
* Signature: (I)I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_hostApiTypeIdToHostApiIndex
(JNIEnv *env, jclass clazz, jint hostApiType)
{
return Pa_HostApiTypeIdToHostApiIndex( (PaHostApiTypeId) hostApiType );
}
/*
* Class: com_portaudio_PortAudio
* Method: hostApiDeviceIndexToDeviceIndex
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_hostApiDeviceIndexToDeviceIndex
(JNIEnv *env, jclass clazz, jint hostApiIndex, jint apiDeviceIndex)
{
return Pa_HostApiDeviceIndexToDeviceIndex( hostApiIndex, apiDeviceIndex );
}
/*
* Class: com_portaudio_PortAudio
* Method: getHostApiInfo
* Signature: (ILcom/portaudio/HostApiInfo;)I
*/
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 );
}
}
/*
* Class: com_portaudio_PortAudio
* Method: getDefaultInputDevice
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDefaultInputDevice
(JNIEnv *env, jclass clazz)
{
jint deviceId = Pa_GetDefaultInputDevice();
return jpa_CheckError( env, deviceId );
}
/*
* Class: com_portaudio_PortAudio
* Method: getDefaultOutputDevice
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDefaultOutputDevice
(JNIEnv *env, jclass clazz)
{
jint deviceId = Pa_GetDefaultOutputDevice();
return jpa_CheckError( env, deviceId );
}
/*
* Class: com_portaudio_PortAudio
* Method: getDefaultHostApi
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDefaultHostApi
(JNIEnv *env, jclass clazz)
{
jint deviceId = Pa_GetDefaultHostApi();
return jpa_CheckError( env, deviceId );
}
/*
* Class: com_portaudio_PortAudio
* Method: isFormatSupported
* Signature: (Lcom/portaudio/StreamParameters;Lcom/portaudio/StreamParameters;I)I
*/
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 );
}
/*
* Class: com_portaudio_PortAudio
* Method: openStream
* Signature: (Lcom/portaudio/BlockingStream;Lcom/portaudio/StreamParameters;Lcom/portaudio/StreamParameters;III)I
*/
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 );
}
}
}

View file

@ -0,0 +1,183 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#if defined(__APPLE__)
#include <JavaVM/jni.h>
#else
#include <jni.h>
#endif
/* Header for class com_portaudio_PortAudio */
#ifndef _Included_com_portaudio_PortAudio
#define _Included_com_portaudio_PortAudio
#ifdef __cplusplus
extern "C" {
#endif
#undef com_portaudio_PortAudio_FLAG_CLIP_OFF
#define com_portaudio_PortAudio_FLAG_CLIP_OFF 1L
#undef com_portaudio_PortAudio_FLAG_DITHER_OFF
#define com_portaudio_PortAudio_FLAG_DITHER_OFF 2L
#undef com_portaudio_PortAudio_FORMAT_FLOAT_32
#define com_portaudio_PortAudio_FORMAT_FLOAT_32 1L
#undef com_portaudio_PortAudio_FORMAT_INT_32
#define com_portaudio_PortAudio_FORMAT_INT_32 2L
#undef com_portaudio_PortAudio_FORMAT_INT_24
#define com_portaudio_PortAudio_FORMAT_INT_24 4L
#undef com_portaudio_PortAudio_FORMAT_INT_16
#define com_portaudio_PortAudio_FORMAT_INT_16 8L
#undef com_portaudio_PortAudio_FORMAT_INT_8
#define com_portaudio_PortAudio_FORMAT_INT_8 16L
#undef com_portaudio_PortAudio_FORMAT_UINT_8
#define com_portaudio_PortAudio_FORMAT_UINT_8 32L
#undef com_portaudio_PortAudio_HOST_API_TYPE_DEV
#define com_portaudio_PortAudio_HOST_API_TYPE_DEV 0L
#undef com_portaudio_PortAudio_HOST_API_TYPE_DIRECTSOUND
#define com_portaudio_PortAudio_HOST_API_TYPE_DIRECTSOUND 1L
#undef com_portaudio_PortAudio_HOST_API_TYPE_MME
#define com_portaudio_PortAudio_HOST_API_TYPE_MME 2L
#undef com_portaudio_PortAudio_HOST_API_TYPE_ASIO
#define com_portaudio_PortAudio_HOST_API_TYPE_ASIO 3L
#undef com_portaudio_PortAudio_HOST_API_TYPE_SOUNDMANAGER
#define com_portaudio_PortAudio_HOST_API_TYPE_SOUNDMANAGER 4L
#undef com_portaudio_PortAudio_HOST_API_TYPE_COREAUDIO
#define com_portaudio_PortAudio_HOST_API_TYPE_COREAUDIO 5L
#undef com_portaudio_PortAudio_HOST_API_TYPE_OSS
#define com_portaudio_PortAudio_HOST_API_TYPE_OSS 7L
#undef com_portaudio_PortAudio_HOST_API_TYPE_ALSA
#define com_portaudio_PortAudio_HOST_API_TYPE_ALSA 8L
#undef com_portaudio_PortAudio_HOST_API_TYPE_AL
#define com_portaudio_PortAudio_HOST_API_TYPE_AL 9L
#undef com_portaudio_PortAudio_HOST_API_TYPE_BEOS
#define com_portaudio_PortAudio_HOST_API_TYPE_BEOS 10L
#undef com_portaudio_PortAudio_HOST_API_TYPE_WDMKS
#define com_portaudio_PortAudio_HOST_API_TYPE_WDMKS 11L
#undef com_portaudio_PortAudio_HOST_API_TYPE_JACK
#define com_portaudio_PortAudio_HOST_API_TYPE_JACK 12L
#undef com_portaudio_PortAudio_HOST_API_TYPE_WASAPI
#define com_portaudio_PortAudio_HOST_API_TYPE_WASAPI 13L
#undef com_portaudio_PortAudio_HOST_API_TYPE_AUDIOSCIENCE
#define com_portaudio_PortAudio_HOST_API_TYPE_AUDIOSCIENCE 14L
#undef com_portaudio_PortAudio_HOST_API_TYPE_COUNT
#define com_portaudio_PortAudio_HOST_API_TYPE_COUNT 15L
/*
* Class: com_portaudio_PortAudio
* Method: getVersion
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getVersion
(JNIEnv *, jclass);
/*
* Class: com_portaudio_PortAudio
* Method: getVersionText
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_com_portaudio_PortAudio_getVersionText
(JNIEnv *, jclass);
/*
* Class: com_portaudio_PortAudio
* Method: initialize
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_initialize
(JNIEnv *, jclass);
/*
* Class: com_portaudio_PortAudio
* Method: terminate
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_terminate
(JNIEnv *, jclass);
/*
* Class: com_portaudio_PortAudio
* Method: getDeviceCount
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDeviceCount
(JNIEnv *, jclass);
/*
* Class: com_portaudio_PortAudio
* Method: getDeviceInfo
* Signature: (ILcom/portaudio/DeviceInfo;)V
*/
JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_getDeviceInfo
(JNIEnv *, jclass, jint, jobject);
/*
* Class: com_portaudio_PortAudio
* Method: getHostApiCount
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getHostApiCount
(JNIEnv *, jclass);
/*
* Class: com_portaudio_PortAudio
* Method: getHostApiInfo
* Signature: (ILcom/portaudio/HostApiInfo;)V
*/
JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_getHostApiInfo
(JNIEnv *, jclass, jint, jobject);
/*
* Class: com_portaudio_PortAudio
* Method: hostApiTypeIdToHostApiIndex
* Signature: (I)I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_hostApiTypeIdToHostApiIndex
(JNIEnv *, jclass, jint);
/*
* Class: com_portaudio_PortAudio
* Method: hostApiDeviceIndexToDeviceIndex
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_hostApiDeviceIndexToDeviceIndex
(JNIEnv *, jclass, jint, jint);
/*
* Class: com_portaudio_PortAudio
* Method: getDefaultInputDevice
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDefaultInputDevice
(JNIEnv *, jclass);
/*
* Class: com_portaudio_PortAudio
* Method: getDefaultOutputDevice
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDefaultOutputDevice
(JNIEnv *, jclass);
/*
* Class: com_portaudio_PortAudio
* Method: getDefaultHostApi
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_getDefaultHostApi
(JNIEnv *, jclass);
/*
* Class: com_portaudio_PortAudio
* Method: isFormatSupported
* Signature: (Lcom/portaudio/StreamParameters;Lcom/portaudio/StreamParameters;I)I
*/
JNIEXPORT jint JNICALL Java_com_portaudio_PortAudio_isFormatSupported
(JNIEnv *, jclass, jobject, jobject, jint);
/*
* Class: com_portaudio_PortAudio
* Method: openStream
* Signature: (Lcom/portaudio/BlockingStream;Lcom/portaudio/StreamParameters;Lcom/portaudio/StreamParameters;III)V
*/
JNIEXPORT void JNICALL Java_com_portaudio_PortAudio_openStream
(JNIEnv *, jclass, jobject, jobject, jobject, jint, jint, jint);
#ifdef __cplusplus
}
#endif
#endif

Some files were not shown because too many files have changed in this diff Show more