rlm@1
|
1 #ifndef VBA_WIN32_AVIWRITE_H
|
rlm@1
|
2 #define VBA_WIN32_AVIWRITE_H
|
rlm@1
|
3
|
rlm@1
|
4 #if _MSC_VER > 1000
|
rlm@1
|
5 #pragma once
|
rlm@1
|
6 #endif // _MSC_VER > 1000
|
rlm@1
|
7
|
rlm@1
|
8 #include <vfw.h>
|
rlm@1
|
9
|
rlm@1
|
10 class AVIWrite {
|
rlm@1
|
11 public:
|
rlm@1
|
12 AVIWrite();
|
rlm@1
|
13 virtual ~AVIWrite();
|
rlm@1
|
14
|
rlm@1
|
15 bool Open(const char *filename);
|
rlm@1
|
16 virtual bool AddFrame(const u8 *bmp);
|
rlm@1
|
17 void SetFPS(int fps);
|
rlm@1
|
18 void SetVideoFormat(BITMAPINFOHEADER *);
|
rlm@1
|
19 bool IsSoundAdded();
|
rlm@1
|
20 void SetSoundFormat(WAVEFORMATEX *);
|
rlm@1
|
21 bool AddSound(const u8 *sound, int len);
|
rlm@1
|
22 int videoFrames();
|
rlm@1
|
23 void Pause(bool pause);
|
rlm@1
|
24 bool IsPaused();
|
rlm@1
|
25
|
rlm@1
|
26 private:
|
rlm@1
|
27 int m_fps;
|
rlm@1
|
28 WAVEFORMATEX m_soundFormat;
|
rlm@1
|
29 BITMAPINFOHEADER m_bitmap;
|
rlm@1
|
30 AVISTREAMINFO m_header;
|
rlm@1
|
31 AVISTREAMINFO m_soundHeader;
|
rlm@1
|
32 PAVIFILE m_file;
|
rlm@1
|
33 PAVISTREAM m_stream;
|
rlm@1
|
34 PAVISTREAM m_streamCompressed;
|
rlm@1
|
35 PAVISTREAM m_streamSound;
|
rlm@1
|
36 AVICOMPRESSOPTIONS m_options;
|
rlm@1
|
37 AVICOMPRESSOPTIONS *m_arrayOptions[1];
|
rlm@1
|
38 int m_videoFrames;
|
rlm@1
|
39 int m_samplesSound;
|
rlm@1
|
40 int m_videoFramesTotal;
|
rlm@1
|
41 int m_samplesSoundTotal;
|
rlm@1
|
42 LONG m_totalBytes;
|
rlm@1
|
43 bool m_failed;
|
rlm@1
|
44 int m_segmentNumber;
|
rlm@1
|
45 bool m_usePrevOptions;
|
rlm@1
|
46 bool m_pauseRecording;
|
rlm@1
|
47 char m_aviFileName[MAX_PATH];
|
rlm@1
|
48 char m_aviBaseName[MAX_PATH];
|
rlm@1
|
49 char m_aviExtension[MAX_PATH];
|
rlm@1
|
50 void CleanUp();
|
rlm@1
|
51 bool NextSegment();
|
rlm@1
|
52 };
|
rlm@1
|
53
|
rlm@1
|
54 #endif // VBA_WIN32_AVIWRITE_H
|