📄 ac48drdf.h
字号:
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 + -