i_sound.h
上传用户:xuyinpeng
上传日期:2021-05-12
资源大小:455k
文件大小:3k
源码类别:

射击游戏

开发平台:

Visual C++

  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. #ifndef __I_SOUND__
  23. #define __I_SOUND__
  24. #include "doomdef.h"
  25. // UNIX hack, to be removed.
  26. #ifdef SNDSERV
  27. #include <stdio.h>
  28. extern FILE* sndserver;
  29. extern char* sndserver_filename;
  30. #endif
  31. #include "doomstat.h"
  32. #include "sounds.h"
  33. // Init at program start...
  34. void I_InitSound();
  35. // ... update sound buffer and audio device at runtime...
  36. void I_UpdateSound(void);
  37. void I_SubmitSound(void);
  38. // ... shut down and relase at program termination.
  39. void I_ShutdownSound(void);
  40. //
  41. //  SFX I/O
  42. //
  43. // Initialize channels?
  44. void I_SetChannels();
  45. // Get raw data lump index for sound descriptor.
  46. int I_GetSfxLumpNum (sfxinfo_t* sfxinfo );
  47. // Starts a sound in a particular sound channel.
  48. int
  49. I_StartSound
  50. ( int id,
  51.   int vol,
  52.   int sep,
  53.   int pitch,
  54.   int priority,
  55.   void     *origin);
  56. // Stops a sound channel.
  57. void I_StopSound(int handle);
  58. // Called by S_*() functions
  59. //  to see if a channel is still playing.
  60. // Returns 0 if no longer playing, 1 if playing.
  61. int I_SoundIsPlaying(int handle);
  62. // Updates the volume, separation,
  63. //  and pitch of a sound channel.
  64. void
  65. I_UpdateSoundParams
  66. ( int handle,
  67.   int vol,
  68.   int sep,
  69.   int pitch );
  70. //
  71. //  MUSIC I/O
  72. //
  73. void I_InitMusic(void);
  74. void I_ShutdownMusic(void);
  75. // Volume.
  76. void I_SetMusicVolume(int volume);
  77. // PAUSE game handling.
  78. void I_PauseSong(int handle);
  79. void I_ResumeSong(int handle);
  80. // Registers a song handle to song data.
  81. int I_RegisterSong(void *data);
  82. // Called by anything that wishes to start music.
  83. //  plays a song, and when the song is done,
  84. //  starts playing it again in an endless loop.
  85. // Horrible thing to do, considering.
  86. void
  87. I_PlaySong
  88. ( int handle,
  89.   int looping );
  90. // Stops a song over 3 seconds.
  91. void I_StopSong(int handle);
  92. // See above (register), then think backwards
  93. void I_UnRegisterSong(int handle);
  94. #endif
  95. //-----------------------------------------------------------------------------
  96. //
  97. // $Log:$
  98. //
  99. //-----------------------------------------------------------------------------