diff options
47 files changed, 79 insertions, 1393 deletions
@@ -2,13 +2,28 @@ This project contains: HomeScreen: AGL Home Screen reference implementation -AGL repo for source code: +**AGL repo for source code** -AGL repo for bitbake recipe: +``` +$ mkdir WORK +$ cd WORK +$ repo init -b dab -m dab_4.0.0_xml -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo +$ repo sync +$ git clone git clone https://gerrit.automotivelinux.org/gerrit/staging/meta-hmi-framework +``` +Then you can get the following recipe. -Quickstart: +* `meta-hmi-framework/homescreen-2017` + + +**Bitbake** + +``` +$ source meta-agl/scripts/aglsetup.sh -m m3ulcb agl-demo agl-devel agl-appfw-smack agl-hmi-framework +$ bitbake homescreen-2017 +``` Instructions for building HomeScreen app ---------------------------------------- @@ -36,7 +51,8 @@ http://docs.automotivelinux.org/docs/getting_started/en/dev/reference/source-cod Launch HomeScreen App: -Usage: ./HomeScreen [port] [token] -AGL HomeScreen - see wwww... for more details +Usage: -QT_WAYLAND_SHELL_INTEGRATION=ivi-shell LD_PRELOAD=/usr/lib/libEGL.so.1 /home/root/HomeScreen ${port} ${token} +``` +afm-util start homescreen-2017 +``` diff --git a/homescreen.pro b/homescreen.pro index 1da8651..7c49383 100644 --- a/homescreen.pro +++ b/homescreen.pro @@ -1,4 +1,4 @@ -# Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH +# Copyright (c) 2017 TOYOTA MOTOR CORPORATION # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/homescreen/conf/HomeScreen.service b/homescreen/conf/HomeScreen.service deleted file mode 100644 index 3a89242..0000000 --- a/homescreen/conf/HomeScreen.service +++ /dev/null @@ -1,17 +0,0 @@ -[Unit] -Description=AGL reference HomeScreen -Requires=dbus.service afm-user-daemon.service InputEventManager.service HomeScreenAppFrameworkBinderAGL.service -After=dbus.service afm-user-daemon.service InputEventManager.service HomeScreenAppFrameworkBinderAGL.service WindowManager.service -ConditionKernelCommandLine=!agl.nogfx - -[Service] -Type=dbus -BusName=org.agl.homescreen -ExecStart=/usr/AGL/homescreen/HomeScreen -# 4194304(= 1 << 22) is special surface id for HomeScreen -Environment=QT_IVI_SURFACE_ID=4194304 QT_WAYLAND_SHELL_INTEGRATION=ivi-shell LD_PRELOAD=/usr/lib/libEGL.so.1 -Restart=on-failure -RestartSec=5 - -[Install] -WantedBy=default.target diff --git a/homescreen/homescreen.pro b/homescreen/homescreen.pro index 21f742e..5e58612 100644 --- a/homescreen/homescreen.pro +++ b/homescreen/homescreen.pro @@ -1,4 +1,5 @@ # Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH +# Copyright (c) 2017 TOYOTA MOTOR CORPORATION # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -32,7 +33,6 @@ INSTALLS += target SOURCES += \ src/main.cpp \ - src/homescreencontrolinterface.cpp \ src/layouthandler.cpp \ src/applicationmodel.cpp \ src/appinfo.cpp \ @@ -43,7 +43,6 @@ SOURCES += \ src/homescreenhandler.cpp HEADERS += \ - src/homescreencontrolinterface.h \ src/layouthandler.h \ src/statusbarmodel.h \ src/statusbarserver.h \ diff --git a/homescreen/qml/Home.qml b/homescreen/qml/Home.qml index 729ef36..4096e0f 100644 --- a/homescreen/qml/Home.qml +++ b/homescreen/qml/Home.qml @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/qml/MediaArea.qml b/homescreen/qml/MediaArea.qml index d7159d2..edbc98f 100644 --- a/homescreen/qml/MediaArea.qml +++ b/homescreen/qml/MediaArea.qml @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/qml/MediaAreaBlank.qml b/homescreen/qml/MediaAreaBlank.qml index 51fa657..c1f19dd 100644 --- a/homescreen/qml/MediaAreaBlank.qml +++ b/homescreen/qml/MediaAreaBlank.qml @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/qml/MediaAreaMusic.qml b/homescreen/qml/MediaAreaMusic.qml index 927e82c..bff4907 100644 --- a/homescreen/qml/MediaAreaMusic.qml +++ b/homescreen/qml/MediaAreaMusic.qml @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/qml/MediaAreaRadio.qml b/homescreen/qml/MediaAreaRadio.qml index a49f06d..3b58537 100644 --- a/homescreen/qml/MediaAreaRadio.qml +++ b/homescreen/qml/MediaAreaRadio.qml @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/qml/ShortcutArea.qml b/homescreen/qml/ShortcutArea.qml index 94bad5d..bbe6565 100644 --- a/homescreen/qml/ShortcutArea.qml +++ b/homescreen/qml/ShortcutArea.qml @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/qml/ShortcutIcon.qml b/homescreen/qml/ShortcutIcon.qml index 6f8e05e..aa39020 100644 --- a/homescreen/qml/ShortcutIcon.qml +++ b/homescreen/qml/ShortcutIcon.qml @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/qml/StatusArea.qml b/homescreen/qml/StatusArea.qml index 3fc3079..9ef8e62 100644 --- a/homescreen/qml/StatusArea.qml +++ b/homescreen/qml/StatusArea.qml @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/qml/TopArea.qml b/homescreen/qml/TopArea.qml index 922742d..2ddb25e 100644 --- a/homescreen/qml/TopArea.qml +++ b/homescreen/qml/TopArea.qml @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/qml/main.qml b/homescreen/qml/main.qml index 11bd9d5..9e5c7c7 100644 --- a/homescreen/qml/main.qml +++ b/homescreen/qml/main.qml @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/src/appinfo.cpp b/homescreen/src/appinfo.cpp index fd9a585..7159a0b 100644 --- a/homescreen/src/appinfo.cpp +++ b/homescreen/src/appinfo.cpp @@ -1,6 +1,7 @@ /* * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH * Copyright (C) 2016 The Qt Company Ltd. + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/src/appinfo.h b/homescreen/src/appinfo.h index 0d98b10..a5ecf90 100644 --- a/homescreen/src/appinfo.h +++ b/homescreen/src/appinfo.h @@ -1,6 +1,7 @@ /* * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH * Copyright (C) 2016 The Qt Company Ltd. + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/src/applicationlauncher.cpp b/homescreen/src/applicationlauncher.cpp index 8358107..411fb03 100644 --- a/homescreen/src/applicationlauncher.cpp +++ b/homescreen/src/applicationlauncher.cpp @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/src/applicationlauncher.h b/homescreen/src/applicationlauncher.h index a31e663..697dad0 100644 --- a/homescreen/src/applicationlauncher.h +++ b/homescreen/src/applicationlauncher.h @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/src/applicationmodel.cpp b/homescreen/src/applicationmodel.cpp index 2c51b98..08b1a55 100644 --- a/homescreen/src/applicationmodel.cpp +++ b/homescreen/src/applicationmodel.cpp @@ -1,6 +1,7 @@ /* * Copyright (C) 2016 The Qt Company Ltd. * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -61,7 +62,7 @@ ApplicationModel::Private::Private() auto const id = jso["id"].toString(); auto const icon = get_icon_name(jso); - // HomeScreenは除外する + // Hide HomeScreen icon itself if (name != "homescreen-2017") { this->data.append(AppInfo(icon, name, id)); } diff --git a/homescreen/src/homescreencontrolinterface.cpp b/homescreen/src/homescreencontrolinterface.cpp deleted file mode 100644 index ecbe8e4..0000000 --- a/homescreen/src/homescreencontrolinterface.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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. - */ - -#include "afm_user_daemon_proxy.h" -#include "homescreencontrolinterface.h" - -extern org::AGL::afm::user *afm_user_daemon_proxy; - -HomeScreenControlInterface::HomeScreenControlInterface(QObject *parent) : - QObject(parent), - mp_homeScreenAdaptor(0) -{ - // publish dbus homescreen interface - mp_homeScreenAdaptor = new HomescreenAdaptor((QObject*)this); - - QDBusConnection dbus = QDBusConnection::sessionBus(); - dbus.registerObject("/HomeScreen", this); - dbus.registerService("org.agl.homescreen"); -} - -QList<int> HomeScreenControlInterface::getAllSurfacesOfProcess(int pid) -{ - qDebug("getAllSurfacesOfProcess %d", pid); - return newRequestGetAllSurfacesOfProcess(pid); -} - -int HomeScreenControlInterface::getSurfaceStatus(int surfaceId) -{ - qDebug("getSurfaceStatus %d", surfaceId); - return newRequestGetSurfaceStatus(surfaceId); -} - -void HomeScreenControlInterface::hardKeyPressed(int key) -{ - int pid = -1; - - switch (key) - { - case InputEvent::HARDKEY_NAV: - qDebug("hardKeyPressed NAV key pressed!"); - pid = afm_user_daemon_proxy->start("navigation@0.1").value().toInt(); - qDebug("pid: %d", pid); - emit newRequestsToBeVisibleApp(pid); - break; - case InputEvent::HARDKEY_MEDIA: - qDebug("hardKeyPressed MEDIA key pressed!"); - pid = afm_user_daemon_proxy->start("media@0.1").value().toInt(); - qDebug("pid: %d", pid); - emit newRequestsToBeVisibleApp(pid); - break; - default: - qDebug("hardKeyPressed %d", key); - break; - } -} - -void HomeScreenControlInterface::renderSurfaceToArea(int surfaceId, int layoutArea) -{ - qDebug("renderSurfaceToArea %d %d", surfaceId, layoutArea); - emit newRequestRenderSurfaceToArea(surfaceId, layoutArea); -} - -bool HomeScreenControlInterface::renderAppToAreaAllowed(int appCategory, int layoutArea) -{ - qDebug("renderAppToAreaAllowed %d %d", appCategory, layoutArea); - return true; //TODO: ask policy manager -} - -void HomeScreenControlInterface::requestSurfaceIdToFullScreen(int surfaceId) -{ - qDebug("requestSurfaceIdToFullScreen %d", surfaceId); - emit newRequestSurfaceIdToFullScreen(surfaceId); -} diff --git a/homescreen/src/homescreencontrolinterface.h b/homescreen/src/homescreencontrolinterface.h deleted file mode 100644 index b68a2b2..0000000 --- a/homescreen/src/homescreencontrolinterface.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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 HOMESCREENCONTROLINTERFACE_H -#define HOMESCREENCONTROLINTERFACE_H - -#include <QObject> -#include "include/homescreen.hpp" -#include "homescreen_adaptor.h" - -class HomeScreenControlInterface : public QObject -{ - Q_OBJECT -public: - explicit HomeScreenControlInterface(QObject *parent = 0); - -signals: - void newRequestsToBeVisibleApp(int pid); - - QList<int> newRequestGetAllSurfacesOfProcess(int pid); - int newRequestGetSurfaceStatus(int surfaceId); - void newRequestRenderSurfaceToArea(int surfaceId, int layoutArea); - bool newRequestRenderSurfaceToAreaAllowed(int surfaceId, int layoutArea); - void newRequestSurfaceIdToFullScreen(int surfaceId); - -//from homescreen_adaptor.h -public Q_SLOTS: // METHODS - QList<int> getAllSurfacesOfProcess(int pid); - int getSurfaceStatus(int surfaceId); - void hardKeyPressed(int key); - void renderSurfaceToArea(int surfaceId, int layoutArea); - bool renderAppToAreaAllowed(int appCategory, int layoutArea); - void requestSurfaceIdToFullScreen(int surfaceId); - -private: - HomescreenAdaptor *mp_homeScreenAdaptor; -}; - -#endif // HOMESCREENCONTROLINTERFACE_H diff --git a/homescreen/src/homescreenhandler.cpp b/homescreen/src/homescreenhandler.cpp index 2a69034..5d888ae 100644 --- a/homescreen/src/homescreenhandler.cpp +++ b/homescreen/src/homescreenhandler.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION + * + * 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. + */ + #include "homescreenhandler.h" #include <functional> diff --git a/homescreen/src/homescreenhandler.h b/homescreen/src/homescreenhandler.h index 55d14fd..6209631 100644 --- a/homescreen/src/homescreenhandler.h +++ b/homescreen/src/homescreenhandler.h @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION + * + * 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 HOMESCREENHANDLER_H #define HOMESCREENHANDLER_H diff --git a/homescreen/src/layouthandler.cpp b/homescreen/src/layouthandler.cpp index d16b5e7..37c1d09 100644 --- a/homescreen/src/layouthandler.cpp +++ b/homescreen/src/layouthandler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/src/layouthandler.h b/homescreen/src/layouthandler.h index 4b9e510..45cfd9c 100644 --- a/homescreen/src/layouthandler.h +++ b/homescreen/src/layouthandler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/homescreen/src/main.cpp b/homescreen/src/main.cpp index 7c78166..1b42832 100644 --- a/homescreen/src/main.cpp +++ b/homescreen/src/main.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +24,6 @@ #include <QQuickWindow> #include "layouthandler.h" -#include "homescreencontrolinterface.h" #include "applicationlauncher.h" #include "statusbarmodel.h" #include "applicationmodel.h" @@ -101,14 +101,6 @@ int main(int argc, char *argv[]) HomescreenHandler* homescreenHandler = new HomescreenHandler(); homescreenHandler->init(port, token.toStdString().c_str()); -// HomeScreenControlInterface* hsci = new HomeScreenControlInterface(); - -// QObject::connect(hsci, SIGNAL(newRequestGetSurfaceStatus(int)), layoutHandler, SLOT(requestGetSurfaceStatus(int))); -// QObject::connect(hsci, SIGNAL(newRequestsToBeVisibleApp(int)), layoutHandler, SLOT(makeMeVisible(int))); -// QObject::connect(hsci, SIGNAL(newRequestRenderSurfaceToArea(int, int)), layoutHandler, SLOT(requestRenderSurfaceToArea(int,int))); -// QObject::connect(hsci, SIGNAL(newRequestRenderSurfaceToAreaAllowed(int, int)), layoutHandler, SLOT(requestRenderSurfaceToAreaAllowed(int,int))); -// QObject::connect(hsci, SIGNAL(newRequestSurfaceIdToFullScreen(int)), layoutHandler, SLOT(requestSurfaceIdToFullScreen(int))); - // mail.qml loading QQmlApplicationEngine engine; engine.rootContext()->setContextProperty("layoutHandler", layoutHandler); @@ -120,14 +112,5 @@ int main(int argc, char *argv[]) QObject::connect(window, SIGNAL(frameSwapped()), layoutHandler, SLOT(slotActivateSurface())); QObject::connect(homescreenHandler, SIGNAL(homeButton()), layoutHandler, SLOT(slotHomeButton())); -// layoutHandler->activateSurface(); - - // Connect C++ / QML -// QList<QObject *> mobjs = engine.rootObjects(); -// MasterVolume *mv = mobjs.first()->findChild<MasterVolume *>("mv"); -// engine.rootContext()->setContextProperty("MasterVolume", mv); -// QObject::connect(mv, SIGNAL(sliderVolumeChanged(int)), client, SLOT(incDecVolume(int))); -// QObject::connect(client, SIGNAL(volumeExternallyChanged(int)), mv, SLOT(changeExternalVolume(int))); - return a.exec(); } diff --git a/homescreen/src/mastervolume.cpp b/homescreen/src/mastervolume.cpp index 46985ee..5e1e450 100644 --- a/homescreen/src/mastervolume.cpp +++ b/homescreen/src/mastervolume.cpp @@ -16,8 +16,6 @@ #include "mastervolume.h" -#include <QtCore/QDebug> - void MasterVolume::setVolume(pa_volume_t volume) { int volume_delta = volume - m_volume; diff --git a/homescreen/src/mastervolume.h b/homescreen/src/mastervolume.h index edcdd8c..645968a 100644 --- a/homescreen/src/mastervolume.h +++ b/homescreen/src/mastervolume.h @@ -16,7 +16,6 @@ #include <QtCore/QObject> #include <QQmlEngine> -#include <QDebug> #include <pulse/pulseaudio.h> diff --git a/homescreen/src/popupwidget.cpp b/homescreen/src/popupwidget.cpp deleted file mode 100644 index 1f062f1..0000000 --- a/homescreen/src/popupwidget.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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. - */ - -#include "popupwidget.h" -#include "ui_popupwidget.h" -#include <include/daynightmode.hpp> - -PopupWidget::PopupWidget(QWidget *parent) : - QWidget(parent), - mp_ui(new Ui::PopupWidget), - mp_popupAdaptor(0), - m_sendComboBoxChoice(false) -{ - // publish dbus popup interface - mp_popupAdaptor = new PopupAdaptor((QObject*)this); - QDBusConnection dbus = QDBusConnection::sessionBus(); - dbus.registerObject("/Popup", this); - dbus.registerService("org.agl.homescreen"); - - // no window decoration - setWindowFlags(Qt::FramelessWindowHint); - - mp_ui->setupUi(this); - - this->close(); -} - -PopupWidget::~PopupWidget() -{ - delete mp_popupAdaptor; - delete mp_ui; -} - -void PopupWidget::updateColorScheme() -{ - QSettings settings; - QSettings settings_cs(QApplication::applicationDirPath() + - "/colorschemes/" + - settings.value("systemsettings/colorscheme", "default").toString() + - "/" + - QString::number(settings.value("systemsettings/proximityobjectdetected", false).toBool()) + - "/" + - QString::number(settings.value("systemsettings/daynightmode", SystemDayNight::DAYNIGHTMODE_DAY).toInt()) + - ".ini", - QSettings::IniFormat); - - mp_ui->widget_popup->setStyleSheet(settings_cs.value(QString("PopupWidget/widget_popup_css")).toString()); - mp_ui->label_text->setStyleSheet(settings_cs.value(QString("PopupWidget/label_text_css")).toString()); -} - -void PopupWidget::showPopup(int /*type*/, const QString &text) -{ - m_sendComboBoxChoice = false; - mp_ui->comboBox_choice->hide(); - this->show(); - this->raise(); - mp_ui->label_text->setText(text); -} - -void PopupWidget::showPopupComboBox(const QString &text, const QStringList &choices) -{ - mp_ui->comboBox_choice->clear(); - m_sendComboBoxChoice = true; - mp_ui->comboBox_choice->addItems(choices); - mp_ui->comboBox_choice->show(); - this->show(); - this->raise(); - mp_ui->label_text->setText(text); -} - -void PopupWidget::on_pushButton_OK_clicked() -{ - if (m_sendComboBoxChoice) - { - emit comboBoxResult(mp_ui->comboBox_choice->currentText()); - m_sendComboBoxChoice = false; - } - this->close(); -} diff --git a/homescreen/src/popupwidget.h b/homescreen/src/popupwidget.h deleted file mode 100644 index 7f3aaa8..0000000 --- a/homescreen/src/popupwidget.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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 POPUPWIDGET_H -#define POPUPWIDGET_H - -#include <QWidget> -#include <include/popup.hpp> -#include "popup_adaptor.h" - -namespace Ui { -class PopupWidget; -} - -class PopupWidget : public QWidget -{ - Q_OBJECT - -public: - explicit PopupWidget(QWidget *parent = 0); - ~PopupWidget(); -public slots: - void updateColorScheme(); - - // from popup_adaptor.h -public Q_SLOTS: // METHODS - void showPopup(int /*type*/, const QString &text); - void showPopupComboBox(const QString &text, const QStringList &choices); - -private slots: - void on_pushButton_OK_clicked(); - -signals: - void comboBoxResult(QString choice); - -private: - Ui::PopupWidget *mp_ui; - - PopupAdaptor *mp_popupAdaptor; - bool m_sendComboBoxChoice; - // for showPupupFor LayoutSelection - //QList<QPushButton> m_pushButtons; -}; - -#endif // POPUPWIDGET_H diff --git a/homescreen/src/settingswidget.cpp b/homescreen/src/settingswidget.cpp deleted file mode 100644 index 1629bf0..0000000 --- a/homescreen/src/settingswidget.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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. - */ - -#include "settingswidget.h" -#include "ui_settingswidget.h" -#include <QSettings> -#include <include/daynightmode.hpp> - -SettingsWidget::SettingsWidget(QWidget *parent) : - QWidget(parent), - mp_ui(new Ui::SettingsWidget), - mp_translator(0) -{ - // no window decoration - setWindowFlags(Qt::FramelessWindowHint); - - // multi-language support - mp_translator = new QTranslator(); - mp_translator->load("homescreen_en_US.qm", ":/translations"); // TODO: read from system - QApplication::instance()->installTranslator(mp_translator); - - mp_ui->setupUi(this); - - mp_ui->comboBox_language->addItem(QString("English"), QVariant("homescreen_en_US.qm")); // TODO: make this configurable - mp_ui->comboBox_language->addItem(QString("Deutsch"), QVariant("homescreen_de_DE.qm")); - mp_ui->comboBox_language->addItem(QString("日本語"), QVariant("homescreen_ja_JP.qm")); - - mp_ui->comboBox_colorScheme->addItem(QString("Default"), QVariant("default")); // TODO: make this configurable - mp_ui->comboBox_colorScheme->addItem(QString("Demo 1"), QVariant("demo1")); - mp_ui->comboBox_colorScheme->addItem(QString("Demo 2"), QVariant("demo2")); - - QSettings settings; - mp_ui->comboBox_language->setCurrentIndex(settings.value("systemsettings/language", 0).toInt()); - mp_ui->comboBox_colorScheme->setCurrentIndex(settings.value("systemsettings/colorschemeindex", 0).toInt()); -} - -SettingsWidget::~SettingsWidget() -{ - delete mp_translator; - delete mp_ui; -} - -void SettingsWidget::updateColorScheme() -{ - QSettings settings; - QSettings settings_cs(QApplication::applicationDirPath() + - "/colorschemes/" + - settings.value("systemsettings/colorscheme", "default").toString() + - "/" + - QString::number(settings.value("systemsettings/proximityobjectdetected", false).toBool()) + - "/" + - QString::number(settings.value("systemsettings/daynightmode", SystemDayNight::DAYNIGHTMODE_DAY).toInt()) + - ".ini", - QSettings::IniFormat); - - mp_ui->widget_background->setStyleSheet(settings_cs.value("SettingsWidget/widget_background_css").toString()); - mp_ui->comboBox_language->setStyleSheet(settings_cs.value("SettingsWidget/comboBox_language_css").toString()); - mp_ui->comboBox_colorScheme->setStyleSheet(settings_cs.value("SettingsWidget/comboBox_colorScheme_css").toString()); - mp_ui->widget_settingsIcon->setStyleSheet(settings_cs.value("SettingsWidget/widget_settingsIcon_css").toString()); -} - -void SettingsWidget::changeEvent(QEvent* event) -{ - if (QEvent::LanguageChange == event->type()) - { - mp_ui->retranslateUi(this); - } - - QWidget::changeEvent(event); -} - -void SettingsWidget::on_comboBox_language_currentIndexChanged(const QString &) -{ - if (0 != mp_translator) - mp_translator->load(mp_ui->comboBox_language->currentData().toString(), ":/translations"); - - QSettings settings; - settings.setValue("systemsettings/language", mp_ui->comboBox_language->currentIndex()); -} - -void SettingsWidget::on_comboBox_colorScheme_currentIndexChanged(const QString &) -{ - QSettings settings; - settings.setValue("systemsettings/colorscheme", mp_ui->comboBox_colorScheme->currentData().toString()); - settings.setValue("systemsettings/colorschemeindex", mp_ui->comboBox_colorScheme->currentIndex()); - // make sure that everything is written to the settings file before continuing - settings.sync(); - - emit colorSchemeChanged(); -} diff --git a/homescreen/src/settingswidget.h b/homescreen/src/settingswidget.h deleted file mode 100644 index 75bb383..0000000 --- a/homescreen/src/settingswidget.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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 SETTINGSWIDGET_H -#define SETTINGSWIDGET_H - -#include <QWidget> -#include <QTranslator> - -namespace Ui { -class SettingsWidget; -} - -class SettingsWidget : public QWidget -{ - Q_OBJECT - -public: - explicit SettingsWidget(QWidget *parent = 0); - ~SettingsWidget(); -public slots: - void updateColorScheme(); - -protected: - // called when the translator loaded a new language set - void changeEvent(QEvent* event); - -private slots: - void on_comboBox_language_currentIndexChanged(const QString &); - void on_comboBox_colorScheme_currentIndexChanged(const QString &); - -signals: - void colorSchemeChanged(void); - -private: - Ui::SettingsWidget *mp_ui; - QTranslator *mp_translator; -}; - -#endif // SETTINGSWIDGET_H diff --git a/interfaces/daynightmode.xml b/interfaces/daynightmode.xml deleted file mode 100644 index fb77045..0000000 --- a/interfaces/daynightmode.xml +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> -<!-- Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - - 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. --> -<node> - <interface name="org.agl.daynightmode"> - <signal name="dayNightMode"> - <arg name="mode" type="i" direction="out"/> - </signal> - </interface> -</node> diff --git a/interfaces/homescreen.xml b/interfaces/homescreen.xml deleted file mode 100644 index 378ff54..0000000 --- a/interfaces/homescreen.xml +++ /dev/null @@ -1,106 +0,0 @@ -<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> -<!-- Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - - 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. --> -<node> -<!-- - org.agl.homescreen: - @short_description: A generic interface for the HomeScreen app. - - This interface is a collection of methods from different functional areas to control the HomeScreen app. ---> - <interface name="org.agl.homescreen"> - <!-- - hardKeyPressed: - @key: The key that was pressed using the inputevent.hpp InputEvent::HardKey type. - - This is used to inject hard keys into the HomeScreen app. - --> - <method name="hardKeyPressed"> - <arg name="key" type="i" direction="in"/> - </method> - <!-- - getSurfaceStatus: - @surfaceId: The given surface. - @status: The status can be unknown (-1), visible (0), invisible (1) - - A surface can have three states. It can be visible, then it is shown on the screen. - It can be invisible, then it is not shown on the screen. Or the state is unknown. - --> - <method name="getSurfaceStatus"> - <arg name="surfaceId" type="i" direction="in"/> - <arg name="status" type="i" direction="out"/> - </method> - <!-- - requestSurfaceIdToFullScreen: - @surfaceId: The surface that request to be shown fullscreen. - - This allows an application to set a surface to full screen. - --> - <method name="requestSurfaceIdToFullScreen"> - <arg name="surfaceId" type="i" direction="in"/> - </method> - <!-- - getAllSurfacesOfProcess: - @pid: The PID of the process. - @surfaceIds: A list of surfaces that were created by the process. - - The surface IDs can for example be used to assign them to a layout render area. - --> - <method name="getAllSurfacesOfProcess"> - <arg name="pid" type="i" direction="in"/> - <arg name="surfaceIds" type="ai" direction="out"/> - <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList<int>"/> - </method> - <!-- - renderAppToAreaAllowed: - @appCategory: The application category that is requested. Use enum AppCategory for this! - @layoutArea: The layout area where the application shall be rendered. Find the layoutArea ids in the layout definition! - @allowed: Returns true, if the application is allowed to be rendered in the area - - This function can be used to request, if it is allowed to render an application of a specific category - in a layout area. The idea is to decide from an application point of view to allocate recources or not. - Example: an application will decide to render video based on this call. This call will not change anything, it is only a request. - --> - <method name="renderAppToAreaAllowed"> - <arg name="appCategory" type="i" direction="in"/> - <arg name="layoutArea" type="i" direction="in"/> - <arg name="allowed" type="b" direction="out"/> - </method> - <!-- - renderSurfaceToArea: - @surfaceId: The surface that is requested. - @layoutArea: The layout area where the surface shall be rendered. Find the layoutArea ids in the layout definition! - - This is a special case. In the normal use case, one layout area is always filled completely - with the first surface, that the process creates (more precise: the surface with the lowest id). - By using this function, an app can request to position a different surface in the layout area. - --> - <method name="renderSurfaceToArea"> - <arg name="surfaceId" type="i" direction="in"/> - <arg name="layoutArea" type="i" direction="in"/> - </method> - <!-- - surfaceVisibilityChanged: - @surfaceId: The surface that changed. - @visible: True, if the surface is visible. - - This is emitted when the visible property of the surfaces changes. - --> - <signal name="surfaceVisibilityChanged"> - <arg name="surfaceId" type="i"/> - <arg name="visible" type="b"/> - </signal> - </interface> -</node> - diff --git a/interfaces/include/daynightmode.hpp b/interfaces/include/daynightmode.hpp deleted file mode 100644 index 2d858bb..0000000 --- a/interfaces/include/daynightmode.hpp +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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 DAYNIGHTMODE_H -#define DAYNIGHTMODE_H - -namespace SystemDayNight { - typedef enum DayNightMode - { - DAYNIGHTMODE_UNDEFINED = -1, - DAYNIGHTMODE_DAY = 0, - DAYNIGHTMODE_NIGHT = 1 - } eDayNightMode; -} - -#endif // DAYNIGHTMODE_H diff --git a/interfaces/include/homescreen.hpp b/interfaces/include/homescreen.hpp deleted file mode 100644 index 728962b..0000000 --- a/interfaces/include/homescreen.hpp +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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 HOMESCREEN_H -#define HOMESCREEN_H - -#include "inputevent.hpp" - -#endif // HOMESCREEN_H - diff --git a/interfaces/include/inputevent.hpp b/interfaces/include/inputevent.hpp deleted file mode 100644 index 8c6bf58..0000000 --- a/interfaces/include/inputevent.hpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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 INPUTEVENT_H -#define INPUTEVENT_H - -namespace InputEvent { - typedef enum HardKey - { - HARDKEY_UNDEFINED, - HARDKEY_NAV, - HARDKEY_MEDIA - } eHardKey; -} - -#endif // INPUTEVENT_H - diff --git a/interfaces/include/popup.hpp b/interfaces/include/popup.hpp deleted file mode 100644 index 9caa837..0000000 --- a/interfaces/include/popup.hpp +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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 POPUP_H -#define POPUP_H - -namespace SystemPopup { - typedef enum PopupType - { - POPUPTYPE_UNDEFINED, - POPUPTYPE_INFO, - POPUPTYPE_WARNING, - POPUPTYPE_ERROR - } ePopupType; -} - -#endif // POPUP_H - diff --git a/interfaces/include/proximity.hpp b/interfaces/include/proximity.hpp deleted file mode 100644 index 898217f..0000000 --- a/interfaces/include/proximity.hpp +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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 PROXIMITY_H -#define PROXIMITY_H - - -#endif // PROXIMITY_H - diff --git a/interfaces/include/windowmanager.hpp b/interfaces/include/windowmanager.hpp deleted file mode 100644 index dd268dd..0000000 --- a/interfaces/include/windowmanager.hpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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 WINDOWMANAGER_H -#define WINDOWMANAGER_H - -#include <QtDBus> - -#define WINDOWMANAGER_NO_ERROR 0 -#define WINDOWMANAGER_ERROR_ID_ALREADY_DEFINED 1 -#define WINDOWMANAGER_ERROR_NAME_ALREADY_DEFINED 2 -#define WINDOWMANAGER_ERROR_ID_NOT_FOUND 3 -#define WINDOWMANAGER_ERROR_NAME_NOT_FOUND 4 -#define WINDOWMANAGER_ERROR_ID_IN_USE 5 - -class SimplePoint -{ -public: - SimplePoint(); - virtual ~SimplePoint(); - - int x; - int y; - - friend QDBusArgument &operator <<(QDBusArgument &argument, const SimplePoint &mSimplePoint); - friend const QDBusArgument &operator >>(const QDBusArgument &argument, SimplePoint &mSimplePoint); -}; - - -class LayoutArea -{ -public: - LayoutArea(); - virtual ~LayoutArea(); - - int x; - int y; - int width; - int height; - - friend QDBusArgument &operator <<(QDBusArgument &argument, const LayoutArea &mLayoutArea); - friend const QDBusArgument &operator >>(const QDBusArgument &argument, LayoutArea &mLayoutArea); -}; - -class Layout -{ -public: - Layout(); - Layout(int layoutId, const QString &layoutName, const QList<LayoutArea> &surfaceAreas); - virtual ~Layout(); - - int id; - QString name; - QList<LayoutArea> layoutAreas; - - friend QDBusArgument &operator <<(QDBusArgument &argument, const Layout &mLayout); - friend const QDBusArgument &operator >>(const QDBusArgument &argument, Layout &mLayout); -}; - -Q_DECLARE_METATYPE(SimplePoint) -Q_DECLARE_METATYPE(QList<SimplePoint>) - -Q_DECLARE_METATYPE(LayoutArea) -Q_DECLARE_METATYPE(QList<LayoutArea>) - -Q_DECLARE_METATYPE(Layout) -Q_DECLARE_METATYPE(QList<Layout>) - -#endif // WINDOWMANAGER_H diff --git a/interfaces/inputevent.xml b/interfaces/inputevent.xml deleted file mode 100644 index 74c698e..0000000 --- a/interfaces/inputevent.xml +++ /dev/null @@ -1,22 +0,0 @@ -<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> -<!-- Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - - 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. --> -<node> - <interface name="org.agl.inputevent"> - <method name="hardKeyPressed"> - <arg name="key" type="i" direction="in"/> - </method> - </interface> -</node> - diff --git a/interfaces/interfaces.pro b/interfaces/interfaces.pro index 53324b2..1e30bdd 100644 --- a/interfaces/interfaces.pro +++ b/interfaces/interfaces.pro @@ -18,22 +18,15 @@ QT = dbus CONFIG += staticlib HEADERS += \ - include/appframework.hpp \ - include/windowmanager.hpp + include/appframework.hpp -SOURCES += src/appframework.cpp \ - src/windowmanager.cpp +SOURCES += \ + src/appframework.cpp XMLSOURCES = \ afm_user_daemon.xml \ appframework.xml \ - daynightmode.xml \ - homescreen.xml \ - inputevent.xml \ - popup.xml \ - proximity.xml \ - statusbar.xml \ - windowmanager.xml + statusbar.xml gen_adaptor_cpp.input = XMLSOURCES gen_adaptor_cpp.commands = \ diff --git a/interfaces/popup.xml b/interfaces/popup.xml deleted file mode 100644 index 113ced9..0000000 --- a/interfaces/popup.xml +++ /dev/null @@ -1,26 +0,0 @@ -<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> -<!-- Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - - 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. --> -<node> - <interface name="org.agl.popup"> - <method name="showPopup"> - <arg name="type" type="i" direction="in"/> - <arg name="text" type="s" direction="in"/> - </method> - <method name="showPopupComboBox"> - <arg name="text" type="s" direction="in"/> - <arg name="choices" type="as" direction="in"/> - </method> - </interface> -</node> diff --git a/interfaces/proximity.xml b/interfaces/proximity.xml deleted file mode 100644 index c581254..0000000 --- a/interfaces/proximity.xml +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> -<!-- Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - - 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. --> -<node> - <interface name="org.agl.proximity"> - <method name="setObjectDetected"> - <arg name="detected" type="b" direction="in"/> - </method> - </interface> -</node> diff --git a/interfaces/src/windowmanager.cpp b/interfaces/src/windowmanager.cpp deleted file mode 100644 index 0811a57..0000000 --- a/interfaces/src/windowmanager.cpp +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - * - * 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. - */ - -#include "include/windowmanager.hpp" - -SimplePoint::SimplePoint() -{ -} - -SimplePoint::~SimplePoint() -{ -} - - -LayoutArea::LayoutArea() -{ -} - -LayoutArea::~LayoutArea() -{ -} - - -Layout::Layout(): - id(-1), - name("N/A"), - layoutAreas() -{ -} - -Layout::Layout(int layoutId, const QString &layoutName, const QList<LayoutArea> &surfaceAreas): - id(layoutId), - name(layoutName), - layoutAreas(surfaceAreas) -{ -} - -Layout::~Layout() -{ -} - -QDBusArgument &operator <<(QDBusArgument &argument, const SimplePoint &mSimplePoint) -{ - argument.beginStructure(); - argument << mSimplePoint.x; - argument << mSimplePoint.y; - argument.endStructure(); - - return argument; -} - -const QDBusArgument &operator >>(const QDBusArgument &argument, SimplePoint &mSimplePoint) -{ - argument.beginStructure(); - argument >> mSimplePoint.x; - argument >> mSimplePoint.y; - argument.endStructure(); - return argument; -} - -QDBusArgument &operator <<(QDBusArgument &argument, const LayoutArea &mLayoutArea) -{ - argument.beginStructure(); - argument << mLayoutArea.x; - argument << mLayoutArea.y; - argument << mLayoutArea.width; - argument << mLayoutArea.height; - argument.endStructure(); - - return argument; -} - -const QDBusArgument &operator >>(const QDBusArgument &argument, LayoutArea &mLayoutArea) -{ - argument.beginStructure(); - argument >> mLayoutArea.x; - argument >> mLayoutArea.y; - argument >> mLayoutArea.width; - argument >> mLayoutArea.height; - argument.endStructure(); - return argument; -} - -QDBusArgument &operator <<(QDBusArgument &argument, const Layout &mLayout) -{ - argument.beginStructure(); - argument << mLayout.id; - argument << mLayout.name; - argument << mLayout.layoutAreas; - argument.endStructure(); - - return argument; -} - -const QDBusArgument &operator >>(const QDBusArgument &argument, Layout &mLayout) -{ - argument.beginStructure(); - argument >> mLayout.id; - argument >> mLayout.name; - argument >> mLayout.layoutAreas; - argument.endStructure(); - return argument; -} diff --git a/interfaces/windowmanager.xml b/interfaces/windowmanager.xml deleted file mode 100644 index f288b32..0000000 --- a/interfaces/windowmanager.xml +++ /dev/null @@ -1,209 +0,0 @@ -<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> -<!-- Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH - - 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. --> -<node> - <!-- - org.agl.windowmanager: - @short_description: A Layout-based interface for the WindowManager. - - A Layout defines a list of surfaces areas. - --> - <interface name="org.agl.windowmanager"> - <!-- - addLayout: - @layoutId: A unique ID that represents this layout. If the ID is already in use WINDOWMANAGER_ERROR_ID_ALREADY_DEFINED will be returned. - @layoutName: A user readable string for the layout. If the string is already in use WINDOWMANAGER_ERROR_NAME_ALREADY_DEFINED will be returned. - @surfaceAreas: A list of surface areas. - @error: WINDOWMANAGER_NO_ERROR or the first error that occurred. - - Add a layout definition to the WindowManayer layout database. - The layout database is temoprary and not stored persistently. It has to be recreated by the client after - a WindowManager restart. - --> - <method name="addLayout"> - <arg name="layoutId" type="i" direction="in"/> - <arg name="layoutName" type="s" direction="in"/> - <arg name="surfaceAreas" type="a(iiii)" direction="in"/> - <annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="QList<LayoutArea>"/> - <arg name="error" type="i" direction="out"/> - </method> - - <!-- - deleteLayoutById: - @layoutId: The ID of the layout to delete. - @error: WINDOWMANAGER_NO_ERROR or the first error that occurred. - - Deletes the layout with the given ID. This cannot be the current active layout! - --> - <method name="deleteLayoutById"> - <arg name="layoutId" type="i" direction="in"/> - <arg name="error" type="i" direction="out"/> - </method> - - <!-- - setLayoutById: - @layoutId: The ID of the layout to activate. - @error: WINDOWMANAGER_NO_ERROR or the first error that occurred. - - Switch to the layout with the given ID. - --> - <method name="setLayoutById"> - <arg name="layoutId" type="i" direction="in"/> - <arg name="error" type="i" direction="out"/> - </method> - <!-- - setLayoutByName: - @layoutName: The name of the layout to activate. - @error: WINDOWMANAGER_NO_ERROR or the first error that occurred. - - Switch to the layout with the given name. - --> - <method name="setLayoutByName"> - <arg name="layoutName" type="s" direction="in"/> - <arg name="error" type="i" direction="out"/> - </method> - - <!-- - getLayoutName: - @layoutId: The ID of the requested layout name. - @layoutName: The name of the layout with the given ID. - - Request the name of the layout with the given ID. This does not set or activate a layout. - It is just returning the name of the given layout. - --> - <method name="getLayoutName"> - <arg name="layoutId" type="i" direction="in"/> - <arg name="layoutName" type="s" direction="out"/> - </method> - - <!-- - layout: - The current active layout with all its information. - --> - <property> - <arg name="layout" type="(isa(iiii))" access="read"/> - <annotation name="org.qtproject.QtDBus.QtTypeName" value="Layout"/> - </property> - <!-- - layoutId: - The current active layout id. This property is redundant, since its info is already available - in the property layout. But this property is more lightweight. - --> - <property name="layoutId" type="i" access="read"/> - <!-- - layoutName: - The name of the current active layout. This property is redundant, since its info is already available - in the property layout. But this property is more lightweight. - --> - <property name="layoutName" type="s" access="read"/> - - <!-- - getAllLayouts: - @layouts: A list of all layouts. - - Returns a list of all layouts that were added to the WindowManager. - --> - <method name="getAllLayouts"> - <arg name="layoutIds" type="a(isa(iiii))" direction="out"/> - <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList<Layout>"/> - </method> - - <!-- - getAvailableLayouts: - @numberOfAppSurfaces: The ID of the requested layout name. - @layoutIds: A list of layouts that offer the exact requested ammount of surface render areas. - - Returns a list of layouts that offer the exact requested ammount of surface render areas. - If the list is empty, no layout fits the exact ammount. - --> - - <method name="getAvailableLayouts"> - <arg name="numberOfAppSurfaces" type="i" direction="in"/> - <arg name="layoutIds" type="ai" direction="out"/> - <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList<int>"/> - </method> - - <!-- - setSurfaceToLayoutArea: - @surfaceId: The ID of the surface that shall be positioned. - @layoutAreaId: The ID of the layout area where the surface shall be rendered. - @error: WINDOWMANAGER_NO_ERROR or the first error that occurred. - - The surface will be scaled to the size of the layout area. - The surface will be made visible with this call. - --> - <method name="setSurfaceToLayoutArea"> - <arg name="surfaceId" type="i" direction="in"/> - <arg name="layoutAreaId" type="i" direction="in"/> - <arg name="error" type="i" direction="out"/> - </method> - - <!-- - getAvailableSurfaces: - @surfaceIds: A list of all known surfaceIds except for the surfaces created by the Home Screen app. - - If no surfaces are available, the returned list is empty. - --> - <method name="getAvailableSurfaces"> - <arg name="surfaceIds" type="a(i)" direction="out"/> - <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList<int>"/> - </method> - - <!-- - surfaceVisibilityChanged: - @surfaceId: The surface that changed. - @visible: True, if the surface is visible. - - This is emitted when the visible property of the surfaces changes. - --> - <signal name="surfaceVisibilityChanged"> - <arg name="surfaceId" type="i"/> - <arg name="visible" type="b"/> - </signal> - - <!-- - showLayer: - @layer: The ID of the layer to show. POPUP=0, HOMESCREEN_OVERLAY=1, APPS=2, HOMESCREEN=3 - @pid: The PID of the app to show. (used only when layer is APPS=2) - - Show complete layers. - By default, all layers are shown. - --> - <method name="showLayer"> - <arg name="layer" type="i" direction="in"/> - <arg name="pid" type="i" direction="in"/> - </method> - <!-- - showAppLayer: - @pid: The PID of the app to show. - - Show layer for application . - --> - <method name="showAppLayer"> - <arg name="name" type="s" direction="in"/> - <arg name="pid" type="i" direction="in"/> - </method> - <!-- - hideLayer: - @layer: The ID of the layer to hide. POPUP=0, HOMESCREEN_OVERLAY=1, APPS=2, HOMESCREEN=3 - - Hide complete layers. - By default, all layers are shown. - --> - <method name="hideLayer"> - <arg name="layer" type="i" direction="in"/> - </method> - </interface> -</node> - diff --git a/test/commandlinetests.txt b/test/commandlinetests.txt deleted file mode 100644 index 428b1ca..0000000 --- a/test/commandlinetests.txt +++ /dev/null @@ -1,150 +0,0 @@ -Command line tests - -Precondition for all test is, that the D-Bus session is launched: -$export `dbus-launch` - ---------------------------------------------------------------------------------------------------------------------- -Interface: -org.agl.daynightmode - -Signal: - <signal name="dayNightMode"> - <arg name="mode" type="i" direction="out"/> - </signal> - -Preconditions: -- HomeScreen app is running - -Test: -no command line test available right now - ---------------------------------------------------------------------------------------------------------------------- -Interface: -org.agl.homescreen - -Method: - <method name="hardKeyPressed"> - <arg name="key" type="i" direction="in"/> <!-- using the inputevent.hpp InputEvent::HardKey type --> - </method> - -Preconditions: -- HomeScreen app is running - -Test: -$dbus-send --session --type=method_call --print-reply --dest=org.agl.homescreen /HomeScreen org.agl.homescreen.hardKeyPressed int32:0 - -Method: - <method name="setToFullscreen"> - <arg name="pid" type="i" direction="in"/> - </method> - -$dbus-send --session --type=method_call --print-reply --dest=org.agl.homescreen /HomeScreen org.agl.homescreen.setToFullscreen int32:0 - ---------------------------------------------------------------------------------------------------------------------- -Interface: -org.agl.popup - -Method: - <method name="showPopup"> - <arg name="type" type="i" direction="in"/> - <arg name="text" type="s" direction="in"/> - </method> - -Preconditions: -- HomeScreen app is running - -Test: -$dbus-send --session --type=method_call --dest=org.agl.homescreen /Popup org.agl.popup.showPopup int32:1 string:"TEST" - -Method: - <method name="showPopupComboBox"> - <arg name="text" type="s" direction="in"/> - <arg name="choices" type="as" direction="in"/> - </method> - -Preconditions: -- HomeScreen app is running - -Test: -$dbus-send --session --type=method_call --dest=org.agl.homescreen /Popup org.agl.popup.showPopupComboBox string:"TEST" array:string:"test1","test2" - ---------------------------------------------------------------------------------------------------------------------- -Interface: -org.agl.proximity - -Method: - <method name="setObjectDetected"> - <arg name="detected" type="b" direction="in"/> - </method> - -Preconditions: -- HomeScreen app is running - -Test: -$dbus-send --session --type=method_call --dest=org.agl.homescreen /Proximity org.agl.proximity.setObjectDetected boolean:true - ---------------------------------------------------------------------------------------------------------------------- -Interface: -org.agl.statusbar - -Method: - <method name="getAvailablePlaceholders"> - <arg name="placeholderIndexes" type="ai" direction="out"/> - <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList<int>"/> - </method> - -Preconditions: -- HomeScreen app is running - -Test: -$dbus-send --session --type=method_call --print-reply --dest=org.agl.homescreen /StatusBar org.agl.statusbar.getAvailablePlaceholders - -Method: - <method name="getStatusText"> - <arg name="placeholderIndex" type="i" direction="in"/> - <arg name="text" type="s" direction="out"/> - </method> - -Preconditions: -- HomeScreen app is running - -Test: -$dbus-send --session --type=method_call --print-reply --dest=org.agl.homescreen /StatusBar org.agl.statusbar.getStatusText int32:1 - -Method: - <method name="getStatusIcon"> - <arg name="placeholderIndex" type="i" direction="in"/> - <arg name="iconURI" type="s" direction="out"/> - </method> - -Preconditions: -- HomeScreen app is running - -Test: -$dbus-send --session --type=method_call --print-reply --dest=org.agl.homescreen /StatusBar org.agl.statusbar.getStatusIcon int32:1 - -Method: - <method name="setStatusText"> - <arg name="placeholderIndex" type="i" direction="in"/> - <arg name="text" type="s" direction="in"/> - </method> - -Preconditions: -- HomeScreen app is running - -Test: -$dbus-send --session --type=method_call --print-reply --dest=org.agl.homescreen /StatusBar org.agl.statusbar.setStatusText int32:1 string:"Test1" - -Method: - <method name="setStatusIcon"> - <arg name="placeholderIndex" type="i" direction="in"/> - <arg name="iconURI" type="s" direction="in"/> - </method> - -Preconditions: -- HomeScreen app is running - -Test: -$dbus-send --session --type=method_call --print-reply --dest=org.agl.homescreen /StatusBar org.agl.statusbar.setStatusIcon int32:1 string:"<path to png file here>" - - |