OSDN Git Service

Merge "Use audio_session_t consistently" into nyc-dev
[android-x86/hardware-libhardware_legacy.git] / audio / AudioPolicyManagerBase.cpp
index 7bca631..970c33e 100644 (file)
@@ -36,6 +36,7 @@
 
 #include <cutils/properties.h>
 #include <utils/Log.h>
+#include <utils/Timers.h>
 
 #include <hardware/audio.h>
 #include <hardware/audio_effect.h>
@@ -53,6 +54,11 @@ status_t AudioPolicyManagerBase::setDeviceConnectionState(audio_devices_t device
                                                   AudioSystem::device_connection_state state,
                                                   const char *device_address)
 {
+    // device_address can be NULL and should be handled as an empty string in this case,
+    // and it is not checked by AudioPolicyInterfaceImpl.cpp
+    if (device_address == NULL) {
+        device_address = "";
+    }
     ALOGV("setDeviceConnectionState() device: 0x%X, state %d, address %s", device, state, device_address);
 
     // connect/disconnect only 1 device at a time
@@ -245,6 +251,10 @@ status_t AudioPolicyManagerBase::setDeviceConnectionState(audio_devices_t device
 AudioSystem::device_connection_state AudioPolicyManagerBase::getDeviceConnectionState(audio_devices_t device,
                                                   const char *device_address)
 {
+    // similar to setDeviceConnectionState
+    if (device_address == NULL) {
+        device_address = "";
+    }
     AudioSystem::device_connection_state state = AudioSystem::DEVICE_STATE_UNAVAILABLE;
     String8 address = String8(device_address);
     if (audio_is_output_device(device)) {
@@ -730,7 +740,7 @@ audio_io_handle_t AudioPolicyManagerBase::selectOutput(const SortedVector<audio_
 
 status_t AudioPolicyManagerBase::startOutput(audio_io_handle_t output,
                                              AudioSystem::stream_type stream,
-                                             int session)
+                                             audio_session_t session)
 {
     ALOGV("startOutput() output %d, stream %d, session %d", output, stream, session);
     ssize_t index = mOutputs.indexOfKey(output);
@@ -798,7 +808,7 @@ status_t AudioPolicyManagerBase::startOutput(audio_io_handle_t output,
 
 status_t AudioPolicyManagerBase::stopOutput(audio_io_handle_t output,
                                             AudioSystem::stream_type stream,
-                                            int session)
+                                            audio_session_t session)
 {
     ALOGV("stopOutput() output %d, stream %d, session %d", output, stream, session);
     ssize_t index = mOutputs.indexOfKey(output);
@@ -1217,7 +1227,7 @@ audio_io_handle_t AudioPolicyManagerBase::getOutputForEffect(const effect_descri
 status_t AudioPolicyManagerBase::registerEffect(const effect_descriptor_t *desc,
                                 audio_io_handle_t io,
                                 uint32_t strategy,
-                                int session,
+                                audio_session_t session,
                                 int id)
 {
     ssize_t index = mOutputs.indexOfKey(io);
@@ -2081,7 +2091,7 @@ status_t AudioPolicyManagerBase::checkInputsForDevice(audio_devices_t device,
             {
                 if (mHwModules[module_index]->mInputProfiles[profile_index]->mSupportedDevices
                         & (device & ~AUDIO_DEVICE_BIT_IN)) {
-                    ALOGV("checkInputsForDevice(): adding profile %d from module %d",
+                    ALOGV("checkInputsForDevice(): adding profile %zu from module %zu",
                           profile_index, module_index);
                     profiles.add(mHwModules[module_index]->mInputProfiles[profile_index]);
                 }
@@ -2208,7 +2218,7 @@ status_t AudioPolicyManagerBase::checkInputsForDevice(audio_devices_t device,
             {
                 IOProfile *profile = mHwModules[module_index]->mInputProfiles[profile_index];
                 if (profile->mSupportedDevices & device) {
-                    ALOGV("checkInputsForDevice(): clearing direct input profile %d on module %d",
+                    ALOGV("checkInputsForDevice(): clearing direct input profile %zu on module %zu",
                           profile_index, module_index);
                     if (profile->mSamplingRates[0] == 0) {
                         profile->mSamplingRates.clear();
@@ -3144,7 +3154,7 @@ const AudioPolicyManagerBase::VolumeCurvePoint
 };
 
 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
@@ -3200,7 +3210,7 @@ const AudioPolicyManagerBase::VolumeCurvePoint
 
 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];