diff options
Diffstat (limited to 'pysoundtouch/soundtouch/source/SoundTouchDLL')
6 files changed, 1263 insertions, 0 deletions
diff --git a/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.cpp b/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.cpp new file mode 100644 index 0000000..485811c --- /dev/null +++ b/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.cpp @@ -0,0 +1,327 @@ +//////////////////////////////////////////////////////////////////////////////
+///
+/// SoundTouch DLL wrapper - wraps SoundTouch routines into a Dynamic Load
+/// Library interface.
+///
+/// Author : Copyright (c) Olli Parviainen
+/// Author e-mail : oparviai 'at' iki.fi
+/// SoundTouch WWW: http://www.surina.net/soundtouch
+///
+////////////////////////////////////////////////////////////////////////////////
+//
+// $Id: SoundTouchDLL.cpp 65 2009-02-23 08:33:13Z oparviai $
+//
+////////////////////////////////////////////////////////////////////////////////
+//
+// License :
+//
+// SoundTouch audio processing library
+// Copyright (c) Olli Parviainen
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+////////////////////////////////////////////////////////////////////////////////
+
+#include <windows.h>
+#include "SoundTouchDLL.h"
+#include "soundtouch.h"
+
+using namespace soundtouch;
+
+BOOL APIENTRY DllMain( HANDLE hModule,
+ DWORD ul_reason_for_call,
+ LPVOID lpReserved
+ )
+{
+ switch (ul_reason_for_call)
+ {
+ case DLL_PROCESS_ATTACH:
+ case DLL_THREAD_ATTACH:
+ case DLL_THREAD_DETACH:
+ case DLL_PROCESS_DETACH:
+ break;
+ }
+ return TRUE;
+}
+
+
+//////////////
+
+typedef struct
+{
+ DWORD dwMagic;
+ SoundTouch *pst;
+} STHANDLE;
+
+#define STMAGIC 0x1770C001
+
+SOUNDTOUCHDLL_API HANDLE __stdcall soundtouch_createInstance()
+{
+ STHANDLE *tmp = new STHANDLE;
+
+ if (tmp)
+ {
+ tmp->dwMagic = STMAGIC;
+ tmp->pst = new SoundTouch();
+ if (tmp->pst == NULL)
+ {
+ delete tmp;
+ tmp = NULL;
+ }
+ }
+ return (HANDLE)tmp;
+}
+
+
+SOUNDTOUCHDLL_API void __stdcall soundtouch_destroyInstance(HANDLE h)
+{
+ /*
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+*/
+
+ /*
+ sth->dwMagic = 0;
+ delete sth->pst;
+ sth->pst = NULL;
+ delete sth;
+*/
+}
+
+
+/// Get SoundTouch library version string
+SOUNDTOUCHDLL_API const char *__stdcall soundtouch_getVersionString()
+{
+ return SoundTouch::getVersionString();
+}
+
+/// Get SoundTouch library version Id
+SOUNDTOUCHDLL_API uint __stdcall soundtouch_getVersionId()
+{
+ return SoundTouch::getVersionId();
+}
+
+/// Sets new rate control value. Normal rate = 1.0, smaller values
+/// represent slower rate, larger faster rates.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setRate(HANDLE h, float newRate)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+
+ sth->pst->setRate(newRate);
+}
+
+
+/// Sets new tempo control value. Normal tempo = 1.0, smaller values
+/// represent slower tempo, larger faster tempo.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setTempo(HANDLE h, float newTempo)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+
+ sth->pst->setTempo(newTempo);
+}
+
+/// Sets new rate control value as a difference in percents compared
+/// to the original rate (-50 .. +100 %)
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setRateChange(HANDLE h, float newRate)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+
+ sth->pst->setRateChange(newRate);
+}
+
+/// Sets new tempo control value as a difference in percents compared
+/// to the original tempo (-50 .. +100 %)
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setTempoChange(HANDLE h, float newTempo)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+
+ sth->pst->setTempoChange(newTempo);
+}
+
+/// Sets new pitch control value. Original pitch = 1.0, smaller values
+/// represent lower pitches, larger values higher pitch.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setPitch(HANDLE h, float newPitch)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+
+ sth->pst->setPitch(newPitch);
+}
+
+/// Sets pitch change in octaves compared to the original pitch
+/// (-1.00 .. +1.00)
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setPitchOctaves(HANDLE h, float newPitch)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+
+ sth->pst->setPitchOctaves(newPitch);
+}
+
+/// Sets pitch change in semi-tones compared to the original pitch
+/// (-12 .. +12)
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setPitchSemiTones(HANDLE h, float newPitch)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+
+ sth->pst->setPitchSemiTones(newPitch);
+}
+
+
+/// Sets the number of channels, 1 = mono, 2 = stereo
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setChannels(HANDLE h, uint numChannels)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+
+ sth->pst->setChannels(numChannels);
+}
+
+/// Sets sample rate.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setSampleRate(HANDLE h, uint srate)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+
+ sth->pst->setSampleRate(srate);
+}
+
+/// Flushes the last samples from the processing pipeline to the output.
+/// Clears also the internal processing buffers.
+//
+/// Note: This function is meant for extracting the last samples of a sound
+/// stream. This function may introduce additional blank samples in the end
+/// of the sound stream, and thus it's not recommended to call this function
+/// in the middle of a sound stream.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_flush(HANDLE h)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+
+ sth->pst->flush();
+}
+
+/// Adds 'numSamples' pcs of samples from the 'samples' memory position into
+/// the input of the object. Notice that sample rate _has_to_ be set before
+/// calling this function, otherwise throws a runtime_error exception.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_putSamples(HANDLE h,
+ const SAMPLETYPE *samples, ///< Pointer to sample buffer.
+ uint numSamples ///< Number of samples in buffer. Notice
+ ///< that in case of stereo-sound a single sample
+ ///< contains data for both channels.
+ )
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+
+ sth->pst->putSamples(samples, numSamples);
+}
+
+/// Clears all the samples in the object's output and internal processing
+/// buffers.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_clear(HANDLE h)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return;
+
+ sth->pst->clear();
+}
+
+/// Changes a setting controlling the processing system behaviour. See the
+/// 'SETTING_...' defines for available setting ID's.
+///
+/// \return 'TRUE' if the setting was succesfully changed
+SOUNDTOUCHDLL_API BOOL __stdcall soundtouch_setSetting(HANDLE h,
+ int settingId, ///< Setting ID number. see SETTING_... defines.
+ int value ///< New setting value.
+ )
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return FALSE;
+
+ return sth->pst->setSetting(settingId, value);
+}
+
+/// Reads a setting controlling the processing system behaviour. See the
+/// 'SETTING_...' defines for available setting ID's.
+///
+/// \return the setting value.
+SOUNDTOUCHDLL_API int __stdcall soundtouch_getSetting(HANDLE h,
+ int settingId ///< Setting ID number, see SETTING_... defines.
+ )
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return -1;
+
+ return sth->pst->getSetting(settingId);
+}
+
+
+/// Returns number of samples currently unprocessed.
+SOUNDTOUCHDLL_API uint __stdcall soundtouch_numUnprocessedSamples(HANDLE h)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return 0;
+
+ return sth->pst->numUnprocessedSamples();
+}
+
+
+/// Adjusts book-keeping so that given number of samples are removed from beginning of the
+/// sample buffer without copying them anywhere.
+///
+/// Used to reduce the number of samples in the buffer when accessing the sample buffer directly
+/// with 'ptrBegin' function.
+SOUNDTOUCHDLL_API uint __stdcall soundtouch_receiveSamples(HANDLE h,
+ SAMPLETYPE *outBuffer, ///< Buffer where to copy output samples.
+ uint maxSamples ///< How many samples to receive at max.
+ )
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return 0;
+
+ if (outBuffer)
+ {
+ return sth->pst->receiveSamples(outBuffer, maxSamples);
+ }
+ else
+ {
+ return sth->pst->receiveSamples(maxSamples);
+ }
+}
+
+/// Returns number of samples currently available.
+SOUNDTOUCHDLL_API uint __stdcall soundtouch_numSamples(HANDLE h)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return 0;
+
+ return sth->pst->numSamples();
+}
+
+
+/// Returns nonzero if there aren't any samples available for outputting.
+SOUNDTOUCHDLL_API int __stdcall soundtouch_isEmpty(HANDLE h)
+{
+ STHANDLE *sth = (STHANDLE*)h;
+ if (sth->dwMagic != STMAGIC) return -1;
+
+ return sth->pst->isEmpty();
+}
diff --git a/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.h b/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.h new file mode 100644 index 0000000..696b6b6 --- /dev/null +++ b/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.h @@ -0,0 +1,164 @@ +//////////////////////////////////////////////////////////////////////////////
+///
+/// SoundTouch DLL wrapper - wraps SoundTouch routines into a Dynamic Load
+/// Library interface.
+///
+/// Author : Copyright (c) Olli Parviainen
+/// Author e-mail : oparviai 'at' iki.fi
+/// SoundTouch WWW: http://www.surina.net/soundtouch
+///
+////////////////////////////////////////////////////////////////////////////////
+//
+// $Id: SoundTouchDLL.h 65 2009-02-23 08:33:13Z oparviai $
+//
+////////////////////////////////////////////////////////////////////////////////
+//
+// License :
+//
+// SoundTouch audio processing library
+// Copyright (c) Olli Parviainen
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+////////////////////////////////////////////////////////////////////////////////
+
+#ifndef _SoundTouchDLL_h_
+#define _SoundTouchDLL_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef DLL_EXPORTS
+ #define SOUNDTOUCHDLL_API __declspec(dllexport)
+#else
+ #define SOUNDTOUCHDLL_API __declspec(dllimport)
+#endif
+
+typedef void * HANDLE;
+
+/// Create a new instance of SoundTouch processor.
+SOUNDTOUCHDLL_API HANDLE __stdcall soundtouch_createInstance();
+
+/// Destroys a SoundTouch processor instance.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_destroyInstance(HANDLE h);
+
+/// Get SoundTouch library version string
+SOUNDTOUCHDLL_API const char *__stdcall soundtouch_getVersionString();
+
+/// Get SoundTouch library version Id
+SOUNDTOUCHDLL_API unsigned int __stdcall soundtouch_getVersionId();
+
+/// Sets new rate control value. Normal rate = 1.0, smaller values
+/// represent slower rate, larger faster rates.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setRate(HANDLE h, float newRate);
+
+/// Sets new tempo control value. Normal tempo = 1.0, smaller values
+/// represent slower tempo, larger faster tempo.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setTempo(HANDLE h, float newTempo);
+
+/// Sets new rate control value as a difference in percents compared
+/// to the original rate (-50 .. +100 %);
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setRateChange(HANDLE h, float newRate);
+
+/// Sets new tempo control value as a difference in percents compared
+/// to the original tempo (-50 .. +100 %);
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setTempoChange(HANDLE h, float newTempo);
+
+/// Sets new pitch control value. Original pitch = 1.0, smaller values
+/// represent lower pitches, larger values higher pitch.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setPitch(HANDLE h, float newPitch);
+
+/// Sets pitch change in octaves compared to the original pitch
+/// (-1.00 .. +1.00);
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setPitchOctaves(HANDLE h, float newPitch);
+
+/// Sets pitch change in semi-tones compared to the original pitch
+/// (-12 .. +12);
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setPitchSemiTones(HANDLE h, float newPitch);
+
+
+/// Sets the number of channels, 1 = mono, 2 = stereo
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setChannels(HANDLE h, unsigned int numChannels);
+
+/// Sets sample rate.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_setSampleRate(HANDLE h, unsigned int srate);
+
+/// Flushes the last samples from the processing pipeline to the output.
+/// Clears also the internal processing buffers.
+//
+/// Note: This function is meant for extracting the last samples of a sound
+/// stream. This function may introduce additional blank samples in the end
+/// of the sound stream, and thus it's not recommended to call this function
+/// in the middle of a sound stream.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_flush(HANDLE h);
+
+/// Adds 'numSamples' pcs of samples from the 'samples' memory position into
+/// the input of the object. Notice that sample rate _has_to_ be set before
+/// calling this function, otherwise throws a runtime_error exception.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_putSamples(HANDLE h,
+ const float *samples, ///< Pointer to sample buffer.
+ unsigned int numSamples ///< Number of samples in buffer. Notice
+ ///< that in case of stereo-sound a single sample
+ ///< contains data for both channels.
+ );
+
+/// Clears all the samples in the object's output and internal processing
+/// buffers.
+SOUNDTOUCHDLL_API void __stdcall soundtouch_clear(HANDLE h);
+
+/// Changes a setting controlling the processing system behaviour. See the
+/// 'SETTING_...' defines for available setting ID's.
+///
+/// \return 'TRUE' if the setting was succesfully changed
+SOUNDTOUCHDLL_API BOOL __stdcall soundtouch_setSetting(HANDLE h,
+ int settingId, ///< Setting ID number. see SETTING_... defines.
+ int value ///< New setting value.
+ );
+
+/// Reads a setting controlling the processing system behaviour. See the
+/// 'SETTING_...' defines for available setting ID's.
+///
+/// \return the setting value.
+SOUNDTOUCHDLL_API int __stdcall soundtouch_getSetting(HANDLE h,
+ int settingId ///< Setting ID number, see SETTING_... defines.
+ );
+
+
+/// Returns number of samples currently unprocessed.
+SOUNDTOUCHDLL_API unsigned int __stdcall soundtouch_numUnprocessedSamples(HANDLE h);
+
+/// Adjusts book-keeping so that given number of samples are removed from beginning of the
+/// sample buffer without copying them anywhere.
+///
+/// Used to reduce the number of samples in the buffer when accessing the sample buffer directly
+/// with 'ptrBegin' function.
+SOUNDTOUCHDLL_API unsigned int __stdcall soundtouch_receiveSamples(HANDLE h,
+ float *outBuffer, ///< Buffer where to copy output samples.
+ unsigned int maxSamples ///< How many samples to receive at max.
+ );
+
+/// Returns number of samples currently available.
+SOUNDTOUCHDLL_API unsigned int __stdcall soundtouch_numSamples(HANDLE h);
+
+/// Returns nonzero if there aren't any samples available for outputting.
+SOUNDTOUCHDLL_API int __stdcall soundtouch_isEmpty(HANDLE h);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _SoundTouchDLL_h_
+
diff --git a/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.pas b/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.pas new file mode 100644 index 0000000..f6a4911 --- /dev/null +++ b/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.pas @@ -0,0 +1,469 @@ +unit SoundTouchDLL;
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// SoundTouch.dll wrapper for accessing SoundTouch routines from Delphi/Pascal
+//
+// Module Author : Christian Budde
+//
+////////////////////////////////////////////////////////////////////////////////
+//
+// $Id: SoundTouchDLL.pas 66 2009-02-24 14:32:44Z oparviai $
+//
+////////////////////////////////////////////////////////////////////////////////
+//
+// License :
+//
+// SoundTouch audio processing library
+// Copyright (c) Olli Parviainen
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+////////////////////////////////////////////////////////////////////////////////
+
+interface
+
+uses
+ Windows;
+
+type
+ TSoundTouchHandle = THandle;
+
+ // Create a new instance of SoundTouch processor.
+ TSoundTouchCreateInstance = function : TSoundTouchHandle; stdcall;
+
+ // Destroys a SoundTouch processor instance.
+ TSoundTouchDestroyInstance = procedure (Handle: TSoundTouchHandle); stdcall;
+
+ // Get SoundTouch library version string
+ TSoundTouchGetVersionString = function : PChar; stdcall;
+
+ // Get SoundTouch library version Id
+ TSoundTouchGetVersionId = function : Cardinal; stdcall;
+
+ // Sets new rate control value. Normal rate = 1.0, smaller values
+ // represent slower rate, larger faster rates.
+ TSoundTouchSetRate = procedure (Handle: TSoundTouchHandle; newRate: Single); stdcall;
+
+ // Sets new tempo control value. Normal tempo = 1.0, smaller values
+ // represent slower tempo, larger faster tempo.
+ TSoundTouchSetTempo = procedure (Handle: TSoundTouchHandle; newTempo: Single); stdcall;
+
+ // Sets new rate control value as a difference in percents compared
+ // to the original rate (-50 .. +100 %);
+ TSoundTouchSetRateChange = procedure (Handle: TSoundTouchHandle; newRate: Single); stdcall;
+
+ // Sets new tempo control value as a difference in percents compared
+ // to the original tempo (-50 .. +100 %);
+ TSoundTouchSetTempoChange = procedure (Handle: TSoundTouchHandle; newTempo: Single); stdcall;
+
+ // Sets new pitch control value. Original pitch = 1.0, smaller values
+ // represent lower pitches, larger values higher pitch.
+ TSoundTouchSetPitch = procedure (Handle: TSoundTouchHandle; newPitch: Single); stdcall;
+
+ // Sets pitch change in octaves compared to the original pitch
+ // (-1.00 .. +1.00);
+ TSoundTouchSetPitchOctaves = procedure (Handle: TSoundTouchHandle; newPitch: Single); stdcall;
+
+ // Sets pitch change in semi-tones compared to the original pitch
+ // (-12 .. +12);
+ TSoundTouchSetPitchSemiTones = procedure (Handle: TSoundTouchHandle; newPitch: Single); stdcall;
+
+
+ // Sets the number of channels, 1 = mono, 2 = stereo
+ TSoundTouchSetChannels = procedure (Handle: TSoundTouchHandle; numChannels: Cardinal); stdcall;
+
+ // Sets sample rate.
+ TSoundTouchSetSampleRate = procedure (Handle: TSoundTouchHandle; SampleRate: Cardinal); stdcall;
+
+ // Flushes the last samples from the processing pipeline to the output.
+ // Clears also the internal processing buffers.
+ //
+ // Note: This function is meant for extracting the last samples of a sound
+ // stream. This function may introduce additional blank samples in the end
+ // of the sound stream, and thus it
+ // in the middle of a sound stream.
+ TSoundTouchFlush = procedure (Handle: TSoundTouchHandle); stdcall;
+
+ // Adds 'numSamples' pcs of samples from the 'samples' memory position into
+ // the input of the object. Notice that sample rate _has_to_ be set before
+ // calling this function, otherwise throws a runtime_error exception.
+ TSoundTouchPutSamples = procedure (Handle: TSoundTouchHandle;
+ const Samples: PSingle; //< Pointer to sample buffer.
+ NumSamples: Cardinal //< Number of samples in buffer. Notice
+ //< that in case of stereo-sound a single sample
+ //< contains data for both channels.
+ ); stdcall;
+
+ // Clears all the samples in the object's output and internal processing
+ // buffers.
+ TSoundTouchClear = procedure (Handle: TSoundTouchHandle); stdcall;
+
+ // Changes a setting controlling the processing system behaviour. See the
+ // 'SETTING_...' defines for available setting ID's.
+ //
+ // \return 'TRUE' if the setting was succesfully changed
+ TSoundTouchSetSetting = function (Handle: TSoundTouchHandle;
+ SettingId: Integer; //< Setting ID number. see SETTING_... defines.
+ Value: Integer //< New setting value.
+ ): Boolean; stdcall;
+
+ // Reads a setting controlling the processing system behaviour. See the
+ // 'SETTING_...' defines for available setting ID's.
+ //
+ // \return the setting value.
+ TSoundTouchGetSetting = function (Handle: TSoundTouchHandle;
+ settingId: Integer //< Setting ID number, see SETTING_... defines.
+ ): Integer; stdcall;
+
+
+ // Returns number of samples currently unprocessed.
+ TSoundTouchNumUnprocessedSamples = function (Handle: TSoundTouchHandle): Cardinal; stdcall;
+
+ // Adjusts book-keeping so that given number of samples are removed from beginning of the
+ // sample buffer without copying them anywhere.
+ //
+ // Used to reduce the number of samples in the buffer when accessing the sample buffer directly
+ // with 'ptrBegin' function.
+ TSoundTouchReceiveSamples = function (Handle: TSoundTouchHandle;
+ outBuffer: PSingle; //< Buffer where to copy output samples.
+ maxSamples: Integer //< How many samples to receive at max.
+ ): Cardinal; stdcall;
+
+ // Returns number of samples currently available.
+ TSoundTouchNumSamples = function (Handle: TSoundTouchHandle): Cardinal; stdcall;
+
+ // Returns nonzero if there aren't any samples available for outputting.
+ TSoundTouchIsEmpty = function (Handle: TSoundTouchHandle): Integer; stdcall;
+
+var
+ SoundTouchCreateInstance : TSoundTouchCreateInstance;
+ SoundTouchDestroyInstance : TSoundTouchDestroyInstance;
+ SoundTouchGetVersionString : TSoundTouchGetVersionString;
+ SoundTouchGetVersionId : TSoundTouchGetVersionId;
+ SoundTouchSetRate : TSoundTouchSetRate;
+ SoundTouchSetTempo : TSoundTouchSetTempo;
+ SoundTouchSetRateChange : TSoundTouchSetRateChange;
+ SoundTouchSetTempoChange : TSoundTouchSetTempoChange;
+ SoundTouchSetPitch : TSoundTouchSetPitch;
+ SoundTouchSetPitchOctaves : TSoundTouchSetPitchOctaves;
+ SoundTouchSetPitchSemiTones : TSoundTouchSetPitchSemiTones;
+ SoundTouchSetChannels : TSoundTouchSetChannels;
+ SoundTouchSetSampleRate : TSoundTouchSetSampleRate;
+ SoundTouchFlush : TSoundTouchFlush;
+ SoundTouchPutSamples : TSoundTouchPutSamples;
+ SoundTouchClear : TSoundTouchClear;
+ SoundTouchSetSetting : TSoundTouchSetSetting;
+ SoundTouchGetSetting : TSoundTouchGetSetting;
+ SoundTouchNumUnprocessedSamples : TSoundTouchNumUnprocessedSamples;
+ SoundTouchReceiveSamples : TSoundTouchReceiveSamples;
+ SoundTouchNumSamples : TSoundTouchNumSamples;
+ SoundTouchIsEmpty : TSoundTouchIsEmpty;
+
+type
+ TSoundTouch = class
+ private
+ FHandle : TSoundTouchHandle;
+ FRate : Single;
+ FPitch : Single;
+ FTempo : Single;
+ FSampleRate : Single;
+ FChannels : Cardinal;
+ function GetNumSamples: Cardinal;
+ function GetNumUnprocessedSamples: Cardinal;
+ function GetIsEmpty: Integer;
+ function GetPitchChange: Single;
+ function GetRateChange: Single;
+ function GetTempoChange: Single;
+ procedure SetRate(const Value: Single);
+ procedure SetPitch(const Value: Single);
+ procedure SetTempo(const Value: Single);
+ procedure SetPitchChange(const Value: Single);
+ procedure SetRateChange(const Value: Single);
+ procedure SetTempoChange(const Value: Single);
+ procedure SetChannels(const Value: Cardinal);
+ procedure SetSampleRate(const Value: Single);
+ protected
+ procedure SamplerateChanged; virtual;
+ procedure ChannelsChanged; virtual;
+ procedure PitchChanged; virtual;
+ procedure TempoChanged; virtual;
+ procedure RateChanged; virtual;
+ public
+ class function GetVersionString: string;
+ class function GetVersionId: Cardinal;
+ constructor Create; virtual;
+ destructor Destroy; override;
+ procedure Flush; virtual;
+ procedure Clear; virtual;
+
+ procedure PutSamples(const Samples: PSingle; const NumSamples: Cardinal);
+ function ReceiveSamples(const outBuffer: PSingle; const maxSamples: Integer): Cardinal;
+
+ function SetSetting(const SettingId: Integer; const Value: Integer): Boolean;
+ function GetSetting(const settingId: Integer): Integer;
+
+ property VersionString: string read GetVersionString;
+ property VersionID: Cardinal read GetVersionId;
+ property Channels: Cardinal read FChannels write SetChannels;
+ property Rate: Single read FRate write SetRate;
+ property RateChange: Single read GetRateChange write SetRateChange;
+ property Tempo: Single read FTempo write SetTempo;
+ property TempoChange: Single read GetTempoChange write SetTempoChange;
+ property Pitch: Single read FPitch write SetPitch;
+ property PitchChange: Single read GetPitchChange write SetPitchChange;
+ property SampleRate: Single read FSampleRate write SetSampleRate;
+
+ property NumSamples: Cardinal read GetNumSamples;
+ property NumUnprocessedSamples: Cardinal read GetNumUnprocessedSamples;
+ property IsEmpty: Integer read GetIsEmpty;
+ end;
+
+implementation
+
+uses
+ SysUtils;
+
+{ TSoundTouch }
+
+constructor TSoundTouch.Create;
+begin
+ inherited;
+ FHandle := SoundTouchCreateInstance;
+ FRate := 1;
+ FTempo := 1;
+ FPitch := 1;
+ FChannels := 1;
+ FSampleRate := 44100;
+ SamplerateChanged;
+ ChannelsChanged;
+end;
+
+destructor TSoundTouch.Destroy;
+begin
+ SoundTouchDestroyInstance(FHandle);
+ inherited;
+end;
+
+procedure TSoundTouch.Flush;
+begin
+ SoundTouchFlush(FHandle);
+end;
+
+procedure TSoundTouch.Clear;
+begin
+ SoundTouchClear(FHandle);
+end;
+
+function TSoundTouch.GetIsEmpty: Integer;
+begin
+ result := SoundTouchIsEmpty(FHandle);
+end;
+
+function TSoundTouch.GetNumSamples: Cardinal;
+begin
+ result := SoundTouchNumSamples(FHandle);
+end;
+
+function TSoundTouch.GetNumUnprocessedSamples: Cardinal;
+begin
+ result := SoundTouchNumUnprocessedSamples(FHandle);
+end;
+
+function TSoundTouch.GetPitchChange: Single;
+begin
+ result := 100 * (FPitch - 1.0);
+end;
+
+function TSoundTouch.GetRateChange: Single;
+begin
+ result := 100 * (FRate - 1.0);
+end;
+
+function TSoundTouch.GetTempoChange: Single;
+begin
+ result := 100 * (FTempo - 1.0);
+end;
+
+class function TSoundTouch.GetVersionId: Cardinal;
+begin
+ result := SoundTouchGetVersionId;
+end;
+
+class function TSoundTouch.GetVersionString: string;
+begin
+ result := StrPas(SoundTouchGetVersionString);
+end;
+
+procedure TSoundTouch.SetChannels(const Value: Cardinal);
+begin
+ if FChannels <> Value then
+ begin
+ FChannels := Value;
+ ChannelsChanged;
+ end;
+end;
+
+procedure TSoundTouch.ChannelsChanged;
+begin
+ assert(FChannels in [1, 2]);
+ SoundTouchSetChannels(FHandle, FChannels);
+end;
+
+procedure TSoundTouch.SetPitch(const Value: Single);
+begin
+ if FPitch <> Value then
+ begin
+ FPitch := Value;
+ PitchChanged;
+ end;
+end;
+
+procedure TSoundTouch.PitchChanged;
+begin
+ SoundTouchSetPitch(FHandle, FPitch);
+end;
+
+procedure TSoundTouch.putSamples(const Samples: PSingle;
+ const NumSamples: Cardinal);
+begin
+ SoundTouchPutSamples(FHandle, Samples, NumSamples);
+end;
+
+procedure TSoundTouch.RateChanged;
+begin
+ SoundTouchSetRate(FHandle, FRate);
+end;
+
+function TSoundTouch.ReceiveSamples(const outBuffer: PSingle;
+ const maxSamples: Integer): Cardinal;
+begin
+ result := SoundTouchReceiveSamples(FHandle, outBuffer, maxSamples);
+end;
+
+procedure TSoundTouch.SetPitchChange(const Value: Single);
+begin
+ Pitch := 1.0 + 0.01 * Value;
+end;
+
+procedure TSoundTouch.SetRate(const Value: Single);
+begin
+ if FRate <> Value then
+ begin
+ FRate := Value;
+ RateChanged;
+ end;
+end;
+
+procedure TSoundTouch.SetRateChange(const Value: Single);
+begin
+ Rate := 1.0 + 0.01 * Value;
+end;
+
+procedure TSoundTouch.SetSampleRate(const Value: Single);
+begin
+ if FSampleRate <> Value then
+ begin
+ FSampleRate := Value;
+ SamplerateChanged;
+ end;
+end;
+
+procedure TSoundTouch.SamplerateChanged;
+begin
+ assert(FSampleRate > 0);
+ SoundTouchsetSampleRate(FHandle, round(FSampleRate));
+end;
+
+procedure TSoundTouch.SetTempo(const Value: Single);
+begin
+ if FTempo <> Value then
+ begin
+ FTempo := Value;
+ TempoChanged;
+ end;
+end;
+
+procedure TSoundTouch.SetTempoChange(const Value: Single);
+begin
+ Tempo := 1.0 + 0.01 * Value;
+end;
+
+function TSoundTouch.GetSetting(const SettingId: Integer): Integer;
+begin
+ result := SoundTouchGetSetting(FHandle, SettingId);
+end;
+
+function TSoundTouch.SetSetting(const SettingId: Integer;
+ const Value: Integer): Boolean;
+begin
+ result := SoundTouchSetSetting(FHandle, SettingId, Value);
+end;
+
+procedure TSoundTouch.TempoChanged;
+begin
+ SoundTouchsetTempo(FHandle, FTempo);
+end;
+
+var
+ SoundTouchLibHandle: HINST;
+ SoundTouchDLL: PAnsiChar = 'SoundTouch.DLL';
+
+procedure InitDLL;
+begin
+ SoundTouchLibHandle := LoadLibrary(SoundTouchDLL);
+ if SoundTouchLibHandle <> 0 then
+ try
+ SoundTouchCreateInstance := GetProcAddress(SoundTouchLibHandle, PAnsiChar( 2)); //'soundtouch_createInstance');
+ SoundTouchDestroyInstance := GetProcAddress(SoundTouchLibHandle, PAnsiChar( 3)); //'soundtouch_destroyInstance');
+ SoundTouchGetVersionString := GetProcAddress(SoundTouchLibHandle, PAnsiChar( 7)); //'soundtouch_getVersionString');
+ SoundTouchGetVersionId := GetProcAddress(SoundTouchLibHandle, PAnsiChar( 6)); //'soundtouch_getVersionId');
+ SoundTouchSetRate := GetProcAddress(SoundTouchLibHandle, PAnsiChar(17)); //'soundtouch_setRate');
+ SoundTouchSetTempo := GetProcAddress(SoundTouchLibHandle, PAnsiChar(21)); //'soundtouch_setTempo');
+ SoundTouchSetRateChange := GetProcAddress(SoundTouchLibHandle, PAnsiChar(18)); //'soundtouch_setRateChange');
+ SoundTouchSetTempoChange := GetProcAddress(SoundTouchLibHandle, PAnsiChar(22)); //'soundtouch_setTempoChange');
+ SoundTouchSetPitch := GetProcAddress(SoundTouchLibHandle, PAnsiChar(14)); //'soundtouch_setPitch');
+ SoundTouchSetPitchOctaves := GetProcAddress(SoundTouchLibHandle, PAnsiChar(15)); //'soundtouch_setPitchOctaves');
+ SoundTouchSetPitchSemiTones := GetProcAddress(SoundTouchLibHandle, PAnsiChar(16)); //'soundtouch_setPitchSemiTones');
+ SoundTouchSetChannels := GetProcAddress(SoundTouchLibHandle, PAnsiChar(13)); //'soundtouch_setChannels');
+ SoundTouchSetSampleRate := GetProcAddress(SoundTouchLibHandle, PAnsiChar(19)); //'soundtouch_setSampleRate');
+ SoundTouchFlush := GetProcAddress(SoundTouchLibHandle, PAnsiChar(4)); //'soundtouch_flush');
+ SoundTouchPutSamples := GetProcAddress(SoundTouchLibHandle, PAnsiChar(11)); //'soundtouch_putSamples');
+ SoundTouchClear := GetProcAddress(SoundTouchLibHandle, PAnsiChar(1)); //'soundtouch_clear');
+ SoundTouchSetSetting := GetProcAddress(SoundTouchLibHandle, PAnsiChar(20)); //'soundtouch_SetSetting');
+ SoundTouchGetSetting := GetProcAddress(SoundTouchLibHandle, PAnsiChar(5)); //'soundtouch_setSetting');
+ SoundTouchNumUnprocessedSamples := GetProcAddress(SoundTouchLibHandle, PAnsiChar(10)); //'soundtouch_numUnprocessedSamples');
+ SoundTouchReceiveSamples := GetProcAddress(SoundTouchLibHandle, PAnsiChar(12)); //'soundtouch_receiveSamples');
+ SoundTouchNumSamples := GetProcAddress(SoundTouchLibHandle, PAnsiChar(9)); //'soundtouch_numSamples');
+ SoundTouchIsEmpty := GetProcAddress(SoundTouchLibHandle, PAnsiChar(8)); //'soundtouch_isEmpty');
+
+ except
+ FreeLibrary(SoundTouchLibHandle);
+ SoundTouchLibHandle := 0;
+ end;
+end;
+
+procedure FreeDLL;
+begin
+ if SoundTouchLibHandle <> 0 then FreeLibrary(SoundTouchLibHandle);
+end;
+
+initialization
+ InitDLL;
+
+finalization
+ FreeDLL;
+
+end.
diff --git a/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.rc b/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.rc new file mode 100644 index 0000000..dca9a7c --- /dev/null +++ b/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.rc @@ -0,0 +1,113 @@ +// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Finnish resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FIN)
+#ifdef _WIN32
+LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,5,0,0
+ PRODUCTVERSION 1,5,0,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "000004b0"
+ BEGIN
+ VALUE "FileDescription", "SoundTouch Dynamic Link Library"
+ VALUE "FileVersion", "1, 5, 0, 0"
+ VALUE "InternalName", "SoundTouch"
+ VALUE "LegalCopyright", "Copyright (C) Olli Parviainen 1999-2009"
+ VALUE "OriginalFilename", "SoundTouch.dll"
+ VALUE "ProductName", " SoundTouch Dynamic Link Library"
+ VALUE "ProductVersion", "1, 5, 0, 0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0, 1200
+ END
+END
+
+#endif // Finnish resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.sln b/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.sln new file mode 100644 index 0000000..61b1acf --- /dev/null +++ b/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.sln @@ -0,0 +1,32 @@ +Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundTouchDLL", "SoundTouchDLL.vcproj", "{164DE61D-6391-4265-8273-30740117D356}"
+ ProjectSection(ProjectDependencies) = postProject
+ {68A5DD20-7057-448B-8FE0-B6AC8D205509} = {68A5DD20-7057-448B-8FE0-B6AC8D205509}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundTouch", "..\SoundTouch\SoundTouch.vcproj", "{68A5DD20-7057-448B-8FE0-B6AC8D205509}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ Release = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {164DE61D-6391-4265-8273-30740117D356}.Debug.ActiveCfg = Debug|Win32
+ {164DE61D-6391-4265-8273-30740117D356}.Debug.Build.0 = Debug|Win32
+ {164DE61D-6391-4265-8273-30740117D356}.Release.ActiveCfg = Release|Win32
+ {164DE61D-6391-4265-8273-30740117D356}.Release.Build.0 = Release|Win32
+ {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Debug.ActiveCfg = Debug|Win32
+ {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Debug.Build.0 = Debug|Win32
+ {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Release.ActiveCfg = Release|Win32
+ {68A5DD20-7057-448B-8FE0-B6AC8D205509}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.vcproj b/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.vcproj new file mode 100644 index 0000000..485f7db --- /dev/null +++ b/pysoundtouch/soundtouch/source/SoundTouchDLL/SoundTouchDLL.vcproj @@ -0,0 +1,158 @@ +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="SoundTouchDLL"
+ ProjectGUID="{164DE61D-6391-4265-8273-30740117D356}"
+ Keyword="Win32Proj">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="2"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;DLL_EXPORTS"
+ MinimalRebuild="TRUE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="TRUE"
+ DebugInformationFormat="4"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(OutDir)/SoundTouchD.dll"
+ LinkIncremental="2"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile="$(OutDir)/SoundTouchD.pdb"
+ SubSystem="2"
+ ImportLibrary="$(OutDir)/SoundTouchDllD.lib"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy $(OutDir)\*.dll ..\..\lib
+copy $(OutDir)\*.lib ..\..\lib
+"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="2"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ GlobalOptimizations="FALSE"
+ AdditionalIncludeDirectories="..\..\include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DLL_EXPORTS"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="TRUE"
+ DebugInformationFormat="3"
+ CallingConvention="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(OutDir)/SoundTouch.dll"
+ LinkIncremental="1"
+ GenerateDebugInformation="FALSE"
+ GenerateMapFile="TRUE"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ ImportLibrary="$(OutDir)/SoundTouchDll.lib"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="copy $(OutDir)\*.dll ..\..\lib
+copy $(OutDir)\*.lib ..\..\lib
+"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+ <File
+ RelativePath=".\SoundTouchDLL.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
+ <File
+ RelativePath=".\resource.h">
+ </File>
+ <File
+ RelativePath=".\SoundTouchDLL.h">
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
+ <File
+ RelativePath=".\SoundTouchDLL.rc">
+ </File>
+ </Filter>
+ <File
+ RelativePath=".\ReadMe.txt">
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
|
