home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga Shareware Floppies / ma58.dms / ma58.adf / superplay-lib_DEV / Programmers / Example_SPObjects / SPO / SP_ChangeSubs.c < prev    next >
C/C++ Source or Header  |  1996-05-27  |  6KB  |  154 lines

  1.  
  2.  /* SP_ChangeSubs.c
  3.     - Functions for controlling SPO-Support -
  4.     (c) 1990-94 by Andreas R. Kleinert
  5.     Last changes : 14.01.1994
  6.  */
  7.  
  8. #include "spobject.h"
  9.  
  10. ULONG __saveds __asm SPO_SetAccessMode(  register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __d1 ULONG mode);
  11. ULONG __saveds __asm SPO_SetWriteSubType( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 ULONG akt_type, register __a3 APTR future);
  12. ULONG __saveds __asm SPO_SetReadName( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 char *readname, register __a3 APTR future);
  13. ULONG __saveds __asm SPO_SetWriteName( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 char *writename, register __a3 APTR future);
  14. ULONG __saveds __asm SPO_SetReqIOWindow(  register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 struct Window *ReqIOWindow);
  15. ULONG __saveds __asm SPO_GetSampleBuffer( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 UBYTE **buffer, register __a3 ULONG *buffersize);
  16. ULONG __saveds __asm SPO_GetSampleInfo( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 ULONG *samplesPerSec, register __a3 ULONG *volume, register __d1 APTR future);
  17.  
  18.  
  19. /* *************************************************** */
  20. /* *                             * */
  21. /* * SPO_SetAccessMode : ...                         * */
  22. /* *                             * */
  23. /* *************************************************** */
  24.  
  25. ULONG __saveds __asm SPO_SetAccessMode(  register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __d1 ULONG mode)
  26. {
  27.  struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;
  28.  ULONG retval = SPERR_NO_ERROR;
  29.  
  30.  if(!SPObjectHandle) return(SPERR_NO_HANDLE);
  31.  
  32.  if(mode != SPO_MEDIUM_DISK) retval = SPERR_ACTION_NOT_SUPPORTED;
  33.   else                       SPObjectHandle->ah_Medium = mode;
  34.  
  35.  return(retval);
  36. }
  37.  
  38. /* *************************************************** */
  39. /* *                             * */
  40. /* * SPO_SetWriteType :                              * */
  41. /* *                             * */
  42. /* *************************************************** */
  43.  
  44. ULONG __saveds __asm SPO_SetWriteSubType( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 ULONG akt_type, register __a3 APTR future)
  45. {
  46.  struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;
  47.  
  48.  if(!SPObjectHandle) return(SPERR_NO_HANDLE);
  49.  
  50.  SPObjectHandle->ah_WriteMode = akt_type;
  51.  
  52.  return(SPERR_NO_ERROR);
  53. }
  54.  
  55. /* *************************************************** */
  56. /* *                             * */
  57. /* * SPO_SetReadName :                               * */
  58. /* *                             * */
  59. /* *************************************************** */
  60.  
  61. ULONG __saveds __asm SPO_SetReadName( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 char *readname, register __a3 APTR future)
  62. {
  63.  struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;
  64.  
  65.  if(!SPObjectHandle) return(SPERR_NO_HANDLE);
  66.  
  67.  SPObjectHandle->ah_ReadName = readname;
  68.  
  69.  return(SPERR_NO_ERROR);
  70. }
  71.  
  72. /* *************************************************** */
  73. /* *                             * */
  74. /* * SPO_SetWriteName :                              * */
  75. /* *                             * */
  76. /* *************************************************** */
  77.  
  78. ULONG __saveds __asm SPO_SetWriteName( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 char *writename, register __a3 APTR future)
  79. {
  80.  struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;
  81.  
  82.  if(!SPObjectHandle) return(SPERR_NO_HANDLE);
  83.  
  84.  SPObjectHandle->ah_WriteName = writename;
  85.  
  86.  return(SPERR_NO_ERROR);
  87. }
  88.  
  89. /* *************************************************** */
  90. /* *                             * */
  91. /* * SPO_SetReqIOWindow : ...                        * */
  92. /* *                             * */
  93. /* *************************************************** */
  94.  
  95. ULONG __saveds __asm SPO_SetReqIOWindow(  register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 struct Window *ReqIOWindow)
  96. {
  97.  struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;
  98.  ULONG retval = SPERR_NO_ERROR;
  99.  
  100.  if(!SPObjectHandle) return(SPERR_NO_HANDLE);
  101.  if(!ReqIOWindow)    return(SPERR_ILLEGAL_ACCESS);
  102.  
  103.  SPObjectHandle->ah_ReqIOWindow = ReqIOWindow;
  104.  
  105.  return(retval);
  106. }
  107.  
  108. /* *************************************************** */
  109. /* *                             * */
  110. /* * SPO_GetSampleBuffer : ...                       * */
  111. /* *                             * */
  112. /* *************************************************** */
  113.  
  114. ULONG __saveds __asm SPO_GetSampleBuffer( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 UBYTE **buffer, register __a3 ULONG *buffersize)
  115. {
  116.  struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;
  117.  ULONG retval = SPERR_NO_ERROR;
  118.  
  119.  if(!SPObjectHandle) return(SPERR_NO_HANDLE);
  120.  
  121.  if(SPObjectHandle->ah_SPOHeader && SPObjectHandle->ah_XpkBuffer)
  122.   {
  123.    *buffer     = SPObjectHandle->ah_XpkBuffer;
  124.    *buffersize = SPObjectHandle->ah_SPOHeader->spo_SampleLength;
  125.  
  126.   }else retval = SPERR_ILLEGAL_ACCESS;
  127.  
  128.  return(retval);
  129. }
  130.  
  131. /* *************************************************** */
  132. /* *                             * */
  133. /* * SPO_GetSampleBuffer : ...                       * */
  134. /* *                             * */
  135. /* *************************************************** */
  136.  
  137. ULONG __saveds __asm SPO_GetSampleInfo( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 ULONG *samplesPerSec, register __a3 ULONG *volume, register __d1 APTR future)
  138. {
  139.  struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;
  140.  ULONG retval = SPERR_NO_ERROR;
  141.  
  142.  if(!SPObjectHandle) return(SPERR_NO_HANDLE);
  143.  
  144.  if(SPObjectHandle->ah_SPOHeader)
  145.   {
  146.    *samplesPerSec = SPObjectHandle->ah_SPOHeader->spo_Frequency;
  147.    *volume        = SPObjectHandle->ah_SPOHeader->spo_Volume;
  148.  
  149.   }else retval = SPERR_ILLEGAL_ACCESS;
  150.  
  151.  return(retval);
  152. }
  153.  
  154.