[content] Fix remove item bug on PlayList
authorSeokpil Park <seokpil.park@samsung.com>
Sun, 14 Apr 2013 05:03:19 +0000 (14:03 +0900)
committerSeokpil Park <seokpil.park@samsung.com>
Sun, 14 Apr 2013 05:03:26 +0000 (14:03 +0900)
Change-Id: I7b2e76285f1f22e80badc5585caac2eb2df9c203
Signed-off-by: Seokpil Park <seokpil.park@samsung.com>
src/FCnt_PlayListImpl.cpp
src/inc/FCnt_PlayListImpl.h

index 846cf9f..8ede769 100644 (file)
@@ -48,6 +48,7 @@ namespace Tizen { namespace Content
 _PlayListImpl::_PlayListImpl(void)
        : Object()
        , __pFilterHandle(NULL)
+       , __playListName(L"")
 {
 
 }
@@ -86,6 +87,8 @@ _PlayListImpl::Construct(const Tizen::Base::String& playListName, bool isAdd)
 
        SysLog(NID_CNT, "media_content_connect result[%d].", ret);
 
+       __playListName = playListName;
+
        if (isAdd == true)
        {
                std::unique_ptr<media_playlist_s, PlayListHandleDeleter> pPlaylistHandle;
@@ -107,7 +110,9 @@ _PlayListImpl::CreateFilterUsingContentId(const ContentId& contentId) const
        std::unique_ptr<char[]> pInputCond;
        std::unique_ptr<filter_h, FilterHandleDeleter> pFilterHandle(new (std::nothrow) filter_h);
        String uuidStr = L"";
+       String playListName = L"";
        String inputCondition = L"MEDIA_ID = ";
+       String inputListNameCondition = L"PLAYLIST_NAME = ";
 
        int ret = media_filter_create(pFilterHandle.get());
        result r = MapCoreErrorToNativeResult(ret);
@@ -122,6 +127,21 @@ _PlayListImpl::CreateFilterUsingContentId(const ContentId& contentId) const
        r = inputCondition.Append(uuidStr);
        SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "Failed to perform Append operation for inputCondition.");
 
+       playListName = __playListName;
+       r = playListName.Insert('"', 0);
+       SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "Failed to perform Insert operation for playListName.");
+       r = playListName.Insert('"', playListName.GetLength());
+       SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "Failed to perform Insert operation for playListName.");
+
+       r = inputListNameCondition.Append(playListName);
+       SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "Failed to perform Append operation for inputListNameCondition.");
+
+       r = inputCondition.Append(" AND ");
+       SysTryReturnResult(NID_CNT, !IsFailed(r), r, "Failed to perform append operation.");
+
+       r = inputCondition.Append(inputListNameCondition);
+       SysTryReturnResult(NID_CNT, !IsFailed(r), r, "Failed to perform append operation.");
+
        if (!inputCondition.IsEmpty())
        {
                //CopyToCharArrayN: utility function, converts a osp string to char*
@@ -676,7 +696,7 @@ _PlayListImpl::GetPlayListHandle(media_playlist_h* pPlayListHandle) const
        }
        else
        {
-               *pPlayListHandle = (media_playlist_h)g_list_nth_data(pTemp, 0);
+               *pPlayListHandle = static_cast< media_playlist_h >(g_list_nth_data(pTemp, 0));
        }
 
        return r;
index 48b2d87..f861866 100644 (file)
@@ -117,6 +117,7 @@ private:
        _PlayListImpl& operator =(const _PlayListImpl& rhs);
 
        mutable std::unique_ptr<filter_h, FilterHandleDeleter> __pFilterHandle;
+       Tizen::Base::String __playListName;
 
        result CreateFilterUsingContentId(const ContentId& contentId) const;
        result CreateFilter(const Tizen::Base::String& playListName) const;