diff options
Diffstat (limited to 'inputeventmanager/src')
-rw-r--r-- | inputeventmanager/src/inputeventmanager.cpp | 64 | ||||
-rw-r--r-- | inputeventmanager/src/inputeventmanager.h | 46 | ||||
-rw-r--r-- | inputeventmanager/src/main.cpp | 51 |
3 files changed, 161 insertions, 0 deletions
diff --git a/inputeventmanager/src/inputeventmanager.cpp b/inputeventmanager/src/inputeventmanager.cpp new file mode 100644 index 0000000..c8d8d94 --- /dev/null +++ b/inputeventmanager/src/inputeventmanager.cpp @@ -0,0 +1,64 @@ +/* + * 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 "inputeventmanager.h" +#include "include/inputevent.hpp" + + +InputEventManager::InputEventManager(QObject *parent) : + QObject(parent), + mp_inputEventAdaptor(0), + mp_dBusHomeScreenProxy(0) +{ + qDebug("D-Bus: register as org.agl.inputeventmanager"); + + // publish app framework interface + mp_inputEventAdaptor = new InputeventAdaptor((QObject*)this); + QDBusConnection dbus = QDBusConnection::sessionBus(); + dbus.registerObject("/InputEvent", this); + dbus.registerService("org.agl.inputeventmanager"); + + + qDebug("D-Bus: connect to org.agl.homescreen /HomeScreen"); + mp_dBusHomeScreenProxy = new org::agl::homescreen("org.agl.homescreen", + "/HomeScreen", + QDBusConnection::sessionBus(), + 0); +} + +InputEventManager::~InputEventManager() +{ + delete mp_dBusHomeScreenProxy; + delete mp_inputEventAdaptor; +} + +void InputEventManager::hardKeyPressed(int key) +{ + switch (key) + { + case InputEvent::HARDKEY_NAV: + mp_dBusHomeScreenProxy->hardKeyPressed(key); + qDebug("hardKeyPressed NAV key pressed!"); + break; + case InputEvent::HARDKEY_MEDIA: + mp_dBusHomeScreenProxy->hardKeyPressed(key); + qDebug("hardKeyPressed MEDIA key pressed!"); + break; + default: + qDebug("hardKeyPressed %d", key); + break; + } +} diff --git a/inputeventmanager/src/inputeventmanager.h b/inputeventmanager/src/inputeventmanager.h new file mode 100644 index 0000000..f6b8ad5 --- /dev/null +++ b/inputeventmanager/src/inputeventmanager.h @@ -0,0 +1,46 @@ +/* + * 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 INPUTEVENTMANAGER_H +#define INPUTEVENTMANAGER_H + +#include "inputevent_adaptor.h" +#include <include/homescreen.hpp> +#include "homescreen_proxy.h" + + +class InputEventManager : public QObject +{ + Q_OBJECT +public: + explicit InputEventManager(QObject *parent = 0); + ~InputEventManager(); +private: + InputeventAdaptor *mp_inputEventAdaptor; + org::agl::homescreen *mp_dBusHomeScreenProxy; + + //from inputevent_adapter.h +public Q_SLOTS: // METHODS + void hardKeyPressed(int key); + +public: + + +public slots: + +}; + +#endif // INPUTEVENTMANAGER_H diff --git a/inputeventmanager/src/main.cpp b/inputeventmanager/src/main.cpp new file mode 100644 index 0000000..f710cb4 --- /dev/null +++ b/inputeventmanager/src/main.cpp @@ -0,0 +1,51 @@ +/* + * 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 <QCoreApplication> +#include <QCommandLineParser> +#include "inputeventmanager.h" + +void noOutput(QtMsgType, const QMessageLogContext &, const QString &) +{ +} + +int main(int argc, char *argv[]) +{ + QCoreApplication a(argc, argv); + + QCoreApplication::setOrganizationDomain("LinuxFoundation"); + QCoreApplication::setOrganizationName("AutomotiveGradeLinux"); + QCoreApplication::setApplicationName("InputEventManager"); + QCoreApplication::setApplicationVersion("0.7.0"); + + QCommandLineParser parser; + parser.setApplicationDescription("AGL InputEventManager - see wwww... for more details"); + parser.addHelpOption(); + parser.addVersionOption(); + QCommandLineOption quietOption(QStringList() << "q" << "quiet", + QCoreApplication::translate("main", "Be quiet. No outputs.")); + parser.addOption(quietOption); + parser.process(a); + + if (parser.isSet(quietOption)) + { + qInstallMessageHandler(noOutput); + } + + InputEventManager *inputEventManager = new InputEventManager(); + + return a.exec(); +} |