X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=HomeScreenAppFrameworkBinderTizen%2Fsrc%2Fhomescreenappframeworkbindertizen.cpp;fp=HomeScreenAppFrameworkBinderTizen%2Fsrc%2Fhomescreenappframeworkbindertizen.cpp;h=9e8dbba679c23d0fb6163d2b930b3c77ad6429a5;hb=0a468d9b5ae7b3e5ba106facf17698d89b1ce200;hp=0000000000000000000000000000000000000000;hpb=3478f65b39560b333ba189e7d86e2c2cebfc9c7a;p=staging%2FHomeScreen.git diff --git a/HomeScreenAppFrameworkBinderTizen/src/homescreenappframeworkbindertizen.cpp b/HomeScreenAppFrameworkBinderTizen/src/homescreenappframeworkbindertizen.cpp new file mode 100644 index 0000000..9e8dbba --- /dev/null +++ b/HomeScreenAppFrameworkBinderTizen/src/homescreenappframeworkbindertizen.cpp @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2016 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 "homescreenappframeworkbindertizen.h" + + +HomeScreenAppFrameworkBinderTizen::HomeScreenAppFrameworkBinderTizen(QObject *parent) : + QObject(parent), + mp_appframeworkAdaptor(0) +{ + qDebug("D-Bus: register as org.agl.homescreenappframeworkbindertizen"); + + m_apps.clear(); + + // publish app framework interface + mp_appframeworkAdaptor = new AppframeworkAdaptor((QObject*)this); + QDBusConnection dbus = QDBusConnection::sessionBus(); + dbus.registerObject("/AppFramework", this); + dbus.registerService("org.agl.homescreenappframeworkbindertizen"); + +#ifdef __arm__ + pkgmgrinfo_pkginfo_get_list(HomeScreenAppFrameworkBinderTizen::pkg_list_cb_static, this); + //list_pkgs(this); +#endif +#ifdef __i386__ + // for the simulation + AppInfo ai; + ai.setName("org.test.app1"); + ai.setDescription("testdesc1"); + ai.setIconPath("https://www.automotivelinux.org/sites/cpstandard/files/logo.png"); + m_apps.append(ai); + ai.setName("org.test.app2"); + ai.setDescription("testdesc2"); + m_apps.append(ai); +#endif +} + +HomeScreenAppFrameworkBinderTizen::~HomeScreenAppFrameworkBinderTizen() +{ + delete mp_appframeworkAdaptor; +} + +QStringList HomeScreenAppFrameworkBinderTizen::getAvailableAppNames() +{ + QStringList result; + for (int i = 0; i < m_apps.size(); ++i) + { + result.append(m_apps.at(i).getName()); + } + qDebug("size: %d", result.size()); + return result; +} + +int HomeScreenAppFrameworkBinderTizen::launchApp(const QString &name) +{ + int pid = -1; +#ifdef __arm__ + qDebug("launchApp name: %s", name.toStdString().c_str()); + pid = aul_launch_app(name.toStdString().c_str(), 0); + qDebug("launchApp pid: %d", pid); +#endif +#ifdef __i386__ + qDebug("launchApp name: %s", name.toStdString().c_str()); +#endif + + return pid; +} + +void HomeScreenAppFrameworkBinderTizen::clearAppList() +{ + m_apps.clear(); +} + +void HomeScreenAppFrameworkBinderTizen::appendAppName(const char* name) +{ + AppInfo newApp; + newApp.setName(QString(name)); + m_apps.append(newApp); +} + +#ifdef __arm__ +void HomeScreenAppFrameworkBinderTizen::pkg_list_cb_non_static(pkgmgrinfo_pkginfo_h handle) +{ + qDebug("pkg_list_cb_non_static"); + char *pkgid2 = NULL; + pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid2); + printf("pkg_list_cb_non_static: %s\n", pkgid2); + appendAppName(pkgid2); +} + +int HomeScreenAppFrameworkBinderTizen::pkg_list_cb_static(pkgmgrinfo_pkginfo_h handle, void *user_data) +{ + qDebug("pkg_list_cb_static"); + static_cast(user_data)->pkg_list_cb_non_static(handle); +} +#endif