home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 28 / amigaformatcd28.iso / -websites- / amidoom / adoom_src-0.7.lha / ADoom_src / i_sound.h < prev    next >
C/C++ Source or Header  |  1997-12-29  |  3KB  |  124 lines

  1. // Emacs style mode select   -*- C++ -*- 
  2. //-----------------------------------------------------------------------------
  3. //
  4. // $Id:$
  5. //
  6. // Copyright (C) 1993-1996 by id Software, Inc.
  7. //
  8. // This source is available for distribution and/or modification
  9. // only under the terms of the DOOM Source Code License as
  10. // published by id Software. All rights reserved.
  11. //
  12. // The source is distributed in the hope that it will be useful,
  13. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
  15. // for more details.
  16. //
  17. //
  18. // DESCRIPTION:
  19. //    System interface, sound.
  20. //
  21. //-----------------------------------------------------------------------------
  22.  
  23. #ifndef __I_SOUND__
  24. #define __I_SOUND__
  25.  
  26. #include "doomdef.h"
  27.  
  28. // UNIX hack, to be removed.
  29. #ifdef SNDSERV
  30. #include <stdio.h>
  31. extern FILE* sndserver;
  32. extern char* sndserver_filename;
  33. #endif
  34.  
  35. #include "doomstat.h"
  36. #include "sounds.h"
  37.  
  38.  
  39.  
  40. // Init at program start...
  41. void I_InitSound(void);
  42.  
  43. // ... update sound buffer and audio device at runtime...
  44. void I_UpdateSound(void);
  45. void I_SubmitSound(void);
  46.  
  47. // ... shut down and relase at program termination.
  48. void I_ShutdownSound(void);
  49.  
  50.  
  51. //
  52. //  SFX I/O
  53. //
  54.  
  55. // Initialize channels?
  56. void I_SetChannels(void);
  57.  
  58. // Get raw data lump index for sound descriptor.
  59. int I_GetSfxLumpNum (sfxinfo_t* sfxinfo );
  60.  
  61.  
  62. // Starts a sound in a particular sound channel.
  63. int
  64. I_StartSound
  65. ( int        id,
  66.   int        cnum,
  67.   int        vol,
  68.   int        sep,
  69.   int        pitch,
  70.   int        priority );
  71.  
  72.  
  73. // Stops a sound channel.
  74. void I_StopSound(int handle);
  75.  
  76. // Called by S_*() functions
  77. //  to see if a channel is still playing.
  78. // Returns 0 if no longer playing, 1 if playing.
  79. int I_SoundIsPlaying(int handle);
  80.  
  81. // Updates the volume, separation,
  82. //  and pitch of a sound channel.
  83. void
  84. I_UpdateSoundParams
  85. ( int        handle,
  86.   int        vol,
  87.   int        sep,
  88.   int        pitch );
  89.  
  90.  
  91. //
  92. //  MUSIC I/O
  93. //
  94. void I_InitMusic(void);
  95. void I_ShutdownMusic(void);
  96. // Volume.
  97. void I_SetMusicVolume(int volume);
  98. // PAUSE game handling.
  99. void I_PauseSong(int handle);
  100. void I_ResumeSong(int handle);
  101. // Registers a song handle to song data.
  102. int I_RegisterSong(void *data);
  103. // Called by anything that wishes to start music.
  104. //  plays a song, and when the song is done,
  105. //  starts playing it again in an endless loop.
  106. // Horrible thing to do, considering.
  107. void
  108. I_PlaySong
  109. ( int        handle,
  110.   int        looping );
  111. // Stops a song over 3 seconds.
  112. void I_StopSong(int handle);
  113. // See above (register), then think backwards
  114. void I_UnRegisterSong(int handle);
  115.  
  116.  
  117.  
  118. #endif
  119. //-----------------------------------------------------------------------------
  120. //
  121. // $Log:$
  122. //
  123. //-----------------------------------------------------------------------------
  124.