From 2186d5f3f95cd74a070a490d899291648d58667a Mon Sep 17 00:00:00 2001 From: Steven Fuller Date: Sun, 1 Jul 2001 00:55:22 +0000 Subject: Initial revision --- 3dc/win95/bink.h | 488 ------------------------------------------------------- 1 file changed, 488 deletions(-) delete mode 100644 3dc/win95/bink.h (limited to '3dc/win95/bink.h') diff --git a/3dc/win95/bink.h b/3dc/win95/bink.h deleted file mode 100644 index 2d5d29f..0000000 --- a/3dc/win95/bink.h +++ /dev/null @@ -1,488 +0,0 @@ -#ifndef BINKH -#define BINKH - -#define BINKVERSION "0.8e" - -#ifndef __RADRES__ - -#include "bink_rad.h" - -RADDEFSTART - -typedef struct BINK PTR4* HBINK; - -typedef s32 (RADLINK PTR4* BINKIOOPEN) (struct BINKIO PTR4* Bnkio, const char PTR4 *name, u32 flags); -typedef u32 (RADLINK PTR4* BINKIOREADHEADER) (struct BINKIO PTR4* Bnkio, s32 Offset, void PTR4* Dest,u32 Size); -typedef u32 (RADLINK PTR4* BINKIOREADFRAME) (struct BINKIO PTR4* Bnkio, u32 Framenum,s32 origofs,void PTR4* dest,u32 size); -typedef u32 (RADLINK PTR4* BINKIOGETBUFFERSIZE)(struct BINKIO PTR4* Bnkio, u32 Size); -typedef void (RADLINK PTR4* BINKIOSETINFO) (struct BINKIO PTR4* Bnkio, void PTR4* Buf,u32 Size,u32 FileSize,u32 simulate); -typedef u32 (RADLINK PTR4* BINKIOIDLE) (struct BINKIO PTR4* Bnkio); -typedef void (RADLINK PTR4* BINKIOCLOSE) (struct BINKIO PTR4* Bnkio); - -typedef struct BINKIO { - BINKIOREADHEADER ReadHeader; - BINKIOREADFRAME ReadFrame; - BINKIOGETBUFFERSIZE GetBufferSize; - BINKIOSETINFO SetInfo; - BINKIOIDLE Idle; - BINKIOCLOSE Close; - HBINK bink; - volatile u32 DoingARead; - volatile u32 BytesRead; - volatile u32 TotalTime; - volatile u32 ForegroundTime; - volatile u32 BufSize; - volatile u32 BufHighUsed; - volatile u32 CurBufSize; - volatile u32 CurBufUsed; - volatile u8 iodata[128]; -} BINKIO; - -typedef s32 (RADLINK PTR4* BINKSNDOPEN) (struct BINKSND PTR4* BnkSnd, u32 freq, s32 bits, s32 chans, u32 flags, HBINK bink); -typedef void (RADLINK PTR4* BINKSNDRESET) (struct BINKSND PTR4* BnkSnd); -typedef s32 (RADLINK PTR4* BINKSNDREADY) (struct BINKSND PTR4* BnkSnd); -typedef s32 (RADLINK PTR4* BINKSNDLOCK) (struct BINKSND PTR4* BnkSnd, u8 PTR4* PTR4* addr, u32 PTR4* len); -typedef s32 (RADLINK PTR4* BINKSNDUNLOCK) (struct BINKSND PTR4* BnkSnd, u32 filled); -typedef void (RADLINK PTR4* BINKSNDVOLUME) (struct BINKSND PTR4* BnkSnd, s32 volume); -typedef void (RADLINK PTR4* BINKSNDPAN) (struct BINKSND PTR4* BnkSnd, s32 pan); -typedef s32 (RADLINK PTR4* BINKSNDOFF) (struct BINKSND PTR4* BnkSnd, s32 status); -typedef s32 (RADLINK PTR4* BINKSNDPAUSE) (struct BINKSND PTR4* BnkSnd, s32 status); -typedef void (RADLINK PTR4* BINKSNDCLOSE) (struct BINKSND PTR4* BnkSnd); - -typedef BINKSNDOPEN (RADLINK PTR4* BINKSNDSYSOPEN) (u32 param); - -typedef struct BINKSND { - BINKSNDRESET SetParam; - BINKSNDRESET Reset; - BINKSNDREADY Ready; - BINKSNDLOCK Lock; - BINKSNDUNLOCK Unlock; - BINKSNDVOLUME Volume; - BINKSNDPAN Pan; - BINKSNDPAUSE Pause; - BINKSNDOFF Off; - BINKSNDCLOSE Close; - u32 BestSizeIn16; - u32 SoundDroppedOut; - u32 freq; - s32 bits,chans; - u8 snddata[128]; -} BINKSND; - -typedef struct BINKRECT { - s32 Left,Top,Width,Height; -} BINKRECT; - -#define BINKMAXDIRTYRECTS 8 - -typedef struct BUNDLEPOINTERS { - void* typeptr; - void* type16ptr; - void* colorptr; - void* bits2ptr; - void* motionXptr; - void* motionYptr; - void* dctptr; - void* mdctptr; - void* patptr; -} BUNDLEPOINTERS; - - -typedef struct BINK { - u32 Width; // Width (1 based, 640 for example) - u32 Height; // Height (1 based, 480 for example) - u32 StretchWidth; // Default stretch width - u32 StretchHeight; // Default stretch height (used for Y double) - u32 Frames; // Number of frames (1 based, 100 = 100 frames) - u32 FrameNum; // Frame to *be* displayed (1 based) - u32 LastFrameNum; // Last frame decompressed or skipped (1 based) - - u32 FrameRate; // Frame Rate Numerator - u32 FrameRateDiv; // Frame Rate Divisor (frame rate=numerator/divisor) - - u32 ReadError; // Non-zero if a read error has ocurred - u32 OpenFlags; // flags used on open - u32 BinkType; // Bink flags - - u32 Size; // size of file - u32 FrameSize; // The current frame's size in bytes - u32 SndSize; // The current frame sound tracks' size in bytes - - BINKRECT FrameRects[BINKMAXDIRTYRECTS];// Dirty rects from BinkGetRects - s32 NumRects; - - u32 YPlaneNum; // which YPlane is current - void PTR4* YPlane[2]; // pointer to the uncompressed Y (Cr and Cr follow) - u32 YWidth; // widths and heights of the video planes - u32 YHeight; - u32 UVWidth; - u32 UVHeight; - - void PTR4* MaskPlane; // pointer to the mask plane (Ywidth/16*Yheight/16) - u32 MaskPitch; // Mask Pitch - u32 MaskLength; // total length of the mask plane - - u32 LargestFrameSize; // Largest frame size - u32 InternalFrames; // how many frames were potentially compressed - - s32 NumTracks; // how many tracks - - u32 Highest1SecRate; // Highest 1 sec data rate - u32 Highest1SecFrame; // Highest 1 sec data rate starting frame - - s32 Paused; // is the bink movie paused? - - u32 BackgroundThread; // handle to background thread - - // everything below is for internal Bink use - - void PTR4* compframe; // compressed frame data - void PTR4* preloadptr; // preloaded compressed frame data - u32* frameoffsets; // offsets of each of the frames - - BINKIO bio; // IO structure - u8 PTR4* ioptr; // io buffer ptr - u32 iosize; // io buffer size - u32 decompheight; // height not include interlacing - - s32 trackindex; // track index - u32 PTR4* tracksizes; // largest single frame of track - u32 PTR4* tracktypes; // type of each sound track - s32 PTR4* trackIDs; // external track numbers - - u32 numrects; // number of rects from BinkGetRects - - u32 playedframes; // how many frames have we played - u32 firstframetime; // very first frame start - u32 startframetime; // start frame start - u32 startblittime; // start of blit period - u32 startsynctime; // start of synched time - u32 startsyncframe; // frame of startsynctime - u32 twoframestime; // two frames worth of time - u32 entireframetime; // entire frame time - - u32 slowestframetime; // slowest frame in ms - u32 slowestframe; // slowest frame number - u32 slowest2frametime; // second slowest frame in ms - u32 slowest2frame; // second slowest frame - - u32 soundon; // sound turned on? - u32 videoon; // video turned on? - - u32 totalmem; // total memory used - u32 timedecomp; // total time decompressing - u32 timeblit; // total time blitting - u32 timeopen; // total open time - - u32 fileframerate; // frame rate originally in the file - u32 fileframeratediv; - - u32 threadcontrol; // controls the background reading thread - - u32 runtimeframes; // max frames for runtime analysis - u32 runtimemoveamt; // bytes to move each frame - u32 PTR4* rtframetimes; // start times for runtime frames - u32 PTR4* rtdecomptimes; // decompress times for runtime frames - u32 PTR4* rtblittimes; // blit times for runtime frames - u32 PTR4* rtreadtimes; // read times for runtime frames - - u32 lastdecompframe; // last frame number decompressed - - u32 sndbufsize; // sound buffer size - u8 PTR4* sndbuf; // sound buffer - u8 PTR4* sndend; // end of the sound buffer - u8 PTR4* sndwritepos; // current write position - u8 PTR4* sndreadpos; // current read position - u32 sndcomp; // sound compression handle - u32 sndamt; // amount of sound currently in the buffer - volatile u32 sndreenter; // re-entrancy check on the sound - u32 sndconvert8; // convert back to 8-bit sound at runtime - BINKSND bsnd; // SND structure - u32 skippedlastblit; // skipped last frame? - u32 skippedblits; // how many blits were skipped - u32 soundskips; // number of sound stops - - BUNDLEPOINTERS bunp; // pointers to internal temporary memory -} BINK; - - -typedef struct BINKSUMMARY { - u32 Width; // Width of frames - u32 Height; // Height of frames - u32 TotalTime; // total time (ms) - u32 FileFrameRate; // frame rate - u32 FileFrameRateDiv; // frame rate divisor - u32 FrameRate; // frame rate - u32 FrameRateDiv; // frame rate divisor - u32 TotalOpenTime; // Time to open and prepare for decompression - u32 TotalFrames; // Total Frames - u32 TotalPlayedFrames; // Total Frames played - u32 SkippedFrames; // Total number of skipped frames - u32 SkippedBlits; // Total number of skipped blits - u32 SoundSkips; // Total number of sound skips - u32 TotalBlitTime; // Total time spent blitting - u32 TotalReadTime; // Total time spent reading - u32 TotalDecompTime; // Total time spent decompressing - u32 TotalBackReadTime; // Total time spent reading in background - u32 TotalReadSpeed; // Total io speed (bytes/second) - u32 SlowestFrameTime; // Slowest single frame time (ms) - u32 Slowest2FrameTime; // Second slowest single frame time (ms) - u32 SlowestFrameNum; // Slowest single frame number - u32 Slowest2FrameNum; // Second slowest single frame number - u32 AverageDataRate; // Average data rate of the movie - u32 AverageFrameSize; // Average size of the frame - u32 HighestMemAmount; // Highest amount of memory allocated - u32 TotalIOMemory; // Total extra memory allocated - u32 HighestIOUsed; // Highest extra memory actually used - u32 Highest1SecRate; // Highest 1 second rate - u32 Highest1SecFrame; // Highest 1 second start frame -} BINKSUMMARY; - - -typedef struct BINKREALTIME { - u32 FrameNum; // Current frame number - u32 FrameRate; // frame rate - u32 FrameRateDiv; // frame rate divisor - u32 Frames; // frames in this sample period - u32 FramesTime; // time is ms for these frames - u32 FramesDecompTime; // time decompressing these frames - u32 FramesReadTime; // time reading these frames - u32 FramesBlitTime; // time blitting these frames - u32 ReadBufferSize; // size of read buffer - u32 ReadBufferUsed; // amount of read buffer currently used - u32 FramesDataRate; // data rate for these frames -} BINKREALTIME; - -#define BINKMARKER 'fKIB' - -typedef struct BINKHDR { - u32 Marker; // BNKa - u32 Size; // size of the file-8 - u32 Frames; // Number of frames (1 based, 100 = 100 frames) - u32 LargestFrameSize; // Size in bytes of largest frame - u32 InternalFrames; // Number of internal frames - - u32 Width; // Width (1 based, 640 for example) - u32 Height; // Height (1 based, 480 for example) - u32 FrameRate; // frame rate - u32 FrameRateDiv; // frame rate divisor (framerate/frameratediv=fps) - - u32 Flags; // height compression options - u32 NumTracks; // number of tracks -} BINKHDR; - - -//======================================================================= -#define BINKFRAMERATE 0x00080000L // Override fr (call BinkFrameRate first) -#define BINKPRELOADALL 0x00100000L // Preload the entire animation -#define BINKSNDTRACK 0x00200000L // Set the track number to play -#define BINKNOSKIP 0x00400000L // Don't skip frames if falling behind -#define BINKNOFILLIOBUF 0x00800000L // Fill the IO buffer in SmackOpen -#define BINKSIMULATE 0x01000000L // Simulate the speed (call BinkSim first) -#define BINKFILEHANDLE 0x02000000L // Use when passing in a file handle -#define BINKIOSIZE 0x04000000L // Set an io size (call BinkIOSize first) -#define BINKIOPROCESSOR 0x08000000L // Set an io processor (call BinkIO first) -#define BINKFROMMEMORY 0x40000000L // Use when passing in a pointer to the file -#define BINKNOTHREADEDIO 0x80000000L // Don't use a background thread for IO - -#define BINKSURFACEYINTERLACE 0x20000000L // Force interleaving Y scaling -#define BINKSURFACEYDOUBLE 0x10000000L // Force doubling Y scaling -#define BINKSURFACEYFORCENONE 0x30000000L // Force Y scaling off - -#define BINKSURFACEFAST 0x00000000L -#define BINKSURFACESLOW 0x80000000L -#define BINKSURFACEDIRECT 0x40000000L - -#define BINKSURFACEFLIPPED 0x08000000L -#define BINKSURFACECOPYALL 0x04000000L // copy all pixels (not just changed) -#define BINKSURFACENOSKIP 0x01000000L // don't skip the blit if behind in sound - -#define BINKSURFACE24 0 -#define BINKSURFACE32 1 -#define BINKSURFACE555 2 -#define BINKSURFACE565 3 -#define BINKSURFACE655 4 -#define BINKSURFACE664 5 -#define BINKSURFACE8P 6 -#define BINKSURFACEYUY2 7 -#define BINKSURFACEUYVY 8 -#define BINKSURFACEYV12 9 -#define BINKSURFACEMASK 15 - -#define BINKGOTOQUICK 1 - -#define BINKGETKEYPREVIOUS 0 -#define BINKGETKEYNEXT 1 -#define BINKGETKEYCLOSEST 2 -#define BINKGETKEYNOTEQUAL 128 - -//======================================================================= - -RADEXPFUNC void PTR4* RADEXPLINK BinkLogoAddress(void); - -RADEXPFUNC void RADEXPLINK BinkSetError(const char PTR4* err); -RADEXPFUNC char PTR4* RADEXPLINK BinkGetError(void); - -RADEXPFUNC HBINK RADEXPLINK BinkOpen(const char PTR4* name,u32 flags); - -#ifdef __RADMAC__ - #include - - RADEXPFUNC HBINK RADEXPLINK BinkMacOpen(FSSpec* fsp,u32 flags); -#endif - -RADEXPFUNC u32 RADEXPLINK BinkDoFrame(HBINK bnk); -RADEXPFUNC void RADEXPLINK BinkNextFrame(HBINK bnk); -RADEXPFUNC s32 RADEXPLINK BinkWait(HBINK bnk); -RADEXPFUNC void RADEXPLINK BinkClose(HBINK bnk); -RADEXPFUNC s32 RADEXPLINK BinkPause(HBINK bnk,s32 pause); -RADEXPFUNC s32 RADEXPLINK BinkCopyToBuffer(HBINK bnk,void* dest,u32 destpitch,u32 destheight,u32 destx,u32 desty,u32 flags); -RADEXPFUNC s32 RADEXPLINK BinkGetRects(HBINK bnk,u32 surfacetype); -RADEXPFUNC void RADEXPLINK BinkGoto(HBINK bnk,u32 frame,s32 flags); // use 1 for the first frame -RADEXPFUNC u32 RADEXPLINK BinkGetKeyFrame(HBINK bnk,u32 frame,s32 flags); - -RADEXPFUNC u32 RADEXPLINK BinkSetVideoOnOff(HBINK bnk,s32 onoff); -RADEXPFUNC u32 RADEXPLINK BinkSetSoundOnOff(HBINK bnk,s32 onoff); -RADEXPFUNC void RADEXPLINK BinkSetVolume(HBINK bnk,s32 volume); -RADEXPFUNC void RADEXPLINK BinkSetPan(HBINK bnk,s32 pan); -RADEXPFUNC void RADEXPLINK BinkService(HBINK bink); - -RADEXPFUNC u32 RADEXPLINK BinkGetTrackType(HBINK bnk,u32 trackindex); -RADEXPFUNC u32 RADEXPLINK BinkGetTrackID(HBINK bnk,u32 trackindex); -RADEXPFUNC u32 RADEXPLINK BinkGetTrackData(HBINK bnk,void PTR4* dest,u32 trackindex); - -RADEXPFUNC void RADEXPLINK BinkGetSummary(HBINK bnk,BINKSUMMARY PTR4* sum); -RADEXPFUNC void RADEXPLINK BinkGetRealtime(HBINK bink,BINKREALTIME PTR4* run,u32 frames); - -#define BINKNOSOUND 0xffffffff - -RADEXPFUNC void RADEXPLINK BinkSetSoundTrack(u32 track); -RADEXPFUNC void RADEXPLINK BinkSetIO(BINKIOOPEN io); -RADEXPFUNC void RADEXPLINK BinkSetFrameRate(u32 forcerate,u32 forceratediv); -RADEXPFUNC void RADEXPLINK BinkSetSimulate(u32 sim); -RADEXPFUNC void RADEXPLINK BinkSetIOSize(u32 iosize); - -RADEXPFUNC s32 RADEXPLINK BinkSetSoundSystem(BINKSNDSYSOPEN open, u32 param); - -#ifdef __RADWIN__ - - RADEXPFUNC BINKSNDOPEN RADEXPLINK BinkOpenDirectSound(u32 param); // don't call directly - #define BinkSoundUseDirectSound(lpDS) BinkSetSoundSystem(BinkOpenDirectSound,(u32)lpDS) - - #define BinkTimerSetup() - #define BinkTimerDone() - #define BinkTimerRead timeGetTime - - #define INCLUDE_MMSYSTEM_H - #include "windows.h" - #include "windowsx.h" - - #ifdef __RADNT__ // to combat WIN32_LEAN_AND_MEAN - - #include "mmsystem.h" - - RADEXPFUNC s32 RADEXPLINK BinkDDSurfaceType(void PTR4* lpDDS); - - #endif - -#endif - -#ifndef __RADMAC__ - - RADEXPFUNC BINKSNDOPEN RADEXPLINK BinkOpenMiles(u32 param); // don't call directly - #define BinkSoundUseMiles(hdigdriver) BinkSetSoundSystem(BinkOpenMiles,(u32)hdigdriver) - -#endif - - -#ifndef __RADDOS__ - -//========================================================================= -typedef struct BINKBUFFER * HBINKBUFFER; - -typedef struct BINKBUFFER { - u32 Width; - u32 Height; - u32 WindowWidth; - u32 WindowHeight; - u32 SurfaceType; - void* Buffer; - u32 BufferPitch; - s32 ClientOffsetX; - s32 ClientOffsetY; - u32 ScreenWidth; - u32 ScreenHeight; - u32 ScreenDepth; - u32 ExtraWindowWidth; - u32 ExtraWindowHeight; - u32 ScaleFlags; - u32 StretchWidth; - u32 StretchHeight; - - s32 surface; - void* ddsurface; - void* ddclipper; - s32 destx,desty; - u32 HWND; - s32 ddoverlay; - s32 ddoffscreen; - s32 lastovershow; - - s32 issoftcur; - u32 cursorcount; - void* buffertop; - u32 type; - s32 noclipping; - -} BINKBUFFER; - - -#define BINKBUFFERSTRETCHXINT 0x80000000 -#define BINKBUFFERSTRETCHX 0x40000000 -#define BINKBUFFERSHRINKXINT 0x20000000 -#define BINKBUFFERSHRINKX 0x10000000 -#define BINKBUFFERSTRETCHYINT 0x08000000 -#define BINKBUFFERSTRETCHY 0x04000000 -#define BINKBUFFERSHRINKYINT 0x02000000 -#define BINKBUFFERSHRINKY 0x01000000 -#define BINKBUFFERRESOLUTION 0x00800000 - -#define BINKBUFFERAUTO 0 -#define BINKBUFFERPRIMARY 1 -#define BINKBUFFERYV12OVERLAY 2 -#define BINKBUFFERYUY2OVERLAY 3 -#define BINKBUFFERUYVYOVERLAY 4 -#define BINKBUFFERYV12OFFSCREEN 5 -#define BINKBUFFERYUY2OFFSCREEN 6 -#define BINKBUFFERUYVYOFFSCREEN 7 -#define BINKBUFFERRGBOFFSCREENVIDEO 8 -#define BINKBUFFERRGBOFFSCREENSYSTEM 9 -#define BINKBUFFERDRAWDIB 10 -#define BINKBUFFERTYPEMASK 31 - -RADEXPFUNC HBINKBUFFER RADEXPLINK BinkBufferOpen( HWND wnd, u32 width, u32 height, u32 bufferflags); -RADEXPFUNC void RADEXPLINK BinkBufferClose( HBINKBUFFER buf); -RADEXPFUNC s32 RADEXPLINK BinkBufferLock( HBINKBUFFER buf); -RADEXPFUNC s32 RADEXPLINK BinkBufferUnlock( HBINKBUFFER buf); -RADEXPFUNC void RADEXPLINK BinkBufferSetResolution( s32 w, s32 h, s32 bits); -RADEXPFUNC void RADEXPLINK BinkBufferCheckWinPos( HBINKBUFFER buf, s32 PTR4* destx, s32 PTR4* desty); -RADEXPFUNC s32 RADEXPLINK BinkBufferSetOffset( HBINKBUFFER buf, s32 destx, s32 desty); -RADEXPFUNC void RADEXPLINK BinkBufferBlit( HBINKBUFFER buf, BINKRECT PTR4* rects, u32 numrects ); -RADEXPFUNC s32 RADEXPLINK BinkBufferSetScale( HBINKBUFFER buf, u32 w, u32 h); -RADEXPFUNC s32 RADEXPLINK BinkBufferSetHWND( HBINKBUFFER buf, HWND newwnd); -RADEXPFUNC char PTR4* RADEXPLINK BinkBufferDescription( HBINKBUFFER buf); -RADEXPFUNC char PTR4* RADEXPLINK BinkBufferGetError(); - -RADEXPFUNC s32 RADEXPLINK BinkDDSurfaceType(void PTR4* lpDDS); -RADEXPFUNC s32 RADEXPLINK BinkIsSoftwareCursor(void PTR4* lpDDSP,HCURSOR cur); -RADEXPFUNC s32 RADEXPLINK BinkCheckCursor(HWND wnd,s32 x,s32 y,s32 w,s32 h); -RADEXPFUNC void RADEXPLINK BinkRestoreCursor(s32 checkcount); - -#endif - -RADDEFEND - -#endif - -#endif - -- cgit v1.3