home *** CD-ROM | disk | FTP | other *** search
/ Bila Vrana / BILA_VRANA.iso / 031A / CMOD313.ZIP / CAPAPLA2.ZIP / CAPAPLA2.PAS < prev    next >
Pascal/Delphi Source File  |  1996-04-17  |  20KB  |  635 lines

  1.  
  2. (*
  3.    CapaPlay II Unit for Pascal
  4.  
  5.    Don't forget to add the {$M stacksize,0,0} into your program header!
  6. *)
  7.  
  8. {$G+}
  9. unit capapla2;
  10.  
  11. interface
  12.  
  13. (****************************** GUS Settings *********************************)
  14.  
  15. function CP_GetIRQ:byte; far;
  16. procedure CP_SetIRQ(NewIRQ:byte); far;
  17. function CP_GetDMA:byte; far;
  18. procedure CP_SetDMA(NewDMA:byte); far;
  19. function CP_GetBasePort:word; far;
  20. procedure CP_SetBasePort(NewBasePort:word); far;
  21. procedure CP_SetLineIn(LineInState:byte); far;
  22. procedure CP_SetMicIn(MicInState:byte); far;
  23.  
  24. (******************************* Load/Unload *********************************)
  25.  
  26. function CP_LoadModule(ModName:string;StartOffset:longint;TransferMode:byte):byte; far;
  27. function CP_LoadOnlyPatterns(ModName:string;StartOffset:longint;TransferMode:byte):byte; far;
  28. procedure CP_FreeModule; far;
  29.  
  30. (***************************** Start/Stop/Pause ******************************)
  31.  
  32. procedure CP_StartModule(Amplification:byte;DefaultPanning:byte;TimerMode:byte); far;
  33. procedure CP_StopModule; far;
  34. function CP_PauseModule:byte; far;
  35.  
  36. (********************** Set General Module Information ***********************)
  37.  
  38. procedure CP_SetSpeedZeroMode(SpeedZeroMode:byte); far;
  39. procedure CP_SetPanEffectMode(PanEffectMode:byte); far;
  40. procedure CP_SetVBlankMode(VBlankMode:byte); far;
  41. procedure CP_SetAmigaLimitsMode(AmigaLimitsMode:byte); far;
  42.  
  43. (********************** Get General Module Information ***********************)
  44.  
  45. function CP_GetModuleName:string; far;
  46. function CP_GetModuleType:byte; far;
  47. function CP_GetModuleLength:byte; far;
  48. function CP_GetNumOfPatterns:word; far;
  49. function CP_GetNumOfInstruments:byte; far;
  50. function CP_GetNumOfChannels:byte; far;
  51. function CP_GetNumOfUsedChannels:byte; far;
  52. function CP_GetRestartPosition:byte; far;
  53. function CP_GetUsedPatternMemory:longint; far;
  54. function CP_GetUsedInstrumentInfoMemory:longint; far;
  55. function CP_GetUsedGUSMemory:longint; far;
  56. function CP_GetFileSize:longint; far;
  57.  
  58. (********************** Set General Playing Information **********************)
  59.  
  60. procedure CP_SetPosition(NewPosition:word); far;
  61. procedure CP_SetGlobalVolume(NewVolume:word); far;
  62. procedure CP_SetMainVolume(NewVolume:word); far;
  63. procedure CP_SetSpeed(NewSpeed:word); far;
  64. procedure CP_SetTempo(NewTempo:word); far;
  65. procedure CP_RestoreSpeedAndTempo; far;
  66. procedure CP_SetDefaultPanning(DefaultPanning:shortint); far;
  67.  
  68. (********************** Get General Playing Information **********************)
  69.  
  70. function CP_GetRow:byte; far;
  71. function CP_GetNumOfRows(PositionNum:word):word; far;
  72. function CP_GetPosition:byte; far;
  73. function CP_GetPattern:byte; far;
  74. function CP_GetGlobalVolume:byte; far;
  75. procedure CP_RestoreInitialVolume; far;
  76. function CP_GetMainVolume:byte; far;
  77. function CP_GetSpeed:byte; far;
  78. function CP_GetTempo:byte; far;
  79. function CP_GetPlayingTime:word; far;
  80. function CP_GetTimer:longint; far;
  81. function CP_GetLoopCounter:byte; far;
  82.  
  83. (************************* Set Channel Information ***************************)
  84.  
  85. function CP_SetChannelMute(ChannelNum:word;MuteState:byte):byte; far;
  86. procedure CP_SetChannelPanning(ChannelNum:word;NewPanning:byte); far;
  87. procedure CP_PlaySample(ChannelNum:word;InstrumentNum:word;SampleNum:word;Note:byte;Octave:byte); far;
  88. procedure CP_StopSample(ChannelNum:word); far;
  89.  
  90. (************************* Get Channel Information ***************************)
  91.  
  92. function CP_GetChannelNote(ChannelNum:word):byte; far;
  93. function CP_GetChannelOctave(ChannelNum:word):byte; far;
  94. function CP_GetChannelVolume(ChannelNum:word):byte; far;
  95. function CP_GetChannelEffect(ChannelNum:word):byte; far;
  96. function CP_GetChannelEffectParams(ChannelNum:word):byte; far;
  97. function CP_GetChannelInstrument(ChannelNum:word):byte; far;
  98. function CP_GetChannelSample(ChannelNum:word):byte; far;
  99. function CP_GetChannelBar(ChannelNum:word):byte; far;
  100. function CP_GetChannelNoteTrigger(ChannelNum:word):byte; far;
  101. function CP_GetChannelPanning(ChannelNum:word):byte; far;
  102. function CP_GetChannelMute(ChannelNum:word):byte; far;
  103.  
  104. (******************** Set Instrument/Sample Information **********************)
  105.  
  106. function CP_SetSampleMute(InstrumentNum:word;SampleNum:word;MuteState:byte):byte; far;
  107.  
  108. (******************** Get Instrument/Sample Information **********************)
  109.  
  110. function CP_GetInstrumentName(InstrumentNum:word):string; far;
  111. function CP_GetNumOfSamples(InstrumentNum:word):byte; far;
  112. function CP_GetSampleName(InstrumentNum:word;SampleNum:word):string; far;
  113. function CP_GetSampleSize(InstrumentNum:word;SampleNum:word):longint; far;
  114. function CP_GetSampleC4Spd(InstrumentNum:word;SampleNum:word):word; far;
  115. function CP_GetSampleVolume(InstrumentNum:word;SampleNum:word):byte; far;
  116. function CP_GetSamplePanning(InstrumentNum:word;SampleNum:word):byte; far;
  117. function CP_GetSampleLoopType(InstrumentNum:word;SampleNum:word):byte; far;
  118. function CP_GetSampleLoopBegin(InstrumentNum:word;SampleNum:word):longint; far;
  119. function CP_GetSampleLength(InstrumentNum:word;SampleNum:word):longint; far;
  120. function CP_GetSample16Bit(InstrumentNum:word;SampleNum:word):byte; far;
  121. function CP_GetSampleMute(InstrumentNum:word;SampleNum:word):byte; far;
  122.  
  123. implementation
  124.  
  125. function _CP_GetIRQ:byte; far; external;
  126. procedure _CP_SetIRQ(NewIRQ:byte); far; external;
  127. function _CP_GetDMA:byte; far; external;
  128. procedure _CP_SetDMA(NewDMA:byte); far; external;
  129. function _CP_GetBasePort:word; far; external;
  130. procedure _CP_SetBasePort(NewBasePort:word); far; external;
  131. procedure _CP_SetLineIn(LineInState:byte); far; external;
  132. procedure _CP_SetMicIn(MicInState:byte); far; external;
  133. function _CP_LoadModule(TransferMode:byte;StartOffset:longint;ModSeg:word;ModOfs:word):byte; far; external;
  134. function _CP_LoadOnlyPatterns(TransferMode:byte;StartOffset:longint;ModSeg:word;ModOfs:word):byte; far; external;
  135. procedure _CP_FreeModule; far; external;
  136. procedure _CP_StartModule(TimerMode:byte;DefaultPanning:byte;Amplification:byte); far; external;
  137. procedure _CP_StopModule; far; external;
  138. function _CP_PauseModule:byte; far; external;
  139. procedure _CP_SetSpeedZeroMode(SpeedZeroMode:byte); far; external;
  140. procedure _CP_SetPanEffectMode(PanEffectMode:byte); far; external;
  141. procedure _CP_SetVBlankMode(VBlankMode:byte); far; external;
  142. procedure _CP_SetAmigaLimitsMode(AmigaLimitsMode:byte); far; external;
  143. function _CP_GetModuleName:longint; far; external;
  144. function _CP_GetModuleType:byte; far; external;
  145. function _CP_GetModuleLength:byte; far; external;
  146. function _CP_GetNumOfPatterns:word; far; external;
  147. function _CP_GetNumOfInstruments:byte; far; external;
  148. function _CP_GetNumOfChannels:byte; far; external;
  149. function _CP_GetNumOfUsedChannels:byte; far; external;
  150. function _CP_GetRestartPosition:byte; far; external;
  151. function _CP_GetUsedPatternMemory:longint; far; external;
  152. function _CP_GetUsedInstrumentInfoMemory:longint; far; external;
  153. function _CP_GetUsedGUSMemory:longint; far; external;
  154. function _CP_GetFileSize:longint; far; external;
  155. procedure _CP_SetPosition(NewPosition:word); far; external;
  156. procedure _CP_SetGlobalVolume(NewVolume:word); far; external;
  157. procedure _CP_SetMainVolume(NewVolume:word); far; external;
  158. procedure _CP_SetSpeed(NewSpeed:word); far; external;
  159. procedure _CP_SetTempo(NewTempo:word); far; external;
  160. procedure _CP_RestoreSpeedAndTempo; far; external;
  161. procedure _CP_SetDefaultPanning(DefaultPanning:shortint); far; external;
  162. function _CP_GetRow:byte; far; external;
  163. function _CP_GetNumOfRows(PositionNum:word):word; far; external;
  164. function _CP_GetPosition:byte; far; external;
  165. function _CP_GetPattern:byte; far; external;
  166. function _CP_GetGlobalVolume:byte; far; external;
  167. procedure _CP_RestoreInitialVolume; far; external;
  168. function _CP_GetMainVolume:byte; far; external;
  169. function _CP_GetSpeed:byte; far; external;
  170. function _CP_GetTempo:byte; far; external;
  171. function _CP_GetPlayingTime:word; far; external;
  172. function _CP_GetTimer:longint; far; external;
  173. function _CP_GetLoopCounter:byte; far; external;
  174. function _CP_SetChannelMute(MuteState:byte;ChannelNum:word):byte; far; external;
  175. procedure _CP_SetChannelPanning(NewPanning:byte;ChannelNum:w