Commit 17f1ff8c authored by Jean-Michel Trivi's avatar Jean-Michel Trivi
Browse files

do not merge bug 3370834 Cherrypick from master CL 79894

Support new audio mode for audio communication other than telephony.

Change-Id: I4fa2c277517111e8490f6bdfb97ce3788dc8f549
parent 831ad524
......@@ -24,8 +24,8 @@ namespace android {
// ----------------------------------------------------------------------------
/**
* AudioHardwareBase is a convenient base class used for implementing the
/**
* AudioHardwareBase is a convenient base class used for implementing the
* AudioHardwareInterface interface.
*/
class AudioHardwareBase : public AudioHardwareInterface
......@@ -33,24 +33,30 @@ class AudioHardwareBase : public AudioHardwareInterface
public:
AudioHardwareBase();
virtual ~AudioHardwareBase() { }
/**
* setMode is called when the audio mode changes. NORMAL mode is for
* standard audio playback, RINGTONE when a ringtone is playing, and IN_CALL
* when a call is in progress.
* standard audio playback, RINGTONE when a ringtone is playing, IN_CALL
* when a telephony call is in progress, IN_COMMUNICATION when a VoIP call is in progress.
*/
virtual status_t setMode(int mode);
virtual status_t setParameters(const String8& keyValuePairs);
virtual String8 getParameters(const String8& keys);
virtual size_t getInputBufferSize(uint32_t sampleRate, int format, int channelCount);
/**This method dumps the state of the audio hardware */
virtual status_t dumpState(int fd, const Vector<String16>& args);
protected:
int mMode;
/** returns true if the given mode maps to a telephony or VoIP call is in progress */
virtual bool isModeInCall(int mode)
{ return ((mode == AudioSystem::MODE_IN_CALL)
|| (mode == AudioSystem::MODE_IN_COMMUNICATION)); };
/** returns true if a telephony or VoIP call is in progress */
virtual bool isInCall() { return isModeInCall(mMode); };
int mMode;
};
}; // namespace android
......
......@@ -236,6 +236,10 @@ protected:
void handleIncallSonification(int stream, bool starting, bool stateChange);
// true is current platform implements a back microphone
virtual bool hasBackMicrophone() const { return false; }
// true if device is in a telephony or VoIP call
virtual bool isInCall();
// true if given state represents a device in a telephony or VoIP call
virtual bool isStateInCall(int state);
#ifdef WITH_A2DP
// true is current platform supports suplication of notifications and ringtones over A2DP output
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment