- Main Page
- Namespaces
- Classes
- Files
- Directories

- File List
- File Members

# MainFrm.h

    00001 /*
    00002  *      Copyright (C) 2003-2005 Gabest
    00003  *      http://www.gabest.org
    00004  *
    00005  *  This Program is free software; you can redistribute it and/or modify
    00006  *  it under the terms of the GNU General Public License as published by
    00007  *  the Free Software Foundation; either version 2, or (at your option)
    00008  *  any later version.
    00009  *
    00010  *  This Program is distributed in the hope that it will be useful,
    00011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    00012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    00013  *  GNU General Public License for more details.
    00014  *
    00015  *  You should have received a copy of the GNU General Public License
    00016  *  along with GNU Make; see the file COPYING.  If not, write to
    00017  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
    00018  *  http://www.gnu.org/copyleft/gpl.html
    00019  *
    00020  */
    00021
    00022 #pragma once
    00023
    00024 #include <atlbase.h>
    00025
    00026 #include "ChildView.h"
    00027 #include "PlayerSeekBar.h"
    00028 #include "PlayerToolBar.h"
    00029 #include "PlayerInfoBar.h"
    00030 #include "PlayerStatusBar.h"
    00031 #include "PlayerSubresyncBar.h"
    00032 #include "PlayerPlaylistBar.h"
    00033 #include "PlayerCaptureBar.h"
    00034 #include "PPageSheet.h"
    00035 #include "PPageFileInfoSheet.h"
    00036 #include "OpenCapDeviceDlg.h"
    00037
    00038 #include "FileDropTarget.h"
    00039
    00040 #include "KeyProvider.h"
    00041
    00042 #include "..\..\subpic\ISubPic.h"
    00043
    00044 #include "RealMediaGraph.h"
    00045 #include "QuicktimeGraph.h"
    00046 #include "ShockwaveGraph.h"
    00047
    00048 #include "..\..\..\include\IChapterInfo.h"
    00049 #include "..\..\..\include\IKeyFrameInfo.h"
    00050 #include "..\..\..\include\IBufferInfo.h"
    00051
    00052 #include "WebServer.h"
    00053
    00054 enum {PM_NONE, PM_FILE, PM_DVD, PM_CAPTURE};
    00055
    00056 class OpenMediaData
    00057 {
    00058 public:
    00059 //      OpenMediaData() {}
    00060         virtual ~OpenMediaData() {} // one virtual funct is needed to enable rtti
    00061         CString title;
    00062         CList<CString> subs;
    00063 };
    00064
    00065 class OpenFileData : public OpenMediaData
    00066 {
    00067 public:
    00068         OpenFileData() : rtStart(0) {}
    00069         CList<CString> fns;
    00070         REFERENCE_TIME rtStart;
    00071 };
    00072
    00073 class OpenDVDData : public OpenMediaData
    00074 {
    00075 public:
    00076 //      OpenDVDData() {}
    00077         CString path;
    00078         CComPtr<IDvdState> pDvdState;
    00079 };
    00080
    00081 class OpenDeviceData : public OpenMediaData
    00082 {
    00083 public:
    00084         OpenDeviceData() {vinput = vchannel = ainput = -1;}
    00085         CStringW DisplayName[2];
    00086         int vinput, vchannel, ainput;
    00087 };
    00088
    00089 class CMainFrame;
    00090
    00091 class CGraphThread : public CWinThread
    00092 {
    00093         CMainFrame* m_pMainFrame;
    00094
    00095         DECLARE_DYNCREATE(CGraphThread);
    00096
    00097 public:
    00098         CGraphThread() : m_pMainFrame(NULL) {}
    00099
    00100         void SetMainFrame(CMainFrame* pMainFrame) {m_pMainFrame = pMainFrame;}
    00101
    00102         BOOL InitInstance();
    00103         int ExitInstance();
    00104
    00105         enum {TM_EXIT=WM_APP, TM_OPEN, TM_CLOSE};
    00106         DECLARE_MESSAGE_MAP()
    00107         afx_msg void OnExit(WPARAM wParam, LPARAM lParam);
    00108         afx_msg void OnOpen(WPARAM wParam, LPARAM lParam);
    00109         afx_msg void OnClose(WPARAM wParam, LPARAM lParam);
    00110 };
    00111 /*
    00112 class CKeyFrameFinderThread : public CWinThread, public CCritSec
    00113 {
    00114         DECLARE_DYNCREATE(CKeyFrameFinderThread);
    00115
    00116 public:
    00117         CKeyFrameFinderThread() {}
    00118
    00119         CUIntArray m_kfs; // protected by (CCritSec*)this
    00120
    00121         BOOL InitInstance();
    00122         int ExitInstance();
    00123
    00124         enum {TM_EXIT=WM_APP, TM_INDEX, TM_BREAK};
    00125         DECLARE_MESSAGE_MAP()
    00126         afx_msg void OnExit(WPARAM wParam, LPARAM lParam);
    00127         afx_msg void OnIndex(WPARAM wParam, LPARAM lParam);
    00128         afx_msg void OnBreak(WPARAM wParam, LPARAM lParam);
    00129 };
    00130 */
    00131 interface ISubClock;
    00132
    00133 class CMainFrame : public CFrameWnd, public CDropTarget
    00134 {
    00135         enum
    00136         {
    00137                 TIMER_STREAMPOSPOLLER = 1,
    00138                 TIMER_STREAMPOSPOLLER2,
    00139                 TIMER_FULLSCREENCONTROLBARHIDER,
    00140                 TIMER_FULLSCREENMOUSEHIDER,
    00141                 TIMER_STATS,
    00142                 TIMER_LEFTCLICK,
    00143                 TIMER_STATUSERASER
    00144         };
    00145
    00146         friend class CPPageFileInfoSheet;
    00147         friend class CPPageLogo;
    00148
    00149         // TODO: wrap these graph objects into a class to make it look cleaner
    00150
    00151         DWORD m_dwRegister;
    00152
    00153         CComPtr<IGraphBuilder> pGB;
    00154         CComQIPtr<IMediaControl> pMC;
    00155         CComQIPtr<IMediaEventEx> pME;
    00156         CComQIPtr<IVideoWindow> pVW;
    00157         CComQIPtr<IBasicVideo> pBV;
    00158         CComQIPtr<IBasicAudio> pBA;
    00159         CComQIPtr<IMediaSeeking> pMS;
    00160         CComQIPtr<IVideoFrameStep> pFS;
    00161         CComQIPtr<IQualProp, &IID_IQualProp> pQP;
    00162         CComQIPtr<IBufferInfo> pBI;
    00163         CComQIPtr<IAMOpenProgress> pAMOP;
    00164
    00165         CComQIPtr<IDvdControl2> pDVDC;
    00166         CComQIPtr<IDvdInfo2> pDVDI;
    00167
    00168         CComQIPtr<IBaseFilter> pVMR;
    00169
    00170         CComPtr<ICaptureGraphBuilder2> pCGB;
    00171         CStringW m_VidDispName, m_AudDispName;
    00172         CComPtr<IBaseFilter> pVidCap, pAudCap;
    00173         CComPtr<IAMVideoCompression> pAMVCCap, pAMVCPrev;
    00174         CComPtr<IAMStreamConfig> pAMVSCCap, pAMVSCPrev, pAMASC;
    00175         CComPtr<IAMCrossbar> pAMXBar;
    00176         CComPtr<IAMTVTuner> pAMTuner;
    00177         CComPtr<IAMDroppedFrames> pAMDF;
    00178
    00179         CComPtr<ISubPicAllocatorPresenter> m_pCAP;
    00180
    00181         void SetBalance(int balance);
    00182
    00183         // subtitles
    00184
    00185         CCritSec m_csSubLock;
    00186         CInterfaceList<ISubStream> m_pSubStreams;
    00187         int m_iSubtitleSel; // if(m_iSubtitleSel&(1<<31)): disabled
    00188         DWORD_PTR m_nSubtitleId;
    00189
    00190         friend class CTextPassThruFilter;
    00191
    00192         // windowing
    00193
    00194         CRect m_lastWindowRect;
    00195         CPoint m_lastMouseMove;
    00196
    00197         void ShowControls(int nCS, bool fSave = true);
    00198
    00199         void SetDefaultWindowRect();
    00200         void RestoreDefaultWindowRect();
    00201         void ZoomVideoWindow(double scale = -1);
    00202
    00203         void SetAlwaysOnTop(int i);
    00204
    00205         // dynamic menus
    00206
    00207         void SetupOpenCDSubMenu();
    00208         void SetupFiltersSubMenu();
    00209         void SetupAudioSwitcherSubMenu();
    00210         void SetupSubtitlesSubMenu();
    00211         void SetupNavAudioSubMenu();
    00212         void SetupNavSubtitleSubMenu();
    00213         void SetupNavAngleSubMenu();
    00214         void SetupNavChaptersSubMenu();
    00215         void SetupFavoritesSubMenu();
    00216         void SetupShadersSubMenu();
    00217
    00218         void SetupNavStreamSelectSubMenu(CMenu* pSub, UINT id, DWORD dwSelGroup);
    00219         void OnNavStreamSelectSubMenu(UINT id, DWORD dwSelGroup);
    00220
    00221         CMenu m_popupmain, m_popup;
    00222         CMenu m_opencds;
    00223         CMenu m_filters, m_subtitles, m_audios;
    00224         CAutoPtrArray<CMenu> m_filterpopups;
    00225         CMenu m_navaudio, m_navsubtitle, m_navangle;
    00226         CMenu m_navchapters, m_navtitles;
    00227         CMenu m_favorites;
    00228         CMenu m_shaders;
    00229         CString m_shaderlabel;
    00230
    00231         CInterfaceArray<ISpecifyPropertyPages> m_spparray;
    00232         CInterfaceArray<IAMStreamSelect> m_ssarray;
    00233
    00234         // chapters (file mode)
    00235         CComPtr<IDSMChapterBag> m_pCB;
    00236         void SetupChapters();
    00237
    00238         //
    00239
    00240         void SetupIViAudReg();
    00241
    00242         void AddTextPassThruFilter();
    00243
    00244         int m_nLoops;
    00245
    00246         bool m_fCustomGraph;
    00247         bool m_fRealMediaGraph, m_fShockwaveGraph, m_fQuicktimeGraph;
    00248
    00249         CComPtr<ISubClock> m_pSubClock;
    00250
    00251         int m_fFrameSteppingActive;
    00252         int m_VolumeBeforeFrameStepping;
    00253
    00254         bool m_fEndOfStream;
    00255
    00256         bool m_fBuffering;
    00257
    00258         bool m_fLiveWM;
    00259
    00260         bool m_fUpdateInfoBar;
    00261
    00262         void SendStatusMessage(CString msg, int nTimeOut);
    00263         CString m_playingmsg, m_closingmsg;
    00264
    00265         REFERENCE_TIME m_rtDurationOverride;
    00266
    00267         CComPtr<IUnknown> m_pProv;
    00268
    00269         void CleanGraph();
    00270
    00271         CComPtr<IBaseFilter> pAudioDubSrc;
    00272
    00273         void ShowOptions(int idPage = 0);
    00274
    00275         bool GetDIB(BYTE** ppData, long& size, bool fSilent = false);
    00276         void SaveImage(LPCTSTR fn);
    00277
    00278         //
    00279
    00280         friend class CWebClientSocket;
    00281         friend class CWebServer;
    00282         CAutoPtr<CWebServer> m_pWebServer;
    00283
    00284 public:
    00285         void StartWebServer(int nPort);
    00286         void StopWebServer();
    00287
    00288         CString GetStatusMessage();
    00289         bool IsMuted() {return m_wndToolBar.GetVolume() == -10000;}
    00290         int GetVolume() {return m_wndToolBar.m_volctrl.GetPos();}
    00291
    00292 public:
    00293         CMainFrame();
    00294
    00295         DECLARE_DYNAMIC(CMainFrame)
    00296
    00297 // Attributes
    00298 public:
    00299         int m_iPlaybackMode;
    00300
    00301         bool m_fFullScreen;
    00302         bool m_fHideCursor;
    00303
    00304         bool IsFrameLessWindow() {return(m_fFullScreen || AfxGetAppSettings().fHideCaptionMenu);}
    00305         bool IsCaptionMenuHidden() {return(!m_fFullScreen && AfxGetAppSettings().fHideCaptionMenu);}
    00306         bool IsSomethingLoaded() {return(m_iMediaLoadState == MLS_LOADING || m_iMediaLoadState == MLS_LOADED);}
    00307         bool IsPlaylistEmpty() {return(m_wndPlaylistBar.GetCount() == 0);}
    00308         bool IsInteractiveVideo() {return(AfxGetAppSettings().fIntRealMedia && m_fRealMediaGraph || m_fShockwaveGraph);}
    00309
    00310         CControlBar* m_pLastBar;
    00311
    00312 protected:
    00313         enum {MLS_CLOSED, MLS_LOADING, MLS_LOADED, MLS_CLOSING};
    00314         int m_iMediaLoadState;
    00315
    00316         bool m_fAudioOnly;
    00317         dispmode m_dmBeforeFullscreen;
    00318
    00319         DVD_DOMAIN m_iDVDDomain;
    00320         int m_iSpeedLevel;
    00321
    00322         double m_ZoomX, m_ZoomY, m_PosX, m_PosY;
    00323         int m_AngleX, m_AngleY, m_AngleZ;
    00324
    00325 // Operations
    00326         bool OpenMediaPrivate(CAutoPtr<OpenMediaData> pOMD);
    00327         void CloseMediaPrivate();
    00328
    00329         void SendNowPlayingToMSN();
    00330
    00331         void OpenCreateGraphObject(OpenMediaData* pOMD);
    00332         void OpenFile(OpenFileData* pOFD);
    00333         void OpenDVD(OpenDVDData* pODD);
    00334         void OpenCapture(OpenDeviceData* pODD);
    00335         void OpenCustomizeGraph();
    00336         void OpenSetupVideo();
    00337         void OpenSetupAudio();
    00338         void OpenSetupInfoBar();
    00339         void OpenSetupStatsBar();
    00340         void OpenSetupStatusBar();
    00341         // void OpenSetupToolBar();
    00342         void OpenSetupCaptureBar();
    00343         void OpenSetupWindowTitle(CString fn = _T(""));
    00344
    00345         friend class CGraphThread;
    00346         CGraphThread* m_pGraphThread;
    00347
    00348         CArray<REFERENCE_TIME> m_kfs;
    00349
    00350         bool m_fOpeningAborted;
    00351
    00352 public:
    00353         void OpenCurPlaylistItem(REFERENCE_TIME rtStart = 0);
    00354         void OpenMedia(CAutoPtr<OpenMediaData> pOMD);
    00355         void CloseMedia();
    00356
    00357         void AddCurDevToPlaylist();
    00358
    00359         bool m_fTrayIcon;
    00360         void ShowTrayIcon(bool fShow);
    00361         void SetTrayTip(CString str);
    00362
    00363         CSize GetVideoSize();
    00364         void ToggleFullscreen(bool fToNearest, bool fSwitchScreenResWhenHasTo);
    00365         void MoveVideoWindow(bool fShowStats = false);
    00366         void RepaintVideo();
    00367
    00368         OAFilterState GetMediaState();
    00369         REFERENCE_TIME GetPos(), GetDur();
    00370         void SeekTo(REFERENCE_TIME rt, bool fSeekToKeyFrame = false);
    00371
    00372         bool LoadSubtitle(CString fn);
    00373         void UpdateSubtitle(bool fApplyDefStyle = false);
    00374         void SetSubtitle(ISubStream* pSubStream, bool fApplyDefStyle = false);
    00375         void ReplaceSubtitle(ISubStream* pSubStreamOld, ISubStream* pSubStreamNew);
    00376         void InvalidateSubtitle(DWORD_PTR nSubtitleId = -1, REFERENCE_TIME rtInvalidate = -1);
    00377         void ReloadSubtitle();
    00378
    00379         // capturing
    00380         bool m_fCapturing;
    00381         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
    00382         bool BuildToCapturePreviewPin(
    00383                 IBaseFilter* pVidCap, IPin** pVidCapPin, IPin** pVidPrevPin,
    00384                 IBaseFilter* pAudCap, IPin** pAudCapPin, IPin** pAudPrevPin);
    00385         bool BuildGraphVideoAudio(bool fVPreview, bool fVCapture, bool fAPreview, bool fACapture);
    00386         bool DoCapture(), StartCapture(), StopCapture();
    00387
    00388         bool DoAfterPlaybackEvent();
    00389
    00390         virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
    00391         virtual BOOL PreTranslateMessage(MSG* pMsg);
    00392         virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);
    00393         virtual void RecalcLayout(BOOL bNotify = TRUE);
    00394
    00395 // Implementation
    00396 public:
    00397         virtual ~CMainFrame();
    00398 #ifdef _DEBUG
    00399         virtual void AssertValid() const;
    00400         virtual void Dump(CDumpContext& dc) const;
    00401 #endif
    00402
    00403 protected:  // control bar embedded members
    00404
    00405         CChildView m_wndView;
    00406
    00407         CPlayerSeekBar m_wndSeekBar;
    00408         CPlayerToolBar m_wndToolBar;
    00409         CPlayerInfoBar m_wndInfoBar;
    00410         CPlayerInfoBar m_wndStatsBar;
    00411         CPlayerStatusBar m_wndStatusBar;
    00412         CList<CControlBar*> m_bars;
    00413
    00414         CPlayerSubresyncBar m_wndSubresyncBar;
    00415         CPlayerPlaylistBar m_wndPlaylistBar;
    00416         CPlayerCaptureBar m_wndCaptureBar;
    00417         CList<CControlBar*> m_dockingbars;
    00418
    00419         CFileDropTarget m_fileDropTarget;
    00420         // TODO
    00421         DROPEFFECT OnDragEnter(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
    00422         DROPEFFECT OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
    00423         BOOL OnDrop(COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point);
    00424         DROPEFFECT OnDropEx(COleDataObject* pDataObject, DROPEFFECT dropDefault, DROPEFFECT dropList, CPoint point);
    00425         void OnDragLeave();
    00426         DROPEFFECT OnDragScroll(DWORD dwKeyState, CPoint point);
    00427
    00428         friend class CPPagePlayback; // TODO
    00429         friend class CMPlayerCApp; // TODO
    00430
    00431         void LoadControlBar(CControlBar* pBar, CString section, UINT defDockBarID);
    00432         void SaveControlBar(CControlBar* pBar, CString section);
    00433
    00434 // Generated message map functions
    00435
    00436         DECLARE_MESSAGE_MAP()
    00437
    00438 public:
    00439         afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    00440         afx_msg void OnDestroy();
    00441
    00442         afx_msg LRESULT OnTaskBarRestart(WPARAM, LPARAM);
    00443         afx_msg LRESULT OnNotifyIcon(WPARAM, LPARAM);
    00444
    00445         afx_msg void OnSetFocus(CWnd* pOldWnd);
    00446         afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
    00447         afx_msg void OnMove(int x, int y);
    00448         afx_msg void OnSize(UINT nType, int cx, int cy);
    00449         afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
    00450         afx_msg void OnDisplayChange();
    00451
    00452         afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    00453         afx_msg void OnActivateApp(BOOL bActive, DWORD dwThreadID);
    00454         afx_msg LRESULT OnAppCommand(WPARAM wParam, LPARAM lParam);
    00455
    00456         afx_msg void OnTimer(UINT nIDEvent);
    00457
    00458         afx_msg LRESULT OnGraphNotify(WPARAM wParam, LPARAM lParam);
    00459         afx_msg LRESULT OnRepaintRenderLess(WPARAM wParam, LPARAM lParam);
    00460         afx_msg LRESULT OnResumeFromState(WPARAM wParam, LPARAM lParam);
    00461
    00462         BOOL OnButton(UINT id, UINT nFlags, CPoint point);
    00463         afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
    00464         afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
    00465         afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
    00466         afx_msg void OnMButtonDown(UINT nFlags, CPoint point);
    00467         afx_msg void OnMButtonUp(UINT nFlags, CPoint point);
    00468         afx_msg void OnMButtonDblClk(UINT nFlags, CPoint point);
    00469         afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
    00470         afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
    00471         afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point);
    00472         afx_msg LRESULT OnXButtonDown(WPARAM wParam, LPARAM lParam);
    00473         afx_msg LRESULT OnXButtonUp(WPARAM wParam, LPARAM lParam);
    00474         afx_msg LRESULT OnXButtonDblClk(WPARAM wParam, LPARAM lParam);
    00475         afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
    00476         afx_msg void OnMouseMove(UINT nFlags, CPoint point);
    00477
    00478         afx_msg LRESULT OnNcHitTest(CPoint point);
    00479
    00480         afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
    00481
    00482         afx_msg void OnInitMenu(CMenu* pMenu);
    00483         afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
    00484
    00485         BOOL OnMenu(CMenu* pMenu);
    00486         afx_msg void OnMenuPlayerShort();
    00487         afx_msg void OnMenuPlayerLong();
    00488         afx_msg void OnMenuFilters();
    00489
    00490         afx_msg void OnUpdatePlayerStatus(CCmdUI* pCmdUI);
    00491
    00492         afx_msg void OnFilePostOpenmedia();
    00493         afx_msg void OnUpdateFilePostOpenmedia(CCmdUI* pCmdUI);
    00494         afx_msg void OnFilePostClosemedia();
    00495         afx_msg void OnUpdateFilePostClosemedia(CCmdUI* pCmdUI);
    00496
    00497         afx_msg void OnBossKey();
    00498
    00499         afx_msg void OnStreamAudio(UINT nID);
    00500         afx_msg void OnStreamSub(UINT nID);
    00501         afx_msg void OnStreamSubOnOff();
    00502         afx_msg void OnOgmAudio(UINT nID);
    00503         afx_msg void OnOgmSub(UINT nID);
    00504         afx_msg void OnDvdAngle(UINT nID);
    00505         afx_msg void OnDvdAudio(UINT nID);
    00506         afx_msg void OnDvdSub(UINT nID);
    00507         afx_msg void OnDvdSubOnOff();
    00508
    00509
    00510         // menu item handlers
    00511
    00512         afx_msg void OnFileOpenmedia();
    00513         afx_msg void OnUpdateFileOpen(CCmdUI* pCmdUI);
    00514         afx_msg BOOL OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct);
    00515         afx_msg void OnFileOpendvd();
    00516         afx_msg void OnFileOpendevice();
    00517         afx_msg void OnFileOpenCD(UINT nID);
    00518         afx_msg void OnDropFiles(HDROP hDropInfo); // no menu item
    00519         afx_msg void OnFileSaveas();
    00520         afx_msg void OnUpdateFileSaveas(CCmdUI* pCmdUI);
    00521         afx_msg void OnFileSaveImage();
    00522         afx_msg void OnFileSaveImageAuto();
    00523         afx_msg void OnUpdateFileSaveImage(CCmdUI *pCmdUI);
    00524         afx_msg void OnFileConvert();
    00525         afx_msg void OnUpdateFileConvert(CCmdUI* pCmdUI);
    00526         afx_msg void OnFileLoadsubtitles();
    00527         afx_msg void OnUpdateFileLoadsubtitles(CCmdUI* pCmdUI);
    00528         afx_msg void OnFileSavesubtitles();
    00529         afx_msg void OnUpdateFileSavesubtitles(CCmdUI* pCmdUI);
    00530         afx_msg void OnSubtitledatabaseSearch();
    00531         afx_msg void OnUpdateSubtitledatabaseSearch(CCmdUI *pCmdUI);
    00532         afx_msg void OnSubtitledatabaseUpload();
    00533         afx_msg void OnUpdateSubtitledatabaseUpload(CCmdUI *pCmdUI);
    00534         afx_msg void OnSubtitledatabaseDownload();
    00535         afx_msg void OnUpdateSubtitledatabaseDownload(CCmdUI *pCmdUI);
    00536         afx_msg void OnFileProperties();
    00537         afx_msg void OnUpdateFileProperties(CCmdUI* pCmdUI);
    00538         afx_msg void OnFileClosePlaylist();
    00539         afx_msg void OnFileCloseMedia(); // no menu item
    00540         afx_msg void OnUpdateFileClose(CCmdUI* pCmdUI);
    00541
    00542         afx_msg void OnViewCaptionmenu();
    00543         afx_msg void OnUpdateViewCaptionmenu(CCmdUI *pCmdUI);
    00544         afx_msg void OnViewControlBar(UINT nID);
    00545         afx_msg void OnUpdateViewControlBar(CCmdUI* pCmdUI);
    00546         afx_msg void OnViewSubresync();
    00547         afx_msg void OnUpdateViewSubresync(CCmdUI* pCmdUI);
    00548         afx_msg void OnViewPlaylist();
    00549         afx_msg void OnUpdateViewPlaylist(CCmdUI* pCmdUI);
    00550         afx_msg void OnViewCapture();
    00551         afx_msg void OnUpdateViewCapture(CCmdUI* pCmdUI);
    00552         afx_msg void OnViewMinimal();
    00553         afx_msg void OnUpdateViewMinimal(CCmdUI* pCmdUI);
    00554         afx_msg void OnViewCompact();
    00555         afx_msg void OnUpdateViewCompact(CCmdUI* pCmdUI);
    00556         afx_msg void OnViewNormal();
    00557         afx_msg void OnUpdateViewNormal(CCmdUI* pCmdUI);
    00558         afx_msg void OnViewFullscreen();
    00559         afx_msg void OnViewFullscreenSecondary();
    00560         afx_msg void OnUpdateViewFullscreen(CCmdUI* pCmdUI);
    00561         afx_msg void OnViewZoom(UINT nID);
    00562         afx_msg void OnUpdateViewZoom(CCmdUI* pCmdUI);
    00563         afx_msg void OnViewDefaultVideoFrame(UINT nID);
    00564         afx_msg void OnUpdateViewDefaultVideoFrame(CCmdUI* pCmdUI);
    00565         afx_msg void OnViewKeepaspectratio();
    00566         afx_msg void OnUpdateViewKeepaspectratio(CCmdUI* pCmdUI);
    00567         afx_msg void OnViewCompMonDeskARDiff();
    00568         afx_msg void OnUpdateViewCompMonDeskARDiff(CCmdUI* pCmdUI);
    00569         afx_msg void OnViewPanNScan(UINT nID);
    00570         afx_msg void OnUpdateViewPanNScan(CCmdUI* pCmdUI);
    00571         afx_msg void OnViewPanNScanPresets(UINT nID);
    00572         afx_msg void OnUpdateViewPanNScanPresets(CCmdUI* pCmdUI);
    00573         afx_msg void OnViewRotate(UINT nID);
    00574         afx_msg void OnUpdateViewRotate(CCmdUI* pCmdUI);
    00575         afx_msg void OnViewAspectRatio(UINT nID);
    00576         afx_msg void OnUpdateViewAspectRatio(CCmdUI* pCmdUI);
    00577         afx_msg void OnViewOntop(UINT nID);
    00578         afx_msg void OnUpdateViewOntop(CCmdUI* pCmdUI);
    00579         afx_msg void OnViewOptions();
    00580
    00581         afx_msg void OnPlayPlay();
    00582         afx_msg void OnPlayPause();
    00583         afx_msg void OnPlayPlaypause();
    00584         afx_msg void OnPlayStop();
    00585         afx_msg void OnUpdatePlayPauseStop(CCmdUI* pCmdUI);
    00586         afx_msg void OnPlayFramestep(UINT nID);
    00587         afx_msg void OnUpdatePlayFramestep(CCmdUI* pCmdUI);
    00588         afx_msg void OnPlaySeek(UINT nID);
    00589         afx_msg void OnPlaySeekKey(UINT nID); // no menu item
    00590         afx_msg void OnUpdatePlaySeek(CCmdUI* pCmdUI);
    00591         afx_msg void OnPlayGoto();
    00592         afx_msg void OnUpdateGoto(CCmdUI* pCmdUI);
    00593         afx_msg void OnPlayChangeRate(UINT nID);
    00594         afx_msg void OnUpdatePlayChangeRate(CCmdUI* pCmdUI);
    00595         afx_msg void OnPlayResetRate();
    00596         afx_msg void OnUpdatePlayResetRate(CCmdUI* pCmdUI);
    00597         afx_msg void OnPlayChangeAudDelay(UINT nID);
    00598         afx_msg void OnUpdatePlayChangeAudDelay(CCmdUI* pCmdUI);
    00599         afx_msg void OnPlayFilters(UINT nID);
    00600         afx_msg void OnUpdatePlayFilters(CCmdUI* pCmdUI);
    00601         afx_msg void OnPlayShaders(UINT nID);
    00602         afx_msg void OnUpdatePlayShaders(CCmdUI* pCmdUI);
    00603         afx_msg void OnPlayAudio(UINT nID);
    00604         afx_msg void OnUpdatePlayAudio(CCmdUI* pCmdUI);
    00605         afx_msg void OnPlaySubtitles(UINT nID);
    00606         afx_msg void OnUpdatePlaySubtitles(CCmdUI* pCmdUI);
    00607         afx_msg void OnPlayLanguage(UINT nID);
    00608         afx_msg void OnUpdatePlayLanguage(CCmdUI* pCmdUI);
    00609         afx_msg void OnPlayVolume(UINT nID);
    00610         afx_msg void OnAfterplayback(UINT nID);
    00611         afx_msg void OnUpdateAfterplayback(CCmdUI* pCmdUI);
    00612
    00613         afx_msg void OnNavigateSkip(UINT nID);
    00614         afx_msg void OnUpdateNavigateSkip(CCmdUI* pCmdUI);
    00615         afx_msg void OnNavigateSkipPlaylistItem(UINT nID);
    00616         afx_msg void OnUpdateNavigateSkipPlaylistItem(CCmdUI* pCmdUI);
    00617         afx_msg void OnNavigateMenu(UINT nID);
    00618         afx_msg void OnUpdateNavigateMenu(CCmdUI* pCmdUI);
    00619         afx_msg void OnNavigateAudio(UINT nID);
    00620         afx_msg void OnNavigateSubpic(UINT nID);
    00621         afx_msg void OnNavigateAngle(UINT nID);
    00622         afx_msg void OnNavigateChapters(UINT nID);
    00623         afx_msg void OnNavigateMenuItem(UINT nID);
    00624         afx_msg void OnUpdateNavigateMenuItem(CCmdUI* pCmdUI);
    00625
    00626         afx_msg void OnFavoritesAdd();
    00627         afx_msg void OnUpdateFavoritesAdd(CCmdUI* pCmdUI);
    00628         afx_msg void OnFavoritesOrganize();
    00629         afx_msg void OnUpdateFavoritesOrganize(CCmdUI* pCmdUI);
    00630         afx_msg void OnFavoritesFile(UINT nID);
    00631         afx_msg void OnUpdateFavoritesFile(CCmdUI* pCmdUI);
    00632         afx_msg void OnFavoritesDVD(UINT nID);
    00633         afx_msg void OnUpdateFavoritesDVD(CCmdUI* pCmdUI);
    00634         afx_msg void OnFavoritesDevice(UINT nID);
    00635         afx_msg void OnUpdateFavoritesDevice(CCmdUI* pCmdUI);
    00636
    00637         afx_msg void OnHelpHomepage();
    00638         afx_msg void OnHelpDocumentation();
    00639         afx_msg void OnHelpDonate();
    00640 public:
    00641         afx_msg void OnClose();
    00642 };