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

📄 ac48drdf.h

📁 Audiocodes old vision DSP driver
💻 H
📖 第 1 页 / 共 4 页
字号:
		Word16 Const_0_2_4          :4;

   		Word16 BypassCoder          :5; /* BPC */ 
		Word16 NumberOfBlocks       :2; /* NOB */
		Word16 Const_0_2_15         :1;

   		Word16 Fax                  :2;
		Word16 Bell                 :2;
		Word16 V21                  :2;
   		Word16 V22                  :2;

		Word16 V23                  :2;
		Word16 V32                  :2;
		Word16 V34                  :2;
		Word16 CallerID             :2;

		Word16 FaxMaxRate           :5;
		Word16 Const_0_4_5          :1;
		Word16 EcmEnable            :1;
		Word16 HdlcEnable           :1;

		Word16 V32MaxRate           :5;
		Word16 ProtocolMode         :2;
   		Word16 Const_0_4_15         :1;

#ifndef OLD_VERSION_OF_EXTENDED_FAX_COMMAND
	    Word16 JitterPeriodLSBits   :8;
	    Word16 JitterPeriodMSBits   :3;
	    Word16 Const_0_5_11         :5;
#endif // OLD_VERSION_OF_EXTENDED_FAX_COMMAND
#else
		Word16 FaxVolume            :4;
		Word16 FaxMaxRate           :3;
		Word16 FaxEnable            :1;	/* "FXE" */				
		Word16 BypassCoder          :5; /* "BPC" */
        Word16 NumberOfBlocks       :2; /* "NOB" */
        Word16 BypassEnable         :1; /* "BPE" */
#endif /* EXTENDED_FAX_COMMAND */
        }TFaxCommand;

	typedef struct
		{
		TIdleCommandHeader Header;
		Word16 LowFrequencyLevel    :6;
		Word16 Const_0_2_6          :1;
				/* "MEC" Mute Encoder Input in case of DTMF detection */
		Word16 MuteEncoder	  	    :1; 
		Word16 HighFrequencyLevel   :6;
		Word16 Const_0_2_14         :2;
		}TDtmfCommand;

	typedef struct
		{
		TIdleCommandHeader Header;
		Word16 SignalD              :1;
		Word16 SignalC              :1;
		Word16 SignalB              :1;
		Word16 SignalA              :1;
		Word16 Const_0_2_4          :4;
		Word16 Const_0_2_8          :8;
		}TCasPortPresetCommand;

