---<br> dlls/dsound/dsound_private.h |   43 ++++++++++++++++-------------------------<br> 1 files changed, 17 insertions(+), 26 deletions(-)<br><br>diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h<br>
index 542b997..64a1c4d 100644<br>--- a/dlls/dsound/dsound_private.h<br>+++ b/dlls/dsound/dsound_private.h<br>@@ -39,6 +39,7 @@ extern int ds_snd_shadow_maxsize;<br> extern int ds_hw_accel;<br> extern int ds_default_sample_rate;<br>
 extern int ds_default_bits_per_sample;<br>+extern int ds_resample_quality;<br> <br> /*****************************************************************************<br>  * Predeclare the interface implementation structures<br>
@@ -63,14 +64,6 @@ typedef struct SecondaryBufferImpl           SecondaryBufferImpl;<br> typedef struct DirectSoundDevice             DirectSoundDevice;<br> typedef struct DirectSoundCaptureDevice      DirectSoundCaptureDevice;<br>
 <br>-/* dsound_convert.h */<br>-typedef void (*bitsconvertfunc)(const void *, void *, UINT, UINT, INT, UINT, UINT);<br>-extern const bitsconvertfunc convertbpp[5][4];<br>-typedef void (*mixfunc)(const void *, void *, unsigned);<br>
-extern const mixfunc mixfunctions[4];<br>-typedef void (*normfunc)(const void *, void *, unsigned);<br>-extern const normfunc normfunctions[4];<br>-<br> /*****************************************************************************<br>
  * IDirectSoundDevice implementation structure<br>  */<br>@@ -98,14 +91,9 @@ struct DirectSoundDevice<br>     PrimaryBufferImpl*          primary;<br>     DSBUFFERDESC                dsbd;<br>     DWORD                       speaker_config;<br>
-    LPBYTE                      tmp_buffer, mix_buffer;<br>-    DWORD                       tmp_buffer_len, mix_buffer_len;<br> <br>     DSVOLUMEPAN                 volpan;<br> <br>-    mixfunc mixfunction;<br>-    normfunc normfunction;<br>
-<br>     /* DirectSound3DListener fields */<br>     IDirectSound3DListenerImpl*    listener;<br>     DS3DLISTENER                ds3dl;<br>@@ -171,17 +159,19 @@ struct IDirectSoundBufferImpl<br>     PIDSDRIVERBUFFER            hwbuf;<br>
     PWAVEFORMATEX               pwfx;<br>     BufferMemory*               buffer;<br>-    LPBYTE                      tmp_buffer;<br>-    DWORD                       playflags,state,leadin;<br>-    DWORD                       writelead,buflen;<br>
+    DWORD                       playflags,state;<br>+    DWORD                       buflen;<br>     DWORD                       nAvgBytesPerSec;<br>-    DWORD                       freq, tmp_buffer_len, max_buffer_len;<br>
+    DWORD                       freq;<br>     DSVOLUMEPAN                 volpan;<br>     DSBUFFERDESC                dsbd;<br>-    /* used for frequency conversion (PerfectPitch) */<br>-    ULONG                       freqneeded, freqAdjust, freqAcc, freqAccNext, resampleinmixer;<br>
-    /* used for mixing */<br>-    DWORD                       primary_mixpos, buf_mixpos, sec_mixpos;<br>+<br>+    /* resampler fields */<br>+    DWORD                       outfreq, inpos, infrac;<br>+    DOUBLE                      outfreq_1;<br>
+    DWORD                       firstep, firdelay;<br>+    INT                         quality;<br>+<br> <br>     /* IDirectSoundNotifyImpl fields */<br>     IDirectSoundNotifyImpl*     notify;<br>@@ -197,7 +187,6 @@ struct IDirectSoundBufferImpl<br>
 <br>     /* IKsPropertySet fields */<br>     IKsBufferPropertySetImpl*   iks;<br>-    bitsconvertfunc convert;<br>     struct list entry;<br> };<br> <br>@@ -385,13 +374,10 @@ HRESULT DSOUND_ReopenDevice(DirectSoundDevice *device, BOOL forcewave);<br>
 HRESULT DSOUND_FullDuplexCreate(REFIID riid, LPDIRECTSOUNDFULLDUPLEX* ppDSFD);<br> <br> /* mixer.c */<br>-DWORD DSOUND_bufpos_to_mixpos(const DirectSoundDevice* device, DWORD pos);<br> void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);<br>
 void DSOUND_RecalcVolPan(PDSVOLUMEPAN volpan);<br> void DSOUND_AmpFactorToVolPan(PDSVOLUMEPAN volpan);<br>-void DSOUND_RecalcFormat(IDirectSoundBufferImpl *dsb);<br>-void DSOUND_MixToTemporary(const IDirectSoundBufferImpl *dsb, DWORD writepos, DWORD mixlen, BOOL inmixer);<br>
-DWORD DSOUND_secpos_to_bufpos(const IDirectSoundBufferImpl *dsb, DWORD secpos, DWORD secmixpos, DWORD* overshot);<br>+DWORD DSOUND_secpos_to_bufpos(const IDirectSoundBufferImpl *dsb, DWORD secpos);<br> <br> void CALLBACK DSOUND_timer(UINT timerID, UINT msg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2);<br>
 void CALLBACK DSOUND_callback(HWAVEOUT hwo, UINT msg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2);<br>@@ -405,6 +391,11 @@ void DSOUND_Calc3DBuffer(IDirectSoundBufferImpl *dsb);<br> HRESULT DSOUND_CaptureCreate(REFIID riid, LPDIRECTSOUNDCAPTURE *ppDSC);<br>
 HRESULT DSOUND_CaptureCreate8(REFIID riid, LPDIRECTSOUNDCAPTURE8 *ppDSC8);<br> <br>+/* resample.c */<br>+DWORD DSOUND_PullBuffer(IDirectSoundBufferImpl *dsb, DWORD writepos, DWORD mixlen);<br>+void DSOUND_RecalcFormat(IDirectSoundBufferImpl *dsb);<br>
+<br>+<br> #define STATE_STOPPED   0<br> #define STATE_STARTING  1<br> #define STATE_PLAYING   2<br>-- <br>1.7.2.3<br><br><br>