From 65ee3e10aee741ab060c31dfa39f30ada771d7d6 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Thu, 9 Feb 2023 02:29:32 -0800 Subject: [PATCH] tools: print keyboard/mouse info under screen --- tools/mks-connect.c | 46 ++++++++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/tools/mks-connect.c b/tools/mks-connect.c index 6fd3e83..fab42e4 100644 --- a/tools/mks-connect.c +++ b/tools/mks-connect.c @@ -28,6 +28,37 @@ #include #include +static void +print_device_info (MksDevice *device, + guint depth) +{ + if (device == NULL) + return; + + for (guint i = 0; i < depth; i++) + g_print (" "); + + g_print ("- %s(name=\"%s\"", + G_OBJECT_TYPE_NAME (device), + mks_device_get_name (device) ?: ""); + if (MKS_IS_SCREEN (device)) + g_print (" number=%u width=%u height=%u", + mks_screen_get_number (MKS_SCREEN (device)), + mks_screen_get_width (MKS_SCREEN (device)), + mks_screen_get_height (MKS_SCREEN (device))); + g_print (")\n"); + + if (MKS_IS_SCREEN (device)) + { + MksScreen *screen = MKS_SCREEN (device); + MksKeyboard *keyboard = mks_screen_get_keyboard (screen); + MksMouse *mouse = mks_screen_get_mouse (screen); + + print_device_info (MKS_DEVICE (keyboard), depth+1); + print_device_info (MKS_DEVICE (mouse), depth+1); + } +} + int main (int argc, char *argv[]) @@ -70,7 +101,7 @@ main (int argc, return EXIT_FAILURE; } - g_print ("Session(uuid=\"%s\" name=\"%s\")\n", + g_print ("Session(uuid=\"%s\", name=\"%s\")\n", mks_session_get_uuid (session), mks_session_get_name (session)); @@ -80,18 +111,7 @@ main (int argc, for (guint i = 0; i < n_items; i++) { g_autoptr(MksDevice) device = g_list_model_get_item (devices, i); - - g_print (" - %s(name=\"%s\"", - G_OBJECT_TYPE_NAME (device), - mks_device_get_name (device)); - - if (MKS_IS_SCREEN (device)) - g_print (" number=%u width=%u height=%u", - mks_screen_get_number (MKS_SCREEN (device)), - mks_screen_get_width (MKS_SCREEN (device)), - mks_screen_get_height (MKS_SCREEN (device))); - - g_print (")\n"); + print_device_info (device, 1); } return EXIT_SUCCESS;