Modification due to the change of CBaseView
[profile/tv/apps/native/musicplayer.git] / include / playback-view.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 __PLAYBACK_VIEW_H__
18 #define __PLAYBACK_VIEW_H__
19
20 #include "Timer.h"
21 #include "common.h"
22
23 struct SItemInfo;
24
25 class CPlaybackView : public CBaseView,
26         public IMouseMoveListener,
27         public IRealizedListener,
28         public IActivatedListener,
29         public IMusicControllerListener,
30         public CTimer {
31 private:
32         struct SPlaybackView *m;
33
34 private:
35         static Eina_Bool sm_CbLongpressTimer(void *dt);
36         void m_OnLongpressTimer(void);
37
38         static Eina_Bool sm_CbWaitTimer(void *dt);
39         void m_OnWaitTimer(void);
40
41         static void sm_CbCtxtUpdate(void *dt, enum EActionType type, int lid);
42         void m_OnCtxtUpdate(EActionType type, int lid);
43
44         static void sm_CbCtxtClose(void *dt);
45         void m_OnCtxtClose(void);
46
47         static int sm_CbCurrentSongCount(void *cookie);
48         int m_CbCurrentSongCount(void);
49
50 private:
51         void m_HandleKeyPress(ESKey skey);
52         void m_HandleKeyUnpress(ESKey skey);
53
54         void m_KeyBackPress(void);
55         void m_KeyExitPress(void);
56         void m_KeyPlayPress(void);
57         void m_KeyPausePress(void);
58         void m_KeyNextPress(void);
59         void m_KeyPreviousPress(void);
60
61         void m_KeyNextUnpress(void);
62         void m_KeyPreviousUnpress(void);
63
64         void m_ChangeEditmodeAll(Eina_List *list, bool flag);
65         void m_DisableCheckAll(Eina_List *list);
66         void m_SelectItem(SItemInfo *it_info);
67         void m_UnselectItem(SItemInfo *it_info);
68         void m_UpdateEmptySongInfo(void);
69         void m_UpdateCtxtView(int playStatus);
70         void m_UpdateCurrentSongItem(int index);
71         void m_UpdateEditmodeFocusSequence(void);
72         void m_UpdatePlaymodeFocusSequence(void);
73         void m_UpdateCurrentSongInfo(void);
74         void m_DisableEditButtons(bool flag);
75         void m_FromEditToPlaybackMode(void);
76         void m_FromPlaybackToEditMode(void);
77         void m_DeleteSelectedItems(void);
78
79         void m_AddCurrentSonginfo(void);
80         SItemInfo *m_FindItemInfoFromSong(Eina_List *list, CSongInfo *sinfo);
81         SItemInfo *m_FindItemInfoFromItem(Eina_List *list, Elm_Object_Item *item);
82         void m_UpdateItemCheck(SItemInfo *itinfo);
83         Elm_Genlist_Item_Class *m_GetItemClass();
84         void m_AddGenlist(void);
85         void m_AddPlaylist(void);
86         void m_RemovePlaylist(void);
87         void m_HandleGenlistItemActivated(Evas_Object *obj, Elm_Object_Item *genListItem);
88
89 protected:
90         virtual void t_OnShow(void);
91         virtual void t_OnHide(void);
92         virtual void t_OnUpdate(void* data);
93         virtual void t_OnTimer(int id);
94
95 public:
96         CPlaybackView(const char *pViewId) :
97                 CBaseView(pViewId), 
98                 IMouseMoveListener(this),
99                 IRealizedListener(this),
100                 IActivatedListener(this),
101                 m(0) {}
102         virtual ~CPlaybackView() {}
103
104         virtual bool Create(void *data, Evas_Object *eoBase);
105         virtual void Destroy(void);
106
107         // Listener virtual function
108         virtual void OnSKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_SKey_Down *ev);
109         virtual void OnSKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_SKey_Up *ev);
110         virtual void OnMouseMove(int id, Evas *e, Evas_Object *obj, Evas_Event_Mouse_Move *ev);
111         virtual void OnRealized(int id, Evas_Object *obj, Elm_Object_Item *item);
112         virtual void OnActivated(int id, Evas_Object *obj, Elm_Object_Item *item);
113
114         virtual void OnComplete(void);
115         virtual void OnError(void);
116         virtual void OnUsbStatusChanged(SUsbStorageStatus status);
117         virtual void OnUpdateContent(void);
118         virtual void OnStartPlayback(void);
119         virtual void OnStopPlayback(void);
120         virtual void OnEmptyPlaylist(void);
121         virtual void OnPlayerModeChanged(EPlayerMode mode);
122         virtual void OnEditButtonsPressed(EPlayerEditBtns editBtns);
123 };
124
125
126 #endif /*__PLAYBACK_VIEW_H__*/