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;
ksWanted.usDeviceIndex = 0;
ksWanted.ulType = KAIT_PLAY;
ksWanted.ulBitsPerSample = 16;
ksWanted.ulSamplingRate = Audio_AdjustSampleRate(sampleRate, playbackRate);
ksWanted.ulDataFormat = 0;
ksWanted.ulChannels = channels;
ksWanted.ulNumBuffers = 0;
ksWanted.ulBufferSize = 0;
ksWanted.fShareable = TRUE;
ksWanted.pfnCallBack = kaiCallback;
ksWanted.pCallBackData = (PVOID)ctx;
ksWanted.ulType = KAIT_PLAY;
ksWanted.ulBitsPerSample = 16;
ksWanted.ulSamplingRate = Audio_AdjustSampleRate(sampleRate, playbackRate);
ksWanted.ulDataFormat = 0;
ksWanted.ulChannels = channels;
ksWanted.ulNumBuffers = 0;
ksWanted.ulBufferSize = 0;
ksWanted.fShareable = TRUE;
ksWanted.pfnCallBack = kaiCallback;
ksWanted.pCallBackData = (PVOID)ctx;
rc = kaiOpen(&ksWanted, &ksObtained, &ctx->hkai);
if (rc != KAIE_NO_ERROR) {
Logger_SimpleWarn(ERROR_BASE, "Kai: Could not open playback");
ctx->hkai = 0;
return rc;
}
rc = kaiOpen(&ksWanted, &ksObtained, &ctx->hkai);
if (rc != KAIE_NO_ERROR) {
Logger_SimpleWarn(ERROR_BASE, "Kai: Could not open playback");
ctx->hkai = 0;
return rc;
}
kaiSetSoundState(ctx->hkai, MCI_SET_AUDIO_ALL, true);
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 (WinQueryCapture(HWND_DESKTOP) != hwndClient) {
if (WinQueryCapture(HWND_DESKTOP) != hwndClient) { // Mouse isn't captured
char c;
if (Convert_TryCodepointToCP437(ulCharCode, &c)) {
Event_RaiseInt(&InputEvents.Press, c);
@ -89,10 +89,10 @@ static void MapKeys(MPARAM mp1, MPARAM mp2) {
}
}
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);
}
}