Update of /cvsroot/pure-data/pd/portaudio/pa_win_ds In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12672/pd/portaudio/pa_win_ds
Modified Files: pa_win_ds.c Log Message: FFT package selection
Zmoelnig's multi-'$' patch
big-soundfile support
Patch to set open directories (openpanel, savepanel)
patch to allow funny characters in extern names
fixed makefile.in to support intel mac
Index: pa_win_ds.c =================================================================== RCS file: /cvsroot/pure-data/pd/portaudio/pa_win_ds/pa_win_ds.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** pa_win_ds.c 30 May 2005 03:04:13 -0000 1.9 --- pa_win_ds.c 3 Jun 2006 19:13:06 -0000 1.10 *************** *** 76,84 **** #endif
! #define PRINT(x) /* { printf x; fflush(stdout); } */ #define ERR_RPT(x) PRINT(x) ! #define DBUG(x) /* PRINT(x) */ ! #define DBUGX(x) /* PRINT(x) */
#define PA_USE_HIGH_LATENCY (0) --- 76,90 ---- #endif
+ /* + provided in newer platform sdks and x64 + */ + #ifndef DWORD_PTR + #define DWORD_PTR DWORD + #endif
! #define PRINT(x) PA_DEBUG(x); #define ERR_RPT(x) PRINT(x) ! #define DBUG(x) PRINT(x) ! #define DBUGX(x) PRINT(x)
#define PA_USE_HIGH_LATENCY (0) *************** *** 367,370 **** --- 373,385 ----
+ /* + GUIDs for emulated devices which we blacklist below. + are there more than two of them?? + */ + + GUID IID_IRolandVSCEmulated1 = {0xc2ad1800, 0xb243, 0x11ce, 0xa8, 0xa4, 0x00, 0xaa, 0x00, 0x6c, 0x45, 0x01}; + GUID IID_IRolandVSCEmulated2 = {0xc2ad1800, 0xb243, 0x11ce, 0xa8, 0xa4, 0x00, 0xaa, 0x00, 0x6c, 0x45, 0x02}; + + #define PA_DEFAULTSAMPLERATESEARCHORDER_COUNT_ (13) /* must match array length below */ static double defaultSampleRateSearchOrder_[] = *************** *** 405,408 **** --- 420,433 ----
+ if( lpGUID ) + { + if (IsEqualGUID (&IID_IRolandVSCEmulated1,lpGUID) || + IsEqualGUID (&IID_IRolandVSCEmulated2,lpGUID) ) + { + PA_DEBUG(("BLACKLISTED: %s \n",name)); + return paNoError; + } + } + /* Create a DirectSound object for the specified GUID Note that using CoCreateInstance doesn't work on windows CE. *************** *** 428,432 **** --- 453,474 ---- if( hr != DS_OK ) { + if (hr == DSERR_ALLOCATED) + PA_DEBUG(("AddOutputDeviceInfoFromDirectSound %s DSERR_ALLOCATED\n",name)); DBUG(("Cannot create DirectSound for %s. Result = 0x%x\n", name, hr )); + if (lpGUID) + DBUG(("%s's GUID: {0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x, 0x%x} \n", + name, + lpGUID->Data1, + lpGUID->Data2, + lpGUID->Data3, + lpGUID->Data4[0], + lpGUID->Data4[1], + lpGUID->Data4[2], + lpGUID->Data4[3], + lpGUID->Data4[4], + lpGUID->Data4[5], + lpGUID->Data4[6], + lpGUID->Data4[7])); + deviceOK = FALSE; } *************** *** 492,496 **** deviceInfo->defaultSampleRate = 44100.0f;
! DBUG(("PA - Reported rates both zero. Setting to fake values for device #%d\n", sDeviceIndex )); } else --- 534,538 ---- deviceInfo->defaultSampleRate = 44100.0f;
! DBUG(("PA - Reported rates both zero. Setting to fake values for device #%s\n", name )); } else *************** *** 506,510 **** */ deviceInfo->defaultSampleRate = 44100.0f; ! DBUG(("PA - Sample rate range used instead of two odd values for device #%d\n", sDeviceIndex )); } else deviceInfo->defaultSampleRate = caps.dwMaxSecondarySampleRate; --- 548,552 ---- */ deviceInfo->defaultSampleRate = 44100.0f; ! DBUG(("PA - Sample rate range used instead of two odd values for device #%s\n", name )); } else deviceInfo->defaultSampleRate = caps.dwMaxSecondarySampleRate; *************** *** 1512,1516 **** } /*******************************************************************/ ! static void CALLBACK Pa_TimerCallback(UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2) { PaWinDsStream *stream; --- 1554,1558 ---- } /*******************************************************************/ ! static void CALLBACK Pa_TimerCallback(UINT uID, UINT uMsg, DWORD_PTR dwUser, DWORD dw1, DWORD dw2) { PaWinDsStream *stream; *************** *** 1636,1640 **** resolution = msecPerWakeup/4; stream->timerID = timeSetEvent( msecPerWakeup, resolution, (LPTIMECALLBACK) Pa_TimerCallback, ! (DWORD) stream, TIME_PERIODIC ); } if( stream->timerID == 0 ) --- 1678,1682 ---- resolution = msecPerWakeup/4; stream->timerID = timeSetEvent( msecPerWakeup, resolution, (LPTIMECALLBACK) Pa_TimerCallback, ! (DWORD_PTR) stream, TIME_PERIODIC ); } if( stream->timerID == 0 )