mirror of
https://github.com/jmarshall23/CnC_Remastered_Collection.git
synced 2026-08-14 10:13:29 +02:00
53 lines
1.3 KiB
C++
53 lines
1.3 KiB
C++
// VQAMOVIE.H
|
|
//
|
|
|
|
#pragma once
|
|
|
|
typedef enum {
|
|
FMV_IDLE,
|
|
FMV_PLAY, // play
|
|
FMV_EOF, // all other conditions, i.e. stop/EOF/abort
|
|
FMV_ID_BLT,
|
|
FMV_ID_IDLE,
|
|
FMV_LOOPED,
|
|
FMV_ID_WAIT
|
|
} cinStatus_t;
|
|
|
|
#pragma pack(push,8)
|
|
typedef struct {
|
|
int imageWidth, imageHeight; // will be a power of 2
|
|
struct Image_t* image; // RGBA format, alpha will be 255
|
|
uint8_t* rawbuffer;
|
|
int status;
|
|
} cinData_t;
|
|
#pragma pop
|
|
|
|
class _VQAHandle {
|
|
public:
|
|
_VQAHandle();
|
|
~_VQAHandle();
|
|
|
|
// returns false if it failed to load
|
|
virtual bool InitFromFile(const char* qpath, bool looping) = 0;
|
|
|
|
// returns the length of the animation in milliseconds
|
|
virtual int AnimationLength() = 0;
|
|
|
|
// the pointers in cinData_t will remain valid until the next UpdateForTime() call
|
|
virtual cinData_t ImageForTime(int milliseconds) = 0;
|
|
|
|
// closes the file and frees all allocated memory
|
|
virtual void Close() = 0;
|
|
|
|
// closes the file and frees all allocated memory
|
|
virtual void ResetTime(int time) = 0;
|
|
};
|
|
|
|
void VQA_Init(void);
|
|
long VQA_Play(_VQAHandle* vqaHandle);
|
|
void VQA_Close(_VQAHandle* vqaHandle);
|
|
void VQA_Free(_VQAHandle* vqaHandle);
|
|
long VQA_Open(_VQAHandle* videoHandle, char const* filename);
|
|
void VQA_ImageForTime(_VQAHandle* videoHandle, int milliseconds);
|
|
void VQA_FFMPEGReset(_VQAHandle* videoHandle);
|
|
_VQAHandle* VQA_Alloc(void); |