---<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>