1 #include "AudioControl.h" 2 3 #include <hidl/HidlTransportSupport.h> 4 #include <log/log.h> 5 6 7 namespace android { 8 namespace hardware { 9 namespace automotive { 10 namespace audiocontrol { 11 namespace V1_0 { 12 namespace implementation { 13 14 15 // This is the static map we're using to associate a ContextNumber with a 16 // bus number from the audio_policy_configuration.xml setup. Every valid context needs 17 // to be mapped to a bus address that actually exists in the platforms configuration. 18 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(*a)) // Would be nice if this were common... 19 static int sContextToBusMap[] = { 20 -1, // INVALID 21 0, // MUSIC_CONTEXT 22 1, // NAVIGATION_CONTEXT 23 2, // VOICE_COMMAND_CONTEXT 24 3, // CALL_RING_CONTEXT 25 4, // CALL_CONTEXT 26 5, // ALARM_CONTEXT 27 6, // NOTIFICATION_CONTEXT 28 7, // SYSTEM_SOUND_CONTEXT 29 }; 30 static const unsigned sContextMapSize = ARRAY_SIZE(sContextToBusMap); 31 static const unsigned sContextCount = sContextMapSize - 1; // Less one for the INVALID entry 32 static const unsigned sContextNumberMax = sContextCount; // contextNumber is counted from 1 33 34 35 AudioControl::AudioControl() { 36 }; 37 38 39 Return<int32_t> AudioControl::getBusForContext(ContextNumber ctxt) { 40 unsigned contextNumber = static_cast<unsigned>(ctxt); 41 if (contextNumber > sContextNumberMax) { 42 ALOGE("Unexpected context number %d (max expected is %d)", contextNumber, sContextCount); 43 return -1; 44 } else { 45 return sContextToBusMap[contextNumber]; 46 } 47 } 48 49 50 Return<void> AudioControl::setBalanceTowardRight(float value) { 51 // For completeness, lets bounds check the input... 52 if ((value > 1.0f) || (value < -1.0f)) { 53 ALOGE("Balance value out of range -1 to 1 at %0.2f", value); 54 } else { 55 // Just log in this default mock implementation 56 ALOGI("Balance set to %0.2f", value); 57 } 58 return Void(); 59 } 60 61 62 Return<void> AudioControl::setFadeTowardFront(float value) { 63 // For completeness, lets bounds check the input... 64 if ((value > 1.0f) || (value < -1.0f)) { 65 ALOGE("Fader value out of range -1 to 1 at %0.2f", value); 66 } else { 67 // Just log in this default mock implementation 68 ALOGI("Fader set to %0.2f", value); 69 } 70 return Void(); 71 } 72 73 } // namespace implementation 74 } // namespace V1_0 75 } // namespace audiocontrol 76 } // namespace automotive 77 } // namespace hardware 78 } // namespace android 79