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 };

Generated on Tue Dec 13 14:46:55 2005 for guliverkli by  doxygen 1.4.5