Fixed key handling

This commit is contained in:
Jochen Sch„fer 2024-06-22 06:31:19 +02:00
parent 7d1fe56fd2
commit a3d042c094
2 changed files with 19 additions and 19 deletions

View File

@ -1637,23 +1637,23 @@ cc_result Audio_SetFormat(struct AudioContext* ctx, int channels, int sampleRate
APIRET rc; APIRET rc;
ksWanted.usDeviceIndex = 0; ksWanted.usDeviceIndex = 0;
ksWanted.ulType = KAIT_PLAY; ksWanted.ulType = KAIT_PLAY;
ksWanted.ulBitsPerSample = 16; ksWanted.ulBitsPerSample = 16;
ksWanted.ulSamplingRate = Audio_AdjustSampleRate(sampleRate, playbackRate); ksWanted.ulSamplingRate = Audio_AdjustSampleRate(sampleRate, playbackRate);
ksWanted.ulDataFormat = 0; ksWanted.ulDataFormat = 0;
ksWanted.ulChannels = channels; ksWanted.ulChannels = channels;
ksWanted.ulNumBuffers = 0; ksWanted.ulNumBuffers = 0;
ksWanted.ulBufferSize = 0; ksWanted.ulBufferSize = 0;
ksWanted.fShareable = TRUE; ksWanted.fShareable = TRUE;
ksWanted.pfnCallBack = kaiCallback; ksWanted.pfnCallBack = kaiCallback;
ksWanted.pCallBackData = (PVOID)ctx; ksWanted.pCallBackData = (PVOID)ctx;
rc = kaiOpen(&ksWanted, &ksObtained, &ctx->hkai); rc = kaiOpen(&ksWanted, &ksObtained, &ctx->hkai);
if (rc != KAIE_NO_ERROR) { if (rc != KAIE_NO_ERROR) {
Logger_SimpleWarn(ERROR_BASE, "Kai: Could not open playback"); Logger_SimpleWarn(ERROR_BASE, "Kai: Could not open playback");
ctx->hkai = 0; ctx->hkai = 0;
return rc; return rc;
} }
kaiSetSoundState(ctx->hkai, MCI_SET_AUDIO_ALL, true); kaiSetSoundState(ctx->hkai, MCI_SET_AUDIO_ALL, true);
return 0; return 0;

View File

@ -81,7 +81,7 @@ static void MapKeys(MPARAM mp1, MPARAM mp2) {
}; };
if ((ulFlags & KC_CHAR) != 0 && (ulFlags & KC_KEYUP) == 0) { if ((ulFlags & KC_CHAR) != 0 && (ulFlags & KC_KEYUP) == 0) {
if (WinQueryCapture(HWND_DESKTOP) != hwndClient) { if (WinQueryCapture(HWND_DESKTOP) != hwndClient) { // Mouse isn't captured
char c; char c;
if (Convert_TryCodepointToCP437(ulCharCode, &c)) { if (Convert_TryCodepointToCP437(ulCharCode, &c)) {
Event_RaiseInt(&InputEvents.Press, c); Event_RaiseInt(&InputEvents.Press, c);
@ -89,10 +89,10 @@ static void MapKeys(MPARAM mp1, MPARAM mp2) {
} }
} }
else { else {
Input_Set(ulCharCode, (ulFlags & KC_KEYUP) == 0); Input_Set(ulCharCode, 0);
} }
} }
if ((ulFlags & KC_SCANCODE) != 0) { if ((ulFlags & KC_SCANCODE) != 0 && ulScanCode < sizeof(aScancode)/sizeof(int)) {
Input_Set(aScancode[ulScanCode], (ulFlags & KC_KEYUP) == 0); Input_Set(aScancode[ulScanCode], (ulFlags & KC_KEYUP) == 0);
} }
} }