www.pudn.com > DVDUpdate.rar > DVDUpdateView.h
// DVDUpdateView.h : interface of the CDVDUpdateView class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_DVDUPDATEVIEW_H__31F12F73_C6BE_4529_8B7C_EC3AE989E22C__INCLUDED_)
#define AFX_DVDUPDATEVIEW_H__31F12F73_C6BE_4529_8B7C_EC3AE989E22C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CDVDUpdateView : public CFormView
{
protected: // create from serialization only
CDVDUpdateView();
DECLARE_DYNCREATE(CDVDUpdateView)
public:
//{{AFX_DATA(CDVDUpdateView)
enum { IDD = IDD_DVDUPDATE_FORM };
CSpinButtonCtrl m_SpinVobucstart;
CSpinButtonCtrl m_SpinVobucount;
CButton m_RadioPhysical;
CButton m_RadioParse;
CButton m_RadioMix;
CButton m_RadioLogical;
CListCtrl m_ListVobu;
CListCtrl m_ListVdo;
CListCtrl m_ListSubpic;
CListCtrl m_ListPack;
CListCtrl m_ListAdo;
CComboBox m_ComboSubpicstrmid;
CComboBox m_ComboRange;
CComboBox m_ComboAdostrmid;
CComboBox m_ComboAdocodec;
CButton m_ButtonUpdate;
BOOL m_CheckCellid;
BOOL m_CheckCount;
BOOL m_CheckLinkvobu;
BOOL m_CheckStart;
BOOL m_CheckVobid;
int m_EditVobucount;
int m_EditVobustart;
//}}AFX_DATA
// Attributes
public:
CDVDUpdateDoc* GetDocument();
void ShowFolderVro(CString foldername);
void ShowFolderVob(CString foldername);
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDVDUpdateView)
public:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual void OnInitialUpdate(); // called first time after construct
//}}AFX_VIRTUAL
// Implementation
public:
void CreatLog();
CString m_OutputName;
char* CreatName(int n,char* files,CString file);
CString GetReplace(char packhead[20]);
void StreamDivide();
int m_nIndex;
CString m_SaveFile;
CString m_OpenFolder;
CString m_OpenFile;
int m_MaxPack,m_StartPack,m_Count,m_Vobid,m_Cellid;
CString m_UpdateFiles[9];//按下update就要解析的文件(需要完整路径)
CString m_ComboShowFiles[MAX_PATH];//在combo中显示的文件名(有合并情况)
CString m_ComboShowLinkFiles[MAX_PATH][9];//combo中显示的每一项对应的文件
typedef struct Cpack{
int m_Pack_ID; //此Pack的序号,从零开始计
enum type{NV_PCK, RDI_PCK, V_Pack, A_Pack, SP_Pack, Error_Pack} m_Pack_Type;//此Pack的类型
int m_VOBU_ID; //此Pack的VOBU号
int m_Pack_para1; //用以传递Pack参数一
int m_Pack_para2; //用以传递Pack参数二
int m_Pack_para3; //用以传递Pack参数三
int m_Pack_para4; //用以传递Pack参数四
struct Cpack *next; //下一个存储地址的指针
}LNode, *Linklist;
Linklist head, LastPack;
bool OnePackView(Linklist L,
int VOBUStart,
int VOBUCount,
CString AStreamID,
CString ACodec,
CString SPStreamID);
bool LinkVideoView(Linklist L,
int VOBUID);
bool LinkAudioView(Linklist L,
int VOBUID,
CString AStreamID,
CString ACodec);
bool LinkSubPView(Linklist L,
int VOBUID,
CString SPStreamID);
bool ConLinkView(Linklist L,
int VOBUID,
CString AStreamID,
CString ACodec,
CString SPStreamID);
bool VideoView(Linklist L,
int VOBUStart,
int VOBUCount);
bool AudioView(Linklist L,
CString AStreamID,
CString ACodec,
int VOBUStart,
int VOBUCount);
bool SubPView(Linklist L,
CString SPStreamID,
int VOBUStart,
int VOBUCount);
bool ConditionalView (Linklist L,
int VOBUStart,
int VOBUCount,
CString AStreamID,
CString ACodec,
CString SPStreamID);
bool VOBUView(Linklist L,
int VOBUStart,
int VOBUCount);
int GetVOBUNum(Linklist L,
int PackNum);
bool SpinView(Linklist L,
int VOBUStart,
int VOBUCount);
bool LinkVOBUView(Linklist L,
int VOBUStart,
int VOBUCount);
bool StructInitial(Linklist &head, Linklist &lastaddr);
bool OnePackUpdate(BYTE *pbdata, Linklist &k);
bool NewData(Linklist &lastaddr);
bool PhyUpdate (int Start, int Count, CString filename[9]);
bool LogUpdate (int VOBID, int CELLID, CString filename[9]);
bool OnePackVOBJug(int VOBID, int CELLID, BYTE *pbdata, bool &flag);
virtual ~CDVDUpdateView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CDVDUpdateView)
afx_msg void OnEditStrmdiv();
afx_msg void OnFileOpenfl();
afx_msg void OnFileOpenfld();
afx_msg void OnRadioMix();
afx_msg void OnRadioParse();
afx_msg void OnSelchangeComboAdocodec();
afx_msg void OnSelchangeComboAdostrmid();
afx_msg void OnSelchangeComboSubpicstrmid();
afx_msg void OnCheckLinkvobu();
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnButtonUpdate();
afx_msg void OnClickListVobu(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnRadioLogical();
afx_msg void OnRadioPhysical();
afx_msg void OnSelchangeComboRange();
afx_msg void OnCheckCellid();
afx_msg void OnCheckCount();
afx_msg void OnCheckStart();
afx_msg void OnCheckVobid();
afx_msg void OnChangeEditVobucount();
afx_msg void OnChangeEditVobustart();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#ifndef _DEBUG // debug version in DVDUpdateView.cpp
inline CDVDUpdateDoc* CDVDUpdateView::GetDocument()
{ return (CDVDUpdateDoc*)m_pDocument; }
#endif
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DVDUPDATEVIEW_H__31F12F73_C6BE_4529_8B7C_EC3AE989E22C__INCLUDED_)