1a58fc4f8ba6445034ef22300210cd5462ae4495
[profile/tv/apps/native/filebrowser.git] / src / data / Mediadata.cpp
1 /*
2  * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 #include <cstdio>
18 #include <cstdlib>
19 #include <Eina.h>
20 #include "dbg.h"
21 #include <AppCommon.h>
22 #include "common.h"
23 #include "FileList.h"
24 #include "Mediadata.h"
25 #include "MediadataImpl.h"
26
27 #define M ((CMediadataImpl*)m)
28
29 bool CMediadata::Create(void)
30 {
31         if (m)
32                 return false;
33
34         _CREATE_BEGIN{
35                 _CHECK(m = (SMediadata*)(new CMediadataImpl))
36                 _CHECK(M->Create())
37                 _WHEN_SUCCESS{
38
39                 }
40                 _CHECK_FAIL{ M->Destroy(); }
41                 _CHECK_FAIL{ delete M; m = NULL; }
42         } _CREATE_END_AND_CATCH{ return false; }
43
44         return true;
45 }
46
47 void CMediadata::Destroy(void)
48 {
49         if (!m)
50                 return;
51
52         M->Destroy();
53         delete M;
54         m = NULL;
55 }
56
57 bool CMediadata::GetMediaList(const char* folderid, int media_type, int source_type, Eina_List **list)
58 {
59         if (!m)
60                 return false;
61
62         return ((CMediadataImpl*)m)->GetMediaList(folderid, media_type, source_type, list);
63 }
64
65 bool CMediadata::GetFolderList(int media_type, int source_type, Eina_List **list)
66 {
67         if (!m)
68                 return false;
69
70         return ((CMediadataImpl*)m)->GetFolderList(media_type, source_type, list);
71 }