2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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.
18 * @file MpMusicPlayerForm.h
19 * @brief This is the header file for MusicPlayerForm class.
22 #ifndef _MP_MUSIC_PLAYER_FORM_H_
23 #define _MP_MUSIC_PLAYER_FORM_H_
29 #include "MpIMusicContentUpdateEventListner.h"
30 #include "MpIMusicPlayerEventListener.h"
31 #include "MpIMusicSettingEventListener.h"
32 #include "MpThumbnailBase.h"
35 class PlayListPickerPopup;
36 class PlayerPresentationModel;
38 class SettingPresentationModel;
43 : public ThumbnailBase
44 , public Tizen::Ui::Controls::Form
45 , public Tizen::Ui::Controls::IFormBackEventListener
46 , public Tizen::Ui::Controls::ITableViewItemProvider
47 , public Tizen::Ui::Controls::ITableViewItemEventListener
48 , public Tizen::Ui::Controls::ISliderEventListener
49 , public Tizen::Ui::IActionEventListener
50 , public Tizen::Ui::IOrientationEventListener
51 , public Tizen::Ui::ITouchEventListener
52 , public Tizen::Ui::IKeyEventListener
53 , public Tizen::Ui::Animations::IAnimationTransactionEventListener
54 , public IMusicContentUpdateEventListner
55 , public IMusicPlayerEventListener
56 , public IMusicSettingEventListener
57 , public Tizen::Ui::Scenes::ISceneEventListener
58 , public Tizen::Base::Runtime::ITimerEventListener
62 virtual ~PlayerForm(void);
63 result Initialize(void);
65 virtual result OnInitializing(void);
66 virtual result OnTerminating(void);
68 virtual int GetItemCount(void);
69 virtual Tizen::Ui::Controls::TableViewItem* CreateItem(const int itemIndex, int itemWidth);
70 virtual bool DeleteItem(const int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
71 virtual void UpdateItem(int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
72 virtual int GetDefaultItemHeight(void);
74 virtual void OnTableViewItemStateChanged(Tizen::Ui::Controls::TableView& tableView,
76 Tizen::Ui::Controls::TableViewItem* pItem,
77 Tizen::Ui::Controls::TableViewItemStatus status);
78 virtual void OnTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::TableView& tableView,
80 Tizen::Ui::Controls::TableViewContextItem* pContextItem,
82 virtual void OnTableViewItemReordered(Tizen::Ui::Controls::TableView& tableView,
86 virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
87 virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
88 const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
89 virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
90 const Tizen::Ui::Scenes::SceneId& nextSceneId);
92 virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus);
93 virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
95 virtual void OnKeyPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
96 virtual void OnKeyReleased(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
97 virtual void OnKeyLongPressed(const Tizen::Ui::Control& source, Tizen::Ui::KeyCode keyCode);
99 virtual void OnTouchDoublePressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){}
100 virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){}
101 virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){}
102 virtual void OnTouchLongPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
103 virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
104 virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
105 virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
107 virtual void OnSliderBarMoved(Tizen::Ui::Controls::Slider& source, int value);
109 virtual void OnAnimationTransactionStarted(int transactionId);
110 virtual void OnAnimationTransactionStopped(int transactionId);
111 virtual void OnAnimationTransactionFinished(int transactionId);
113 virtual void OnPlayStateChanged(Tizen::Media::PlayerState playerState);
114 virtual void OnPlayContentChanged(int currentContentIndex);
115 virtual void OnPlayContentRemoved(int removedContentIndex);
116 virtual void OnPlayTimeChanged(const Tizen::Base::String& currentDuration, int currentPosition);
117 virtual void OnPlayVolumeBarStateChanged(void);
118 virtual void OnAutoOffTimeChanged(int autoOffTime);
119 virtual void OnPlayPresentationModelDestroying(void);
121 virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
123 virtual void OnChangedContentList(Tizen::Base::Collection::IList* pArgs);
124 virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
126 virtual void OnThumbnailInfoReveivedN(ThumbnailInfo* pThumbnailInfo);
127 virtual void OnMusicContentUpdateCompleted(void);
130 result CreateTableViewItem(Tizen::Ui::Container& parent, const ContentInformation& contentInfoStruct);
131 void TogglePlayPauseImage(Tizen::Media::PlayerState playerState);
132 void SetPauseButtonImage(void);
133 void SetPlayButtonImage(void);
134 void SetRepeatButtonImage(int repeatValue);
135 void SetShuffleButtonImage(bool shuffleEnable);
136 void SetFileNotExistState(bool isFileExist);
137 result ShowMessageBox(const Tizen::Base::String& showText);
138 void SetContentInfo(int currentContentIndex);
139 void UpdateAnimationAlbumArt(AlbumArtImage position);
140 result InitializeVolumeBar(void);
142 void SetPlayerScreenState(unsigned int playerScreenState);
143 unsigned int GetPlayerScreenState(void);
145 result CreateContextMenuN(const Tizen::Ui::Control& source);
146 result SetContextMenuItem(unsigned int contextMenuItemStyle, Tizen::Graphics::Point anchorPosition = Tizen::Graphics::Point(-1, -1));
147 result TryRemoveContextMenu(int actionId);
148 void RemoveContextMenu(void);
150 result LanucherPicker(PickerType pickerType);
151 Tizen::Base::Collection::IList* GetPickerArgumentListN(PickerType pickerType);
153 result ShowSharePicker(Tizen::Base::Collection::IList* pIList);
154 result ShowPlayListPicker(Tizen::Base::Collection::IList* pIList);
155 result ShowSetAsPicker(Tizen::Base::Collection::IList* pIList);
157 void RemoveSharePicker(void);
158 void RemovePlayListPicker(void);
159 void RemoveSetAsPicker(void);
161 void PlayAnimation(void);
162 void StopAnimation(void);
164 void UpdateSplitBarState(void);
167 PlayerPresentationModel* __pPlayerPresentationModel;
169 Tizen::Ui::Animations::VisualElement* __pAlbumArtElements;
170 Tizen::Ui::Animations::VisualElement* __pAlbumArtElement[ALBUM_ART_IMAGE_COUNT];
172 Tizen::Ui::Controls::Panel* __pVolumePanel;
173 Tizen::Ui::Controls::Panel* __pControllerPanel;
174 Tizen::Ui::Controls::Panel* __pPanelRegisterBar;
175 Tizen::Ui::Controls::Panel* __pContentsAlbumViewPanel;
177 // Tizen::Ui::Controls::Label* __pAlbumArtLabel;
178 Tizen::Ui::Controls::Panel* __pContentsListViewPanel;
180 Tizen::Ui::Controls::Label* __pCurrentTimeLabel;
181 Tizen::Ui::Controls::Label* __pTotalTimeLabel;
182 Tizen::Ui::Controls::Label* __pTitleName;
183 Tizen::Ui::Controls::Label* __pArtistName;
185 Tizen::Ui::Controls::Button* __pRewindButton;
186 Tizen::Ui::Controls::Button* __pForwardButton;
187 Tizen::Ui::Controls::Button* __pVolumeButton;
188 Tizen::Ui::Controls::Button* __pPlayPauseButton;
189 Tizen::Ui::Controls::Button* __pBackButton;
190 Tizen::Ui::Controls::Button* __pHorizontalHeaderRightButton;
191 Tizen::Ui::Controls::Button* __pRepeatButton;
192 Tizen::Ui::Controls::Button* __pShuffleButton;
193 // Tizen::Ui::Controls::Button* __pAddToPlaylistButton;
194 Tizen::Ui::Controls::Button* __pContentsViewToggleButton;
195 Tizen::Ui::Controls::Button* __pMoreContextButton;
197 Tizen::Ui::Controls::Slider* __pPlayStateSlider;
198 Tizen::Ui::Controls::Slider* __pVolumeSlider;
200 // Tizen::Ui::Controls::TableView* __pContentsListView;
201 // Tizen::Ui::Controls::ContextMenu* __pContextMenuIconText;
202 Tizen::Graphics::Bitmap* __pThumbnail;
204 PlayListPickerPopup* __pPlayListPicker;
205 SharePopup* __pSharePicker;
206 SetAsPopup* __pSetAsPicker;
207 SoundPathPopup* __pSoundPathPopup;
209 bool __isLongPressed;
210 Tizen::Ui::FlickDirection flickDirection;
212 unsigned int __playerScreenState;
213 bool __isAnimationPerformed;
214 bool __isRunByAppControl;
216 Tizen::Base::Runtime::Timer* __pAnimationFinishedTimer;
217 Tizen::Base::Runtime::Timer* __pContentPlayTimer;
218 Tizen::Ui::Scenes::SceneId __pPreviousSceneId;
219 Tizen::Base::String* __pPath;
220 Tizen::Ui::Controls::ContextMenu* __pContextMenu;
223 #endif // _MP_MUSIC_PLAYER_FORM_H_