Automated import from //branches/cupcake/...@142889,142889

This commit is contained in:
Eric Laurent
2009-03-26 01:57:59 -07:00
committed by The Android Open Source Project
parent cc95667b9c
commit eeea922213
3 changed files with 16 additions and 4 deletions

View File

@@ -32,6 +32,8 @@
#include <media/AudioSystem.h>
#include "CameraService.h"
#include <cutils/properties.h>
namespace android {
extern "C" {
@@ -157,7 +159,13 @@ static sp<MediaPlayer> newMediaPlayer(const char *file)
{
sp<MediaPlayer> mp = new MediaPlayer();
if (mp->setDataSource(file) == NO_ERROR) {
mp->setAudioStreamType(AudioSystem::ALARM);
char value[PROPERTY_VALUE_MAX];
property_get("ro.camera.sound.forced", value, "0");
if (atoi(value)) {
mp->setAudioStreamType(AudioSystem::ENFORCED_AUDIBLE);
} else {
mp->setAudioStreamType(AudioSystem::SYSTEM);
}
mp->prepare();
} else {
mp.clear();

View File

@@ -38,6 +38,7 @@ public:
ALARM = 4,
NOTIFICATION = 5,
BLUETOOTH_SCO = 6,
ENFORCED_AUDIBLE = 7, // Sounds that cannot be muted by user and must be routed to speaker
NUM_STREAM_TYPES
};

View File

@@ -243,7 +243,8 @@ bool AudioFlinger::streamForcedToSpeaker(int streamType)
// AudioSystem::routedToA2dpOutput(streamType) == false
return (streamType == AudioSystem::RING ||
streamType == AudioSystem::ALARM ||
streamType == AudioSystem::NOTIFICATION);
streamType == AudioSystem::NOTIFICATION ||
streamType == AudioSystem::ENFORCED_AUDIBLE);
}
status_t AudioFlinger::dumpClients(int fd, const Vector<String16>& args)
@@ -645,7 +646,8 @@ status_t AudioFlinger::setStreamVolume(int stream, float value)
return PERMISSION_DENIED;
}
if (uint32_t(stream) >= AudioSystem::NUM_STREAM_TYPES) {
if (uint32_t(stream) >= AudioSystem::NUM_STREAM_TYPES ||
uint32_t(stream) == AudioSystem::ENFORCED_AUDIBLE) {
return BAD_VALUE;
}
@@ -680,7 +682,8 @@ status_t AudioFlinger::setStreamMute(int stream, bool muted)
return PERMISSION_DENIED;
}
if (uint32_t(stream) >= AudioSystem::NUM_STREAM_TYPES) {
if (uint32_t(stream) >= AudioSystem::NUM_STREAM_TYPES ||
uint32_t(stream) == AudioSystem::ENFORCED_AUDIBLE) {
return BAD_VALUE;
}