quakeforge/include/QF/plugin/sound.h
Jeff Teunissen c364e1c3cf The first version of the QF Plugin API. Version 1.0 supports input and
sound (digital audio, that is, not CD) plugins right now, more to come
later.
2001-04-24 22:19:42 +00:00

77 lines
2.6 KiB
C

/*
QF/plugin/sound.h
Sound plugin data types
Copyright (C) 2001 Jeff Teunissen <deek@quakeforge.net>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA
$Id$
*/
#ifndef __QF_plugin_sound_h_
#define __QF_plugin_sound_h_
#include <QF/qtypes.h>
#include <QF/sound.h>
#include <QF/plugin.h>
/*
All sound plugins must export these functions
*/
typedef void (QFPLUGIN *P_S_Init) (void);
typedef void (QFPLUGIN *P_S_Shutdown) (void);
typedef void (QFPLUGIN *P_S_AmbientOff) (void);
typedef void (QFPLUGIN *P_S_AmbientOn) (void);
typedef void (QFPLUGIN *P_S_TouchSound) (char *sample);
typedef void (QFPLUGIN *P_S_ClearBuffer) (void);
typedef void (QFPLUGIN *P_S_StartSound) (int entnum, int entchannel, sfx_t *sfx, vec3_t origin, float fvol, float attenuation);
typedef void (QFPLUGIN *P_S_StaticSound) (sfx_t *sfx, vec3_t origin, float vol, float attenuation);
typedef void (QFPLUGIN *P_S_StopSound) (int entnum, int entchannel);
typedef sfx_t * (QFPLUGIN *P_S_PrecacheSound) (char *sample);
typedef void (QFPLUGIN *P_S_ClearPrecache) (void);
typedef void (QFPLUGIN *P_S_Update) (vec3_t origin, vec3_t v_forward, vec3_t v_right, vec3_t v_up);
typedef void (QFPLUGIN *P_S_StopAllSounds) (qboolean clear);
typedef void (QFPLUGIN *P_S_BeginPrecaching) (void);
typedef void (QFPLUGIN *P_S_EndPrecaching) (void);
typedef void (QFPLUGIN *P_S_ExtraUpdate) (void);
typedef void (QFPLUGIN *P_S_LocalSound) (char *s);
typedef struct sound_funcs_s {
P_S_AmbientOff pS_AmbientOff;
P_S_AmbientOn pS_AmbientOn;
P_S_TouchSound pS_TouchSound;
P_S_ClearBuffer pS_ClearBuffer;
P_S_StaticSound pS_StaticSound;
P_S_StartSound pS_StartSound;
P_S_StopSound pS_StopSound;
P_S_PrecacheSound pS_PrecacheSound;
P_S_ClearPrecache pS_ClearPrecache;
P_S_Update pS_Update;
P_S_StopAllSounds pS_StopAllSounds;
P_S_BeginPrecaching pS_BeginPrecaching;
P_S_EndPrecaching pS_EndPrecaching;
P_S_ExtraUpdate pS_ExtraUpdate;
P_S_LocalSound pS_LocalSound;
} sound_funcs_t;
typedef struct sound_data_s {
} sound_data_t;
#endif // __QF_plugin_sound_h_