From c70b53a162354e5bfef4052269c41b04ec1df187 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 12 Feb 2016 16:15:53 +1000 Subject: [PATCH] profile: add support for setting the active profile Signed-off-by: Peter Hutterer --- src/ratbagd-profile.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/ratbagd-profile.c b/src/ratbagd-profile.c index f92836cf..59c688a7 100644 --- a/src/ratbagd-profile.c +++ b/src/ratbagd-profile.c @@ -168,12 +168,28 @@ static int ratbagd_profile_get_default_resolution(sd_bus *bus, return sd_bus_message_append(reply, "u", (unsigned int)-1); } +static int ratbagd_profile_set_active(sd_bus_message *m, + void *userdata, + sd_bus_error *error) +{ + struct ratbagd_profile *profile = userdata; + int r; + + r = sd_bus_message_read(m, ""); + if (r < 0) + return r; + + return sd_bus_reply_method_return(m, "u", + ratbag_profile_set_active(profile->lib_profile)); +} + const sd_bus_vtable ratbagd_profile_vtable[] = { SD_BUS_VTABLE_START(0), SD_BUS_PROPERTY("Index", "u", NULL, offsetof(struct ratbagd_profile, index), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_PROPERTY("Resolutions", "aa{sv}", ratbagd_profile_get_resolutions, 0, 0), SD_BUS_PROPERTY("ActiveResolution", "u", ratbagd_profile_get_active_resolution, 0, 0), SD_BUS_PROPERTY("DefaultResolution", "u", ratbagd_profile_get_default_resolution, 0, 0), + SD_BUS_METHOD("SetActive", "", "u", ratbagd_profile_set_active, SD_BUS_VTABLE_UNPRIVILEGED), SD_BUS_VTABLE_END, };