#elif ENDIAN_MODE == BIG_ENDIAN
	typedef struct
		{
		Word16 ConstAA              :8;

		Word16 Const_0_0_10         :4;
		Word16 Id                   :4;

		Word16 IdleCommandOpCode    :8;

		Word16 IdleCommandLength    :8;
		}TIdleCommandHeader;

	typedef struct
		{
		TIdleCommandHeader Header;
		}TDefaultCommand;

	typedef struct
		{
		TIdleCommandHeader Header;
		Word16 Const_0_2_5          :1;
		Word16 Slot                 :7;

		Word16 Const_0_2_8          :8;
		}TPcmSlotCommand;

	typedef struct
		{
		TIdleCommandHeader Header;
		Word16 PostFilterEnable		    :1; /* "PFE"  */
		Word16 SilenceCompressionEnable	:1; /* "SCE"  */
		Word16 EchoCanselerEnable		:1; /* "ECE"  */
		Word16 Coder					:5;

		Word16 TNonLinearProcessorMode	:2; /*	  ---------""-----------------					*/
		Word16 HybridLoss				:2; /*		Word16 Const_0_2_12				:4; */
		Word16 NumberOfBlocks			:2; /* "NOB"  */
		Word16 PayloadFormat			:1; /* "^PF"  */
		Word16 HighPassFilterEnable		:1; /* "HPFE" */
#ifdef VOICE_COMMAND_TEST_MODE
		Word16 TestParameter2			:1; /* DEFAULT 0 */
		Word16 Const_0_3_4				:3; 
        Word16 TestParameter1			:4; /* default 3 */
        Word16 Const_0_3_9				:7; 
        Word16 LowSidRate       		:1; 
#endif /* VOICE_COMMAND_TEST_MODE */       
		}TVoiceCommand;

	typedef struct
		{
		TIdleCommandHeader Header;
        Word16 Const_0_2_6		    :2;
		Word16 Gain					:6;

		Word16 Const_0_2_8			:8;
		}TInputGainCommand;

	typedef struct
		{
		TIdleCommandHeader Header;
#ifdef EXTENDED_FAX_COMMAND
		Word16 Const_0_2_4          :4;
		Word16 Volume               :4;

		Word16 Const_0_2_15         :1;
		Word16 NumberOfBlocks       :2;
        Word16 BypassCoder          :5;

   		Word16 V22                  :2;
		Word16 V21                  :2;
		Word16 Bell                 :2;
   		Word16 Fax                  :2;

		Word16 CallerID             :2;
		Word16 V34                  :2;
		Word16 V32                  :2;
		Word16 V23                  :2;

		Word16 HdlcEnable           :1;
		Word16 EcmEnable            :1;
		Word16 Const_0_4_5          :1;
        Word16 FaxMaxRate           :5;

   		Word16 Const_0_4_15         :1;
		Word16 ProtocolMode         :2;
		Word16 V32MaxRate           :5;

#ifndef OLD_VERSION_OF_EXTENDED_FAX_COMMAND 
   		Word16 JitterPeriodLSBits   :8;
   		Word16 Const_0_5_11         :5;
   		Word16 JitterPeriodMSBits   :3;
#endif //OLD_VERSION_OF_EXTENDED_FAX_COMMAND
#else
		Word16 FaxEnable            :1;	/* "FXE" */
		Word16 FaxMaxRate           :3;
		Word16 FaxVolume            :4;

        Word16 BypassEnable         :1; /* "BPE" */
        Word16 NumberOfBlocks       :2; /* "NOB" */
		Word16 BypassCoder          :5; /* "BPC" */
#endif /* EXTENDED_FAX_COMMAND */
		}TFaxCommand;

	typedef struct
		{
		TIdleCommandHeader Header;
		Word16 MuteEncoder		    :1; /* "MEC" */
		Word16 Const_0_2_6          :1;
		Word16 LowFrequencyLevel    :6;

		Word16 Const_0_2_14         :2;
		Word16 HighFrequencyLevel   :6;
		}TDtmfCommand;

	typedef struct
		{
		TIdleCommandHeader Header;
		Word16 Const_0_2_4          :4;
		Word16 SignalA              :1;
		Word16 SignalB              :1;
		Word16 SignalC              :1;
		Word16 SignalD              :1;

		Word16 Const_0_2_8          :8;
		}TCasPortPresetCommand;

#endif	/* ENDIAN_MODE */

typedef struct
	{
	TIdleCommandHeader Header;
	}TInitCommand;

typedef struct
	{
	TIdleCommandHeader Header;
	}TActiveCommand;

typedef struct
	{
#if AC48_SIGNALING_MODE == AC48_BASIC_SIGNALING_MODE
	TOrder Order;   /* not used */
#endif /* AC48_SIGNALING_MODE */ 
	TMSig MSig;
	TDebugingData DebugingData;
	TPcmAttributes PcmAttributes;
    TDecoderDelay DecoderDelay;
#if AC48_SIGNALING_MODE == AC48_BASIC_SIGNALING_MODE
	int PairQuantity;
	TTonePair TonePair[MAX_TONE_PAIRS_QUANTITY];
#elif AC48_SIGNALING_MODE == AC48_EXTENDED_SIGNALING_MODE
    TCallProgress CallProgress;
    TUserDefinedTones UserDefinedTones;
#endif /* AC48_SIGNALING_MODE */ 
    }TSetupDevice;

typedef struct
	{
	int PcmSlot;
	TDtmf Dtmf;
	TVoiceAttributes VoiceAttributes;
	int Gain;
	TFaxAttributes FaxAttributes;
	}TSetupChannel;

/****************************************************************/
/*			Active (run) mode									*/

			/* Packet Header definitions */
#define STATUS_HEADER_SIZE  16 
#define COMMAND_HEADER_SIZE 16

#define MAX_PAYLOAD_SIZE    160
#define PACKET_FOOTER_SIZE 	4
#define SIG_NO_CHANGE       0x1E    /* for signal offset's fields */
#define SIG_IGNORE          0x1F    /* for signal offset's fields */
#define MUTE                0       /* for volume or gain fields  */

typedef enum
	{
	ANSWER_TONE_FRAME,
	DATA_FRAME,
	VOICE_FRAME,
	FAX_FRAME
	}TVoiceFaxData;

