#include <Eina.h>
#include <utilX.h>
#include <efl_extension.h>
+#include <AppCommon.h>
+#include <ViewMgr.h>
+#include <BaseView.h>
#include <dbg.h>
#include "define.h"
#include "i18n.h"
#include "control.h"
#include "volume.h"
#include "slider.h"
+#include "view_player.h"
#define BTN_ID "BTN_ID"
-#define TIME_INTERVAL 1.0
#define TEXT_NOVIDEO N_("No Video")
#define TEXT_NORES N_("---- x ----")
#define TEXT_NODATE N_("----.--.--")
#define TEXT_NOSOURCE N_("-")
-#define SPEED_MIN 0
-#define SPEED_MAX 3
-
#define CONTROL_BTNS 7
static const char *_control_name[] = {
"settings"
};
-static int _speed[] = {
- 0,
- 2000,
- 4000,
- 8000
+enum update_action {
+ ACTION_HIDE,
+ ACTION_SHOW,
+ ACTION_PLAY
};
typedef void (*btn_event_cb)(void *dt);
-struct viewdata {
+struct SPlayerView {
Evas_Object *win;
Evas_Object *base;
+ char *id;
struct playermgr *player;
struct control_data *control;
struct slider_data *slider;
struct timeout_handler *timeout_handle;
- bool view_hidden;
+ bool bar_hidden;
bool error;
Ecore_Timer *drawanim_timer;
- Ecore_Timer *ffrew_timer;
int duration;
- int rew_speed;
- int ff_speed;
int repeat;
};
E_REPEAT_NONE
};
-static void _show_view(struct viewdata *data);
-
-struct viewdata *view_player_init(Evas_Object *win, char *path, char *playlist)
-{
- struct viewdata *data;
- int r;
-
- if (!win) {
- _ERR("invalid parameter");
- return NULL;
- }
-
- data = (struct viewdata *)calloc(1, sizeof(*data));
- if (!data) {
- _ERR("alloc failed");
- return NULL;
- }
-
- data->win = win;
- data->error = false;
-
- r = mediadata_init();
- if (r < 0)
- _ERR("mediadata init failed");
-
- data->player = playermgr_init(win, path, playlist);
- if (!data->player)
- _ERR("player init failed");
-
- data->control = control_init();
- if (!data->control)
- _ERR("control init failed");
-
- data->volume = volume_init();
- if (!data->volume)
- _ERR("volume init failed");
-
- data->slider = slider_init();
- if (!data->slider)
- _ERR("slider init failed");
-
- return data;
-}
-
-void view_player_fini(struct viewdata *data)
-{
- if (!data)
- return;
-
- if (data->ffrew_timer)
- ecore_timer_del(data->ffrew_timer);
-
- if (data->drawanim_timer)
- ecore_timer_del(data->drawanim_timer);
-
- mediadata_fini();
-
- playermgr_fini(data->player);
-
- volume_fini(data->volume);
- slider_fini(data->slider);
- control_fini(data->control);
-
- timeout_handler_fini(data->timeout_handle);
-
- free(data);
-}
-
-static void _update_info_bar_err(struct viewdata *data)
+void CPlayerView::m_UpdateInfoBar(void)
{
Evas_Object *obj;
- obj = data->base;
+ obj = m->base;
/* Title */
elm_object_part_text_set(obj, PART_TITLETEXT, _(TEXT_NOVIDEO));
elm_object_part_text_set(obj, PART_RESOLUTIONTEXT, _(TEXT_NORES));
}
-static int _update_info_bar(struct viewdata *data, struct mediadata *md)
+void CPlayerView::m_UpdateInfoBar(struct mediadata *md)
{
const char *name;
char buf[32];
struct tm tm;
const struct videodata *vd;
- if (!md) {
- _ERR("invalid parameter");
- return -1;
- }
-
/* Title */
name = mediadata_get_displayname(md);
if (name)
- elm_object_part_text_set(data->base, PART_TITLETEXT, name);
+ elm_object_part_text_set(m->base, PART_TITLETEXT, name);
/* Created Time */
video_time = mediadata_get_modifiedtime(md);
snprintf(buf, sizeof(buf), "%s", _(TEXT_NODATE));
}
- elm_object_part_text_set(data->base, PART_DATETEXT, buf);
+ elm_object_part_text_set(m->base, PART_DATETEXT, buf);
/* Source */
/* TODO: temporary, get actual values and set */
- elm_object_part_text_set(data->base, PART_SOURCETEXT, _("TV"));
+ elm_object_part_text_set(m->base, PART_SOURCETEXT, _("TV"));
/* Playlist Count */
- playermgr_get_play_count(data->player, buf, sizeof(buf));
- elm_object_part_text_set(data->base, PART_CURRENTTEXT, buf);
+ playermgr_get_play_count(m->player, buf, sizeof(buf));
+ elm_object_part_text_set(m->base, PART_CURRENTTEXT, buf);
/* Resolution */
vd = mediadata_get_video_info(md);
videodata_get_width(vd),
videodata_get_height(vd));
- data->duration = videodata_get_duration(vd);
+ m->duration = videodata_get_duration(vd);
} else {
snprintf(buf, sizeof(buf), "%s", _(TEXT_NORES));
- data->duration = 0;
+ m->duration = 0;
}
- elm_object_part_text_set(data->base, PART_RESOLUTIONTEXT, buf);
-
- return 0;
+ elm_object_part_text_set(m->base, PART_RESOLUTIONTEXT, buf);
}
-static int _play_video(struct viewdata *data)
+bool CPlayerView::m_PlayVideo(void)
{
struct mediadata *md;
const char *path;
int r;
- r = playermgr_play_video(data->player);
+ r = playermgr_play_video(m->player);
if (r < 0)
- return r;
+ return false;
- path = playermgr_get_video_path(data->player);
+ path = playermgr_get_video_path(m->player);
md = mediadata_create(path);
if (md) {
- _update_info_bar(data, md);
+ m_UpdateInfoBar(md);
mediadata_destroy(md);
}
- slider_reset(data->slider, data->duration);
- control_signal_emit(data->control, E_PLAYPAUSE_BTN,
- SIG_SET_PAUSE, "");
+ slider_reset(m->slider, m->duration);
+ control_signal_emit(m->control, E_PLAYPAUSE_BTN, SIG_SET_PAUSE, "");
- if (data->view_hidden) {
- _show_view(data);
- timeout_handler_reset(data->timeout_handle);
+ if (m->bar_hidden) {
+ m_ShowBar();
+ timeout_handler_reset(m->timeout_handle);
}
- return 0;
+ return true;
}
-static Eina_Bool _ffrew_timer_cb(void *dt)
+void CPlayerView::sm_EvtRewindBtn(void *dt)
{
- struct viewdata *data;
- int pos;
+ SPlayerView *data;
int r;
if (!dt)
- return ECORE_CALLBACK_CANCEL;
-
- data = (viewdata *)dt;
-
- if (!data->player)
- return ECORE_CALLBACK_CANCEL;
-
- playermgr_get_position(data->player, &pos);
-
- if (data->ff_speed) {
- pos = pos + _speed[data->ff_speed];
- if (pos > data->duration)
- pos = data->duration;
- } else if (data->rew_speed) {
- pos = pos - _speed[data->rew_speed];
- if (pos < 0)
- pos = 0;
- } else {
- r = playermgr_resume(data->player);
- if (r < 0)
- return ECORE_CALLBACK_RENEW;
-
- slider_resume(data->slider);
-
- return ECORE_CALLBACK_CANCEL;
- }
-
- playermgr_seek(data->player, pos, NULL, NULL);
-
- if (data->rew_speed && pos <= 0) {
- data->rew_speed = SPEED_MIN;
- return ECORE_CALLBACK_CANCEL;
- }
-
- if (data->ff_speed && pos >= data->duration) {
- data->ff_speed = SPEED_MIN;
- return ECORE_CALLBACK_CANCEL;
- }
-
- if (ecore_timer_interval_get(data->ffrew_timer) != TIME_INTERVAL)
- ecore_timer_interval_set(data->ffrew_timer, TIME_INTERVAL);
-
- return ECORE_CALLBACK_RENEW;
-}
-
-static void _stop_ffrew_timer(struct viewdata *data)
-{
- if (!data)
return;
- data->ff_speed = SPEED_MIN;
- data->rew_speed = SPEED_MIN;
-
- if (data->ffrew_timer) {
- ecore_timer_del(data->ffrew_timer);
- data->ffrew_timer = NULL;
- }
-}
+ data = (SPlayerView *)dt;
-static void _start_ffrew_timer(struct viewdata *data)
-{
- playermgr_pause(data->player);
- slider_pause(data->slider);
+ r = playermgr_set_rew(data->player, data->duration);
- if (!data->ffrew_timer) {
- data->ffrew_timer = ecore_timer_add(0.0,
- _ffrew_timer_cb, data);
- if (!data->ffrew_timer)
- return;
- } else {
- ecore_timer_interval_set(data->ffrew_timer, 0.0);
- ecore_timer_reset(data->ffrew_timer);
+ if (r > 0) {
+ slider_pause(data->slider);
+ control_signal_emit(data->control, E_PLAYPAUSE_BTN,
+ SIG_SET_PLAY, "");
}
-
- control_signal_emit(data->control, E_PLAYPAUSE_BTN,
- SIG_SET_PLAY, "");
-}
-
-static void _rewind_btn_clicked(void *dt)
-{
- struct viewdata *data;
-
- if (!dt)
- return;
-
- data = (viewdata *)dt;
-
- data->ff_speed = SPEED_MIN;
-
- if (data->rew_speed == SPEED_MAX)
- return;
-
- if (data->rew_speed == SPEED_MIN)
- _start_ffrew_timer(data);
-
- data->rew_speed++;
}
-static void _forward_btn_clicked(void *dt)
+void CPlayerView::sm_EvtForwardBtn(void *dt)
{
- struct viewdata *data;
+ SPlayerView *data;
+ int r;
if (!dt)
return;
- data = (viewdata *)dt;
-
- data->rew_speed = SPEED_MIN;
-
- if (data->ff_speed == SPEED_MAX)
- return;
+ data = (SPlayerView *)dt;
- if (data->ff_speed == SPEED_MIN)
- _start_ffrew_timer(data);
+ r = playermgr_set_ff(data->player, data->duration);
- data->ff_speed++;
+ if (r > 0) {
+ slider_pause(data->slider);
+ control_signal_emit(data->control, E_PLAYPAUSE_BTN,
+ SIG_SET_PLAY, "");
+ }
}
-static void _prev_btn_clicked(void *dt)
+void CPlayerView::sm_EvtPrevBtn(void *dt)
{
- struct viewdata *data;
+ SPlayerView *data;
+ update_action action;
if (!dt)
return;
- data = (viewdata *)dt;
-
- _stop_ffrew_timer(data);
+ data = (SPlayerView *)dt;
+ playermgr_stop_ffrew(data->player);
playermgr_set_prev_video(data->player);
- _play_video(data);
+
+ action = ACTION_PLAY;
+ CViewMgr::GetInstance()->UpdateView(data->id, (void *)&action);
}
-static void _next_btn_clicked(void *dt)
+void CPlayerView::sm_EvtNextBtn(void *dt)
{
- struct viewdata *data;
+ SPlayerView *data;
+ update_action action;
if (!dt)
return;
- data = (viewdata *)dt;
-
- _stop_ffrew_timer(data);
+ data = (SPlayerView *)dt;
+ playermgr_stop_ffrew(data->player);
playermgr_set_next_video(data->player, EINA_TRUE);
- _play_video(data);
+
+ action = ACTION_PLAY;
+ CViewMgr::GetInstance()->UpdateView(data->id, (void *)&action);
}
-static void _repeat_btn_clicked(void *dt)
+void CPlayerView::sm_EvtReapeatBtn(void *dt)
{
- struct viewdata *data;
+ SPlayerView *data;
if (!dt)
return;
- data = (viewdata *)dt;
+ data = (SPlayerView *)dt;
switch (data->repeat) {
case E_REPEAT_ALL:
}
}
-static void _settings_btn_clicked(void *dt)
+void CPlayerView::sm_EvtSettingBtn(void *dt)
{
}
-static void _playpause_btn_clicked(void *dt)
+void CPlayerView::sm_EvtPlayBtn(void *dt)
{
- struct viewdata *data;
+ SPlayerView *data;
player_state_e state;
int r;
if (!dt)
return;
- data = (viewdata *)dt;
+ data = (SPlayerView *)dt;
- if (data->ff_speed || data->rew_speed) {
- data->ff_speed = SPEED_MIN;
- data->rew_speed = SPEED_MIN;
+ if (playermgr_get_ffrew(data->player)) {
+ playermgr_stop_ffrew(data->player);
+ playermgr_resume(data->player);
+ slider_resume(data->slider);
return;
}
}
}
-static void _control_event(void *dt, const char *ev)
+void CPlayerView::sm_EvtControlBtn(void *dt, const char *ev)
{
- struct viewdata *data;
+ SPlayerView *data;
btn_event_cb cbs[] = {
- _prev_btn_clicked,
- _rewind_btn_clicked,
- _playpause_btn_clicked,
- _forward_btn_clicked,
- _next_btn_clicked,
- _repeat_btn_clicked,
- _settings_btn_clicked,
+ sm_EvtPrevBtn,
+ sm_EvtRewindBtn,
+ sm_EvtPlayBtn,
+ sm_EvtForwardBtn,
+ sm_EvtNextBtn,
+ sm_EvtReapeatBtn,
+ sm_EvtSettingBtn,
};
int i;
if (!dt || !ev)
return;
- data = (viewdata *)dt;
+ data = (SPlayerView *)dt;
for (i = 0; i < CONTROL_BTNS; i++) {
if (!strcmp(_control_name[i], ev))
}
}
-static void _player_completed(void *dt)
+void CPlayerView::sm_CbPlayComplete(void *dt)
{
- struct viewdata *data;
+ SPlayerView *data;
+ update_action action;
Eina_Bool r;
if (!dt)
return;
- data = (viewdata *)dt;
+ data = (SPlayerView *)dt;
r = EINA_TRUE;
if (data->repeat == E_REPEAT_NONE)
if (!r)
elm_exit();
- _play_video(data);
+ action = ACTION_PLAY;
+ CViewMgr::GetInstance()->UpdateView(data->id, (void *)&action);
}
-static void _show_view_finish_cb(void *dt, Evas_Object *obj,
+void CPlayerView::sm_CbShowViewFinish(void *dt, Evas_Object *obj,
const char *emission, const char *source)
{
- struct viewdata *data;
+ SPlayerView *data;
if (!dt)
return;
- data = (viewdata *)dt;
+ data = (SPlayerView *)dt;
control_show(data->control);
}
-static void _show_view(struct viewdata *data)
+void CPlayerView::m_ShowBar(void)
{
- volume_hide_bar(data->volume);
+ volume_hide_bar(m->volume);
- if (data->view_hidden) {
- elm_object_signal_emit(data->base, SIG_SHOW_VIEW, "");
- data->view_hidden = false;
- slider_resume(data->slider);
+ if (m->bar_hidden) {
+ elm_object_signal_emit(m->base, SIG_SHOW_VIEW, "");
+ m->bar_hidden = false;
+ slider_resume(m->slider);
}
}
-static void _hide_view(struct viewdata *data)
+void CPlayerView::m_HideBar(void)
{
- elm_object_signal_emit(data->base, SIG_HIDE_VIEW, "");
- data->view_hidden = true;
- slider_pause(data->slider);
+ elm_object_signal_emit(m->base, SIG_HIDE_VIEW, "");
+ m->bar_hidden = true;
- control_hide(data->control);
+ slider_pause(m->slider);
+ control_hide(m->control);
}
-static void _timeout_event(void *dt, int type, void *ev)
+void CPlayerView::sm_CbTimeoutEvent(void *dt, int type, void *ev)
{
- struct viewdata *data;
+ SPlayerView *data;
if (!dt)
return;
- data = (viewdata *)dt;
+ data = (SPlayerView *)dt;
- if (!data->error)
- _hide_view(data);
+ if (!data->error) {
+ update_action action;
+
+ action = ACTION_HIDE;
+ CViewMgr::GetInstance()->UpdateView(data->id, (void *)&action);
+ }
}
-static void _back_event(void *dt, Evas_Object *obj, void *ev)
+void CPlayerView::sm_EvtBack(void *dt, Evas_Object *obj, void *ev)
{
- struct viewdata *data;
+ SPlayerView *data;
if (!dt)
return;
- data = (viewdata *)dt;
+ data = (SPlayerView *)dt;
- if (data->view_hidden)
- _show_view(data);
- else
+ if (data->bar_hidden) {
+ update_action action;
+
+ action = ACTION_SHOW;
+ CViewMgr::GetInstance()->UpdateView(data->id, (void *)&action);
+ } else {
elm_exit();
+ }
}
-static void _handle_volume_key(struct viewdata *data, enum volume_val val)
+void CPlayerView::sm_EvtVolume(SPlayerView *data, int val)
{
- if (!data->view_hidden)
- _hide_view(data);
+ if (!data->bar_hidden) {
+ update_action action;
- volume_handle_key(data->volume, val);
+ action = ACTION_HIDE;
+ CViewMgr::GetInstance()->UpdateView(data->id, (void *)&action);
+ }
+
+ volume_handle_key(data->volume, (enum volume_val)val);
}
-static void _ecore_event(void *dt, int type, void *ei)
+void CPlayerView::sm_CbEcoreEvent(void *dt, int type, void *ei)
{
- struct viewdata *data;
+ SPlayerView *data;
+ bool update;
if (!dt)
return;
- data = (viewdata *)dt;
+ data = (SPlayerView *)dt;
+ update = false;
if (type == ECORE_EVENT_KEY_UP) {
Evas_Event_Key_Up *ev;
return;
if (!strcmp(ev->keyname, KEY_VOLUMEUP))
- _handle_volume_key(data, E_VOLUME_UP);
+ sm_EvtVolume(data, E_VOLUME_UP);
else if (!strcmp(ev->keyname, KEY_VOLUMEDOWN))
- _handle_volume_key(data, E_VOLUME_DOWN);
+ sm_EvtVolume(data, E_VOLUME_DOWN);
else if (!strcmp(ev->keyname, KEY_MUTE))
- _handle_volume_key(data, E_VOLUME_MUTE);
+ sm_EvtVolume(data, E_VOLUME_MUTE);
else
- _show_view(data);
+ update = true;
} else if (type == ECORE_EVENT_MOUSE_MOVE) {
- _show_view(data);
+ update = true;
+ }
+
+ if (update) {
+ update_action action;
+
+ action = ACTION_SHOW;
+ CViewMgr::GetInstance()->UpdateView(data->id, (void *)&action);
}
}
-static int _add_controls(struct viewdata *data)
+bool CPlayerView::m_AddControls(void)
{
- if (!control_add_bar(data->control, data->base,
- _control_name, CONTROL_BTNS))
- return -1;
+ if (!control_add_bar(m->control, m->base, _control_name, CONTROL_BTNS))
+ return false;
- data->rew_speed = 0;
- data->ff_speed = 0;
- data->repeat = E_REPEAT_ALL;
+ m->repeat = E_REPEAT_ALL;
- control_handler_init(data->control, _control_event, data);
+ control_handler_init(m->control, sm_EvtControlBtn, m);
- if (!slider_add_bar(data->slider, data->base, data->player))
- return -1;
+ if (!slider_add_bar(m->slider, m->base, m->player))
+ return false;
- if (!volume_add_bar(data->volume, data->win))
- return -1;
+ if (!volume_add_bar(m->volume, m->win))
+ return false;
- data->timeout_handle = timeout_handler_init(TIMEOUT_VIDEOPLAYER,
- _timeout_event, data, _ecore_event, data);
+ m->timeout_handle = timeout_handler_init(TIMEOUT_VIDEOPLAYER,
+ sm_CbTimeoutEvent, m, sm_CbEcoreEvent, m);
- eext_object_event_callback_add(data->base,
- EEXT_CALLBACK_BACK, _back_event, data);
+ eext_object_event_callback_add(m->base,
+ EEXT_CALLBACK_BACK, sm_EvtBack, m);
- if (!data->timeout_handle)
- return -1;
+ if (!m->timeout_handle)
+ return false;
- return 0;
+ return true;
}
-static Eina_Bool _drawanim_timer_cb(void *dt)
+Eina_Bool CPlayerView::sm_CbDrawAnimation(void *dt)
{
- struct viewdata *data;
+ SPlayerView *data;
if (!dt)
return ECORE_CALLBACK_CANCEL;
- data = (viewdata *)dt;
+ data = (SPlayerView *)dt;
elm_object_signal_emit(data->base, SIG_SHOW_VIEW, "");
control_focus_set(data->control, E_PLAYPAUSE_BTN, EINA_TRUE);
return ECORE_CALLBACK_CANCEL;
}
-int view_player_create(struct viewdata *data)
+void CPlayerView::m_PlayerInit(SPlayerParam *param)
+{
+ int r;
+
+ r = mediadata_init();
+ if (r < 0)
+ _ERR("mediadata init failed");
+
+ if (param->id)
+ m->id = strdup(param->id);
+
+ m->player = playermgr_init(m->win, param->filepath, param->playlist);
+ if (!m->player)
+ _ERR("player init failed");
+
+ m->control = control_init();
+ if (!m->control)
+ _ERR("control init failed");
+
+ m->volume = volume_init();
+ if (!m->volume)
+ _ERR("volume init failed");
+
+ m->slider = slider_init();
+ if (!m->slider)
+ _ERR("slider init failed");
+}
+
+bool CPlayerView::m_UiInit(void)
{
Evas_Object *base;
- if (!data) {
- _ERR("invalid parameter");
- return -1;
+ base = elm_layout_add(m->win);
+ if (!base) {
+ _ERR("failed to add layout");
+ return false;
}
- /* Create UI */
- base = elm_layout_add(data->win);
- if (!base)
- goto error;
+ m->base = base;
- data->base = base;
-
- if (!elm_layout_file_set(base, EDJEFILE, GRP_VIDEO_PLAYER))
- goto error;
+ if (!elm_layout_file_set(base, EDJEFILE, GRP_VIDEO_PLAYER)) {
+ _ERR("failed to layout file set");
+ return false;
+ }
- if (_add_controls(data) < 0)
- goto error;
+ if (!m_AddControls()) {
+ _ERR("failed to add controls");
+ return false;
+ }
evas_object_size_hint_weight_set(base,
EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(data->win, base);
+ elm_win_resize_object_add(m->win, base);
evas_object_show(base);
elm_object_focus_allow_set(base, EINA_FALSE);
- if (_play_video(data) < 0) {
+ return true;
+}
+
+bool CPlayerView::Create(void *data)
+{
+ ASSERT(!m);
+ ASSERT(data);
+
+ Evas_Object *win;
+ bool r;
+
+ win = CViewMgr::GetInstance()->Window();
+ ASSERT(win);
+
+ m = new SPlayerView;
+ if (!m) {
+ _ERR("alloc failed");
+ return false;
+ }
+
+ m->win = win;
+ m->error = false;
+
+ m_PlayerInit((SPlayerParam *)data);
+
+ r = m_UiInit();
+ if (!r) {
+ delete m;
+ m = NULL;
+ return false;
+ }
+
+ if (!m_PlayVideo()) {
_ERR("failed to play video");
- data->error = true;
+ m->error = true;
- _update_info_bar_err(data);
- control_hide(data->control);
- elm_object_signal_emit(data->base, SIG_SHOW_VIEW, "");
- return 0;
+ m_UpdateInfoBar();
+ control_hide(m->control);
+ elm_object_signal_emit(m->base, SIG_SHOW_VIEW, "");
+
+ CBaseView::Create(NULL);
+ return true;
}
- playermgr_set_completed_cb(data->player, _player_completed, data);
+ playermgr_set_completed_cb(m->player, sm_CbPlayComplete, m);
- elm_object_signal_callback_add(base, "show,view,finish", "",
- _show_view_finish_cb, data);
+ elm_object_signal_callback_add(m->base, "show,view,finish", "",
+ sm_CbShowViewFinish, m);
- data->drawanim_timer = ecore_timer_add(0.8, _drawanim_timer_cb, data);
- if (!data->drawanim_timer)
- goto error;
+ m->drawanim_timer = ecore_timer_add(0.8, sm_CbDrawAnimation, m);
+ if (!m->drawanim_timer) {
+ _ERR("failed to add draw timer");
+ return false;
+ }
- return 0;
+ CBaseView::Create(NULL);
-error:
- _ERR("Error in view player create");
- return -1;
+ return true;
}
-int view_player_pause(struct viewdata *data)
+void CPlayerView::Destroy(void)
{
- elm_exit();
+ ASSERT(m);
+
+ CBaseView::Destory();
+
+ if (m->drawanim_timer)
+ ecore_timer_del(m->drawanim_timer);
+
+ mediadata_fini();
+
+ playermgr_fini(m->player);
+
+ volume_fini(m->volume);
+ slider_fini(m->slider);
+ control_fini(m->control);
+
+ timeout_handler_fini(m->timeout_handle);
+
+ free(m->id);
+
+ delete m;
+ m = NULL;
+}
- return 0;
+Evas_Object *CPlayerView::Base(void)
+{
+ ASSERT(m);
+
+ return m->base;
+}
+
+void CPlayerView::t_OnShow(void)
+{
+ ASSERT(m);
+
+ evas_object_show(m->base);
+}
+
+void CPlayerView::t_OnHide(void)
+{
+ evas_object_hide(m->base);
+}
+
+void CPlayerView::t_OnPause(void)
+{
+ elm_exit();
}
-int view_player_resume(struct viewdata *data)
+void CPlayerView::t_OnUpdate(void *dt)
{
- return 0;
+ update_action *action;
+
+ if (!dt)
+ return;
+
+ action = (update_action *)dt;
+
+ switch (*action) {
+ case ACTION_HIDE:
+ m_HideBar();
+ break;
+ case ACTION_SHOW:
+ m_ShowBar();
+ break;
+ case ACTION_PLAY:
+ m_PlayVideo();
+ break;
+ }
}