📄 playerdlg.cpp
字号:
//Remove WS_VISIBLE window style.
pButton = (CButton *)GetDlgItem(IDC_PLAY);
pButton->ModifyStyle(WS_VISIBLE,0,0);
pButton = (CButton *)GetDlgItem(IDC_PAUSE);
pButton->ModifyStyle(WS_VISIBLE,0,0);
pButton = (CButton *)GetDlgItem(IDC_STOP);
pButton->ModifyStyle(WS_VISIBLE,0,0);
pButton = (CButton *)GetDlgItem(IDC_FAST);
pButton->ModifyStyle(WS_VISIBLE,0,0);
pButton = (CButton *)GetDlgItem(IDC_GOTOEND);
pButton->ModifyStyle(WS_VISIBLE,0,0);
pButton = (CButton *)GetDlgItem(IDC_SLOW);
pButton->ModifyStyle(WS_VISIBLE,0,0);
pButton = (CButton *)GetDlgItem(IDC_GOTOSTART);
pButton->ModifyStyle(WS_VISIBLE,0,0);
pButton = (CButton *)GetDlgItem(IDC_SOUND);
pButton->ModifyStyle(WS_VISIBLE,0,0);
pButton = (CButton *)GetDlgItem(IDC_STEP);
pButton->ModifyStyle(WS_VISIBLE,0,0);
pButton = (CButton *)GetDlgItem(IDC_STEPBACK);
pButton->ModifyStyle(WS_VISIBLE,0,0);
pButton = (CButton *)GetDlgItem(IDC_CAPPIC);
pButton->ModifyStyle(WS_VISIBLE,0,0);
m_SoundSlider.ModifyStyle(WS_VISIBLE,0,0);
m_PlaySlider.ModifyStyle(WS_VISIBLE,0,0);
m_SliderB.ModifyStyle(WS_VISIBLE,0,0);
m_SliderC.ModifyStyle(WS_VISIBLE,0,0);
m_SliderS.ModifyStyle(WS_VISIBLE,0,0);
m_SliderH.ModifyStyle(WS_VISIBLE,0,0);
pStatic=(CStatic*)GetDlgItem(IDC_STATIC1);
pStatic->ModifyStyle(WS_VISIBLE,0,0);
pStatic=(CStatic*)GetDlgItem(IDC_STATIC2);
pStatic->ModifyStyle(WS_VISIBLE,0,0);
pStatic=(CStatic*)GetDlgItem(IDC_STATIC3);
pStatic->ModifyStyle(WS_VISIBLE,0,0);
pStatic=(CStatic*)GetDlgItem(IDC_STATIC4);
pStatic->ModifyStyle(WS_VISIBLE,0,0);
GetDlgItem(IDC_PLAYSTATETEXT)->ModifyStyle(WS_VISIBLE,0,0);
}
else
{
//hAppBar = FindWindowEx(0,0,"Shell_TrayWnd","");
//BOOL bRet=::ShowWindow(hAppBar,SW_SHOW);
//Visible the control.
pButton = (CButton *)GetDlgItem(IDC_PLAY);
pButton->ModifyStyle(0,WS_VISIBLE,0);
pButton = (CButton *)GetDlgItem(IDC_PAUSE);
pButton->ModifyStyle(0,WS_VISIBLE,0);
pButton = (CButton *)GetDlgItem(IDC_STOP);
pButton->ModifyStyle(0,WS_VISIBLE,0);
pButton = (CButton *)GetDlgItem(IDC_FAST);
pButton->ModifyStyle(0,WS_VISIBLE,0);
pButton = (CButton *)GetDlgItem(IDC_GOTOEND);
pButton->ModifyStyle(0,WS_VISIBLE,0);
pButton = (CButton *)GetDlgItem(IDC_SLOW);
pButton->ModifyStyle(0,WS_VISIBLE,0);
pButton = (CButton *)GetDlgItem(IDC_GOTOSTART);
pButton->ModifyStyle(0,WS_VISIBLE,0);
pButton = (CButton *)GetDlgItem(IDC_SOUND);
pButton->ModifyStyle(0,WS_VISIBLE,0);
pButton = (CButton *)GetDlgItem(IDC_STEP);
pButton->ModifyStyle(0,WS_VISIBLE,0);
pButton = (CButton *)GetDlgItem(IDC_STEPBACK);
pButton->ModifyStyle(0,WS_VISIBLE,0);
pButton = (CButton *)GetDlgItem(IDC_CAPPIC);
pButton->ModifyStyle(0,WS_VISIBLE,0);
m_PlaySlider.ModifyStyle(0,WS_VISIBLE,0);
m_SoundSlider.ModifyStyle(0,WS_VISIBLE,0);
m_SliderB.ModifyStyle(0,WS_VISIBLE,0);
m_SliderC.ModifyStyle(0,WS_VISIBLE,0);
m_SliderS.ModifyStyle(0,WS_VISIBLE,0);
m_SliderH.ModifyStyle(0,WS_VISIBLE,0);
pStatic=(CStatic*)GetDlgItem(IDC_STATIC1);
pStatic->ModifyStyle(0,WS_VISIBLE,0);
pStatic=(CStatic*)GetDlgItem(IDC_STATIC2);
pStatic->ModifyStyle(0,WS_VISIBLE,0);
pStatic=(CStatic*)GetDlgItem(IDC_STATIC3);
pStatic->ModifyStyle(0,WS_VISIBLE,0);
pStatic=(CStatic*)GetDlgItem(IDC_STATIC4);
pStatic->ModifyStyle(0,WS_VISIBLE,0);
GetDlgItem(IDC_PLAYSTATETEXT)->ModifyStyle(0,WS_VISIBLE,0);
//make the window can be resize.
ModifyStyle(0,WS_SIZEBOX,0);
//change the window pos to pre rect.
SetWindowPlacement(&m_OldWndpl);
}
this->RedrawWindow();
//2002-6-13 Refresh window.
Hik_PlayM4_RefreshPlay(PORT);
}
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
short sCtrl;
UINT nMenuState;
sCtrl = GetKeyState(VK_CONTROL);
if(nChar == VK_F2)
OnViewFullscreen();
if(sCtrl & 0xFF00)
{
switch(nChar)
{
case VK_C:
nMenuState = m_pMainMenu->GetMenuState(ID_FILE_CLOSE, MF_BYCOMMAND);
if(nMenuState != MF_GRAYED) OnFileClose();
break;
case VK_O:
nMenuState = m_pMainMenu->GetMenuState(ID_FILE_OPEN, MF_BYCOMMAND);
if(nMenuState != MF_GRAYED) OnFileOpen();
break;
case VK_S:
nMenuState = m_pMainMenu->GetMenuState(IDC_STOP, MF_BYCOMMAND);
if(nMenuState != MF_GRAYED) OnFileClose();
break;
}
}
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
///////////////////////////////////////////////////////////////////////////
//Function: Voluem and progress.
///////////////////////////////////////////////////////////////////////////
void CPlayerDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
DWORD nTime;
int nPlayPos;
int nBrightness, nContrast, nSaturation, nHue;
switch(GetWindowLong(pScrollBar->m_hWnd, GWL_ID))
{
/////////////////////////////////////////////////////////////////
//progress slider
case IDC_PLAY_SLIDER:
if(m_bStreamType)
break;
nPlayPos=m_PlaySlider.GetPos();
if(abs(nPlayPos-m_nPrePlayPos)<3)
break;
#ifdef _FILE_POS
Hik_PlayM4_SetPlayPos(PORT,(float)nPlayPos/(float)m_dwPlaySliderMax);
#else
nTime=nPlayPos*1000/m_dwPlaySliderMax*m_nMaxFileTime;
TRACE("Set time ex \n");
Hik_PlayM4_SetPlayedTimeEx(PORT,nTime);
TRACE("set time ex ok!\n");
#endif
DrawStatus();
break;
///////////////////////////////////////////////////////////////
//sound slider;
case IDC_SOUND_SLIDER:
#ifdef WAVE_ADJ
Hik_PlayM4_AdjustWaveAudio(PORT, m_SoundSlider.GetPos());
#else
Hik_PlayM4_SetVolume(PORT,m_SoundSlider.GetPos());
#endif
break;
////////////////////////////////////////////////////////////////
//color slider
case IDC_SLIDERB:
case IDC_SLIDERC:
case IDC_SLIDERS:
case IDC_SLIDERH:
nBrightness = m_SliderB.GetPos();
nContrast = m_SliderC.GetPos();
nSaturation = m_SliderS.GetPos();
nHue = m_SliderH.GetPos();
Hik_PlayM4_SetColor(PORT, 0, nBrightness, nContrast, nSaturation, nHue);
//Hik_PlayM4_GetColor(PORT, 0, &nBrightness, &nContrast, &nSaturation, &nHue);
//TRACE("Get color(B,C,S,V):%d, %d, %d, %d\n", nBrightness, nContrast, nSaturation, nHue);
break;
}
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(m_bPlaying)
OnViewFullscreen();
CDialog::OnLButtonDblClk(nFlags, point);
}
/////////////////////////////////////////////////////////////////////////////
//Function: process the received WM_FILE_END message.
//Para:wParam channel No. lParam reserved;
////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::PlayMessage(WPARAM wParam, LPARAM lParam)
{
if(m_bFullScreen)
OnViewFullscreen();
//remove the same message.
MSG msgVal;
while(PeekMessage(&msgVal,m_hWnd,WM_FILE_END,WM_FILE_END,PM_REMOVE))
;
if(m_bRepeatPlay)
{
TRACE("/////////Process message %d\n",lParam);
if(m_bFileRefCreated)
Hik_PlayM4_SetCurrentFrameNum(PORT,0);
else
Hik_PlayM4_SetPlayPos(PORT,0);
// OnStop();
// OnPlay();
}
if(m_bConvert)
{
OnStop();
if(outFile!=NULL)
closeWriffFiles();
//MessageBox("Convertion complete!!",NULL,MB_ICONINFORMATION);
}
}
void CPlayerDlg::EncChangeMessage(WPARAM wParam, LPARAM lParam)
{
MSG msgVal;
while(PeekMessage(&msgVal,m_hWnd,WM_ENC_CHANGE,WM_ENC_CHANGE,PM_REMOVE))
;
SetWindowSize();
Sleep(1);
}
/////////////////////////////////////////////////////////////////////////////
//Funtion:change Interface
/////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::SetStopState()
{
CButton *pButton;
pButton = (CButton *)GetDlgItem(IDC_PLAY);
pButton->SetIcon(m_hPlayEnableIcon);
pButton->EnableWindow(TRUE);
pButton = (CButton *)GetDlgItem(IDC_PAUSE);
pButton->SetIcon(m_hPauseDisableIcon);
pButton->EnableWindow(FALSE);
pButton = (CButton *)GetDlgItem(IDC_STOP);
pButton->SetIcon(m_hStopDisableIcon);
pButton->EnableWindow(FALSE);
pButton = (CButton *)GetDlgItem(IDC_FAST);
pButton->SetIcon(m_hFastForwardDisableIcon);
pButton->EnableWindow(FALSE);
pButton = (CButton *)GetDlgItem(IDC_SLOW);
pButton->SetIcon(m_hFastBackwardDisableIcon);
pButton->EnableWindow(FALSE);
pButton = (CButton *)GetDlgItem(IDC_GOTOEND);
pButton->SetIcon(m_hGotoEndDisableIcon);
pButton->EnableWindow(FALSE);
pButton = (CButton *)GetDlgItem(IDC_GOTOSTART);
pButton->SetIcon(m_hGotoStartDisableIcon);
pButton->EnableWindow(FALSE);
pButton = (CButton *)GetDlgItem(IDC_STEP);
pButton->EnableWindow(FALSE);
pButton = (CButton *)GetDlgItem(IDC_STEPBACK);
pButton->EnableWindow(FALSE);
pButton = (CButton *)GetDlgItem(IDC_CAPPIC);
pButton->EnableWindow(FALSE);
pButton = (CButton *)GetDlgItem(IDC_SOUND);
pButton->EnableWindow(FALSE);
m_ShowFrame.SetBitmap(m_HikvisionBmp);
m_pMainMenu->EnableMenuItem(IDC_STOP, TRUE);
m_pMainMenu->EnableMenuItem(ID_FILE_CLOSE, TRUE);
m_pMainMenu->EnableMenuItem(ID_FILE_OPEN, FALSE);
m_pMainMenu->EnableMenuItem(ID_VIEW_FULLSCREEN, TRUE);
m_pMainMenu->EnableMenuItem(IDC_FAST, TRUE);
m_PlaySlider.SetPos(0);
m_bPlaying = FALSE;
m_bPaused = FALSE;
m_bFastForwardPlay = FALSE;
m_strPlayStateText = "Stop";
UpdateData(FALSE);
SortControl();
}
//////////////////////////////////////////////////////////////////////////////
//funtion:change interface
//////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::SetPlayState()
{
CButton *pButton;
pButton = (CButton *)GetDlgItem(IDC_PLAY);
pButton->SetIcon(m_hPlayDisableIcon);
pButton->EnableWindow(FALSE);
pButton = (CButton *)GetDlgItem(IDC_PAUSE);
pButton->SetIcon(m_hPauseEnableIcon);
pButton->EnableWindow(TRUE);
pButton = (CButton *)GetDlgItem(IDC_STOP);
pButton->SetIcon(m_hStopEnableIcon);
pButton->EnableWindow(TRUE);
pButton = (CButton *)GetDlgItem(IDC_FAST);
pButton->SetIcon(m_hFastForwardEnableIcon);
pButton->EnableWindow(TRUE);
pButton = (CButton *)GetDlgItem(IDC_SLOW);
pButton->SetIcon(m_hFastBackwardEnableIcon);
pButton->EnableWindow(TRUE);
pButton = (CButton *)GetDlgItem(IDC_GOTOEND);
pButton->SetIcon(m_hGotoEndEnableIcon);
pButton->EnableWindow(TRUE);
pButton = (CButton *)GetDlgItem(IDC_GOTOSTART);
pButton->SetIcon(m_hGotoStartEnableIcon);
pButton->EnableWindow(TRUE);
pButton = (CButton *)GetDlgItem(IDC_STEP);
pButton->EnableWindow(TRUE);
if(m_bConvert)
m_bFileRefCreated=FALSE;
if(m_bFileRefCreated)
{
pButton = (CButton *)GetDlgItem(IDC_STEPBACK);
pButton->EnableWindow(TRUE);
}
pButton = (CButton *)GetDlgItem(IDC_CAPPIC);
pButton->EnableWindow(TRUE);
pButton = (CButton *)GetDlgItem(IDC_SOUND);
pButton->EnableWindow(TRUE);
if(m_bSound)
{
pButton = (CButton *)GetDlgItem(IDC_SOUND);
pButton->SetIcon(m_hSoundStartIcon);
pButton->EnableWindow(TRUE);
}
GetDlgItem(IDC_SOUND_SLIDER)->EnableWindow(TRUE);
if((HBITMAP)m_OverlayBmp!=m_ShowFrame.GetBitmap())
m_ShowFrame.SetBitmap(m_OverlayBmp);
m_pMainMenu->EnableMenuItem(IDC_STOP, FALSE);
//m_pMainMenu->EnableMenuItem(ID_FILE_CLOSE, FALSE);
m_pMainMenu->EnableMenuItem(ID_VIEW_FULLSCREEN, FALSE);
m_pMainMenu->EnableMenuItem(IDC_FAST, FALSE);
m_bFastForwardPlay = FALSE;
m_PlaySlider.EnableWindow(TRUE);
SortControl();
UpdateData(FALSE);
Hik_PlayM4_RefreshPlay(PORT);
}
//////////////////////////////////////////////////////////////////////////////
//Function: chane interface to pause.
//////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::SetPauseState(BOOL bPause)
{
CButton *pButton;
pButton = (CButton *)GetDlgItem(IDC_PLAY);
if(bPause)
{
pButton->SetIcon(m_hPlayEnableIcon);
pButton->EnableWindow(TRUE);
}
else
{
pButton->SetIcon(m_hPlayDisableIcon);
pButton->EnableWindow(FALSE);
}
pButton = (CButton *)GetDlgItem(IDC_PAUSE);
if(bPause)
{
pButton->SetIcon(m_hPauseDisableIcon);
pButton->EnableWindow(FALSE);
}
else
{
pButton->SetIcon(m_hPauseEnableIcon);
pButton->EnableWindow(TRUE);
}
m_bPaused = bPause;
UpdateData(FALSE);
}
//////////////////////////////////////////////////////////////////////////////
//Function:change interface to fast;
//////////////////////////////////////////////////////////////////////////////
void CPlayerDlg::SetFastForwardState()
{
CButton *pButton;
pButton = (CButton *)GetDlgItem(IDC_PLAY);
pButton->SetIcon(m_hPlayEnableIcon);
pButton->EnableWindow(TRUE);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -