2 * Copyright (c) 2014 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.
17 #ifndef __PLAYBACK_VIEW_H__
18 #define __PLAYBACK_VIEW_H__
25 class CPlaybackView : public CBaseView,
26 public IMouseMoveListener,
27 public IRealizedListener,
28 public IActivatedListener,
29 public IMusicControllerListener,
32 struct SPlaybackView *m;
35 static Eina_Bool sm_CbLongpressTimer(void *dt);
36 void m_OnLongpressTimer(void);
38 static Eina_Bool sm_CbWaitTimer(void *dt);
39 void m_OnWaitTimer(void);
41 static void sm_CbCtxtUpdate(void *dt, enum EActionType type, int lid);
42 void m_OnCtxtUpdate(EActionType type, int lid);
44 static void sm_CbCtxtClose(void *dt);
45 void m_OnCtxtClose(void);
47 static int sm_CbCurrentSongCount(void *cookie);
48 int m_CbCurrentSongCount(void);
51 void m_HandleKeyPress(ESKey skey);
52 void m_HandleKeyUnpress(ESKey skey);
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);
61 void m_KeyNextUnpress(void);
62 void m_KeyPreviousUnpress(void);
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);
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);
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);
96 CPlaybackView(const char *pViewId) :
98 IMouseMoveListener(this),
99 IRealizedListener(this),
100 IActivatedListener(this),
102 virtual ~CPlaybackView() {}
104 virtual bool Create(void *data, Evas_Object *eoBase);
105 virtual void Destroy(void);
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);
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);
126 #endif /*__PLAYBACK_VIEW_H__*/