From 1fac1056ea168f469e379ec105efff8268303cd7 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 16 Aug 2009 00:05:03 +0000 Subject: [PATCH] check sound card frame sizes and fire error in case it is not supported --- src/client.cpp | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/client.cpp b/src/client.cpp index 96e1f742..792cd881 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -257,6 +257,28 @@ void CClient::Start() // init object Init(); + +// TEST check sound card buffer sizes, if not supported, fire error message +if ( ( iMonoBlockSizeSam != ( SYSTEM_FRAME_SIZE_SAMPLES * FRAME_SIZE_FACTOR_PREFERRED ) ) && + ( iMonoBlockSizeSam != ( SYSTEM_FRAME_SIZE_SAMPLES * FRAME_SIZE_FACTOR_DEFAULT ) ) && + ( iMonoBlockSizeSam != ( SYSTEM_FRAME_SIZE_SAMPLES * FRAME_SIZE_FACTOR_SAFE ) ) ) +{ + const QString strError = "The sound card frame size is not supported " + "by this software. Please open your " +#ifdef _WIN32 + "ASIO " +#else + "JACK " +#endif + "configuration panel and use one of the following frame sizes: " + + QString().setNum ( SYSTEM_FRAME_SIZE_SAMPLES * FRAME_SIZE_FACTOR_PREFERRED ) + ", " + + QString().setNum ( SYSTEM_FRAME_SIZE_SAMPLES * FRAME_SIZE_FACTOR_DEFAULT ) + ", or " + + QString().setNum ( SYSTEM_FRAME_SIZE_SAMPLES * FRAME_SIZE_FACTOR_SAFE ) + "."; + + throw CGenErr ( strError ); +} + + // enable channel Channel.SetEnable ( true ); @@ -426,8 +448,6 @@ void CClient::ProcessAudioData ( CVector& vecsStereoSndCrd ) } } -// TEST -// TODO use actual frame size factor, not preferred one!!!! for ( i = 0; i < iSndCrdFrameSizeFactor; i++ ) { // encode current audio frame with CELT encoder @@ -444,9 +464,6 @@ void CClient::ProcessAudioData ( CVector& vecsStereoSndCrd ) // Receive signal ---------------------------------------------------------- - -// TEST -// TODO use actual frame size factor, not preferred one!!!! for ( i = 0; i < iSndCrdFrameSizeFactor; i++ ) { // receive a new block