--- uae/src/include/audio.h 2018/04/24 17:02:21 1.1.1.6 +++ uae/src/include/audio.h 2018/04/24 17:18:46 1.1.1.10 @@ -8,25 +8,6 @@ #define PERIOD_MAX ULONG_MAX -extern struct audio_channel_data { - unsigned long adk_mask; - unsigned long evtime; - unsigned long per; - uae_u8 dmaen, intreq2, data_written; - uaecptr lc, pt; - int state, wper; - unsigned int wlen; - int current_sample, last_sample; - int vol; - int *voltbl; - uae_u16 dat, nextdat, len; -} audio_channel[]; - -extern void aud0_handler (void); -extern void aud1_handler (void); -extern void aud2_handler (void); -extern void aud3_handler (void); - extern void AUDxDAT (int nr, uae_u16 value); extern void AUDxVOL (int nr, uae_u16 value); extern void AUDxPER (int nr, uae_u16 value); @@ -40,3 +21,36 @@ extern void audio_reset (void); extern void update_audio (void); extern void schedule_audio (void); extern void audio_evhandler (void); +extern void audio_hsync (int); +extern void update_adkmasks (void); +extern void update_sound (unsigned int freq); +extern void led_filter_audio (void); + +/* Must match the stereomode array in cfgfile.c. */ +enum { + SND_MONO, SND_STEREO, SND_NONE +}; + +STATIC_INLINE int get_audio_nativechannels (void) +{ + int ch[] = { 1, 2, 0 }; + return ch[currprefs.sound_stereo]; +} + +STATIC_INLINE int get_audio_amigachannels (void) +{ + int ch[] = { 1, 2, 0 }; + return ch[currprefs.sound_stereo]; +} + +STATIC_INLINE int get_audio_ismono (void) +{ + if (currprefs.sound_stereo == 0) + return 1; + return 0; +} + +#define SOUND_MAX_DELAY_BUFFER 1024 +#define SOUND_MAX_LOG_DELAY 10 +#define MIXED_STEREO_MAX 16 +#define MIXED_STEREO_SCALE 32