Move c/h files implementing/defining standard library stuff into a new libc directory...
[kugel-rb.git] / apps / plugins / doom / i_sound.h
blob2e733b1c628e1973ba19e569dff815a0183806c9
1 // Emacs style mode select -*- C++ -*-
2 //-----------------------------------------------------------------------------
3 //
4 // $Id$
5 //
6 // Copyright (C) 1993-1996 by id Software, Inc.
7 //
8 // This program is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU General Public License
10 // as published by the Free Software Foundation; either version 2
11 // of the License, or (at your option) any later version.
13 // This program is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 // GNU General Public License for more details.
19 // DESCRIPTION:
20 // System interface, sound.
22 //-----------------------------------------------------------------------------
24 #ifndef __I_SOUND__
25 #define __I_SOUND__
27 #include "doomdef.h"
29 // UNIX hack, to be removed.
30 #ifdef SNDSERV
31 extern FILE* sndserver;
32 extern char* sndserver_filename;
33 #endif
35 #include "doomstat.h"
36 #include "sounds.h"
40 // Init at program start...
41 void I_InitSound(void);
43 // ... update sound buffer and audio device at runtime...
44 void I_UpdateSound(void);
45 void I_SubmitSound(void);
47 // ... shut down and relase at program termination.
48 void I_ShutdownSound(void);
52 // SFX I/O
55 // Initialize channels?
56 void I_SetChannels(void);
58 // Get raw data lump index for sound descriptor.
59 int I_GetSfxLumpNum (sfxinfo_t* sfxinfo );
62 // Starts a sound in a particular sound channel.
63 int
64 I_StartSound
65 ( int id,
66 int vol,
67 int cnum,
68 int sep,
69 int pitch,
70 int priority );
73 // Stops a sound channel.
74 void I_StopSound(int handle);
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);
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 );
92 // MUSIC I/O
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(const 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);
118 #endif
119 //-----------------------------------------------------------------------------
121 // $Log$
122 // Revision 1.1 2006/03/28 15:44:01 dave
123 // Patch #2969 - Doom! Currently only working on the H300.
126 //-----------------------------------------------------------------------------