home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Multimedia Jumpstart 1.1a / CD_ROM.BIN / develpmt / source / rleapp / rleapp.h < prev    next >
C/C++ Source or Header  |  1992-09-12  |  6KB  |  163 lines

  1. /*----------------------------------------------------------------------------*\
  2. |   rleapp.h - The RLE app                                                     |
  3. |                                                                              |
  4. \*----------------------------------------------------------------------------*/
  5.  
  6. #define EXPORT  FAR  PASCAL _export     // exported function
  7. typedef LONG (FAR PASCAL *LPWNDPROC)(); // pointer to a window procedure
  8.  
  9. /*----------------------------------------------------------------------------*\
  10.  * Menu Items
  11. \*----------------------------------------------------------------------------*/
  12.  
  13. #define MENU_ABOUT       500
  14. #define MENU_EXIT        501
  15.  
  16. #define MENU_COPY        502
  17. #define MENU_CUT         503
  18. #define MENU_OPEN        504
  19. #define MENU_NEW         505
  20. #define MENU_PLAY        506
  21. #define MENU_WINDOW      507
  22. #define MENU_PREV        511
  23. #define MENU_NEXT        512
  24. #define MENU_REDRAW      513
  25. #define MENU_OPENRLE     514
  26. #define MENU_REVERT      515
  27.  
  28. #define MENU_LOAD_APPEND    520
  29. #define MENU_LOAD_INSERT    521
  30.  
  31. #define MENU_PASTE_APPEND   522
  32. #define MENU_PASTE_INSERT   523
  33. #define MENU_PASTE_REPLACE  524
  34. #define MENU_PASTE_PALETTE  525
  35.  
  36. #define MENU_DELETE_FRAME   526
  37. #define MENU_DELETE_FRAMES  527
  38. #define MENU_GOTO_FRAME     528
  39. #define MENU_FRAMES_SEC     529
  40. #define MENU_STATUS         531
  41.  
  42. #define MENU_FULLPAINT      534
  43. #define MENU_PURGE          535
  44. #define MENU_RLEFRAMES      536
  45. #define MENU_REALIZE        537
  46. #define MENU_IDENTITY       538
  47. #define MENU_320x240        539
  48. #define MENU_320x200        540
  49. #define MENU_SKIPFRAMES     561
  50.  
  51. #define MENU_SAVE_RLE       543
  52. #define MENU_SAVE_FRAMES    544
  53. #define MENU_SAVE_RL0       545
  54. #define MENU_SAVE_WAVE      546
  55.  
  56. /*----------------------------------------------------------------------------*\
  57.  * Dialog IDs
  58. \*----------------------------------------------------------------------------*/
  59.  
  60. #define ABOUTBOX            100
  61. #define DLG_RANGE           101
  62. #define RLEDLGBOX           102
  63. #define FRAMEDLG            103
  64.  
  65. #define ID_EDIT             200
  66. #define ID_SCROLL           210
  67. #define ID_TEXT             220
  68. #define ID_FRAMESSEC        230
  69.  
  70.  
  71. /*----------------------------------------------------------------------------*\
  72.  * public globals and structures in RLEAPP.C
  73. \*----------------------------------------------------------------------------*/
  74.  
  75. #define MAXFRAMES   3500        // DON'T CHANGE!!
  76.                     // If MAXFRAMES * sizeof(FRAME) gets
  77.                     // > 64K then arFrames will have to be
  78.                     // a huge *
  79.  
  80. typedef struct {
  81.     HANDLE      hdib;
  82.     HANDLE      hrle;
  83.     HPALETTE    hpal;
  84.     WORD        f;
  85. }   FRAME;
  86.  
  87. #define F_PALSHARED  0x0001     // frame HPAL is same as previous frame
  88. #define F_KEYFRAME   0x0002     // key frame
  89. #define F_RLE        0x0020     // frame is RLE compressed
  90.  
  91. #define FramePalette(n) (arFrames[n].hpal)
  92. #define FrameDib(n)     (arFrames[n].hdib ? arFrames[n].hdib : arFrames[n].hrle)
  93. #define FrameRle(n)     (arFrames[n].hrle ? arFrames[n].hrle : arFrames[n].hdib)
  94. #define FrameFlags(n)   (arFrames[n].f)
  95. #define IsFrameRLE(n)   (arFrames[n].hrle && (arFrames[n].f & F_RLE))
  96. #define IsFrameDIB(n)   (arFrames[n].hdib && !arFrames[n].hrle)
  97.  
  98. extern FRAME far *  arFrames;
  99. extern int          numFrames;
  100. extern int          totFrames;
  101. extern int          curFrame;
  102. extern BOOL         fLoading;
  103.  
  104. #define             FramesSecScale      1000l
  105. extern long         FramesSec;
  106.  
  107. extern LPWAVEFORMAT pWaveFormat;
  108. extern LPWAVEHDR    pwhMovie;
  109. extern HWAVEOUT     hWaveOut;
  110. extern int          gChannels;          // Info about the Wave data
  111. extern DWORD        gSamplesPerSec;
  112. extern DWORD        gdwBufferLength;    // start and len of movie's 1st wave
  113. extern BYTE huge  * glpData;
  114.  
  115. /*----------------------------------------------------------------------------*\
  116.  * RLEAPP.C
  117. \*----------------------------------------------------------------------------*/
  118.  
  119. extern void     StartWait(void);
  120. extern void     EndWait(void);
  121. extern BOOL     WinYield(void);
  122. extern void     ShowFrame(int iFrame);
  123. extern HANDLE   RenderFrame(int iFrame);
  124. extern BOOL     InsertFrame(HANDLE hdib, int iFrame, BOOL fRender);
  125. extern BOOL     DeleteFrame(int iFrame);
  126. extern void     PurgeFrames(void);
  127.  
  128. /*----------------------------------------------------------------------------*\
  129.  * MEM.ASM
  130. \*----------------------------------------------------------------------------*/
  131. extern LPVOID FAR PASCAL MemCopy(LPVOID dest, LPVOID source, LONG count);
  132. extern LPVOID FAR PASCAL MemFill(LPVOID dest, LONG count, BYTE b);
  133. extern long   FAR PASCAL muldiv32(long,long,long);
  134.  
  135. /*----------------------------------------------------------------------------*\
  136.  *  RLEFILE.C
  137. \*----------------------------------------------------------------------------*/
  138.  
  139. extern BOOL OpenMovieFile(LPSTR szFrame, int iFrame);
  140. extern BOOL OpenWavFile(LPSTR szFrame);
  141.  
  142. extern void SaveRl0File(LPSTR szFile,int startFrame,int nFrames);
  143. extern void SaveRleFile(LPSTR szFile,int startFrame,int nFrames);
  144. extern BOOL SaveWavFile(LPSTR szFile,int startFrame,int nFrames);
  145.  
  146. /*----------------------------------------------------------------------------*\
  147.  *  RLEDLG.C
  148. \*----------------------------------------------------------------------------*/
  149.  
  150. typedef struct {
  151.     LPSTR       lpCaption;
  152.     int         current,min,max;
  153. } RANGEDIALOGPARAM, far *LPRANGEDIALOGPARAM;
  154.  
  155. BOOL fDialog(int id,HWND hwnd,FARPROC fpfn);
  156. BOOL fDialogParam(int id,HWND hwnd,FARPROC fpfn,DWORD dwParam);
  157. int  ErrMsg (LPSTR sz,...);
  158.  
  159. BOOL EXPORT fnRangeDlg     (HWND, short, WORD, LONG);
  160. BOOL EXPORT fnResizeDlg    (HWND, short, WORD, LONG);
  161. BOOL EXPORT AppAbout       (HWND, short, WORD, LONG);
  162. BOOL EXPORT FrameDlgProc   (HWND, short, WORD, LONG);
  163.