Rev 1 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line | 
|---|---|---|---|
| 1 | pmbaty | 1 | #include <stddef.h> | 
| 2 | #include <stdint.h> | ||
| 3 | |||
| 4 | #define SMACKTRACK1 0x02000 // Play audio track 1 | ||
| 5 | #define SMACKTRACK2 0x04000 // Play audio track 2 | ||
| 6 | #define SMACKTRACK3 0x08000 // Play audio track 3 | ||
| 7 | #define SMACKTRACK4 0x10000 // Play audio track 4 | ||
| 8 | #define SMACKTRACK5 0x20000 // Play audio track 5 | ||
| 9 | #define SMACKTRACK6 0x40000 // Play audio track 6 | ||
| 10 | #define SMACKTRACK7 0x80000 // Play audio track 7 | ||
| 11 | #define SMACKTRACKS (SMACKTRACK1 | SMACKTRACK2 | SMACKTRACK3 | SMACKTRACK4 | SMACKTRACK5 | SMACKTRACK6 | SMACKTRACK7) | ||
| 12 | #define SMACKAUTOEXTRA 0xffffffff | ||
| 13 | |||
| 14 | typedef struct SmackTag { | ||
| 15 | unsigned long Version; | ||
| 16 | unsigned long Width; | ||
| 17 | unsigned long Height; | ||
| 18 | unsigned long Frames; | ||
| 19 | unsigned long MSPerFrame; | ||
| 20 | unsigned long SmackerType; | ||
| 21 | unsigned long LargestInTrack[7]; | ||
| 22 | unsigned long tablesize; | ||
| 23 | unsigned long codesize; | ||
| 24 | unsigned long absize; | ||
| 25 | unsigned long detailsize; | ||
| 26 | unsigned long typesize; | ||
| 27 | unsigned long TrackType[7]; | ||
| 28 | unsigned long extra; | ||
| 29 | unsigned long NewPalette; | ||
| 30 | unsigned char Palette[772]; | ||
| 31 | unsigned long PalType; | ||
| 32 | unsigned long FrameNum; | ||
| 33 | unsigned long FrameSize; | ||
| 34 | unsigned long SndSize; | ||
| 35 | unsigned long LastRectx; | ||
| 36 | unsigned long LastRecty; | ||
| 37 | unsigned long LastRectw; | ||
| 38 | unsigned long LastRecth; | ||
| 39 | unsigned long OpenFlags; | ||
| 40 | unsigned long LeftOfs; | ||
| 41 | unsigned long TopOfs; | ||
| 42 | unsigned long ReadError; | ||
| 43 | unsigned long addr32; | ||
| 44 | |||
| 45 |     // added by dethrace | ||
| 46 | void* smk_handle; // opaque pointer to the libsmacker instance | ||
| 47 | int audio_sample_rate; | ||
| 48 | int audio_frame_size_in_bytes; // TODO: consider using SndSize for storage instead? | ||
| 49 | void* audio_paged_buffer; // opaque pointer to a miniaudio ma_paged_audio_buffer struct | ||
| 50 | void* audio_paged_buffer_data; // opaque pointer to a miniaudio ma_paged_audio_buffer_data struct | ||
| 51 | void* audio_converter; // opaque pointerto a miniaudio ma_data_converter struct | ||
| 52 | void* audio_track; // opaque pointer to a miniaudio ma_sound struct | ||
| 53 | } Smack; | ||
| 54 | |||
| 55 | Smack* SmackOpen(const char* name, uint32_t flags, uint32_t extrabuf); | ||
| 56 | int SmackSoundUseDirectSound(void* dd); // NULL mean create instance (apparently) | ||
| 57 | void SmackToBuffer(Smack* smack, uint32_t left, uint32_t top, uint32_t pitch, uint32_t destheight, void* buf, uint32_t flags); | ||
| 58 | uint32_t SmackDoFrame(Smack* smack); | ||
| 59 | void SmackNextFrame(Smack* smack); | ||
| 60 | uint32_t SmackWait(Smack* smack); | ||
| 61 | void SmackClose(Smack* smack); |