/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ File: oct6100_channel_pub.h Copyright (c) 2001-2011 Octasic Inc. Description: File containing all defines, macros, and structures pertaining to the file oct6100_channel.c. All elements defined in this file are for public usage of the API. All private elements are defined in the oct6100_channel_priv.h file. This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The OCT6100 GPL API is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 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.04.05 $ $Octasic_Revision: 93 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ #ifndef __OCT6100_CHANNEL_PUB_H__ #define __OCT6100_CHANNEL_PUB_H__ /***************************** INCLUDE FILES *******************************/ /***************************** DEFINES *************************************/ /***************************** TYPES ***************************************/ /* Channel open structures. */ typedef struct _OCT6100_CHANNEL_OPEN_TDM_ { UINT32 ulRinNumTssts; UINT32 ulSinNumTssts; UINT32 ulRoutNumTssts; UINT32 ulSoutNumTssts; UINT32 ulSinTimeslot; UINT32 ulSinStream; UINT32 ulSinPcmLaw; UINT32 ulSoutTimeslot; UINT32 ulSoutStream; UINT32 ulSoutPcmLaw; UINT32 ulRinTimeslot; UINT32 ulRinStream; UINT32 ulRinPcmLaw; UINT32 ulRoutTimeslot; UINT32 ulRoutStream; UINT32 ulRoutPcmLaw; } tOCT6100_CHANNEL_OPEN_TDM, *tPOCT6100_CHANNEL_OPEN_TDM; typedef struct _OCT6100_CHANNEL_OPEN_VQE_ { BOOL fEnableNlp; BOOL fEnableTailDisplacement; UINT32 ulTailDisplacement; UINT32 ulTailLength; BOOL fSinDcOffsetRemoval; BOOL fRinDcOffsetRemoval; BOOL fRinLevelControl; BOOL fSoutLevelControl; BOOL fRinAutomaticLevelControl; BOOL fSoutAutomaticLevelControl; BOOL fRinHighLevelCompensation; BOOL fAcousticEcho; BOOL fSoutAdaptiveNoiseReduction; BOOL fDtmfToneRemoval; BOOL fSoutNoiseBleaching; BOOL fSoutConferencingNoiseReduction; UINT32 ulComfortNoiseMode; UINT32 ulNonLinearityBehaviorA; UINT32 ulNonLinearityBehaviorB; INT32 lRinLevelControlGainDb; INT32 lSoutLevelControlGainDb; INT32 lRinAutomaticLevelControlTargetDb; INT32 lSoutAutomaticLevelControlTargetDb; INT32 lRinHighLevelCompensationThresholdDb; INT32 lDefaultErlDb; INT32 lAecDefaultErlDb; UINT32 ulAecTailLength; UINT32 ulSoutAutomaticListenerEnhancementGainDb; UINT32 ulSoutNaturalListenerEnhancementGainDb; BOOL fSoutNaturalListenerEnhancement; BOOL fRoutNoiseReduction; /* Unsupported feature */ INT32 lRoutNoiseReductionLevelGainDb; /* Unsupported feature */ BOOL fEnablePlayout; INT32 lAnrSnrEnhancementDb; UINT32 ulAnrVoiceNoiseSegregation; UINT32 ulDoubleTalkBehavior; UINT32 ulToneDisablerVqeActivationDelay; BOOL fEnableMusicProtection; BOOL fIdleCodeDetection; } tOCT6100_CHANNEL_OPEN_VQE, *tPOCT6100_CHANNEL_OPEN_VQE; typedef struct _OCT6100_CHANNEL_OPEN_CODEC_ { UINT32 ulAdpcmNibblePosition; UINT32 ulEncoderPort; UINT32 ulEncodingRate; UINT32 ulDecoderPort; UINT32 ulDecodingRate; BOOL fEnableSilenceSuppression; UINT32 ulPhase; UINT32 ulPhasingType; UINT32 ulPhasingTsstHndl; } tOCT6100_CHANNEL_OPEN_CODEC, *tPOCT6100_CHANNEL_OPEN_CODEC; typedef struct _OCT6100_CHANNEL_OPEN_ { PUINT32 pulChannelHndl; UINT32 ulUserChanId; UINT32 ulEchoOperationMode; BOOL fEnableToneDisabler; BOOL fEnableExtToneDetection; tOCT6100_CHANNEL_OPEN_TDM TdmConfig; tOCT6100_CHANNEL_OPEN_VQE VqeConfig; tOCT6100_CHANNEL_OPEN_CODEC CodecConfig; } tOCT6100_CHANNEL_OPEN, *tPOCT6100_CHANNEL_OPEN; /* Channel close structure. */ typedef struct _OCT6100_CHANNEL_CLOSE_ { UINT32 ulChannelHndl; } tOCT6100_CHANNEL_CLOSE, *tPOCT6100_CHANNEL_CLOSE; /* Channel modify structures. */ typedef struct _OCT6100_CHANNEL_MODIFY_TDM_ { UINT32 ulRinNumTssts; UINT32 ulSinNumTssts; UINT32 ulRoutNumTssts; UINT32 ulSoutNumTssts; UINT32 ulSinTimeslot; UINT32 ulSinStream; UINT32 ulSinPcmLaw; UINT32 ulSoutTimeslot; UINT32 ulSoutStream; UINT32 ulSoutPcmLaw; UINT32 ulRinTimeslot; UINT32 ulRinStream; UINT32 ulRinPcmLaw; UINT32 ulRoutTimeslot; UINT32 ulRoutStream; UINT32 ulRoutPcmLaw; } tOCT6100_CHANNEL_MODIFY_TDM, *tPOCT6100_CHANNEL_MODIFY_TDM; typedef struct _OCT6100_CHANNEL_MODIFY_VQE_ { BOOL fEnableNlp; BOOL fEnableTailDisplacement; UINT32 ulTailDisplacement; BOOL fSinDcOffsetRemoval; BOOL fRinDcOffsetRemoval; BOOL fRinLevelControl; BOOL fSoutLevelControl; BOOL fRinAutomaticLevelControl; BOOL fSoutAutomaticLevelControl; BOOL fRinHighLevelCompensation; BOOL fAcousticEcho; BOOL fSoutAdaptiveNoiseReduction; BOOL fDtmfToneRemoval; BOOL fSoutConferencingNoiseReduction; BOOL fSoutNoiseBleaching; UINT32 ulNonLinearityBehaviorA; UINT32 ulNonLinearityBehaviorB; UINT32 ulComfortNoiseMode; INT32 lRinLevelControlGainDb; INT32 lSoutLevelControlGainDb; INT32 lRinAutomaticLevelControlTargetDb; INT32 lSoutAutomaticLevelControlTargetDb; INT32 lRinHighLevelCompensationThresholdDb; INT32 lDefaultErlDb; INT32 lAecDefaultErlDb; UINT32 ulAecTailLength; UINT32 ulSoutAutomaticListenerEnhancementGainDb; UINT32 ulSoutNaturalListenerEnhancementGainDb; BOOL fSoutNaturalListenerEnhancement; BOOL fRoutNoiseReduction; /* Unsupported feature, for testing purposes only */ INT32 lRoutNoiseReductionLevelGainDb; /* Unsupported feature, for testing purposes only */ BOOL fEnablePlayout; INT32 lAnrSnrEnhancementDb; UINT32 ulAnrVoiceNoiseSegregation; UINT32 ulDoubleTalkBehavior; UINT32 ulToneDisablerVqeActivationDelay; BOOL fEnableMusicProtection; BOOL fIdleCodeDetection; } tOCT6100_CHANNEL_MODIFY_VQE, *tPOCT6100_CHANNEL_MODIFY_VQE; typedef struct _OCT6100_CHANNEL_MODIFY_CODEC_ { UINT32 ulEncoderPort; UINT32 ulEncodingRate; UINT32 ulDecoderPort; UINT32 ulDecodingRate; BOOL fEnableSilenceSuppression; UINT32 ulPhase; UINT32 ulPhasingType; UINT32 ulPhasingTsstHndl; } tOCT6100_CHANNEL_MODIFY_CODEC, *tPOCT6100_CHANNEL_MODIFY_CODEC; typedef struct _OCT6100_CHANNEL_MODIFY_ { UINT32 ulChannelHndl; UINT32 ulUserChanId; UINT32 ulEchoOperationMode; BOOL fEnableToneDisabler; BOOL fApplyToAllChannels; BOOL fDisableToneDetection; BOOL fStopBufferPlayout; BOOL fRemoveConfBridgeParticipant; BOOL fRemoveBroadcastTssts; BOOL fTdmConfigModified; /* TRUE/FALSE */ BOOL fVqeConfigModified; /* TRUE/FALSE */ BOOL fCodecConfigModified; /* TRUE/FALSE */ tOCT6100_CHANNEL_MODIFY_TDM TdmConfig; tOCT6100_CHANNEL_MODIFY_VQE VqeConfig; tOCT6100_CHANNEL_MODIFY_CODEC CodecConfig; } tOCT6100_CHANNEL_MODIFY, *tPOCT6100_CHANNEL_MODIFY; typedef struct _OCT6100_CHANNEL_BROADCAST_TSST_ADD_ { UINT32 ulChannelHndl; UINT32 ulPort; UINT32 ulTimeslot; UINT32 ulStream; } tOCT6100_CHANNEL_BROADCAST_TSST_ADD, *tPOCT6100_CHANNEL_BROADCAST_TSST_ADD; typedef struct _OCT6100_CHANNEL_BROADCAST_TSST_REMOVE_ { UINT32 ulChannelHndl; UINT32 ulPort; UINT32 ulTimeslot; UINT32 ulStream; BOOL fRemoveAll; } tOCT6100_CHANNEL_BROADCAST_TSST_REMOVE, *tPOCT6100_CHANNEL_BROADCAST_TSST_REMOVE; /* Channel open structures.*/ typedef struct _OCT6100_CHANNEL_STATS_TDM_ { UINT32 ulMaxBroadcastTssts; UINT32 ulNumRoutBroadcastTssts; BOOL fMoreRoutBroadcastTssts; UINT32 ulNumSoutBroadcastTssts; BOOL fMoreSoutBroadcastTssts; UINT32 ulSinNumTssts; UINT32 ulSoutNumTssts; UINT32 ulRinNumTssts; UINT32 ulRoutNumTssts; UINT32 ulSinTimeslot; UINT32 ulSinStream; UINT32 ulSinPcmLaw; UINT32 ulSoutTimeslot; UINT32 ulSoutStream; UINT32 ulSoutPcmLaw; PUINT32 pulSoutBroadcastTimeslot; PUINT32 pulSoutBroadcastStream; UINT32 ulRinTimeslot; UINT32 ulRinStream; UINT32 ulRinPcmLaw; UINT32 ulRoutTimeslot; UINT32 ulRoutStream; UINT32 ulRoutPcmLaw; PUINT32 pulRoutBroadcastTimeslot; PUINT32 pulRoutBroadcastStream; } tOCT6100_CHANNEL_STATS_TDM, *tPOCT6100_CHANNEL_STATS_TDM; typedef struct _OCT6100_CHANNEL_STATS_VQE_ { BOOL fEnableNlp; BOOL fEnableTailDisplacement; UINT32 ulTailDisplacement; UINT32 ulTailLength; BOOL fSinDcOffsetRemoval; BOOL fRinDcOffsetRemoval; BOOL fRinLevelControl; BOOL fSoutLevelControl; BOOL fRinAutomaticLevelControl; BOOL fSoutAutomaticLevelControl; BOOL fRinHighLevelCompensation; BOOL fAcousticEcho; BOOL fSoutAdaptiveNoiseReduction; BOOL fDtmfToneRemoval; BOOL fSoutConferencingNoiseReduction; BOOL fSoutNoiseBleaching; UINT32 ulComfortNoiseMode; UINT32 ulNonLinearityBehaviorA; UINT32 ulNonLinearityBehaviorB; INT32 lRinLevelControlGainDb; INT32 lSoutLevelControlGainDb; INT32 lRinAutomaticLevelControlTargetDb; INT32 lSoutAutomaticLevelControlTargetDb; INT32 lRinHighLevelCompensationThresholdDb; INT32 lDefaultErlDb; INT32 lAecDefaultErlDb; UINT32 ulAecTailLength; UINT32 ulSoutAutomaticListenerEnhancementGainDb; UINT32 ulSoutNaturalListenerEnhancementGainDb; BOOL fSoutNaturalListenerEnhancement; BOOL fRoutNoiseReduction; /* Unsupported feature, for testing purposes only */ INT32 lRoutNoiseReductionLevelGainDb; /* Unsupported feature, for testing purposes only */ BOOL fEnablePlayout; INT32 lAnrSnrEnhancementDb; UINT32 ulAnrVoiceNoiseSegregation; UINT32 ulDoubleTalkBehavior; UINT32 ulToneDisablerVqeActivationDelay; BOOL fEnableMusicProtection; BOOL fIdleCodeDetection; } tOCT6100_CHANNEL_STATS_VQE, *tPOCT6100_CHANNEL_STATS_VQE; typedef struct _OCT6100_CHANNEL_STATS_CODEC_ { UINT32 ulAdpcmNibblePosition; UINT32 ulEncoderPort; UINT32 ulEncodingRate; UINT32 ulDecoderPort; UINT32 ulDecodingRate; BOOL fEnableSilenceSuppression; UINT32 ulPhase; UINT32 ulPhasingType; UINT32 ulPhasingTsstHndl; } tOCT6100_CHANNEL_STATS_CODEC, *tPOCT6100_CHANNEL_STATS_CODEC; typedef struct _OCT6100_CHANNEL_STATS_ { BOOL fResetStats; UINT32 ulChannelHndl; UINT32 ulUserChanId; UINT32 ulEchoOperationMode; BOOL fEnableToneDisabler; UINT32 ulMutePortsMask; BOOL fEnableExtToneDetection; tOCT6100_CHANNEL_STATS_TDM TdmConfig; tOCT6100_CHANNEL_STATS_VQE VqeConfig; tOCT6100_CHANNEL_STATS_CODEC CodecConfig; /* Real stats. */ UINT32 ulNumEchoPathChanges; UINT32 ulToneDisablerStatus; INT32 lCurrentERL; INT32 lCurrentERLE; UINT32 ulCurrentEchoDelay; INT32 lMaxERL; INT32 lMaxERLE; UINT32 ulMaxEchoDelay; INT32 lRinLevel; INT32 lSinLevel; INT32 lRinAppliedGain; INT32 lSoutAppliedGain; INT32 lComfortNoiseLevel; BOOL fEchoCancellerConverged; BOOL fSinVoiceDetected; } tOCT6100_CHANNEL_STATS, *tPOCT6100_CHANNEL_STATS; typedef struct _OCT6100_CHANNEL_CREATE_BIDIR_ { PUINT32 pulBiDirChannelHndl; UINT32 ulFirstChannelHndl; UINT32 ulSecondChannelHndl; } tOCT6100_CHANNEL_CREATE_BIDIR, *tPOCT6100_CHANNEL_CREATE_BIDIR; typedef struct _OCT6100_CHANNEL_DESTROY_BIDIR_ { UINT32 ulBiDirChannelHndl; } tOCT6100_CHANNEL_DESTROY_BIDIR, *tPOCT6100_CHANNEL_DESTROY_BIDIR; typedef struct _OCT6100_CHANNEL_MUTE_ { UINT32 ulChannelHndl; UINT32 ulPortMask; } tOCT6100_CHANNEL_MUTE, *tPOCT6100_CHANNEL_MUTE; typedef struct _OCT6100_CHANNEL_UNMUTE_ { UINT32 ulChannelHndl; UINT32 ulPortMask; } tOCT6100_CHANNEL_UNMUTE, *tPOCT6100_CHANNEL_UNMUTE; typedef struct _OCT6100_ENABLE_CHANNEL_RECORDING_ { PUINT32 pulChannelHndlConflict; } tOCT6100_ENABLE_CHANNEL_RECORDING, *tPOCT6100_ENABLE_CHANNEL_RECORDING; typedef struct _OCT6100_DISABLE_CHANNEL_RECORDING_ { UINT32 ulUnused; } tOCT6100_DISABLE_CHANNEL_RECORDING, *tPOCT6100_DISABLE_CHANNEL_RECORDING; /************************** FUNCTION PROTOTYPES *****************************/ UINT32 Oct6100ChannelOpenDef( OUT tPOCT6100_CHANNEL_OPEN f_pChannelOpen ); UINT32 Oct6100ChannelOpen( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_CHANNEL_OPEN f_pChannelOpen ); UINT32 Oct6100ChannelCloseDef( OUT tPOCT6100_CHANNEL_CLOSE f_pChannelClose ); UINT32 Oct6100ChannelClose( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_CHANNEL_CLOSE f_pChannelClose ); UINT32 Oct6100ChannelModifyDef( OUT tPOCT6100_CHANNEL_MODIFY f_pChannelModify ); UINT32 Oct6100ChannelModify( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_CHANNEL_MODIFY f_pChannelModify ); UINT32 Oct6100ChannelBroadcastTsstAddDef( OUT tPOCT6100_CHANNEL_BROADCAST_TSST_ADD f_pChannelTsstAdd ); UINT32 Oct6100ChannelBroadcastTsstAdd( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_CHANNEL_BROADCAST_TSST_ADD f_pChannelTsstAdd ); UINT32 Oct6100ChannelBroadcastTsstRemoveDef( OUT tPOCT6100_CHANNEL_BROADCAST_TSST_REMOVE f_pChannelTsstRemove ); UINT32 Oct6100ChannelBroadcastTsstRemove( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_CHANNEL_BROADCAST_TSST_REMOVE f_pChannelTsstRemove ); UINT32 Oct6100ChannelGetStatsDef( OUT tPOCT6100_CHANNEL_STATS f_pChannelStats ); UINT32 Oct6100ChannelGetStats( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_CHANNEL_STATS f_pChannelStats ); UINT32 Oct6100ChannelCreateBiDirDef( OUT tPOCT6100_CHANNEL_CREATE_BIDIR f_pChannelCreateBiDir ); UINT32 Oct6100ChannelCreateBiDir( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_CHANNEL_CREATE_BIDIR f_pChannelCreateBiDir ); UINT32 Oct6100ChannelDestroyBiDirDef( OUT tPOCT6100_CHANNEL_DESTROY_BIDIR f_pChannelDestroyBiDir ); UINT32 Oct6100ChannelDestroyBiDir( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_CHANNEL_DESTROY_BIDIR f_pChannelDestroyBiDir ); UINT32 Oct6100ChannelMuteDef( OUT tPOCT6100_CHANNEL_MUTE f_pChannelMute ); UINT32 Oct6100ChannelMute( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_CHANNEL_MUTE f_pChannelMute ); UINT32 Oct6100ChannelUnMuteDef( OUT tPOCT6100_CHANNEL_UNMUTE f_pChannelUnMute ); UINT32 Oct6100ChannelUnMute( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_CHANNEL_UNMUTE f_pChannelUnMute ); UINT32 Oct6100ApiEnableChannelRecordingDef( IN OUT tPOCT6100_ENABLE_CHANNEL_RECORDING f_pChannelRecord ); UINT32 Oct6100ApiEnableChannelRecording( IN tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_ENABLE_CHANNEL_RECORDING f_pChannelRecord ); UINT32 Oct6100ApiDisableChannelRecordingDef( IN OUT tPOCT6100_DISABLE_CHANNEL_RECORDING f_pChannelRecord ); UINT32 Oct6100ApiDisableChannelRecording( IN tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_DISABLE_CHANNEL_RECORDING f_pChannelRecord ); #endif /* __OCT6100_CHANNEL_PUB_H__ */