volume: convert to class 00/35400/1
authorMinkyu Kang <mk7.kang@samsung.com>
Fri, 13 Feb 2015 06:20:06 +0000 (15:20 +0900)
committerMinkyu Kang <mk7.kang@samsung.com>
Fri, 13 Feb 2015 06:20:06 +0000 (15:20 +0900)
Change-Id: Ifb117fd21348be5d57c2acc8acba2b52082f1d2f
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
include/volume.h
src/view_player.cpp
src/volume.cpp

index e89af5c..9305709 100644 (file)
@@ -23,44 +23,48 @@ enum volume_val {
        E_VOLUME_UP = 1
 };
 
-struct volume_data;
+struct SVolumeData;
 
-/**
- * Init volume data
- *
- * @return the pointer of allocated volume_data struct
- */
-struct volume_data *volume_init(void);
+class CVolume {
+private:
+       SVolumeData *m;
 
-/**
- * Fini volume data
- *
- * @param data the pointer of volume_data struct
- */
-void volume_fini(struct volume_data *data);
+private:
+       void m_SetVolume(volume_val val);
+       void m_SetMute(bool mute);
+       void m_UpdateVolume(void);
 
-/**
- * Add a volume bar
- *
- * @param data the pointer of volume_data struct
- * @param base the base object of volume layout
- * @return if success EINA_TRUE is returned otherwise will return EINA_FALSE
- */
-Eina_Bool volume_add_bar(struct volume_data *data, Evas_Object *base);
+private:
+       static Eina_Bool sm_CbTimer(void *dt);
 
-/*
- * hide the volume bar
- *
- * @param data the pointer of volume_data struct
- */
-void volume_hide_bar(struct volume_data *data);
+public:
+       CVolume(void) : m(0) {}
+       virtual ~CVolume(void) {}
 
-/*
- * Handle the volume key
- *
- * @param data the pointer of volume_data struct
- * @param val value of volme key
- */
-void volume_handle_key(struct volume_data *data, enum volume_val val);
+       /**
+        * Create the volume
+        *
+        * @param base the base object of volume layout
+        * @return if success true is returned otherwise will return false
+        */
+       bool Create(Evas_Object *base);
+
+       /**
+        * Destroy the volume
+        */
+       void Destroy(void);
+
+       /*
+        * show the volume
+        *
+        * @param val value of volme key
+        */
+       void Show(volume_val val);
+
+       /*
+        * hide the volume
+        */
+       void Hide(void);
+};
 
 #endif
