From 80e88c382f5fad0fdf91de9290767c8ba83ba967 Mon Sep 17 00:00:00 2001 From: hj kim Date: Fri, 15 Feb 2019 13:12:02 +0900 Subject: [PATCH] make api for setting metadata and remove duplicated code Change-Id: I7a9826159f9b24b020d80e504d99a0d5c77eb519 --- include/media_controller_private.h | 1 + src/media_controller_metadata.c | 60 +++++++++++++++++++++++++++++++++++ src/media_controller_playlist.c | 52 ++---------------------------- src/media_controller_server.c | 65 +------------------------------------- 4 files changed, 65 insertions(+), 113 deletions(-) diff --git a/include/media_controller_private.h b/include/media_controller_private.h index 97a44bf..107e932 100755 --- a/include/media_controller_private.h +++ b/include/media_controller_private.h @@ -404,6 +404,7 @@ int mc_ipc_send_message_to_server(mc_msg_type_e msg_type, mc_priv_type_e priv_ty int mc_ipc_service_connect(mc_priv_type_e type); int _mc_playlist_update(mc_priv_type_e type, const char *controller_name, mc_playlist_h playlist); +int _mc_metadata_set(mc_metadata_h metadata, mc_meta_e attribute, const char *value); #ifdef __cplusplus } diff --git a/src/media_controller_metadata.c b/src/media_controller_metadata.c index de5e69d..13d0b0e 100755 --- a/src/media_controller_metadata.c +++ b/src/media_controller_metadata.c @@ -17,6 +17,66 @@ #include "media_controller_private.h" #include "media_controller_db.h" +int _mc_metadata_set(mc_metadata_h metadata, mc_meta_e attribute, const char *value) +{ + media_controller_metadata_s *_metadata = (media_controller_metadata_s *)metadata; + + mc_retvm_if(_metadata == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); + + mc_secure_debug("attribute [%d] value [%s]", attribute, value); + + switch (attribute) { + case MC_META_MEDIA_TITLE: + MC_SAFE_FREE(_metadata->title); + _metadata->title = g_strdup(value); + break; + case MC_META_MEDIA_ARTIST: + MC_SAFE_FREE(_metadata->artist); + _metadata->artist = g_strdup(value); + break; + case MC_META_MEDIA_ALBUM: + MC_SAFE_FREE(_metadata->album); + _metadata->album = g_strdup(value); + break; + case MC_META_MEDIA_AUTHOR: + MC_SAFE_FREE(_metadata->author); + _metadata->author = g_strdup(value); + break; + case MC_META_MEDIA_GENRE: + MC_SAFE_FREE(_metadata->genre); + _metadata->genre = g_strdup(value); + break; + case MC_META_MEDIA_DURATION: + MC_SAFE_FREE(_metadata->duration); + _metadata->duration = g_strdup(value); + break; + case MC_META_MEDIA_DATE: + MC_SAFE_FREE(_metadata->date); + _metadata->date = g_strdup(value); + break; + case MC_META_MEDIA_COPYRIGHT: + MC_SAFE_FREE(_metadata->copyright); + _metadata->copyright = g_strdup(value); + break; + case MC_META_MEDIA_DESCRIPTION: + MC_SAFE_FREE(_metadata->description); + _metadata->description = g_strdup(value); + break; + case MC_META_MEDIA_TRACK_NUM: + MC_SAFE_FREE(_metadata->track_num); + _metadata->track_num = g_strdup(value); + break; + case MC_META_MEDIA_PICTURE: + MC_SAFE_FREE(_metadata->picture); + _metadata->picture = g_strdup(value); + break; + default: + mc_error("Invalid Parameter [%d]", attribute); + return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER; + } + + return MEDIA_CONTROLLER_ERROR_NONE; +} int mc_metadata_clone(mc_metadata_h src, mc_metadata_h *dst) { diff --git a/src/media_controller_playlist.c b/src/media_controller_playlist.c index 781f8fb..fc0c0ef 100755 --- a/src/media_controller_playlist.c +++ b/src/media_controller_playlist.c @@ -167,58 +167,12 @@ int mc_playlist_update_item(mc_playlist_h playlist, const char *index, mc_meta_e mc_retvm_if(_playlist_item->metadata == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid playlist item"); } - switch (attribute) { - case MC_META_MEDIA_TITLE: - MC_SAFE_FREE(_playlist_item->metadata->title); - _playlist_item->metadata->title = g_strdup(value); - break; - case MC_META_MEDIA_ARTIST: - MC_SAFE_FREE(_playlist_item->metadata->artist); - _playlist_item->metadata->artist = g_strdup(value); - break; - case MC_META_MEDIA_ALBUM: - MC_SAFE_FREE(_playlist_item->metadata->album); - _playlist_item->metadata->album = g_strdup(value); - break; - case MC_META_MEDIA_AUTHOR: - MC_SAFE_FREE(_playlist_item->metadata->author); - _playlist_item->metadata->author = g_strdup(value); - break; - case MC_META_MEDIA_GENRE: - MC_SAFE_FREE(_playlist_item->metadata->genre); - _playlist_item->metadata->genre = g_strdup(value); - break; - case MC_META_MEDIA_DURATION: - MC_SAFE_FREE(_playlist_item->metadata->duration); - _playlist_item->metadata->duration = g_strdup(value); - break; - case MC_META_MEDIA_DATE: - MC_SAFE_FREE(_playlist_item->metadata->date); - _playlist_item->metadata->date = g_strdup(value); - break; - case MC_META_MEDIA_COPYRIGHT: - MC_SAFE_FREE(_playlist_item->metadata->copyright); - _playlist_item->metadata->copyright = g_strdup(value); - break; - case MC_META_MEDIA_DESCRIPTION: - MC_SAFE_FREE(_playlist_item->metadata->description); - _playlist_item->metadata->description = g_strdup(value); - break; - case MC_META_MEDIA_TRACK_NUM: - MC_SAFE_FREE(_playlist_item->metadata->track_num); - _playlist_item->metadata->track_num = g_strdup(value); - break; - case MC_META_MEDIA_PICTURE: - MC_SAFE_FREE(_playlist_item->metadata->picture); - _playlist_item->metadata->picture = g_strdup(value); - break; - default: - mc_error("Invalid Parameter [%d]", attribute); - + ret = _mc_metadata_set((mc_playlist_h)_playlist_item->metadata, attribute, value); + if (ret != MEDIA_CONTROLLER_ERROR_NONE) { if (!found) __release_playlist_item(_playlist_item); - return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER; + return ret; } if (!found) diff --git a/src/media_controller_server.c b/src/media_controller_server.c index cd3135b..1a8327e 100755 --- a/src/media_controller_server.c +++ b/src/media_controller_server.c @@ -799,70 +799,7 @@ int mc_server_set_metadata(mc_server_h server, mc_meta_e attribute, const char * mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - mc_secure_debug("meta data set attribute [%d] value [%s]", attribute, value); - - switch (attribute) { - case MC_META_MEDIA_TITLE: - MC_SAFE_FREE(mc_server->metadata->title); - if (value != NULL) - mc_server->metadata->title = strdup(value); - break; - case MC_META_MEDIA_ARTIST: - MC_SAFE_FREE(mc_server->metadata->artist); - if (value != NULL) - mc_server->metadata->artist = strdup(value); - break; - case MC_META_MEDIA_ALBUM: - MC_SAFE_FREE(mc_server->metadata->album); - if (value != NULL) - mc_server->metadata->album = strdup(value); - break; - case MC_META_MEDIA_AUTHOR: - MC_SAFE_FREE(mc_server->metadata->author); - if (value != NULL) - mc_server->metadata->author = strdup(value); - break; - case MC_META_MEDIA_GENRE: - MC_SAFE_FREE(mc_server->metadata->genre); - if (value != NULL) - mc_server->metadata->genre = strdup(value); - break; - case MC_META_MEDIA_DURATION: - MC_SAFE_FREE(mc_server->metadata->duration); - if (value != NULL) - mc_server->metadata->duration = strdup(value); - break; - case MC_META_MEDIA_DATE: - MC_SAFE_FREE(mc_server->metadata->date); - if (value != NULL) - mc_server->metadata->date = strdup(value); - break; - case MC_META_MEDIA_COPYRIGHT: - MC_SAFE_FREE(mc_server->metadata->copyright); - if (value != NULL) - mc_server->metadata->copyright = strdup(value); - break; - case MC_META_MEDIA_DESCRIPTION: - MC_SAFE_FREE(mc_server->metadata->description); - if (value != NULL) - mc_server->metadata->description = strdup(value); - break; - case MC_META_MEDIA_TRACK_NUM: - MC_SAFE_FREE(mc_server->metadata->track_num); - if (value != NULL) - mc_server->metadata->track_num = strdup(value); - break; - case MC_META_MEDIA_PICTURE: - MC_SAFE_FREE(mc_server->metadata->picture); - if (value != NULL) - mc_server->metadata->picture = strdup(value); - break; - default: - mc_error("Invalid Parameter [%d]", attribute); - return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER; - } - - return MEDIA_CONTROLLER_ERROR_NONE; + return _mc_metadata_set((mc_playlist_h)mc_server->metadata, attribute, value); } int mc_server_update_metadata(mc_server_h server) -- 2.7.4