MainFrm.h
上传用户:tangyu_668
上传日期:2014-02-27
资源大小:678k
文件大小:20k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /* 
  2.  * Copyright (C) 2003-2006 Gabest
  3.  * http://www.gabest.org
  4.  *
  5.  *  This Program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2, or (at your option)
  8.  *  any later version.
  9.  *   
  10.  *  This Program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13.  *  GNU General Public License for more details.
  14.  *   
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with GNU Make; see the file COPYING.  If not, write to
  17.  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
  18.  *  http://www.gnu.org/copyleft/gpl.html
  19.  *
  20.  */
  21. #pragma once
  22. #include <atlbase.h>
  23. #include "ChildView.h"
  24. #include "PlayerSeekBar.h"
  25. #include "PlayerToolBar.h"
  26. #include "PlayerInfoBar.h"
  27. #include "PlayerStatusBar.h"
  28. #include "PlayerSubresyncBar.h"
  29. #include "PlayerPlaylistBar.h"
  30. #include "PlayerCaptureBar.h"
  31. #include "PlayerShaderEditorBar.h"
  32. #include "PPageSheet.h"
  33. #include "PPageFileInfoSheet.h"
  34. #include "OpenCapDeviceDlg.h"
  35. #include "FileDropTarget.h"
  36. #include "KeyProvider.h"
  37. #include "....subpicISubPic.h"
  38. #include "IGraphBuilder2.h"
  39. #include "RealMediaGraph.h"
  40. #include "QuicktimeGraph.h"
  41. #include "ShockwaveGraph.h"
  42. #include "......includeIChapterInfo.h"
  43. #include "......includeIKeyFrameInfo.h"
  44. #include "......includeIBufferInfo.h"
  45. #include "WebServer.h"
  46. enum {PM_NONE, PM_FILE, PM_DVD, PM_CAPTURE};
  47. class OpenMediaData
  48. {
  49. public:
  50. // OpenMediaData() {}
  51. virtual ~OpenMediaData() {} // one virtual funct is needed to enable rtti
  52. CString title;
  53. CAtlList<CString> subs;
  54. };
  55. class OpenFileData : public OpenMediaData 
  56. {
  57. public:
  58. OpenFileData() : rtStart(0) {}
  59. CAtlList<CString> fns; 
  60. REFERENCE_TIME rtStart;
  61. };
  62. class OpenDVDData : public OpenMediaData 
  63. {
  64. public: 
  65. // OpenDVDData() {}
  66. CString path; 
  67. CComPtr<IDvdState> pDvdState;
  68. };
  69. class OpenDeviceData : public OpenMediaData
  70. {
  71. public: 
  72. OpenDeviceData() {vinput = vchannel = ainput = -1;}
  73. CStringW DisplayName[2];
  74. int vinput, vchannel, ainput;
  75. };
  76. class CMainFrame;
  77. class CGraphThread : public CWinThread
  78. {
  79. CMainFrame* m_pMainFrame;
  80. DECLARE_DYNCREATE(CGraphThread);
  81. public:
  82. CGraphThread() : m_pMainFrame(NULL) {}
  83. void SetMainFrame(CMainFrame* pMainFrame) {m_pMainFrame = pMainFrame;}
  84. BOOL InitInstance();
  85. int ExitInstance();
  86. enum {TM_EXIT=WM_APP, TM_OPEN, TM_CLOSE};
  87. DECLARE_MESSAGE_MAP()
  88. afx_msg void OnExit(WPARAM wParam, LPARAM lParam);
  89. afx_msg void OnOpen(WPARAM wParam, LPARAM lParam);
  90. afx_msg void OnClose(WPARAM wParam, LPARAM lParam);
  91. };
  92. /*
  93. class CKeyFrameFinderThread : public CWinThread, public CCritSec
  94. {
  95. DECLARE_DYNCREATE(CKeyFrameFinderThread);
  96. public:
  97. CKeyFrameFinderThread() {}
  98. CUIntArray m_kfs; // protected by (CCritSec*)this
  99. BOOL InitInstance();
  100. int ExitInstance();
  101. enum {TM_EXIT=WM_APP, TM_INDEX, TM_BREAK};
  102. DECLARE_MESSAGE_MAP()
  103. afx_msg void OnExit(WPARAM wParam, LPARAM lParam);
  104. afx_msg void OnIndex(WPARAM wParam, LPARAM lParam);
  105. afx_msg void OnBreak(WPARAM wParam, LPARAM lParam);
  106. };
  107. */
  108. interface ISubClock;
  109. class CMainFrame : public CFrameWnd, public CDropTarget
  110. {
  111. enum
  112. {
  113. TIMER_STREAMPOSPOLLER = 1, 
  114. TIMER_STREAMPOSPOLLER2, 
  115. TIMER_FULLSCREENCONTROLBARHIDER, 
  116. TIMER_FULLSCREENMOUSEHIDER, 
  117. TIMER_STATS,
  118. TIMER_LEFTCLICK,
  119. TIMER_STATUSERASER
  120. };
  121. friend class CPPageFileInfoSheet;
  122. friend class CPPageLogo;
  123. // TODO: wrap these graph objects into a class to make it look cleaner
  124. DWORD m_dwRegister;
  125. CComPtr<IGraphBuilder2> pGB;
  126. CComQIPtr<IMediaControl> pMC;
  127. CComQIPtr<IMediaEventEx> pME;
  128. CComQIPtr<IVideoWindow> pVW;
  129. CComQIPtr<IBasicVideo> pBV;
  130. CComQIPtr<IBasicAudio> pBA;
  131. CComQIPtr<IMediaSeeking> pMS;
  132. CComQIPtr<IVideoFrameStep> pFS;
  133. CComQIPtr<IQualProp, &IID_IQualProp> pQP;
  134. CComQIPtr<IBufferInfo> pBI;
  135. CComQIPtr<IAMOpenProgress> pAMOP;
  136. CComQIPtr<IDvdControl2> pDVDC;
  137. CComQIPtr<IDvdInfo2> pDVDI;
  138. CComPtr<ICaptureGraphBuilder2> pCGB;
  139. CStringW m_VidDispName, m_AudDispName;
  140. CComPtr<IBaseFilter> pVidCap, pAudCap;
  141. CComPtr<IAMVideoCompression> pAMVCCap, pAMVCPrev;
  142. CComPtr<IAMStreamConfig> pAMVSCCap, pAMVSCPrev, pAMASC;
  143. CComPtr<IAMCrossbar> pAMXBar;
  144. CComPtr<IAMTVTuner> pAMTuner;
  145. CComPtr<IAMDroppedFrames> pAMDF;
  146. CComPtr<ISubPicAllocatorPresenter> m_pCAP;
  147. void SetBalance(int balance);
  148. // subtitles
  149. CCritSec m_csSubLock;
  150. CInterfaceList<ISubStream> m_pSubStreams;
  151. int m_iSubtitleSel; // if(m_iSubtitleSel&(1<<31)): disabled
  152. DWORD_PTR m_nSubtitleId;
  153. friend class CTextPassThruFilter;
  154. // windowing
  155. CRect m_lastWindowRect;
  156. CPoint m_lastMouseMove;
  157. CRect m_rcDesktop;
  158. void ShowControls(int nCS, bool fSave = true);
  159. void SetDefaultWindowRect(int iMonitor = 0);
  160. void RestoreDefaultWindowRect();
  161. void ZoomVideoWindow(double scale = -1);
  162. double GetZoomAutoFitScale();
  163. void SetAlwaysOnTop(int i);
  164. // dynamic menus
  165. void SetupOpenCDSubMenu();
  166. void SetupFiltersSubMenu();
  167. void SetupAudioSwitcherSubMenu();
  168. void SetupSubtitlesSubMenu();
  169. void SetupNavAudioSubMenu();
  170. void SetupNavSubtitleSubMenu();
  171. void SetupNavAngleSubMenu();
  172. void SetupNavChaptersSubMenu();
  173. void SetupFavoritesSubMenu();
  174. void SetupShadersSubMenu();
  175. void SetupNavStreamSelectSubMenu(CMenu* pSub, UINT id, DWORD dwSelGroup);
  176. void OnNavStreamSelectSubMenu(UINT id, DWORD dwSelGroup);
  177. CMenu m_popupmain, m_popup;
  178. CMenu m_opencds;
  179. CMenu m_filters, m_subtitles, m_audios;
  180. CAutoPtrArray<CMenu> m_filterpopups;
  181. CMenu m_navaudio, m_navsubtitle, m_navangle;
  182. CMenu m_navchapters, m_navtitles;
  183. CMenu m_favorites;
  184. CMenu m_shaders;
  185. CInterfaceArray<IUnknown, &IID_IUnknown> m_pparray;
  186. CInterfaceArray<IAMStreamSelect> m_ssarray;
  187. // chapters (file mode)
  188. CComPtr<IDSMChapterBag> m_pCB;
  189. void SetupChapters();
  190. //
  191. void SetupIViAudReg();
  192. void AddTextPassThruFilter();
  193. int m_nLoops;
  194. bool m_fCustomGraph;
  195. bool m_fRealMediaGraph, m_fShockwaveGraph, m_fQuicktimeGraph;
  196. CComPtr<ISubClock> m_pSubClock;
  197. int m_fFrameSteppingActive;
  198. int m_VolumeBeforeFrameStepping;
  199. bool m_fEndOfStream;
  200. bool m_fBuffering;
  201. bool m_fLiveWM;
  202. bool m_fUpdateInfoBar;
  203. void SendStatusMessage(CString msg, int nTimeOut);
  204. CString m_playingmsg, m_closingmsg;
  205. REFERENCE_TIME m_rtDurationOverride;
  206. CComPtr<IUnknown> m_pProv;
  207. void CleanGraph();
  208. CComPtr<IBaseFilter> pAudioDubSrc;
  209. void ShowOptions(int idPage = 0);
  210. bool GetDIB(BYTE** ppData, long& size, bool fSilent = false);
  211. void SaveDIB(LPCTSTR fn, BYTE* pData, long size);
  212. void SaveImage(LPCTSTR fn);
  213. void SaveThumbnails(LPCTSTR fn);
  214. //
  215. friend class CWebClientSocket;
  216. friend class CWebServer;
  217. CAutoPtr<CWebServer> m_pWebServer;
  218. public:
  219. void StartWebServer(int nPort);
  220. void StopWebServer();
  221. CString GetStatusMessage();
  222. bool IsMuted() {return m_wndToolBar.GetVolume() == -10000;}
  223. int GetVolume() {return m_wndToolBar.m_volctrl.GetPos();}
  224. public:
  225. CMainFrame();
  226. DECLARE_DYNAMIC(CMainFrame)
  227. // Attributes
  228. public:
  229. int m_iPlaybackMode;
  230. bool m_fFullScreen;
  231. bool m_fHideCursor;
  232. bool IsFrameLessWindow() {return(m_fFullScreen || AfxGetAppSettings().fHideCaptionMenu);}
  233. bool IsCaptionMenuHidden() {return(!m_fFullScreen && AfxGetAppSettings().fHideCaptionMenu);}
  234. bool IsSomethingLoaded() {return(m_iMediaLoadState != MLS_CLOSED);}
  235. bool IsPlaylistEmpty() {return(m_wndPlaylistBar.GetCount() == 0);}
  236. bool IsInteractiveVideo() {return(AfxGetAppSettings().fIntRealMedia && m_fRealMediaGraph || m_fShockwaveGraph);}
  237. CControlBar* m_pLastBar;
  238. protected: 
  239. enum {MLS_CLOSED, MLS_LOADING, MLS_LOADED, MLS_CLOSING};
  240. int m_iMediaLoadState;
  241. bool m_fAudioOnly;
  242. dispmode m_dmBeforeFullscreen;
  243. DVD_DOMAIN m_iDVDDomain;
  244. DWORD m_iDVDTitle;
  245. int m_iSpeedLevel;
  246. double m_ZoomX, m_ZoomY, m_PosX, m_PosY;
  247. int m_AngleX, m_AngleY, m_AngleZ;
  248. // Operations
  249. bool OpenMediaPrivate(CAutoPtr<OpenMediaData> pOMD);
  250. void CloseMediaPrivate();
  251. void SendNowPlayingToMSN();
  252. void SendNowPlayingTomIRC();
  253. void OpenCreateGraphObject(OpenMediaData* pOMD);
  254. void OpenFile(OpenFileData* pOFD);
  255. void OpenDVD(OpenDVDData* pODD);
  256. void OpenCapture(OpenDeviceData* pODD);
  257. void OpenCustomizeGraph();
  258. void OpenSetupVideo();
  259. void OpenSetupAudio();
  260. void OpenSetupInfoBar();
  261. void OpenSetupStatsBar();
  262. void OpenSetupStatusBar();
  263. // void OpenSetupToolBar();
  264. void OpenSetupCaptureBar();
  265. void OpenSetupWindowTitle(CString fn = _T(""));
  266. friend class CGraphThread;
  267. CGraphThread* m_pGraphThread;
  268. CAtlArray<REFERENCE_TIME> m_kfs;
  269. bool m_fOpeningAborted;
  270. public:
  271. void OpenCurPlaylistItem(REFERENCE_TIME rtStart = 0);
  272. void OpenMedia(CAutoPtr<OpenMediaData> pOMD);
  273. void CloseMedia();
  274. void AddCurDevToPlaylist();
  275. bool m_fTrayIcon;
  276. void ShowTrayIcon(bool fShow);
  277. void SetTrayTip(CString str);
  278. CSize GetVideoSize();
  279. void ToggleFullscreen(bool fToNearest, bool fSwitchScreenResWhenHasTo);
  280. void MoveVideoWindow(bool fShowStats = false);
  281. void RepaintVideo();
  282. OAFilterState GetMediaState();
  283. REFERENCE_TIME GetPos(), GetDur();
  284. void SeekTo(REFERENCE_TIME rt, bool fSeekToKeyFrame = false);
  285. bool LoadSubtitle(CString fn);
  286. void UpdateSubtitle(bool fApplyDefStyle = false);
  287. void SetSubtitle(ISubStream* pSubStream, bool fApplyDefStyle = false);
  288. void ReplaceSubtitle(ISubStream* pSubStreamOld, ISubStream* pSubStreamNew);
  289. void InvalidateSubtitle(DWORD_PTR nSubtitleId = -1, REFERENCE_TIME rtInvalidate = -1);
  290. void ReloadSubtitle();
  291. // shaders
  292. CAtlList<CString> m_shaderlabels;
  293. void SetShaders();
  294. void UpdateShaders(CString label);
  295. // capturing
  296. bool m_fCapturing;
  297. HRESULT BuildCapture(IPin* pPin, IBaseFilter* pBF[3], const GUID& majortype, AM_MEDIA_TYPE* pmt); // pBF: 0 buff, 1 enc, 2 mux, pmt is for 1 enc
  298. bool BuildToCapturePreviewPin(
  299. IBaseFilter* pVidCap, IPin** pVidCapPin, IPin** pVidPrevPin, 
  300. IBaseFilter* pAudCap, IPin** pAudCapPin, IPin** pAudPrevPin);
  301. bool BuildGraphVideoAudio(int fVPreview, bool fVCapture, int fAPreview, bool fACapture);
  302. bool DoCapture(), StartCapture(), StopCapture();
  303. bool DoAfterPlaybackEvent();
  304. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  305. virtual BOOL PreTranslateMessage(MSG* pMsg);
  306. virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);
  307. virtual void RecalcLayout(BOOL bNotify = TRUE);
  308. // Implementation
  309. public:
  310. virtual ~CMainFrame();
  311. #ifdef _DEBUG
  312. virtual void AssertValid() const;
  313. virtual void Dump(CDumpContext& dc) const;
  314. #endif
  315. protected:  // control bar embedded members
  316. CChildView m_wndView;
  317. CPlayerSeekBar m_wndSeekBar;
  318. CPlayerToolBar m_wndToolBar;
  319. CPlayerInfoBar m_wndInfoBar;
  320. CPlayerInfoBar m_wndStatsBar;
  321. CPlayerStatusBar m_wndStatusBar;
  322. CList<CControlBar*> m_bars;
  323. CPlayerSubresyncBar m_wndSubresyncBar;
  324. CPlayerPlaylistBar m_wndPlaylistBar;
  325. CPlayerCaptureBar m_wndCaptureBar;
  326. CPlayerShaderEditorBar m_wndShaderEditorBar;
  327. CList<CSizingControlBar*> m_dockingbars;
  328. CFileDropTarget m_fileDropTarget;
  329. // TODO
  330. DROPEFFECT OnDragEnter(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
  331. DROPEFFECT OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
  332. BOOL OnDrop(COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point);
  333. DROPEFFECT OnDropEx(COleDataObject* pDataObject, DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point);
  334. void OnDragLeave();
  335. DROPEFFECT OnDragScroll(DWORD dwKeyState, CPoint point);
  336. friend class CPPagePlayback; // TODO
  337. friend class CMPlayerCApp; // TODO
  338. void LoadControlBar(CControlBar* pBar, UINT defDockBarID);
  339. void RestoreFloatingControlBars();
  340. void SaveControlBars();
  341. // Generated message map functions
  342. DECLARE_MESSAGE_MAP()
  343. public:
  344. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  345. afx_msg void OnDestroy();
  346. afx_msg LRESULT OnTaskBarRestart(WPARAM, LPARAM);
  347. afx_msg LRESULT OnNotifyIcon(WPARAM, LPARAM);
  348. afx_msg void OnSetFocus(CWnd* pOldWnd);
  349. afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
  350. afx_msg void OnMove(int x, int y);
  351. afx_msg void OnMoving(UINT fwSide, LPRECT pRect);
  352. afx_msg void OnSize(UINT nType, int cx, int cy);
  353. afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
  354. afx_msg void OnDisplayChange();
  355. afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
  356. afx_msg void OnActivateApp(BOOL bActive, DWORD dwThreadID);
  357. afx_msg LRESULT OnAppCommand(WPARAM wParam, LPARAM lParam);
  358. afx_msg void OnTimer(UINT nIDEvent);
  359. afx_msg LRESULT OnGraphNotify(WPARAM wParam, LPARAM lParam);
  360. afx_msg LRESULT OnRepaintRenderLess(WPARAM wParam, LPARAM lParam);
  361. afx_msg LRESULT OnResumeFromState(WPARAM wParam, LPARAM lParam);
  362. BOOL OnButton(UINT id, UINT nFlags, CPoint point);
  363. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  364. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  365. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  366. afx_msg void OnMButtonDown(UINT nFlags, CPoint point);
  367. afx_msg void OnMButtonUp(UINT nFlags, CPoint point);
  368. afx_msg void OnMButtonDblClk(UINT nFlags, CPoint point);
  369. afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  370. afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
  371. afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point);
  372. afx_msg LRESULT OnXButtonDown(WPARAM wParam, LPARAM lParam);
  373. afx_msg LRESULT OnXButtonUp(WPARAM wParam, LPARAM lParam);
  374. afx_msg LRESULT OnXButtonDblClk(WPARAM wParam, LPARAM lParam);
  375. afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
  376. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  377. afx_msg LRESULT OnNcHitTest(CPoint point);
  378. afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  379. afx_msg void OnInitMenu(CMenu* pMenu);
  380. afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
  381. BOOL OnMenu(CMenu* pMenu);
  382. afx_msg void OnMenuPlayerShort();
  383. afx_msg void OnMenuPlayerLong();
  384. afx_msg void OnMenuFilters();
  385. afx_msg void OnUpdatePlayerStatus(CCmdUI* pCmdUI);
  386. afx_msg void OnFilePostOpenmedia();
  387. afx_msg void OnUpdateFilePostOpenmedia(CCmdUI* pCmdUI);
  388. afx_msg void OnFilePostClosemedia();
  389. afx_msg void OnUpdateFilePostClosemedia(CCmdUI* pCmdUI);
  390. afx_msg void OnBossKey();
  391. afx_msg void OnStreamAudio(UINT nID);
  392. afx_msg void OnStreamSub(UINT nID);
  393. afx_msg void OnStreamSubOnOff();
  394. afx_msg void OnOgmAudio(UINT nID);
  395. afx_msg void OnOgmSub(UINT nID);
  396. afx_msg void OnDvdAngle(UINT nID);
  397. afx_msg void OnDvdAudio(UINT nID);
  398. afx_msg void OnDvdSub(UINT nID);
  399. afx_msg void OnDvdSubOnOff();
  400. // menu item handlers
  401. afx_msg void OnFileOpenQuick();
  402. afx_msg void OnFileOpenmedia();
  403. afx_msg void OnUpdateFileOpen(CCmdUI* pCmdUI);
  404. afx_msg BOOL OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct);
  405. afx_msg void OnFileOpendvd();
  406. afx_msg void OnFileOpendevice();
  407. afx_msg void OnFileOpenCD(UINT nID);
  408. afx_msg void OnDropFiles(HDROP hDropInfo); // no menu item
  409. afx_msg void OnFileSaveAs();
  410. afx_msg void OnUpdateFileSaveAs(CCmdUI* pCmdUI);
  411. afx_msg void OnFileSaveImage();
  412. afx_msg void OnFileSaveImageAuto();
  413. afx_msg void OnUpdateFileSaveImage(CCmdUI* pCmdUI);
  414. afx_msg void OnFileSaveThumbnails();
  415. afx_msg void OnUpdateFileSaveThumbnails(CCmdUI* pCmdUI);
  416. afx_msg void OnFileConvert();
  417. afx_msg void OnUpdateFileConvert(CCmdUI* pCmdUI);
  418. afx_msg void OnFileLoadsubtitle();
  419. afx_msg void OnUpdateFileLoadsubtitle(CCmdUI* pCmdUI);
  420. afx_msg void OnFileSavesubtitle();
  421. afx_msg void OnUpdateFileSavesubtitle(CCmdUI* pCmdUI);
  422. afx_msg void OnFileISDBSearch();
  423. afx_msg void OnUpdateFileISDBSearch(CCmdUI* pCmdUI);
  424. afx_msg void OnFileISDBUpload();
  425. afx_msg void OnUpdateFileISDBUpload(CCmdUI* pCmdUI);
  426. afx_msg void OnFileISDBDownload();
  427. afx_msg void OnUpdateFileISDBDownload(CCmdUI* pCmdUI);
  428. afx_msg void OnFileProperties();
  429. afx_msg void OnUpdateFileProperties(CCmdUI* pCmdUI);
  430. afx_msg void OnFileClosePlaylist();
  431. afx_msg void OnFileCloseMedia(); // no menu item
  432. afx_msg void OnUpdateFileClose(CCmdUI* pCmdUI);
  433. afx_msg void OnViewCaptionmenu();
  434. afx_msg void OnUpdateViewCaptionmenu(CCmdUI* pCmdUI);
  435. afx_msg void OnViewControlBar(UINT nID);
  436. afx_msg void OnUpdateViewControlBar(CCmdUI* pCmdUI);
  437. afx_msg void OnViewSubresync();
  438. afx_msg void OnUpdateViewSubresync(CCmdUI* pCmdUI);
  439. afx_msg void OnViewPlaylist();
  440. afx_msg void OnUpdateViewPlaylist(CCmdUI* pCmdUI);
  441. afx_msg void OnViewCapture();
  442. afx_msg void OnUpdateViewCapture(CCmdUI* pCmdUI);
  443. afx_msg void OnViewShaderEditor();
  444. afx_msg void OnUpdateViewShaderEditor(CCmdUI* pCmdUI);
  445. afx_msg void OnViewMinimal();
  446. afx_msg void OnUpdateViewMinimal(CCmdUI* pCmdUI);
  447. afx_msg void OnViewCompact();
  448. afx_msg void OnUpdateViewCompact(CCmdUI* pCmdUI);
  449. afx_msg void OnViewNormal();
  450. afx_msg void OnUpdateViewNormal(CCmdUI* pCmdUI);
  451. afx_msg void OnViewFullscreen();
  452. afx_msg void OnViewFullscreenSecondary();
  453. afx_msg void OnUpdateViewFullscreen(CCmdUI* pCmdUI);
  454. afx_msg void OnViewZoom(UINT nID);
  455. afx_msg void OnUpdateViewZoom(CCmdUI* pCmdUI);
  456. afx_msg void OnViewZoomAutoFit();
  457. afx_msg void OnViewDefaultVideoFrame(UINT nID);
  458. afx_msg void OnUpdateViewDefaultVideoFrame(CCmdUI* pCmdUI);
  459. afx_msg void OnViewKeepaspectratio();
  460. afx_msg void OnUpdateViewKeepaspectratio(CCmdUI* pCmdUI);
  461. afx_msg void OnViewCompMonDeskARDiff();
  462. afx_msg void OnUpdateViewCompMonDeskARDiff(CCmdUI* pCmdUI);
  463. afx_msg void OnViewPanNScan(UINT nID);
  464. afx_msg void OnUpdateViewPanNScan(CCmdUI* pCmdUI);
  465. afx_msg void OnViewPanNScanPresets(UINT nID);
  466. afx_msg void OnUpdateViewPanNScanPresets(CCmdUI* pCmdUI);
  467. afx_msg void OnViewRotate(UINT nID);
  468. afx_msg void OnUpdateViewRotate(CCmdUI* pCmdUI);
  469. afx_msg void OnViewAspectRatio(UINT nID);
  470. afx_msg void OnUpdateViewAspectRatio(CCmdUI* pCmdUI);
  471. afx_msg void OnViewAspectRatioNext();
  472. afx_msg void OnViewOntop(UINT nID);
  473. afx_msg void OnUpdateViewOntop(CCmdUI* pCmdUI);
  474. afx_msg void OnViewOptions();
  475. afx_msg void OnPlayPlay();
  476. afx_msg void OnPlayPause();
  477. afx_msg void OnPlayPlaypause();
  478. afx_msg void OnPlayStop();
  479. afx_msg void OnUpdatePlayPauseStop(CCmdUI* pCmdUI);
  480. afx_msg void OnPlayFramestep(UINT nID);
  481. afx_msg void OnUpdatePlayFramestep(CCmdUI* pCmdUI);
  482. afx_msg void OnPlaySeek(UINT nID);
  483. afx_msg void OnPlaySeekKey(UINT nID); // no menu item
  484. afx_msg void OnUpdatePlaySeek(CCmdUI* pCmdUI);
  485. afx_msg void OnPlayGoto();
  486. afx_msg void OnUpdateGoto(CCmdUI* pCmdUI);
  487. afx_msg void OnPlayChangeRate(UINT nID);
  488. afx_msg void OnUpdatePlayChangeRate(CCmdUI* pCmdUI);
  489. afx_msg void OnPlayResetRate();
  490. afx_msg void OnUpdatePlayResetRate(CCmdUI* pCmdUI);
  491. afx_msg void OnPlayChangeAudDelay(UINT nID);
  492. afx_msg void OnUpdatePlayChangeAudDelay(CCmdUI* pCmdUI);
  493. afx_msg void OnPlayFilters(UINT nID);
  494. afx_msg void OnUpdatePlayFilters(CCmdUI* pCmdUI);
  495. afx_msg void OnPlayShaders(UINT nID);
  496. afx_msg void OnUpdatePlayShaders(CCmdUI* pCmdUI);
  497. afx_msg void OnPlayAudio(UINT nID);
  498. afx_msg void OnUpdatePlayAudio(CCmdUI* pCmdUI);
  499. afx_msg void OnPlaySubtitles(UINT nID);
  500. afx_msg void OnUpdatePlaySubtitles(CCmdUI* pCmdUI);
  501. afx_msg void OnPlayLanguage(UINT nID);
  502. afx_msg void OnUpdatePlayLanguage(CCmdUI* pCmdUI);
  503. afx_msg void OnPlayVolume(UINT nID);
  504. afx_msg void OnPlayVolumeBoost(UINT nID);
  505. afx_msg void OnUpdatePlayVolumeBoost(CCmdUI* pCmdUI);
  506. afx_msg void OnAfterplayback(UINT nID);
  507. afx_msg void OnUpdateAfterplayback(CCmdUI* pCmdUI);
  508. afx_msg void OnNavigateSkip(UINT nID);
  509. afx_msg void OnUpdateNavigateSkip(CCmdUI* pCmdUI);
  510. afx_msg void OnNavigateSkipPlaylistItem(UINT nID);
  511. afx_msg void OnUpdateNavigateSkipPlaylistItem(CCmdUI* pCmdUI);
  512. afx_msg void OnNavigateMenu(UINT nID);
  513. afx_msg void OnUpdateNavigateMenu(CCmdUI* pCmdUI);
  514. afx_msg void OnNavigateAudio(UINT nID);
  515. afx_msg void OnNavigateSubpic(UINT nID);
  516. afx_msg void OnNavigateAngle(UINT nID);
  517. afx_msg void OnNavigateChapters(UINT nID);
  518. afx_msg void OnNavigateMenuItem(UINT nID);
  519. afx_msg void OnUpdateNavigateMenuItem(CCmdUI* pCmdUI);
  520. afx_msg void OnFavoritesAdd();
  521. afx_msg void OnUpdateFavoritesAdd(CCmdUI* pCmdUI);
  522. afx_msg void OnFavoritesOrganize();
  523. afx_msg void OnUpdateFavoritesOrganize(CCmdUI* pCmdUI);
  524. afx_msg void OnFavoritesFile(UINT nID);
  525. afx_msg void OnUpdateFavoritesFile(CCmdUI* pCmdUI);
  526. afx_msg void OnFavoritesDVD(UINT nID);
  527. afx_msg void OnUpdateFavoritesDVD(CCmdUI* pCmdUI);
  528. afx_msg void OnFavoritesDevice(UINT nID);
  529. afx_msg void OnUpdateFavoritesDevice(CCmdUI* pCmdUI);
  530. afx_msg void OnHelpHomepage();
  531. afx_msg void OnHelpDocumentation();
  532. afx_msg void OnHelpDonate();
  533. afx_msg void OnClose();
  534. };