Loading include/media/AudioSystem.h +4 −0 Original line number Diff line number Diff line Loading @@ -234,6 +234,10 @@ public: static const sp<IAudioPolicyService>& get_audio_policy_service(); // helpers for android.media.AudioManager.getProperty(), see description there for meaning static int32_t getPrimaryOutputSamplingRate(); static int32_t getPrimaryOutputFrameCount(); // ---------------------------------------------------------------------------- private: Loading include/media/IAudioFlinger.h +7 −0 Original line number Diff line number Diff line Loading @@ -187,6 +187,13 @@ public: audio_io_handle_t dstOutput) = 0; virtual audio_module_handle_t loadHwModule(const char *name) = 0; // helpers for android.media.AudioManager.getProperty(), see description there for meaning // FIXME move these APIs to AudioPolicy to permit a more accurate implementation // that looks on primary device for a stream with fast flag, primary flag, or first one. virtual int32_t getPrimaryOutputSamplingRate() = 0; virtual int32_t getPrimaryOutputFrameCount() = 0; }; Loading media/libmedia/AudioSystem.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -735,6 +735,19 @@ status_t AudioSystem::isStreamActive(audio_stream_type_t stream, bool* state, ui return NO_ERROR; } int32_t AudioSystem::getPrimaryOutputSamplingRate() { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return 0; return af->getPrimaryOutputSamplingRate(); } int32_t AudioSystem::getPrimaryOutputFrameCount() { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return 0; return af->getPrimaryOutputFrameCount(); } void AudioSystem::clearAudioConfigCache() { Loading media/libmedia/IAudioFlinger.cpp +30 −1 Original line number Diff line number Diff line Loading @@ -70,7 +70,9 @@ enum { GET_EFFECT_DESCRIPTOR, CREATE_EFFECT, MOVE_EFFECTS, LOAD_HW_MODULE LOAD_HW_MODULE, GET_PRIMARY_OUTPUT_SAMPLING_RATE, GET_PRIMARY_OUTPUT_FRAME_COUNT, }; class BpAudioFlinger : public BpInterface<IAudioFlinger> Loading Loading @@ -687,6 +689,23 @@ public: remote()->transact(LOAD_HW_MODULE, data, &reply); return (audio_module_handle_t) reply.readInt32(); } virtual int32_t getPrimaryOutputSamplingRate() { Parcel data, reply; data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor()); remote()->transact(GET_PRIMARY_OUTPUT_SAMPLING_RATE, data, &reply); return reply.readInt32(); } virtual int32_t getPrimaryOutputFrameCount() { Parcel data, reply; data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor()); remote()->transact(GET_PRIMARY_OUTPUT_FRAME_COUNT, data, &reply); return reply.readInt32(); } }; IMPLEMENT_META_INTERFACE(AudioFlinger, "android.media.IAudioFlinger"); Loading Loading @@ -1045,6 +1064,16 @@ status_t BnAudioFlinger::onTransact( reply->writeInt32(loadHwModule(data.readCString())); return NO_ERROR; } break; case GET_PRIMARY_OUTPUT_SAMPLING_RATE: { CHECK_INTERFACE(IAudioFlinger, data, reply); reply->writeInt32(getPrimaryOutputSamplingRate()); return NO_ERROR; } break; case GET_PRIMARY_OUTPUT_FRAME_COUNT: { CHECK_INTERFACE(IAudioFlinger, data, reply); reply->writeInt32(getPrimaryOutputFrameCount()); return NO_ERROR; } break; default: return BBinder::onTransact(code, data, reply, flags); } Loading services/audioflinger/AudioFlinger.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -6903,6 +6903,24 @@ audio_module_handle_t AudioFlinger::loadHwModule_l(const char *name) } // ---------------------------------------------------------------------------- int32_t AudioFlinger::getPrimaryOutputSamplingRate() { Mutex::Autolock _l(mLock); PlaybackThread *thread = primaryPlaybackThread_l(); return thread != NULL ? thread->sampleRate() : 0; } int32_t AudioFlinger::getPrimaryOutputFrameCount() { Mutex::Autolock _l(mLock); PlaybackThread *thread = primaryPlaybackThread_l(); return thread != NULL ? thread->frameCountHAL() : 0; } // ---------------------------------------------------------------------------- audio_io_handle_t AudioFlinger::openOutput(audio_module_handle_t module, audio_devices_t *pDevices, uint32_t *pSamplingRate, Loading Loading
include/media/AudioSystem.h +4 −0 Original line number Diff line number Diff line Loading @@ -234,6 +234,10 @@ public: static const sp<IAudioPolicyService>& get_audio_policy_service(); // helpers for android.media.AudioManager.getProperty(), see description there for meaning static int32_t getPrimaryOutputSamplingRate(); static int32_t getPrimaryOutputFrameCount(); // ---------------------------------------------------------------------------- private: Loading
include/media/IAudioFlinger.h +7 −0 Original line number Diff line number Diff line Loading @@ -187,6 +187,13 @@ public: audio_io_handle_t dstOutput) = 0; virtual audio_module_handle_t loadHwModule(const char *name) = 0; // helpers for android.media.AudioManager.getProperty(), see description there for meaning // FIXME move these APIs to AudioPolicy to permit a more accurate implementation // that looks on primary device for a stream with fast flag, primary flag, or first one. virtual int32_t getPrimaryOutputSamplingRate() = 0; virtual int32_t getPrimaryOutputFrameCount() = 0; }; Loading
media/libmedia/AudioSystem.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -735,6 +735,19 @@ status_t AudioSystem::isStreamActive(audio_stream_type_t stream, bool* state, ui return NO_ERROR; } int32_t AudioSystem::getPrimaryOutputSamplingRate() { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return 0; return af->getPrimaryOutputSamplingRate(); } int32_t AudioSystem::getPrimaryOutputFrameCount() { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return 0; return af->getPrimaryOutputFrameCount(); } void AudioSystem::clearAudioConfigCache() { Loading
media/libmedia/IAudioFlinger.cpp +30 −1 Original line number Diff line number Diff line Loading @@ -70,7 +70,9 @@ enum { GET_EFFECT_DESCRIPTOR, CREATE_EFFECT, MOVE_EFFECTS, LOAD_HW_MODULE LOAD_HW_MODULE, GET_PRIMARY_OUTPUT_SAMPLING_RATE, GET_PRIMARY_OUTPUT_FRAME_COUNT, }; class BpAudioFlinger : public BpInterface<IAudioFlinger> Loading Loading @@ -687,6 +689,23 @@ public: remote()->transact(LOAD_HW_MODULE, data, &reply); return (audio_module_handle_t) reply.readInt32(); } virtual int32_t getPrimaryOutputSamplingRate() { Parcel data, reply; data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor()); remote()->transact(GET_PRIMARY_OUTPUT_SAMPLING_RATE, data, &reply); return reply.readInt32(); } virtual int32_t getPrimaryOutputFrameCount() { Parcel data, reply; data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor()); remote()->transact(GET_PRIMARY_OUTPUT_FRAME_COUNT, data, &reply); return reply.readInt32(); } }; IMPLEMENT_META_INTERFACE(AudioFlinger, "android.media.IAudioFlinger"); Loading Loading @@ -1045,6 +1064,16 @@ status_t BnAudioFlinger::onTransact( reply->writeInt32(loadHwModule(data.readCString())); return NO_ERROR; } break; case GET_PRIMARY_OUTPUT_SAMPLING_RATE: { CHECK_INTERFACE(IAudioFlinger, data, reply); reply->writeInt32(getPrimaryOutputSamplingRate()); return NO_ERROR; } break; case GET_PRIMARY_OUTPUT_FRAME_COUNT: { CHECK_INTERFACE(IAudioFlinger, data, reply); reply->writeInt32(getPrimaryOutputFrameCount()); return NO_ERROR; } break; default: return BBinder::onTransact(code, data, reply, flags); } Loading
services/audioflinger/AudioFlinger.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -6903,6 +6903,24 @@ audio_module_handle_t AudioFlinger::loadHwModule_l(const char *name) } // ---------------------------------------------------------------------------- int32_t AudioFlinger::getPrimaryOutputSamplingRate() { Mutex::Autolock _l(mLock); PlaybackThread *thread = primaryPlaybackThread_l(); return thread != NULL ? thread->sampleRate() : 0; } int32_t AudioFlinger::getPrimaryOutputFrameCount() { Mutex::Autolock _l(mLock); PlaybackThread *thread = primaryPlaybackThread_l(); return thread != NULL ? thread->frameCountHAL() : 0; } // ---------------------------------------------------------------------------- audio_io_handle_t AudioFlinger::openOutput(audio_module_handle_t module, audio_devices_t *pDevices, uint32_t *pSamplingRate, Loading