Set the media role when playing the bell sound to "event"

Fixes #4256
This commit is contained in:
Kovid Goyal 2021-11-19 14:14:50 +05:30
parent ca0fcada42
commit c1cb196365
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 6 additions and 5 deletions

View File

@ -363,7 +363,7 @@ void scroll_event(double, double, int, int);
void on_key_input(GLFWkeyevent *ev);
void request_window_attention(id_type, bool);
#ifndef __APPLE__
void play_canberra_sound(const char *which_sound, const char *event_id, bool is_path);
void play_canberra_sound(const char *which_sound, const char *event_id, bool is_path, const char *role);
#endif
SPRITE_MAP_HANDLE alloc_sprite_map(unsigned int, unsigned int);
SPRITE_MAP_HANDLE free_sprite_map(SPRITE_MAP_HANDLE);

View File

@ -145,7 +145,7 @@ load_libcanberra(void) {
}
void
play_canberra_sound(const char *which_sound, const char *event_id, bool is_path) {
play_canberra_sound(const char *which_sound, const char *event_id, bool is_path, const char *media_role) {
load_libcanberra();
if (libcanberra_handle == NULL || canberra_ctx == NULL) return;
const char *which_type = is_path ? "media.filename" : "event.id";
@ -153,6 +153,7 @@ play_canberra_sound(const char *which_sound, const char *event_id, bool is_path)
canberra_ctx, 0,
which_type, which_sound,
"event.description", event_id,
"media.role", media_role,
NULL
);
}
@ -162,7 +163,7 @@ play_desktop_sound(PyObject *self UNUSED, PyObject *args) {
const char *which, *event_id = "test sound";
int is_path = 0;
if (!PyArg_ParseTuple(args, "s|sp", &which, &event_id, &is_path)) return NULL;
play_canberra_sound(which, event_id, is_path);
play_canberra_sound(which, event_id, is_path, "event");
Py_RETURN_NONE;
}

View File

@ -1193,8 +1193,8 @@ ring_audio_bell(void) {
#ifdef __APPLE__
cocoa_system_beep(OPT(bell_path));
#else
if (OPT(bell_path)) play_canberra_sound(OPT(bell_path), "kitty bell", true);
else play_canberra_sound("bell", "kitty bell", false);
if (OPT(bell_path)) play_canberra_sound(OPT(bell_path), "kitty bell", true, "event");
else play_canberra_sound("bell", "kitty bell", false, "event");
#endif
}