]> git.saurik.com Git - wxWidgets.git/blame - contrib/include/wx/mmedia/vidwin.h
implemented wxEventLoop for wxMac
[wxWidgets.git] / contrib / include / wx / mmedia / vidwin.h
CommitLineData
e8482f24
GL
1// ----------------------------------------------------------------------------
2// Name: vidwin.h
3// Purpose: wxMMedia
4// Author: Guilhem Lavaux
5// Created: February 1998
6// Updated:
7// Copyright: (C) 1998, Guilhem Lavaux
8// License: wxWindows license
9// ----------------------------------------------------------------------------
10
11#ifndef __VID_windows_H__
12#define __VID_windows_H__
13
2b3644c7
JS
14#if defined(__WINDOWS__) && !defined(__MINGW32__) && !defined(__WATCOMC__)
15// versions of Open Watcom and MinGW tested against this source does not
16// deliver "digitalv.h" required in this feature
17
e8482f24
GL
18// ----------------------------------------------------------------------------
19// headers
20// ----------------------------------------------------------------------------
21// For compilers that support precompilation, includes "wx/wx.h".
22#include "wx/wxprec.h"
23
24#ifdef __BORLANDC__
25 #pragma hdrstop
26#endif
27
28// for all others, include the necessary headers (this file is usually all you
be5a51fb 29// need because it includes almost all "standard" wxWidgets headers
e8482f24
GL
30#ifndef WX_PRECOMP
31 #include "wx/string.h"
32 #include "wx/stream.h"
33 #include "wx/window.h"
34#endif
35
36// ----------------------------------------------------------------------------
37// wxMMedia2 headers
38
15e8daec 39#include "wx/mmedia/defs.h"
e8482f24
GL
40#include "wx/mmedia/vidbase.h"
41
42// ----------------------------------------------------------------------------
43// System headers and private types
44
45#ifdef WXMMEDIA_INTERNAL
46#include <windows.h>
47#include <mmsystem.h>
48
49typedef struct VIDW_Internal {
50 MCIDEVICEID m_dev_id;
51} wxVIDWinternal;
52#endif
53
54// ----------------------------------------------------------------------------
55// Class definition
56
15e8daec 57class WXDLLIMPEXP_MMEDIA wxVideoWindows : public wxVideoBaseDriver {
e8482f24
GL
58 DECLARE_DYNAMIC_CLASS(wxVideoWindows)
59protected:
60 struct VIDW_Internal *m_internal;
61 bool m_paused, m_stopped, m_remove_file;
62 wxString m_filename;
63 double m_frameRate;
64 wxUint8 m_bps;
65
66 void OpenFile();
67public:
68 wxVideoWindows(void);
69 wxVideoWindows(wxInputStream& str);
70 wxVideoWindows(const wxString& fname);
71 ~wxVideoWindows(void);
72
73 bool Play();
74 bool Stop();
75 bool Pause();
76 bool Resume();
77
78 bool GetSize(wxSize& size) const;
79 bool SetSize(wxSize size);
80
81 // Return codec name for each stream.
82 wxString GetMovieCodec() const;
83 wxString GetAudioCodec() const;
84 // Return misc. info about audio
85 wxUint32 GetSampleRate() const;
86 wxUint8 GetChannels() const;
87 wxUint8 GetBPS() const;
88 // Return the frame rate of the video (in frames/second)
89 double GetFrameRate() const;
90 // Return the total number of frames in the movie
91 wxUint32 GetNbFrames() const;
92
2bbf230a 93 bool IsCapable(wxVideoType v_type) const;
e8482f24
GL
94
95 bool AttachOutput(wxWindow& output);
96 void DetachOutput(void);
97
98 bool IsPaused() const;
99 bool IsStopped() const;
100};
101
102#endif
2b3644c7
JS
103
104#endif