From 69aadeb0d75a1a10ebcd4fd92bb71262d39523c9 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Wed, 24 Apr 2013 14:56:22 +0200 Subject: ltunify: do not disable notifications if it was enabled before Just in case there are other users of this notification system. --- ltunify.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'ltunify.c') diff --git a/ltunify.c b/ltunify.c index 539eda8..70ec8ed 100644 --- a/ltunify.c +++ b/ltunify.c @@ -988,6 +988,7 @@ int main(int argc, char **argv) { char *cmd, **args; int args_count; char *hidraw_path = NULL; + bool disable_notifs = false; args_count = validate_args(argc, argv, &args, &hidraw_path); if (args_count < 0) { @@ -1022,13 +1023,16 @@ int main(int argc, char **argv) { install_sighandlers(); - notifs.reporting_flags_receiver |= 1; - if (set_notifications(fd, DEVICE_RECEIVER, ¬ifs)) { - if (debug_enabled) { - puts("Succesfully enabled notifications"); + if (!notifs.reporting_flags_receiver) { + disable_notifs = true; + notifs.reporting_flags_receiver |= 1; + if (set_notifications(fd, DEVICE_RECEIVER, ¬ifs)) { + if (debug_enabled) { + puts("Succesfully enabled notifications"); + } + } else { + fprintf(stderr, "Failed to set HID++ Notification status\n"); } - } else { - fprintf(stderr, "Failed to set HID++ Notification status\n"); } if (!strcmp(cmd, "pair")) { @@ -1086,13 +1090,15 @@ int main(int argc, char **argv) { #endif end_notifs: - notifs.reporting_flags_receiver &= ~1; - if (set_notifications(fd, DEVICE_RECEIVER, ¬ifs)) { - if (debug_enabled) { - puts("Succesfully disabled notifications"); + if (disable_notifs) { + notifs.reporting_flags_receiver &= ~1; + if (set_notifications(fd, DEVICE_RECEIVER, ¬ifs)) { + if (debug_enabled) { + puts("Succesfully disabled notifications"); + } + } else { + fprintf(stderr, "Failed to set HID++ Notification status\n"); } - } else { - fprintf(stderr, "Failed to set HID++ Notification status\n"); } if (debug_enabled) { -- cgit v1.2.1