Mercurial > mm7
view Media/Video/Bink_Smacker.h @ 2516:56b6d74ce716
.
author | Ritor1 |
---|---|
date | Thu, 02 Oct 2014 22:01:06 +0600 |
parents | a77c34acdbc9 |
children |
line wrap: on
line source
#pragma once #include "Media/Audio/AIL.h" void BINKW32_DLL_Initialize(); int __stdcall BinkDDSurfaceType(struct IDirectDrawSurface *); int __stdcall BinkSetSoundSystem(void *pSoundSystem, HDIGDRIVER hDrv); int __stdcall BinkOpenMiles(int); HBINK __stdcall BinkOpen(void *hFileHandle, unsigned int uFlags); int __stdcall BinkWait(HBINK); int __stdcall BinkDoFrame(HBINK); int __stdcall BinkNextFrame(HBINK); int __stdcall BinkGetRects(HBINK hBink, unsigned int uFlags); int __stdcall BinkCopyToBuffer(HBINK hBink, void *pBuffer, unsigned int lPitch, unsigned int uNumLines, unsigned int uX, unsigned int uY, unsigned int uFlags); int __stdcall BinkPause(HBINK, int bPause); int __stdcall BinkClose(HBINK); int __stdcall BinkGoto(HBINK, long a2, long a3); int __stdcall BinkBufferSetOffset(void *, int, int); int __stdcall BinkBufferSetScale(void *, unsigned int uWidth, unsigned int uHeight); void SMACKW32_DLL_Initialize(); struct _SMACK { unsigned int Version; // SMK2 only right now unsigned int Width; // Width (1 based, 640 for example) unsigned int Height; // Height (1 based, 480 for example) unsigned int Frames; // Number of frames (1 based, 100 = 100 frames) unsigned int MSPerFrame; // Frame Rate unsigned int SmackerType; // bit 0 set=ring frame unsigned int LargestInTrack[7]; // Largest single size for each track unsigned int tablesize; // Size of the init tables unsigned int codesize; // Compression info unsigned int absize; // ditto unsigned int detailsize; // ditto unsigned int typesize; // ditto unsigned int TrackType[7]; // high byte=0x80-Comp,0x40-PCM data,0x20-16 bit,0x10-stereo unsigned int extra; // extra value (should be zero) unsigned int NewPalette; // set to one if the palette changed unsigned char Palette[772]; // palette data unsigned int PalType; // type of palette unsigned int FrameNum; // 0374 Frame Number to be displayed unsigned int FrameSize; // The current frame's size in bytes unsigned int SndSize; // The current frame sound tracks' size in bytes int LastRectx; // 0380 Rect set in from SmackToBufferRect (X coord) int LastRecty; // Rect set in from SmackToBufferRect (Y coord) int LastRectw; // Rect set in from SmackToBufferRect (Width) int LastRecth; // 038C Rect set in from SmackToBufferRect (Height) unsigned int OpenFlags; // flags used on open unsigned int LeftOfs; // Left Offset used in SmackTo unsigned int TopOfs; // Top Offset used in SmackTo unsigned int LargestFrameSize; // Largest frame size unsigned int Highest1SecRate; // Highest 1 sec data rate unsigned int Highest1SecFrame; // Highest 1 sec data rate starting frame unsigned int ReadError; // Set to non-zero if a read error has ocurred unsigned int addr32; // translated address for 16 bit interface }; struct _SMACKBLIT { unsigned int Flags; unsigned char *Palette; unsigned int PalType; unsigned short *SmoothTable; unsigned short *Conv8to16Table; unsigned int whichmode; unsigned int palindex; unsigned int t16index; unsigned int smoothindex; unsigned int smoothtype; unsigned int firstpalette; }; struct _SMACKBUF { unsigned int Reversed; // 1 if the buffer is upside down unsigned int SurfaceType; // SMACKSURFACExxxx defines unsigned int BlitType; // SMACKxxxxBLIT defines unsigned int FullScreen; // 1 if full-screen unsigned int Width; unsigned int Height; unsigned int Pitch; unsigned int Zoomed; unsigned int ZWidth; unsigned int ZHeight; unsigned int DispColors; // colors on the screen unsigned int MaxPalColors; // total possible colors in palette (usually 256) unsigned int PalColorsInUse; // Used colors in palette (usually 236) unsigned int StartPalColor; // first usable color index (usually 10) unsigned int EndPalColor; // last usable color index (usually 246) RGBQUAD Palette[256]; unsigned int PalType; unsigned int forceredraw; // force a complete redraw on next blit (for >8bit) unsigned int didapalette; // force an invalidate on the next palette change void * Buffer; void * DIBRestore; unsigned int OurBitmap; unsigned int OrigBitmap; unsigned int OurPalette; unsigned int WinGDC; unsigned int FullFocused; unsigned int ParentHwnd; unsigned int OldParWndProc; unsigned int OldDispWndProc; unsigned int DispHwnd; unsigned int WinGBufHandle; void * lpDD; void * lpDDSP; unsigned int DDSurfaceType; struct _SMACKBLIT DDblit; int ddSoftwarecur; int didaddblit; int lastwasdd; RECT ddscreen; int manyblits; int * blitrects; int * rectsptr; int maxrects; int numrects; HDC lastdc; }; #define BINKFRAMERATE 0x00001000L // Override fr (call BinkFrameRate first) #define BINKPRELOADALL 0x00002000L // Preload the entire animation #define BINKSNDTRACK 0x00004000L // Set the track number to play #define BINKOLDFRAMEFORMAT 0x00008000L // using the old Bink frame format (internal use only) #define BINKRBINVERT 0x00010000L // use reversed R and B planes (internal use only) #define BINKGRAYSCALE 0x00020000L // Force Bink to use grayscale #define BINKNOMMX 0x00040000L // Don't use MMX #define BINKNOSKIP 0x00080000L // Don't skip frames if falling behind #define BINKALPHA 0x00100000L // Decompress alpha plane (if present) #define BINKNOFILLIOBUF 0x00200000L // Fill the IO buffer in SmackOpen #define BINKSIMULATE 0x00400000L // Simulate the speed (call BinkSim first) #define BINKFILEHANDLE 0x00800000L // Use when passing in a file handle #define BINKIOSIZE 0x01000000L // Set an io size (call BinkIOSize first) #define BINKIOPROCESSOR 0x02000000L // Set an io processor (call BinkIO first) #define BINKFROMMEMORY 0x04000000L // Use when passing in a pointer to the file #define BINKNOTHREADEDIO 0x08000000L // Don't use a background thread for IO #define BINKSURFACEFAST 0x00000000L #define BINKSURFACESLOW 0x08000000L #define BINKSURFACEDIRECT 0x04000000L #define BINKCOPYALL 0x80000000L // copy all pixels (not just changed) #define BINKCOPY2XH 0x10000000L // Force doubling height scaling #define BINKCOPY2XHI 0x20000000L // Force interleaving height scaling #define BINKCOPY2XW 0x30000000L // copy the width zoomed by two #define BINKCOPY2XWH 0x40000000L // copy the width and height zoomed by two #define BINKCOPY2XWHI 0x50000000L // copy the width and height zoomed by two #define BINKCOPY1XI 0x60000000L // copy the width and height zoomed by two #define BINKCOPYNOSCALING 0x70000000L // Force scaling off #define SMACKNEEDPAN 0x00020L // Will be setting the pan #define SMACKNEEDVOLUME 0x00040L // Will be setting the volume #define SMACKFRAMERATE 0x00080L // Override fr (call SmackFrameRate first) #define SMACKLOADEXTRA 0x00100L // Load the extra buffer during SmackOpen #define SMACKPRELOADALL 0x00200L // Preload the entire animation #define SMACKNOSKIP 0x00400L // Don't skip frames if falling behind #define SMACKSIMULATE 0x00800L // Simulate the speed (call SmackSim first) #define SMACKFILEHANDLE 0x01000L // Use when passing in a file handle #define SMACKTRACK1 0x02000L // Play audio track 1 #define SMACKTRACK2 0x04000L // Play audio track 2 #define SMACKTRACK3 0x08000L // Play audio track 3 #define SMACKTRACK4 0x10000L // Play audio track 4 #define SMACKTRACK5 0x20000L // Play audio track 5 #define SMACKTRACK6 0x40000L // Play audio track 6 #define SMACKTRACK7 0x80000L // Play audio track 7 #define SMACKBUFFER555 0x80000000 #define SMACKBUFFER565 0xC0000000 #define SMACKBLIT1X 1 #define SMACKBLIT2X 2 #define SMACKBLIT2XSMOOTHING 4 #define SMACKBLIT2XINTERLACE 8 int __stdcall SmackSoundUseMSS(HDIGDRIVER hDrv); unsigned int __stdcall SmackUseMMX(unsigned int flag); HSMACK __stdcall SmackOpen(HANDLE hSourceFile, unsigned int uFlags, unsigned int uExtraBuffers); HSMACKBLIT __stdcall SmackBlitOpen(unsigned int uSurfaceFormat); void __stdcall SmackToBuffer(HSMACK, unsigned int uX, unsigned int uY, unsigned int uPitch, unsigned int uHeight, void *pBuffer, unsigned int uFlags); void __stdcall SmackBlitSetPalette(HSMACKBLIT hBlit, void *pPalette, unsigned int uPalType); unsigned int __stdcall SmackDoFrame(HSMACK); unsigned int __stdcall SmackToBufferRect(HSMACK, unsigned int uSmackSurface); void __stdcall SmackBlit(HSMACKBLIT, void *pDest, unsigned int uDestPitch, unsigned int uDestX, unsigned int uDestY, void *pSrc, unsigned int uSrcPitch, unsigned int uSrcX, unsigned int uSrcY, unsigned int uSrcZ, unsigned int uSrcW); void __stdcall SmackNextFrame(HSMACK); unsigned int __stdcall SmackWait(HSMACK); unsigned int __stdcall SmackSoundOnOff(HSMACK, unsigned int bOn); void __stdcall SmackClose(HSMACK); void __stdcall SmackBufferClose(HSMACKBUF); void __stdcall SmackBlitClose(HSMACKBLIT); int __stdcall SmackBlitClear(HSMACKBLIT a1, unsigned short *pFrameData, unsigned int uTargetSurfacePitch, unsigned int uOutX, unsigned int uOutY, unsigned int uOutZ, unsigned int uOutW, int a8); int __stdcall SmackBufferOpen(HWND a1, long a2, long a3, long a4, long a5, long a6); int __fastcall SmackVolumePan(_SMACK *a3, long a4, long a5, long a6); int __stdcall SmackGoto(_SMACK *a1, long a2); // sub_4D83D0: using guessed type int __stdcall SmackBufferNewPalette(_DWORD, _DWORD, _DWORD); void __stdcall SmackBufferNewPalette(HSMACKBUF a1, void *a2, unsigned int a3); // sub_4D83D4: using guessed type int __stdcall SmackColorRemapWithTrans(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); void __stdcall SmackColorRemapWithTrans(_SMACK *a1, void *a2, unsigned int a3, unsigned int a4, unsigned int a5);