JD2022-TU1/main/extern/Camcam/LIBS/Input/VOID.cpp

46 lines
1.1 KiB
C++

#include "TRACK.h"
#include "MEDIA.h"
class VOID_Grabber:public INPUT_IO
{
public:
int INIT (class WORLD*){return 0;};
int FRAME (void){return 0;};
int END (void){return 0;};
IOTYPE GetType() {return IOtype_VOID;};
};
INPUT_IO *VOID_CREATE(char *Filename)
{
u32 SX,SY,Col;
INPUT_IO *Ret;
Ret = (INPUT_IO *)new(VOID_Grabber);
SX = SY = Col = 0;
strcpy((char*)Ret->MediaName,Filename);
while (*Filename && (!IsDeci(*Filename))) Filename++;
while (*Filename && (IsDeci(*Filename))) {SX *= 10; SX += IsDeci(*Filename++) - 1;};
while (*Filename && (!IsDeci(*Filename))) Filename++;
while (*Filename && (IsDeci(*Filename))) {SY *= 10; SY += IsDeci(*Filename++) - 1;};
while (*Filename && (!IsHex(*Filename))) Filename++;
while (*Filename && (IsHex(*Filename))) {Col *= 16; Col += IsHex(*Filename++) - 1;};
if (SX > 2048) SX = 2048;
if (SY > 2048) SY = 2048;
if (SX < 4) SX = 4;
if (SY < 4) SY = 4;
Ret->Image.SetSize(SX, SY);
Ret->dTotalTime = 0;
Ret->dAvgFramePerSecond = 30.0;
u32 Counter;
s32 *pBASE = Ret->Image.GetBase();
Counter = SX * SY;
while (Counter--)
pBASE[Counter] = Col;
return (INPUT_IO *)Ret;
};