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

📄 runtimemsgpannel.cpp

📁 它是一个可以实时交互的嵌入式软件系统
💻 CPP
字号:
// RuntimeMsgPannel.cpp : implementation file
//

#include "stdafx.h"
#include "netsdkdemo.h"
#include "RuntimeMsgPannel.h"
#include "NetSDKDemoDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CRuntimeMsgPannel dialog


CRuntimeMsgPannel::CRuntimeMsgPannel(CWnd* pParent /*=NULL*/)
	: CDialog(CRuntimeMsgPannel::IDD, pParent)
{
	//{{AFX_DATA_INIT(CRuntimeMsgPannel)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CRuntimeMsgPannel::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRuntimeMsgPannel)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CRuntimeMsgPannel, CDialog)
	//{{AFX_MSG_MAP(CRuntimeMsgPannel)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRuntimeMsgPannel message handlers

BOOL CRuntimeMsgPannel::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	g_SetWndStaticText(this);

	SetTimer(0,1000,0); //用于刷新码流统计
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CRuntimeMsgPannel::ShowLastError()
{
	DWORD dwError = CLIENT_GetLastError();
	switch(dwError)
	{
	case NET_NOERROR:					GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_NOERROR);
		break;
	case NET_ERROR:						GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_ERROR);
		break;
	case NET_SYSTEM_ERROR:				GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_SYSTEM_ERROR);
		break;
	case NET_NETWORK_ERROR:				GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_NETWORK_ERROR);
		break;
	case NET_DEV_VER_NOMATCH:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_DEV_VER_NOMATCH);
		break;
	case NET_INVALID_HANDLE:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_INVALID_HANDLE);
		break;
	case NET_OPEN_CHANNEL_ERROR:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_OPEN_CHANNEL_ERROR);
		break;
	case NET_CLOSE_CHANNEL_ERROR:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_CLOSE_CHANNEL_ERROR);
		break;
	case NET_ILLEGAL_PARAM:				GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_ILLEGAL_PARAM);
		break;
	case NET_SDK_INIT_ERROR:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_SDK_INIT_ERROR);
		break;
	case NET_SDK_UNINIT_ERROR:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_SDK_UNINIT_ERROR);
		break;
	case NET_RENDER_OPEN_ERROR:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_RENDER_OPEN_ERROR);
		break;
	case NET_DEC_OPEN_ERROR:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_DEC_OPEN_ERROR);
		break;
	case NET_DEC_CLOSE_ERROR:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_DEC_CLOSE_ERROR);
		break;
	case NET_MULTIPLAY_NOCHANNEL:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_MULTIPLAY_NOCHANNEL);
		break;
	case NET_TALK_INIT_ERROR:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_TALK_INIT_ERROR);
		break;
	case NET_TALK_NOT_INIT:				GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_TALK_NOT_INIT);
		break;	
	case NET_TALK_SENDDATA_ERROR:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_TALK_SENDDATA_ERROR);
		break;
	case NET_NO_TALK_CHANNEL:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_NO_TALK_CHANNEL);
		break;
	case NET_NO_AUDIO:					GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_NO_AUDIO);
		break;								
	case NET_REAL_ALREADY_SAVING:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_REAL_ALREADY_SAVING);
		break;
	case NET_NOT_SAVING:				GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_NOT_SAVING);
		break;
	case NET_OPEN_FILE_ERROR:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_OPEN_FILE_ERROR);
		break;
	case NET_PTZ_SET_TIMER_ERROR:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_PTZ_SET_TIMER_ERROR);
		break;
	case NET_RETURN_DATA_ERROR:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_RETURN_DATA_ERROR);
		break;
	case NET_INSUFFICIENT_BUFFER:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_INSUFFICIENT_BUFFER);
		break;
	case NET_NOT_SUPPORTED:				GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_NOT_SUPPORTED);
		break;
	case NET_NO_RECORD_FOUND:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_NO_RECORD_FOUND);
		break;	
	case NET_LOGIN_ERROR_PASSWORD:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_LOGIN_ERROR_PASSWORD);
		break;
	case NET_LOGIN_ERROR_USER:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_LOGIN_ERROR_USER);
		break;
	case NET_LOGIN_ERROR_TIMEOUT:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_LOGIN_ERROR_TIMEOUT);
		break;
	case NET_LOGIN_ERROR_RELOGGIN:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_LOGIN_ERROR_RELOGGIN);
		break;
	case NET_LOGIN_ERROR_LOCKED:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_LOGIN_ERROR_LOCKED);
		break;
	case NET_LOGIN_ERROR_BLACKLIST:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_LOGIN_ERROR_BLACKLIST);
		break;
	case NET_LOGIN_ERROR_BUSY:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_LOGIN_ERROR_BUSY);
		break;
	case NET_LOGIN_ERROR_CONNECT:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_LOGIN_ERROR_CONNECT);
		break;
	case NET_LOGIN_ERROR_NETWORK:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_LOGIN_ERROR_NETWORK);
		break;								
	case NET_RENDER_SOUND_ON_ERROR:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_RENDER_SOUND_ON_ERROR);
		break;
	case NET_RENDER_SOUND_OFF_ERROR:	GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_RENDER_SOUND_OFF_ERROR);
		break;
	case NET_RENDER_SET_VOLUME_ERROR:	GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_RENDER_SET_VOLUME_ERROR);
		break;
	case NET_RENDER_ADJUST_ERROR:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_RENDER_ADJUST_ERROR);
		break;
	case NET_RENDER_PAUSE_ERROR:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_RENDER_PAUSE_ERROR);
		break;
	case NET_RENDER_SNAP_ERROR:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_RENDER_SNAP_ERROR);
		break;
	case NET_RENDER_STEP_ERROR:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_RENDER_STEP_ERROR);
		break;
	case NET_RENDER_FRAMERATE_ERROR:	GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_RENDER_FRAMERATE_ERROR);
		break;
	case NET_CONFIG_DEVBUSY:			GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_CONFIG_DEVBUSY);
		break;
	case NET_CONFIG_DATAILLEGAL:		GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_CONFIG_DATAILLEGAL);
		break;							
	case NET_NO_INIT:					GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_NO_INIT);
		break;
	case NET_DOWNLOAD_END:				GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_DOWNLOAD_END);
		break;
	default:							GetDlgItem(IDC_LAST_ERROR)->SetWindowText(ERROR_NET_ERROR);						
	}
}

