diff src/audio/mint/SDL_mintaudio.h @ 961:185acc07127a

Date: Fri, 29 Oct 2004 11:47:09 +0200 From: Patrice Mandin Subject: Reworked audio drivers for Atari platform These are reworked audio drivers for the Atari platform. Previous drivers were missing some features: - Test external clock plugged to DSP port on Atari Falcon 030. - Ability to select internal or external clock. So now, I generate a list of frequencies available, with the master clock and predivisor to use. One big caveat to this: I do not have an external clock, so I hope it works.
author Patrice Mandin <patmandin@gmail.com>
date Fri, 29 Oct 2004 09:56:53 +0000
parents b8d311d90021
children 39b5606fa543
line wrap: on
line diff
--- a/src/audio/mint/SDL_mintaudio.h	Sat Oct 09 22:11:45 2004 +0000
+++ b/src/audio/mint/SDL_mintaudio.h	Fri Oct 29 09:56:53 2004 +0000
@@ -35,17 +35,25 @@
 /* Hidden "this" pointer for the audio functions */
 #define _THIS	SDL_AudioDevice *this
 
+/* 16 predivisors with 3 clocks max. */
+#define MINTAUDIO_maxfreqs		(16*3)		
+
+typedef struct {
+	Uint32	frequency;
+	Uint32	masterclock;
+	Uint32	predivisor;
+} mint_frequency_t;
+
 struct SDL_PrivateAudioData {
-	Uint32	hardfreq[16];	/* Array of replay freqs of the hardware */
-	int		sfreq;			/* First number of freq to use in the array */
-	int 	nfreq;			/* Number of freqs to use in the array */
+	mint_frequency_t	frequencies[MINTAUDIO_maxfreqs];
+	int 	freq_count;		/* Number of frequencies in the array */
 	int		numfreq;		/* Number of selected frequency */
 };
 
 /* Old variable names */
-#define MINTAUDIO_hardfreq		(this->hidden->hardfreq)
-#define MINTAUDIO_sfreq			(this->hidden->sfreq)
-#define MINTAUDIO_nfreq			(this->hidden->nfreq)
+
+#define MINTAUDIO_frequencies	(this->hidden->frequencies)
+#define MINTAUDIO_freqcount		(this->hidden->freq_count)
 #define MINTAUDIO_numfreq		(this->hidden->numfreq)
 
 /* _MCH cookie (values>>16) */
@@ -110,14 +118,17 @@
 extern unsigned short SDL_MintAudio_numbuf;		/* Buffer to play */
 extern unsigned short SDL_MintAudio_mutex;
 extern cookie_stfa_t *SDL_MintAudio_stfa;
+extern unsigned long SDL_MintAudio_clocktics;
 
 /* Functions */
 void SDL_MintAudio_Callback(void);
-int SDL_MintAudio_SearchFrequency(_THIS, int falcon_codec, int desired_freq);
+void SDL_MintAudio_AddFrequency(_THIS, Uint32 frequency, Uint32 clock, Uint32 prediv);
+int SDL_MintAudio_SearchFrequency(_THIS, int desired_freq);
 
 /* ASM interrupt functions */
 void SDL_MintAudio_GsxbInterrupt(void);
 void SDL_MintAudio_EmptyGsxbInterrupt(void);
+void SDL_MintAudio_XbiosInterruptMeasureClock(void);
 void SDL_MintAudio_XbiosInterrupt(void);
 void SDL_MintAudio_Dma8Interrupt(void);
 void SDL_MintAudio_StfaInterrupt(void);