日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Delphi之东进数字语音卡(SS1)可复用源码

發(fā)布時(shí)間:2023/12/29 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi之东进数字语音卡(SS1)可复用源码 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Delphi之東進(jìn)數(shù)字語(yǔ)音卡(SS1)可復(fù)用源碼

作者:成曉旭

Bloghttp://blog.csdn.net/cxxsoft

(聲明:歡迎轉(zhuǎn)載,請(qǐng)保證文章的完整性)

??????? 由于工作原因,本人將不在從事商業(yè)應(yīng)有軟件的開(kāi)發(fā)工作,現(xiàn)在開(kāi)始逐級(jí)“解密”自己以前寫(xiě)的部分自有產(chǎn)權(quán)代碼,但愿對(duì)后來(lái)的朋友有點(diǎn)參考、借鑒的價(jià)值。

??????? 本代碼是本人開(kāi)發(fā)的計(jì)劃開(kāi)源的CIT通用平臺(tái)的東進(jìn)1號(hào)信令數(shù)字語(yǔ)言卡封裝,設(shè)計(jì)思路與模擬語(yǔ)音卡的封裝非常類(lèi)似,在此不再贅述。有興趣的朋友,請(qǐng)參考本人的另外一篇文章《Delphi之東進(jìn)模擬語(yǔ)音卡(D160A)可復(fù)用源碼》:http://blog.csdn.net/cxxsoft/archive/2006/08/23/1108211.aspx

??????? 核心思想是一致的:卡、通道分別設(shè)計(jì)和實(shí)現(xiàn);通道內(nèi),核心的還是狀態(tài)機(jī)模式輪巡通道狀態(tài)來(lái)管理硬件卡設(shè)備;板卡封裝內(nèi)實(shí)現(xiàn)不實(shí)現(xiàn)任何業(yè)務(wù)接口,但允許動(dòng)態(tài)注入實(shí)現(xiàn)業(yè)務(wù)接口的對(duì)象,來(lái)近一步分發(fā)、處理板卡層采集的基礎(chǔ)數(shù)據(jù)。

卡類(lèi)源代碼:

//------------------------------------------------------------------------------
//
//??????產(chǎn)品名稱(chēng):???成曉旭的個(gè)人軟件Delphi源碼庫(kù)
//??????產(chǎn)品版本:???CXXSoft?delphi?code?source?lib?2.0
//??????模塊名稱(chēng):???Delphi之東進(jìn)數(shù)字語(yǔ)音卡類(lèi)
//??????模塊描述:???
//??????單元文件:???unDJCardSS1.pas???
//??????開(kāi)發(fā)作者:???成曉旭
//??????作者blog:???http://blog.csdn.net/CXXSoft
//??????備注:???????任何人使用此文件時(shí),請(qǐng)保留此段自述文件,謝謝!
//??????開(kāi)發(fā)時(shí)間:???2005-01-09
//??????修改歷史:???
//??????修改描述:
//------------------------------------------------------------------------------
unit?unDJCardSS1;

interface
uses
??Windows,SysUtils,Classes,
??unBaseDefine,
??Tce1_32,
??Tce1_FSK;

type
??TDJCommCardSS1?
=?class(TThread)
??
private
????onTrunkEvent:TTrunkSatausEvent;
????onRecEvent:TTrunkReceiveEvent;
????isLoadFSK:boolean;
????CommIsFSK:boolean;
????Trunks:array?of?TObject;
????function??InitCardForFSK():boolean;
????procedure?FreeCardForFSK();
????procedure?ThreadKernelProcess();
??
protected
????procedure?Execute();?
override;
??
public
????TotalTrunkNum,InTrunkNum,OutTrunkNum:Word;
????TrunkConnected:array?of?boolean;

????constructor?Create(
const?aStateEvent:?TTrunkSatausEvent;const?aRecEvent:TTrunkReceiveEvent);
????destructor?Destroy();?
override;
????
//初始化中繼卡
????function??InitCard(const?isFSKComm:?boolean):?Boolean;
????
//釋放中繼卡??
????function??FreeCommCard():boolean;
????
//開(kāi)始運(yùn)行中繼卡管理模塊
????procedure?StartRunCommModule();
????
//獲取一個(gè)空閑通道(指定通道類(lèi)型)
????function??GetAFreeTrunkByType(const?aTrunkType:TTrunkType):integer;
????
//獲取一個(gè)空閑呼出通道
????function??GetAFreeTrunkByOut():integer;
????
//掛斷指定通道
????procedure?HangOfByTrunkID(const?aChannelID:integer);
????
//通過(guò)指定通道撥號(hào)
????procedure?DialPhoneByTrunkID(const?aChannelID:integer;const?phoneNumber,callerNumber:PChar;const?aDevID:integer=-1);
????
//通過(guò)指定通道發(fā)送數(shù)據(jù)
????function??SendStringByTrunkID(const?aChannelID:integer;const?sendBuffer:PChar):boolean;
??end;

implementation

{?TDJCommCardSS1?}
uses
??unDJChannelSS1;

constructor?TDJCommCardSS1.Create(
const?aStateEvent:?TTrunkSatausEvent;
??
const?aRecEvent:TTrunkReceiveEvent);
begin
??inherited?Create(
true);
??Self.FreeOnTerminate?:
=?true;
??onTrunkEvent?:
=?aStateEvent;
??onRecEvent?:
=?aRecEvent;
end;

destructor?TDJCommCardSS1.Destroy();
begin
??Self.Suspend();
??Self.Terminate();
??FreeCommCard();
end;

procedure?TDJCommCardSS1.DialPhoneByTrunkID(
const?aChannelID:?integer;
??
const?phoneNumber,?callerNumber:?PChar;const?aDevID:integer);
begin
??
if?(aChannelID?>?ErrTrunkId)?and?(DJTrk_CheckTrunkFree(aChannelID))?then
????TDJCommChannelsSS1(Trunks[aChannelID]).StartDialPhone(phoneNumber,callerNumber,aDevID,);
end;

procedure?TDJCommCardSS1.Execute;
begin
??
while?NOT?Terminated?do
??begin
????Synchronize(ThreadKernelProcess);
????Sleep(
1);
??end;
end;

procedure?TDJCommCardSS1.FreeCardForFSK();
begin
??
if?CommIsFSK?and?isLoadFSK?then
??begin
????DJFsk_Release();
??end;
end;

function?TDJCommCardSS1.FreeCommCard():?boolean;
var
??Loop:Word;
begin
??Sleep(
1000);
??
if?TotalTrunkNum?>?0?then
??begin
????
for?Loop:=?0?to?TotalTrunkNum?-?1?do
????begin
??????
if?Assigned(TDJCommChannelsSS1(Trunks[Loop]))?then
??????begin
????????TDJCommChannelsSS1(Trunks[Loop]).Free();
????????TDJCommChannelsSS1(Trunks[Loop])?:
=?nil;
??????end;
????end;
??end;
??DJSys_DisableCard();
??FreeCardForFSK();
??Result?:
=?true;
end;

function?TDJCommCardSS1.GetAFreeTrunkByOut():?integer;
begin
??Result?:
=?GetAFreeTrunkByType(Type_Export);
end;

function?TDJCommCardSS1.GetAFreeTrunkByType(
??
const?aTrunkType:?TTrunkType):?integer;
var
??Loop:Word;
begin
??Result?:
=?ErrTrunkID;
??
for?Loop?:=?0?to?TotalTrunkNum?-?1?do
??begin
????
if?((TDJCommChannelsSS1(Trunks[Loop]).GetTrunkType()?=?aTrunkType)
??????????and?(DJTrk_CheckTrunkFree(Loop)))?then
????begin
??????Result?:
=?Loop;
??????
break;
????end;
??end;
end;

