diff options
Diffstat (limited to 'src/emu/sound.h')
-rw-r--r-- | src/emu/sound.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/src/emu/sound.h b/src/emu/sound.h new file mode 100644 index 00000000000..041d923d4b8 --- /dev/null +++ b/src/emu/sound.h @@ -0,0 +1,89 @@ +/*************************************************************************** + + sound.h + + Core sound interface functions and definitions. + + Copyright (c) 1996-2007, Nicola Salmoria and the MAME Team. + Visit http://mamedev.org for licensing and usage restrictions. + +***************************************************************************/ + +#pragma once + +#ifndef __SOUND_H__ +#define __SOUND_H__ + +#include "mamecore.h" + +/*************************************************************************** + CONSTANTS +***************************************************************************/ + +#define MAX_ROUTES (16) /* maximum number of streams of any chip */ +#define ALL_OUTPUTS (-1) /* special value indicating all outputs for the current chip */ + + + +/*************************************************************************** + TYPE DEFINITIONS +***************************************************************************/ + +/* Sound route for the machine driver */ +typedef struct _sound_route sound_route; +struct _sound_route +{ + int output; /* output ID */ + const char *target; /* tag of the target */ + float gain; /* gain */ +}; + + +/* Sound configuration for the machine driver */ +typedef struct _sound_config sound_config; +struct _sound_config +{ + sound_type type; /* what type of sound chip? */ + int clock; /* clock speed */ + const void *config; /* configuration for this chip */ + const char *tag; /* tag for this chip */ + int routes; /* number of routes we have */ + sound_route route[MAX_ROUTES]; /* routes for the various streams */ +}; + + +/* Speaker configuration for the machine driver */ +typedef struct _speaker_config speaker_config; +struct _speaker_config +{ + const char *tag; /* tag for this speaker */ + float x, y, z; /* positioning vector */ +}; + + + +/*************************************************************************** + FUNCTION PROTOTYPES +***************************************************************************/ + +/* core interfaces */ +void sound_init(running_machine *machine); + +/* global sound controls */ +void sound_mute(int mute); +void sound_set_attenuation(int attenuation); +int sound_get_attenuation(void); +void sound_global_enable(int enable); + +/* user gain controls on speaker inputs for mixing */ +int sound_get_user_gain_count(void); +void sound_set_user_gain(int index, float gain); +float sound_get_user_gain(int index); +float sound_get_default_gain(int index); +const char *sound_get_user_gain_name(int index); + +/* misc helpers */ +int sound_find_sndnum_by_tag(const char *tag); + + +#endif /* __SOUND_H__ */ |