From 55d5dda36701cda2857f38ba7d60bd40f2c5e51a Mon Sep 17 00:00:00 2001 From: Octasic Inc Date: Mon, 20 Mar 2006 17:11:56 +0200 Subject: importing OCT612x-01.00-PR40 --- .../oct6100api/oct6100_api/oct6100_channel.c | 43 ++++++++++++++++------ 1 file changed, 31 insertions(+), 12 deletions(-) (limited to 'software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c') diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c index 7710154..53bbd67 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c @@ -23,9 +23,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR39 $ +$Octasic_Release: OCT612xAPI-01.00-PR40 $ -$Octasic_Revision: 460 $ +$Octasic_Revision: 464 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -183,7 +183,7 @@ UINT32 Oct6100ChannelOpenDef( f_pChannelOpen->CodecConfig.fEnableSilenceSuppression = FALSE; f_pChannelOpen->CodecConfig.ulPhasingTsstHndl = cOCT6100_INVALID_HANDLE; - f_pChannelOpen->CodecConfig.ulPhase = 0; + f_pChannelOpen->CodecConfig.ulPhase = 1; f_pChannelOpen->CodecConfig.ulPhasingType = cOCT6100_NO_PHASING; @@ -1353,6 +1353,15 @@ UINT32 Oct6100ApiCheckChannelParams( if ( ( f_pChannelOpen->ulEchoOperationMode == cOCT6100_ECHO_OP_MODE_NO_ECHO ) && ( pVqeConfig->fEnableNlp == FALSE ) ) return cOCT6100_ERR_CHANNEL_ECHO_OP_MODE_NLP_REQUIRED; + + if ( ( f_pChannelOpen->ulEchoOperationMode == cOCT6100_ECHO_OP_MODE_SPEECH_RECOGNITION ) + && ( pVqeConfig->fEnableNlp == FALSE ) ) + return cOCT6100_ERR_CHANNEL_ECHO_OP_MODE_NLP_REQUIRED; + + /* Comfort noise must be activated for speech recognition mode to work. */ + if ( ( f_pChannelOpen->ulEchoOperationMode == cOCT6100_ECHO_OP_MODE_SPEECH_RECOGNITION ) + && ( pVqeConfig->ulComfortNoiseMode == cOCT6100_COMFORT_NOISE_OFF ) ) + return cOCT6100_ERR_CHANNEL_COMFORT_NOISE_REQUIRED; /*==============================================================================*/ @@ -3840,6 +3849,15 @@ UINT32 Oct6100ApiCheckChannelModify( if ( ( f_pTempChanOpen->ulEchoOperationMode == cOCT6100_ECHO_OP_MODE_NO_ECHO ) && ( f_pTempChanOpen->VqeConfig.fEnableNlp == FALSE ) ) return cOCT6100_ERR_CHANNEL_ECHO_OP_MODE_NLP_REQUIRED; + + if ( ( f_pTempChanOpen->ulEchoOperationMode == cOCT6100_ECHO_OP_MODE_SPEECH_RECOGNITION ) + && ( f_pTempChanOpen->VqeConfig.fEnableNlp == FALSE ) ) + return cOCT6100_ERR_CHANNEL_ECHO_OP_MODE_NLP_REQUIRED; + + /* Comfort noise must be activated for speech recognition mode to work. */ + if ( ( f_pTempChanOpen->ulEchoOperationMode == cOCT6100_ECHO_OP_MODE_SPEECH_RECOGNITION ) + && ( f_pTempChanOpen->VqeConfig.ulComfortNoiseMode == cOCT6100_COMFORT_NOISE_OFF ) ) + return cOCT6100_ERR_CHANNEL_COMFORT_NOISE_REQUIRED; /* Check the Codec config.*/ if ( f_pChannelModify->fCodecConfigModified == TRUE ) @@ -7937,11 +7955,6 @@ UINT32 Oct6100ApiCheckVqeConfig( || ( ( ( f_pVqeConfig->ulToneDisablerVqeActivationDelay - 300 ) % 512 ) != 0 ) ) return cOCT6100_ERR_CHANNEL_TONE_DISABLER_ACTIVATION_DELAY; - /* Check if the tone disabler is activated when the user requests a different activation delay. */ - if ( ( f_pVqeConfig->ulToneDisablerVqeActivationDelay != 300 ) - && ( f_fEnableToneDisabler == FALSE ) ) - return cOCT6100_ERR_CHANNEL_MUST_ENABLE_TONE_DISABLER; - /* Check the enable music protection flag. */ if ( ( f_pVqeConfig->fEnableMusicProtection != TRUE ) && ( f_pVqeConfig->fEnableMusicProtection != FALSE ) ) return cOCT6100_ERR_CHANNEL_ENABLE_MUSIC_PROTECTION; @@ -8124,7 +8137,8 @@ UINT32 Oct6100ApiCheckCodecConfig( return cOCT6100_ERR_CHANNEL_INVALID_PHASING_HANDLE; /* Check the specified phase value against the phasing length of the phasing TSST.*/ - if ( f_pCodecConfig->ulPhase >= pPhasingEntry->usPhasingLength ) + if ( ( f_pCodecConfig->ulPhase == 0 ) + || ( f_pCodecConfig->ulPhase >= pPhasingEntry->usPhasingLength ) ) return cOCT6100_ERR_CHANNEL_PHASING_INVALID_PHASE; } else @@ -8848,7 +8862,8 @@ UINT32 Oct6100ApiWriteVqeNlpMemory( /* Check if the configuration has been changed. */ if ( ( f_fModifyOnly == FALSE ) || ( ( f_fModifyOnly == TRUE ) - && ( f_pVqeConfig->ulToneDisablerVqeActivationDelay != pChanEntry->VqeConfig.usToneDisablerVqeActivationDelay ) ) ) + && ( ( f_pVqeConfig->ulToneDisablerVqeActivationDelay != pChanEntry->VqeConfig.usToneDisablerVqeActivationDelay ) + || ( f_pChannelOpen->fEnableToneDisabler != pChanEntry->fEnableToneDisabler ) ) ) ) { ulFeatureBytesOffset = pSharedInfo->MemoryMap.ToneDisablerVqeActivationDelayOfst.usDwordOffset * 4; ulFeatureBitOffset = pSharedInfo->MemoryMap.ToneDisablerVqeActivationDelayOfst.byBitOffset; @@ -8867,8 +8882,12 @@ UINT32 Oct6100ApiWriteVqeNlpMemory( ulTempData &= (~ulMask); - /* Set the tone disabler VQE activation delay. */ - ulTempData |= ( ( (UINT32)( ( f_pVqeConfig->ulToneDisablerVqeActivationDelay - 300 ) / 512 ) ) << ulFeatureBitOffset ); + /* Set the tone disabler VQE activation delay. The VQE activation delay */ + /* is only set if the tone disabler is activated. */ + if ( f_pChannelOpen->fEnableToneDisabler == TRUE ) + ulTempData |= ( ( (UINT32)( ( f_pVqeConfig->ulToneDisablerVqeActivationDelay - 300 ) / 512 ) ) << ulFeatureBitOffset ); + else + ulTempData |= ( 0 ) << ulFeatureBitOffset; /* Write the new DWORD where the field is located. */ mOCT6100_SAVE_NLP_CONF_DWORD( f_pApiInstance, -- cgit v1.2.3