procedure?TDJCommCardSS1.HangOfByTrunkID(
const?aChannelID:?integer);
begin
??TDJCommChannelsSS1(Trunks[aChannelID]).InOutHangOff();
end;

function?TDJCommCardSS1.InitCard(
const?isFSKComm:?boolean):?Boolean;
const
??PromptFile?
=?'Prompt.ini';
var
??Loop:?Integer;
??isOK:?boolean;
??TimeOfNow:?SystemTime;
begin
??Result?:
=?False;
??CommIsFSK?:
=?isFSKComm;
??isOK?:
=(DJSys_EnableCard('',PromptFile)=_ERR_OK);
??
if?Not?isOK?then?exit;
??isOK?:
=?InitCardForFSK();
??
if?NOT?isOK?then?Exit;
??isLoadFSK?:
=?isOK;
??GetLocalTime(TimeOfNow);
??DJSys_SetSysTime(TimeOfNow.wHour,TimeOfNow.wMinute,TimeOfNow.wSecond);
??TotalTrunkNum:
=DJTrk_GetTotalTrunkNum();
??InTrunkNum:
=TotalTrunkNum?shr?1;
??OutTrunkNum:
=TotalTrunkNum?-?InTrunkNum;

??SetLength(Trunks,TotalTrunkNum);
??SetLength(TrunkConnected,TotalTrunkNum);

??
for?Loop:=0?to?OutTrunkNum-1?do
????Trunks[Loop]:
=TDJCommChannelsSS1.Create(Self,Loop,Type_Export,CommIsFSK,onTrunkEvent,onRecEvent);
??
for?Loop:=OutTrunkNum?to?TotalTrunkNum-1?do
????Trunks[Loop]:
=TDJCommChannelsSS1.Create(Self,Loop,Type_Import,CommIsFSK,onTrunkEvent,onRecEvent);
??
for?Loop:=?0?to?TotalTrunkNum?-?1?do
??begin
????TDJCommChannelsSS1(Trunks[Loop]).ClearTrunkBuffer(csReceiving);
??end;

??DJSys_AutoApplyDtmf(ENABLEDTMF);????
//自動(dòng)分配DTMF資源
??DJSys_EnableAutoKB();?????????????????//自動(dòng)回送KB信號(hào)
??isOK:=isOK?and?DJSys_EnableDtmfSend();
??Result?:
=?isOK;
end;

function?TDJCommCardSS1.InitCardForFSK():?boolean;
var
??k:integer;
begin
??Result?:
=?true;
??
if?CommIsFSK?then
??begin
????k?:
=?DJFsk_InitForFsk(SZK_Mode);
????Result?:
=?(k?=?1);
??end;
end;

function?TDJCommCardSS1.SendStringByTrunkID(
const?aChannelID:?integer;
??
const?sendBuffer:?PChar):boolean;
begin
??Result?:
=?TDJCommChannelsSS1(Trunks[aChannelID]).SendString(sendBuffer);
end;

procedure?TDJCommCardSS1.StartRunCommModule();
begin
??Resume();
end;

procedure?TDJCommCardSS1.ThreadKernelProcess();
var
??Loop:Word;
begin
??DJSys_PushPlay();
??
for?Loop?:=?0?to?TotalTrunkNum?-?1?do
??begin
????
try
??????TDJCommChannelsSS1(Trunks[Loop]).DJChannelProcessor();
????except
????end;
??end;
end;

end.

通道類(lèi)源代碼:

//------------------------------------------------------------------------------
//
//??????產(chǎn)品名稱(chēng):???成曉旭的個(gè)人軟件Delphi源碼庫(kù)
//??????產(chǎn)品版本:???CXXSoft?delphi?code?source?lib?2.0
//??????模塊名稱(chēng):???Delphi之東進(jìn)數(shù)字語(yǔ)音卡通道類(lèi)
//??????模塊描述:???
//??????單元文件:???unDJChannelSS1.pas???
//??????開(kāi)發(fā)作者:???成曉旭
//??????作者blog:???http://blog.csdn.net/CXXSoft
//??????備注:???????任何人使用此文件時(shí),請(qǐng)保留此段自述文件,謝謝!
//??????開(kāi)發(fā)時(shí)間:???2005-01-09
//??????修改歷史:???
//??????修改描述:
//------------------------------------------------------------------------------
unit?unDJChannelSS1;

interface
uses
??Windows,?SysUtils,
??unBaseDefine,
??Tce1_32,
??Tce1_FSK,
??unDJCardSS1;
type

??TCXXStatus?
=?(csSending,csReceiving,csPlaying);
??
??TDJCommChannelsSS1?
=?class(TObject)
??
private
????CommIsFSK:boolean;
????controller:TDJCommCardSS1;
????TrunkID:integer;
????TrunkStep:TTrunkStep;

????MaxBuffer:?array?[
0..DTMF_BUFFER_SIZE-1]?of?Char;
????msgChannel:TTrunkStatusInfo;
????msgFrame:TRecCommFrame;

????commFrameNumber,recPos:Word;
????subStatus:TCXXStatus;
????commPhone:
string;
????commFrameStr:
string;

????
//應(yīng)該進(jìn)一步優(yōu)化為注入的接口,非簡(jiǎn)單的回調(diào)句柄
????onTrunkState:TTrunkSatausEvent;
????onRecEvent:TTrunkReceiveEvent;
????InOutType:TTrunkType;

????function??SendDataFromTrunk():boolean;
????function??CheckSendDataEnd():boolean;
????procedure?SaveMaxBufferToFrameStr();
????procedure?ProcessConnected();
????
//注意:此方法與具體業(yè)務(wù)的通信協(xié)議存在嚴(yán)重依賴(lài)關(guān)系(IoC實(shí)現(xiàn)依賴(lài)反轉(zhuǎn))
????function??CheckReceiveOverFSK(const?dataBuffer:array?of?char;const?dataNumber:Word):boolean;
????
//注意:此方法與具體業(yè)務(wù)的通信協(xié)議存在嚴(yán)重依賴(lài)關(guān)系(IoC實(shí)現(xiàn)依賴(lài)反轉(zhuǎn))
????function??CheckReceiveOverDTMF(const?dataBuffer:array?of?char;const?dataNumber:Word):boolean;
????function??GetCommData(
const?dataBuffer:array?of?char;const?dataNumber:Word):string;
????function??ReceiveDataFromTrunk():boolean;

????procedure?InformChannelStatus(
const?aStep:TTrunkStep;const?lvof:TLVOperateFlag);
????procedure?InformBusinessStatus(
const?aCommData:string;const?cif:TCommInformFlag);
????procedure?InformDialStatus(
const?aStep:TTrunkStep);
????procedure?InWaitingIntoToConnect();
????function??GetCommFrameFromSendString(
const?commFrame:string):string;

????procedure?RegisterTrunkEvent(
const?trunkStateEvent:TTrunkSatausEvent);
????procedure?RegisterReceiveEvent(
const?trunkRecEvent:TTrunkReceiveEvent);
??
public
????
????constructor?Create(
const?trunkController:?TDJCommCardSS1;?const?TrkID:?Integer;
??????
const?TrunkType:?TTrunkType;const?isFSKComm:?boolean;
??????
const?aStateEvent:?TTrunkSatausEvent;const?aRecEvent:TTrunkReceiveEvent);
????destructor?Destroy;?
override;

