* limitations under the License.
*/
+#include <cmath>
+
#include "Utils/SoundManager.h"
#include "Utils/Log.h"
return false;
}
- int maxVolume = 0;
- ret = sound_manager_get_max_volume(SOUND_TYPE_ALARM, &maxVolume);
+ int systemMaxVolume = 0;
+ ret = sound_manager_get_max_volume(SOUND_TYPE_SYSTEM, &systemMaxVolume);
+ if (ret != SOUND_MANAGER_ERROR_NONE) {
+ ERR("sound_manager_get_max_volume failed[%d]: %s", ret, get_error_message(ret));
+ PlayerRelease();
+ return false;
+ }
+
+ int systemVolume = 0;
+ ret = sound_manager_get_volume(SOUND_TYPE_SYSTEM, &systemVolume);
+ if (ret != SOUND_MANAGER_ERROR_NONE) {
+ ERR("sound_manager_get_max_volume failed[%d]: %s", ret, get_error_message(ret));
+ PlayerRelease();
+ return false;
+ }
+
+ int alarmMaxVolume = 0;
+ ret = sound_manager_get_max_volume(SOUND_TYPE_ALARM, &alarmMaxVolume);
if (ret != SOUND_MANAGER_ERROR_NONE) {
ERR("sound_manager_get_max_volume failed[%d]: %s", ret, get_error_message(ret));
PlayerRelease();
return false;
}
- ret = sound_manager_set_volume(SOUND_TYPE_ALARM, maxVolume);
+ ret = sound_manager_set_volume(SOUND_TYPE_ALARM, std::round(((double)systemVolume/systemMaxVolume)*alarmMaxVolume));
if (ret != SOUND_MANAGER_ERROR_NONE) {
ERR("sound_manager_set_volume failed[%d]: %s", ret, get_error_message(ret));
PlayerRelease();