From 2fd939f514ca5088dd26117344c8c1052c2dc67e Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 20 Jun 2017 15:44:45 +1000 Subject: [PATCH] resolution: add support for min/max resolutions https://github.com/libratbag/libratbag/issues/180 Signed-off-by: Peter Hutterer --- DBusInterface.md | 2 ++ ratbagd/ratbagd-resolution.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/DBusInterface.md b/DBusInterface.md index 13055dc8..6eb5c1b1 100644 --- a/DBusInterface.md +++ b/DBusInterface.md @@ -51,6 +51,8 @@ The **org.freedesktop.ratbag1.Resolution** interface provides: - XResolution -> uint for the x resolution assigned to this entry - YResolution -> uint for the y resolution assigned to this entry - ReportRate -> uint for the report rate in Hz assigned to this entry + - Maximum -> uint for the maximum possible resolution + - Minimum -> uint for the minimum possible resolution - Methods: - SetResolution(uint, uint) -> x/y resolution to assign - SetReportRate(uint) -> uint for the report rate to assign diff --git a/ratbagd/ratbagd-resolution.c b/ratbagd/ratbagd-resolution.c index b2ea9af6..56500059 100644 --- a/ratbagd/ratbagd-resolution.c +++ b/ratbagd/ratbagd-resolution.c @@ -42,6 +42,7 @@ struct ratbagd_resolution { char *path; unsigned int xres, yres; unsigned int rate; + unsigned int maxres, minres; }; static int ratbagd_resolution_set_report_rate(sd_bus_message *m, @@ -158,6 +159,8 @@ const sd_bus_vtable ratbagd_resolution_vtable[] = { SD_BUS_PROPERTY("XResolution", "u", NULL, offsetof(struct ratbagd_resolution, xres), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), SD_BUS_PROPERTY("YResolution", "u", NULL, offsetof(struct ratbagd_resolution, yres), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), SD_BUS_PROPERTY("ReportRate", "u", NULL, offsetof(struct ratbagd_resolution, rate), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), + SD_BUS_PROPERTY("Maximum", "u", NULL, offsetof(struct ratbagd_resolution, maxres), SD_BUS_VTABLE_PROPERTY_CONST), + SD_BUS_PROPERTY("Minimum", "u", NULL, offsetof(struct ratbagd_resolution, minres), SD_BUS_VTABLE_PROPERTY_CONST), SD_BUS_METHOD("SetReportRate", "u", "u", ratbagd_resolution_set_report_rate, SD_BUS_VTABLE_UNPRIVILEGED), SD_BUS_METHOD("SetResolution", "uu", "u", ratbagd_resolution_set_resolution, SD_BUS_VTABLE_UNPRIVILEGED), SD_BUS_METHOD("SetDefault", "", "u", ratbagd_resolution_set_default, SD_BUS_VTABLE_UNPRIVILEGED), @@ -189,6 +192,8 @@ int ratbagd_resolution_new(struct ratbagd_resolution **out, resolution->xres = ratbag_resolution_get_dpi_x(lib_resolution); resolution->yres = ratbag_resolution_get_dpi_y(lib_resolution); resolution->rate = ratbag_resolution_get_report_rate(lib_resolution); + resolution->maxres = ratbag_resolution_get_dpi_maximum(lib_resolution); + resolution->minres = ratbag_resolution_get_dpi_minimum(lib_resolution); sprintf(profile_buffer, "p%u", ratbagd_profile_get_index(profile)); sprintf(resolution_buffer, "r%u", index);