void CRuntimeMsgPannel::OnTimer(UINT nIDEvent) 
{
	DeviceNode *pDev = 0;
//	EnterCriticalSection(&g_cs);
	CNetSDKDemoDlg *pMain = (CNetSDKDemoDlg *)AfxGetMainWnd();
	
	int curScreen = pMain->GetCurScreen();
	
	SplitInfoNode siNode;
	memset(&siNode, 0, sizeof(siNode));
	BOOL ret = pMain->GetSplitInfo_Main(curScreen, &siNode);
	if (!ret)
	{
		MessageBox("error while getting split info");
	}
	
	switch(siNode.Type) 
	{
	case SPLIT_TYPE_NULL:
		return;
		break;
	case SPLIT_TYPE_MONITOR:
		{
			SplitMonitorParam *mtParam = (SplitMonitorParam *)siNode.Param;
			pDev = mtParam->pDevice;
			break;
		}
	case SPLIT_TYPE_MULTIPLAY:
		{
			pDev = (DeviceNode *)siNode.Param;
			break;
		}
	case SPLIT_TYPE_CYCLEMONITOR:
		{
			SplitCycleParam *cmParam = (SplitCycleParam *)siNode.Param;
			pDev = cmParam->pDevice;
			break;
		}
	case SPLIT_TYPE_NETPLAY:
		{
			SplitNetPlayParam *npParam = (SplitNetPlayParam *)siNode.Param;
			pDev = npParam->pFileInfo->pDevice;
			break;
		}
	case SPLIT_TYPE_PBBYTIME:
		{
			SplitPBByTimeParam *pbParam = (SplitPBByTimeParam *)siNode.Param;
			pDev = pbParam->pDevice;
			break;
		}
	default:
		return;
		break;
	}
	
	if (pDev)
	{
		int nTotalKbps = CLIENT_GetStatiscFlux(pDev->LoginID, 0);
		if (nTotalKbps < 0) 
		{
			nTotalKbps = 0;
		//	pMain->LastError();
		}
		
		int nChannelKbps = CLIENT_GetStatiscFlux(pDev->LoginID, siNode.iHandle);
		if (nChannelKbps < 0) 
		{
			nChannelKbps = 0;
		//	pMain->LastError();
		}
		
		CString str, str2;
		str.Format(" %d (Kbps)\n", nChannelKbps * 8 /1024);
		str = NAME_RUNTIME_CHANNEL + str;
		str2.Format(" %d (Kbps)", nTotalKbps * 8 /1024);
		str2 = NAME_RUNTIME_TOTAL + str2;
		str += str2;
		GetDlgItem(IDC_FLUX_STATISC)->SetWindowText(str);
	}

//	LeaveCriticalSection(&g_cs);

//	CDialog::OnTimer(nIDEvent);

}

void CRuntimeMsgPannel::EnableShowFlux(BOOL bShow)
{
	if (bShow)
	{
		SetTimer(0, 1000, 0);
	}
	else
	{
		KillTimer(0);
	}
}

BOOL CRuntimeMsgPannel::PreTranslateMessage(MSG* pMsg) 
{
	if (WM_KEYDOWN == pMsg->message && 
		(VK_ESCAPE == pMsg->wParam || VK_RETURN == pMsg->wParam))
	{
		return TRUE;
	}
	
	return CDialog::PreTranslateMessage(pMsg);
}

⌨️ 快捷键说明

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