New HomeScreen API calls getSurfaceStatus and getAllSurfacesOfProcess.
[staging/HomeScreen.git] / HomeScreen / src / homescreencontrolinterface.cpp
1 #include "homescreencontrolinterface.h"
2
3 HomeScreenControlInterface::HomeScreenControlInterface(QObject *parent) :
4     QObject(parent),
5     mp_homeScreenAdaptor(0),
6     mp_dBusAppFrameworkProxy()
7 {
8     // publish dbus homescreen interface
9     mp_homeScreenAdaptor = new HomescreenAdaptor((QObject*)this);
10     QDBusConnection dbus = QDBusConnection::sessionBus();
11     dbus.registerObject("/HomeScreen", this);
12     dbus.registerService("org.agl.homescreen");
13
14     qDebug("D-Bus: connect to org.agl.homescreenappframeworkbindertizen /AppFramework");
15     mp_dBusAppFrameworkProxy = new org::agl::appframework("org.agl.homescreenappframeworkbindertizen",
16                                               "/AppFramework",
17                                               QDBusConnection::sessionBus(),
18                                               0);
19 }
20
21 HomeScreenControlInterface::~HomeScreenControlInterface()
22 {
23     delete mp_dBusAppFrameworkProxy;
24     delete mp_homeScreenAdaptor;
25 }
26
27 QList<int> HomeScreenControlInterface::getAllSurfacesOfProcess(int pid)
28 {
29     qDebug("getAllSurfacesOfProcess %d", pid);
30     return newRequestGetAllSurfacesOfProcess(pid);
31 }
32
33 QRect HomeScreenControlInterface::getLayoutRenderAreaForSurfaceId(int surfaceId)
34 {
35     qDebug("getLayoutRenderAreaForSurfaceId %d", surfaceId);
36     return newRequestGetLayoutRenderAreaForSurfaceId(surfaceId);
37 }
38
39 int HomeScreenControlInterface::getSurfaceStatus(int surfaceId)
40 {
41     qDebug("getSurfaceStatus %d", surfaceId);
42     return newRequestGetSurfaceStatus(surfaceId);
43 }
44
45 void HomeScreenControlInterface::hardKeyPressed(int key)
46 {
47     int pid = -1;
48
49     switch (key)
50     {
51     case InputEvent::HARDKEY_NAV:
52         qDebug("hardKeyPressed NAV key pressed!");
53         pid = mp_dBusAppFrameworkProxy->launchApp("demoapp");
54         qDebug("pid: %d", pid);
55         newRequestsToBeVisibleApp(pid);
56         break;
57     default:
58         qDebug("hardKeyPressed %d", key);
59         break;
60     }
61 }
62
63 void HomeScreenControlInterface::renderSurfaceToArea(int surfaceId, const QRect &renderArea)
64 {
65     qDebug("requestSurfaceIdToFullScreen %d", surfaceId);
66     newRequestRenderSurfaceToArea(surfaceId, renderArea);
67 }
68
69 void HomeScreenControlInterface::requestSurfaceIdToFullScreen(int surfaceId)
70 {
71     qDebug("requestSurfaceIdToFullScreen %d", surfaceId);
72     newRequestSurfaceIdToFullScreen(surfaceId);
73 }