typedef enum
	{				/* used in TCommandPacketHeader */
	DOM_MUTE,
	FROM_SIGNALING_GENERATOR_ONLY,
	FROM_DECODER_ONLY,
	FROM_DECODER_AND_SIGNALING_GENERATOR
	}TDecoderOutMode;

typedef enum
	{
	CODER_LOOPBACK,
	PCM_LOOPBACK,
	TONE_INJECTION,
	NO_TEST
	}TTest;

typedef enum
	{
	SINGLE_FREQUENCY_TONE, /* or none */
	V21_300_BPS,
	V27_2400_BPS,
	V27_4800_BPS,
	V29_7200_BPS,
	V29_9600_BPS,
	V33_12000_BPS,
	V33_14400_BPS
	}TModulationType;

typedef enum
	{
	MODULATION_OFF,
	MODULATION_ON,
	DATA_,   
	HDLC_END_OF_FRAME,
	HDLC_FRAME_ABORT
	}TRelayType;

typedef enum
	{
	NO_SIGNALING, 
	DTMF_SIGNALING,
#if AC48_SIGNALING_MODE == AC48_BASIC_SIGNALING_MODE
    STP_OR_DNC_SIGNALING /* User-Defined Tone-Pairs signaling Or Detect the same  */
	                     /* DTMF signal as detected at the last frame (No Change) */
    }TSignalingType;
#elif AC48_SIGNALING_MODE == AC48_EXTENDED_SIGNALING_MODE
	USER_DEFINED_TONES,
	MF_R1_OR_SS5,
    MF_R2_FORWARD_SIGNALING,
    MF_R2_BACKWARD_SIGNALING,
    LINE_SIGNALING,
    CALL_PROGRESS_SIGNALING
	}TSignalingType;

#define	MF_R1_AND_SS5 MF_R1_OR_SS5   

typedef enum
        {
		TONE_SIGNALING,
		CAS_SIGNALING,
		NO_CHANGE_FROM_PREVIOUS_FRAME
		}TSignalingMode;
#endif /* AC48_SIGNALING_MODE */

typedef enum 
        {
        SEND_TONE_TO_DECODER,
        SEND_TONE_TO_ENCODER
        }TToneGeneratorRedirection;

typedef enum
    {
    HDLC_FRAME,
    NORMAL_FRAME
    }TFrameType;

typedef enum
    {
    FRF11_PROTOCOL,
    T38_PROTOCOL    
    }TProtocol;

#if AC48_SIGNALING_MODE == AC48_BASIC_SIGNALING_MODE

/*---------------------------TCommandPacketHeader------------------------*/

#if ENDIAN_MODE == LITTLE_ENDIAN
	typedef struct
		{		/* Word #0 */
		Word16 ConstAA                  :8;
		Word16 ChannelId                :5;
		Word16 Const_0_0_13             :3;
				/* Word #1 */
		Word16 PayLoadSize              :8;
		Word16 PacketSize               :8;
				/* Word #2 */
		Word16 VoiceVolume              :6;
		Word16 Vfd						:2; /* "TVoiceFaxData" */
		Word16 ToneGeneratorRedirection :1; 
		Word16 DecoderOutMode           :2; /* "DOM" */
		Word16 Test                     :3; /* TTest */
		Word16 Idle						:1;
		Word16 More2                    :1;	/* "M"   */
				/* Word #3 */
		Word16 Coder                    :5;
		Word16 Const_0_3_5              :3;
		Word16 HighPassFilterEnable		:1; /* "HPFE" */
		Word16 PostFilterEnable         :1; /* "PFE"  */
		Word16 SilenceCompressionEnable :1; /* "SCE"  */
		Word16 BadFrameInterpolation    :1; /* "BFI"  */
		Word16 Const_0_3_12             :1;
        Word16 EchoCancellerFreeze      :1;
		Word16 EchoCanselerEnable       :1; /* "ECE"  */
		Word16 More3                    :1;	/* "M"    */
				/* Word #4 */
		Word16 ModulationType           :5; /* TModulationType */
		Word16                          :2;
		Word16 FrameType                :1;

		Word16 RelayType				:4; /* TRelayType */
		Word16                          :1;
        Word16 Protocol                 :1;
		Word16 DummyFaxPacket			:1; /* "D" */
		Word16                          :1;	/* "M" */
		   	    /* Word #5 */
		Word16 MSigOnOffset             :5;	/* On-Hook  Offset */
		Word16 Const_0_5_5              :3;
		Word16 MSigOffOffset            :5;	/* Off-Hook Offset */
		Word16 Const_0_5_13             :2;
		Word16 More5                    :1;	/* "M" */
 		       	/* Word #6 */
        Word16 SignalingType			:3; /* TSignalingType */
		Word16 SignalingLevel           :5;
		Word16 DigitPair                :5; /* according to SignalingType */
		Word16 Const_0_6_13             :2; 
		Word16 More6                    :1;	/* "M" */
				/* Word #7 */
		Word16 SignalingOnOffset        :5;
		Word16 Const_0_7_5              :3;
		Word16 SignalingOffOffset       :5;
		Word16 Const_0_7_13             :2;
		Word16 More7                    :1;	/* "M" */
        }TCommandPacketHeader;
