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; }
}
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
};
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}
]);
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') {
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);
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 = {
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 = {
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);
}
}
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') {
function AudioContent(obj, album, genres, artists, composers, copyright,
bitrate, trackNumber, duration) {
- var lyrics_ = undefined;
+ var lyrics_ = null;
function getLyrics(contentURI) {
var nativeParam = {
'contentURI': contentURI
if(lyrics_ === undefined) {
getLyrics(obj.contentURI);
}
+ else if(lyrics_ === null) {
+ lyrics_ = undefined;
+ }
return lyrics_;
}
}
}
else if (c.type === "VIDEO") {
var video = new VideoContent(content,
- c.geo,
+ c.geolocation,
c.album,
c.artists,
c.duration,
// 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;
}
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 = {
}
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}
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++) {
{'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 = {
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];
}
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 = {
}
ContentManager.prototype.setChangeListener = function(changeCallback) {
- console.log("[dykim]setChangeListener entered");
var args = validator_.validateArgs(arguments, [
{'name' : 'changeCallback', 'type': types_.LISTENER, 'values' : ['oncontentadded', 'oncontentupdated', 'oncontentremoved']}
]);
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);
}
} catch(e) {
throw e;
}
- console.log("[dykim]setChangeListener ended");
}
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}
} 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},
}
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 = {
} catch(e) {
throw e;
}
-
- console.log("[dykim]removePlaylist end");
}
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;
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: {
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<picojson::object>();
user_data->isSuccess = true;
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<std::string>();
+ double member_id = user_data->args.get("member_id").get<double>();
+ double delta = user_data->args.get("delta").get<double>();
ContentManager::getInstance()->playlistMove(user_data);
break;
}
char *uuid, char *path, char *mime_type, void* user_data) {
int ret;
- std::shared_ptr<ReplyCallbackData> *cbData = (std::shared_ptr<ReplyCallbackData>*)(user_data);
- LoggerE("ContentInstance::ContentManagerScanfile");
+ ReplyCallbackData *cbData = static_cast<ReplyCallbackData*>(user_data);
picojson::object reply;
picojson::object o;
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");
else {
return;
}
- reply["callbackId"] = picojson::value(static_cast<double>((*cbData)->callbackId));
+ reply["callbackId"] = picojson::value(static_cast<double>(cbData->callbackId));
picojson::value result = picojson::value(reply);
- (*cbData)->instance->PostMessage(result.serialize().c_str());
+ cbData->instance->PostMessage(result.serialize().c_str());
+ delete cbData;
}
void ContentInstance::ContentManagerUpdate(const picojson::value& args, picojson::object& out) {
- LoggerE("ContentInstance::ContentManagerUpdate");
int ret;
if(ContentManager::getInstance()->isConnected()) {
ret = ContentManager::getInstance()->update(args);
common::TaskQueue::GetInstance().Queue<ReplyCallbackData>(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<double>();
}
common::TaskQueue::GetInstance().Queue<ReplyCallbackData>(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>();
- //double offset = args.get("offset").get<double>();
-
double callbackId = args.get("callbackId").get<double>();
auto cbData = std::shared_ptr<ReplyCallbackData>(new ReplyCallbackData);
}
common::TaskQueue::GetInstance().Queue<ReplyCallbackData>(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)
cbData->cbType = ContentManagerErrorCallback;
}
common::TaskQueue::GetInstance().Queue<ReplyCallbackData>(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<double>();
+// std::shared_ptr<ReplyCallbackData>cbData(new ReplyCallbackData);
- std::shared_ptr<ReplyCallbackData>cbData(new ReplyCallbackData);
+ ReplyCallbackData *cbData = new ReplyCallbackData();
cbData->callbackId = callbackId;
cbData->instance = this;
cbData->cbType = ContentManagerErrorCallback;
}
- ContentManager::getInstance()->setChangeListener(changedContentCallback,static_cast<void*>(&cbData));
-
- // implement it
-
- // call ReplyAsync in later (Asynchronously)
+ ContentManager::getInstance()->setChangeListener(changedContentCallback,static_cast<void*>(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<double>();
}
void ContentInstance::ContentManagerCreateplaylist(const picojson::value& args, picojson::object& out) {
- LoggerE("ContentInstance::ContentManagerCreateplaylist");
CHECK_EXIST(args, "callbackId", out)
CHECK_EXIST(args, "name", out)
common::TaskQueue::GetInstance().Queue<ReplyCallbackData>(WorkThread, CompletedCallback, cbData);
}
void ContentInstance::ContentManagerRemoveplaylist(const picojson::value& args, picojson::object& out) {
- LoggerE("ContentInstance::ContentManagerRemoveplaylist");
-
double callbackId = args.get("callbackId").get<double>();
auto cbData = std::shared_ptr<ReplyCallbackData>(new ReplyCallbackData);
// implement it
common::TaskQueue::GetInstance().Queue<ReplyCallbackData>(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>();
std::string content_id = args.get("content_id").get<std::string>();
- 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);
}
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<std::string>();
int member_id = args.get("member_id").get<double>();
- 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);
cbData->callbackId = callbackId;
cbData->instance = this;
cbData->args = args;
-
+
if(ContentManager::getInstance()->isConnected()) {
cbData->cbType = ContentManagerPlaylistMoveCallback;
}
}
void ContentInstance::ContentManagerAudioGetLyrics(const picojson::value& args, picojson::object& out) {
- LoggerE("ContentInstance::ContentManagerAudioGetLyrics");
int ret;
picojson::object lyrics;
if(ContentManager::getInstance()->isConnected()) {
}
-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;
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) {
if(MEDIA_CONTENT_ERROR_NONE == image_meta_get_width(img, &tmpInt) ) {
o["width"] = picojson::value(static_cast<double>(tmpInt));
}
-
if(MEDIA_CONTENT_ERROR_NONE == image_meta_get_height(img, &tmpInt) ) {
o["height"] = picojson::value(static_cast<double>(tmpInt));
}
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) ) {
if (MEDIA_CONTENT_ERROR_NONE == audio_meta_get_bit_rate(audio, &tmpInt)){
o["bitrate"] = picojson::value(static_cast<double>(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<double>(std::stoi(tmpStr)));
+ o["trackNumber"] = picojson::value(static_cast<double>(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<double>(tmpInt));
}
-
}
}
else {
tmpStr = NULL;
}
}
-
ret = media_info_get_display_name(info, &tmpStr);
if(ret == MEDIA_CONTENT_ERROR_NONE) {
if(tmpStr) {
tmpStr = NULL;
}
}
-
+
ret = media_info_get_mime_type(info, &tmpStr);
if(ret == MEDIA_CONTENT_ERROR_NONE) {
if(tmpStr) {
tmpStr = NULL;
}
}
-
ret = media_info_get_title(info, &tmpStr);
if(ret == MEDIA_CONTENT_ERROR_NONE) {
if(tmpStr) {
tmpStr = NULL;
}
}
- //dykim. thumbnailURIs
ret = media_info_get_thumbnail_path(info, &tmpStr);
if(ret == MEDIA_CONTENT_ERROR_NONE) {
if(tmpStr) {
tmpStr = NULL;
}
}
-
ret = media_info_get_description(info, &tmpStr);
if(ret == MEDIA_CONTENT_ERROR_NONE) {
if(tmpStr) {
tmpStr = NULL;
}
}
-
ret = media_info_get_rating(info, &tmpInt);
if(ret == MEDIA_CONTENT_ERROR_NONE) {
o["rating"] = picojson::value(static_cast<double>(tmpInt));
}
-
ret = media_info_get_size(info, &tmpLong);
if(ret == MEDIA_CONTENT_ERROR_NONE) {
o["size"] = picojson::value(static_cast<double>(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;
}
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();
}
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);
}
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<media_folder_h> *dir = static_cast<std::vector<media_folder_h>*>(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<picojson::value::array*>(user_data);
picojson::value::object o;
}
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<picojson::value::array*>(user_data);
picojson::value::object o;
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) {
}
}
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<double>(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<double>(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<picojson::value::array*>(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<double>(playlist_member_id));
contentToJson(media, o);
contents->push_back(picojson::value(o));
}
void ContentManager::getDirectories(const std::shared_ptr<ReplyCallbackData>& user_data) {
- dlog_print(DLOG_INFO, "DYKIM", "ContentManager::getDirectories start");
picojson::value::array pico_dirs;
}
void ContentManager::find(const std::shared_ptr<ReplyCallbackData>& user_data) {
- dlog_print(DLOG_INFO, "DYKIM", "ContentManager::find start");
int ret;
double count, offset;
std::string dirId, attributeName, matchFlag, matchValue;
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) {
return;
}
if(user_data->args.contains("filter")) {
- //dykim. filter
+ //to be implemented. dykim.
picojson::value vfilter = user_data->args.get("filter");
if (!vfilter.is<picojson::null>() && vfilter.is<picojson::object>()) {
attributeName = vfilter.get("attributeName").to_str();
}
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.");
void ContentManager::createPlaylist(std::string name,
const std::shared_ptr<ReplyCallbackData>& 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.");
}
}
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<double>(cnt));
}
else {
- dlog_print(DLOG_INFO, "DYKIM", "Invalid count for playlist.");
+ LoggerD("Invalid count for playlist.");
}
}
user_data->isSuccess = true;
}
void ContentManager::getPlaylists(const std::shared_ptr<ReplyCallbackData>& user_data) {
- dlog_print(DLOG_INFO, "DYKIM", "ContentManager::getPlaylist start");
+
int ret;
filter_h filter;
media_filter_create(&filter);
void ContentManager::removePlaylist(std::string playlistId,
const std::shared_ptr<ReplyCallbackData>& 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;
}
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();
int ContentManager::updateBatch(picojson::value args) {
- dlog_print(DLOG_INFO, "DYKIM", "ContentManager::updateBatch start");
-
int ret;
std::vector<picojson::value> contents = args.get("contents").get<picojson::array>();
for (picojson::value::array::iterator it = contents.begin(); it != contents.end(); it++) {
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);
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;
}
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) {
void ContentManager::playlistAddbatch(const std::shared_ptr<ReplyCallbackData>& 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<std::string>();
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());
}
}
}
void ContentManager::playlistGet(const std::shared_ptr<ReplyCallbackData>& user_data) {
- dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistGet start");
int ret = MEDIA_CONTENT_ERROR_NONE;
media_playlist_h playlist = NULL;
user_data->isSuccess = false;
user_data->result = err.ToJSON();
}
- dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistGet start7");
}
void ContentManager::playlistRemovebatch(const std::shared_ptr<ReplyCallbackData>& user_data) {
-
- dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistRemovebatch start");
-
+
int ret = MEDIA_CONTENT_ERROR_NONE;
media_playlist_h playlist = NULL;
void ContentManager::playlistSetOrder(const std::shared_ptr<ReplyCallbackData>& user_data) {
- dlog_print(DLOG_INFO, "DYKIM", "ContentManager::playlistSetOrder start");
-
int ret = MEDIA_CONTENT_ERROR_NONE;
media_playlist_h playlist = NULL;
}
void ContentManager::playlistMove(const std::shared_ptr<ReplyCallbackData>& 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<std::string>();
ret = media_playlist_get_playlist_from_db(std::stoi(playlist_id), &playlist);
if(ret != MEDIA_CONTENT_ERROR_NONE && playlist == NULL) {
}
int old_order;
double member_id = user_data->args.get("member_id").get<double>();
- long delta = user_data->args.get("delta").get<long>();
+ double delta = user_data->args.get("delta").get<double>();
ret = media_playlist_get_play_order(playlist, static_cast<int>(member_id), &old_order);
if (ret != MEDIA_CONTENT_ERROR_NONE) {
UnknownException err("The content can't find form playlist.");
user_data->result = err.ToJSON();
return;
}
-
int new_order = static_cast<int>(old_order) + static_cast<int>(delta);
ret = media_playlist_set_play_order(playlist, static_cast<int>(member_id), new_order);
if (ret != MEDIA_CONTENT_ERROR_NONE) {
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.");
}
int ContentManager::getLyrics(const picojson::value& args, picojson::object& result) {
-
int ret = METADATA_EXTRACTOR_ERROR_NONE;
std::string contentURI = convertUriToPath(args.get("contentURI").get<std::string>());
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) {
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.");
namespace extension {
namespace content {
+void contentToJson(media_info_h info, picojson::object& o);
+
class ContentManager {
public:
virtual ~ContentManager();
void find(const std::shared_ptr<ReplyCallbackData>& 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);