// PageVideoSettings.cpp : implementation file // #include "stdafx.h" #include "mgrnve.h" #include "ConnectionManager.h" #include "PageVideoSettings.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CPageVideoSettings dialog CPageVideoSettings::CPageVideoSettings(CWnd* pParent, CMgrNVE* pMgrCM, CConnectionManager *pConnMgr) : CParamDlg(CPageVideoSettings::IDD, pParent, pMgrCM, pConnMgr) { //{{AFX_DATA_INIT(CPageVideoSettings) m_uContrast = 0; m_uHue = 0; m_uSaturation = 0; m_uBrightness = 0; m_uSharpness = 0; //}}AFX_DATA_INIT m_pCod5Api = NULL; m_pMediaSettings = NULL; } void CPageVideoSettings::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CPageVideoSettings) DDX_Slider(pDX, IDC_SLD_CONTRAST, m_uContrast); DDX_Slider(pDX, IDC_SLD_HUE, m_uHue); DDX_Slider(pDX, IDC_SLD_SATURATION, m_uSaturation); DDX_Slider(pDX, IDC_SLD_BRIGHTNESS, m_uBrightness); DDX_Slider(pDX, IDC_SLD_SHARPNESS, m_uSharpness); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CPageVideoSettings, CDialog) //{{AFX_MSG_MAP(CPageVideoSettings) ON_BN_CLICKED(IDC_BTN_RESET, OnBtnReset) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLD_BRIGHTNESS, OnReleasedcaptureSldBrightness) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLD_CONTRAST, OnReleasedcaptureSldContrast) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLD_HUE, OnReleasedcaptureSldHue) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLD_SATURATION, OnReleasedcaptureSldSaturation) ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLD_SHARPNESS, OnReleasedcaptureSldSharpness) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPageVideoSettings message handlers BOOL CPageVideoSettings::SaveSetting() { ULONG uCh = m_local_param.channel; UpdateData(TRUE); if(uCh==0xFF){ for (ULONG i=0; iVideoSettings.uBrightness); SetControlProperty(IDC_SLD_CONTRAST, m_pMediaSettings->VideoSettings.uContrast); SetControlProperty(IDC_SLD_SATURATION, m_pMediaSettings->VideoSettings.uSaturation); SetControlProperty(IDC_SLD_HUE, m_pMediaSettings->VideoSettings.uHue); SetControlProperty(IDC_SLD_SHARPNESS, m_pMediaSettings->VideoSettings.uSharpness); return TRUE; } BOOL CPageVideoSettings::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here ULONG uCh = m_local_param.channel; char text[64]; if(uCh==0xFF){ sprintf(text,"All Channels"); uCh=0; }else{ sprintf(text,"Channel:%d", uCh); } SetDlgItemText(IDC_STATIC_VIDEO_CH,text); m_pMediaSettings = m_pConnection->GetMediaSettings(uCh); m_pCod5Api = m_pConnection->GetCod5Api(); m_pMsgMgr = m_pMgrNVE->GetMsgManager(); SetControlProperty(IDC_SLD_BRIGHTNESS, m_pMediaSettings->VideoSettings.uBrightness); SetControlProperty(IDC_SLD_CONTRAST, m_pMediaSettings->VideoSettings.uContrast); SetControlProperty(IDC_SLD_SATURATION, m_pMediaSettings->VideoSettings.uSaturation); SetControlProperty(IDC_SLD_HUE, m_pMediaSettings->VideoSettings.uHue); SetControlProperty(IDC_SLD_SHARPNESS, m_pMediaSettings->VideoSettings.uSharpness); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } BOOL CPageVideoSettings::SetControlProperty(UINT ctrl_slider, int value) { CSliderCtrl* ctrl=(CSliderCtrl* )GetDlgItem(ctrl_slider); ctrl->SetRangeMin(0,TRUE); ctrl->SetRangeMax(255,TRUE); ctrl->SetPos(value); ctrl->SetTicFreq(16); return TRUE; } void CPageVideoSettings::OnBtnReset() { // TODO: Add your control notification handler code here SetControlProperty(IDC_SLD_BRIGHTNESS, 128); SetControlProperty(IDC_SLD_CONTRAST, 128); SetControlProperty(IDC_SLD_SATURATION, 128); SetControlProperty(IDC_SLD_HUE, 128); SetControlProperty(IDC_SLD_SHARPNESS, 128); SetBrightness(128); SetContrast(128); SetSaturation(128); SetHue(128); SetSharpness(128); } void CPageVideoSettings::OnReleasedcaptureSldBrightness(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here UpdateData(TRUE); SetBrightness(m_uBrightness); *pResult = 0; } void CPageVideoSettings::OnReleasedcaptureSldContrast(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here UpdateData(TRUE); SetContrast(m_uContrast); *pResult = 0; } void CPageVideoSettings::OnReleasedcaptureSldSaturation(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here UpdateData(TRUE); SetSaturation(m_uSaturation); *pResult = 0; } void CPageVideoSettings::OnReleasedcaptureSldHue(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here UpdateData(TRUE); SetHue(m_uHue); *pResult = 0; } void CPageVideoSettings::OnReleasedcaptureSldSharpness(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here UpdateData(TRUE); SetSharpness(m_uSharpness); *pResult = 0; } BOOL CPageVideoSettings::SetCodecAdjust(ULONG uCmd, ULONG uValue) { CMN5_MULTI_COMMAND cmd; ULONG uIndex = 0; MAKE_MULTI_CMD(cmd, uIndex, uCmd, 0, 0, uValue, 0, 0, 0); m_pCod5Api->Cod5SetMultiCodecAdjusts(1, &cmd); if (!cmd.bRet) { m_pMsgMgr->PushErrorCodeF("Cod5SetMultiCodecAdjusts failed. cmd[0x%08x]\n", cmd.uCommand); m_pMsgMgr->Show(TRUE); return FALSE; } return TRUE; } BOOL CPageVideoSettings::SetBrightness(ULONG uValue) { if (!SetCodecAdjust(COD5_CAC_BRIGHTNESS, uValue)) { return FALSE; } m_pMediaSettings->VideoSettings.uBrightness = uValue; return TRUE; } BOOL CPageVideoSettings::SetContrast(ULONG uValue) { if (!SetCodecAdjust(COD5_CAC_CONTRAST, uValue)) { return FALSE; } m_pMediaSettings->VideoSettings.uContrast = uValue; return TRUE; } BOOL CPageVideoSettings::SetSaturation(ULONG uValue) { if (!SetCodecAdjust(COD5_CAC_SATURATION_U, uValue)) { return FALSE; } m_pMediaSettings->VideoSettings.uSaturation = uValue; return TRUE; } BOOL CPageVideoSettings::SetHue(ULONG uValue) { if (!SetCodecAdjust(COD5_CAC_HUE, uValue)) { return FALSE; } m_pMediaSettings->VideoSettings.uHue = uValue; return TRUE; } BOOL CPageVideoSettings::SetSharpness(ULONG uValue) { if (!SetCodecAdjust(COD5_CAC_SHARPNESS, uValue)) { return FALSE; } m_pMediaSettings->VideoSettings.uSharpness = uValue; return TRUE; }