#elif ENDIAN_MODE == BIG_ENDIAN
	typedef struct
		{   	/* Word #0 */
		Word16 ConstAA                  :8;

		Word16 Const_0_0_13             :3;
		Word16 ChannelId                :5;
				/* Word #1 */
		Word16 PayLoadSize              :8;

		Word16 PacketSize               :8;
				/* Word #2 */
		Word16 Vfd						:2; /* "TVoiceFaxData" */
		Word16 VoiceVolume              :6;

		Word16 More2                    :1;	/* "M" */
		Word16 Idle						:1;
		Word16 Test                     :3; /* TTest */
		Word16 DecoderOutMode           :2; /* "DOM" */
		Word16 ToneGeneratorRedirection	:1; 
				/* Word #3 */
		Word16 Const_0_3_5              :3;
		Word16 Coder                    :5;

		Word16 More3                    :1;	/* "M"    */
		Word16 EchoCanselerEnable       :1; /* "ECE"  */
        Word16 EchoCancellerFreeze      :1;
		Word16 Const_0_3_12             :1;
		Word16 BadFrameInterpolation    :1; /* "BFI"  */
		Word16 SilenceCompressionEnable :1; /* "SCE"  */
		Word16 PostFilterEnable         :1; /* "PFE"  */
		Word16 HighPassFilterEnable		:1; /* "HPFE" */
				/* Word #4 */
		Word16 FrameType                :1;
		Word16                          :2;
		Word16 ModulationType           :5; /* TModulationType */

		Word16                          :1;	/* "M" */
		Word16 DummyFaxPacket			:1; /* "D" */
        Word16 Protocol                 :1;
		Word16                          :1;
        Word16 RelayType				:4; /* TRelayType */
				/* Word #5 */
		Word16 Const_0_5_5              :3;
		Word16 MSigOnOffset             :5;	/* On-Hook  Offset */

		Word16 More5                    :1;	/* "M" */
		Word16 Const_0_5_13             :2;
		Word16 MSigOffOffset            :5;	/* Off-Hook Offset */
				/* Word #6 */
		Word16 SignalingLevel           :5;
		Word16 SignalingType			:3; /* TSignalingType */

		Word16 More6                    :1;	/* "M" */
		Word16 Const_0_6_13             :2;
		Word16 DigitPair                :5; /*acording to SignalingType*/
				/* Word #7 */
		Word16 Const_0_7_5              :3;
		Word16 SignalingOnOffset        :5;

		Word16 More7                    :1;	/* "M" */
		Word16 Const_0_7_13             :2;
		Word16 SignalingOffOffset       :5;
		}TCommandPacketHeader;
#endif	/* ENDIAN_MODE */

/*--------------------------TStatusPacketHeader------------------------*/

#if ENDIAN_MODE == LITTLE_ENDIAN
	typedef struct
		{		   		/* "X_or_Y": 'X' for Transmit, 'Y' for Receive */
				/* Word #0 */
		Word16 ConstAA                  :8;
		Word16 ChannelId                :5;
		Word16 Const_0_0_13             :3;
				/* Word #1 */
		Word16 PayLoadSize              :8;
		Word16 PacketSize               :8;
				/* Word #2 */
		Word16 VoiceVolume              :6;
		Word16 Vfd						:2; /* "TVoiceFaxData" */
		Word16 VoiceActivityDetector    :1; /* "VAD" */
		Word16 UnderRun   				:1; /* Const_0_2_9 */
		Word16 OverRun       			:1; /* Const_0_2_9 */
		Word16 Test                     :3; /* TTest */
		Word16 Idle						:1;
		Word16 More2                    :1;	/* "M" */

⌨️ 快捷键说明

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