index a76d115..23fb972 100644 (file)
@@ -60,8 +60,8 @@ struct SPlayerView {
        char *id;
 
        struct playermgr *player;
-       struct volume_data *volume;
 
+       CVolume *volume;
        CVideoController *control;
        CVideoSlider *slider;
 
@@ -386,7 +386,7 @@ void CPlayerView::sm_CbShowViewFinish(void *dt, Evas_Object *obj,
 
 void CPlayerView::m_ShowBar(void)
 {
-       volume_hide_bar(m->volume);
+       m->volume->Hide();
 
        if (m->bar_hidden) {
                elm_object_signal_emit(m->base, SIG_SHOW_VIEW, "");
@@ -449,7 +449,7 @@ void CPlayerView::sm_EvtVolume(SPlayerView *data, int val)
                CViewMgr::GetInstance()->UpdateView(data->id, (void *)&action);
        }
 
-       volume_handle_key(data->volume, (enum volume_val)val);
+       data->volume->Show((volume_val)val);
 }
 
 void CPlayerView::sm_CbEcoreEvent(void *dt, int type, void *ei)
@@ -502,7 +502,7 @@ bool CPlayerView::m_AddControls(void)
        if (!m->slider->Create(m->base, m->player))
                return false;
 
-       if (!volume_add_bar(m->volume, m->win))
+       if (!m->volume->Create(m->win))
                return false;
 
        m->timeout_handle = timeout_handler_init(TIMEOUT_VIDEOPLAYER,
@@ -553,7 +553,7 @@ void CPlayerView::m_ControlInit(SPlayerParam *param)
        if (!m->control)
                _ERR("control init failed");
 
-       m->volume = volume_init();
+       m->volume = new CVolume;
        if (!m->volume)
                _ERR("volume init failed");
 
@@ -666,12 +666,13 @@ void CPlayerView::Destroy(void)
 
        playermgr_fini(m->player);
 
-       volume_fini(m->volume);
-
        timeout_handler_fini(m->timeout_handle);
 
        free(m->id);
 
+       m->volume->Destroy();
+       delete m->volume;
+
        m->control->Destroy();
        delete m->control;
 
index 1d0880b..2ac0fc0 100644 (file)
 #include <Elementary.h>
 #include <Eina.h>
 #include <media/sound_manager.h>
+#include <AppCommon.h>
 #include <dbg.h>
 #include "define.h"
 #include "volume.h"
 
 #define TIME_INTERVAL 3.0
 
-struct volume_data {
+struct SVolumeData {
        Evas_Object *ly;
        Evas_Object *bar;
        Ecore_Timer *timer;
        int volume;
-       Eina_Bool mute;
+       bool mute;
 };
 
-static void _set_mute(struct volume_data *data, Eina_Bool mute)
+void CVolume::m_SetMute(bool mute)
 {
        int r;
        int vol;
 
-       if (data->mute == mute)
+       if (m->mute == mute)
                return;
 
        if (mute) {
@@ -44,15 +45,15 @@ static void _set_mute(struct volume_data *data, Eina_Bool mute)
                if (r < 0)
                        return;
 
-               data->volume = vol;
-               data->mute = EINA_TRUE;
+               m->volume = vol;
        } else {
-               sound_manager_set_volume(SOUND_TYPE_MEDIA, data->volume);
-               data->mute = EINA_FALSE;
+               sound_manager_set_volume(SOUND_TYPE_MEDIA, m->volume);
        }
+
+       m->mute = mute;
 }
 
-static void _handle_volume(struct volume_data *data, enum volume_val val)
+void CVolume::m_SetVolume(volume_val val)
 {
        int vol;
        int r;
@@ -62,7 +63,7 @@ static void _handle_volume(struct volume_data *data, enum volume_val val)
        switch (val) {
        case E_VOLUME_UP:
        case E_VOLUME_DOWN:
-               _set_mute(data, EINA_FALSE);
+               m_SetMute(false);
 
                r = sound_manager_get_volume(SOUND_TYPE_MEDIA, &vol);
                if (r != SOUND_MANAGER_ERROR_NONE) {
@@ -75,21 +76,21 @@ static void _handle_volume(struct volume_data *data, enum volume_val val)
                sound_manager_set_volume(SOUND_TYPE_MEDIA, vol);
                break;
        case E_VOLUME_MUTE:
-               _set_mute(data, !data->mute);
+               m_SetMute(!m->mute);
                break;
        default:
                break;
        }
 }
 
-static void _update_volume_bar(struct volume_data *data)
+void CVolume::m_UpdateVolume(void)
 {
        double val;
        int vol;
        char buf[8];
        int r;
 
-       if (!data->bar)
+       if (!m->bar)
                return;
 
        r = sound_manager_get_volume(SOUND_TYPE_MEDIA, &vol);
@@ -98,28 +99,28 @@ static void _update_volume_bar(struct volume_data *data)
                vol = 0;
        }
 
-       if (vol == 0 || data->mute) {
-               elm_object_signal_emit(data->ly, SIG_VOLUME_MUTE, "base");
+       if (vol == 0 || m->mute) {
+               elm_object_signal_emit(m->ly, SIG_VOLUME_MUTE, "base");
                val = 0;
        } else {
-               elm_object_signal_emit(data->ly, SIG_VOLUME_UNMUTE, "base");
+               elm_object_signal_emit(m->ly, SIG_VOLUME_UNMUTE, "base");
                val = vol * 0.01;
        }
 
-       elm_progressbar_value_set(data->bar, val);
+       elm_progressbar_value_set(m->bar, val);
 
        snprintf(buf, sizeof(buf), "%d", vol);
-       elm_object_part_text_set(data->ly, PART_VOLUME_VALUE, buf);
+       elm_object_part_text_set(m->ly, PART_VOLUME_VALUE, buf);
 }
 
-static Eina_Bool _volume_timer_cb(void *dt)
+Eina_Bool CVolume::sm_CbTimer(void *dt)
 {
-       struct volume_data *data;
+       SVolumeData *data;
 
        if (!dt)
                return ECORE_CALLBACK_CANCEL;
 
-       data = (volume_data *)dt;
+       data = (SVolumeData *)dt;
 
        evas_object_hide(data->ly);
        data->timer = NULL;
@@ -127,47 +128,50 @@ static Eina_Bool _volume_timer_cb(void *dt)
        return ECORE_CALLBACK_CANCEL;
 }
 
-void volume_handle_key(struct volume_data *data, enum volume_val val)
+void CVolume::Show(volume_val val)
 {
-       if (!data)
-               return;
+       ASSERT(m);
 
-       if (!data->timer) {
-               data->timer = ecore_timer_add(TIME_INTERVAL,
-                               _volume_timer_cb, data);
-               evas_object_show(data->ly);
+       if (!m->timer) {
+               m->timer = ecore_timer_add(TIME_INTERVAL, sm_CbTimer, m);
+               evas_object_show(m->ly);
        } else {
-               ecore_timer_reset(data->timer);
+               ecore_timer_reset(m->timer);
        }
 
-       _handle_volume(data, val);
-       _update_volume_bar(data);
+       m_SetVolume(val);
+       m_UpdateVolume();
 }
 
-void volume_hide_bar(struct volume_data *data)
+void CVolume::Hide(void)
 {
-       if (!data->timer)
-               return;
+       ASSERT(m);
 
-       evas_object_hide(data->ly);
-       ecore_timer_del(data->timer);
-       data->timer = NULL;
+       evas_object_hide(m->ly);
+
+       if (m->timer) {
+               ecore_timer_del(m->timer);
+               m->timer = NULL;
+       }
 }
 
-Eina_Bool volume_add_bar(struct volume_data *data, Evas_Object *base)
+bool CVolume::Create(Evas_Object *base)
 {
+       ASSERT(!m);
+
        Evas_Object *ly;
        Evas_Object *bar;
 
-       if (!base) {
-               _ERR("failed to get base object");
-               return EINA_FALSE;
+       m = new SVolumeData;
+       if (!m) {
+               _ERR("allocation fail");
+               return false;
        }
 
        ly = elm_layout_add(base);
        if (!ly) {
-               free(data);
-               return EINA_FALSE;
+               delete m;
+               return false;
        }
 
        elm_layout_file_set(ly, EDJEFILE, GRP_VOLUME);
@@ -177,9 +181,9 @@ Eina_Bool volume_add_bar(struct volume_data *data, Evas_Object *base)
        bar = elm_progressbar_add(ly);
        if (!bar) {
                _ERR("failed to create progressbar");
-               free(data);
+               delete m;
                evas_object_del(ly);
-               return EINA_FALSE;
+               return false;
        }
 
        evas_object_size_hint_weight_set(bar, EVAS_HINT_EXPAND,
@@ -189,29 +193,19 @@ Eina_Bool volume_add_bar(struct volume_data *data, Evas_Object *base)
        elm_object_part_content_set(ly, PART_VOLUME_BAR, bar);
        evas_object_show(bar);
 
-       data->ly = ly;
-       data->bar = bar;
+       m->ly = ly;
+       m->bar = bar;
 
-       return EINA_TRUE;
-}
+       sound_manager_set_session_type(SOUND_SESSION_TYPE_EXCLUSIVE);
 
-void volume_fini(struct volume_data *data)
-{
-       ecore_timer_del(data->timer);
-       free(data);
+       return EINA_TRUE;
 }
 
-struct volume_data *volume_init(void)
+void CVolume::Destroy(void)
 {
-       struct volume_data *data;
-
-       data = (volume_data *)calloc(1, sizeof(*data));
-       if (!data) {
-               _ERR("allocation fail");
-               return NULL;
-       }
-
-       sound_manager_set_session_type(SOUND_SESSION_TYPE_EXCLUSIVE);
+       ASSERT(m);
 
-       return data;
+       ecore_timer_del(m->timer);
+       delete m;
+       m = NULL;
 }