Apply IActivatedListener for gengrid / genlist.
[profile/tv/apps/native/musicplayer.git] / include / category_info.h
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 #ifndef __CATEGORY_INFO_H__
18 #define __CATEGORY_INFO_H__
19
20
21 #include <Eina.h>
22 #include <ExtNameInfo.h>
23 #include "album_info.h"
24
25 class CCategoryInfo : public CExtNameInfo {
26 public:
27         struct CListMember {
28                 char *mediaId;
29                 int memberId;
30         };
31
32 private:
33         struct SCategoryInfo *m;
34
35 private:
36         CListMember *m_MemberDuplicate(CListMember *member);
37
38 public:
39         CCategoryInfo() : m(0) {}
40         virtual ~CCategoryInfo() {}
41
42         bool Create(void);
43         virtual void Destroy(void);
44
45         int CategoryId(void);
46         int AlbumCount(void);
47         int SongCount(void);
48         Eina_List *AlbumList(void);
49         Eina_List *MemberList(void);
50
51         bool SetCategoryId(int categoryId);
52         bool SetAlbumCount(int albumCount);
53         bool SetSongCount(int songCount);
54         bool SetAlbumInfo(CAlbumInfo *albumList);
55         bool SetMember(CListMember *member);
56
57         bool Duplicate(CNameInfo *obj);
58
59         static CCategoryInfo *FindCategory(Eina_List *list, const char *categoryName);
60 };
61
62 #endif /*__CATEGORY_INFO_H__*/