summaryrefslogtreecommitdiff
path: root/src/data/media.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/media.c')
-rw-r--r--src/data/media.c45
1 files changed, 44 insertions, 1 deletions
diff --git a/src/data/media.c b/src/data/media.c
index 8cc2dce..6fdbd64 100644
--- a/src/data/media.c
+++ b/src/data/media.c
@@ -19,6 +19,8 @@
#include <app_contents.h>
#include <app_media.h>
#include <app_debug.h>
+#include <bundle.h>
+#include <aul.h>
#include "define.h"
#include "datamgr.h"
@@ -218,7 +220,48 @@ static void _free_favorites(Eina_List *list)
static bool _action(Elm_Object_Item *it)
{
- /* It should be implemented later. */
+ bundle *b = NULL;
+ app_media *am;
+ app_media_info *minfo;
+ char *id;
+ int r;
+
+ if (!it) {
+ _ERR("Invalid argument.");
+ return false;
+ }
+
+ am = elm_object_item_data_get(it);
+ if (!am)
+ return false;
+
+ minfo = app_media_get_info(am);
+ if (!minfo) {
+ _ERR("Get app_media_info failed.");
+ return false;
+ }
+
+ id = minfo->media_id;
+ if (!id)
+ return false;
+
+ b = bundle_create();
+ if (!b) {
+ _ERR("Bundle create failed.");
+ return false;
+ }
+
+ bundle_add_str(b, STR_KEY_MEDIA_ID, id);
+ bundle_add_str(b, STR_KEY_SENDER_ID, STR_FAVORITE);
+
+ r = aul_launch_app(STR_MEDIAHUB_APP_ID, b);
+ if (r < 0) {
+ _ERR("Mediahub launch failed.");
+ bundle_free(b);
+ return false;
+ }
+
+ bundle_free(b);
return true;
}