convert to virtual function 22/39322/3
authorJehun Lim <jehun.lim@samsung.com>
Wed, 13 May 2015 05:18:23 +0000 (14:18 +0900)
committerJehun Lim <jehun.lim@samsung.com>
Wed, 13 May 2015 05:47:24 +0000 (14:47 +0900)
Change-Id: Ifc7217411c47e6c85baeb6ce85193f92f4b157f4
Signed-off-by: Jehun Lim <jehun.lim@samsung.com>
include/data/imageinfo.h
include/data/mediainfo.h
include/data/videoinfo.h
src/data/eventinfo.cpp
src/data/folderinfo.cpp
src/data/imageinfo.cpp
src/data/mediadata.cpp
src/data/videoinfo.cpp
src/view/ctxtmenu-view/ctxtmenu_view.cpp
src/view/gallery-view/layout_all.cpp

index 79274df..3a72cf1 100644 (file)
 #define __IMAGEINFO_H__
 
 class CImageInfo : public CMediaInfo {
+public:
+       enum {
+               IMAGE_WIDTH,
+               IMAGE_HEIGHT,
+               IMAGE_ORIENTATION
+       };
+
 private:
        struct SImageInfo *m;
 
@@ -39,6 +46,8 @@ public:
        int Height(void);
        int Orientation(void);
 
+       int GetInfo(int type);
+
        bool Duplicate(CNameInfo *obj);
 };
 
index 08dfd11..b5fd31e 100644 (file)
@@ -30,10 +30,10 @@ public:
        CMediaInfo() : m(0) {};
        virtual ~CMediaInfo() {};
 
-       bool Create(void);
+       virtual bool Create(void);
        virtual void Destroy(void);
 
-       bool Update(void);
+       virtual bool Update(void);
 
        char *LocationTag(void);
        time_t CreatedTime(void);
@@ -44,9 +44,11 @@ public:
        bool GetImageHandle(image_meta_h *image_h);
        bool GetVideoHandle(video_meta_h *video_h);
 
+       virtual int GetInfo(int info) = 0;
+
        bool SetMediaInfo(media_info_h media_h);
 
-       bool Duplicate(CNameInfo *obj);
+       virtual bool Duplicate(CNameInfo *obj);
 
        bool UpdateDb(void);
 };
index fff71d7..6e6a035 100644 (file)
 #define __VIDEOINFO_H__
 
 class CVideoInfo : public CMediaInfo {
+public:
+       enum {
+               VIDEO_DURATION,
+               VIDEO_PLAYED_POSITION
+       };
+
 private:
        struct SVideoInfo *m;
 
@@ -37,6 +43,8 @@ public:
        int Duration(void);
        int PlayedPosition(void);
 
+       int GetInfo(int type);
+
        bool Duplicate(CNameInfo *obj);
 };
 
index 7bc4af8..b3ab0fe 100644 (file)
@@ -68,11 +68,7 @@ void CEventInfo::m_DeleteMediaList(void)
        EINA_LIST_FREE(m->medialist, obj) {
                minfo = (CMediaInfo *)obj;
 
-               if (minfo->Type() == E_MEDIA_IMAGE)
-                       ((CImageInfo *)minfo)->Destroy();
-               else if (minfo->Type() == E_MEDIA_VIDEO)
-                       ((CVideoInfo *)minfo)->Destroy();
-
+               minfo->Destroy();
                delete minfo;
        }
 
@@ -110,15 +106,13 @@ bool CEventInfo::SetMediaInfo(CMediaInfo *minfo)
 
        nminfo = NULL;
 
-       if (minfo->Type() == E_MEDIA_IMAGE) {
+       if (minfo->Type() == E_MEDIA_IMAGE)
                nminfo = new CImageInfo;
-               ((CImageInfo *)nminfo)->Create();
-               ((CImageInfo *)nminfo)->Duplicate(minfo);
-       } else if (minfo->Type() == E_MEDIA_VIDEO) {
+       else if (minfo->Type() == E_MEDIA_VIDEO)
                nminfo = new CVideoInfo;
-               ((CVideoInfo *)nminfo)->Create();
-               ((CVideoInfo *)nminfo)->Duplicate(minfo);
-       }
+
+       nminfo->Create();
+       nminfo->Duplicate(minfo);
 
        m->medialist = eina_list_append(m->medialist, nminfo);
 
index cc2033d..d10e050 100644 (file)
@@ -69,11 +69,7 @@ void CFolderInfo::m_DeleteMediaList(void)
        EINA_LIST_FREE(m->medialist, obj) {
                minfo = (CMediaInfo *)obj;
 
-               if (minfo->Type() == E_MEDIA_IMAGE)
-                       ((CImageInfo *)minfo)->Destroy();
-               else if (minfo->Type() == E_MEDIA_VIDEO)
-                       ((CVideoInfo *)minfo)->Destroy();
-
+               minfo->Destroy();
                delete minfo;
        }
 
@@ -101,15 +97,13 @@ bool CFolderInfo::SetMediaList(Eina_List *medialist)
        EINA_LIST_FOREACH(medialist, l, obj) {
                minfo = (CMediaInfo *)obj;
 
-               if (minfo->Type() == E_MEDIA_IMAGE) {
+               if (minfo->Type() == E_MEDIA_IMAGE)
                        nminfo = new CImageInfo;
-                       ((CImageInfo *)nminfo)->Create();
-                       ((CImageInfo *)nminfo)->Duplicate(minfo);
-               } else if (minfo->Type() == E_MEDIA_VIDEO) {
+               else if (minfo->Type() == E_MEDIA_VIDEO)
                        nminfo = new CVideoInfo;
-                       ((CVideoInfo *)nminfo)->Create();
-                       ((CVideoInfo *)nminfo)->Duplicate(minfo);
-               }
+
+               nminfo->Create();
+               nminfo->Duplicate(minfo);
 
                m->medialist = eina_list_append(m->medialist, nminfo);
        }
index e9ef6cd..9eef9cb 100644 (file)
@@ -128,6 +128,28 @@ int CImageInfo::Orientation(void)
        return m->orientation;
 }
 
+int CImageInfo::GetInfo(int type)
+{
+       int info;
+
+       switch (type) {
+       case IMAGE_WIDTH:
+               info = Width();
+               break;
+       case IMAGE_HEIGHT:
+               info = Height();
+               break;
+       case IMAGE_ORIENTATION:
+               info = Orientation();
+               break;
+       default:
+               info = -1;
+               break;
+       }
+
+       return info;
+}
+
 bool CImageInfo::m_SetWidth(int width)
 {
        if (!m)
index 5dacfd5..9567a4b 100644 (file)
@@ -105,11 +105,7 @@ void CMediadata::m_DeleteMediaList(int type)
        EINA_LIST_FREE(medialist, obj) {
                minfo = (CMediaInfo *)obj;
 
-               if (minfo->Type() == E_MEDIA_IMAGE)
-                       ((CImageInfo *)minfo)->Destroy();
-               else if (minfo->Type() == E_MEDIA_VIDEO)
-                       ((CVideoInfo *)minfo)->Destroy();
-
+               minfo->Destroy();
                delete minfo;
        }
 
@@ -216,15 +212,13 @@ void CMediadata::m_GetMediaList(void)
        EINA_LIST_FOREACH(m->folder_medialist, l, obj) {
                minfo = (CMediaInfo *)obj;
 
-               if (minfo->Type() == E_MEDIA_IMAGE) {
+               if (minfo->Type() == E_MEDIA_IMAGE)
                        nminfo = new CImageInfo;
-                       ((CImageInfo *)nminfo)->Create();
-                       ((CImageInfo *)nminfo)->Duplicate(minfo);
-               } else if (minfo->Type() == E_MEDIA_VIDEO) {
+               else if (minfo->Type() == E_MEDIA_VIDEO)
                        nminfo = new CVideoInfo;
-                       ((CVideoInfo *)nminfo)->Create();
-                       ((CVideoInfo *)nminfo)->Duplicate(minfo);
-               }
+
+               nminfo->Create();
+               nminfo->Duplicate(minfo);
 
                m->medialist = eina_list_append(m->medialist, nminfo);
        }
@@ -341,7 +335,7 @@ bool CMediadata::m_UpdateImageInfo(media_info_h media_h)
        if (!minfo)
                return false;
 
-       if (!((CImageInfo *)minfo)->Update()) {
+       if (!minfo->Update()) {
                _ERR("Get media info failed");
                return false;
        }
@@ -373,49 +367,32 @@ bool CMediadata::m_HandleEachMediaInfo(media_info_h media_h)
                return false;
        }
 
-       if (type == MEDIA_CONTENT_TYPE_IMAGE) {
+       if (type == MEDIA_CONTENT_TYPE_IMAGE)
                minfo = new CImageInfo;
-               if (!minfo) {
-                       _ERR("MediaInfo Create Failed");
-                       return false;
-               }
-               ((CImageInfo *)minfo)->Create();
-
-               minfo->SetMediaInfo(media_h);
-
-               if (!((CImageInfo *)minfo)->Update())
-                       goto error;
-       } else if (type == MEDIA_CONTENT_TYPE_VIDEO) {
+       else if (type == MEDIA_CONTENT_TYPE_VIDEO)
                minfo = new CVideoInfo;
-               if (!minfo) {
-                       _ERR("MediaInfo Create Failed");
-                       return false;
-               }
-               ((CVideoInfo *)minfo)->Create();
-
-               minfo->SetMediaInfo(media_h);
 
-               if (!((CVideoInfo *)minfo)->Update())
-                       goto error;
+       if (!minfo) {
+               _ERR("MediaInfo create failed");
+               return false;
        }
 
-       minfo->SetType(type);
-
-       m->folder_medialist = eina_list_append(m->folder_medialist, minfo);
+       minfo->Create();
 
-       return true;
+       minfo->SetMediaInfo(media_h);
+       minfo->SetType(type);
 
-error:
-       _ERR("Erroring in reading mediadata");
+       if (!minfo->Update()) {
+               _ERR("MediaInfo update failed");
+               minfo->Destroy();
+               delete minfo;
 
-       if (type == MEDIA_CONTENT_TYPE_IMAGE)
-               ((CImageInfo *)minfo)->Destroy();
-       else if (type == MEDIA_CONTENT_TYPE_VIDEO)
-               ((CVideoInfo *)minfo)->Destroy();
+               return false;
+       }
 
-       delete minfo;
+       m->folder_medialist = eina_list_append(m->folder_medialist, minfo);
 
-       return false;
+       return true;
 }
 
 bool CMediadata::sm_CbEachFolderInfo(media_folder_h folder, void *dt)
index fe2e427..2dfbe78 100644 (file)
@@ -98,7 +98,7 @@ error:
 int CVideoInfo::Duration(void)
 {
        if (!m)
-               return false;
+               return -1;
 
        return m->duration;
 }
@@ -106,11 +106,30 @@ int CVideoInfo::Duration(void)
 int CVideoInfo::PlayedPosition(void)
 {
        if (!m)
-               return false;
+               return -1;
 
        return m->played_position;
 }
 
+int CVideoInfo::GetInfo(int type)
+{
+       int info;
+
+       switch (type) {
+       case VIDEO_DURATION:
+               info = Duration();
+               break;
+       case VIDEO_PLAYED_POSITION:
+               info = PlayedPosition();
+               break;
+       default:
+               info = -1;
+               break;
+       }
+
+       return info;
+}
+
 bool CVideoInfo::m_SetDuration(int duration)
 {
        if (!m)
index 338c180..c04a661 100644 (file)
@@ -173,7 +173,7 @@ char *CCtxtMenuView::sm_CbGridTextGet(void *data, Evas_Object *obj, const char *
 
                return strdup(display_name);
        } else if (!strcmp(part, "elm.text.playtime")) {
-               duration = ((CVideoInfo *)minfo)->Duration();
+               duration = minfo->GetInfo(CVideoInfo::VIDEO_DURATION);
 
                return util_get_time_string(duration);
        }
index aac19e0..99fe22a 100644 (file)
@@ -95,7 +95,7 @@ char *CAllLayout::sm_CbGridTextGet(void *data, Evas_Object *obj, const char *par
 
                return strdup(display_name);
        } else if (!strcmp(part, "elm.text.playtime")) {
-               duration = ((CVideoInfo *)minfo)->Duration();
+               duration = minfo->GetInfo(CVideoInfo::VIDEO_DURATION);
 
                return util_get_time_string(duration);
        }