From: Kim Tae Soo Date: Tue, 10 Mar 2015 05:33:04 +0000 (+0900) Subject: Refactoring of class Create function (use macro) X-Git-Tag: accepted/tizen/tv/20150310.113402^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F61%2F36561%2F1;p=profile%2Ftv%2Fapps%2Fnative%2Fmusicplayer.git Refactoring of class Create function (use macro) Change-Id: I1e3eaa033aa59b02976f2d3fccf26a7fea93a0ed Signed-off-by: Kim Tae Soo --- diff --git a/src/playback/music-controller.cpp b/src/playback/music-controller.cpp index e831a34..7ae4712 100644 --- a/src/playback/music-controller.cpp +++ b/src/playback/music-controller.cpp @@ -206,51 +206,35 @@ static void _content_update_cb(void *dt) SMusicController *CMusicController::t_Create(void) { - SMusicController *mhandle; - - mhandle = new SMusicController; - if (!mhandle) { - _ERR(" music init failed "); - return NULL; - } - - mhandle->statePlay = PLAY_STATUS_INITIAL; - mhandle->stateShuffle = SHUFFLE_STATUS_OFF; - mhandle->repeatstate = REPEAT_STATUS_ALL; - mhandle->initial_index = 0; - CInfo::SetSortType(E_SORT_TITLE_A_Z); - CInfo::SetSourceType(SOURCE_TYPE_ALL); - mhandle->alinfo = new CAlbumInfo; - - if (!mhandle->alinfo->Create()) { - _ERR(" mediadata create failed "); - delete mhandle; - return NULL; - } - - if (!mhandle->pMediadata->Create()) { - _ERR(" mediadata create failed "); - mhandle->alinfo->Destroy(); - delete mhandle->alinfo; - delete mhandle; - return NULL; - } - - if (!mhandle->pPlayback->Create()) - _ERR(" playback create failed "); - - if (!mhandle->pPlayback->SetCallback(sm_CbPlaybackCompletion, this)) - _ERR(" playback add completion callback failed "); - - mhandle->cbinfo = mhandle->pMediadata->AddCallback(E_CONTENT_UPDATE, _content_update_cb, mhandle); + SMusicController *mhandle = NULL; + + _CREATE_BEGIN { + _CHECK(mhandle = new SMusicController) + _CHECK(mhandle->alinfo = new CAlbumInfo) + _CHECK(mhandle->alinfo->Create() == true) + _CHECK(mhandle->pMediadata->Create() == true) + _CHECK(mhandle->pPlayback->Create() == true) + _CHECK(mhandle->pPlayback->SetCallback(sm_CbPlaybackCompletion, this) == true) + _CHECK(CUsbConnectionListener::Create() == true) + + _WHEN_SUCCESS{ + mhandle->statePlay = PLAY_STATUS_INITIAL; + mhandle->stateShuffle = SHUFFLE_STATUS_OFF; + mhandle->repeatstate = REPEAT_STATUS_ALL; + mhandle->initial_index = 0; + CInfo::SetSortType(E_SORT_TITLE_A_Z); + CInfo::SetSourceType(SOURCE_TYPE_ALL); + mhandle->cbinfo = mhandle->pMediadata->AddCallback(E_CONTENT_UPDATE, _content_update_cb, mhandle); + } - if (!CUsbConnectionListener::Create()) { - _ERR("CUsbConnectionListener::Create failed"); - mhandle->pPlayback->Destroy(); - mhandle->pMediadata->Destroy(); - delete mhandle; - return NULL; - } + _CHECK_FAIL{ CUsbConnectionListener::Destroy(); } + _CHECK_FAIL{} + _CHECK_FAIL{ mhandle->pPlayback->Destroy(); } + _CHECK_FAIL{ mhandle->pMediadata->Destroy(); } + _CHECK_FAIL{ mhandle->alinfo->Destroy(); } + _CHECK_FAIL{ delete mhandle->alinfo; } + _CHECK_FAIL{ delete mhandle; mhandle = NULL; } + } _CREATE_END_AND_CATCH{ return NULL; } return mhandle; } diff --git a/src/views/album-layout.cpp b/src/views/album-layout.cpp index 9d5baf5..946b10c 100644 --- a/src/views/album-layout.cpp +++ b/src/views/album-layout.cpp @@ -419,92 +419,57 @@ bool CAlbumLayout::Create(CLayoutMgr *mgr, const char *albumId) Evas_Object *layout = NULL; CMusicController *mhandle = NULL; CViewMgr *vmgr = NULL; + SParcel parcel; - m = new SAlbumLayout; - if (!m) { - _ERR(" albumlayout data allocation failed "); - return false; - } - - vmgr = CViewMgr::GetInstance(); - if (!vmgr) { - _ERR(" get viewmgr failed "); - delete m; - m = NULL; - return false; - } - - base = mgr->Base(); - if (!base) { - _ERR(" get base failed "); - delete m; - m = NULL; - return false; - } - - win = vmgr->Window(); - if (!win) { - _ERR(" vimewmgr get win failed "); - delete m; - m = NULL; - return false; - } - - mhandle = CMusicController::GetInstance(); - if (!mhandle) { - _ERR(" music controller get music instance failed "); - delete m; - m = NULL; - return false; - } - - layout = CCommonUI::AddBase(base, MUSIC_ALBUM_LAYOUT); - if (!layout) { - _ERR(" get layout failed "); - delete m; - m = NULL; - return false; - } - - bool r = CExtBaseLayout::Create(layout); - if (!r) { - _ERR(" CBaseLayout creation failed "); - evas_object_del(layout); - delete m; - m = NULL; - return false; - } - - if (albumId) { - m->album_id = new char[strlen(albumId) + 1]; - strcpy(m->album_id, albumId); - } - else { - m->album_id = NULL; - } - - m->win = win; - m->base = base; - m->vmgr = vmgr; - m->mhandle = mhandle; - m->lmgr = mgr; - m->callback.cbHandleEmptyStatus = NULL; - m->callback.cookie = NULL; + _CREATE_BEGIN { + _CHECK(m = new SAlbumLayout) + _CHECK(vmgr = CViewMgr::GetInstance()) + _CHECK(base = mgr->Base()) + _CHECK(win = vmgr->Window()) + _CHECK(mhandle = CMusicController::GetInstance()) + _CHECK(layout = CCommonUI::AddBase(base, MUSIC_ALBUM_LAYOUT)) + _CHECK(CExtBaseLayout::Create(layout)) + _CHECK(m->layoutAlbumSongs = new CAlbumSongsLayout(MUSIC_ALBUM_SONGS_LAYOUT)) + _CHECK(m->layoutAlbumSongs->Create(mgr)) + _CHECK(mgr->AddLayout(m->layoutAlbumSongs)) + + _WHEN_SUCCESS { + if (albumId) { + m->album_id = new char[strlen(albumId) + 1]; + strcpy(m->album_id, albumId); + } + else + m->album_id = NULL; - m->layoutAlbumSongs = new CAlbumSongsLayout(MUSIC_ALBUM_SONGS_LAYOUT); - m->layoutAlbumSongs->Create(m->lmgr); - m->lmgr->AddLayout(m->layoutAlbumSongs); + m->win = win; + m->base = base; + m->vmgr = vmgr; + m->mhandle = mhandle; + m->lmgr = mgr; + m->callback.cbHandleEmptyStatus = NULL; + m->callback.cookie = NULL; - m_CreateAlbumGrid(); + m_CreateAlbumGrid(); + Connect(layout, ALBUM_LAYOUT, TYPE_KEY_DOWN); - Connect(layout, ALBUM_LAYOUT, TYPE_KEY_DOWN); + parcel.ctxtInfo = NULL; + parcel.updateType = E_LAYOUT_UPDATE; + parcel.layoutId = MUSIC_ALBUM_LAYOUT; + parcel.keyEvent = NULL; + m->vmgr->UpdateView((const char *)MUSIC_BASE_VIEW, &parcel); + } - SParcel parcel; - parcel.ctxtInfo = NULL; - parcel.updateType = E_LAYOUT_UPDATE; - parcel.layoutId = MUSIC_ALBUM_LAYOUT; - parcel.keyEvent = NULL; - m->vmgr->UpdateView((const char *)MUSIC_BASE_VIEW, &parcel); + _CHECK_FAIL{} + _CHECK_FAIL{ m->layoutAlbumSongs->Destroy(); } + _CHECK_FAIL{ delete m->layoutAlbumSongs; } + _CHECK_FAIL{ CExtBaseLayout::Destroy(); } + _CHECK_FAIL{ evas_object_del(layout); } + _CHECK_FAIL{} + _CHECK_FAIL{} + _CHECK_FAIL{} + _CHECK_FAIL{} + _CHECK_FAIL{ delete m; m = NULL; } + } _CREATE_END_AND_CATCH{ return false; } return true; }