Modify volume implementation. 77/37277/1
authorKim Tae Soo <taesoo46.kim@samsung.com>
Tue, 24 Mar 2015 02:13:30 +0000 (11:13 +0900)
committerKim Tae Soo <taesoo46.kim@samsung.com>
Tue, 24 Mar 2015 02:13:30 +0000 (11:13 +0900)
Change-Id: Ida9d65a70a7d4f5c8c661b3042d44c55989b3abf
Signed-off-by: Kim Tae Soo <taesoo46.kim@samsung.com>
src/playback/volume-control.cpp
src/views/HandleVolume.cpp

index 2f7da36..e45767f 100644 (file)
@@ -21,8 +21,8 @@
 #include "dbg.h"
 
 
-#define VOLUME_MUTE    1
-#define VOLUME_UNMUTE  0
+#define VOLUME_MUTE    1
+#define VOLUME_UNMUTE  0
 
 static int currentVolume = 0;
 static bool muteFlag = false;
@@ -31,19 +31,21 @@ bool CVolumeController::Mute(void)
 {
        int r;
 
-       r = sound_manager_get_volume(SOUND_TYPE_MEDIA, &currentVolume);
-       if (r != 0) {
-               _ERR("failed to get volume");
-               return false;
-       }
+       if (muteFlag == false) {
+               r = sound_manager_get_volume(SOUND_TYPE_MEDIA, &currentVolume);
+               if (r != 0) {
+                       _ERR("failed to get volume");
+                       return false;
+               }
 
-       r = sound_manager_set_volume(SOUND_TYPE_MEDIA, 0);
-       if (r != 0) {
-               _ERR("failed to set volume");
-               return false;
-       }
+               r = sound_manager_set_volume(SOUND_TYPE_MEDIA, 0);
+               if (r != 0) {
+                       _ERR("failed to set volume");
+                       return false;
+               }
 
-       muteFlag = true;
+               muteFlag = true;
+       }
 
        return true;
 }
@@ -52,23 +54,31 @@ bool CVolumeController::Unmute(void)
 {
        int r;
 
-       r = sound_manager_set_volume(SOUND_TYPE_MEDIA, currentVolume);
-       if (r != 0) {
-               _ERR("failed to set volume");
-               return false;
-       }
+       if (muteFlag == true) {
+               r = sound_manager_set_volume(SOUND_TYPE_MEDIA, currentVolume);
+               if (r != 0) {
+                       _ERR("failed to set volume");
+                       return false;
+               }
 
-       muteFlag = false;
+               muteFlag = false;
+       }
 
        return true;
 }
 
 bool CVolumeController::Up(void)
 {
-       int r, vol;
+       int r, vol, maxVol;
 
        if (!CVolumeController::Unmute()) {
-               _ERR("failed to set volume unmute");
+               _ERR("failed to unmute");
+               return false;
+       }
+
+       r = sound_manager_get_max_volume(SOUND_TYPE_MEDIA, &maxVol);
+       if (r != 0) {
+               _ERR("failed to get max volume");
                return false;
        }
 
@@ -79,6 +89,8 @@ bool CVolumeController::Up(void)
        }
 
        vol++;
+       if (vol > maxVol)
+               vol = maxVol;
 
        r = sound_manager_set_volume(SOUND_TYPE_MEDIA, vol);
        if (r != 0) {
@@ -86,6 +98,8 @@ bool CVolumeController::Up(void)
                return false;
        }
 
+       currentVolume = vol;
+
        return true;
 }
 
@@ -94,7 +108,7 @@ bool CVolumeController::Down(void)
        int r, vol;
 
        if (!CVolumeController::Unmute()) {
-               _ERR("failed to set volume unmute");
+               _ERR("failed to unmute");
                return false;
        }
 
@@ -103,7 +117,10 @@ bool CVolumeController::Down(void)
                _ERR("failed to get volume");
                return false;
        }
+
        vol--;
+       if (vol < 0)
+               vol = 0;
 
        r = sound_manager_set_volume(SOUND_TYPE_MEDIA, vol);
        if (r != 0) {
@@ -111,24 +128,13 @@ bool CVolumeController::Down(void)
                return false;
        }
 
+       currentVolume = vol;
+
        return true;
 }
 
 bool CVolumeController::IsMute(void)
 {
-       /*int r;
-       bool mute;
-
-       r = sound_manager_get_master_mute(&mute);
-       if (r != 0) {
-               _ERR("failed to get mute");
-               return false;
-       }
-
-       if (mute)
-               return true;
-
-       return false;*/
        return muteFlag;
 }
 
@@ -136,11 +142,15 @@ bool CVolumeController::Get(int *vol)
 {
        int r;
 
-       r = sound_manager_get_volume(SOUND_TYPE_MEDIA, vol);
-       if (r != 0) {
-               _ERR("failed to get volume");
-               return false;
+       if (muteFlag == false) {
+               r = sound_manager_get_volume(SOUND_TYPE_MEDIA, vol);
+               if (r != 0) {
+                       _ERR("failed to get volume");
+                       return false;
+               }
        }
+       else
+               *vol = currentVolume;
 
        return true;
 }
index 8db38e3..10c4911 100644 (file)
@@ -66,7 +66,6 @@ void CHandleVolume::m_HandleVolumeKey(int mode)
                m->etVol = ecore_timer_add(VOLUME_TIMER_INTERVAL,
                        sm_CbVolumeTimer, m);
                m->flagVolumeMode = true;
-               evas_object_show(m->eoVolLayout);
                elm_object_part_content_set(m->eoBase, MUSIC_PART_VOLUME_LAYOUT,
                        m->eoVolLayout);
                evas_object_show(m->eoVolLayout);