2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <media_filter.h>
19 #include <media_info.h>
20 #include <media_info_private.h>
21 #include <media_playlist.h>
24 static __thread GList *g_playlist_item_list = NULL;
26 static void __media_playlist_item_add(media_playlist_item_s *item_s);
27 static void __media_playlist_item_release(void);
28 static int __media_playlist_insert_playlist_record(const char *playlist_name, int *playlist_id);
29 static int __media_playlist_insert_item_to_playlist(int playlist_id, const char *media_id);
30 static int __media_playlist_remove_item_from_playlist(int playlist_id, int playlist_member_id);
31 static int __media_playlist_update_playlist_name(int playlist_id, const char *playlist_name);
32 static int __media_playlist_update_thumbnail_path(int playlist_id, const char *path);
33 static int __media_playlist_update_play_order(int playlist_id, int playlist_member_id, int play_order);
35 static void __media_playlist_item_add(media_playlist_item_s *item_s)
37 g_playlist_item_list = g_list_append(g_playlist_item_list, item_s);
40 static void __media_playlist_item_release(void)
44 media_playlist_item_s *item = NULL;
46 list_cnt = g_list_length(g_playlist_item_list);
48 media_content_debug("list_cnt : [%d]", list_cnt);
50 for(idx = 0; idx < list_cnt; idx++)
52 item = (media_playlist_item_s*)g_list_nth_data(g_playlist_item_list, idx);
55 SAFE_FREE(item->media_id);
56 SAFE_FREE(item->playlist_name);
57 SAFE_FREE(item->thumbnail_path);
62 g_list_free(g_playlist_item_list);
63 g_playlist_item_list = NULL;
67 static int __media_playlist_insert_playlist_record(const char *playlist_name, int *playlist_id)
69 int ret = MEDIA_CONTENT_ERROR_NONE;
70 char *query_str = NULL;
71 char *select_query = NULL;
72 sqlite3_stmt *stmt = NULL;
74 query_str = sqlite3_mprintf(INSERT_PLAYLIST_TO_PLAYLIST, playlist_name);
76 ret = _content_query_sql(query_str);
77 sqlite3_free(query_str);
78 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
80 select_query = sqlite3_mprintf(SELECT_PLAYLIST_ID_FROM_PLAYLIST, playlist_name);
82 ret = _content_query_prepare(&stmt, select_query, NULL, NULL);
83 sqlite3_free(select_query);
84 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
86 while(sqlite3_step(stmt) == SQLITE_ROW)
88 *playlist_id = (int)sqlite3_column_int(stmt,0);
91 SQLITE3_FINALIZE(stmt);
93 return MEDIA_CONTENT_ERROR_NONE;
96 static int __media_playlist_insert_item_to_playlist(int playlist_id, const char *media_id)
98 int ret = MEDIA_CONTENT_ERROR_NONE;
99 sqlite3_stmt *stmt = NULL;
100 char select_query[DEFAULT_QUERY_SIZE];
101 char *query_str = NULL;
104 memset(select_query, 0x00, sizeof(select_query));
106 snprintf(select_query, sizeof(select_query), SELECT_MAX_PLAY_ORDER_FROM_PLAYLIST_VIEW, playlist_id);
108 /* get the max play_order */
109 ret = _content_query_prepare(&stmt, select_query, NULL, NULL);
110 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
112 while(sqlite3_step(stmt) == SQLITE_ROW)
114 play_order = (int)sqlite3_column_int(stmt, 0);
117 SQLITE3_FINALIZE(stmt);
121 query_str = sqlite3_mprintf("INSERT INTO %q (playlist_id, media_uuid, play_order) values (%d, '%q', %d)",
122 DB_TABLE_PLAYLIST_MAP, playlist_id, media_id, play_order);
123 ret = _content_query_sql(query_str);
124 sqlite3_free(query_str);
129 static int __media_playlist_remove_item_from_playlist(int playlist_id, int playlist_member_id)
131 int ret = MEDIA_CONTENT_ERROR_NONE;
132 char *query_str = NULL;
134 query_str = sqlite3_mprintf(REMOVE_PLAYLIST_ITEM_FROM_PLAYLIST_MAP, playlist_id, playlist_member_id);
136 ret = _content_query_sql(query_str);
137 sqlite3_free(query_str);
142 static int __media_playlist_update_playlist_name(int playlist_id, const char *playlist_name)
144 int ret = MEDIA_CONTENT_ERROR_NONE;
145 char *query_str = NULL;
147 query_str = sqlite3_mprintf(UPDATE_PLAYLIST_NAME_FROM_PLAYLIST, playlist_name, playlist_id);
149 ret = _content_query_sql(query_str);
150 sqlite3_free(query_str);
155 static int __media_playlist_update_thumbnail_path(int playlist_id, const char *path)
157 int ret = MEDIA_CONTENT_ERROR_NONE;
158 char *query_str = NULL;
160 query_str = sqlite3_mprintf(UPDATE_PLAYLIST_THUMBNAIL_FROM_PLAYLIST, path, playlist_id);
162 ret = _content_query_sql(query_str);
163 sqlite3_free(query_str);
168 static int __media_playlist_update_play_order(int playlist_id, int playlist_member_id, int play_order)
170 int ret = MEDIA_CONTENT_ERROR_NONE;
171 char *query_str = NULL;
173 query_str = sqlite3_mprintf(UPDATE_PLAYLIST_ORDER_FROM_PLAYLIST_MAP, play_order, playlist_id, playlist_member_id);
175 ret = _content_query_sql(query_str);
176 sqlite3_free(query_str);
181 int media_playlist_insert_to_db(const char *name, media_playlist_h *playlist)
183 int ret = MEDIA_CONTENT_ERROR_NONE;
186 if(!STRING_VALID(name))
188 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
189 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
192 media_playlist_s *_playlist = (media_playlist_s*)calloc(1, sizeof(media_playlist_s));
194 if(_playlist == NULL)
196 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
197 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
200 ret = __media_playlist_insert_playlist_record(name, &playlist_id);
202 if(ret != MEDIA_CONTENT_ERROR_NONE)
204 SAFE_FREE(_playlist);
208 _playlist->playlist_id = playlist_id;
209 _playlist->name = strdup(name);
211 if(_playlist->name == NULL)
213 SAFE_FREE(_playlist);
214 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
215 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
218 *playlist = (media_playlist_h)_playlist;
223 int media_playlist_delete_from_db(int playlist_id)
225 int ret = MEDIA_CONTENT_ERROR_NONE;
226 char *query_str = NULL;
230 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
231 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
234 query_str = sqlite3_mprintf(DELETE_PLAYLIST_FROM_PLAYLIST, playlist_id);
236 ret = _content_query_sql(query_str);
238 sqlite3_free(query_str);
243 int media_playlist_get_playlist_count_from_db(filter_h filter, int *playlist_count)
245 int ret = MEDIA_CONTENT_ERROR_NONE;
247 media_content_debug_func();
249 if(playlist_count != NULL)
251 ret = _media_db_get_group_count(filter, MEDIA_GROUP_PLAYLIST, playlist_count);
255 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
256 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
262 int media_playlist_foreach_playlist_from_db(filter_h filter, media_playlist_cb callback, void *user_data)
264 int ret = MEDIA_CONTENT_ERROR_NONE;
266 media_content_debug_func();
270 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
271 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
274 ret = _media_db_get_playlist(filter, callback, user_data);
279 int media_playlist_get_media_count_from_db(int playlist_id, filter_h filter, int *media_count)
281 int ret = MEDIA_CONTENT_ERROR_NONE;
283 media_content_debug_func();
285 if((playlist_id > 0) && (media_count != NULL))
287 ret = _media_db_get_group_item_count_by_id(playlist_id, filter, MEDIA_GROUP_PLAYLIST, media_count);
291 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
292 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
298 int media_playlist_foreach_media_from_db(int playlist_id, filter_h filter, playlist_member_cb callback, void *user_data)
300 int ret = MEDIA_CONTENT_ERROR_NONE;
302 media_content_debug_func();
304 if((playlist_id > 0) && (callback != NULL))
306 //ret = _media_db_get_group_item_by_id(playlist_id, filter, callback, user_data, MEDIA_GROUP_PLAYLIST);
307 ret = _media_db_get_playlist_item(playlist_id, filter, callback, user_data);
311 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
312 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
318 int media_playlist_destroy(media_playlist_h playlist)
320 int ret = MEDIA_CONTENT_ERROR_NONE;
321 media_playlist_s *_playlist = (media_playlist_s*)playlist;
323 media_content_debug_func();
327 SAFE_FREE(_playlist->name);
328 SAFE_FREE(_playlist);
330 ret = MEDIA_CONTENT_ERROR_NONE;
334 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
335 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
341 int media_playlist_clone(media_playlist_h *dst, media_playlist_h src)
343 int ret = MEDIA_CONTENT_ERROR_NONE;
344 media_playlist_s *_src = (media_playlist_s*)src;
346 media_content_debug_func();
350 media_playlist_s *_dst = (media_playlist_s*)calloc(1, sizeof(media_playlist_s));
353 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
354 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
357 _dst->playlist_id = _src->playlist_id;
359 if(STRING_VALID(_src->name))
361 _dst->name = strdup(_src->name);
362 if(_dst->name == NULL)
364 media_playlist_destroy((media_playlist_h)_dst);
365 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
366 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
370 *dst = (media_playlist_h)_dst;
372 ret = MEDIA_CONTENT_ERROR_NONE;
376 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
377 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
383 int media_playlist_get_playlist_from_db(int playlist_id, media_playlist_h *playlist)
385 int ret = MEDIA_CONTENT_ERROR_NONE;
386 sqlite3_stmt *stmt = NULL;
387 char select_query[DEFAULT_QUERY_SIZE];
391 memset(select_query, 0x00, sizeof(select_query));
393 snprintf(select_query, sizeof(select_query), SELECT_PLAYLIST_FROM_PLAYLIST, playlist_id);
395 ret = _content_query_prepare(&stmt, select_query, NULL, NULL);
396 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
398 while(sqlite3_step(stmt) == SQLITE_ROW)
400 media_playlist_s *_playlist = (media_playlist_s*)calloc(1, sizeof(media_playlist_s));
402 _playlist->playlist_id = (int)sqlite3_column_int(stmt, 0);
403 if(STRING_VALID((const char *)sqlite3_column_text(stmt, 1)))
404 _playlist->name = strdup((const char *)sqlite3_column_text(stmt, 1));
405 if(STRING_VALID((const char *)sqlite3_column_text(stmt, 2)))
406 _playlist->thumbnail_path = strdup((const char *)sqlite3_column_text(stmt, 2));
408 *playlist = (media_playlist_h)_playlist;
411 SQLITE3_FINALIZE(stmt);
415 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
416 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
422 int media_playlist_get_playlist_id(media_playlist_h playlist, int *playlist_id)
424 int ret = MEDIA_CONTENT_ERROR_NONE;
426 media_playlist_s *_playlist = (media_playlist_s*)playlist;
428 if((_playlist != NULL) && (playlist_id != NULL))
430 *playlist_id = _playlist->playlist_id;
434 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
435 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
441 int media_playlist_get_name(media_playlist_h playlist, char **name)
443 int ret = MEDIA_CONTENT_ERROR_NONE;
444 media_playlist_s *_playlist = (media_playlist_s*)playlist;
447 if(STRING_VALID(_playlist->name))
449 *name = strdup(_playlist->name);
452 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
453 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
461 ret = MEDIA_CONTENT_ERROR_NONE;
465 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
466 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
472 int media_playlist_get_thumbnail_path(media_playlist_h playlist, char **path)
474 int ret = MEDIA_CONTENT_ERROR_NONE;
475 media_playlist_s *_playlist = (media_playlist_s*)playlist;
478 if(STRING_VALID(_playlist->thumbnail_path))
480 *path = strdup(_playlist->thumbnail_path);
483 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
484 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
492 ret = MEDIA_CONTENT_ERROR_NONE;
496 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
497 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
503 int media_playlist_get_play_order(media_playlist_h playlist, int playlist_member_id, int *play_order)
505 int ret = MEDIA_CONTENT_ERROR_NONE;
506 media_playlist_s *_playlist = (media_playlist_s*)playlist;
508 sqlite3_stmt *stmt = NULL;
509 char select_query[DEFAULT_QUERY_SIZE];
511 if((_playlist == NULL) || (playlist_member_id < 0) || (play_order == NULL))
513 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
514 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
517 playlist_id = _playlist->playlist_id;
519 memset(select_query, 0x00, sizeof(select_query));
521 snprintf(select_query, sizeof(select_query), SELECT_PLAY_ORDER_FROM_PLAYLIST_VIEW, playlist_id, playlist_member_id);
523 ret = _content_query_prepare(&stmt, select_query, NULL, NULL);
524 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
526 while(sqlite3_step(stmt) == SQLITE_ROW)
528 *play_order = (int)sqlite3_column_int(stmt, 0);
531 SQLITE3_FINALIZE(stmt);
536 int media_playlist_set_name(media_playlist_h playlist, const char *playlist_name)
538 int ret = MEDIA_CONTENT_ERROR_NONE;
539 media_playlist_s *_playlist = (media_playlist_s*)playlist;
541 if(_playlist != NULL && STRING_VALID(playlist_name))
543 SAFE_FREE(_playlist->name);
545 media_playlist_item_s *item = (media_playlist_item_s*)calloc(1, sizeof(media_playlist_item_s));
547 item->playlist_name = strdup(playlist_name);
548 item->function = MEDIA_PLAYLIST_UPDATE_PLAYLIST_NAME;
549 if(item->playlist_name == NULL)
552 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
553 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
556 _playlist->name = strdup(playlist_name);
557 if(_playlist->name == NULL)
559 SAFE_FREE(item->playlist_name);
561 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
562 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
565 __media_playlist_item_add(item);
569 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
570 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
576 int media_playlist_set_thumbnail_path(media_playlist_h playlist, const char *path)
578 int ret = MEDIA_CONTENT_ERROR_NONE;
579 media_playlist_s *_playlist = (media_playlist_s*)playlist;
581 if(_playlist != NULL && STRING_VALID(path))
583 SAFE_FREE(_playlist->thumbnail_path);
585 media_playlist_item_s *item = (media_playlist_item_s*)calloc(1, sizeof(media_playlist_item_s));
587 item->thumbnail_path = strdup(path);
588 item->function = MEDIA_PLAYLIST_UPDATE_THUMBNAIL_PATH;
589 if(item->thumbnail_path == NULL)
592 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
593 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
596 _playlist->thumbnail_path = strdup(path);
597 if(_playlist->thumbnail_path == NULL)
599 SAFE_FREE(item->thumbnail_path);
601 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
602 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
605 __media_playlist_item_add(item);
609 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
610 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
616 int media_playlist_set_play_order(media_playlist_h playlist, int playlist_member_id, int play_order)
618 int ret = MEDIA_CONTENT_ERROR_NONE;
619 media_playlist_s *_playlist = (media_playlist_s*)playlist;
621 if((_playlist != NULL) && (playlist_member_id > 0) && (play_order >= 0))
623 media_playlist_item_s *item = (media_playlist_item_s*)calloc(1, sizeof(media_playlist_item_s));
625 item->playlist_member_id = playlist_member_id;
626 item->function = MEDIA_PLAYLIST_UPDATE_PLAY_ORDER;
627 item->play_order = play_order;
629 __media_playlist_item_add(item);
633 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
634 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
640 int media_playlist_add_media(media_playlist_h playlist, const char *media_id)
642 int ret = MEDIA_CONTENT_ERROR_NONE;
643 media_playlist_s *_playlist = (media_playlist_s*)playlist;
645 if(_playlist != NULL && STRING_VALID(media_id))
647 media_playlist_item_s *item = (media_playlist_item_s*)calloc(1, sizeof(media_playlist_item_s));
649 item->media_id = strdup(media_id);
650 item->function = MEDIA_PLAYLIST_ADD;
652 if(item->media_id == NULL)
655 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
656 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
659 __media_playlist_item_add(item);
663 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
664 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
671 int media_playlist_remove_media(media_playlist_h playlist, int playlist_member_id)
673 int ret = MEDIA_CONTENT_ERROR_NONE;
674 media_playlist_s *_playlist = (media_playlist_s*)playlist;
676 if((_playlist != NULL) && (playlist_member_id > 0))
678 media_playlist_item_s *item = (media_playlist_item_s*)calloc(1, sizeof(media_playlist_item_s));
680 item->playlist_member_id = playlist_member_id;
681 item->function = MEDIA_PLAYLIST_REMOVE;
683 __media_playlist_item_add(item);
687 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
688 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
694 int media_playlist_update_to_db(media_playlist_h playlist)
696 int ret = MEDIA_CONTENT_ERROR_NONE;
697 media_playlist_s *_playlist = (media_playlist_s*)playlist;
700 media_playlist_item_s *_playlist_item = NULL;
702 if(_playlist == NULL)
704 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
705 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
708 length = g_list_length(g_playlist_item_list);
710 for (idx = 0; idx < length; idx++) {
711 _playlist_item = (media_playlist_item_s*)g_list_nth_data(g_playlist_item_list, idx);
712 if(_playlist_item != NULL) {
713 switch(_playlist_item->function) {
714 case MEDIA_PLAYLIST_ADD:
716 ret = __media_playlist_insert_item_to_playlist(_playlist->playlist_id, _playlist_item->media_id);
720 case MEDIA_PLAYLIST_REMOVE:
722 ret = __media_playlist_remove_item_from_playlist(_playlist->playlist_id, _playlist_item->playlist_member_id);
726 case MEDIA_PLAYLIST_UPDATE_PLAYLIST_NAME:
728 ret = __media_playlist_update_playlist_name(_playlist->playlist_id, _playlist_item->playlist_name);
732 case MEDIA_PLAYLIST_UPDATE_THUMBNAIL_PATH:
734 ret = __media_playlist_update_thumbnail_path(_playlist->playlist_id, _playlist_item->thumbnail_path);
738 case MEDIA_PLAYLIST_UPDATE_PLAY_ORDER:
740 ret = __media_playlist_update_play_order(_playlist->playlist_id, _playlist_item->playlist_member_id, _playlist_item->play_order);
747 __media_playlist_item_release();