????
//獲取通道狀態(tài)
????function?GetTrunkType():TTrunkType;
????procedure?DJChannelProcessor();
????
//通道掛機(jī)
????procedure?InOutHangOff();
????
//開(kāi)始撥號(hào)
????procedure?StartDialPhone(const?phoneNumber,callerNumber:PChar;const?aDevID:integer=-1);
????
//發(fā)送通信數(shù)據(jù)
????function??SendString(const?pchSend:PChar):boolean;
????
//清空通道數(shù)據(jù)緩沖
????procedure?ClearTrunkBuffer(const?aSB:TCXXStatus);
????
//獲取通道號(hào)
????function??GetTrunkID():integer;
??end;

implementation

{?TDJCommChannelsSS1?}
const
??Frame_FillChar?
=?#0;
??Leader_Flag?
=?$55;
??HeadNumber?
=?30;
??hasLeader?
=?true;
??
function?TDJCommChannelsSS1.CheckSendDataEnd():?boolean;
begin
??Result?:
=?false;
??
if?CommIsFSK?then
??begin
????
if?(DJFsk_CheckSendFSKEnd(TrunkID,SZK_Mode)?=?1)?then
????begin
??????DJFsk_StopSend(TrunkID,SZK_Mode);
??????Result?:
=?true;
????end;
??end
??
else
??begin
????
if?DJTrk_CheckDtmfSendEnd(TrunkID)?then
????begin
??????DJVoc_StopPlayFile(TrunkID);
??????Result?:
=?true;
????end;
??end;
??
if?Result?then
????ClearTrunkBuffer(csReceiving);
end;

procedure?TDJCommChannelsSS1.ClearTrunkBuffer(
const?aSB:TCXXStatus);
begin
??subStatus?:
=?aSB;
??
if?CommIsFSK?then
????DJFsk_ResetFskBuffer(TrunkID,SZK_Mode)
??
else
????DJTrk_InitDtmfBufNew(TrunkID);
??commFrameNumber?:
=?0;
??recPos?:
=?0;
end;

constructor?TDJCommChannelsSS1.Create(
const?trunkController:?TDJCommCardSS1;?const?TrkID:?Integer;
??
const?TrunkType:?TTrunkType;?const?isFSKComm:?boolean;
??
const?aStateEvent:?TTrunkSatausEvent;const?aRecEvent:TTrunkReceiveEvent);
var
??t:TTrunkType;
begin
??inherited?Create;
??RegisterTrunkEvent(aStateEvent);
??RegisterReceiveEvent(aRecEvent);
??controller?:
=trunkController;
??TrunkID:
=TrkID;
??commPhone?:
=?'';
??TrunkStep:
=TTrunkStep(-1);
??t?:
=?TrunkType;
??
if?DJTrk_SetTrunkType(TrkID,t)?then
????InOutType:
=TrunkType;
??CommIsFSK?:
=?isFSKComm;
??controller.TrunkConnected[TrunkID]?:
=?false;
??ClearTrunkBuffer(csReceiving);
??InformChannelStatus(Step_Free,lvofAdd);
end;

destructor?TDJCommChannelsSS1.Destroy();
begin
??inherited;
??DJTrk_BackwardHangUp(TrunkID);
end;

procedure?TDJCommChannelsSS1.DJChannelProcessor();
var
??aStep:?TTrunkStep;
begin
??
//DJSys_PushPlay();
??aStep:=?DJTrk_GetTrunkStatus(TrunkID);
??
//狀態(tài)變化
??if?TrunkStep?<>?aStep?then
??begin
????TrunkStep:
=?aStep;
????InformChannelStatus(TrunkStep,lvofUpdate);
??end;
??
//前向掛機(jī)
??if?(TrunkStep<>Step_Free)?and?DJTrk_CheckForwardHangUp(TrunkID)?then
??begin
????InOutHangOff();
??end;
??
//入中繼撥入,等待接續(xù)(建立連接)
??if?(TrunkStep?=?Step_Wait)?and?(DJTrk_CheckTrunkIn(TrunkID))?then
??begin
????InWaitingIntoToConnect();
??end;
??
//通道連接已經(jīng)建立
??if?(TrunkStep?=?Step_Connect)?then
??begin
????ProcessConnected();
??end;
??
//出通道撥號(hào)失敗
??if?TrunkStep=Step_DialFail?then
??begin
????InformDialStatus(TrunkStep);
??end;
??
if?TrunkStep=Step_Delay?then
????Exit;
??
//出入通道空閑
??if?TrunkStep?=?Step_Free?then
??begin
????
//等待接收呼入
??end;
end;

function?TDJCommChannelsSS1.GetTrunkID():?integer;
begin
??Result?:
=?Self.TrunkID;
end;

procedure?TDJCommChannelsSS1.InformChannelStatus(
const?aStep:?TTrunkStep;const?lvof:TLVOperateFlag);
begin
??msgChannel.lvFlag?:
=?lvof;
??msgChannel.TrunkID?:
=?IntToStr(Self.TrunkID);
??msgChannel.DeviceID?:
=?'';
??msgChannel.TrunkTypeStr:
=TrunkTypeInStr[InOutType];
??msgChannel.TrunkStep?:
=?Ord(aStep);
??msgChannel.TrunkStepStr:
=TrunkStepInStr[aStep];
??
if?aStep?=?Step_Free?then
??begin
????msgChannel.Phone:
='';
????msgChannel.Data:
='';
??end
??
else
??begin
????msgChannel.Phone:
=commPhone;
????msgChannel.Data:
=commFrameStr;
??end;
??
if?Assigned(onTrunkState)?then
????onTrunkState(msgChannel);
end;

procedure?TDJCommChannelsSS1.InformDialStatus(
const?aStep:?TTrunkStep);
var
??dStatus:TDialStatus;
begin
??dStatus?:
=?DJTrk_GetDialStatus(TrunkID);
??
case?dStatus?of
??DS_Busy,DS_OverTime,DS_NoUser,DS_LineError:
??begin
????InOutHangOff();
??end;
??end;
end;

procedure?TDJCommChannelsSS1.InformBusinessStatus(
const?aCommData:?string;const?cif:TCommInformFlag);
begin
??
//依賴(lài)注入的業(yè)務(wù)處理接口調(diào)用,實(shí)現(xiàn)業(yè)務(wù)處理的
end;

procedure?TDJCommChannelsSS1.InOutHangOff();
begin
??DJTrk_BackwardHangUp(TrunkID);
??controller.TrunkConnected[TrunkID]?:
=?false;
??InformBusinessStatus(
'',cifDisconnected);
end;

procedure?TDJCommChannelsSS1.InWaitingIntoToConnect;
begin
??DJVoc_PlayFile(TrunkID,
'.Voicedtmf13');
??DJVoc_StopPlayFile(TrunkID);
end;


procedure?TDJCommChannelsSS1.ProcessConnected();
var
??ss:TCXXStatus;??
begin
??
if?NOT?controller.TrunkConnected[TrunkID]?then
??begin
????controller.TrunkConnected[TrunkID]?:
=?true;
????ss?:
=?csReceiving;
????InformBusinessStatus(
'',cifConnected);
????ClearTrunkBuffer(ss);
??end;
??
case?subStatus?of
??csSending:
??begin
????
if?CheckSendDataEnd()?then
????begin
????????InformChannelStatus(Step_Connect,lvofUpdate);
????????InformBusinessStatus(commFrameStr,cifSend);
????end;
??end;
??csReceiving:
??begin
????
if?ReceiveDataFromTrunk()?then
????begin
??????msgFrame.CommFrame?:
=?commFrameStr;
??????msgFrame.CommType?:
=?Comm_FSK;
??????InformChannelStatus(Step_Connect,lvofUpdate);
??????InformBusinessStatus(commFrameStr,cifReceive);
????end;
??end;
??csPlaying:
??begin
????
??end;
??end;
end;

