📄 dayplaydlg.cpp
字号:
// DayPlayDlg.cpp : implementation file
//
#include "stdafx.h"
#include "gtmpeg.h"
#include "DayPlayDlg.h"
#include "FileSortDlg.h"
#include "GtMpegWnd.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
CDayPlayDlg::CDayPlayDlg(CGtMpegWnd* pParent /*=NULL*/)
: CDialog(CDayPlayDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDayPlayDlg)
m_Date = COleDateTime::GetCurrentTime();
//}}AFX_DATA_INIT
m_pParentWnd=pParent;
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CDayPlayDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDayPlayDlg)
DDX_Control(pDX, IDC_RECORD_DATE, m_cRecordDate);
DDX_Control(pDX, IDC_CHANNEL_BOX, m_cChannelBox);
DDX_DateTimeCtrl(pDX, IDC_RECORD_DATE, m_Date);
//}}AFX_DATA_MAP
DDX_Control(pDX, IDC_TIME_GRID, m_cTimeGrid);
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CDayPlayDlg, CDialog)
//{{AFX_MSG_MAP(CDayPlayDlg)
ON_CBN_CLOSEUP(IDC_CHANNEL_BOX, OnCloseupChannelBox)
ON_NOTIFY(DTN_CLOSEUP, IDC_RECORD_DATE, OnCloseupRecordDate)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
BOOL CDayPlayDlg::OnInitDialog()
{
CDialog::OnInitDialog();
for(DWORD i=0;i<g_dwNumberOfSlots;i++)
{
CString sTxt;
sTxt.Format("频道%d",i+1);
m_cChannelBox.AddString(sTxt);
}
m_nChannel=0;
m_cChannelBox.SetCurSel(m_nChannel);
CheckfileValid(GetAppPath()+"mpeg");
m_cTimeGrid.ShowWindow(SW_HIDE);
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CDayPlayDlg::OnOK()
{
BOOL bSection=FALSE;
m_cRecordDate.GetTime(m_Date);
CString sDate;
CPlayList *pList;
sDate=m_Date.Format("%Y%m%d");
g_pDevice[m_nChannel]->m_arPlayList.SetSize(0);
g_pDevice[m_nChannel]->m_arFileName.SetSize(0);
for(int i=1;i<m_cTimeGrid.m_nRows;i++)
{
for(int j=1;j<m_cTimeGrid.m_nCols;j++)
{
switch(m_cTimeGrid.GetCellStates(i,j))
{
case GVIS_NOSELECTED:
if(bSection)
{
pList=g_pDevice[m_nChannel]->m_arPlayList.GetAt(g_pDevice[m_nChannel]->m_arPlayList.GetSize()-1);
int nEndRow=i-1,nEndCol=j-1;
if(j==1)
{
nEndRow--;
nEndCol=59;//m_cTimeGrid.m_nCols-1;
}
pList->m_sEndTime.Format("%02d:%02d",nEndRow,nEndCol-1);
bSection=FALSE;
}
break;
case GVIS_SELECTED:
if(!bSection)
{
pList=new CPlayList;
g_pDevice[m_nChannel]->m_arPlayList.Add(pList);
pList->m_nChannel=m_nChannel;
pList->m_sPlayDate=sDate;
pList->m_sStartTime.Format("%02d:%02d",i-1,j-1);
bSection=TRUE;
}
break;
}
}
}
if(!g_pDevice[m_nChannel]->EnablePlayFile(sDate,GetAppPath()+"Mpeg",g_pDevice[m_nChannel]->m_arFileName)==FALSE)
{
}
if(!g_pDevice[m_nChannel]->CheckPlayFile())
{
MessageBox("所选择的时间段没有进行录像,请重新选择!");
return;
}
#ifdef _DEBUG
CFileSortDlg dlg(m_nChannel);
if(dlg.DoModal()==IDCANCEL)
return;
#endif
CDialog::OnOK();
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CDayPlayDlg::OnCloseupChannelBox()
{
int nIndex=m_cChannelBox.GetCurSel();
if(nIndex!=m_nChannel)
{
m_nChannel=nIndex;
for(int i=1;i<m_cTimeGrid.m_nRows;i++)
{
for(int j=1;j<m_cTimeGrid.m_nCols;j++)
m_cTimeGrid.SetSelectCell(i,j,GVIS_NOSELECTED);
}
CheckfileValid(GetAppPath()+"mpeg");
}
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
BOOL CDayPlayDlg::CheckfileValid(CString sPath)
{
m_cTimeGrid.SetNoValid();
m_cRecordDate.GetTime(m_Date);
CString sDate;
sDate=m_Date.Format("%Y%m%d");
CFileFind PlayFile;
CString sFind;
sFind.Format("%02d-%s",m_nChannel+1,sDate);
sFind+="*.mpg";
sFind=sPath+"\\"+sFind;
BOOL bFind=PlayFile.FindFile(sFind);
if(bFind)
{
while(bFind)
{
bFind=PlayFile.FindNextFile();
CString sTmp=PlayFile.GetFileTitle();
CString sHour,sMinute,sEndHour,sEndMinute,sTmp1;
sHour=sTmp.Mid(11,2);
sMinute=sTmp.Mid(13,2);
CTime LastTime;
PlayFile.GetLastWriteTime(LastTime);
sEndHour=LastTime.Format("%H");
sEndMinute=LastTime.Format("%M");
if(sHour<sEndHour)
{
for(int i=StringToInt(sHour)+1;i<StringToInt(sEndHour)+1;i++)
{
for(int j=StringToInt(sMinute)+1;j<=60;j++)
{
m_cTimeGrid.SetValidCell(i,j);
m_cTimeGrid.RedrawCell(i,j);
}
for(j=0;j<=StringToInt(sEndMinute)+1;j++)
{
m_cTimeGrid.SetValidCell(i+1,j);
m_cTimeGrid.RedrawCell(i+1,j);
}
}
}
else
{
for(int j=StringToInt(sMinute)+1;j<=StringToInt(sEndMinute)+1;j++)
{
m_cTimeGrid.SetValidCell(StringToInt(sHour)+1,j);
m_cTimeGrid.RedrawCell(StringToInt(sHour)+1,j);
}
}
if(!bFind)
{
for(int i=1;i<m_cTimeGrid.m_nRows;i++)
{
for(int j=1;j<m_cTimeGrid.m_nCols;j++)
{
if(m_cTimeGrid.GetValidCell(i,j))
m_cTimeGrid.SetSelectCell(i,j,GVIS_SELECTED);
}
}
return TRUE;
}
}
}
return FALSE;
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CDayPlayDlg::OnCloseupRecordDate(NMHDR* pNMHDR, LRESULT* pResult)
{
for(int i=1;i<m_cTimeGrid.m_nRows;i++)
{
for(int j=1;j<m_cTimeGrid.m_nCols;j++)
m_cTimeGrid.SetSelectCell(i,j,GVIS_NOSELECTED);
}
CheckfileValid(GetAppPath()+"mpeg");
*pResult = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -