⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 voip_adapter_compare.c

📁 telcobridges voip develop
💻 C
📖 第 1 页 / 共 5 页
字号:
		if
		(
			in_pCurrentVpGroup->Common.fAllocated !=
			in_pTargetVpGroup->Common.fAllocated
		)
		{
			*out_pfMustReallocate = TBX_TRUE;
			TBX_EXIT_SUCCESS (TBX_RESULT_OK);
		}

		if( in_pCurrentVpGroup->GroupParams.GroupType != in_pTargetVpGroup->GroupParams.GroupType )
		{
			*out_pfMustReallocate = TBX_TRUE;
			TBX_EXIT_SUCCESS (TBX_RESULT_OK);
		}

		if( in_pCurrentVpGroup->un32NbResources != in_pTargetVpGroup->un32NbResources )
		{
			*out_pfMustReallocate = TBX_TRUE;
			TBX_EXIT_SUCCESS (TBX_RESULT_OK);
		}

		if ( in_pCurrentVpGroup->GroupParams.GroupType != in_pTargetVpGroup->GroupParams.GroupType )
		{
			*out_pfMustReallocate = TBX_TRUE;
			TBX_EXIT_SUCCESS (TBX_RESULT_OK);
		}

		if( in_pCurrentVpGroup->GroupParams.GroupType == TB640_VP_GROUP_TYPE_0 )
		{
			/*
			 *	Group 0 parameters
			 */

			if( in_pCurrentVpGroup->GroupParams.Group0.GroupType != in_pTargetVpGroup->GroupParams.Group0.GroupType )
			{
				*out_pfMustReallocate = TBX_TRUE;
				TBX_EXIT_SUCCESS (TBX_RESULT_OK);
			}

			if( in_pCurrentVpGroup->un32NbResources > 2 )
			{
				/*
				 *	Group 0 conferencing parameters
				 */
				if( in_pCurrentVpGroup->GroupParams.Group0.Conf.un32DominantLimit != in_pTargetVpGroup->GroupParams.Group0.Conf.un32DominantLimit )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.Conf.NoiseSuppressionLimit != in_pTargetVpGroup->GroupParams.Group0.Conf.NoiseSuppressionLimit )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				/*
				 *	Group 0 automatic gain control parameters for conferencing
				 */
				if( in_pCurrentVpGroup->GroupParams.Group0.Conf.Agc.fEnabled != in_pTargetVpGroup->GroupParams.Group0.Conf.Agc.fEnabled )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.Conf.Agc.Mode != in_pTargetVpGroup->GroupParams.Group0.Conf.Agc.Mode )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.Conf.Agc.TargetPower != in_pTargetVpGroup->GroupParams.Group0.Conf.Agc.TargetPower )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.Conf.Agc.LossLimit != in_pTargetVpGroup->GroupParams.Group0.Conf.Agc.LossLimit )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.Conf.Agc.GainLimit != in_pTargetVpGroup->GroupParams.Group0.Conf.Agc.GainLimit )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.Conf.Agc.FixedGain != in_pTargetVpGroup->GroupParams.Group0.Conf.Agc.FixedGain )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				/*
				 *	Group 0 voice activity detection parameters for conferencing
				 */
				if( in_pCurrentVpGroup->GroupParams.Group0.Conf.Vad.fEnabled != in_pTargetVpGroup->GroupParams.Group0.Conf.Vad.fEnabled )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.Conf.Vad.NoiseFloor != in_pTargetVpGroup->GroupParams.Group0.Conf.Vad.NoiseFloor )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.Conf.Vad.un32HangTime != in_pTargetVpGroup->GroupParams.Group0.Conf.Vad.un32HangTime )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.Conf.Vad.un32WindowSize != in_pTargetVpGroup->GroupParams.Group0.Conf.Vad.un32WindowSize )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}
			}

			/*
			 *	Group 0 FSK parameters
			 */
			if( in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.fEnabled != in_pTargetVpGroup->GroupParams.Group0.FskRxAuto.fEnabled )
			{
				*out_pfMustReallocate = TBX_TRUE;
				TBX_EXIT_SUCCESS (TBX_RESULT_OK);
			}

			if( in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.fEnabled == TBX_TRUE )
			{
				if( in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.Type != in_pTargetVpGroup->GroupParams.Group0.FskRxAuto.Type )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.Level != in_pTargetVpGroup->GroupParams.Group0.FskRxAuto.Level )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.Framing != in_pTargetVpGroup->GroupParams.Group0.FskRxAuto.Framing )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.Digit != in_pTargetVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.Digit )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.Level != in_pTargetVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.Level )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.un32OnTimeMs != in_pTargetVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.un32OnTimeMs )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if( in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.un32OffTimeMs != in_pTargetVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.un32OffTimeMs )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				if ( in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.Digit == TB640_VP_DIGIT_TYPE_CUSTOM )
				{
					if( (in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.aun32CustomFreq[0] != in_pTargetVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.aun32CustomFreq[0]) ||
						(in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.aun32CustomFreq[1] != in_pTargetVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.aun32CustomFreq[1]) ||
						(in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.aun32CustomFreq[2] != in_pTargetVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.aun32CustomFreq[2]) ||
						(in_pCurrentVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.aun32CustomFreq[3] != in_pTargetVpGroup->GroupParams.Group0.FskRxAuto.TasAcknowledge.aun32CustomFreq[3]) )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}
				}
			}

			/*
			 *	Group 0 resource parameters
			 */
			for( un32Index = 0; un32Index < in_pCurrentVpGroup->un32NbResources; un32Index++ )
			{
				if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.ResType != in_pTargetVpGroup->aRes[un32Index].Params.Group0.ResType )
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}

				/*
				 *	Group 0 TDM resource
				 */
				if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.ResType == TB640_VP_RES_TYPE_TDM )
				{
					/*
					 *	Group 0 voice activity detection parameters
					 */
					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Tdm.Vad.fEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Tdm.Vad.fEnabled )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					/*
					 *	Group 0 automatic gain control parameters
					 */
					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Tdm.Agc.fEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Tdm.Agc.fEnabled )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					/*
					 *	Group 0 tone parameters
					 */
					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Tdm.Tone.fGenerationEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Tdm.Tone.fGenerationEnabled )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Tdm.Tone.fDetectionEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Tdm.Tone.fDetectionEnabled )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Tdm.Tone.DetectionTypeMask != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Tdm.Tone.DetectionTypeMask )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Tdm.Tone.fSuppressionEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Tdm.Tone.fSuppressionEnabled )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}
				}

				/*
				 *	Group 0 stream resource
				 */
				else if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.ResType == TB640_VP_RES_TYPE_STREAM )
				{
					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Stream.fPlaybackEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Stream.fPlaybackEnabled )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Stream.fRecordEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Stream.fRecordEnabled )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Stream.PacketType != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Stream.PacketType )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Stream.PacketDurationMs != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Stream.PacketDurationMs )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Stream.un32JitterBufferSize != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Stream.un32JitterBufferSize )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					/*
					 *	Group 0 automatic gain control parameters
					 */
					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Stream.Agc.fEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Stream.Agc.fEnabled )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					/*
					 *	Group 0 tone parameters
					 */
					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Stream.Tone.fGenerationEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Stream.Tone.fGenerationEnabled )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Stream.Tone.fDetectionEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Stream.Tone.fDetectionEnabled )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Stream.Tone.DetectionTypeMask != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Stream.Tone.DetectionTypeMask )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}

					if( in_pCurrentVpGroup->aRes[un32Index].Params.Group0.Stream.Tone.fSuppressionEnabled != in_pTargetVpGroup->aRes[un32Index].Params.Group0.Stream.Tone.fSuppressionEnabled )
					{
						*out_pfMustReallocate = TBX_TRUE;
						TBX_EXIT_SUCCESS (TBX_RESULT_OK);
					}
				}
				else
				{
					*out_pfMustReallocate = TBX_TRUE;
					TBX_EXIT_SUCCESS (TBX_RESULT_OK);
				}
			}
		}
		else
		{
			/*
			 *	Group 1 parameters
			 */

			if( in_pCurrentVpGroup->GroupParams.Group1.GroupType != in_pTargetVpGroup->GroupParams.Group1.GroupType )
			{
				*out_pfMustReallocate = TBX_TRUE;
				TBX_EXIT_SUCCESS (TBX_RESULT_OK);
			}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -