1 #ifndef SNDDRV_H_INCLUDED 2 #define SNDDRV_H_INCLUDED 3 4 5 enum { 6 XMAME_MIXER_PSG, 7 XMAME_MIXER_FM, 8 XMAME_MIXER_BEEP, 9 XMAME_MIXER_RHYTHM, 10 XMAME_MIXER_ADPCM, 11 XMAME_MIXER_FMGEN, 12 XMAME_MIXER_SAMPLE, 13 XMAME_MIXER_END 14 }; 15 16 #define VOL_MAX (0) 17 #define FMVOL_MAX (100) 18 #define PSGVOL_MAX (100) 19 #define BEEPVOL_MAX (100) 20 #define RHYTHMVOL_MAX (200) 21 #define ADPCMVOL_MAX (200) 22 #define FMGENVOL_MAX (100) 23 #define SAMPLEVOL_MAX (100) 24 25 #define VOL_MIN (-32) 26 #define FMVOL_MIN (0) 27 #define PSGVOL_MIN (0) 28 #define BEEPVOL_MIN (0) 29 #define RHYTHMVOL_MIN (0) 30 #define ADPCMVOL_MIN (0) 31 #define FMGENVOL_MIN (0) 32 #define SAMPLEVOL_MIN (0) 33 34 35 36 /* ������ɷϥ��ץ������˥塼�����ѹ����뤿��ξ���ơ��֥� */ 37 /* ��˥塼�Ǥϡ����������ꤷ���ѿ���ȥ�ˤ����ϲ�ǽ�Ȥʤ롣 */ 38 39 typedef enum { 40 SNDDRV_NULL = 0, /* ��ü�ޡ��� */ 41 SNDDRV_INT, /* �ѿ� work �� int�� */ 42 SNDDRV_FLOAT, /* �ѿ� work �� float�� */ 43 } SNDDRV_TYPE; 44 45 typedef struct T_SNDDRV_CONFIG { 46 int type; /* SNDDRV_TYPE������ */ 47 char *title; /* ��˥塼�θ��Ф� (ASCII) */ 48 void *work; /* �ѹ��оݤȤʤ��ѿ��Υݥ��� */ 49 double low; /* �ѹ���ǽ���ϰ� */ 50 double high; /* (low <= *work <= high) */ 51 } T_SNDDRV_CONFIG; 52 53 54 55 #ifdef USE_SOUND 56 57 #include "getconf.h" 58 int xmame_config_init(void); 59 void xmame_config_exit(void); 60 61 const T_CONFIG_TABLE *xmame_config_get_opt_tbl(void); 62 void xmame_config_show_option(void); 63 64 int xmame_config_check_option(char *arg1, char *arg2, int priority); 65 int xmame_config_save_option(void (*real_write)(const char *opt_name, const char *opt_arg)); 66 67 T_SNDDRV_CONFIG *xmame_config_get_sndopt_tbl(void); 68 69 int xmame_has_sound(void); 70 int xmame_has_audiodevice(void); 71 int xmame_has_mastervolume(void); 72 73 74 75 int xmame_sound_start(void); 76 void xmame_sound_update(void); 77 void xmame_update_video_and_audio(void); 78 void xmame_sound_stop(void); 79 void xmame_sound_suspend(void); 80 void xmame_sound_resume(void); 81 void xmame_sound_reset(void); 82 83 byte xmame_dev_sound_in_data(void); 84 byte xmame_dev_sound_in_status(void); 85 void xmame_dev_sound_out_reg(byte data); 86 void xmame_dev_sound_out_data(byte data); 87 byte xmame_dev_sound2_in_data(void); 88 byte xmame_dev_sound2_in_status(void); 89 void xmame_dev_sound2_out_reg(byte data); 90 void xmame_dev_sound2_out_data(byte data); 91 void xmame_dev_beep_out_data(byte data); 92 void xmame_dev_beep_cmd_sing(byte flag); 93 void xmame_dev_sample_motoron(void); 94 void xmame_dev_sample_motoroff(void); 95 void xmame_dev_sample_headdown(void); 96 void xmame_dev_sample_headup(void); 97 void xmame_dev_sample_seek(void); 98 void xmame_dev_sound_timer_over(int timer); 99 100 int xmame_cfg_get_mastervolume(void); 101 void xmame_cfg_set_mastervolume(int vol); 102 int xmame_cfg_get_mixer_volume(int ch); 103 void xmame_cfg_set_mixer_volume(int ch, int level); 104 int xmame_cfg_get_use_fmgen(void); 105 int xmame_cfg_set_use_fmgen(int enable); 106 int xmame_cfg_get_use_samples(void); 107 int xmame_cfg_set_use_samples(int enable); 108 int xmame_cfg_get_sample_freq(void); 109 int xmame_cfg_set_sample_freq(int freq); 110 111 int xmame_wavout_open(const char *filename); 112 int xmame_wavout_opened(void); 113 void xmame_wavout_close(void); 114 int xmame_wavout_damaged(void); 115 116 const char *xmame_version_mame(void); 117 const char *xmame_version_fmgen(void); 118 119 #else 120 121 122 #define xmame_config_init() (TRUE) 123 #define xmame_config_exit() 124 125 #define xmame_config_get_opt_tbl() (NULL) 126 #define xmame_config_show_option() 127 128 #define xmame_config_check_option(a1, a2, p) (0) 129 #define xmame_config_save_option(f) (NULL) 130 131 #define xmame_config_get_sndopt_tbl() (NULL) 132 133 #define xmame_has_sound() (FALSE) 134 #define xmame_has_audiodevice() (FALSE) 135 #define xmame_has_mastervolume() (FALSE) 136 137 138 139 #define xmame_sound_start() (TRUE) 140 #define xmame_sound_update() 141 #define xmame_update_video_and_audio() 142 #define xmame_sound_stop() 143 #define xmame_sound_suspend() 144 #define xmame_sound_resume() 145 #define xmame_sound_reset() 146 147 #define xmame_dev_sound_in_data() (0xff) 148 #define xmame_dev_sound_in_status() (0x00) 149 #define xmame_dev_sound_out_reg(d) 150 #define xmame_dev_sound_out_data(d) 151 #define xmame_dev_sound2_in_data() (0xff) 152 #define xmame_dev_sound2_in_status() (0xff) 153 #define xmame_dev_sound2_out_reg(d) 154 #define xmame_dev_sound2_out_data(d) 155 #define xmame_dev_beep_out_data(d) 156 #define xmame_dev_beep_cmd_sing(f) 157 #define xmame_dev_sample_motoron() 158 #define xmame_dev_sample_motoroff() 159 #define xmame_dev_sample_headdown() 160 #define xmame_dev_sample_headup() 161 #define xmame_dev_sample_seek() 162 #define xmame_dev_sound_timer_over( t ) 163 164 #define xmame_cfg_get_mastervolume() (0) 165 #define xmame_cfg_set_mastervolume(v) 166 #define xmame_cfg_get_mixer_volume(c) (0) 167 #define xmame_cfg_set_mixer_volume(c, l) 168 #define xmame_cfg_get_use_fmgen() (FALSE) 169 #define xmame_cfg_set_use_fmgen(e) (FALSE) 170 #define xmame_cfg_get_use_samples() (FALSE) 171 #define xmame_cfg_set_use_samples(e) (FALSE) 172 #define xmame_cfg_get_sample_freq() (44100) 173 #define xmame_cfg_set_sample_freq(f) (44100) 174 175 #define xmame_wavout_open(f) (FALSE) 176 #define xmame_wavout_opened() (FALSE) 177 #define xmame_wavout_close() 178 #define xmame_wavout_damaged() (FALSE) 179 180 #define xmame_version_mame() "" 181 #define xmame_version_fmgen() "" 182 183 #endif 184 185 186 #endif /* SNDDRV_H_INCLUDED */ 187