www.pudn.com > DVR-MPEG4±àÂë²¥·ÅÆ÷ .rar > SystemSetup.cpp


// SystemSetup.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "Mp4Player.h" 
#include "SystemSetup.h" 
#include "Decode.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CSystemSetup dialog 
 
 
CSystemSetup::CSystemSetup(CWnd* pParent /*=NULL*/) 
	: CDialog(CSystemSetup::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CSystemSetup) 
	m_Size =0; 
	m_ImageQuality = 2; 
	m_FrameRate =0; 
	m_VideoMode = 1; 
	//}}AFX_DATA_INIT 
} 
 
 
void CSystemSetup::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CSystemSetup) 
	DDX_Radio(pDX, IDC_D1, m_Size); 
	DDX_Radio(pDX, IDC_IMAGEQUALITY, m_ImageQuality); 
	DDX_Radio(pDX, IDC_FRAMERATE, m_FrameRate); 
	DDX_Radio(pDX, IDC_VIDEOMODE, m_VideoMode); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CSystemSetup, CDialog) 
	//{{AFX_MSG_MAP(CSystemSetup) 
	ON_BN_CLICKED(IDC_UPDATE, OnUpdate) 
	ON_BN_CLICKED(IDC_SETUP_SetClock, OnSETUPSetClock) 
	ON_BN_CLICKED(IDC_UPDATENET, OnUpdatenet) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CSystemSetup message handlers 
 
#define  Image_Standard    0 
#define  Image_Better      1 
#define  Image_Best        2 
 
#define  Frame_Rate_10     8 
#define  Frame_Rate_15     12 
#define  Frame_Rate_30     25 
#define  Frame_Rate_5      5 
 
#define  Ntsc              1 
#define  Pal               0 
 
void CSystemSetup::OnUpdate()  
{ 
	// TODO: Add your control notification handler code here 
	CMp4PlayerApp *play = (CMp4PlayerApp *)::AfxGetApp(); 
	 
	VRTSETUP1 DVR_Setup1; 
	 
	memset(&DVR_Setup1,0,sizeof(VRTSETUP1)); 
    UpdateData(true); 
 
	if(m_Size) 
	{ 
		DVR_Setup1.DayLightSaving=1; 
	} 
	else 
		DVR_Setup1.DayLightSaving=0; 
 
	if(m_FrameRate==0) 
	{ 
		DVR_Setup1.FrameRate=Frame_Rate_30; 
	} 
	else 
		if(m_FrameRate==1) 
		{ 
			DVR_Setup1.FrameRate=Frame_Rate_10; 
		} 
		else 
			if(m_FrameRate==2) 
          	{ 
				DVR_Setup1.FrameRate=Frame_Rate_15; 
			} 
			else 
			{ 
				DVR_Setup1.FrameRate=Frame_Rate_5; 
			} 
 
	if(m_ImageQuality==0) 
	{ 
		DVR_Setup1.ImageQuality=Image_Standard; 
	} 
	else 
		if(m_ImageQuality==1) 
		{ 
			DVR_Setup1.ImageQuality=Image_Better; 
		} 
		else 
        if(m_ImageQuality==2) 
		{ 
			DVR_Setup1.ImageQuality=Image_Best; 
		} 
		 
	if(m_VideoMode) 
	{ 
		DVR_Setup1.VideoMode=Pal; 
	} 
	else 
		DVR_Setup1.VideoMode=Ntsc; 
	 
	char cmd[1]; 
	char ip[64]; 
	int  port=0; 
	play->GetConnectIPAddress(ip,&port);  
//	InitVRTLink("192.168.0.20",2003); 
	InitVRTLink(ip,port); 
	cmd[0]=VRTSetup1; 
	SendVRTData(cmd,1); 
	Sleep(2); 
	SendVRTData((char *)&DVR_Setup1,sizeof(VRTSETUP1)); 
	CloseVRTLink(); 
 
    if(m_playsize!=m_Size) 
	{ 
		RECT rc; 
		HWND hWnd =::GetDlgItem(::AfxGetMainWnd()->m_hWnd,IDC_WIN); 
		::GetClientRect(hWnd,&rc);  
		StopPlay(); 
		InitPlay(); 
		IfDeInterlace(TRUE); 
		SetUDP(ip,0); 
		StartPlay(NULL,IFNETPS, hWnd,rc); 
		 
	} 
	else 
	{ 
	 
	    ResetPlay(); 
		PauseOrPlay(); 
 
		m_playsize=m_Size; 
	} 
 
	 
} 
 
