#endif /* __cplusplus */
+/* The following are flags which can be set in
+ PaWinMmeStreamInfo's flags field.
+*/
+
#define paWinMmeUseLowLevelLatencyParameters (0x01)
#define paWinMmeUseMultipleDevices (0x02) /* use mme specific multiple device feature */
#define paWinMmeUseChannelMask (0x04)
*/
#define paWinMmeDontThrottleOverloadedProcessingThread (0x08)
-/* flags for non-PCM spdif passthrough */
+/* Flags for non-PCM spdif passthrough.
+*/
#define paWinMmeWaveFormatDolbyAc3Spdif (0x10)
#define paWinMmeWaveFormatWmaSpdif (0x20)
return paInvalidFlag; /* unexpected platform specific flag */
+ /* always disable clipping and dithering if we are outputting a raw spdif stream */
+ if( (winMmeSpecificOutputFlags & paWinMmeWaveFormatDolbyAc3Spdif)
+ || (winMmeSpecificOutputFlags & paWinMmeWaveFormatWmaSpdif) ){
+
+ streamFlags = streamFlags | paClipOff | paDitherOff;
+ }
+
+
result = CalculateBufferSettings( &framesPerHostInputBuffer, &hostInputBufferCount,
&framesPerHostOutputBuffer, &hostOutputBufferCount,
inputChannelCount, hostInputSampleFormat, suggestedInputLatency, inputStreamInfo,
&outputParameters,\r
SAMPLE_RATE,\r
FRAMES_PER_BUFFER,\r
- paClipOff | paDitherOff, /* IMPORTANT must disable clipping and dithering for WMME AC3 */\r
+ 0,\r
patestCallback,\r
&data );\r
if( err != paNoError ) goto error;\r