Starshatter_Open
Open source Starshatter engine
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
AviFile.h
Go to the documentation of this file.
1 /* Project nGenEx
2  Destroyer Studios LLC
3  Copyright © 1997-2004. All Rights Reserved.
4 
5  SUBSYSTEM: nGenEx.lib
6  FILE: AviFile.h
7  AUTHOR: John DiCamillo
8 
9 
10  OVERVIEW
11  ========
12  PCX image file loader
13 */
14 
15 #ifndef AviFile_h
16 #define AviFile_h
17 
18 #include "Text.h"
19 #include "Color.h"
20 #include "Bitmap.h"
21 #include "Geometry.h"
22 
23 // +--------------------------------------------------------------------+
24 
25 struct IAVIFile;
26 struct IAVIStream;
27 
28 // +--------------------------------------------------------------------+
29 
30 class AviFile
31 {
32 public:
33  static const char* TYPENAME() { return "AviFile"; }
34 
35  // open for reading:
36  AviFile(const char* fname);
37 
38  // create for writing
39  AviFile(const char* fname, const Rect& rect, int frame_rate=30);
40  ~AviFile();
41 
42  HRESULT AddFrame(const Bitmap& bmp);
43  HRESULT GetFrame(double seconds, Bitmap& bmp);
44 
45 private:
46  Rect rect;
47  Text filename;
48  int fps;
49 
50  IAVIFile* pfile; // created by CreateAvi
51  IAVIStream* ps;
52  IAVIStream* ps_comp; // video stream, when first created
53  DWORD frame_size; // total bytes per frame of video
54  DWORD nframe; // which frame will be added next
55  DWORD nsamp; // which sample will be added next
56  bool play;
57  bool iserr; // if true, then no function will do anything
58 };
59 
60 // +--------------------------------------------------------------------+
61 
62 
63 #endif AviFile_h