void CSystemSetup::OnSETUPSetClock()  
{ 
	// TODO: Add your control notification handler code here 
	UpdateData(true); 
	_DATE DVR_Time; 
	 
	CString m_Houre; 
	CString m_Min; 
	CString m_Sec; 
    CString m_Day; 
	CString m_Month; 
	CString m_Year; 
 
    UpdateData(true); 
	GetDlgItemText(IDC_TIME_HH,m_Houre); 
	GetDlgItemText(IDC_TIME_MIN,m_Min); 
	GetDlgItemText(IDC_TIME_SS,m_Sec); 
	 
	GetDlgItemText(IDC_DATE_DD,m_Day); 
	GetDlgItemText(IDC_DATE_MM,m_Month); 
	GetDlgItemText(IDC_DATE_YYYY,m_Year); 
     
	DVR_Time.m_hour=atoi((const char*)m_Houre); 
    DVR_Time.m_min=atoi((const char*)m_Min); 
	DVR_Time.m_sec=atoi((const char*)m_Sec); 
 
	DVR_Time.m_day=atoi((const char*)m_Day); 
	DVR_Time.m_month=atoi((const char*)m_Month); 
	DVR_Time.m_year=atoi((const char*)m_Year); 
    
	char ip[64]; 
	int  port=0; 
	CMp4PlayerApp *play = (CMp4PlayerApp *)::AfxGetApp(); 
	play->GetConnectIPAddress(ip,&port);  
	 
	char cmd[1]; 
	InitVRTLink(ip,port); 
	//InitVRTLink("192.168.0.20",2003); 
	cmd[0]=VRTSetSystemTime; 
	SendVRTData(cmd,1); 
	Sleep(1); 
	SendVRTData((char *)&DVR_Time,sizeof(_DATE)); 
	CloseVRTLink(); 
} 
 
void CSystemSetup::OnUpdatenet()  
{ 
	// TODO: Add your control notification handler code here 
	CString ipaddr; 
	CString gateway; 
	CString submask; 
    VRTNET DVR_Net_State; 
    GetDlgItemText(IDC_DVR_IPADDR,ipaddr); 
	GetDlgItemText(IDC_DVR_GateWay,gateway); 
	GetDlgItemText(IDC_DVR_SUBMASK,submask); 
    
	strcpy(DVR_Net_State.IpAddr,ipaddr); 
	strcpy(DVR_Net_State.GateWay,gateway); 
	strcpy(DVR_Net_State.SMask,submask); 
    
	char ip[64]; 
	int  port=0; 
	CMp4PlayerApp *play = (CMp4PlayerApp *)::AfxGetApp(); 
	play->GetConnectIPAddress(ip,&port);  
		 
	char cmd[1]; 
	InitVRTLink(ip,port); 
	//InitVRTLink("192.168.0.20",2003); 
	cmd[0]=VRTSetIp; 
	SendVRTData(cmd,1); 
	Sleep(1); 
	SendVRTData((char *)&DVR_Net_State,sizeof(VRTNET)); 
	CloseVRTLink(); 
} 
 