function?TDJCommChannelsSS1.ReceiveDataFromTrunk():?boolean;
var
??num,Loop:integer;
??tempBuffer:array[
0..DTMF_BUFFER_SIZE-1]?of?Char;
begin
??Result?:
=?false;
??
try
????
if?Self.CommIsFSK?then
????begin
??????
//FSK方式版本
??????FillChar(tempBuffer,DTMF_BUFFER_SIZE,Frame_FillChar);
??????num?:
=?DJFsk_GetFSK(TrunkID,tempBuffer,SZK_MODE);
??????
if?(num?>?0)?then
??????begin
????????
if?CheckReceiveOverFSK(tempBuffer,num)?then
????????begin
??????????Self.commFrameStr?:
=?GetCommData(tempBuffer,num);
??????????Self.ClearTrunkBuffer(csReceiving);
??????????Result?:
=?true;
????????end;
??????end;
????end
????
else
????begin
??????
//DTMF方式版本
??????num?:=?DJTrk_GetReceiveDtmfNumNew(TrunkID);
??????
if?num?>?0?then
??????begin
????????
for?Loop?:=?0?to?num?-?1?do
????????begin
??????????MaxBuffer[recPos
+Loop]?:=?DJTrk_GetDtmfCodeNew(TrunkID);
??????????recPos?:
=?(recPos?+?1)?mod?DTMF_BUFFER_SIZE;
????????end;
????????Inc(commFrameNumber,num);
????????
if?CheckReceiveOverDTMF(tempBuffer,num)?then
????????begin
??????????ClearTrunkBuffer(csReceiving);
??????????Result?:
=?true;
????????end;
??????end;
????end;
??except
????Result?:
=?false;
??end;
end;

procedure?TDJCommChannelsSS1.RegisterReceiveEvent(
??
const?trunkRecEvent:?TTrunkReceiveEvent);
begin
??onRecEvent?:
=?trunkRecEvent;
end;

procedure?TDJCommChannelsSS1.RegisterTrunkEvent(
??
const?trunkStateEvent:?TTrunkSatausEvent);
begin
??onTrunkState?:
=?trunkStateEvent;
end;

procedure?TDJCommChannelsSS1.SaveMaxBufferToFrameStr();
var
??Loop:Word;
begin
??commFrameStr?:
=?'';
??
for?Loop?:=?0?to?commFrameNumber?-?1?do
??begin
????commFrameStr?:
=?commFrameStr?+?MaxBuffer[Loop];
??end;
end;

function?TDJCommChannelsSS1.SendDataFromTrunk():boolean;
begin
??Result?:
=?false;
??
if?controller.TrunkConnected[TrunkID]?then
??begin
????
if?CommIsFSK?then
????begin
??????Result?:
=?DJFsk_SendFSK(TrunkID,@MaxBuffer[0],commFrameNumber,SZK_Mode)?=?1;
????end
????
else
????begin
??????Result?:
=?DJTrk_SendDtmfStr(TrunkID,@MaxBuffer[0])?=?1;
????end;
??end;
??
if?Result?then
????subStatus?:
=?csSending;
end;

function?TDJCommChannelsSS1.SendString(
const?pchSend:?PChar):boolean;
var
??Loop:integer;
??strTemp:
string;
begin
??Result?:
=?false;
??
if?Self.CommIsFSK?and?hasLeader?then
??begin
????
//加FSK前導(dǎo)字符的版本
????strTemp?:=?GetCommFrameFromSendString(pchSend);
????commFrameNumber?:
=?Length(strTemp);
????
if?commFrameNumber?>?0?then
????begin
??????
for?Loop?:=?0?to?commFrameNumber-1?do
????????MaxBuffer[Loop]?:
=?strTemp[Loop+1];
??????MaxBuffer[commFrameNumber]?:
=?#0;
??????SaveMaxBufferToFrameStr();
??????Result?:
=?SendDataFromTrunk();
????end;
??end
??
else
??begin
????
//不加前導(dǎo)字符的版本
????commFrameNumber?:=?Length(pchSend);
????
if?commFrameNumber?>?0?then
????begin
??????
for?Loop?:=?0?to?commFrameNumber-1?do
????????MaxBuffer[Loop]?:
=?pchSend[Loop];
??????MaxBuffer[commFrameNumber]?:
=?#0;
??????SaveMaxBufferToFrameStr();
??????Result?:
=?SendDataFromTrunk();
????end;
??end;
end;

procedure?TDJCommChannelsSS1.StartDialPhone(
const?phoneNumber,
??callerNumber:?PChar;
const?aDevID:integer);
begin
??
if?DJTrk_CheckTrunkFree(TrunkID)?and(Trim(phoneNumber)?<>?'')?then
??begin
????commPhone?:
=?Trim(phoneNumber);
????DJTrk_StartDial(TrunkID,PChar(commPhone),
'');
??end;
end;

function?TDJCommChannelsSS1.CheckReceiveOverFSK(
const?dataBuffer:?array?of?char;
??
const?dataNumber:?Word):?boolean;
begin
??
//業(yè)務(wù)實(shí)現(xiàn)方法:判定通信幀串發(fā)送結(jié)束
??Result?:=?true;
end;

function?TDJCommChannelsSS1.GetCommData(
const?dataBuffer:?array?of?char;
??
const?dataNumber:?Word):?string;
var
??Loop:Word;
begin
??Result?:
=?'';
??
if?dataNumber?<=?0?then?Exit;
??
for?Loop?:=?0?to?dataNumber?-?1?do
??begin
????
if?(dataBuffer[Loop]?<>?Frame_FillChar)?then
??????Result?:
=?Result?+?dataBuffer[Loop];
??end;
end;

function?TDJCommChannelsSS1.GetCommFrameFromSendString(
??
const?commFrame:?string):?string;
var
??Loop:integer;
begin
??Result?:
=?commFrame;
??
for?Loop?:=?0?to?HeadNumber?-?1?do
????Result?:
=?CHR(Leader_Flag)?+?Result;
end;

function?TDJCommChannelsSS1.CheckReceiveOverDTMF(
??
const?dataBuffer:?array?of?char;?const?dataNumber:?Word):?boolean;
begin
??
//業(yè)務(wù)實(shí)現(xiàn)方法:判定通信幀串發(fā)送結(jié)束
??Result?:=?true;
end;

function?TDJCommChannelsSS1.GetTrunkType():?TTrunkType;
begin
??Result?:
=?Self.InOutType;
end;

end.

?

總結(jié)

以上是生活随笔為你收集整理的Delphi之东进数字语音卡(SS1)可复用源码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

