]> git.saurik.com Git - wxWidgets.git/blob - utils/wxMMedia2/lib/vidxanm.h
648e8816db8878fbbac33abab7b3d942d6de6189
[wxWidgets.git] / utils / wxMMedia2 / lib / vidxanm.h
1 // /////////////////////////////////////////////////////////////////////////////
2 // Name: vidxanm.h
3 // Purpose: wxMMedia
4 // Author: Guilhem Lavaux
5 // Created: 1997
6 // Updated: 1998
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__
13
14 #ifdef __GNUG__
15 #pragma interface "vidxanm.h"
16 #endif
17
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
29 // need because it includes almost all "standard" wxWindows headers
30 #ifndef WX_PRECOMP
31 #include "wx/defs.h"
32 #include "wx/string.h"
33 #include "wx/process.h"
34 #endif
35
36 // ----------------------------------------------------------------------------
37 // System dependent headers
38
39 #if defined(WXMMEDIA_INTERNAL) && (defined(__X__) || defined(__WXGTK__))
40 #include <X11/Xlib.h>
41 #include <X11/Xatom.h>
42 #endif
43
44 // ----------------------------------------------------------------------------
45 // wxMMedia2 headers
46
47 #include "vidbase.h"
48
49 // ----------------------------------------------------------------------------
50 // Internal types
51
52 #ifdef WXMMEDIA_INTERNAL
53 typedef struct wxXANIMinternal {
54 Display *xanim_dpy;
55 Window xanim_window;
56 Atom xanim_atom, xanim_ret;
57 } wxXANIMinternal;
58
59 #ifndef __XANIM_COMMAND__
60 #define __XANIM_COMMAND__ "/usr/X11R6/bin/xanim"
61 #endif
62
63 #endif
64
65 // ----------------------------------------------------------------------------
66 // Class definition
67
68 class WXDLLEXPORT wxVideoXANIM : public wxVideoBaseDriver {
69 DECLARE_DYNAMIC_CLASS(wxVideoXANIM)
70 protected:
71 // Remember the state of the subprocess
72 bool m_xanim_started, m_paused;
73 // Pure X11 variables
74 struct wxXANIMinternal *m_internal;
75 wxString m_filename;
76 wxProcess *m_xanim_detector;
77 // Remember to delete the temporary file when necessary
78 bool m_remove_file;
79 public:
80 wxVideoXANIM();
81 wxVideoXANIM(wxInputStream& str);
82 wxVideoXANIM(const wxString& filename);
83 ~wxVideoXANIM();
84
85 bool Play();
86 bool Pause();
87 bool Resume();
88 bool Stop();
89
90 bool SetVolume(wxUint8 vol);
91 bool Resize(wxUint16 w, wxUint16 h);
92 bool GetSize(wxSize& size) const;
93
94 bool IsCapable(wxVideoType v_type);
95
96 bool AttachOutput(wxWindow& output);
97 void DetachOutput();
98
99 bool IsPaused();
100 bool IsStopped();
101
102 friend class wxVideoXANIMProcess;
103
104 protected:
105 // Start the subprocess with the right parameters
106 bool RestartXANIM();
107 // Send a command to the subprocess
108 bool SendCommand(const char *command,char **ret = NULL,
109 wxUint32 *size = NULL);
110 };
111
112 #endif