Interface kit: allow get_key_repeat_{rate,delay} to fail

These functions should return an error if the input_server is not
running. They still give the default value in this case, but they now
return an error code.

Change-Id: I706cded7c780d913d4f36164596b2b7794db6f22
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5385
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
PulkoMandy
2022-06-20 02:48:03 +00:00
committed by waddlesplash
parent 81f9c26a70
commit d2837c97b7
+14 -4
View File
@@ -716,10 +716,15 @@ get_key_repeat_rate(int32 *rate)
BMessage command(IS_GET_KEY_REPEAT_RATE);
BMessage reply;
_control_input_server_(&command, &reply);
status_t err = _control_input_server_(&command, &reply);
if (reply.FindInt32("rate", rate) != B_OK)
if (err == B_OK)
err = reply.FindInt32("rate", rate);
if (err != B_OK) {
*rate = 250000;
return err;
}
return B_OK;
}
@@ -741,10 +746,15 @@ get_key_repeat_delay(bigtime_t *delay)
BMessage command(IS_GET_KEY_REPEAT_DELAY);
BMessage reply;
_control_input_server_(&command, &reply);
status_t err = _control_input_server_(&command, &reply);
if (reply.FindInt64("delay", delay) != B_OK)
if (err == B_OK)
err = reply.FindInt64("delay", delay);
if (err != B_OK) {
*delay = 200;
return err;
}
return B_OK;
}