Added exclusive sound mode

This commit is contained in:
pagefault
2001-05-18 23:12:24 +00:00
parent 1e490a9797
commit b2978a0d80
4 changed files with 18 additions and 12 deletions

View File

@@ -550,7 +550,7 @@ NEWSYM KeySlowDown, dd 0
NEWSYM UseCubicSpline, db 1 NEWSYM UseCubicSpline, db 1
NEWSYM LargeSoundBuf, db 0 NEWSYM ExclusiveSound, db 0
NEWSYM HighPriority, db 0 NEWSYM HighPriority, db 0
NEWSYM AlwaysOnTop, db 0 NEWSYM AlwaysOnTop, db 0
NEWSYM SaveMainWindowPos, db 1 NEWSYM SaveMainWindowPos, db 1

View File

@@ -2221,7 +2221,7 @@ DisplayGUISoundClick:
%endif %endif
;.win32sound ;.win32sound
%ifdef __WIN32__ %ifdef __WIN32__
GUIClickCButton 11,121,byte[LargeSoundBuf] GUIClickCButton 11,121,byte[ExclusiveSound]
%endif %endif
GUIClickCButton 11,131,byte[InterSound] GUIClickCButton 11,131,byte[InterSound]
GUIClickCButton 11,141,byte[LowPassFilter] GUIClickCButton 11,141,byte[LowPassFilter]

View File

@@ -2189,7 +2189,7 @@ DisplayGUISound:
.nocheckbox42 .nocheckbox42
%ifdef __WIN32__ %ifdef __WIN32__
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[LargeSoundBuf],0 cmp byte[ExclusiveSound],0
je .nocheckbox43 je .nocheckbox43
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox43 .nocheckbox43
@@ -2306,7 +2306,7 @@ GUISoundTextCb db '48000HZ',0
GUISoundTextD db '---%',0 GUISoundTextD db '---%',0
GUISoundTextH db 'REVERSE STEREO',0 GUISoundTextH db 'REVERSE STEREO',0
GUISoundTextI db 'SURROUND SOUND',0 GUISoundTextI db 'SURROUND SOUND',0
GUISoundTextIb db 'LARGE SOUND BUFFER',0 GUISoundTextIb db 'EXCLUSIVE MODE',0
GUISoundTextJ db 'SOUND INTERPOLATION',0 GUISoundTextJ db 'SOUND INTERPOLATION',0
GUISoundTextK db 'LOW PASS FILTER',0 GUISoundTextK db 'LOW PASS FILTER',0
GUISoundTextL db 'SOUND BUFFERING',0 GUISoundTextL db 'SOUND BUFFERING',0

View File

@@ -183,7 +183,7 @@ unsigned char keyboardhit=0;
void initwinvideo(); void initwinvideo();
extern BYTE StereoSound; extern BYTE StereoSound;
extern DWORD SoundQuality; extern DWORD SoundQuality;
extern BYTE LargeSoundBuf; extern BYTE ExclusiveSound;
extern BYTE HighPriority; extern BYTE HighPriority;
extern BYTE AlwaysOnTop; extern BYTE AlwaysOnTop;
extern BYTE SaveMainWindowPos; extern BYTE SaveMainWindowPos;
@@ -475,6 +475,8 @@ InitSound()
PrevStereoSound=StereoSound; PrevStereoSound=StereoSound;
if(DS_OK == DirectSoundCreate8(NULL, &lpDirectSound,NULL)) if(DS_OK == DirectSoundCreate8(NULL, &lpDirectSound,NULL))
{
if (ExclusiveSound == 0)
{ {
if (DS_OK != lpDirectSound->SetCooperativeLevel(hMainWindow, DSSCL_NORMAL)) if (DS_OK != lpDirectSound->SetCooperativeLevel(hMainWindow, DSSCL_NORMAL))
{ {
@@ -486,6 +488,15 @@ InitSound()
} }
} }
else else
{
if (DS_OK != lpDirectSound->SetCooperativeLevel(hMainWindow, DSSCL_EXCLUSIVE))
{
SoundEnabled=0;
return FALSE;
}
}
}
else
{ {
SoundEnabled=0; return FALSE; SoundEnabled=0; return FALSE;
} }
@@ -527,11 +538,6 @@ InitSound()
SoundBufferSize=1024*2; SoundBufferSize=1024*2;
} }
if (LargeSoundBuf == 1)
{
SoundBufferSize*=2;
}
if(StereoSound==1) if(StereoSound==1)
{ {
wfx.nChannels = 2; wfx.nChannels = 2;