// ///////////////////////////////////////////////////////////////////////////// // Name: vidbase.h // Purpose: wxMMedia // Author: Guilhem Lavaux // Created: 1997 // Updated: 1998 // Copyright: (C) 1997, 1998, Guilhem Lavaux // CVS: $Id$ // License: wxWindows license // ///////////////////////////////////////////////////////////////////////////// /* Real -*- C++ -*- */ #ifndef __VID_bdrv_H__ #define __VID_bdrv_H__ #ifdef __GNUG__ #pragma interface "vidbase.h" #endif // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ #pragma hdrstop #endif // for all others, include the necessary headers (this file is usually all you // need because it includes almost all "standard" wxWindows headers #ifndef WX_PRECOMP #include "wx/defs.h" #include "wx/stream.h" #include "wx/string.h" #include "wx/window.h" #include "wx/frame.h" #endif // ---------------------------------------------------------------------------- // wxMMedia2 (video) types typedef enum { wxVIDEO_MSAVI, wxVIDEO_MPEG, wxVIDEO_QT, wxVIDEO_GIF, wxVIDEO_JMOV, wxVIDEO_FLI, wxVIDEO_IFF, wxVIDEO_SGI, wxVIDEO_MPEG2 } wxVideoType; // ---------------------------------------------------------------------------- // Classes definition class WXDLLEXPORT wxVideoBaseDriver : public wxObject { DECLARE_ABSTRACT_CLASS(wxVideoBaseDriver) protected: wxWindow *m_video_output; public: // Ctors wxVideoBaseDriver(); wxVideoBaseDriver(wxInputStream& str); wxVideoBaseDriver(const wxString& filename); // Dtor virtual ~wxVideoBaseDriver(); // Usual functions ... They all return FALSE in case of errors. virtual bool Play() = 0; virtual bool Stop() = 0; virtual bool Pause() = 0; virtual bool Resume() = 0; // Size management virtual bool SetSize(wxSize size) = 0; virtual bool GetSize(wxSize& size) const = 0; // Test the capability of the driver to handle the specified type virtual bool IsCapable(wxVideoType WXUNUSED(v_type)) const { return FALSE; } // Return the video codec name virtual wxString GetMovieCodec() const = 0; // Return the audio codec name virtual wxString GetAudioCodec() const = 0; // Return misc info about audio virtual wxUint32 GetSampleRate() const = 0; virtual wxUint8 GetChannels() const = 0; virtual wxUint8 GetBPS() const = 0; // Return frame rate virtual double GetFrameRate() const = 0; // Return number of frames virtual wxUint32 GetNbFrames() const = 0; // Called when the movie finished virtual void OnFinished() {} // Attaches the video output to a window. The video will be shown in that window. virtual bool AttachOutput(wxWindow& output); virtual void DetachOutput(); // They return the state of the movie. virtual bool IsPaused() const = 0; virtual bool IsStopped() const = 0; }; WXDLLEXPORT wxFrame *wxVideoCreateFrame(wxVideoBaseDriver *vid_drv); #endif