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

📄 recorddlg.cpp

📁 三汇语音卡
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	    
		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 + -