[PD-cvs] pd/portaudio/src/os/win pa_win_hostapis.c, NONE, 1.1 pa_win_util.c, NONE, 1.1 pa_x86_plain_converters.c, NONE, 1.1 pa_x86_plain_converters.h, NONE, 1.1
Miller Puckette
millerpuckette at users.sourceforge.net
Sun Aug 19 01:49:36 CEST 2007
- Previous message: [PD-cvs] pd/portaudio/src/hostapi/coreaudio notes.txt, NONE, 1.1 pa_mac_core.c, NONE, 1.1 pa_mac_core_blocking.c, NONE, 1.1 pa_mac_core_blocking.h, NONE, 1.1 pa_mac_core_internal.h, NONE, 1.1 pa_mac_core_old.c, NONE, 1.1 pa_mac_core_utilities.c, NONE, 1.1 pa_mac_core_utilities.h, NONE, 1.1
- Next message: [PD-cvs] pd/portaudio/src/common pa_allocation.c, NONE, 1.1 pa_allocation.h, NONE, 1.1 pa_converters.c, NONE, 1.1 pa_converters.h, NONE, 1.1 pa_cpuload.c, NONE, 1.1 pa_cpuload.h, NONE, 1.1 pa_debugprint.c, NONE, 1.1 pa_debugprint.h, NONE, 1.1 pa_dither.c, NONE, 1.1 pa_dither.h, NONE, 1.1 pa_endianness.h, NONE, 1.1 pa_front.c, NONE, 1.1 pa_hostapi.h, NONE, 1.1 pa_process.c, NONE, 1.1 pa_process.h, NONE, 1.1 pa_ringbuffer.c, NONE, 1.1 pa_ringbuffer.h, NONE, 1.1 pa_skeleton.c, NONE, 1.1 pa_stream.c, NONE, 1.1 pa_stream.h, NONE, 1.1 pa_trace.c, NONE, 1.1 pa_trace.h, NONE, 1.1 pa_types.h, NONE, 1.1 pa_util.h, NONE, 1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/pure-data/pd/portaudio/src/os/win
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19525/portaudio/src/os/win
Added Files:
pa_win_hostapis.c pa_win_util.c pa_x86_plain_converters.c
pa_x86_plain_converters.h
Log Message:
CVS upload mistakes
--- NEW FILE: pa_win_hostapis.c ---
/*
* $Id: pa_win_hostapis.c,v 1.1 2007/08/18 23:49:33 millerpuckette Exp $
* Portable Audio I/O Library Windows initialization table
*
* Based on the Open Source API proposed by Ross Bencina
* Copyright (c) 1999-2002 Ross Bencina, Phil Burk
*
* 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.
*/
/** @file
@ingroup win_src
Win32 host API initialization function table.
@todo Consider using PA_USE_WMME etc instead of PA_NO_WMME. This is what
the Unix version does, we should consider being consistent.
*/
#include "pa_hostapi.h"
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
PaError PaSkeleton_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
PaError PaWinMme_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
PaError PaWinDs_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
PaError PaAsio_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
PaError PaWinWdm_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
PaError PaWinWasapi_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index );
#ifdef __cplusplus
}
#endif /* __cplusplus */
PaUtilHostApiInitializer *paHostApiInitializers[] =
{
#ifndef PA_NO_WMME
PaWinMme_Initialize,
#endif
#ifndef PA_NO_DS
PaWinDs_Initialize,
#endif
#ifndef PA_NO_ASIO
PaAsio_Initialize,
#endif
/*
#ifndef PA_NO_WASAPI
PaWinWasapi_Initialize,
#endif
#ifndef PA_NO_WDMKS
PaWinWdm_Initialize,
#endif
*/
PaSkeleton_Initialize, /* just for testing */
0 /* NULL terminated array */
};
int paDefaultHostApiIndex = 0;
--- NEW FILE: pa_x86_plain_converters.c ---
/*
* Plain Intel IA32 assembly implementations of PortAudio sample converter functions.
* Copyright (c) 1999-2002 Ross Bencina, Phil Burk
*
* 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
[...1180 lines suppressed...]
/* -------------------------------------------------------------------------- */
void PaUtil_InitializeX86PlainConverters( void )
{
paConverters.Float32_To_Int32 = Float32_To_Int32;
paConverters.Float32_To_Int32_Clip = Float32_To_Int32_Clip;
paConverters.Float32_To_Int32_DitherClip = Float32_To_Int32_DitherClip;
paConverters.Float32_To_Int24 = Float32_To_Int24;
paConverters.Float32_To_Int24_Clip = Float32_To_Int24_Clip;
paConverters.Float32_To_Int24_DitherClip = Float32_To_Int24_DitherClip;
paConverters.Float32_To_Int16 = Float32_To_Int16;
paConverters.Float32_To_Int16_Clip = Float32_To_Int16_Clip;
paConverters.Float32_To_Int16_DitherClip = Float32_To_Int16_DitherClip;
}
#endif
/* -------------------------------------------------------------------------- */
--- NEW FILE: pa_x86_plain_converters.h ---
/*
* Plain Intel IA32 assembly implementations of PortAudio sample converter functions.
* Copyright (c) 1999-2002 Ross Bencina, Phil Burk
*
* 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.
*/
/** @file
@ingroup win_src
*/
#ifndef PA_X86_PLAIN_CONVERTERS_H
#define PA_X86_PLAIN_CONVERTERS_H
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
/**
@brief Install optimised converter functions suitable for all IA32 processors
It is recommended to call PaUtil_InitializeX86PlainConverters prior to calling Pa_Initialize
*/
void PaUtil_InitializeX86PlainConverters( void );
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* PA_X86_PLAIN_CONVERTERS_H */
--- NEW FILE: pa_win_util.c ---
/*
* $Id: pa_win_util.c,v 1.1 2007/08/18 23:49:33 millerpuckette Exp $
* Portable Audio I/O Library
* Win32 platform-specific support functions
*
* Based on the Open Source API proposed by Ross Bencina
* Copyright (c) 1999-2000 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.
*/
/** @file
@ingroup win_src
Win32 platform-specific support functions.
@todo Implement workaround for QueryPerformanceCounter() skipping forward
bug. (see msdn kb Q274323).
*/
#include <windows.h>
#include <mmsystem.h> /* for timeGetTime() */
#include "pa_util.h"
/*
Track memory allocations to avoid leaks.
*/
#if PA_TRACK_MEMORY
static int numAllocations_ = 0;
#endif
void *PaUtil_AllocateMemory( long size )
{
void *result = GlobalAlloc( GPTR, size );
#if PA_TRACK_MEMORY
if( result != NULL ) numAllocations_ += 1;
#endif
return result;
}
void PaUtil_FreeMemory( void *block )
{
if( block != NULL )
{
GlobalFree( block );
#if PA_TRACK_MEMORY
numAllocations_ -= 1;
#endif
}
}
int PaUtil_CountCurrentlyAllocatedBlocks( void )
{
#if PA_TRACK_MEMORY
return numAllocations_;
#else
return 0;
#endif
}
void Pa_Sleep( long msec )
{
Sleep( msec );
}
static int usePerformanceCounter_;
static double secondsPerTick_;
void PaUtil_InitializeClock( void )
{
LARGE_INTEGER ticksPerSecond;
if( QueryPerformanceFrequency( &ticksPerSecond ) != 0 )
{
usePerformanceCounter_ = 1;
secondsPerTick_ = 1.0 / (double)ticksPerSecond.QuadPart;
}
else
{
usePerformanceCounter_ = 0;
}
}
double PaUtil_GetTime( void )
{
LARGE_INTEGER time;
if( usePerformanceCounter_ )
{
/* FIXME:
according to this knowledge-base article, QueryPerformanceCounter
can skip forward by seconds!
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q274323&
it may be better to use the rtdsc instruction using inline asm,
however then a method is needed to calculate a ticks/seconds ratio.
*/
QueryPerformanceCounter( &time );
return time.QuadPart * secondsPerTick_;
}
else
{
#ifndef UNDER_CE
return timeGetTime() * .001;
#else
return GetTickCount() * .001;
#endif
}
}
- Previous message: [PD-cvs] pd/portaudio/src/hostapi/coreaudio notes.txt, NONE, 1.1 pa_mac_core.c, NONE, 1.1 pa_mac_core_blocking.c, NONE, 1.1 pa_mac_core_blocking.h, NONE, 1.1 pa_mac_core_internal.h, NONE, 1.1 pa_mac_core_old.c, NONE, 1.1 pa_mac_core_utilities.c, NONE, 1.1 pa_mac_core_utilities.h, NONE, 1.1
- Next message: [PD-cvs] pd/portaudio/src/common pa_allocation.c, NONE, 1.1 pa_allocation.h, NONE, 1.1 pa_converters.c, NONE, 1.1 pa_converters.h, NONE, 1.1 pa_cpuload.c, NONE, 1.1 pa_cpuload.h, NONE, 1.1 pa_debugprint.c, NONE, 1.1 pa_debugprint.h, NONE, 1.1 pa_dither.c, NONE, 1.1 pa_dither.h, NONE, 1.1 pa_endianness.h, NONE, 1.1 pa_front.c, NONE, 1.1 pa_hostapi.h, NONE, 1.1 pa_process.c, NONE, 1.1 pa_process.h, NONE, 1.1 pa_ringbuffer.c, NONE, 1.1 pa_ringbuffer.h, NONE, 1.1 pa_skeleton.c, NONE, 1.1 pa_stream.c, NONE, 1.1 pa_stream.h, NONE, 1.1 pa_trace.c, NONE, 1.1 pa_trace.h, NONE, 1.1 pa_types.h, NONE, 1.1 pa_util.h, NONE, 1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Pd-cvs
mailing list