From cb46051005d5d9d1f21d7cb82b9fffd21f88c4c9 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 20 Apr 2016 17:09:14 -0500 Subject: watch for the Greeter to appear on the bus --- src/main.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 52cdd58..ee05f52 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -47,6 +47,15 @@ main(int /*argc*/, char** /*argv*/) g_main_loop_quit(loop); }; + // get the session bus + GError* error {}; + auto session_bus = g_bus_get_sync(G_BUS_TYPE_SESSION, nullptr, &error); + if (error != nullptr) { + g_critical("Unable to get session bus: %s", error->message); + g_clear_error(&error); + return 0; + } + // build all our indicators. // Right now we've only got one -- rotation lock -- but hey, we can dream. std::vector> indicators; @@ -63,7 +72,7 @@ main(int /*argc*/, char** /*argv*/) static constexpr char const * ADB_SOCKET_PATH {"/dev/socket/adbd"}; static constexpr char const * PUBLIC_KEYS_FILENAME {"/data/misc/adb/adb_keys"}; auto usb_monitor = std::make_shared(); - auto greeter = std::make_shared(); + auto greeter = std::make_shared(session_bus); UsbManager usb_manager {ADB_SOCKET_PATH, PUBLIC_KEYS_FILENAME, usb_monitor, greeter}; // let's go! @@ -71,5 +80,6 @@ main(int /*argc*/, char** /*argv*/) // cleanup g_main_loop_unref(loop); + g_clear_object(&session_bus); return 0; } -- cgit v1.2.3