OSDN Git Service

am e714af92: audio policy: use legacy stream type definitions
authorEric Laurent <elaurent@google.com>
Wed, 26 Nov 2014 12:01:47 +0000 (12:01 +0000)
committerAndroid Git Automerger <android-git-automerger@android.com>
Wed, 26 Nov 2014 12:01:47 +0000 (12:01 +0000)
* commit 'e714af927c1e87a488178315b78b0c12c0ec9db9':
  audio policy: use legacy stream type definitions

1  2 
audio/AudioPolicyManagerBase.cpp
include/hardware_legacy/AudioPolicyManagerBase.h

@@@ -2854,22 -2854,7 +2854,22 @@@ uint32_t AudioPolicyManagerBase::setOut
  
      if (device != AUDIO_DEVICE_NONE) {
          outputDesc->mDevice = device;
 +
 +        // Force routing if previously asked for this output
 +        if (outputDesc->mForceRouting) {
 +            ALOGV("Force routing to current device as previous device was null for this output");
 +            force = true;
 +
 +            // Request consumed. Reset mForceRouting to false
 +            outputDesc->mForceRouting = false;
 +        }
      }
 +    else {
 +        // Device is null and does not reflect the routing. Save the necessity to force
 +        // re-routing upon next attempt to select a non-null device for this output
 +        outputDesc->mForceRouting = true;
 +    }
 +
      muteWaitMs = checkDeviceMuteStrategies(outputDesc, prevDevice, delayMs);
  
      // Do not change the routing if:
@@@ -3153,7 -3138,7 +3153,7 @@@ const AudioPolicyManagerBase::VolumeCur
  };
  
  const AudioPolicyManagerBase::VolumeCurvePoint
-             *AudioPolicyManagerBase::sVolumeProfiles[AUDIO_STREAM_CNT]
+             *AudioPolicyManagerBase::sVolumeProfiles[AudioSystem::NUM_STREAM_TYPES]
                                                     [AudioPolicyManagerBase::DEVICE_CATEGORY_CNT] = {
      { // AUDIO_STREAM_VOICE_CALL
          sDefaultVoiceVolumeCurve, // DEVICE_CATEGORY_HEADSET
  
  void AudioPolicyManagerBase::initializeVolumeCurves()
  {
-     for (int i = 0; i < AUDIO_STREAM_CNT; i++) {
+     for (int i = 0; i < AudioSystem::NUM_STREAM_TYPES; i++) {
          for (int j = 0; j < DEVICE_CATEGORY_CNT; j++) {
              mStreams[i].mVolumeCurve[j] =
                      sVolumeProfiles[i][j];
@@@ -3490,8 -3475,7 +3490,8 @@@ AudioPolicyManagerBase::AudioOutputDesc
      : mId(0), mSamplingRate(0), mFormat(AUDIO_FORMAT_DEFAULT),
        mChannelMask(0), mLatency(0),
      mFlags((audio_output_flags_t)0), mDevice(AUDIO_DEVICE_NONE),
 -    mOutput1(0), mOutput2(0), mProfile(profile), mDirectOpenCount(0)
 +    mOutput1(0), mOutput2(0), mProfile(profile), mDirectOpenCount(0),
 +    mForceRouting(false)
  {
      // clear usage count for all stream types
      for (int i = 0; i < AudioSystem::NUM_STREAM_TYPES; i++) {
@@@ -244,7 -244,7 +244,7 @@@ protected
          static const VolumeCurvePoint sDefaultVoiceVolumeCurve[AudioPolicyManagerBase::VOLCNT];
          static const VolumeCurvePoint sSpeakerVoiceVolumeCurve[AudioPolicyManagerBase::VOLCNT];
          // default volume curves per stream and device category. See initializeVolumeCurves()
-         static const VolumeCurvePoint *sVolumeProfiles[AUDIO_STREAM_CNT][DEVICE_CATEGORY_CNT];
+         static const VolumeCurvePoint *sVolumeProfiles[AudioSystem::NUM_STREAM_TYPES][DEVICE_CATEGORY_CNT];
  
          // descriptor for audio outputs. Used to maintain current configuration of each opened audio output
          // and keep track of the usage of this output by each audio stream type.
              bool mStrategyMutedByDevice[NUM_STRATEGIES]; // strategies muted because of incompatible
                                                  // device selection. See checkDeviceMuteStrategies()
              uint32_t mDirectOpenCount; // number of clients using this output (direct outputs only)
 +            bool mForceRouting; // Next routing for this output will be forced as current device routed is null
          };
  
          // descriptor for audio inputs. Used to maintain current configuration of each opened audio input