#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;
{
int r;
- r = sound_manager_get_volume(SOUND_TYPE_MEDIA, ¤tVolume);
- if (r != 0) {
- _ERR("failed to get volume");
- return false;
- }
+ if (muteFlag == false) {
+ r = sound_manager_get_volume(SOUND_TYPE_MEDIA, ¤tVolume);
+ 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;
}
{
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;
}
}
vol++;
+ if (vol > maxVol)
+ vol = maxVol;
r = sound_manager_set_volume(SOUND_TYPE_MEDIA, vol);
if (r != 0) {
return false;
}
+ currentVolume = vol;
+
return true;
}
int r, vol;
if (!CVolumeController::Unmute()) {
- _ERR("failed to set volume unmute");
+ _ERR("failed to unmute");
return false;
}
_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) {
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;
}
{
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;
}