diff options
author | 2024-11-27 11:55:13 +0200 | |
---|---|---|
committer | 2024-11-27 13:25:01 +0200 | |
commit | 404f7128b1589fa3bfbb5ea55c0a51a5fef91bb0 (patch) | |
tree | 6bdc1389d0624eac433c69c515495f0b1f9c368a | |
parent | 7b54a3782d9981f849a88c023742a7d7f8be7232 (diff) |
app: Add a way to retireve output name to place tbtnavi
This is identical to what cluster-receiver is doing so let's do the same
thing here to have some consistency between them.
An /etc/xdg/AGL.conf file containing
[tbtnavi]
output=XXXX
Would pass 'XXXX' to the compositor to move the application to.
Bug-AGL: SPEC-5310
Change-Id: I4bd52b87b50f90606c5ba5e93f93d58f76af1ace
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
-rw-r--r-- | app/main.cpp | 37 | ||||
-rw-r--r-- | app/meson.build | 3 |
2 files changed, 38 insertions, 2 deletions
diff --git a/app/main.cpp b/app/main.cpp index b3fd47a..41773f0 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -9,6 +9,7 @@ #include <QtQuick/QQuickWindow> #include <navigation.h> #include <vehiclesignals.h> +#include <glib.h> #include "navigation_client.h" #include "qcheapruler.hpp" @@ -16,6 +17,34 @@ #include "AglShellGrpcClient.h" +std::string +read_config_and_get_output(void) +{ + GKeyFile *conf_file; + gchar *value; + GError *err = NULL; + + bool ret; + int n; + unsigned width, height, x, y; + + // Load settings from configuration file if it exists + conf_file = g_key_file_new(); + + ret = g_key_file_load_from_dirs(conf_file, "AGL.conf", + (const gchar**) g_get_system_config_dirs(), + NULL, G_KEY_FILE_KEEP_COMMENTS, NULL); + if (!ret) + return std::string(""); + + value = g_key_file_get_string(conf_file, "tbtnavi", "output", &err); + if (!value) { + return std::string(""); + } + + return std::string(value); +} + int main(int argc, char *argv[]) { std::string our_name = "tbtnavi"; @@ -30,8 +59,14 @@ int main(int argc, char *argv[]) QCoreApplication::setApplicationVersion("0.1.0"); app.setDesktopFileName(graphic_role); + // grab the output to put the application on + std::string output = read_config_and_get_output(); + GrpcClient *client = new GrpcClient(); - client->SetAppOnOutput(our_name, "remoting-remote-1"); + if (!output.empty()) + client->SetAppOnOutput(our_name, output); + else + client->SetAppOnOutput(our_name, "pipewire"); // Load qml QQmlApplicationEngine engine; diff --git a/app/meson.build b/app/meson.build index b2ee673..cad087e 100644 --- a/app/meson.build +++ b/app/meson.build @@ -36,7 +36,8 @@ dep_qtappfw = [ tbtnavi_dep = [ qt_dep, dep_qtappfw, - grpc_deps + grpc_deps, + dependency('glib-2.0'), ] tbtnavi_headers = [ |