change for new seq
[src/libqthomescreen.git] / src / qlibhomescreen.cpp
index f769469..e76a6d8 100644 (file)
@@ -43,7 +43,8 @@ static QLibHomeScreen* myThis;
  */
 QLibHomeScreen::QLibHomeScreen(QObject *parent) :
     QObject(parent),
-    mp_hs(NULL)
+    mp_hs(NULL),
+    mp_window(NULL)
 {
     HMI_DEBUG("qlibhomescreen", "called.");
 }
@@ -182,38 +183,42 @@ void QLibHomeScreen::tapShortcut(QString application_id)
 }
 
 /**
- * show application by application id
+ * show application by application id and display area
  *
  * #### Parameters
  * - application_id  : application id
- * - json  : json parameters
+ * - area  : display area liked {"area":"normal"}
  *
  * #### Return
  * - None.
  *
  */
-void QLibHomeScreen::showWindow(QString application_id, json_object* json)
+void QLibHomeScreen::showWindow(QString application_id, json_object* area)
 {
-    mp_hs->showWindow(application_id.toStdString().c_str(), json);
+    mp_hs->showWindow(application_id.toStdString().c_str(), area);
 }
 
 /**
- * show application by application id, json string
+ * show application by application id and display area
  *
  * #### Parameters
  * - application_id  : application id
- * - json  : json parameters
+ * - area  : display area liked "normal"
  *
  * #### Return
  * - None.
  *
  */
-void QLibHomeScreen::showWindow(QString application_id, QString json)
+void QLibHomeScreen::showWindow(QString application_id, QString area)
 {
-    if(json.isNull())
+    if(area.isNull()) {
         mp_hs->showWindow(application_id.toStdString().c_str(), nullptr);
-    else
-        mp_hs->showWindow(application_id.toStdString().c_str(), json_tokener_parse(json.toStdString().c_str()));
+    } else {
+        struct json_object *j_obj = json_object_new_object();
+        struct json_object *value = json_object_new_string(area.toStdString().c_str());
+        json_object_object_add(j_obj, "area", value);
+        mp_hs->showWindow(application_id.toStdString().c_str(), j_obj);
+    }
 }
 
 /**
@@ -232,47 +237,47 @@ void QLibHomeScreen::hideWindow(QString application_id)
 }
 
 /**
- * send onscreen or software keyboard message to application
+ * send onscreen reply to application
  *
  * #### Parameters
  * - application_id  : application id
- * - json  : json parameters
+ * - reply  : the reply contents
  *
  * #### Return
  * - None.
  *
  */
-void QLibHomeScreen::replyShowWindow(QString application_id, json_object* json)
+void QLibHomeScreen::replyShowWindow(QString application_id, json_object* reply)
 {
-    mp_hs->replyShowWindow(application_id.toStdString().c_str(), json);
+    mp_hs->replyShowWindow(application_id.toStdString().c_str(), reply);
 }
 
 /**
- * send onscreen or software keyboard message to application
+ * send onscreen reply to application
  *
  * #### Parameters
  * - application_id  : application id
- * - json  : json parameters
+ * - reply  : the reply contents which can convert to json
  *
  * #### Return
  * - None.
  *
  */
-void QLibHomeScreen::replyShowWindow(QString application_id, QString json)
+void QLibHomeScreen::replyShowWindow(QString application_id, QString reply)
 {
-    if(json.isNull())
+    if(reply.isNull())
         mp_hs->replyShowWindow(application_id.toStdString().c_str(), nullptr);
     else
-        mp_hs->replyShowWindow(application_id.toStdString().c_str(), json_tokener_parse(json.toStdString().c_str()));
+        mp_hs->replyShowWindow(application_id.toStdString().c_str(), json_tokener_parse(reply.toStdString().c_str()));
 }
 
 /**
  * show information
  *
- * use libhomescreen api to push information to menubarApp
+ * push information to HomeScreen
  *
  * #### Parameters
- * - params : json parameters
+ * - info : information that want to show
  *
  * #### Return
  * - None.
@@ -290,10 +295,11 @@ void QLibHomeScreen::showInformation(QString info)
 /**
  * show notification
  *
- * use libhomescreen api to push notification to menubarApp
+ * push notification to HomeScreen
  *
  * #### Parameters
- * - params : json parameters
+ * - icon : provided icon
+ * - text : text that want to show
  *
  * #### Resturn
  * - None.
@@ -309,3 +315,68 @@ void QLibHomeScreen::showNotification(QString icon, QString text)
 
     mp_hs->showNotification(j_obj);
 }
+
+/**
+ * get runnables list from homescreen-service
+ *
+ * #### Parameters
+ * - Nothing
+ *
+ * #### Resturn
+ * - None.
+ *
+ */
+void QLibHomeScreen::getRunnables(void)
+{
+    mp_hs->getRunnables();
+}
+
+/**
+ * publlish subscription to homescreen-service
+ *
+ * #### Parameters
+ * - Nothing
+ *
+ * #### Resturn
+ * - None.
+ *
+ */
+void QLibHomeScreen::slotPublishSubscription(void) {
+    HMI_NOTICE("qlibhomescreen","slotPublishSubscription");
+    if(mp_hs != NULL) {
+        mp_hs->publishSubscription();
+        QObject::disconnect(m_loading);
+    }  
+}
+
+/**
+ * This function register callback function for reply/event message from home screen
+ *
+ * #### Parameters
+ * - event_cb [in] : This argument should be specified to the callback for subscribed event
+ * - reply_cb [in] : This argument should be specified to the reply callback for call function
+ *
+ * #### Return
+ * Nothing
+ *
+ * #### Note
+ * Event callback is invoked by home screen for event you subscribed.
+ * If you would like to get event, please call subscribe function before/after this function
+ */
+void QLibHomeScreen::registerCallback(
+       void (*event_cb)(const std::string& event, struct json_object* event_contents),
+       void (*reply_cb)(struct json_object* reply_contents),
+       void (*hangup_cb)(void))
+{
+    if(mp_hs != NULL)
+        mp_hs->registerCallback(event_cb, reply_cb, hangup_cb);
+}
+
+void QLibHomeScreen::setQuickWindow(QQuickWindow *qw)
+{
+    mp_window = qw;
+    if(mp_window != NULL) {
+        HMI_NOTICE("qlibhomescreen", "connect frameSwapped signal.");
+        m_loading = QObject::connect(mp_window, SIGNAL(frameSwapped()), this, SLOT(slotPublishSubscription()));
+    }
+}
\ No newline at end of file