]>
git.saurik.com Git - wxWidgets.git/blob - contrib/include/wx/mmedia/vidxanm.h
1 // /////////////////////////////////////////////////////////////////////////////
4 // Author: Guilhem Lavaux
7 // Copyright: (C) 1997, 1998, Guilhem Lavaux
8 // License: wxWindows license
9 // /////////////////////////////////////////////////////////////////////////////
10 /* Real -*- C++ -*- */
11 #ifndef __VID_xanim_H__
12 #define __VID_xanim_H__
15 #pragma interface "vidxanm.h"
18 // ----------------------------------------------------------------------------
20 // ----------------------------------------------------------------------------
21 // For compilers that support precompilation, includes "wx/wx.h".
22 #include "wx/wxprec.h"
28 // for all others, include the necessary headers (this file is usually all you
29 // need because it includes almost all "standard" wxWindows headers
32 #include "wx/string.h"
33 #include "wx/process.h"
36 // ----------------------------------------------------------------------------
37 // System dependent headers
39 #if defined(WXMMEDIA_INTERNAL) && (defined(__X__) || defined(__WXGTK__))
41 #include <X11/Xatom.h>
44 // ----------------------------------------------------------------------------
47 #include "wx/mmedia/vidbase.h"
49 // ----------------------------------------------------------------------------
52 #ifdef WXMMEDIA_INTERNAL
53 typedef struct wxXANIMinternal
{
56 Atom xanim_atom
, xanim_ret
;
59 #ifndef __XANIM_COMMAND__
60 #define __XANIM_COMMAND__ "/usr/X11R6/bin/xanim"
65 // ----------------------------------------------------------------------------
68 class WXDLLEXPORT wxVideoXANIM
: public wxVideoBaseDriver
{
69 DECLARE_DYNAMIC_CLASS(wxVideoXANIM
)
71 // Remember the state of the subprocess
72 bool m_xanim_started
, m_paused
;
74 struct wxXANIMinternal
*m_internal
;
76 wxProcess
*m_xanim_detector
;
77 // Remember to delete the temporary file when necessary
80 wxUint32 m_sampleRate
;
85 wxString m_movieCodec
, m_audioCodec
;
89 wxVideoXANIM(wxInputStream
& str
);
90 wxVideoXANIM(const wxString
& filename
);
98 bool SetVolume(wxUint8 vol
);
99 bool SetSize(wxSize size
);
100 bool GetSize(wxSize
& size
) const;
102 // Return the video codec name
103 wxString
GetMovieCodec() const;
104 // Return the audio codec name
105 wxString
GetAudioCodec() const;
106 // Return misc info about audio
107 wxUint32
GetSampleRate() const;
108 wxUint8
GetChannels() const;
109 wxUint8
GetBPS() const;
111 double GetFrameRate() const;
112 // Return number of frames in the movie
113 wxUint32
GetNbFrames() const;
115 bool IsCapable(wxVideoType v_type
) const;
117 bool AttachOutput(wxWindow
& output
);
120 bool IsPaused() const;
121 bool IsStopped() const;
123 friend class wxVideoXANIMProcess
;
126 // Start the subprocess with the right parameters
128 // Send a command to the subprocess
129 bool SendCommand(const char *command
,char **ret
= NULL
,
130 wxUint32
*size
= NULL
);
132 // Collect informations from XAnim