delete return
[src/libqthomescreen.git] / src / qlibhomescreen.cpp
index e76a6d8..63dc692 100644 (file)
@@ -27,6 +27,10 @@ using namespace std;
 #define _KEY_APPLICATION_DATA "application_id"
 #define _KEY_REPLY_MESSAGE "reply_message"
 #define _KEY_REQUEST_MESSAGE "display_message"
+#define _KEY_SHORTCUT "shortcut"
+#define _KEY_SHORTCUT_ID "shortcut_id"
+#define _KEY_SHORTCUT_NAME "shortcut_name"
+#define _KEY_POSITION "position"
 
 static QLibHomeScreen* myThis;
 
@@ -163,7 +167,7 @@ void QLibHomeScreen::set_event_handler(enum QEventType et, handler_fun f)
 {
     HMI_DEBUG("qlibhomescreen", "called.");
     LibHomeScreen::EventType hs_et = (LibHomeScreen::EventType)et;
-    return this->mp_hs->set_event_handler(hs_et, std::move(f));
+    this->mp_hs->set_event_handler(hs_et, std::move(f));
 }
 
 /**
@@ -379,4 +383,53 @@ void QLibHomeScreen::setQuickWindow(QQuickWindow *qw)
         HMI_NOTICE("qlibhomescreen", "connect frameSwapped signal.");
         m_loading = QObject::connect(mp_window, SIGNAL(frameSwapped()), this, SLOT(slotPublishSubscription()));
     }
+}
+
+/**
+ * shortcut_id : "dashboard"
+ * shortcut_name : "Dashboard"
+ * positon : 1~3, from left to right on homescreen
+ */
+int QLibHomeScreen::registerShortcut(QString shortcut_id, QString shortcut_name, QString position)
+{
+       struct json_object* j_obj = json_object_new_object();
+       struct json_object* val_id = json_object_new_string(shortcut_id.toStdString().c_str());
+       struct json_object* val_name = json_object_new_string(shortcut_name.toStdString().c_str());
+       struct json_object* val_position = json_object_new_string(position.toStdString().c_str());
+       json_object_object_add(j_obj, _KEY_SHORTCUT_ID, val_id);
+       json_object_object_add(j_obj, _KEY_SHORTCUT_NAME, val_name);
+       json_object_object_add(j_obj, _KEY_POSITION, val_position);
+
+    return mp_hs->registerShortcut("homescreen", j_obj);
+}
+
+/**
+ * shortcut_id : "shocut_id1,shocut_id2,shocut_id3"
+ * shortcut_name : "shortcut_name1,shortcut_name2,shortcut_name3"
+ */
+int  QLibHomeScreen::updateShortcut(QString application_id, QString shortcut_id, QString shortcut_name)
+{
+    QStringList id = shortcut_id.split(',');
+    QStringList name = shortcut_name.split(',');
+    if(id.size() == 0 || id.size() != name.size()) {
+        HMI_NOTICE("qlibhomescreen","input parameters error.");
+        return -1;
+    }
+
+    // make json contents
+    struct json_object* arr_obj = json_object_new_array();
+    for(int i = 0; i < id.size(); ++i) {
+        struct json_object *j_obj = json_object_new_object();
+        json_object_object_add(j_obj, _KEY_SHORTCUT_ID, json_object_new_string(id[i].toStdString().c_str()));
+        json_object_object_add(j_obj, _KEY_SHORTCUT_NAME, json_object_new_string(name[i].toStdString().c_str()));
+        json_object_array_add(arr_obj, j_obj);
+    }
+    struct json_object* push_obj = json_object_new_object();
+    json_object_object_add(push_obj, _KEY_SHORTCUT, arr_obj);
+    return mp_hs->updateShortcut(application_id.toStdString().c_str(), push_obj);
+}
+
+int QLibHomeScreen::updateShortcut(QString application_id, struct json_object* obj)
+{
+     return mp_hs->updateShortcut(application_id.toStdString().c_str(), obj);
 }
\ No newline at end of file