home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 6 / AACD06.ISO / AACD / Programming / DOpus4-GPL / Program / music.h < prev    next >
C/C++ Source or Header  |  2000-01-27  |  3KB  |  102 lines

  1. /*
  2.  
  3. Directory Opus 4
  4. Original GPL release version 4.12
  5. Copyright 1993-2000 Jonathan Potter
  6.  
  7. This program is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU General Public License
  9. as published by the Free Software Foundation; either version 2
  10. of the License, or (at your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20.  
  21. All users of Directory Opus 4 (including versions distributed
  22. under the GPL) are entitled to upgrade to the latest version of
  23. Directory Opus version 5 at a reduced price. Please see
  24. http://www.gpsoft.com.au for more information.
  25.  
  26. The release of Directory Opus 4 under the GPL in NO WAY affects
  27. the existing commercial status of Directory Opus 5.
  28.  
  29. */
  30.  
  31.  
  32. #include <exec/types.h>
  33. #include <libraries/dos.h>
  34. #include <exec/resident.h>
  35. #include <exec/memory.h>
  36. #include <exec/libraries.h>
  37.  
  38.  
  39. /*Our Library Structure */
  40.  
  41.  
  42. struct MusicBase {
  43.     struct Library MLib;
  44.     BPTR    ml_SegList;
  45.     APTR    ml_Module;
  46.     LONG    ml_Len;
  47.     WORD    ml_Playing,
  48.             ml_ModType,
  49.             ml_Volume,
  50.             ml_Tempo,
  51.             ml_Tracks,
  52.             ml_SongPos;
  53.     struct Library *ml_DOSBase, *ml_PPBase;
  54.     char   *ml_SongName;
  55. };
  56.  
  57.  
  58. /* Module types currently supported */
  59. #define MOD_STNTPT   1               /* Sound/Noise/ProTracker */
  60. #define MOD_MED      2               /* MED Module (MMD0) */
  61. #define MOD_OKTA     3               /* Oktalyzer mod */
  62. #define MOD_OLDST    4               /* 15 Inst SoundTracker */
  63.  
  64. /* Error codes returned by PlayModule
  65.  
  66. **********************NOTE********************************
  67.  if err code is < 0, then the failure code is a PowerPacker.Library fail
  68.  
  69. */
  70.  
  71.  
  72. #define ML_NOMEM        101       /* not enuff memory to load module */
  73. #define ML_BADMOD       102       /* garbled or not-supported */
  74. #define ML_NOMOD        103       /* DOS Open failed */
  75. #define ML_NOPLAYER     104       /* CIA Player Allocations Failed */
  76. #define ML_LIBLOCKED    105       /* LIBBASE is Locked for processing */
  77. #define ML_INVALIDFNAME 106       /* Bad file name */
  78. #define ML_NOAUDIO      107       /* Couldn't lock Audio channels */
  79.  
  80. WORD PlayModule(char *,BOOL);
  81. VOID StopModule(void);
  82. WORD IsModule(char *);
  83. VOID FlushModule(void);
  84. VOID ContModule(void);
  85. VOID SetVolume(WORD);
  86. VOID PlayFaster(void);
  87. VOID PlaySlower(void);
  88. VOID TempoReset(void);
  89.  
  90. #pragma libcall MUSICBase PlayModule   1e 0802
  91. #pragma libcall MUSICBase StopModule   24 0
  92. #pragma libcall MUSICBase IsModule     2a 801
  93. #pragma libcall MUSICBase FlushModule  30 0
  94. #pragma libcall MUSICBase ContModule   36 0
  95. #pragma libcall MUSICBase SetVolume    3c 801
  96. #pragma libcall MUSICBase PlayFaster   42 0
  97. #pragma libcall MUSICBase PlaySlower   48 0
  98. #pragma libcall MUSICBase TempoReset   4e 0
  99.  
  100.  
  101.  
  102.