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

📄 settingsdlg.cpp

📁 采集卡demo
💻 CPP
字号:
// SettingsDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Demo.h"
#include "SettingsDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSettingsDlg dialog

extern HANDLE ChannelHandle[MAX_CHANNELS];

CSettingsDlg::CSettingsDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSettingsDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSettingsDlg)
	m_Quant = 18;
	m_FileSize = 100;
	m_StreamType = 2;
	m_FrameMode = 3;
	m_IFramesIntervals = 100;
	m_iQuant = 15;
	m_pQuant = 15;
	m_bQuant = 20;
	m_OsdEnable = TRUE;
	m_logoEnable = TRUE;
	m_FrameRate = 25;
	m_MotionDetect = FALSE;
	m_motionDetectPrec = 2;
	m_Max_bps = 4000000;
	m_CBR = FALSE;
	m_bWriteToDisk = FALSE;
	m_iStreamReadMode = 0;
	m_bTestData = FALSE;
	m_iEncodeType = 0;
	m_bMask = FALSE;
	m_iX = 8;
	m_iY = 2;
	m_iSubEncodeType = 2;
	//}}AFX_DATA_INIT
}


void CSettingsDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSettingsDlg)
	DDX_Control(pDX, IDC_SER_LIST, m_BoardList);
	DDX_Text(pDX, IDC_FILE_SIZE, m_FileSize);
	DDX_Radio(pDX, IDC_VIDEO, m_StreamType);
	DDX_Text(pDX, IDC_IFRAME_INTERVALS, m_IFramesIntervals);
	DDX_Text(pDX, IDC_IQUANT, m_iQuant);
	DDV_MinMaxInt(pDX, m_iQuant, 4, 30);
	DDX_Text(pDX, IDC_PQUANT, m_pQuant);
	DDV_MinMaxInt(pDX, m_pQuant, 4, 30);
	DDX_Text(pDX, IDC_BQUANT, m_bQuant);
	DDV_MinMaxInt(pDX, m_bQuant, 4, 30);
	DDX_Check(pDX, IDC_OSD_ENABLE, m_OsdEnable);
	DDX_Check(pDX, IDC_LOGO, m_logoEnable);
	DDX_Text(pDX, IDC_FRAME_RATE, m_FrameRate);
	DDV_MinMaxInt(pDX, m_FrameRate, 1, 30);
	DDX_Check(pDX, IDC_MOTION_DETECT, m_MotionDetect);
	DDX_Text(pDX, IDC_MD_PRECISION, m_motionDetectPrec);
	DDV_MinMaxInt(pDX, m_motionDetectPrec, 0, 6);
	DDX_Text(pDX, IDC_MAX_BPS, m_Max_bps);
	DDV_MinMaxUInt(pDX, m_Max_bps, 0, 5000000);
	DDX_Check(pDX, IDC_CHECK1, m_CBR);
	DDX_Radio(pDX, IDC_RADIO12, m_iEncodeType);
	DDX_Check(pDX, IDC_CHECK3, m_bMask);
	DDX_Text(pDX, IDC_EDIT6, m_iX);
	DDX_Text(pDX, IDC_EDIT7, m_iY);
	DDX_Radio(pDX, IDC_RADIO2, m_iSubEncodeType);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSettingsDlg, CDialog)
	//{{AFX_MSG_MAP(CSettingsDlg)
	ON_BN_CLICKED(IDC_BITRATE_CTRL, OnBitrateCtrl)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSettingsDlg message handlers

void CSettingsDlg::OnOK() 
{
	// TODO: Add extra validation here

	UpdateData(TRUE);
	
	CDialog::OnOK();
}

BOOL CSettingsDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here

	ULONG boardType;
	UCHAR serialNo[20];
	char strSerialNo[20];
	CString serlist;
	CString serList2;


	for(int i = 0; i < GetTotalDSPs(); i++){
		if(GetBoardInfo(ChannelHandle[i], &boardType, serialNo))
			AfxMessageBox("read board info error\n");
		// convert to string
		for( int j = 0; j < 12; j ++)
			strSerialNo[j] = serialNo[j] + 0x30;
		// append null to the string
		strSerialNo[j] = NULL;

		TRACE("serailNo = %s\n", strSerialNo);
		
		serlist.Format("serialNo = %s\r\n" , strSerialNo);

		//GetDlgItem(IDC_SER_LIST)->SetWindowText(LPCTSTR(serlist));

		int len = m_BoardList.GetWindowTextLength();

		m_BoardList.SetSel(len, len);
		m_BoardList.ReplaceSel(serlist);
	}

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


void CSettingsDlg::OnBitrateCtrl() 
{
	// TODO: Add your control notification handler code here
	if(((CButton *)GetDlgItem(IDC_BITRATE_CTRL))->GetState() & 1)
		GetDlgItem(IDC_MAX_BPS)->EnableWindow(TRUE);
	else
		GetDlgItem(IDC_MAX_BPS)->EnableWindow(FALSE);
	
}

⌨️ 快捷键说明

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