summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c78
1 files changed, 59 insertions, 19 deletions
diff --git a/src/main.c b/src/main.c
index 8f08b9d..67b0ecb 100644
--- a/src/main.c
+++ b/src/main.c
@@ -126,13 +126,28 @@ static void _terminate(void *data)
}
}
+static void _open_media_file(char *media_type, char *media_file_path)
+{
+ if (strcmp(media_type, "Image") == 0) {
+ viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT_WITH_MEDIA_ID, media_file_path);
+ viewmgr_push_view(VIEW_VIEWER);
+ } else if (strcmp(media_type, "Video") == 0) {
+ viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT_WITH_MEDIA_ID, media_file_path);
+ viewmgr_push_view(VIEW_VIEWER);
+ } else if (strcmp(media_type, "Audio") == 0) {
+ viewmgr_update_view(VIEW_MPLAYER, UPDATE_CONTENT_WITH_MEDIA_ID, media_file_path);
+ viewmgr_push_view(VIEW_MPLAYER);
+ }
+}
+
static void _app_control(app_control_h app_control, void *data)
{
struct _appdata *ad;
- char *media_id;
- char *caller_id;
+ char *media_id = NULL;
+ char *caller_id = NULL;
int r;
+
if (!data) {
_ERR("failed to get data");
return;
@@ -147,27 +162,52 @@ static void _app_control(app_control_h app_control, void *data)
if (r != APP_CONTROL_ERROR_NONE)
caller_id = NULL;
- r = app_control_get_extra_data(app_control, PARAM_MEDIA_ID, &media_id);
- if (r != APP_CONTROL_ERROR_NONE)
- media_id = NULL;
-
- if (media_id && caller_id) {
- if (!strcmp(caller_id, APP_ID_FAVORITE)) {
- while (viewmgr_active_view_count() > 0)
- viewmgr_pop_view();
- viewmgr_update_view(VIEW_BASE,
- UPDATE_FAVORITE, media_id);
- } else if (!strcmp(caller_id, APP_ID_RECENT)) {
+ if (caller_id == NULL) {
+ r = app_control_get_extra_data(app_control, PARAM_MEDIA_ID, &media_id);
+ if (r != APP_CONTROL_ERROR_NONE)
+ media_id = NULL;
+
+ if (media_id && caller_id) {
+ if (!strcmp(caller_id, APP_ID_FAVORITE)) {
+ while (viewmgr_active_view_count() > 0)
+ viewmgr_pop_view();
+
+ viewmgr_update_view(VIEW_BASE,
+ UPDATE_FAVORITE, media_id);
+ } else if (!strcmp(caller_id, APP_ID_RECENT)) {
+ viewmgr_push_view(VIEW_BASE);
+ viewmgr_update_view(VIEW_BASE,
+ UPDATE_RECENT, media_id);
+ }
+ } else {
viewmgr_push_view(VIEW_BASE);
- viewmgr_update_view(VIEW_BASE,
- UPDATE_RECENT, media_id);
+ viewmgr_update_view(VIEW_BASE, UPDATE_RECENT, media_id);
}
- } else
- viewmgr_push_view(VIEW_BASE);
- free(media_id);
- free(caller_id);
+ } else if (strcmp("org.tizen.myfiles", caller_id) == 0) {
+ char *file_path = NULL;
+ char *media_type = NULL;
+
+ app_control_get_extra_data(app_control, "Path", &file_path);
+ app_control_get_extra_data(app_control, "Media type", &media_type);
+
+ if (file_path == NULL) {
+ _DBG("file_path is NULL");
+ app_control_get_uri(app_control, &file_path);
+ }
+
+ if (file_path != NULL) {
+ if (media_type != NULL) {
+ _open_media_file(media_type, file_path);
+ }
+ }
+ }
+ if (media_id)
+ free(media_id);
+ if (caller_id)
+ free(caller_id);
+
}
static void _pause(void *data)