From 7ffb0a1a0a3bf7e7b3001ae7c756b7c1ec389964 Mon Sep 17 00:00:00 2001 From: Kim Tae Soo Date: Tue, 21 Apr 2015 17:13:02 +0900 Subject: [PATCH] Remove dependency from CPlaybackView to CPlaybackController. CPlaybackController is controllerd only by CMusicController Change-Id: Ife4600b6be9ad8bcbad582e3c30821ae47bdc80c Signed-off-by: Kim Tae Soo --- include/music-controller.h | 3 + src/playback/MusicControllerImpl.cpp | 16 +++++ src/playback/MusicControllerImpl.h | 3 +- src/playback/music-controller.cpp | 10 ++- src/views/PlaybackController.cpp | 129 +++++++++++++++-------------------- src/views/PlaybackController.h | 17 ++--- src/views/SliderWidget.h | 4 +- src/views/playback-view.cpp | 4 +- 8 files changed, 98 insertions(+), 88 deletions(-) diff --git a/include/music-controller.h b/include/music-controller.h index cdf36d0..a4972f3 100644 --- a/include/music-controller.h +++ b/include/music-controller.h @@ -53,6 +53,8 @@ public: virtual void OnEditButtonsPressed(EPlayerEditBtns editBtns) {} //! virtual void OnRemoteButtonEvent(Evas_Object *eoBtn, EPlayerBtnsEvent ev) {} + //! + virtual void OnUpdatePlayerUI(void) {} }; @@ -118,6 +120,7 @@ public: void ChangePlayerMode(EPlayerMode mode); void HandlePlaylistEditButtons(EPlayerEditBtns btnId); void HandleRemoteButtons(Evas_Object *eoBtn, EPlayerBtnsEvent ev); + void UpdatePlayerUI(void); }; diff --git a/src/playback/MusicControllerImpl.cpp b/src/playback/MusicControllerImpl.cpp index 6d8e083..7086509 100644 --- a/src/playback/MusicControllerImpl.cpp +++ b/src/playback/MusicControllerImpl.cpp @@ -823,6 +823,22 @@ void CMusicControllerImpl::HandleRemoteButtons(Evas_Object *eoBtn, EPlayerBtnsEv } +void CMusicControllerImpl::UpdatePlayerUI(void) +{ + ASSERT(m); + + Eina_List *l; + IMusicControllerListener *mcListener; + void * obj; + + EINA_LIST_FOREACH(m->elListener, l, obj) { + mcListener = (IMusicControllerListener *)obj; + if (mcListener) + mcListener->OnUpdatePlayerUI(); + } +} + + void CMusicControllerImpl::OnStatusChanged(SUsbHostDeviceInfo *changedDevice, SUsbHostDeviceStatus status) { diff --git a/src/playback/MusicControllerImpl.h b/src/playback/MusicControllerImpl.h index e9ba9f2..caac6b7 100644 --- a/src/playback/MusicControllerImpl.h +++ b/src/playback/MusicControllerImpl.h @@ -101,6 +101,7 @@ public: void ChangePlayerMode(EPlayerMode mode); void HandlePlaylistEditButtons(EPlayerEditBtns btnId); void HandleRemoteButtons(Evas_Object *eoBtn, EPlayerBtnsEvent ev); + void UpdatePlayerUI(void); public: virtual void OnStatusChanged(SUsbHostDeviceInfo *changedDevice, @@ -110,4 +111,4 @@ public: }; -#endif /* __MUSIC_CONTROLLER_IMPL_H__ */ \ No newline at end of file +#endif /* __MUSIC_CONTROLLER_IMPL_H__ */ diff --git a/src/playback/music-controller.cpp b/src/playback/music-controller.cpp index 66e16fb..bd3c8e5 100644 --- a/src/playback/music-controller.cpp +++ b/src/playback/music-controller.cpp @@ -360,4 +360,12 @@ void CMusicController::HandleRemoteButtons(Evas_Object *eoBtn, EPlayerBtnsEvent ASSERT(m); m->ref.HandleRemoteButtons(eoBtn, ev); -} \ No newline at end of file +} + + +void CMusicController::UpdatePlayerUI(void) +{ + ASSERT(m); + + m->ref.UpdatePlayerUI(); +} diff --git a/src/views/PlaybackController.cpp b/src/views/PlaybackController.cpp index a606020..f7aabbf 100644 --- a/src/views/PlaybackController.cpp +++ b/src/views/PlaybackController.cpp @@ -450,24 +450,6 @@ void CPlaybackController::m_RemoveTimer(int timer_code) } -void CPlaybackController::m_UpdateSongInfo(void) -{ - CSongInfo *sinfo = NULL; - int index; - - if (!m->controller.GetCurrentSongIndex(&index)) { - _ERR(" music get current song index failed "); - return; - } - - if (!m->controller.GetSonginfoFromIndex(index, &sinfo)) { - _ERR(" music get songinfo failed "); - return; - } - m->pSongInfo = sinfo; -} - - void CPlaybackController::m_HandleOnPressed(Evas_Object *obj) { m->press_status = PRESS_SHORT; @@ -504,47 +486,25 @@ void CPlaybackController::m_HandleOnUnpressed(Evas_Object *obj) } -bool CPlaybackController::Create(Evas_Object *eoBase, SCallback *cb) -{ - ASSERT(!m); - - _CREATE_BEGIN{ - _CHECK(m = new SPlaybackController) - _COMMAND{ m->eoBase = eoBase; } - _CHECK(m->controller.Create()) - _CHECK(m->controller.AddListener(this)) - - _WHEN_SUCCESS{ - m_AddControlButtons(); - m_AddEditPlaylistButtons(); - m->cb = *cb; - m->press_status = PRESS_SHORT; - } - - _CHECK_FAIL{ m->controller.RemoveListener(this); } - _CHECK_FAIL{ m->controller.Destroy(); } - - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - - -void CPlaybackController::Destroy(void) +void CPlaybackController::m_UpdateSongInfo(void) { - ASSERT(m); + CSongInfo *sinfo = NULL; + int index; - m_DestroyErrorPopup(); - m_DestroySettingsPopup(); - m->controller.RemoveListener(this); + if (!m->controller.GetCurrentSongIndex(&index)) { + _ERR(" music get current song index failed "); + return; + } - delete m; - m = NULL; + if (!m->controller.GetSonginfoFromIndex(index, &sinfo)) { + _ERR(" music get songinfo failed "); + return; + } + m->pSongInfo = sinfo; } -void CPlaybackController::Update(void) +void CPlaybackController::m_Update(void) { int state; @@ -621,49 +581,64 @@ void CPlaybackController::Update(void) } -Evas_Object *CPlaybackController::ControlBtnsObject(EPlayerControlBtns id) +bool CPlaybackController::Create(Evas_Object *eoBase, SCallback *cb) { - ASSERT(m); - return m->eoBtnControl[id]; -} + ASSERT(!m); + _CREATE_BEGIN{ + _CHECK(m = new SPlaybackController) + _COMMAND{ m->eoBase = eoBase; } + _CHECK(m->controller.Create()) + _CHECK(m->controller.AddListener(this)) -Evas_Object *CPlaybackController::EditBtnsObject(EPlayerEditBtns id) -{ - ASSERT(m); - return m->eoBtnEdit[id]; -} + _WHEN_SUCCESS{ + m_AddControlButtons(); + m_AddEditPlaylistButtons(); + m->cb = *cb; + m->press_status = PRESS_SHORT; + } + _CHECK_FAIL{ m->controller.RemoveListener(this); } + _CHECK_FAIL{ m->controller.Destroy(); } -void CPlaybackController::OnComplete(void) -{ + _CHECK_FAIL{ delete m; m = NULL; } + } _CREATE_END_AND_CATCH{ return false; } + + return true; } -void CPlaybackController::OnStartPlayback(void) +void CPlaybackController::Destroy(void) { - m_UpdateSongInfo(); - m->duration = m->pSongInfo->Duration(); -} + ASSERT(m); + m_DestroyErrorPopup(); + m_DestroySettingsPopup(); + m->controller.RemoveListener(this); -void CPlaybackController::OnStopPlayback(void) -{ + delete m; + m = NULL; } -void CPlaybackController::OnPausePlayback(void) +Evas_Object *CPlaybackController::ControlBtnsObject(EPlayerControlBtns id) { + ASSERT(m); + return m->eoBtnControl[id]; } -void CPlaybackController::OnResumePlayback(void) +Evas_Object *CPlaybackController::EditBtnsObject(EPlayerEditBtns id) { + ASSERT(m); + return m->eoBtnEdit[id]; } -void CPlaybackController::OnPosition(int milsec) +void CPlaybackController::OnStartPlayback(void) { + m_UpdateSongInfo(); + m->duration = m->pSongInfo->Duration(); } @@ -697,6 +672,12 @@ void CPlaybackController::OnRemoteButtonEvent(Evas_Object *eoBtn, EPlayerBtnsEve } +void CPlaybackController::OnUpdatePlayerUI(void) +{ + m_Update(); +} + + void CPlaybackController::OnPressed(int id, Evas_Object *obj) { switch (id) { @@ -837,4 +818,4 @@ void CPlaybackController::OnMouseClicked(int id, Evas_Object *obj) default: break; } -} \ No newline at end of file +} diff --git a/src/views/PlaybackController.h b/src/views/PlaybackController.h index e9dbd9e..2af1356 100644 --- a/src/views/PlaybackController.h +++ b/src/views/PlaybackController.h @@ -64,6 +64,8 @@ private: void m_RemoveTimer(int timer_code); void m_UpdateSongInfo(void); + void m_Update(void); + public: CPlaybackController() : IPressedListener(this), @@ -76,21 +78,20 @@ public: bool Create(Evas_Object *eoBase, SCallback *cb); virtual void Destroy(void); - void Update(void); - Evas_Object *ControlBtnsObject(EPlayerControlBtns id); Evas_Object *EditBtnsObject(EPlayerEditBtns id); public: - virtual void OnComplete(void); + //! This function is invoked when new song is played. virtual void OnStartPlayback(void); - virtual void OnStopPlayback(void); - virtual void OnPausePlayback(void); - virtual void OnResumePlayback(void); - virtual void OnPosition(int milsec); + //! This function is invoked when error is occured. virtual void OnError(void); + //! This function is invoked when playlist is empty. virtual void OnEmptyPlaylist(void); + //! This function is invoked when remote button is pressed. virtual void OnRemoteButtonEvent(Evas_Object *eoBtn, EPlayerBtnsEvent ev); + //! This function is invoked when player UI need to be updated. + virtual void OnUpdatePlayerUI(void); virtual void OnPressed(int id, Evas_Object *obj); virtual void OnUnpressed(int id, Evas_Object *obj); @@ -98,4 +99,4 @@ public: virtual void OnMouseClicked(int id, Evas_Object *obj); }; -#endif // __PLAYBACK_CONTROLLER_H__ \ No newline at end of file +#endif // __PLAYBACK_CONTROLLER_H__ diff --git a/src/views/SliderWidget.h b/src/views/SliderWidget.h index 78637ff..f3dc300 100644 --- a/src/views/SliderWidget.h +++ b/src/views/SliderWidget.h @@ -52,13 +52,13 @@ public: virtual void OnComplete(void); //! This function is invoked when new song is played. virtual void OnStartPlayback(void); - //! + //! This function is invoked when playback is stopped. virtual void OnStopPlayback(void); //! This function is invoked when playback is paused. virtual void OnPausePlayback(void); //! This function is invoked when playback is resumed. virtual void OnResumePlayback(void); - //! + //! This function is invoked when the position of playback is changed. virtual void OnPosition(int milsec); virtual void OnChanged(int id, Evas_Object *obj); diff --git a/src/views/playback-view.cpp b/src/views/playback-view.cpp index 97ef925..218651b 100644 --- a/src/views/playback-view.cpp +++ b/src/views/playback-view.cpp @@ -401,7 +401,7 @@ void CPlaybackView::m_UpdateCurrentSongInfo(void) m_UpdateCurrentSongItem(index); m_UpdateCurrentSongLabels(); m_UpdateCurrentSongThumbnail(); - m->pPlaybackController->Update(); + m->pController->UpdatePlayerUI(); m_UpdatePlaymodeFocusSequence(); } @@ -1347,4 +1347,4 @@ void CPlaybackView::OnEditButtonsPressed(EPlayerEditBtns editBtns) ASSERT(!"Invalid Edit Button"); break; } -} \ No newline at end of file +} -- 2.7.4