rlm@1: #ifndef VBA_WIN32_AVIWRITE_H rlm@1: #define VBA_WIN32_AVIWRITE_H rlm@1: rlm@1: #if _MSC_VER > 1000 rlm@1: #pragma once rlm@1: #endif // _MSC_VER > 1000 rlm@1: rlm@1: #include rlm@1: rlm@1: class AVIWrite { rlm@1: public: rlm@1: AVIWrite(); rlm@1: virtual ~AVIWrite(); rlm@1: rlm@1: bool Open(const char *filename); rlm@1: virtual bool AddFrame(const u8 *bmp); rlm@1: void SetFPS(int fps); rlm@1: void SetVideoFormat(BITMAPINFOHEADER *); rlm@1: bool IsSoundAdded(); rlm@1: void SetSoundFormat(WAVEFORMATEX *); rlm@1: bool AddSound(const u8 *sound, int len); rlm@1: int videoFrames(); rlm@1: void Pause(bool pause); rlm@1: bool IsPaused(); rlm@1: rlm@1: private: rlm@1: int m_fps; rlm@1: WAVEFORMATEX m_soundFormat; rlm@1: BITMAPINFOHEADER m_bitmap; rlm@1: AVISTREAMINFO m_header; rlm@1: AVISTREAMINFO m_soundHeader; rlm@1: PAVIFILE m_file; rlm@1: PAVISTREAM m_stream; rlm@1: PAVISTREAM m_streamCompressed; rlm@1: PAVISTREAM m_streamSound; rlm@1: AVICOMPRESSOPTIONS m_options; rlm@1: AVICOMPRESSOPTIONS *m_arrayOptions[1]; rlm@1: int m_videoFrames; rlm@1: int m_samplesSound; rlm@1: int m_videoFramesTotal; rlm@1: int m_samplesSoundTotal; rlm@1: LONG m_totalBytes; rlm@1: bool m_failed; rlm@1: int m_segmentNumber; rlm@1: bool m_usePrevOptions; rlm@1: bool m_pauseRecording; rlm@1: char m_aviFileName[MAX_PATH]; rlm@1: char m_aviBaseName[MAX_PATH]; rlm@1: char m_aviExtension[MAX_PATH]; rlm@1: void CleanUp(); rlm@1: bool NextSegment(); rlm@1: }; rlm@1: rlm@1: #endif // VBA_WIN32_AVIWRITE_H