From 39ba6621ebeb3ab0c2fecdbab557c633d7cab26b Mon Sep 17 00:00:00 2001 From: Dongyoung Kim Date: Wed, 11 Mar 2015 13:53:47 +0900 Subject: [PATCH] [Media Content] bug fixed for TCT Change-Id: I1c528eeac0f07b683b700852b0b40006cbd61ee2 --- src/content/content_api.js | 84 ++++++++--------------- src/content/content_instance.cc | 85 ++++------------------- src/content/content_manager.cc | 118 ++++++++++---------------------- src/content/content_manager.h | 4 +- 4 files changed, 81 insertions(+), 210 deletions(-) diff --git a/src/content/content_api.js b/src/content/content_api.js index c173839a..c18671f0 100755 --- a/src/content/content_api.js +++ b/src/content/content_api.js @@ -90,7 +90,7 @@ function PlaylistItem(content,playlist_member_id) { var member_id = playlist_member_id; Object.defineProperties(this, { 'content': { writable: false, value: content, enumerable: true }, - 'member_id': { + 'member_id': {enumerable: false, set: function(v) { if (v != null) member_id = v}, get: function() { return member_id; } } @@ -102,7 +102,6 @@ Playlist.prototype.add = function(item) { var args = validator_.validateArgs(arguments, [ {'name' : 'item', 'type': types_.PLATFORM_OBJECT, 'values': Content, 'optional' : false, 'nullable' : false} ]); - console.log("[dykim]Playlist add entered1"); var nativeParam = { 'playlist_id': this.id }; @@ -137,7 +136,7 @@ Playlist.prototype.remove = function(item) { Playlist.prototype.removeBatch = function(items) { var args = validator_.validateArgs(arguments, [ {'name' : 'items', 'type': types_.ARRAY}, - {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, + {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} ]); @@ -149,16 +148,13 @@ Playlist.prototype.removeBatch = function(items) { if (args['items']) { for (var i = 0; i < args.items.length; i++) { var c = args.items[i]; - console.log("member_id:" + c.member_id); nativeParam.members.push(c.member_id); } - console.log("nativeParam['members']:" + nativeParam["members"]); } try { var syncResult = callNativeWithCallback('ContentPlaylist_removeBatch', nativeParam, function(result) { if (result.status == 'success') { - console.log("[dykim]ContentPlaylist_removeBatch successCallback entered"); args.successCallback(); } else if(result.status == 'error') { @@ -201,14 +197,10 @@ Playlist.prototype.get = function() { var syncResult = callNativeWithCallback('ContentPlaylist_get', nativeParam, function(result) { if (result.status == 'success') { var items = []; - console.log("successCallback Playlist get:%d",result.value.length); for (var i = 0; i < result.value.length; i++) { var c = result.value[i]; - console.log("name:" + c.name); - console.log("playlist_member_id:" + c.playlist_member_id); - var content = new Content(c.id, c.name); + var content = createContent(c); var item = new PlaylistItem(content,c.playlist_member_id); - console.log("item :" + item.member_id); items.push(item); } args.successCallback(items); @@ -227,8 +219,8 @@ Playlist.prototype.get = function() { Playlist.prototype.addBatch = function() { var args = validator_.validateArgs(arguments, [ {'name' : 'items', 'type': types_.ARRAY}, - {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, - {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} + {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, + {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} ]); var nativeParam = { @@ -255,8 +247,8 @@ Playlist.prototype.addBatch = function() { Playlist.prototype.setOrder = function() { var args = validator_.validateArgs(arguments, [ {'name' : 'items', 'type': types_.ARRAY}, - {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, - {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} + {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, + {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} ]); var nativeParam = { @@ -267,7 +259,6 @@ Playlist.prototype.setOrder = function() { if (args['items']) { for (var i = 0; i < args.items.length; i++) { var c = args.items[i]; - console.log("member_id:" + c.member_id); nativeParam.members.push(c.member_id); } } @@ -291,23 +282,20 @@ Playlist.prototype.move = function(item, delta) { var args = validator_.validateArgs(arguments, [ {'name' : 'item', 'type': types_.PLATFORM_OBJECT, 'values': PlaylistItem}, {'name' : 'delta', 'type': types_.LONG}, - {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, - {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} + {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, + {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} ]); var nativeParam = { 'playlist_id': this.id, - 'member_id': args.item.member_id + 'member_id': args.item.member_id, + 'delta' : args.delta }; - - if (args['delta']) { - nativeParam['delta'] = delta; - } - + try { + var syncResult = callNativeWithCallback('ContentPlaylist_move', nativeParam, function(result) { if (result.status == 'success') { - console.log("[dykim]ContentPlaylist_move successCallback entered"); args.successCallback(); } else if(result.status == 'error') { @@ -428,7 +416,7 @@ function AudioContentLyrics(type, timestamps, texts) { function AudioContent(obj, album, genres, artists, composers, copyright, bitrate, trackNumber, duration) { - var lyrics_ = undefined; + var lyrics_ = null; function getLyrics(contentURI) { var nativeParam = { 'contentURI': contentURI @@ -467,6 +455,9 @@ function AudioContent(obj, album, genres, artists, composers, copyright, if(lyrics_ === undefined) { getLyrics(obj.contentURI); } + else if(lyrics_ === null) { + lyrics_ = undefined; + } return lyrics_; } } @@ -498,7 +489,7 @@ function createContent(c) { } else if (c.type === "VIDEO") { var video = new VideoContent(content, - c.geo, + c.geolocation, c.album, c.artists, c.duration, @@ -526,14 +517,12 @@ function ContentManager() { // constructor of ContentManager } - +//void update (Content content) ContentManager.prototype.update = function(content) { var args = validator_.validateArgs(arguments, [ - {'name' : 'content', 'type': types_.PLATFORM_OBJECT} + {'name' : 'content', 'type': types_.PLATFORM_OBJECT, 'values': Content} ]); - console.log("[dykim]update entered1 id:" + content.id); - var nativeParam = { - }; + var nativeParam = {}; if (args['content']) { nativeParam['content'] = args.content; } @@ -547,8 +536,8 @@ ContentManager.prototype.update = function(content) { ContentManager.prototype.updateBatch = function(contents) { var args = validator_.validateArgs(arguments, [ {'name' : 'contents', 'type': types_.ARRAY}, - {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, - {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} + {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, + {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} ]); var nativeParam = { @@ -571,7 +560,6 @@ ContentManager.prototype.updateBatch = function(contents) { } ContentManager.prototype.getDirectories = function(successCallback) { - console.log("[dykim]getDirectories entered"); var args = validator_.validateArgs(arguments, [ {'name' : 'successCallback', 'type': types_.FUNCTION, optional : false, nullable : false}, {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} @@ -583,7 +571,6 @@ ContentManager.prototype.getDirectories = function(successCallback) { try { var syncResult = callNativeWithCallback('ContentManager_getDirectories', nativeParam, function(result) { if (result.status == 'success') { - console.log("[dykim]getDirectories successCallback entered"); var dirs = []; for (var i = 0; i < result.value.length; i++) { @@ -619,8 +606,8 @@ ContentManager.prototype.find = function(successCallback) { {'name' : 'directoryId', 'type': types_.STRING, optional : true, nullable : true}, {'name' : 'filter', 'type': types_.DICTIONARY, optional : true, nullable : true}, {'name' : 'sortMode', 'type': types_.DICTIONARY, optional : true, nullable : true}, - {'name' : 'count', 'type': types_.LONG, optional : true}, - {'name' : 'offset', 'type': types_.LONG, optional : true} + {'name' : 'count', 'type': types_.UNSIGNED_LONG, optional : true}, + {'name' : 'offset', 'type': types_.UNSIGNED_LONG, optional : true} ]); var nativeParam = { @@ -645,7 +632,6 @@ ContentManager.prototype.find = function(successCallback) { var syncResult = callNativeWithCallback('ContentManager_find', nativeParam, function(result) { if (result.status == 'success') { var contents = []; - console.log("successCallback find:%d",result.value.length); for ( var i = 0; i < result.value.length; i++) { var c = result.value[i]; @@ -668,11 +654,10 @@ ContentManager.prototype.find = function(successCallback) { } ContentManager.prototype.scanFile = function(contentURI) { - console.log("[dykim]scanFile entered"); var args = validator_.validateArgs(arguments, [ {'name' : 'contentURI', 'type': types_.STRING}, - {'name' : 'successCallback', 'type': types_.FUNCTION, 'values' : ['onsuccess'], optional : true, nullable : true}, - {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} + {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, + {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} ]); var nativeParam = { @@ -699,7 +684,6 @@ ContentManager.prototype.scanFile = function(contentURI) { } ContentManager.prototype.setChangeListener = function(changeCallback) { - console.log("[dykim]setChangeListener entered"); var args = validator_.validateArgs(arguments, [ {'name' : 'changeCallback', 'type': types_.LISTENER, 'values' : ['oncontentadded', 'oncontentupdated', 'oncontentremoved']} ]); @@ -709,19 +693,16 @@ ContentManager.prototype.setChangeListener = function(changeCallback) { try { var syncResult = callNativeWithCallback('ContentManager_setChangeListener', nativeParam, function(result) { if (result.status == 'oncontentadded') { - console.log("[dykim]setChangeListener oncontentadded"); var c = result['value']; var content = createContent(c); args.changeCallback.oncontentadded(content); } if (result.status == 'oncontentupdated') { - console.log("[dykim]setChangeListener oncontentupdated"); var c = result['value']; var content = createContent(c); args.changeCallback.oncontentupdated(content); } if (result.status == 'oncontentremoved') { - console.log("[dykim]setChangeListener oncontentremoved"); var contentId = result['value']; args.changeCallback.oncontentremoved(contentId); } @@ -730,7 +711,6 @@ ContentManager.prototype.setChangeListener = function(changeCallback) { } catch(e) { throw e; } - console.log("[dykim]setChangeListener ended"); } ContentManager.prototype.unsetChangeListener = function() { @@ -744,7 +724,6 @@ ContentManager.prototype.unsetChangeListener = function() { } ContentManager.prototype.getPlaylists = function(successCallback) { - console.log("[dykim]getPlaylists start"); var args = validator_.validateArgs(arguments, [ {'name' : 'successCallback', 'type': types_.FUNCTION}, {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} @@ -772,11 +751,9 @@ ContentManager.prototype.getPlaylists = function(successCallback) { } catch(e) { throw e; } - console.log("[dykim]getPlaylists end"); } ContentManager.prototype.createPlaylist = function(name, successCallback) { - console.log("[dykim]createPlaylist start"); var args = validator_.validateArgs(arguments, [ {'name' : 'name', 'type': types_.STRING}, {'name' : 'successCallback', 'type': types_.FUNCTION}, @@ -810,11 +787,10 @@ ContentManager.prototype.createPlaylist = function(name, successCallback) { } ContentManager.prototype.removePlaylist = function(id) { - console.log("[dykim]removePlaylist start"); var args = validator_.validateArgs(arguments, [ {'name' : 'id', 'type': types_.STRING}, - {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, - {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} + {'name' : 'successCallback', 'type': types_.FUNCTION, optional : true, nullable : true}, + {'name' : 'errorCallback', 'type': types_.FUNCTION, optional : true, nullable : true} ]); var nativeParam = { @@ -834,8 +810,6 @@ ContentManager.prototype.removePlaylist = function(id) { } catch(e) { throw e; } - - console.log("[dykim]removePlaylist end"); } diff --git a/src/content/content_instance.cc b/src/content/content_instance.cc index 36111194..ed6cf97d 100755 --- a/src/content/content_instance.cc +++ b/src/content/content_instance.cc @@ -77,7 +77,6 @@ static gboolean CompletedCallback(const std::shared_ptr& user picojson::value::object reply; reply["value"] = user_data->result; - LoggerE("CompletedCallback...(%d)" , user_data->isSuccess); ReplyAsync(user_data->instance,user_data->cbType,user_data->callbackId,user_data->isSuccess,reply); return false; @@ -89,18 +88,15 @@ static void* WorkThread(const std::shared_ptr& user_data) { ContentCallbacks cbType = user_data->cbType; switch(cbType) { case ContentManagerUpdatebatchCallback: { - LoggerE("ContentManagerUpdatebatchCallback..."); ContentManager::getInstance()->updateBatch(user_data->args); break; } case ContentManagerGetdirectoriesCallback: { - LoggerE("ContentManagerGetdirectoriesCallback..."); ContentManager::getInstance()->getDirectories(user_data); break; } case ContentManagerFindCallback: { ContentManager::getInstance()->find(user_data); - LoggerE("ContentManagerFindCallback...:%s", user_data->result.serialize().c_str()); break; } case ContentManagerScanfileCallback: { @@ -109,12 +105,10 @@ static void* WorkThread(const std::shared_ptr& user_data) { break; } case ContentManagerGetplaylistsCallback: { - LoggerE("ContentManagerGetplaylistsCallback..."); ContentManager::getInstance()->getPlaylists(user_data); break; } case ContentManagerCreateplaylistCallback: { - LoggerE("ContentManagerCreateplaylistCallback..."); if (user_data->args.contains("sourcePlaylist")) { picojson::object playlist = user_data->args.get("sourcePlaylist").get(); user_data->isSuccess = true; @@ -134,28 +128,26 @@ static void* WorkThread(const std::shared_ptr& user_data) { break; } case ContentManagerPlaylistAddbatchCallback: { - LoggerE("ContentManagerPlaylistAddBatchCallback..."); ContentManager::getInstance()->playlistAddbatch(user_data); break; } case ContentManagerPlaylistGetCallback: { - LoggerE("ContentManagerPlaylistGetCallback..."); ContentManager::getInstance()->playlistGet(user_data); break; } case ContentManagerPlaylistRemovebatchCallback: { - LoggerE("ContentManagerPlaylistGetCallback..."); ContentManager::getInstance()->playlistRemovebatch(user_data); break; } case ContentManagerPlaylistSetOrderCallback: { - LoggerE("ContentManagerPlaylistSetOrderCallback..."); ContentManager::getInstance()->playlistSetOrder(user_data); break; //ContentManagerPlaylistSetOrderCallback } case ContentManagerPlaylistMoveCallback: { - LoggerE("ContentManagerPlaylistMove..."); + std::string playlist_id = user_data->args.get("playlist_id").get(); + double member_id = user_data->args.get("member_id").get(); + double delta = user_data->args.get("delta").get(); ContentManager::getInstance()->playlistMove(user_data); break; } @@ -178,8 +170,7 @@ static void changedContentCallback(media_content_error_e error, int pid, media_c char *uuid, char *path, char *mime_type, void* user_data) { int ret; - std::shared_ptr *cbData = (std::shared_ptr*)(user_data); - LoggerE("ContentInstance::ContentManagerScanfile"); + ReplyCallbackData *cbData = static_cast(user_data); picojson::object reply; picojson::object o; @@ -190,7 +181,7 @@ static void changedContentCallback(media_content_error_e error, int pid, media_c std::string id(uuid); ret = media_info_get_media_from_db(id.c_str(), &media); if (ret == MEDIA_CONTENT_ERROR_NONE && media != NULL) { - ContentManager::getInstance()->contentToJson(media, o); + contentToJson(media, o); reply["value"] = picojson::value(o); if (update_type == MEDIA_CONTENT_INSERT) { reply["status"] = picojson::value("oncontentadded"); @@ -209,9 +200,10 @@ static void changedContentCallback(media_content_error_e error, int pid, media_c else { return; } - reply["callbackId"] = picojson::value(static_cast((*cbData)->callbackId)); + reply["callbackId"] = picojson::value(static_cast(cbData->callbackId)); picojson::value result = picojson::value(reply); - (*cbData)->instance->PostMessage(result.serialize().c_str()); + cbData->instance->PostMessage(result.serialize().c_str()); + delete cbData; } @@ -223,7 +215,6 @@ static void changedContentCallback(media_content_error_e error, int pid, media_c void ContentInstance::ContentManagerUpdate(const picojson::value& args, picojson::object& out) { - LoggerE("ContentInstance::ContentManagerUpdate"); int ret; if(ContentManager::getInstance()->isConnected()) { ret = ContentManager::getInstance()->update(args); @@ -253,7 +244,6 @@ void ContentInstance::ContentManagerUpdatebatch(const picojson::value& args, pic common::TaskQueue::GetInstance().Queue(WorkThread, CompletedCallback, cbData); } void ContentInstance::ContentManagerGetdirectories(const picojson::value& args, picojson::object& out) { - dlog_print(DLOG_INFO, "DYKIM", "ContentInstance::getDirectories started"); CHECK_EXIST(args, "callbackId", out) double callbackId = args.get("callbackId").get(); @@ -271,19 +261,10 @@ void ContentInstance::ContentManagerGetdirectories(const picojson::value& args, } common::TaskQueue::GetInstance().Queue(WorkThread, CompletedCallback, cbData); - // call ReplyAsync in later (Asynchronously) - - // if success - //ReportSuccess(out); - // if error - // ReportError(out); } void ContentInstance::ContentManagerFind(const picojson::value& args, picojson::object& out) { CHECK_EXIST(args, "callbackId", out) - //double count = args.get("count").get(); - //double offset = args.get("offset").get(); - double callbackId = args.get("callbackId").get(); auto cbData = std::shared_ptr(new ReplyCallbackData); @@ -298,17 +279,9 @@ void ContentInstance::ContentManagerFind(const picojson::value& args, picojson:: } common::TaskQueue::GetInstance().Queue(WorkThread, CompletedCallback, cbData); - // implement it - - // call ReplyAsync in later (Asynchronously) - - // if success - // ReportSuccess(out); - // if error - // ReportError(out); + } void ContentInstance::ContentManagerScanfile(const picojson::value& args, picojson::object& out) { - LoggerE("ContentInstance::ContentManagerScanfile"); CHECK_EXIST(args, "callbackId", out) CHECK_EXIST(args, "contentURI", out) @@ -324,20 +297,14 @@ void ContentInstance::ContentManagerScanfile(const picojson::value& args, picojs cbData->cbType = ContentManagerErrorCallback; } common::TaskQueue::GetInstance().Queue(WorkThread, CompletedCallback, cbData); - // implement it - // call ReplyAsync in later (Asynchronously) - - // if success - // ReportSuccess(out); - // if error - // ReportError(out); } void ContentInstance::ContentManagerSetchangelistener(const picojson::value& args, picojson::object& out) { CHECK_EXIST(args, "callbackId", out) double callbackId = args.get("callbackId").get(); +// std::shared_ptrcbData(new ReplyCallbackData); - std::shared_ptrcbData(new ReplyCallbackData); + ReplyCallbackData *cbData = new ReplyCallbackData(); cbData->callbackId = callbackId; cbData->instance = this; @@ -349,28 +316,15 @@ void ContentInstance::ContentManagerSetchangelistener(const picojson::value& arg cbData->cbType = ContentManagerErrorCallback; } - ContentManager::getInstance()->setChangeListener(changedContentCallback,static_cast(&cbData)); - - // implement it - - // call ReplyAsync in later (Asynchronously) + ContentManager::getInstance()->setChangeListener(changedContentCallback,static_cast(cbData)); - // if success - // ReportSuccess(out); - // if error - // ReportError(out); } void ContentInstance::ContentManagerUnsetchangelistener(const picojson::value& args, picojson::object& out) { ContentManager::getInstance()->unSetChangeListener(); - // if success - // ReportSuccess(out); - // if error - // ReportError(out); } void ContentInstance::ContentManagerGetplaylists(const picojson::value& args, picojson::object& out) { - LoggerE("ContentInstance::ContentManagerGetplaylists"); CHECK_EXIST(args, "callbackId", out) double callbackId = args.get("callbackId").get(); @@ -392,7 +346,6 @@ void ContentInstance::ContentManagerGetplaylists(const picojson::value& args, pi } void ContentInstance::ContentManagerCreateplaylist(const picojson::value& args, picojson::object& out) { - LoggerE("ContentInstance::ContentManagerCreateplaylist"); CHECK_EXIST(args, "callbackId", out) CHECK_EXIST(args, "name", out) @@ -414,8 +367,6 @@ void ContentInstance::ContentManagerCreateplaylist(const picojson::value& args, common::TaskQueue::GetInstance().Queue(WorkThread, CompletedCallback, cbData); } void ContentInstance::ContentManagerRemoveplaylist(const picojson::value& args, picojson::object& out) { - LoggerE("ContentInstance::ContentManagerRemoveplaylist"); - double callbackId = args.get("callbackId").get(); auto cbData = std::shared_ptr(new ReplyCallbackData); @@ -433,20 +384,13 @@ void ContentInstance::ContentManagerRemoveplaylist(const picojson::value& args, // implement it common::TaskQueue::GetInstance().Queue(WorkThread, CompletedCallback, cbData); - - // if success - // ReportSuccess(out); - // if error - // ReportError(out); } void ContentInstance::ContentManagerPlaylistAdd(const picojson::value& args, picojson::object& out) { - LoggerE("ContentInstance::ContentManagerPlaylistAdd"); int ret; if(ContentManager::getInstance()->isConnected()) { std::string playlist_id = args.get("playlist_id").get(); std::string content_id = args.get("content_id").get(); - LoggerE("playlist:%s / content:%s", playlist_id.c_str() , content_id.c_str()); ret = ContentManager::getInstance()->playlistAdd(playlist_id, content_id); if(ret != MEDIA_CONTENT_ERROR_NONE) { ReportError(ContentManager::getInstance()->convertError(ret),out); @@ -495,12 +439,10 @@ void ContentInstance::ContentManagerPlaylistGet(const picojson::value& args, pic } void ContentInstance::ContentManagerPlaylistRemove(const picojson::value& args, picojson::object& out) { - LoggerE("ContentInstance::ContentManagerPlaylistRemove"); int ret; if(ContentManager::getInstance()->isConnected()) { std::string playlist_id = args.get("playlist_id").get(); int member_id = args.get("member_id").get(); - LoggerE("playlist:%s / member_id:%d", playlist_id.c_str() , member_id); ret = ContentManager::getInstance()->playlistRemove(playlist_id, member_id); if(ret != MEDIA_CONTENT_ERROR_NONE) { ReportError(ContentManager::getInstance()->convertError(ret),out); @@ -556,7 +498,7 @@ void ContentInstance::ContentManagerPlaylistMove(const picojson::value& args, pi cbData->callbackId = callbackId; cbData->instance = this; cbData->args = args; - + if(ContentManager::getInstance()->isConnected()) { cbData->cbType = ContentManagerPlaylistMoveCallback; } @@ -567,7 +509,6 @@ void ContentInstance::ContentManagerPlaylistMove(const picojson::value& args, pi } void ContentInstance::ContentManagerAudioGetLyrics(const picojson::value& args, picojson::object& out) { - LoggerE("ContentInstance::ContentManagerAudioGetLyrics"); int ret; picojson::object lyrics; if(ContentManager::getInstance()->isConnected()) { diff --git a/src/content/content_manager.cc b/src/content/content_manager.cc index 4ea9cc92..df77c4b7 100755 --- a/src/content/content_manager.cc +++ b/src/content/content_manager.cc @@ -105,7 +105,7 @@ static std::string convertPathToUri(const string str) { } -static void contentToJson(media_info_h info, picojson::object& o) { +void contentToJson(media_info_h info, picojson::object& o) { int ret; int tmpInt = 0; bool tmpBool = false; @@ -113,7 +113,6 @@ static void contentToJson(media_info_h info, picojson::object& o) { time_t tmpDate; double tmpDouble; long long unsigned int tmpLong; - media_content_type_e type; ret == media_info_get_media_type(info, &type); if(ret != MEDIA_CONTENT_ERROR_NONE) { @@ -141,7 +140,6 @@ static void contentToJson(media_info_h info, picojson::object& o) { if(MEDIA_CONTENT_ERROR_NONE == image_meta_get_width(img, &tmpInt) ) { o["width"] = picojson::value(static_cast(tmpInt)); } - if(MEDIA_CONTENT_ERROR_NONE == image_meta_get_height(img, &tmpInt) ) { o["height"] = picojson::value(static_cast(tmpInt)); } @@ -154,9 +152,7 @@ static void contentToJson(media_info_h info, picojson::object& o) { if(MEDIA_CONTENT_ERROR_NONE == media_info_get_longitude(info, &tmpDouble) ) { geo["longitude"] = picojson::value(tmpDouble); } - o["geolocation"] = picojson::value(geo); - std::string ori; media_content_orientation_e orientation; if(MEDIA_CONTENT_ERROR_NONE == image_meta_get_orientation(img, &orientation) ) { @@ -299,17 +295,19 @@ static void contentToJson(media_info_h info, picojson::object& o) { if (MEDIA_CONTENT_ERROR_NONE == audio_meta_get_bit_rate(audio, &tmpInt)){ o["bitrate"] = picojson::value(static_cast(tmpInt)); } - if (MEDIA_CONTENT_ERROR_NONE == audio_meta_get_track_num (audio, &tmpStr)){ + if (MEDIA_CONTENT_ERROR_NONE == audio_meta_get_track_num(audio, &tmpStr)){ if(tmpStr) { - o["trackNumber"] = picojson::value(static_cast(std::stoi(tmpStr))); + o["trackNumber"] = picojson::value(static_cast(std::atoi(tmpStr))); free(tmpStr); tmpStr = NULL; } + else { + o["trackNumber"] = picojson::value(); + } } if (MEDIA_CONTENT_ERROR_NONE == audio_meta_get_duration(audio, &tmpInt) ) { o["duration"] = picojson::value(static_cast(tmpInt)); } - } } else { @@ -325,7 +323,6 @@ static void contentToJson(media_info_h info, picojson::object& o) { tmpStr = NULL; } } - ret = media_info_get_display_name(info, &tmpStr); if(ret == MEDIA_CONTENT_ERROR_NONE) { if(tmpStr) { @@ -334,7 +331,7 @@ static void contentToJson(media_info_h info, picojson::object& o) { tmpStr = NULL; } } - + ret = media_info_get_mime_type(info, &tmpStr); if(ret == MEDIA_CONTENT_ERROR_NONE) { if(tmpStr) { @@ -343,7 +340,6 @@ static void contentToJson(media_info_h info, picojson::object& o) { tmpStr = NULL; } } - ret = media_info_get_title(info, &tmpStr); if(ret == MEDIA_CONTENT_ERROR_NONE) { if(tmpStr) { @@ -360,7 +356,6 @@ static void contentToJson(media_info_h info, picojson::object& o) { tmpStr = NULL; } } - //dykim. thumbnailURIs ret = media_info_get_thumbnail_path(info, &tmpStr); if(ret == MEDIA_CONTENT_ERROR_NONE) { if(tmpStr) { @@ -370,7 +365,6 @@ static void contentToJson(media_info_h info, picojson::object& o) { tmpStr = NULL; } } - ret = media_info_get_description(info, &tmpStr); if(ret == MEDIA_CONTENT_ERROR_NONE) { if(tmpStr) { @@ -379,22 +373,18 @@ static void contentToJson(media_info_h info, picojson::object& o) { tmpStr = NULL; } } - ret = media_info_get_rating(info, &tmpInt); if(ret == MEDIA_CONTENT_ERROR_NONE) { o["rating"] = picojson::value(static_cast(tmpInt)); } - ret = media_info_get_size(info, &tmpLong); if(ret == MEDIA_CONTENT_ERROR_NONE) { o["size"] = picojson::value(static_cast(tmpLong)); } - ret = media_info_get_favorite(info, &tmpBool); if(ret == MEDIA_CONTENT_ERROR_NONE) { o["isFavorite"] = picojson::value(tmpBool); } - ret = media_info_get_modified_time(info, &tmpDate); if(ret == MEDIA_CONTENT_ERROR_NONE) { std::stringstream str_date; @@ -404,7 +394,6 @@ static void contentToJson(media_info_h info, picojson::object& o) { } static int setContent(media_info_h media, picojson::value content) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::setContent start"); int ret; std::string name = content.get("name").to_str(); @@ -443,7 +432,6 @@ static int setContent(media_info_h media, picojson::value content) { } if (type == MEDIA_CONTENT_TYPE_IMAGE || type == MEDIA_CONTENT_TYPE_VIDEO) { picojson::value geo = content.get("geolocation"); - double latitude = atof(geo.get("latitude").to_str().c_str()); double longitude = atof(geo.get("longitude ").to_str().c_str()); ret = media_info_set_latitude(media, latitude); @@ -464,17 +452,13 @@ static int setContent(media_info_h media, picojson::value content) { } static bool media_foreach_directory_cb(media_folder_h folder, void *user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::media_foreach_directory_cb start"); std::vector *dir = static_cast*>(user_data); media_folder_h nfolder = NULL; media_folder_clone (&nfolder, folder); dir->push_back(nfolder); - - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::media_foreach_directory_cb end"); } static bool media_foreach_content_cb(media_info_h media, void *user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::media_foreach_content_cb start."); picojson::value::array *contents = static_cast(user_data); picojson::value::object o; @@ -484,7 +468,6 @@ static bool media_foreach_content_cb(media_info_h media, void *user_data) { } static bool playlist_foreach_cb(media_playlist_h playlist, void *user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlist_foreach_cb start"); picojson::value::array *playlists = static_cast(user_data); picojson::value::object o; @@ -499,7 +482,7 @@ static bool playlist_foreach_cb(media_playlist_h playlist, void *user_data) { o["id"] = picojson::value(std::to_string(id)); } else { - dlog_print(DLOG_INFO, "DYKIM", "Invalid ID for playlist."); + LoggerD("Invalid ID for playlist."); } if( media_playlist_get_thumbnail_path(playlist, &thumb_path) == MEDIA_CONTENT_ERROR_NONE) { if (thumb_path != NULL) { @@ -511,41 +494,36 @@ static bool playlist_foreach_cb(media_playlist_h playlist, void *user_data) { } } else { - dlog_print(DLOG_INFO, "DYKIM", "Invalid thumbnail path for playlist."); + LoggerD("Invalid thumbnail path for playlist."); } if( media_playlist_get_name(playlist, &name) == MEDIA_CONTENT_ERROR_NONE) { o["name"] = picojson::value(std::string(name)); free(name); } else { - dlog_print(DLOG_INFO, "DYKIM", "Invalid name for playlist."); + LoggerD("Invalid name for playlist."); } -// media_filter_create(&filter); -// if( media_playlist_get_media_count_from_db(id, filter, &cnt) == MEDIA_CONTENT_ERROR_NONE) { -// std::stringstream str_cnd; -// str_cnd << cnt; - o["numberOfTracks"] = picojson::value(static_cast(0)); -// } -// else { -// dlog_print(DLOG_INFO, "DYKIM", "Invalid count for playlist."); -// } + media_filter_create(&filter); + if( media_playlist_get_media_count_from_db(id, filter, &cnt) == MEDIA_CONTENT_ERROR_NONE) { + o["numberOfTracks"] = picojson::value(static_cast(cnt)); + } + else { + LoggerD("Invalid count for playlist."); + } playlists->push_back(picojson::value(o)); } - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlist_foreach_cb end."); return true; } static bool playlist_content_member_cb(int playlist_member_id, media_info_h media, void *user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlist_content_member_cb start."); picojson::value::array *contents = static_cast(user_data); picojson::value::object o; char *name = NULL; media_info_get_display_name(media, &name); - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlist_content_member_cb %s.",name); o["playlist_member_id"] = picojson::value(static_cast(playlist_member_id)); contentToJson(media, o); contents->push_back(picojson::value(o)); @@ -580,7 +558,6 @@ bool ContentManager::isConnected() { } void ContentManager::getDirectories(const std::shared_ptr& user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::getDirectories start"); picojson::value::array pico_dirs; @@ -636,7 +613,6 @@ void ContentManager::getDirectories(const std::shared_ptr& us } void ContentManager::find(const std::shared_ptr& user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::find start"); int ret; double count, offset; std::string dirId, attributeName, matchFlag, matchValue; @@ -645,7 +621,6 @@ void ContentManager::find(const std::shared_ptr& user_data) { picojson::value::array arrayContent; filter_h filter = NULL; - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::find start1"); ret = media_filter_create(&filter); if(ret != MEDIA_CONTENT_ERROR_NONE) { @@ -655,7 +630,7 @@ void ContentManager::find(const std::shared_ptr& user_data) { return; } if(user_data->args.contains("filter")) { - //dykim. filter + //to be implemented. dykim. picojson::value vfilter = user_data->args.get("filter"); if (!vfilter.is() && vfilter.is()) { attributeName = vfilter.get("attributeName").to_str(); @@ -724,17 +699,15 @@ int ContentManager::scanFile(std::string& uri) { } int ContentManager::setChangeListener(media_content_db_update_cb callback, void *user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::setChangeListener start"); int ret = media_content_set_db_updated_cb(callback, user_data); if(ret != MEDIA_CONTENT_ERROR_NONE) { throw UnknownException("registering the listener is failed."); } - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::media_content_db_update_cb end"); + } void ContentManager::unSetChangeListener() { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::unSetChangeListener start"); int ret = media_content_unset_db_updated_cb(); if(ret != MEDIA_CONTENT_ERROR_NONE) { throw UnknownException("unSetChangeListener is failed."); @@ -744,9 +717,8 @@ void ContentManager::unSetChangeListener() { void ContentManager::createPlaylist(std::string name, const std::shared_ptr& user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::createPlaylist start"); media_playlist_h playlist = NULL; - + int ret = media_playlist_insert_to_db(name.c_str(),&playlist); if(ret != MEDIA_CONTENT_ERROR_NONE) { UnknownException err("creation of playlist is failed."); @@ -779,21 +751,21 @@ void ContentManager::createPlaylist(std::string name, } } else { - dlog_print(DLOG_INFO, "DYKIM", "Invalid thumbnail path for playlist."); + LoggerD("Invalid thumbnail path for playlist."); } if( media_playlist_get_name(playlist, &name) == MEDIA_CONTENT_ERROR_NONE) { o["name"] = picojson::value(std::string(name)); free(name); } else { - dlog_print(DLOG_INFO, "DYKIM", "Invalid name for playlist."); + LoggerD("Invalid name for playlist."); } media_filter_create(&filter); if( media_playlist_get_media_count_from_db(id, filter, &cnt) == MEDIA_CONTENT_ERROR_NONE) { o["numberOfTracks"] = picojson::value(static_cast(cnt)); } else { - dlog_print(DLOG_INFO, "DYKIM", "Invalid count for playlist."); + LoggerD("Invalid count for playlist."); } } user_data->isSuccess = true; @@ -802,7 +774,7 @@ void ContentManager::createPlaylist(std::string name, } void ContentManager::getPlaylists(const std::shared_ptr& user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::getPlaylist start"); + int ret; filter_h filter; media_filter_create(&filter); @@ -822,10 +794,15 @@ void ContentManager::getPlaylists(const std::shared_ptr& user void ContentManager::removePlaylist(std::string playlistId, const std::shared_ptr& user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::removePlaylist start"); - int id = std::stoi(playlistId); - int ret = media_playlist_delete_from_db(id); + int id = std::atoi(playlistId.c_str()); + if(id == 0) { + UnknownException err("PlaylistId is wrong."); + user_data->isSuccess = false; + user_data->result = err.ToJSON(); + return; + } + int ret = media_playlist_delete_from_db(id); if(ret != MEDIA_CONTENT_ERROR_NONE) { UnknownException err("Removal of playlist is failed."); user_data->isSuccess = false; @@ -834,8 +811,6 @@ void ContentManager::removePlaylist(std::string playlistId, } int ContentManager::update(picojson::value args) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::update start"); - int ret; picojson::value content = args.get("content"); std::string id = content.get("id").to_str(); @@ -855,8 +830,6 @@ int ContentManager::update(picojson::value args) { int ContentManager::updateBatch(picojson::value args) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::updateBatch start"); - int ret; std::vector contents = args.get("contents").get(); for (picojson::value::array::iterator it = contents.begin(); it != contents.end(); it++) { @@ -864,6 +837,7 @@ int ContentManager::updateBatch(picojson::value args) { std::string id = content.get("id").to_str(); media_info_h media = NULL; ret = media_info_get_media_from_db (id.c_str(), &media); + dlog_print(DLOG_INFO, "DYKIM", "ContentManager::update id:%s",id.c_str()); if (media != NULL && ret == MEDIA_CONTENT_ERROR_NONE) { setContent(media, content); ret = media_info_update_to_db(media); @@ -878,7 +852,6 @@ int ContentManager::updateBatch(picojson::value args) { int ContentManager::playlistAdd(std::string playlist_id, std::string content_id) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistAdd start"); int ret = MEDIA_CONTENT_ERROR_NONE; media_playlist_h playlist = NULL; @@ -904,12 +877,10 @@ int ContentManager::playlistAdd(std::string playlist_id, std::string content_id) } int ContentManager::playlistRemove(std::string playlist_id, int member_id) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistRemove start"); int ret = MEDIA_CONTENT_ERROR_NONE; media_playlist_h playlist = NULL; ret = media_playlist_get_playlist_from_db(std::stoi(playlist_id), &playlist); - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistRemove member_id(%d)", member_id); if (playlist != NULL && ret == MEDIA_CONTENT_ERROR_NONE) { ret = media_playlist_remove_media(playlist, member_id); if (ret != MEDIA_CONTENT_ERROR_NONE) { @@ -931,7 +902,6 @@ int ContentManager::playlistRemove(std::string playlist_id, int member_id) { void ContentManager::playlistAddbatch(const std::shared_ptr& user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistAddbatch start"); int ret = MEDIA_CONTENT_ERROR_NONE; std::string playlist_id = user_data->args.get("playlist_id").get(); @@ -950,10 +920,9 @@ void ContentManager::playlistAddbatch(const std::shared_ptr& for (picojson::value::array::iterator it = contents.begin(); it != contents.end(); it++) { picojson::value content = *it; std::string id = content.get("id").to_str(); - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistAddbatch id(%s)",id.c_str()); ret = media_playlist_add_media(playlist, id.c_str()); if (ret != MEDIA_CONTENT_ERROR_NONE) { - dlog_print(DLOG_INFO, "DYKIM", "Adding Content(id:%s) is failed.", id.c_str()); + LoggerD("Adding Content(id:%s) is failed.", id.c_str()); } } @@ -967,7 +936,6 @@ void ContentManager::playlistAddbatch(const std::shared_ptr& } void ContentManager::playlistGet(const std::shared_ptr& user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistGet start"); int ret = MEDIA_CONTENT_ERROR_NONE; media_playlist_h playlist = NULL; @@ -1010,13 +978,10 @@ void ContentManager::playlistGet(const std::shared_ptr& user_ user_data->isSuccess = false; user_data->result = err.ToJSON(); } - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistGet start7"); } void ContentManager::playlistRemovebatch(const std::shared_ptr& user_data) { - - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistRemovebatch start"); - + int ret = MEDIA_CONTENT_ERROR_NONE; media_playlist_h playlist = NULL; @@ -1052,8 +1017,6 @@ void ContentManager::playlistRemovebatch(const std::shared_ptr& user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistSetOrder start"); - int ret = MEDIA_CONTENT_ERROR_NONE; media_playlist_h playlist = NULL; @@ -1098,11 +1061,8 @@ void ContentManager::playlistSetOrder(const std::shared_ptr& } void ContentManager::playlistMove(const std::shared_ptr& user_data) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistMove start"); - int ret = MEDIA_CONTENT_ERROR_NONE; media_playlist_h playlist = NULL; - std::string playlist_id = user_data->args.get("playlist_id").get(); ret = media_playlist_get_playlist_from_db(std::stoi(playlist_id), &playlist); if(ret != MEDIA_CONTENT_ERROR_NONE && playlist == NULL) { @@ -1113,7 +1073,7 @@ void ContentManager::playlistMove(const std::shared_ptr& user } int old_order; double member_id = user_data->args.get("member_id").get(); - long delta = user_data->args.get("delta").get(); + double delta = user_data->args.get("delta").get(); ret = media_playlist_get_play_order(playlist, static_cast(member_id), &old_order); if (ret != MEDIA_CONTENT_ERROR_NONE) { UnknownException err("The content can't find form playlist."); @@ -1121,7 +1081,6 @@ void ContentManager::playlistMove(const std::shared_ptr& user user_data->result = err.ToJSON(); return; } - int new_order = static_cast(old_order) + static_cast(delta); ret = media_playlist_set_play_order(playlist, static_cast(member_id), new_order); if (ret != MEDIA_CONTENT_ERROR_NONE) { @@ -1130,7 +1089,6 @@ void ContentManager::playlistMove(const std::shared_ptr& user user_data->result = err.ToJSON(); return; } - ret = media_playlist_update_to_db(playlist); if (ret != MEDIA_CONTENT_ERROR_NONE) { UnknownException err("Updateing play_order is failed."); @@ -1143,11 +1101,10 @@ void ContentManager::playlistMove(const std::shared_ptr& user } int ContentManager::getLyrics(const picojson::value& args, picojson::object& result) { - int ret = METADATA_EXTRACTOR_ERROR_NONE; std::string contentURI = convertUriToPath(args.get("contentURI").get()); metadata_extractor_h extractor; - + metadata_extractor_create(&extractor); if (!(contentURI.empty())) { ret = metadata_extractor_set_path(extractor, contentURI.c_str()); if (ret != METADATA_EXTRACTOR_ERROR_NONE) { @@ -1196,7 +1153,6 @@ int ContentManager::getLyrics(const picojson::value& args, picojson::object& res common::PlatformException ContentManager::convertError(int err) { - dlog_print(DLOG_INFO, "DYKIM", "ContentManager::convertError start"); switch (err) { case MEDIA_CONTENT_ERROR_INVALID_PARAMETER : return common::InvalidValuesException("Invalid parameter."); diff --git a/src/content/content_manager.h b/src/content/content_manager.h index ce27ee45..412aac9e 100755 --- a/src/content/content_manager.h +++ b/src/content/content_manager.h @@ -19,6 +19,8 @@ namespace extension { namespace content { +void contentToJson(media_info_h info, picojson::object& o); + class ContentManager { public: virtual ~ContentManager(); @@ -29,8 +31,6 @@ class ContentManager { void find(const std::shared_ptr& user_data); int update(picojson::value args); int updateBatch(picojson::value args); - void contentToJson(media_info_h media, picojson::object& o); - //directorytoJson int scanFile(std::string& uri); int setChangeListener(media_content_db_update_cb callback, void *user_data); -- 2.34.1