MODPLAY.H
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:2k
源码类别:

游戏

开发平台:

Visual C++

  1. /*  modplay.h - Tiny MOD Player V2.11 for Watcom C/C++ and DOS/4GW
  2.     Module player for Sound Blaster and compatibles header file.
  3.     Copyright 1993,94 Carlos Hasan
  4. */
  5. #ifndef __MODPLAY_H
  6. #define __MODPLAY_H
  7. #ifdef __BORLANDC__
  8. #ifndef __LARGE__
  9. #error Must use large memory model.
  10. #endif
  11. #endif
  12. #define PM_TIMER    0
  13. #define PM_MANUAL   1
  14. typedef unsigned char byte;
  15. typedef unsigned short word;
  16. typedef unsigned long dword;
  17. typedef byte *pointer;
  18. typedef struct {
  19.     word    NumTracks;
  20.     word    OrderLength;
  21.     byte    Orders[128];
  22.     pointer Patterns[128];
  23.     pointer SampPtr[32];
  24.     pointer SampEnd[32];
  25.     pointer SampLoop[32];
  26.     byte    SampVolume[32];
  27. } Module;
  28. typedef struct {
  29.     word    Period;
  30.     word    Volume;
  31.     dword   Length;
  32.     pointer Data;
  33. } Sample;
  34. #ifdef __WATCOMC__
  35. #pragma aux MODDetectCard "_*" parm caller [];
  36. #pragma aux MODPlayModule "_*" parm caller [];
  37. #pragma aux MODStopModule "_*" parm caller [];
  38. #pragma aux MODPlaySample "_*" parm caller [];
  39. #pragma aux MODStopSample "_*" parm caller [];
  40. #pragma aux MODSetPeriod  "_*" parm caller [];
  41. #pragma aux MODSetVolume  "_*" parm caller [];
  42. #pragma aux MODSetMusicVolume  "_*" parm caller [];
  43. #pragma aux MODSetSampleVolume "_*" parm caller [];
  44. #pragma aux MODPoll "_*" parm caller [];
  45. #endif
  46. extern int  MODDetectCard(word *Port, byte *IRQ, byte *DRQ);
  47. extern int  MODPlayModule(Module *Modulefile,word Chans,word Rate,word Port,byte IRQ,byte DRQ,byte Mode);
  48. extern void MODStopModule(void);
  49. extern void MODPlaySample(byte Voice,Sample *Instr);
  50. extern void MODStopSample(byte Voice);
  51. extern void MODSetPeriod(byte Voice,word Period);
  52. extern void MODSetVolume(byte Voice,byte Volume);
  53. extern void MODSetMusicVolume(byte Volume);
  54. extern void MODSetSampleVolume(byte Volume);
  55. extern void MODPoll(void);
  56. extern Module *MODLoadModule(char *Path);
  57. extern void MODFreeModule(Module *Song);
  58. extern Sample *MODLoadSample(char *Path);
  59. extern void MODFreeSample(Sample *Instr);
  60. #endif