commit 9881c98ce0817889c42c9ad4146d7e1db91d7005 from: Omar Polo date: Wed Jul 13 09:36:26 2022 UTC define constants for mode special values and add a toggle value commit - 83438dc0ea419cbf0de45ca9e88b421376ed87c2 commit + 9881c98ce0817889c42c9ad4146d7e1db91d7005 blob - 588dcade69d138c72e8904a546dfe0ab1cd7d2b2 blob + a2aae07b18f8dce0457f2850ee368e6509b68854 --- amused.h +++ amused.h @@ -93,6 +93,10 @@ struct player_seek { struct ctl_command; +#define MODE_ON +1 +#define MODE_OFF 0 +#define MODE_UNDEF -1 +#define MODE_TOGGLE -2 struct player_mode { int repeat_one; int repeat_all; blob - e85d663a95e38a25f7fb412dafd703cf13ae6a3a blob + 9cceb02c58723fda2af8a479d1c57b2be97b9518 --- control.c +++ control.c @@ -240,6 +240,16 @@ control_notify(int type) } } +static int +new_mode(int val, int newval) +{ + if (newval == MODE_UNDEF) + return val; + if (newval == MODE_TOGGLE) + return !val; + return !!newval; +} + void control_dispatch_imsg(int fd, short event, void *bula) { @@ -353,12 +363,9 @@ control_dispatch_imsg(int fd, short event, void *bula) break; } memcpy(&mode, imsg.data, sizeof(mode)); - if (mode.repeat_all != -1) - repeat_all = mode.repeat_all; - if (mode.repeat_one != -1) - repeat_one = mode.repeat_one; - if (mode.consume != -1) - consume = mode.consume; + consume = new_mode(consume, mode.consume); + repeat_all = new_mode(repeat_all, mode.repeat_all); + repeat_one = new_mode(repeat_one, mode.repeat_one); control_notify(imsg.hdr.type); break; case IMSG_CTL_BEGIN: