PTLib  Version 2.10.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vsdl.h
Go to the documentation of this file.
1 /*
2  * vsdl.h
3  *
4  * Classes to support video output via SDL
5  *
6  * Copyright (c) 1999-2000 Equivalence Pty. Ltd.
7  *
8  * The contents of this file are subject to the Mozilla Public License
9  * Version 1.0 (the "License"); you may not use this file except in
10  * compliance with the License. You may obtain a copy of the License at
11  * http://www.mozilla.org/MPL/
12  *
13  * Software distributed under the License is distributed on an "AS IS"
14  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
15  * the License for the specific language governing rights and limitations
16  * under the License.
17  *
18  * The Original Code is Open H323 Library.
19  *
20  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
21  *
22  * Contributor(s): Derek J Smithies (derek@indranet.co.nz)
23  *
24  * $Revision: 26456 $
25  * $Author: rjongbloed $
26  * $Date: 2011-09-22 00:27:10 -0500 (Thu, 22 Sep 2011) $
27  */
28 
29 #ifndef PTLIB_VSDL_H
30 #define PTLIB_VSDL_H
31 
32 #if P_SDL
33 
34 #include <ptlib.h>
35 #include <SDL/SDL.h>
36 
37 #include <ptlib/videoio.h>
38 
39 #undef main
40 
41 
44 class PVideoOutputDevice_SDL : public PVideoOutputDevice
45 {
46  PCLASSINFO(PVideoOutputDevice_SDL, PVideoOutputDevice);
47 
48  public:
51  PVideoOutputDevice_SDL();
52 
55  ~PVideoOutputDevice_SDL();
56 
59  virtual PStringArray GetDeviceNames() const;
60 
63  virtual PBoolean Open(
64  const PString & /*deviceName*/,
65  PBoolean /*startImmediate*/ = true
66  );
67 
70  virtual PBoolean Close();
71 
74  virtual PBoolean IsOpen();
75 
86  virtual PBoolean SetColourFormat(
87  const PString & colourFormat
88  );
89 
98  virtual PBoolean SetFrameSize(
99  unsigned width,
100  unsigned height
101  );
102 
108  virtual PINDEX GetMaxFrameBytes();
109 
112  virtual PBoolean SetFrameData(
113  unsigned x,
114  unsigned y,
115  unsigned width,
116  unsigned height,
117  const BYTE * data,
118  PBoolean endFrame = true
119  );
120 
121  protected:
122  PSyncPoint m_operationComplete;
123  SDL_Overlay * m_overlay;
124  unsigned m_x, m_y;
125 
126  private:
127  PString GetTitle() const;
128  void UpdateContent();
129  void PostEvent(unsigned code);
130 
131  friend class PSDL_Window;
132 };
133 
134 
135 typedef PVideoOutputDevice_SDL PSDLVideoDevice; // Backward compatibility
136 
137 
138 #endif // P_SDL
139 
140 #endif // PTLIB_VSDL_H
141 
142 
143 // End Of File ///////////////////////////////////////////////////////////////