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

  1.  
  2.  /* spobject.h
  3.     - Include File for SPO.spobject -
  4.     (c) 1993-94 by Andreas R. Kleinert
  5.     Last changes : 21.07.1994
  6.  */
  7.  
  8. #ifndef SPOBJECT_H
  9. #define SPOBJECT_H
  10.  
  11. #ifndef SUPERPLAY_SUPERPLAYBASE_H
  12. #include <superplay/superplaybase.h>
  13. #endif  /* SUPERPLAY_SUPERPLAYBASE_H */
  14.  
  15. #ifndef SPOBJECTS_SPOBJECTBASE_H
  16. #include <spobjects/spobjectbase.h>
  17. #endif  /* SPOBJECTS_SPOBJECTBASE_H
  18.  
  19. #ifndef INTUITION_INTUITIONBASE_H
  20. #include <intuition/intuitionbase.h>
  21. #endif /* INTUITION_INTUITIONBASE_H */
  22.  
  23. #ifndef EXEC_MEMORY_H
  24. #include <exec/memory.h>
  25. #endif /* EXEC_MEMORY_H */
  26.  
  27. #ifndef EXEC_LISTS_H
  28. #include <exec/lists.h>
  29. #endif /* EXEC_LISTS_H */
  30.  
  31. #ifndef EXEC_INTERRUPTS_H
  32. #include <exec/interrupts.h>
  33. #endif /* EXEC_INTERRUPTS_H */
  34.  
  35. #ifndef EXEC_TASKS_H
  36. #include <exec/tasks.h>
  37. #endif /* EXEC_TASKS_H */
  38.  
  39. #include <libraries/xpk.h>
  40.  
  41. #include <proto/exec.h>
  42. #include <proto/dos.h>
  43. #include <proto/intuition.h>
  44.  
  45. #include "SP_MemSubs.h"
  46. #include "SP_SampleListSubs.h"
  47. #include "spo.h"
  48.  
  49.  
  50. /* *************************************************** */
  51. /* *                             * */
  52. /* * SP_SuperVisor.c : Functions                 * */
  53. /* *                             * */
  54. /* *************************************************** */
  55.  
  56. extern struct SPObjectHandle * __saveds __asm SPO_AllocHandle( register __a1 APTR future_a1);
  57. extern void __saveds __asm SPO_FreeHandle( register __a1 struct SPObjectHandle *SPObjectHandle_a1);
  58. extern void __saveds __asm SPO_StopReplay( register __a1 struct SPObjectHandle *SPObjectHandle_a1);
  59. extern void __saveds __asm SPO_FreeResources( register __a1 struct SPObjectHandle *SPObjectHandle_a1);
  60.  
  61.  
  62. /* *************************************************** */
  63. /* *                             * */
  64. /* * SP_WriteSubs.c : ...                            * */
  65. /* *                             * */
  66. /* *************************************************** */
  67.  
  68. extern ULONG __saveds __asm SPO_Write( register __a1 struct SPObjectHandle *SPObjectHandle_a1,
  69.                                        register __a2 struct SPObjectBase   *SPO_SourceBase,
  70.                                        register __a3 struct SPObjectHandle *source_handle);
  71.  
  72.  
  73. /* *************************************************** */
  74. /* *                             * */
  75. /* * SP_InfoSubs.c : ...                             * */
  76. /* *                             * */
  77. /* *************************************************** */
  78.  
  79.  /* PUBLIC functions (high level) */
  80.  
  81. extern ULONG __saveds __asm SPO_FileInfoRequest( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 struct Window *window, register __a3 ULONG future);
  82. extern ULONG __saveds __asm SPO_CheckFileType(register __a1 BPTR handle, register __a2 UBYTE *filename, register __a3 APTR future);
  83.  
  84.  
  85. /* *************************************************** */
  86. /* *                             * */
  87. /* * SP_ChangeSubs.c : ...                           * */
  88. /* *                             * */
  89. /* *************************************************** */
  90.  
  91. extern ULONG __saveds __asm SPO_SetAccessMode(  register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __d1 ULONG mode);
  92. extern ULONG __saveds __asm SPO_SetWriteSubType( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 ULONG akt_type, register __a3 APTR future);
  93. extern ULONG __saveds __asm SPO_SetReadName( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 char *readname, register __a3 APTR future);
  94. extern ULONG __saveds __asm SPO_SetWriteName( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 char *writename, register __a3 APTR future);
  95. extern ULONG __saveds __asm SPO_SetReqIOWindow(  register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 struct Window *ReqIOWindow);
  96. extern ULONG __saveds __asm SPO_GetSampleBuffer( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 UBYTE **buffer, register __a3 ULONG *buffersize);
  97. extern ULONG __saveds __asm SPO_GetSampleInfo( register __a1 struct SPObjectHandle *SPObjectHandle_a1, register __a2 ULONG *samplesPerSec, register __a3 ULONG *volume, register __d1 APTR future);
  98.  
  99.  
  100. /* *************************************************** */
  101. /* *                             * */
  102. /* * SP_PlaySubs.c : ...                             * */
  103. /* *                             * */
  104. /* *************************************************** */
  105.  
  106. extern ULONG __saveds __asm SPO_Read( register __a1 struct SPObjectHandle *SPObjectHandle);
  107. extern ULONG __saveds __asm SPO_StartReplay( register __a1 struct SPObjectHandle *SPObjectHandle);
  108. extern ULONG __saveds __asm SPO_ContinueReplay( register __a1 struct SPObjectHandle *SPObjectHandle_a1);
  109. extern ULONG __saveds __asm SPO_FastForward( register __a1 struct SPObjectHandle *SPObjectHandle_a1);
  110. extern ULONG __saveds __asm SPO_FastBackward( register __a1 struct SPObjectHandle *SPObjectHandle_a1);
  111.  
  112.  
  113. /* *************************************************** */
  114. /* *                             * */
  115. /* * Additional Base Declarations             * */
  116. /* *                             * */
  117. /* *************************************************** */
  118.  
  119. extern struct SPObjectBase  *SPObjectBase;
  120.  
  121. extern struct ExecBase        *SysBase;
  122. extern struct DosLibrary    *DOSBase;
  123. extern struct IntuitionBase *IntuitionBase;
  124. extern struct XpkBase       *XpkBase;
  125.  
  126.  
  127.  /* structures for File-Handling */
  128.  
  129. struct SPObjectHandle                   /* STRICTLY PRIVATE */
  130. {
  131.  BPTR                ah_filehandle_source;
  132.  BPTR                ah_filehandle_dest;
  133.  BPTR                ah_filehandle_dest2;
  134.  
  135.  char               *ah_ReadName;
  136.  char               *ah_WriteName;
  137.  
  138.  struct Window      *ah_ReqIOWindow;
  139.  
  140.  ULONG               ah_FileType;           /* SP_FILETYPE_ ... */
  141.  ULONG               ah_Type;               /* SP_SUBTYPE_  ... */
  142.  ULONG               ah_WriteMode;          /* SP_SUBTYPE_  ... */
  143.  ULONG               ah_Medium;             /* SPO_MEDIUM_  ... */
  144.  
  145.  struct AIM_MemList *ah_ramhandle;
  146.  
  147.  ULONG               ah_TaskRunning;  /* Bool */
  148.  ULONG               ah_TaskStopNext; /* Bool */
  149.  ULONG               ah_TaskRetVal;   /* May already occure after AddTask(), */
  150.                                       /* but also while/after removing       */
  151.  
  152.  struct Task        *ah_PlayTask;
  153.  APTR                ah_PlayTaskCode;
  154.  
  155.  /* For SPO Files */
  156.  
  157.  struct SPOHeader   *ah_SPOHeader;
  158.  APTR                ah_XpkBuffer;
  159.  ULONG               ah_XpkBufferSize;
  160.  
  161.  struct SPO_SampleList *ah_SampleList;
  162.  struct SPO_SampleList *ah_SaveSampleList;
  163. };
  164.  
  165. struct EightSVXSPObjectBase
  166. {
  167.  struct SPObjectBase spb_SPObjectBase;
  168.  
  169.  APTR                spb_SegList;       /* private part of Base Data */
  170.  APTR                spb_SysBase;
  171.  APTR                spb_DOSBase;
  172.  APTR                spb_IntuitionBase;
  173.  APTR                spb_XpkBase;
  174. };
  175.  
  176. #endif /* SPOBJECT_H */
  177.