📄 recorddlg.cpp
字号:
switch (ChannelState[i].ConState )
{
case SHENGKONG: StateTrk="声控"; break;
case YAKONG: StateTrk="压控"; break;
case MAKONG: StateTrk="码控"; break;
}
m_ChannelList.GetItemText ( num, 2, TempStr, 29 );
if (StateTrk!=TempStr)
m_ChannelList.SetItemText (num,2,StateTrk.GetBuffer (30));
if (ChannelState[i].ConState==MAKONG)
{
m_ChannelList.GetItemText ( num, 3, TempStr, 29 );
if (TempStr!="*")
m_ChannelList.SetItemText (num,3,"*");
}
else
m_ChannelList.SetItemText (num,3,"");
switch (ChannelState[i].ListenState )
{
case NoListen: StateTrk=""; break;
case Listen: StateTrk="监听"; break;
}
m_ChannelList.GetItemText ( num, 4, TempStr, 29 );
if (StateTrk!=TempStr)
m_ChannelList.SetItemText (num,4,StateTrk.GetBuffer (30));
if(SsmGetDtmfStr(i,cNewStat) == -1) wsprintf(cNewStat,"-1");
if(SsmGetDtmfStr(i,cNewStat) >0)
{
m_ChannelList.GetItemText( num, 5, cOldStat, 29 );
if ( strcmp(cNewStat,cOldStat) != 0 )
m_ChannelList.SetItemText(num, 5, cNewStat );
}
nResult = SsmGetCallerId(i,NewCallerId);
if (nResult==-1) wsprintf(NewCallerId,"-1");
else if(nResult == 0) wsprintf(NewCallerId,"");
m_ChannelList.SetItemText (num,6,NewCallerId);
m_ChannelList.GetItemText (num,7,TempStr,29);
if (ChannelState[i].pErrMsg !=TempStr)
m_ChannelList.SetItemText (num,7,ChannelState[i].pErrMsg );
num++;
}
}
}
void CRecordDlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
SsmCloseCti();
}
void CRecordDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnTimer(nIDEvent);
ScanChannelState();
UpdateChannelState();
}
void CRecordDlg::OnBUTTONSetListen()
{
// TODO: Add your control notification handler code here
int Cur_Line ;
Cur_Line=m_CurLine.GetCurSel();
if (ListenChannel!=Cur_Line)
{
ChannelState[Cur_Line].ListenState =Listen;
if (ListenChannel<MaxLine)
{
ChannelState[ListenChannel].ListenState =NoListen;
}
ListenChannel=Cur_Line;
}
UpdateData(FALSE);
}
void CRecordDlg::OnBUTTONUnSetListen()
{
// TODO: Add your control notification handler code here
ChannelState[ListenChannel].ListenState =NoListen;
ListenChannel=MaxLine;
}
void CRecordDlg::OnBUTTONPlay()
{
// TODO: Add your control notification handler code here
char szErrMsg[200];
if (SsmPlayFile(0, "Test.wav", -1, 0, 0xffffffff)==-1)
{
SsmGetLastErrMsg(szErrMsg);
AfxMessageBox(szErrMsg, MB_OK, 0);
}
}
void CRecordDlg::AppErrorHandler(int ch)
{
SsmGetLastErrMsg(ChannelState[ch].pErrMsg.GetBuffer(200));
ChannelState[ch].WorkState = TRK_IDLE;
}
void CRecordDlg::OnBUTTONStopPlay()
{
// TODO: Add your control notification handler code here
char szErrMsg[200];
if ((SsmCheckPlay(0)==0)&&(SsmStopPlayFile(0)==-1)||(SsmCheckPlay(0)==-1))
{
SsmGetLastErrMsg(szErrMsg);
AfxMessageBox(szErrMsg, MB_OK, 0);
}
}
void CRecordDlg::ScanChannelState ()
{
int i;
char temp1[1];
char temp2[1];
for (i=0;i<MaxLine;i++)
if (SsmGetChType(i)==3)
{
switch (ChannelState[i].WorkState )
{
case TRK_IDLE:
{
// if(DetectPickUp(i)== 1 ) //replaced with new function
if(SsmGetChState(i)== 1 )
{
ChannelState[i].WorkState =TRK_PICKUP;
if (ChannelState[i].ConState ==YAKONG)
{
SsmRecToFile(i,"Test.wav",-1,0L,10L*8000L,10,0);
if (ChannelState[i].ListenState == Listen)
PlayListen(0, i);
ChannelState[i].WorkState =TRK_RECORD;
}
}
// if (DetectEmpty(i)==1) //replaced with new function
if (SsmGetChState(i)==8)
{
ChannelState[i].WorkState =TRK_OUTLINE;
}
break;
} /////////////////TRK_IDLE
case TRK_PICKUP:
{
switch (ChannelState[i].ConState )
{
case SHENGKONG:
{
if (SsmDetectBargeIn(i)==1)
{
SsmRecToFile(i,"Test.wav",-1,0L,0xffffffff,10,0);
if (ChannelState[i].ListenState ==Listen)
PlayListen(0, i);
ChannelState[i].WorkState =TRK_RECORD;
}
break;
} ////////////SHENGKONG
case YAKONG:
{
// if(DetectPickUp(i)== 1 ) //replaced with new function
if(SsmGetChState(i)== 1 )
{
SsmRecToFile(i,"Test.wav",-1,0L,10L*8000L,10,0);
if (ChannelState[i].ListenState ==Listen)
PlayListen(0, i);
ChannelState[i].WorkState =TRK_RECORD;
}
break;
}
case MAKONG:
{
SsmGetLastDtmf(i,temp1);
if ((*temp1)=='*')
{
SsmRecToFile(i,"Test.wav",-1,0L,10L*8000L,10,0);
if (ChannelState[i].ListenState ==Listen)
PlayListen(0, i);
ChannelState[i].WorkState =TRK_RECORD;
// ClearDTMFBuf(i);
SsmClearRxDtmfBuf(i);
}
break;
} //////////////MAKONG
} /////////////////SWITCH CONSTATE
// if (DetectEmpty(i)==1) //replaced with new function
if (SsmGetChState(i)==8)
ChannelState[i].WorkState =TRK_OUTLINE;
if (SsmGetChState(i)==0)
ChannelState[i].WorkState =TRK_IDLE;
break;
}/////////////////PICKUP
case TRK_RECORD:
{
switch (ChannelState[i].ConState )
{
case MAKONG:
{
SsmGetLastDtmf(i,temp2);
if ((*temp2)=='*')
{
SsmStopRecToFile(i);
ChannelState[i].WorkState = TRK_PICKUP;
strcpy(temp2,"");
// ClearDTMFBuf(i);
SsmClearRxDtmfBuf(i);
}
break;
} //////////////MAKONG
case SHENGKONG:
{
if (SsmDetectNoSound(i)==1)
{
SsmStopRecToFile(i);
ChannelState[i].WorkState =TRK_PICKUP;
}
break;
} //////////////////SHENGKONG
case YAKONG:
{
// if (DetectPickUp(i)==0) //replaced with new function
if (SsmGetChState(i)==0)
{
SsmStopRecToFile(i);
ChannelState[i].WorkState =TRK_IDLE;
}
break;
} /////////////YAKONG
} /////////switch
// if (DetectEmpty(i)==1) //replaced with new function
if (SsmGetChState(i)==8)
{
SsmStopRecToFile(i);
ChannelState[i].WorkState = TRK_OUTLINE;
}
if (SsmGetChState(i)==0)
{
SsmStopRecToFile(i);
ChannelState[i].WorkState = TRK_IDLE;
}
if (ChannelState[i].ListenState ==Listen)
PlayListen(0, i);
else
StopListen(0);
break;
}
case TRK_OUTLINE:
{
//if (DetectEmpty(i)==0) //replaced with new function
if (SsmGetChState(i)==0)
ChannelState[i].WorkState = TRK_IDLE;
break;
} ////////////TRK_OUTLINE
}
}
}
void CRecordDlg::OnRADIOConState()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
int CurLine;
CurLine=m_CurLine.GetCurSel ();
ChannelState[CurLine].ConState=SHENGKONG;
}
void CRecordDlg::OnRADIOConState1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
int CurLine;
CurLine=m_CurLine.GetCurSel ();
ChannelState[CurLine].ConState=YAKONG;
}
void CRecordDlg::OnRADIOConState2()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
int CurLine;
CurLine=m_CurLine.GetCurSel ();
ChannelState[CurLine].ConState=MAKONG;
}
void CRecordDlg::OnSelchangeCOMBOCurLine()
{
// TODO: Add your control notification handler code here
int CurLine;
CurLine=m_CurLine.GetCurSel ();
switch (ChannelState[CurLine].ConState)
{
case SHENGKONG: m_Constate=0; break;
case YAKONG: m_Constate=1; break;
case MAKONG: m_Constate=2; break;
}
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -