📄 configchannel.cpp
字号:
}
OnSelchangeComboStream();
if (m_osdsel.GetCount() > 0)
{
m_osdsel.SetCurSel(0);
}
OnSelchangeComboOsd();
}
void CConfigChannel::OnSelchangeComboStream()
{
if (!m_bInited || m_chnIdx < 0)
{
return;
}
if (m_strmIdx < 0)
{
goto skipsave;
}
//store current config
BYTE rsOIdx, ecOIdx;
GetOrigIndex(&rsOIdx, m_resolutionsel.GetCurSel(), m_sysCFG.stDspEncodeCap.dwImageSizeMask);
GetOrigIndex(&ecOIdx, m_encodetypesel.GetCurSel(), m_sysCFG.stDspEncodeCap.dwEncodeModeMask);
if (m_strmIdx < 3 && m_strmIdx >= 0) //main stream - for record
{
m_chnCFG[m_chnIdx].stMainVideoEncOpt[m_strmIdx].byVideoEnable= m_videochk.GetCheck();
m_chnCFG[m_chnIdx].stMainVideoEncOpt[m_strmIdx].byAudioEnable= m_audiochk.GetCheck();
m_chnCFG[m_chnIdx].stMainVideoEncOpt[m_strmIdx].byBitRateControl= m_bitratectrlsel.GetCurSel();
m_chnCFG[m_chnIdx].stMainVideoEncOpt[m_strmIdx].byFramesPerSec= m_framesel.GetCurSel();
m_chnCFG[m_chnIdx].stMainVideoEncOpt[m_strmIdx].byEncodeMode= ecOIdx;
m_chnCFG[m_chnIdx].stMainVideoEncOpt[m_strmIdx].byImageSize= rsOIdx;
m_chnCFG[m_chnIdx].stMainVideoEncOpt[m_strmIdx].byImageQlty= m_imgqualitysel.GetCurSel()+1;
}
else if (m_strmIdx < 6) //assistant - for net-transfor
{
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[m_strmIdx-3].byVideoEnable= m_videochk.GetCheck();
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[m_strmIdx-3].byAudioEnable= m_audiochk.GetCheck();
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[m_strmIdx-3].byBitRateControl= m_bitratectrlsel.GetCurSel();
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[m_strmIdx-3].byFramesPerSec= m_framesel.GetCurSel();
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[m_strmIdx-3].byEncodeMode= m_encodetypesel.GetCurSel();
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[m_strmIdx-3].byImageSize= m_resolutionsel.GetCurSel();
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[m_strmIdx-3].byImageQlty= m_imgqualitysel.GetCurSel()+1;
}
//show new config
skipsave:
int strmIdx = m_streamsel.GetCurSel();
if (strmIdx < 0)
{
return;
}
m_strmIdx = strmIdx;
//get masked resolution and encodetype indexs
BYTE rsIdx, ecIdx;
GetMaskedIndex(&rsIdx, m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byImageSize, m_sysCFG.stDspEncodeCap.dwImageSizeMask);
GetMaskedIndex(&ecIdx, m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byEncodeMode ,m_sysCFG.stDspEncodeCap.dwEncodeModeMask);
if (strmIdx < 3) //main stream - for record
{
m_videochk.SetCheck(m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byVideoEnable);
m_audiochk.SetCheck(m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byAudioEnable);
m_bitratectrlsel.SetCurSel(m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byBitRateControl);
m_framesel.SetCurSel(m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byFramesPerSec);
m_encodetypesel.SetCurSel(ecIdx);
m_resolutionsel.SetCurSel(rsIdx);
m_imgqualitysel.SetCurSel(m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byImageQlty-1);
}
else if (strmIdx < 6) //assistant - for net-transfor
{
m_videochk.SetCheck(m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byVideoEnable);
m_audiochk.SetCheck(m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byAudioEnable);
m_bitratectrlsel.SetCurSel(m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byBitRateControl);
m_framesel.SetCurSel(m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byFramesPerSec);
m_encodetypesel.SetCurSel(m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byEncodeMode);
m_resolutionsel.SetCurSel(m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byImageSize);
m_imgqualitysel.SetCurSel(m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byImageQlty-1);
}
SetDlgItemInt(IDC_EDIT_BRIGHTNESS, m_chnCFG[m_chnIdx].stColorCfg[0].byBrightness);
SetDlgItemInt(IDC_EDIT_SATURATION, m_chnCFG[m_chnIdx].stColorCfg[0].bySaturation);
SetDlgItemInt(IDC_EDIT_CONTRAST, m_chnCFG[m_chnIdx].stColorCfg[0].byContrast);
SetDlgItemInt(IDC_EDIT_HUE, m_chnCFG[m_chnIdx].stColorCfg[0].byHue);
SetDlgItemInt(IDC_EDIT_GAIN, m_chnCFG[m_chnIdx].stColorCfg[0].byGain);
}
void CConfigChannel::OnSelchangeComboOsd()
{
if (!m_bInited || m_chnIdx < 0)
{
return;
}
//store current osd config
//later
//show new one
int osdIdx = m_osdsel.GetCurSel();
if (osdIdx < 0)
{
return;
}
m_osdIdx = osdIdx;
switch(osdIdx)
{
case 0: // channel name osd
m_osdshowchk.SetCheck(m_chnCFG[m_chnIdx].stChannelOSD.bShow);
SetDlgItemInt(IDC_EDIT_FORE_RED, m_chnCFG[m_chnIdx].stChannelOSD.rgbaFrontground & 0xFF);
SetDlgItemInt(IDC_EDIT_FORE_GREEN, (m_chnCFG[m_chnIdx].stChannelOSD.rgbaFrontground>>8) & 0xFF);
SetDlgItemInt(IDC_EDIT_FORE_BLUE, (m_chnCFG[m_chnIdx].stChannelOSD.rgbaFrontground>>16) & 0xFF);
SetDlgItemInt(IDC_EDIT_FORE_TRANS, (m_chnCFG[m_chnIdx].stChannelOSD.rgbaFrontground>>24) & 0xFF);
SetDlgItemInt(IDC_EDIT_BACK_RED, m_chnCFG[m_chnIdx].stChannelOSD.rgbaBackground & 0xFF);
SetDlgItemInt(IDC_EDIT_BACK_GREEN, (m_chnCFG[m_chnIdx].stChannelOSD.rgbaBackground>>8) & 0xFF);
SetDlgItemInt(IDC_EDIT_BACK_BLUE, (m_chnCFG[m_chnIdx].stChannelOSD.rgbaBackground>>16) & 0xFF);
SetDlgItemInt(IDC_EDIT_BACK_TRANS, (m_chnCFG[m_chnIdx].stChannelOSD.rgbaBackground>>24) & 0xFF);
SetDlgItemInt(IDC_EDIT_RECT_LFET, m_chnCFG[m_chnIdx].stChannelOSD.rcRect.left & 0xFF);
SetDlgItemInt(IDC_EDIT_RECT_TOP, (m_chnCFG[m_chnIdx].stChannelOSD.rcRect.top>>8) & 0xFF);
SetDlgItemInt(IDC_EDIT_RECT_RIGHT, (m_chnCFG[m_chnIdx].stChannelOSD.rcRect.right>>16) & 0xFF);
SetDlgItemInt(IDC_EDIT_RECT_BOTTOM, (m_chnCFG[m_chnIdx].stChannelOSD.rcRect.bottom>>24) & 0xFF);
GetDlgItem(IDC_STATIC_BLINDTYPE)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_COMBO_BLINDTYPE)->ShowWindow(SW_HIDE);
break;
case 1:
m_osdshowchk.SetCheck(m_chnCFG[m_chnIdx].stChannelOSD.bShow);
SetDlgItemInt(IDC_EDIT_FORE_RED, m_chnCFG[m_chnIdx].stTimeOSD.rgbaFrontground & 0xFF);
SetDlgItemInt(IDC_EDIT_FORE_GREEN, (m_chnCFG[m_chnIdx].stTimeOSD.rgbaFrontground>>8) & 0xFF);
SetDlgItemInt(IDC_EDIT_FORE_BLUE, (m_chnCFG[m_chnIdx].stTimeOSD.rgbaFrontground>>16) & 0xFF);
SetDlgItemInt(IDC_EDIT_FORE_TRANS, (m_chnCFG[m_chnIdx].stTimeOSD.rgbaFrontground>>24) & 0xFF);
SetDlgItemInt(IDC_EDIT_BACK_RED, m_chnCFG[m_chnIdx].stTimeOSD.rgbaBackground & 0xFF);
SetDlgItemInt(IDC_EDIT_BACK_GREEN, (m_chnCFG[m_chnIdx].stTimeOSD.rgbaBackground>>8) & 0xFF);
SetDlgItemInt(IDC_EDIT_BACK_BLUE, (m_chnCFG[m_chnIdx].stTimeOSD.rgbaBackground>>16) & 0xFF);
SetDlgItemInt(IDC_EDIT_BACK_TRANS, (m_chnCFG[m_chnIdx].stTimeOSD.rgbaBackground>>24) & 0xFF);
SetDlgItemInt(IDC_EDIT_RECT_LFET, m_chnCFG[m_chnIdx].stTimeOSD.rcRect.left & 0xFF);
SetDlgItemInt(IDC_EDIT_RECT_TOP, (m_chnCFG[m_chnIdx].stTimeOSD.rcRect.top>>8) & 0xFF);
SetDlgItemInt(IDC_EDIT_RECT_RIGHT, (m_chnCFG[m_chnIdx].stTimeOSD.rcRect.right>>16) & 0xFF);
SetDlgItemInt(IDC_EDIT_RECT_BOTTOM, (m_chnCFG[m_chnIdx].stTimeOSD.rcRect.bottom>>24) & 0xFF);
GetDlgItem(IDC_STATIC_BLINDTYPE)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_COMBO_BLINDTYPE)->ShowWindow(SW_HIDE);
break;
case 2:
m_osdshowchk.SetCheck(m_chnCFG[m_chnIdx].stChannelOSD.bShow);
SetDlgItemInt(IDC_EDIT_FORE_RED, m_chnCFG[m_chnIdx].stBlindCover[0].rgbaFrontground & 0xFF);
SetDlgItemInt(IDC_EDIT_FORE_GREEN, (m_chnCFG[m_chnIdx].stBlindCover[0].rgbaFrontground>>8) & 0xFF);
SetDlgItemInt(IDC_EDIT_FORE_BLUE, (m_chnCFG[m_chnIdx].stBlindCover[0].rgbaFrontground>>16) & 0xFF);
SetDlgItemInt(IDC_EDIT_FORE_TRANS, (m_chnCFG[m_chnIdx].stBlindCover[0].rgbaFrontground>>24) & 0xFF);
SetDlgItemInt(IDC_EDIT_BACK_RED, m_chnCFG[m_chnIdx].stBlindCover[0].rgbaBackground & 0xFF);
SetDlgItemInt(IDC_EDIT_BACK_GREEN, (m_chnCFG[m_chnIdx].stBlindCover[0].rgbaBackground>>8) & 0xFF);
SetDlgItemInt(IDC_EDIT_BACK_BLUE, (m_chnCFG[m_chnIdx].stBlindCover[0].rgbaBackground>>16) & 0xFF);
SetDlgItemInt(IDC_EDIT_BACK_TRANS, (m_chnCFG[m_chnIdx].stBlindCover[0].rgbaBackground>>24) & 0xFF);
SetDlgItemInt(IDC_EDIT_RECT_LFET, m_chnCFG[m_chnIdx].stBlindCover[0].rcRect.left & 0xFF);
SetDlgItemInt(IDC_EDIT_RECT_TOP, (m_chnCFG[m_chnIdx].stBlindCover[0].rcRect.top>>8) & 0xFF);
SetDlgItemInt(IDC_EDIT_RECT_RIGHT, (m_chnCFG[m_chnIdx].stBlindCover[0].rcRect.right>>16) & 0xFF);
SetDlgItemInt(IDC_EDIT_RECT_BOTTOM, (m_chnCFG[m_chnIdx].stBlindCover[0].rcRect.bottom>>24) & 0xFF);
m_blindtypesel.SetCurSel(m_chnCFG[m_chnIdx].byBlindEnable);
GetDlgItem(IDC_STATIC_BLINDTYPE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_COMBO_BLINDTYPE)->ShowWindow(SW_SHOW);
break;
default:
break;
}
}
///////////////////
/************************************************************************
* 图像通道
************************************************************************/
/* */
void CConfigChannel::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
if (bShow)
{
GetConfig();
}
}
void CConfigChannel::OnUndoAll()
{
m_bInited = FALSE;
m_resolutionsel.Clear();
m_encodetypesel.Clear();
m_chnIdx = -1;
m_strmIdx = -1;
m_osdIdx = -1;
GetConfig();
}
void CConfigChannel::OnApply()
{
if (!m_bInited || m_chnIdx < 0)
{
return;
}
int strmIdx = m_streamsel.GetCurSel();
if (strmIdx < 0)
{
return;
}
int osdIdx = m_osdsel.GetCurSel();
if (osdIdx < 0)
{
return;
}
GetDlgItemText(IDC_EDIT_CHANNAME, m_chnCFG[m_chnIdx].szChannelName, DH_CHAN_NAME_LEN);
if (strmIdx < 3) //main stream - for record
{
m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byVideoEnable= m_videochk.GetCheck();
m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byAudioEnable= m_audiochk.GetCheck();
m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byBitRateControl= m_bitratectrlsel.GetCurSel();
m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byFramesPerSec= m_framesel.GetCurSel();
m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byEncodeMode= m_encodetypesel.GetCurSel();
m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byImageSize= m_resolutionsel.GetCurSel();
m_chnCFG[m_chnIdx].stMainVideoEncOpt[strmIdx].byImageQlty= m_imgqualitysel.GetCurSel()+1;
}
else if (strmIdx < 6) //assistant - for net-transfor
{
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byVideoEnable= m_videochk.GetCheck();
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byAudioEnable= m_audiochk.GetCheck();
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byBitRateControl= m_bitratectrlsel.GetCurSel();
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byFramesPerSec= m_framesel.GetCurSel();
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byEncodeMode= m_encodetypesel.GetCurSel();
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byImageSize= m_resolutionsel.GetCurSel();
m_chnCFG[m_chnIdx].stAssiVideoEncOpt[strmIdx-3].byImageQlty= m_imgqualitysel.GetCurSel()+1;
}
m_chnCFG[m_chnIdx].stColorCfg[0].byBrightness = GetDlgItemInt(IDC_EDIT_BRIGHTNESS);
m_chnCFG[m_chnIdx].stColorCfg[0].bySaturation = GetDlgItemInt(IDC_EDIT_SATURATION);
m_chnCFG[m_chnIdx].stColorCfg[0].byContrast = GetDlgItemInt(IDC_EDIT_CONTRAST);
m_chnCFG[m_chnIdx].stColorCfg[0].byHue = GetDlgItemInt(IDC_EDIT_HUE);
m_chnCFG[m_chnIdx].stColorCfg[0].byGain = GetDlgItemInt(IDC_EDIT_GAIN);
BOOL bRet = CLIENT_SetDevConfig(m_pDev->LoginID, DH_DEV_CHANNELCFG, -1/*all channel*/,
&m_chnCFG, 16*sizeof(DHDEV_CHANNEL_CFG));
if (!bRet)
{
((CNetSDKDemoDlg*)AfxGetMainWnd())->LastError();
return;
}
else
{
MessageBox("Apply Success!", "OK");
}
}
void CConfigChannel::OnDropdownComboChanno()
{
// TODO: Add your control notification handler code here
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -