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

  1.  
  2.  /* SP_ChangeSubs.c
  3.     - Functions for controlling ST-Support -
  4.     (c) 1990-94 by Andreas R. Kleinert
  5.     Last changes : 17.07.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_SampleList)
  122.   {
  123.    struct SPO_SampleList  *SampleList;
  124.    struct SPO_SampleEntry *entry;
  125.  
  126.    SampleList = SPObjectHandle->ah_SampleList;
  127.  
  128.    if(SampleList->sl_NumEntries)
  129.     {
  130.      entry= (APTR) SampleList->sl_EntryList.lh_Head;
  131.  
  132.      *buffer     = entry->se_SampleBuffer;
  133.      *buffersize = entry->se_SampleSize;
  134.  
  135.     }else retval = SPERR_ILLEGAL_ACCESS;
  136.  
  137.   }else retval = SPERR_ILLEGAL_ACCESS;
  138.  
  139.  return(retval);
  140. }
  141.  
  142. /* *************************************************** */
  143. /* *                             * */
  144. /* * SPO_GetSampleBuffer : ...                       * */
  145. /* *                             * */
  146. /* *************************************************** */
  147.  
  148. ULONG __saveds __asm SPO_GetSampleInfo( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 ULONG *samplesPerSec, register __a3 ULONG *volume, register __d1 APTR future)
  149. {
  150.  struct SPObjectHandle *SPObjectHandle = SPObjectHandle_a1;
  151.  ULONG retval = SPERR_NO_ERROR;
  152.  
  153.  if(!SPObjectHandle) return(SPERR_NO_HANDLE);
  154.  
  155.  if(SPObjectHandle->ah_SampleList)
  156.   {
  157.    struct SPO_SampleList  *SampleList;
  158.    struct SPO_SampleEntry *entry;
  159.  
  160.    SampleList = SPObjectHandle->ah_SampleList;
  161.  
  162.    if(SampleList->sl_NumEntries)
  163.     {
  164.      entry= (APTR) SampleList->sl_EntryList.lh_Head;
  165.  
  166.      *samplesPerSec = entry->se_SamplesPerSec;
  167.      *volume        = entry->se_Volume;
  168.  
  169.     }else retval = SPERR_ILLEGAL_ACCESS;
  170.  
  171.   }else retval = SPERR_ILLEGAL_ACCESS;
  172.  
  173.  return(retval);
  174. }
  175.