diff options
author | 2020-04-09 17:23:47 +0300 | |
---|---|---|
committer | 2020-04-21 22:42:01 +0300 | |
commit | 9e76cf1b66b40a0e502c667dbbf53164261956b5 (patch) | |
tree | 975eac2f31516b63374dd8652da04341f58bd7b7 /pws/launcher.h | |
parent | d53b7647a82fb3a8e42c191e2a325767e75a9062 (diff) |
onscreenapp, ontestapp: Initial conversion to agl-compositor
Add agl-shell-desktop protocol and the ability to launch apps.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Diffstat (limited to 'pws/launcher.h')
-rw-r--r-- | pws/launcher.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/pws/launcher.h b/pws/launcher.h new file mode 100644 index 0000000..62f5040 --- /dev/null +++ b/pws/launcher.h @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2020 Collabora Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef LAUNCHER_H +#define LAUNCHER_H + +#include <QObject> +#include <QString> +#include <QScreen> +#include <QWindow> +#include <QHash> + +#include <memory> + +#include "pws.h" + +class Launcher : public QObject +{ + Q_OBJECT + +public: + Launcher(const QString &sock_name, QObject *parent = nullptr) : + QObject(parent), afm_sock_name(sock_name) + { + pws = nullptr; + connection_set = false; + } + + ~Launcher() + { + destroy(); + } + + // call this before to any start-up + int setup_pws_connection(void); + bool connection_is_set(void); + +public slots: + int start(const QString &app); + bool terminate(const QString &app); + bool is_running(const QString &app); + size_t get_list_runnables(QString *data); + +private: + struct pws_data_source *pws; + bool connection_set; + QString afm_sock_name; + + QHash<QString, int> applications; // stores the apps started + + void destroy(void) + { + pws_data_source_destroy(pws); + } +}; + +#endif // LAUNCHER_H |