亚洲人久久 | 天堂网av在线 | 色噜噜日韩精品欧美一区二区 | 久草在线这里只有精品 | 中文字幕国语官网在线视频 | 中文字幕在线观看免费高清完整版 | av日韩不卡| 奇米网在线观看 | 人人爽人人av | 51久久成人国产精品麻豆 | 久久精品久久久精品美女 | 伊人久久一区 | 麻豆果冻剧传媒在线播放 | 欧美日韩精品免费观看视频 | 日韩欧美视频二区 | 国产在线资源 | 夜色资源站国产www在线视频 | 久久久久久久久久久久久久免费看 | 五月天综合激情 | 97在线视频免费观看 | 婷婷色网| 91.精品高清在线观看 | 精品国产一区二区三区噜噜噜 | 亚洲黄色成人av | 日韩亚洲欧美中文字幕 | 免费看黄色毛片 | 日韩一区视频在线 | 日韩视频在线不卡 | 亚洲精品99久久久久中文字幕 | 99久久久久国产精品免费 | 国产91丝袜在线播放动漫 | 精品久久久久久综合 | 久久精品一区二区三区中文字幕 | 久久新视频 | 成人精品视频久久久久 | 国产性xxxx | 三级av中文字幕 | 激情视频一区 | 狠狠操综合网 | 成人在线免费看视频 | 国产午夜麻豆影院在线观看 | 在线看片成人 | 国产精品久久久久久久久久久久午夜 | 久久免费的视频 | 天天干天天干天天干天天干天天干天天干 | 欧美久久久影院 | 中文字幕之中文字幕 | 免费精品在线观看 | 免费观看91视频 | 国产精品久久久久999 | 91最新视频在线观看 | 在线免费中文字幕 | 久久久久久久网站 | 中文字幕乱码亚洲精品一区 | 亚洲成av人片在线观看香蕉 | 久久夜色精品国产欧美乱 | 国产在线观看二区 | 天天综合久久 | 成 人 免费 黄 色 视频 | 五月婷婷激情五月 | 69久久久 | 亚洲欧美日韩国产精品一区午夜 | 亚洲午夜精品久久久久久久久久久久 | 欧美日韩国产综合网 | 婷婷久月| 日本福利视频在线 | 国产精品1024 | 米奇狠狠狠888 | 国产成人一区二区三区电影 | 69热国产视频 | 丁香九月婷婷 | 国产精品视频资源 | 国产精品不卡在线观看 | 精品国产精品国产偷麻豆 | a电影在线观看 | 久久久久久久久久久久av | 亚洲精品乱码久久久久久9色 | 国产很黄很色的视频 | av黄色在线播放 | 久久女教师 | 久久久久国产精品厨房 | 一本之道乱码区 | 黄色精品一区二区 | 欧美大jb| 91视频在线免费看 | 亚洲国产一区在线观看 | 天天操天天草 | 在线亚洲成人 | 国产剧情一区 | 五月婷婷在线播放 | 欧美日韩国产色综合一二三四 | 成人精品久久 | 国产成人精品亚洲日本在线观看 | 亚洲视频www | 日本最大色倩网站www | 欧美一二三区播放 | 色妞色视频一区二区三区四区 | 日韩欧美高清视频在线观看 | 国产精品99久久久精品免费观看 | 亚洲理论在线观看电影 | 国产麻豆视频 | 久久精品国产精品亚洲精品 | 日韩黄色在线 | 中文字幕第一页在线 | 久久综合欧美 | 色偷偷88888欧美精品久久 | 色婷婷在线观看视频 | 91免费高清观看 | 91久久久国产精品 | 亚洲精品综合在线 | 色综合天天综合 | 正在播放国产一区二区 | 色偷偷888欧美精品久久久 | 欧美视频国产视频 | 久久高清国产视频 | 超碰97公开| 国产成人中文字幕 | 国产一区高清在线观看 | 人人搞人人爽 | 日本中文字幕影院 | 国产精品video爽爽爽爽 | 精品视频免费久久久看 | 亚洲www天堂com | 天天天天天天天操 | 亚洲一本视频 | 国产在线免费观看 | 久久激情视频网 | 日韩在线国产精品 | 国内精品久久久久影院一蜜桃 | 欧美日韩p片 | 日本精品一区二区三区在线观看 | 欧美精品v国产精品 | 国产一区黄色 | 97人人澡人人添人人爽超碰 | 欧美一进一出抽搐大尺度视频 | 视频一区二区三区视频 | 在线观影网站 | 丁香婷婷射 | 青草视频在线播放 | 成年人在线免费看 | 精品在线观看一区二区三区 | 久草久草视频 | 五月天堂色 | 精品欧美一区二区三区久久久 | 九九热免费视频在线观看 | 日韩在线视频观看 | 亚洲亚洲精品在线观看 | 日韩欧美在线观看一区二区 | 四虎成人免费影院 | 国产一级在线看 | 毛片无卡免费无播放器 | 免费在线观看污网站 | 国产精品手机在线 | 亚洲综合视频在线 | 在线观看一区 | 日韩欧美在线一区二区 | 九色精品在线 | 国内精品久久久久影院日本资源 | 亚洲欧美婷婷六月色综合 | 久久精品99久久久久久2456 | 97视频在线播放 | 亚洲欧美日韩国产一区二区 | 激情深爱.com | 97超碰人人模人人人爽人人爱 | 激情五月看片 | 色婷婷视频在线 | 天天天天天天干 | www.在线观看视频 | 日韩欧美在线观看一区 | 中文字幕成人 | 欧美一区二区精美视频 | 天天爱综合 | 亚洲永久av | 2020天天干夜夜爽 | 久久天天躁狠狠躁亚洲综合公司 | 日韩网站在线播放 | 亚洲精品免费观看 | 国内精品久久久久久久影视简单 | 欧美精品在线观看免费 | 91精品国产乱码久久桃 | 一级黄色大片在线观看 | 国产精品毛片一区视频播不卡 | 成人性生交大片免费看中文网站 | 国产免费叼嘿网站免费 | 亚洲黄色在线观看 | 91av在线不卡 | 激情大尺度视频 | 91av在线精品 | 91桃色国产在线播放 | 91亚洲国产成人久久精品网站 | 久草色在线观看 | 九九久久国产精品 | 天堂网在线视频 | 狠狠狠色丁香婷婷综合久久五月 | 五月导航 | 国产高清视频在线播放 | 亚洲免费一级电影 | 91视频电影| 五月天,com | 日韩免费在线 | 九九免费观看视频 | 三级大片网站 | 欧美中文字幕久久 | 国产亚洲欧洲 | 中文字幕在线日本 | 成人午夜性影院 | 国产区高清在线 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产欧美综合在线观看 | 亚洲精品色 | 91网免费观看 | 亚洲精品国产日韩 | 久久久久亚洲精品 | 天天综合天天做 | 九九热在线视频 | 蜜桃av人人夜夜澡人人爽 | 男女视频91| 69久久99精品久久久久婷婷 | av片免费播放 | 天天综合网~永久入口 | 青青河边草观看完整版高清 | 久久在线免费观看视频 | 亚洲精品小视频在线观看 | 91丨九色丨蝌蚪丨老版 | 91久久精品一区 | 日韩在线看片 | 国产九九九视频 | 欧美一级视频在线观看 | 欧美精品久久久久久久久久久 | 国产一级小视频 | 国产精品成人一区二区三区 | 久久免费视频一区 | 最新av免费在线 | 久久av网址| av资源免费观看 | 中文在线a在线 | 亚洲综合在线一区二区三区 | 国产丝袜一区二区三区 | 狠狠干我| 亚洲国产美女久久久久 | 看黄色91 | 欧美成年性 | 99视频在线看 | 97天堂| av看片网 | 免费亚洲一区二区 | 色99导航| 天天色天天综合 | 欧美不卡视频在线 | 久久久不卡影院 | 在线观看一级视频 | 在线免费性生活片 | 日本精品va在线观看 | 日韩激情免费视频 | 国产成人精品三级 | 欧美精品久久人人躁人人爽 | 在线免费观看羞羞视频 | 91精品亚洲影视在线观看 | 中文字幕在线视频第一页 | 日日干网| 69国产成人综合久久精品欧美 | 成人免费在线电影 | 香蕉视频在线网站 | 日韩理论在线播放 | 免费在线观看成人av | 国产视频一区在线免费观看 | 精品一区二区三区在线播放 | 免费日韩av片 | 久久观看免费视频 | 午夜久久影视 | 亚洲日本韩国一区二区 | 亚洲毛片一区二区三区 | 88av网站 | 五月婷婷爱| 国产在线97 | 天堂久色| 天天操天天干天天操天天干 | 欧美va电影| 成人久久18免费网站 | 日本mv大片欧洲mv大片 | 毛片网站在线 | 在线色亚洲 | 日韩专区在线 | 色综合久久88色综合天天 | 国产成人av网 | 91尤物国产尤物福利在线播放 | 在线一区av | 97偷拍视频 | 天天草天天摸 | 夜夜躁日日躁狠狠久久88av | 亚洲综合国产精品 | 超碰97中文 | 99国产视频在线 | 国产日韩精品一区二区三区 | 最近更新好看的中文字幕 | 四虎永久免费网站 | 成人久久久久久久久久 | 国产破处在线播放 | 中文av在线播放 | 久草香蕉在线 | 亚洲精品在 | 欧美一级免费在线 | 国产精品久久电影观看 | 成人午夜电影在线播放 | 麻豆视频在线免费看 | av中文在线影视 | 五月婷婷综合在线观看 | 91精品国产乱码久久 | 啪啪激情网| 国产日韩精品一区二区在线观看播放 | 中文字幕在线观看你懂的 | 91九色免费视频 | 日本黄色免费在线 | 亚洲精品视频网址 | 欧美三级高清 | 色先锋资源网 | 夜色资源站wwwcom | av官网在线 | 久免费| 久久免费在线观看视频 | 在线婷婷 | 国产麻豆精品久久 | 在线观看国产日韩欧美 | 色鬼综合网 | 日韩视频一二三区 | 免费在线国产视频 | 人人插超碰 | av解说在线| 色片网站在线观看 | 久久9999久久 | 欧美日韩p片 | 99人成在线观看视频 | 一级a毛片高清视频 | 久久久免费看片 | av一级网站 | 在线播放日韩 | 国产又粗又硬又爽视频 | 亚洲丝袜一区 | 在线蜜桃视频 | 中文字幕 成人 | www夜夜操com| 久草视频在线资源站 | 91入口在线观看 | 久久久久高清 | 久久视频在线 | 国产一级不卡毛片 | 超碰在线亚洲 | 久久久99精品免费观看乱色 | 欧美一区二视频在线免费观看 | 夜夜爽88888免费视频4848 | 在线观看精品黄av片免费 | 国产二区精品 | 天天操福利视频 | 天堂在线一区 | 婷婷六月丁香激情 | 国产精品综合久久久 | 深夜激情影院 | 国产在线更新 | 亚洲一区二区精品在线 | 91麻豆产精品久久久久久 | 91精品免费在线观看 | 97在线观看视频免费 | 99视频网站| 1区2区视频| 狠狠色狠狠综合久久 | 国产亚洲一区 | www久久久| 精品 一区 在线 | 综合网中文字幕 | 国产精品福利av | 国产日韩欧美自拍 | 狠狠激情中文字幕 | 99热这里是精品 | 欧美色就是色 | 成人黄色电影免费观看 | 国产一区二区网址 | 91最新在线视频 | 97超级碰碰碰视频在线观看 | 成人小视频在线观看免费 | 日韩av电影一区 | 国产原创中文在线 | 久久九九精品久久 | 婷婷av色综合 | 99r精品视频在线观看 | 欧美日韩国产综合一区二区 | 五月天六月婷 | 亚洲少妇久久 | 天天爽夜夜爽人人爽一区二区 | av片子在线观看 | 日韩无在线 | 毛片网在线播放 | 欧美精品一区在线 | 日韩欧美专区 | 亚洲热久久 | 国产精品一区久久久久 | 国产一区二区高清不卡 | 欧美激情视频一区二区三区免费 | www国产亚洲精品久久网站 | 青青草久草在线 | 欧美大荫蒂xxx | 精品久久国产精品 | 91成人精品国产刺激国语对白 | 伊人首页 | 中文字幕资源在线 | 欧美午夜理伦三级在线观看 | 国产精品成人aaaaa网站 | 国产精品毛片久久久久久 | 婷婷免费在线视频 | 亚洲天堂网视频 | 99色精品视频 | 国产高清在线一区 | 欧美午夜久久 | 欧美日韩在线免费观看 | 天天操天天射天天爱 | 天天色天天上天天操 | 国产 一区二区三区 在线 | 日日摸日日爽 | 一区二区高清在线 | 91九色成人| 天天操夜夜叫 | 超碰在线观看av.com | 日韩免费在线网站 | 中文字幕视频观看 | 久久久久在线视频 | 国产视频中文字幕在线观看 | 四川bbb搡bbb爽爽视频 | 日日夜夜噜| 9在线观看免费 | 精品久久久久久亚洲综合网站 | 91亚洲精品久久久久图片蜜桃 | 国产精品一区二区中文字幕 | 日本精品久久久久中文字幕5 | 四虎永久免费 | 天天玩天天操天天射 | 日韩狠狠操 | 五月婷激情 | 中文一区在线 | 看片网站黄色 | 国产精品女教师 | 欧美亚洲一区二区在线 | 色妞色视频一区二区三区四区 | 色天天综合久久久久综合片 | 亚洲国产日韩欧美在线 | 欧美日韩国产mv | 欧美日韩免费观看一区=区三区 | 久久久黄色免费网站 | 一区二区中文字幕在线观看 | 精品一区二区综合 | 国产精品毛片一区二区在线看 | 国内精品久久久久 | 亚洲综合日韩在线 | 国产丝袜一区二区三区 | 久久精品国产一区二区 | 国产精品久久婷婷六月丁香 | 日日躁你夜夜躁你av蜜 | 中文字幕免费观看全部电影 | 亚洲精品久久久久久国 | 国产精品久久久久av | av片一区二区 | av电影一区二区三区 | 久久人人看 | 日批视频在线观看免费 | 91高清在线 | 深爱婷婷网 | 欧美热久久 | 视频在线播放国产 | 久久精品99国产精品 | www.天天草 | 成人免费在线观看av | 911香蕉视频 | 亚洲国产美女精品久久久久∴ | 99视频在线免费观看 | 婷婷激情综合五月天 | 国产中年夫妇高潮精品视频 | 国产伦理一区二区三区 | 亚洲va欧美va人人爽春色影视 | 免费一级片在线观看 | 91麻豆视频 | 久久免费视频3 | 国产精品高 | 丁香久久综合 | 深爱激情五月婷婷 | 中文字幕在线观看日本 | 欧美性生活小视频 | 韩国中文三级 | 欧美午夜激情网 | 久久免费视频8 | 欧女人精69xxxxxx | av一区在线播放 | 久久艹99| 亚洲黄色小说网址 | 在线观看av国产 | 免费亚洲婷婷 | 色人久久 | 国产色视频一区 | 91麻豆网| 精品九九九九 | 99国产一区 | 欧美人zozo | 特级黄色一级 | 在线观看福利网站 | 亚洲国内在线 | av成人亚洲| 日韩伦理片一区二区三区 | 久久天天躁狠狠躁夜夜不卡公司 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲一级二级三级 | 免费视频区| 亚洲激情在线播放 | 午夜天使| av电影在线不卡 | avwww在线 | 欧美日韩网站 | 福利视频一区二区 | 国产成视频在线观看 | 99久久精品国产一区二区三区 | 玖玖国产精品视频 | 久草干 | 国产精品理论视频 | 免费看三级 | www.99av| 成人夜晚看av | 91在线91| 欧美性网站 | 视频一区在线免费观看 | 西西大胆免费视频 | 最近中文字幕免费视频 | 久久久香蕉视频 | 国产日韩欧美网站 | 色香天天 | 成人黄色国产 | 免费一级片视频 | 在线电影 一区 | 成人97人人超碰人人99 | 91亚洲精品久久久蜜桃网站 | 久久国内视频 | 国产专区视频 | 久青草视频在线观看 | av免费在线观看1 | 久草在线网址 | 精品视频97| 91女神的呻吟细腰翘臀美女 | 91看片麻豆 | 经典三级一区 | 天天av天天 | 国产精品一区二区在线免费观看 | 91免费网站在线观看 | av免费网站| 中文字幕高清 | 综合天天网 | 成人午夜免费福利 | 国产精品成人一区二区 | 一区二区三区播放 | 亚洲精品网页 | 一本色道久久精品 | 视频在线观看91 | 伊人射| 免费观看xxxx9999片 | 五月天丁香 | 最近日韩免费视频 | 精品国产诱惑 | av免费高清观看 | 超碰免费av | a级黄色片视频 | 久久99热精品这里久久精品 | 久久久久久久久爱 | 精品国产乱码久久久久久1区二区 | 国产精品久久久久久久久蜜臀 | 国产成人91| 四虎免费av| 黄色免费看片网站 | 日韩一级黄色大片 | 欧美久久久久久久 | 丁香六月五月婷婷 | 色网站在线观看 | 日韩欧美在线观看一区 | 97电影网站| 91av在线免费视频 | 婷婷在线网站 | 狠狠狠狠狠狠操 | 天天干天天干天天色 | 四虎天堂 | 天天艹天天 | 可以免费看av | www免费看片com | 精品国产免费一区二区三区五区 | 国产亚洲精品无 | 99久精品 | 国产一区二区在线观看免费 | 婷婷六月网| 中文字幕在线高清 | 久久久久在线观看 | 日本在线精品视频 | 最近中文国产在线视频 | 97超碰免费在线观看 | 日日夜夜天天射 | 日韩电影中文,亚洲精品乱码 | 国产精品国产三级国产 | 夜夜骑首页 | 国产精品高潮呻吟久久久久 | 久久综合亚洲鲁鲁五月久久 | 久亚洲精品 | 精品美女视频 | 中文字幕免费在线看 | 久久亚洲影视 | 国产精品网址在线观看 | 日批视频在线观看免费 | 永久精品视频 | 狠狠操操操| 久久综合久久88 | 中文字幕日韩国产 | 国产1级毛片 | 九九免费在线观看 | 久久久久久久久久久黄色 | 黄色软件在线观看视频 | 天天se天天cao天天干 | 国产中文字幕久久 | 国产精品白虎 | 亚洲精品在线免费 | 亚洲精品美女在线 | 四虎成人精品永久免费av九九 | 天天干夜夜操视频 | 欧美日韩二区三区 | 99精品在线播放 | av综合网址| 玖玖精品在线 | 成年人在线看视频 | 久久99久久99精品免视看婷婷 | 亚洲国产精品一区二区尤物区 | 久久国产精品久久久 | 亚洲片在线资源 | 一区二区三区免费在线观看视频 | 免费一级片在线观看 | 五月天天色 | 国产成人在线精品 | av综合网址 | 天天干天天拍天天操天天拍 | 亚洲精品高清一区二区三区四区 | 91av精品| 天天干.com | 日韩av成人在线观看 | 在线观看中文字幕 | www.久久久久 | 96av麻豆蜜桃一区二区 | 日韩精品首页 | 久草精品视频 | 中文在线字幕免 | 日本高清免费中文字幕 | 97人人射| 亚洲四虎在线 | 久久人人艹 | 亚洲丝袜一区二区 | 免费69视频 | 69久久99精品久久久久婷婷 | 97超碰人人在线 | 欧美一进一出抽搐大尺度视频 | 成 人 黄 色视频免费播放 | 色婷婷综合久久久久中文字幕1 | 日韩综合色 | 97在线观看免费观看高清 | 亚洲 综合 国产 精品 | 国产成人精品一区二区在线 | 久草视频在线免费看 | 日韩欧美视频免费在线观看 | 91av视频在线观看免费 | 91九色蝌蚪在线 | 美女久久久久久久 | 国产电影黄色av | 国产黄色精品在线观看 | 国产理论影院 | 狠狠干电影 | 亚洲日本黄色 | 日批在线看| 99热精品国产一区二区在线观看 | 在线观看av免费 | 99福利片| 在线国产99 | 亚洲欧美日韩中文在线 | 国产69精品久久久久9999apgf | 亚洲人成网站精品片在线观看 | 91亚洲精品久久久蜜桃借种 | 91黄色在线看 | 91香蕉视频好色先生 | 欧美日韩高清一区二区 国产亚洲免费看 | 日韩视频免费在线观看 | 免费色视频在线 | 久草网站| 国产特黄色片 | av福利超碰网站 | 美女网站在线观看 | 狠狠色伊人亚洲综合网站色 | 欧美精品生活片 | 欧洲亚洲激情 | 狠狠狠操 | 久久国产欧美日韩精品 | 在线综合 亚洲 欧美在线视频 | 亚洲少妇激情 | 99riav1国产精品视频 | 最近中文字幕在线播放 | 91传媒在线播放 | 可以免费看av| 国产成人黄色 | 中文字幕精品一区二区三区电影 | 国产成视频在线观看 | 五月婷香 | 黄色小网站在线 | 久久久国产毛片 | 国产福利精品在线观看 | 日韩欧美高清免费 | 91最新中文字幕 | 成年人免费在线观看网站 | 午夜精品福利影院 | 91日本在线播放 | 国产.精品.日韩.另类.中文.在线.播放 | 免费在线观看国产黄 | 国产一级黄色av | 国产91精品看黄网站 | 国产一区二区三区高清播放 | 国产精品av免费在线观看 | 亚洲视频免费在线观看 | 天天综合网 天天 | 九九久久在线看 | 一本大道久久精品懂色aⅴ 五月婷社区 | 91在线日本 | 视频 天天草 | 久久久久亚洲精品男人的天堂 | 国产精品区一区 | 亚洲性xxxx | 国产成人免费观看 | 国模精品一区二区三区 | 亚洲欧美日韩一二三区 | 毛片美女网站 | 欧美成人免费在线 | 黄色成人91 | 在线免费日韩 | 日韩三区在线观看 | 黄色国产精品 | 国产伦理一区二区三区 | 亚洲国产97在线精品一区 | 久久久久国产精品免费 | 国产精品自产拍在线观看桃花 | 亚洲精品美女久久 | 久久午夜电影院 | 在线观看成人毛片 | 国产精品午夜av | 超碰在线个人 | 激情视频免费在线 | 27xxoo无遮挡动态视频 | 亚洲a网 | 国产一级免费在线观看 | 成人免费视频免费观看 | 在线观看亚洲精品 | 国产毛片久久久 | 国产一区 在线播放 | 狠狠五月婷婷 | 国产区精品在线 | 日本久久久久久科技有限公司 | 久久草av | 久久久一本精品99久久精品 | 韩国精品视频在线观看 | 日韩中文字幕一区 | 国产91精品久久久久久 | 国产一区二区在线播放视频 | 91av综合 | 99久久精品免费看国产免费软件 | 一区二区三区在线观看免费 | 成人精品视频久久久久 | 久久久视频在线 | 日韩精品在线免费观看 | 国产一二区免费视频 | 视频一区二区三区视频 | 欧美ⅹxxxxxx | 久久久久免费观看 | av在线电影播放 | 成人免费看片98欧美 | 美女天天操 | 国产精品地址 | 久要激情网 | 麻豆精品91| 国产精品一区专区欧美日韩 | 日本精品va在线观看 | 在线观看免费观看在线91 | 国产精品99在线播放 | 免费久久99精品国产 | 国内精品免费久久影院 | 一二三四精品 | 免费成人短视频 | 国产精品久久久久久久免费大片 | 亚洲精品玖玖玖av在线看 | 美女视频网 | 亚洲欧美乱综合图片区小说区 | 粉嫩av一区二区三区四区五区 | 亚洲麻豆精品 | 天天插天天干 | 91精品系列| 天天干,天天干 | 久久免费99精品久久久久久 | 成人久久视频 | 国产不卡视频在线播放 | 色综合久久综合中文综合网 | 久草在线一免费新视频 | 亚洲一区二区观看 | 国产成人三级一区二区在线观看一 | 亚洲国产精品激情在线观看 | 91色在线观看视频 | 欧美亚洲国产日韩 | 久久国产一二区 | 国产免费av一区二区三区 | 在线一区观看 | 丰满少妇对白在线偷拍 | 国产露脸91国语对白 | 亚洲国产精品va在线看黑人 | 天堂在线一区二区 | aaa日本高清在线播放免费观看 | www.国产在线视频 | 免费成人看片 | 亚洲国产免费看 | 国产日产精品一区二区三区四区 | 不卡国产在线 | 久久久久亚洲精品国产 | 麻豆免费视频网站 | 日韩欧美在线视频一区二区 | 国外成人在线视频网站 | av品善网 | 射久久| 国产高清精品在线观看 | 97偷拍在线视频 | 国产一区网址 | 欧美日韩免费观看一区=区三区 | 99久久精品无免国产免费 | 中文字幕在线专区 | 午夜国产在线观看 | 人人揉人人揉人人揉人人揉97 | 在线观看日韩一区 | 成人一级电影在线观看 | 亚洲在线资源 | 日日夜夜噜噜噜 | 日韩中文久久 | 热久久最新地址 | 免费视频 你懂的 | 国产一区二区不卡视频 | 五月综合网站 | 国产精品欧美久久 | 九色精品免费永久在线 | 五月精品 | 四虎影视精品永久在线观看 | 亚洲综合色婷婷 | 五月激情av | 久久a热6 | 高清一区二区三区av | 人人草人人草 | 不卡精品 | 又黄又刺激的视频 | 日韩欧美国产激情在线播放 | 九九热有精品 | 国产精品免费不卡 | www.狠狠插.com | aa级黄色大片 | 精品国产乱码久久久久久1区2匹 | 欧美日韩中文字幕在线视频 | 免费黄色网址大全 | 99国内精品久久久久久久 | 久久国产精品99久久人人澡 | 亚洲热视频 | www.五月婷婷.com | 色综合天天在线 | 午夜视频导航 | 国产精品美女久久久久久2018 | 成人久久国产 | 亚洲专区一二三 | 欧美色图视频一区 | 97精品欧美91久久久久久 | 91麻豆精品国产自产在线游戏 | 国产精品都在这里 | 一区二区三区高清在线观看 | 四虎成人精品永久免费av | 成人av在线电影 | 国产一区二区三区免费观看视频 | 激情欧美一区二区三区免费看 | 亚洲激情一区二区三区 | 亚洲一区二区三区毛片 | 日韩欧美一区二区在线播放 | 国产精品久久久久久久久久久杏吧 | 日日麻批40分钟视频免费观看 | 国产日韩精品在线 | 国产亚洲欧洲 | 尤物97国产精品久久精品国产 | 久久久国产99久久国产一 | 色中射| 玖玖在线视频观看 | 欧美另类一二三四区 | 欧美十八 | 日本特黄一级片 | 日日婷婷夜日日天干 | 黄色三级视频片 | 亚洲色图 校园春色 | 免费看av片网站 | 国产美女精品视频 | 亚洲情婷婷 | 激情伊人五月天久久综合 | 欧美成人黄色 | 久久免费精品一区二区三区 | 久久老司机精品视频 | 欧美成人一二区 | 9在线观看免费高清完整版在线观看明 | av大片免费| 深爱激情五月综合 | 最近2019中文免费高清视频观看www99 | 免费网址在线播放 | 国产精品手机在线 | 91久久久国产精品 | 日韩成人免费在线 | 亚洲日本va午夜在线电影 | 园产精品久久久久久久7电影 | 国产字幕av| 日韩av偷拍 | 成年人免费电影在线观看 | 国产一区私人高清影院 | 99热99热 | www.99热精品 | 天天操天天操天天操天天操天天操 | 伊色综合久久之综合久久 | 国产免费一区二区三区网站免费 | 免费观看视频黄 | 国产精品久久艹 | 99久久99视频只有精品 | 国产伦精品一区二区三区四区视频 | 久久久91精品国产一区二区精品 | 在线免费高清一区二区三区 | 国产精品一区二区三区免费看 | 69av在线播放 | 国产成人av福利 | 久久久久久久久毛片 | 国产精品第十页 | 成人国产精品一区 | 亚洲一区免费在线 | 成人一区在线观看 | 国产码电影 | 亚州中文av| 国产精品青草综合久久久久99 | 五月天中文字幕 | 伊人天天色 | 国产99久久久国产精品免费看 | 欧美大片在线观看一区 | 久久国产网 | 欧美另类高清 | 国产日产欧美在线观看 | 91精品久久久久久 | 亚洲永久精品在线 | 亚洲一区二区三区毛片 | 国产精品美女 | 亚洲国产理论片 | 国产成人精品999在线观看 | 蜜臀久久99精品久久久无需会员 | 免费看黄网站在线 | 久久久精品 一区二区三区 国产99视频在线观看 | 久久夜夜爽 | 天天操天天干天天摸 | 精油按摩av| 在线观看免费av网站 | 国产在线观看你懂得 | 热久久国产精品 | 看片黄网站 | 一区三区视频在线观看 | 五月婷婷综合激情网 | 九九亚洲视频 | 最近中文字幕在线播放 | 亚洲激情免费 | 婷婷国产视频 | 国产成人一区二区在线观看 | 成人免费看片网址 | 欧美激情视频在线观看免费 | 麻豆精品视频 | 一区三区视频在线观看 | 国产综合在线观看视频 | 日韩精品高清视频 | 亚洲国产经典视频 | 成人一级影视 | 欧美日韩久久不卡 | 人人干天天射 | 国产精品高清在线 | 最近中文字幕久久 | 中文字幕免费高清av | 9色在线视频 | 久久精品欧美一区 | 成人免费在线播放 | 在线国产一区 | 日韩有码在线观看视频 | 亚洲成人黄 | 午夜免费电影院 | 五月天综合在线 | 亚洲欧洲av在线 | 国产精品久久精品国产 | 伊色综合久久之综合久久 | 精品一区二区免费视频 | 久久久久免费精品视频 | 最近中文字幕国语免费av | 中文字幕欧美三区 |