📄 alarmfile.h
字号:
#ifndef ALARM_FILE_H
#define ALARM_FILE_H
#include "stdafx.h"
#include "datatype.h"
#define FRAME_INFO_HEADER_MAGIC 0x20020620
typedef struct tagFrame_Header{
ULONG magic;
FrameType_t frameType;
ULONG frameLen;
ULONG breakable;
}FRAME_INFO_HEADER, *PFRAME_INFO_HEADER;
#define FRAME_STACK_SIZE 400 // 400 frames can be hold in the buf
#define FRAME_BUF_SIZE 512 * 1024// 1 M bytes
class AlarmFile {
public:
BOOL bInitOk;
int framesToStopWrite; // frames that will continously be written when alarm triggered
int framesBeforeCurPos; // frames before alarm triggered that will be written
FRAME_INFO_HEADER frameStack[FRAME_STACK_SIZE];
UCHAR *frameBuf, *tempBuf;
int writePtr;
int readPtr;
int count;
int size;
int curFrameRate;
int framesCounter;
int framesToWriteImmediatly;
BOOL canStopWrite;
AlarmFile();
// time of frames before trigger and after
int Setup(ULONG framesBeforeAlarm, ULONG framesAfterAlarm);
// buffer the frame
int FramePush(int fileHandle, UCHAR *frameData, ULONG length, FrameType_t frameType, BOOL breakable);
//start writting file
int Trigger(int fileHandle);
int Reset();
private:
int MakeRoom(int length);
int StoreData(UCHAR *dataBuf, int length);
int GetData(UCHAR *dataBuf, int length);
int WriteData(int fileHandle, int length);
int RemoveData(int length);
int TypeToFrames(FrameType_t frameType);
~AlarmFile();
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -