bool m_DestroyFilter(filter_h filter);
public:
- CMediadata() : m(0) {};
+ CMediadata() : CMediaContentListener(), m(0) {};
~CMediadata() {};
static bool Initialize(void);
if (m->folder_medialist)
m_DeleteMediaList(E_TYPE_FOLDER_MEDIA);
-
- CMediaContentListener::Destroy();
}
bool CMediadata::m_CreateFilter(filter_h *filter, int type)
if (!instance)
return false;
+ if (!instance->Create()) {
+ _ERR("MediaContentListener create failed");
+ goto err;
+ }
+
instance->m = new SMediadata;
if (!instance->m) {
_ERR("Mediadata init failed");
- delete instance;
- instance = NULL;
- return false;
+ instance->Destroy();
+ goto err;
}
ret = media_content_connect();
if (ret != MEDIA_CONTENT_ERROR_NONE) {
_ERR("Media Content Connect Failed");
- return false;
+ instance->Destroy();
+ delete instance->m;
+ goto err;
}
g_ref_count++;
return true;
+
+err:
+ delete instance;
+ instance = NULL;
+ return false;
}
void CMediadata::Finalize(void)
g_ref_count--;
if (g_ref_count == 0) {
- instance->m_DeleteFolderList();
- instance->m_DeleteEventList();
- instance->m_DeleteMediaList(E_TYPE_MEDIA);
- instance->m_DeleteMediaList(E_TYPE_FOLDER_MEDIA);
+ instance->DestroyMediaList();
+ instance->Destroy();
ret = media_content_disconnect();
if (ret != MEDIA_CONTENT_ERROR_NONE)
m_DestroyFilter(m->filter);
- if (!CMediaContentListener::Create()) {
- _ERR("MediaContentListener create failed");
- return false;
- }
-
return true;
}
return false;
}
- m->pMediadata->DestroyMediaList();
m->pMediadata->CreateMediaList(m->source, m->media_type);
vd->minfo = m->pMediadata->FindMediaInfo(m->pMediadata->MediaList(), m->id);