BOOL CSystemSetup::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	 
	VRTNET DVR_Net_State; 
     
	char ip[64]; 
	int  port=0; 
	CMp4PlayerApp *play = (CMp4PlayerApp *)::AfxGetApp(); 
	play->GetConnectIPAddress(ip,&port);  
	 
	char cmd[1]; 
	InitVRTLink(ip,port); 
	cmd[0]=VRTGetIp; 
	SendVRTData(cmd,1); 
	RecvVRTData((char *)&DVR_Net_State,sizeof(VRTNET)); 
	CloseVRTLink(); 
 
    SetDlgItemText(IDC_DVR_IPADDR,DVR_Net_State.IpAddr); 
	SetDlgItemText(IDC_DVR_SUBMASK,DVR_Net_State.SMask); 
	SetDlgItemText(IDC_DVR_GateWay,DVR_Net_State.GateWay); 
	 
		//get dvr system time 
	_DATE DVR_Time; 
	char buffer[20]; 
	char daybuf[20]; 
	char minbuf[20]; 
 
	memset((_DATE*)&DVR_Time,0,sizeof(_DATE)); 
     
	InitVRTLink(ip,port); 
	cmd[0]=VRTGetSystemTime; 
	SendVRTData(cmd,1); 
	RecvVRTData((char *)&DVR_Time,sizeof(_DATE)); 
	CloseVRTLink(); 
   
	sprintf(buffer,"%02d",DVR_Time.m_day); 
    SetDlgItemText(IDC_DATE_DD,buffer); 
	strcpy(daybuf,buffer); 
     
	sprintf(buffer,"%02d",DVR_Time.m_month); 
    SetDlgItemText(IDC_DATE_MM,buffer); 
    strcat(daybuf,"/"); 
	strcat(daybuf,buffer); 
     
	sprintf(buffer,"%02d",DVR_Time.m_year); 
    SetDlgItemText(IDC_DATE_YYYY,buffer); 
    strcat(daybuf,"/"); 
	strcat(daybuf,buffer); 
     
    //SetDlgItemText(IDC_DVR_Date,daybuf); 
 
     
    sprintf(buffer,"%02d",DVR_Time.m_hour); 
	SetDlgItemText(IDC_TIME_HH,buffer); 
    strcpy(minbuf,buffer); 
     
	sprintf(buffer,"%02d",DVR_Time.m_min); 
    SetDlgItemText(IDC_TIME_MIN,buffer); 
	strcat(minbuf,":"); 
	strcat(minbuf,buffer); 
    sprintf(buffer,"%02d",DVR_Time.m_sec); 
    SetDlgItemText(IDC_TIME_SS,buffer); 
     
    strcat(minbuf,":"); 
	strcat(minbuf,buffer); 
   // SetDlgItemText(IDC_DVR_Time,minbuf); 
 
	SetSetup1();	 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
void CSystemSetup::SetSetup1() 
{ 
	VRTSETUP1 DVR_Setup1; 
	int DayLightSaving_t; 
	int FrameRate_t; 
	int ImageQuality_t; 
	int VideoMode_t; 
 
	char ip[64]; 
	int  port=0; 
	CMp4PlayerApp *play = (CMp4PlayerApp *)::AfxGetApp(); 
	play->GetConnectIPAddress(ip,&port);  
		 
	char cmd[1]; 
	InitVRTLink(ip,port); 
	cmd[0]=VRTGetSetup1; 
	SendVRTData(cmd,1); 
	Sleep(1); 
	RecvVRTData((char *)&DVR_Setup1,sizeof(VRTSETUP1)); 
	CloseVRTLink(); 
	 
	DayLightSaving_t=DVR_Setup1.DayLightSaving; 
	m_playsize=DayLightSaving_t; 
	FrameRate_t=DVR_Setup1.FrameRate; 
	ImageQuality_t=DVR_Setup1.ImageQuality; 
	VideoMode_t=DVR_Setup1.VideoMode; 
	 
	if(DayLightSaving_t) 
	{ 
		m_Size=1; 
	} 
	else 
		m_Size=0; 
	 
	 
	switch(FrameRate_t){ 
	case 8: 
		m_FrameRate=1; 
		break; 
	case 12: 
		m_FrameRate=2; 
		break; 
	case 25: 
		m_FrameRate=0; 
		break; 
	case 5: 
		m_FrameRate=3; 
		break; 
	default: 
		m_FrameRate=0; 
	} 
	 
	switch(ImageQuality_t) 
	{ 
	case 0: 
		m_ImageQuality=0; 
		break; 
	case 1: 
		m_ImageQuality=1; 
		break; 
	case 2: 
		m_ImageQuality=2; 
		break; 
 
	default: 
		m_ImageQuality=2; 
	} 
 
	if(VideoMode_t) 
	{ 
		m_VideoMode=0; 
	} 
	else 
		m_VideoMode=1; 
 
	UpdateData(false); 
}