Loading media/libaudioclient/AudioSystem.cpp +8 −13 Original line number Diff line number Diff line Loading @@ -904,6 +904,7 @@ status_t AudioSystem::getInputForAttr(const audio_attributes_t *attr, audio_session_t session, pid_t pid, uid_t uid, const String16& opPackageName, const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t *selectedDeviceId, Loading @@ -912,35 +913,29 @@ status_t AudioSystem::getInputForAttr(const audio_attributes_t *attr, const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return NO_INIT; return aps->getInputForAttr( attr, input, session, pid, uid, attr, input, session, pid, uid, opPackageName, config, flags, selectedDeviceId, portId); } status_t AudioSystem::startInput(audio_io_handle_t input, audio_session_t session, audio_devices_t device, uid_t uid, bool *silenced) status_t AudioSystem::startInput(audio_port_handle_t portId, bool *silenced) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; return aps->startInput(input, session, device, uid, silenced); return aps->startInput(portId, silenced); } status_t AudioSystem::stopInput(audio_io_handle_t input, audio_session_t session) status_t AudioSystem::stopInput(audio_port_handle_t portId) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; return aps->stopInput(input, session); return aps->stopInput(portId); } void AudioSystem::releaseInput(audio_io_handle_t input, audio_session_t session) void AudioSystem::releaseInput(audio_port_handle_t portId) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return; aps->releaseInput(input, session); aps->releaseInput(portId); } status_t AudioSystem::initStreamVolume(audio_stream_type_t stream, Loading media/libaudioclient/IAudioPolicyService.cpp +16 −28 Original line number Diff line number Diff line Loading @@ -285,6 +285,7 @@ public: audio_session_t session, pid_t pid, uid_t uid, const String16& opPackageName, const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t *selectedDeviceId, Loading Loading @@ -313,6 +314,7 @@ public: data.writeInt32(session); data.writeInt32(pid); data.writeInt32(uid); data.writeString16(opPackageName); data.write(config, sizeof(audio_config_base_t)); data.writeInt32(flags); data.writeInt32(*selectedDeviceId); Loading @@ -331,18 +333,12 @@ public: return NO_ERROR; } virtual status_t startInput(audio_io_handle_t input, audio_session_t session, audio_devices_t device, uid_t uid, virtual status_t startInput(audio_port_handle_t portId, bool *silenced) { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); data.writeInt32(input); data.writeInt32(session); data.writeInt32(device); data.writeInt32(uid); data.writeInt32(portId); data.writeInt32(*silenced ? 1 : 0); remote()->transact(START_INPUT, data, &reply); status_t status = static_cast <status_t> (reply.readInt32()); Loading @@ -350,24 +346,20 @@ public: return status; } virtual status_t stopInput(audio_io_handle_t input, audio_session_t session) virtual status_t stopInput(audio_port_handle_t portId) { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); data.writeInt32(input); data.writeInt32(session); data.writeInt32(portId); remote()->transact(STOP_INPUT, data, &reply); return static_cast <status_t> (reply.readInt32()); } virtual void releaseInput(audio_io_handle_t input, audio_session_t session) virtual void releaseInput(audio_port_handle_t portId) { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); data.writeInt32(input); data.writeInt32(session); data.writeInt32(portId); remote()->transact(RELEASE_INPUT, data, &reply); } Loading Loading @@ -1034,6 +1026,7 @@ status_t BnAudioPolicyService::onTransact( audio_session_t session = (audio_session_t)data.readInt32(); pid_t pid = (pid_t)data.readInt32(); uid_t uid = (uid_t)data.readInt32(); const String16 opPackageName = data.readString16(); audio_config_base_t config; memset(&config, 0, sizeof(audio_config_base_t)); data.read(&config, sizeof(audio_config_base_t)); Loading @@ -1041,7 +1034,7 @@ status_t BnAudioPolicyService::onTransact( audio_port_handle_t selectedDeviceId = (audio_port_handle_t) data.readInt32(); audio_port_handle_t portId = (audio_port_handle_t)data.readInt32(); status_t status = getInputForAttr(&attr, &input, session, pid, uid, &config, opPackageName, &config, flags, &selectedDeviceId, &portId); reply->writeInt32(status); if (status == NO_ERROR) { Loading @@ -1054,12 +1047,9 @@ status_t BnAudioPolicyService::onTransact( case START_INPUT: { CHECK_INTERFACE(IAudioPolicyService, data, reply); audio_io_handle_t input = static_cast <audio_io_handle_t>(data.readInt32()); audio_session_t session = static_cast <audio_session_t>(data.readInt32()); audio_devices_t device = static_cast <audio_devices_t>(data.readInt32()); uid_t uid = static_cast <uid_t>(data.readInt32()); audio_port_handle_t portId = static_cast <audio_port_handle_t>(data.readInt32()); bool silenced = data.readInt32() == 1; status_t status = startInput(input, session, device, uid, &silenced); status_t status = startInput(portId, &silenced); reply->writeInt32(static_cast <uint32_t>(status)); reply->writeInt32(silenced ? 1 : 0); return NO_ERROR; Loading @@ -1067,17 +1057,15 @@ status_t BnAudioPolicyService::onTransact( case STOP_INPUT: { CHECK_INTERFACE(IAudioPolicyService, data, reply); audio_io_handle_t input = static_cast <audio_io_handle_t>(data.readInt32()); audio_session_t session = static_cast <audio_session_t>(data.readInt32()); reply->writeInt32(static_cast <uint32_t>(stopInput(input, session))); audio_port_handle_t portId = static_cast <audio_port_handle_t>(data.readInt32()); reply->writeInt32(static_cast <uint32_t>(stopInput(portId))); return NO_ERROR; } break; case RELEASE_INPUT: { CHECK_INTERFACE(IAudioPolicyService, data, reply); audio_io_handle_t input = static_cast <audio_io_handle_t>(data.readInt32()); audio_session_t session = static_cast <audio_session_t>(data.readInt32()); releaseInput(input, session); audio_port_handle_t portId = static_cast <audio_port_handle_t>(data.readInt32()); releaseInput(portId); return NO_ERROR; } break; Loading media/libaudioclient/include/media/AudioSystem.h +4 −8 Original line number Diff line number Diff line Loading @@ -239,20 +239,16 @@ public: audio_session_t session, pid_t pid, uid_t uid, const String16& opPackageName, const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t *selectedDeviceId, audio_port_handle_t *portId); static status_t startInput(audio_io_handle_t input, audio_session_t session, audio_devices_t device, uid_t uid, static status_t startInput(audio_port_handle_t portId, bool *silenced); static status_t stopInput(audio_io_handle_t input, audio_session_t session); static void releaseInput(audio_io_handle_t input, audio_session_t session); static status_t stopInput(audio_port_handle_t portId); static void releaseInput(audio_port_handle_t portId); static status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax); Loading media/libaudioclient/include/media/IAudioPolicyService.h +4 −8 Original line number Diff line number Diff line Loading @@ -80,19 +80,15 @@ public: audio_session_t session, pid_t pid, uid_t uid, const String16& opPackageName, const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t *selectedDeviceId, audio_port_handle_t *portId) = 0; virtual status_t startInput(audio_io_handle_t input, audio_session_t session, audio_devices_t device, uid_t uid, virtual status_t startInput(audio_port_handle_t portId, bool *silenced) = 0; virtual status_t stopInput(audio_io_handle_t input, audio_session_t session) = 0; virtual void releaseInput(audio_io_handle_t input, audio_session_t session) = 0; virtual status_t stopInput(audio_port_handle_t portId) = 0; virtual void releaseInput(audio_port_handle_t portId) = 0; virtual status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax) = 0; Loading services/audioflinger/AudioFlinger.cpp +5 −3 Original line number Diff line number Diff line Loading @@ -321,6 +321,7 @@ status_t AudioFlinger::openMmapStream(MmapStreamInterface::stream_direction_t di actualSessionId, client.clientPid, client.clientUid, client.packageName, config, AUDIO_INPUT_FLAG_MMAP_NOIRQ, deviceId, &portId); } Loading @@ -340,7 +341,7 @@ status_t AudioFlinger::openMmapStream(MmapStreamInterface::stream_direction_t di if (direction == MmapStreamInterface::DIRECTION_OUTPUT) { AudioSystem::releaseOutput(io, streamType, actualSessionId); } else { AudioSystem::releaseInput(io, actualSessionId); AudioSystem::releaseInput(portId); } ret = NO_INIT; } Loading Loading @@ -1663,7 +1664,7 @@ sp<media::IAudioRecord> AudioFlinger::createRecord(const CreateRecordInput& inpu // release previously opened input if retrying. if (output.inputId != AUDIO_IO_HANDLE_NONE) { recordTrack.clear(); AudioSystem::releaseInput(output.inputId, sessionId); AudioSystem::releaseInput(portId); output.inputId = AUDIO_IO_HANDLE_NONE; } lStatus = AudioSystem::getInputForAttr(&input.attr, &output.inputId, Loading @@ -1671,6 +1672,7 @@ sp<media::IAudioRecord> AudioFlinger::createRecord(const CreateRecordInput& inpu // FIXME compare to AudioTrack clientPid, clientUid, input.opPackageName, &input.config, output.flags, &output.selectedDeviceId, &portId); Loading Loading @@ -1739,7 +1741,7 @@ Exit: } recordTrack.clear(); if (output.inputId != AUDIO_IO_HANDLE_NONE) { AudioSystem::releaseInput(output.inputId, sessionId); AudioSystem::releaseInput(portId); } } Loading Loading
media/libaudioclient/AudioSystem.cpp +8 −13 Original line number Diff line number Diff line Loading @@ -904,6 +904,7 @@ status_t AudioSystem::getInputForAttr(const audio_attributes_t *attr, audio_session_t session, pid_t pid, uid_t uid, const String16& opPackageName, const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t *selectedDeviceId, Loading @@ -912,35 +913,29 @@ status_t AudioSystem::getInputForAttr(const audio_attributes_t *attr, const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return NO_INIT; return aps->getInputForAttr( attr, input, session, pid, uid, attr, input, session, pid, uid, opPackageName, config, flags, selectedDeviceId, portId); } status_t AudioSystem::startInput(audio_io_handle_t input, audio_session_t session, audio_devices_t device, uid_t uid, bool *silenced) status_t AudioSystem::startInput(audio_port_handle_t portId, bool *silenced) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; return aps->startInput(input, session, device, uid, silenced); return aps->startInput(portId, silenced); } status_t AudioSystem::stopInput(audio_io_handle_t input, audio_session_t session) status_t AudioSystem::stopInput(audio_port_handle_t portId) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return PERMISSION_DENIED; return aps->stopInput(input, session); return aps->stopInput(portId); } void AudioSystem::releaseInput(audio_io_handle_t input, audio_session_t session) void AudioSystem::releaseInput(audio_port_handle_t portId) { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return; aps->releaseInput(input, session); aps->releaseInput(portId); } status_t AudioSystem::initStreamVolume(audio_stream_type_t stream, Loading
media/libaudioclient/IAudioPolicyService.cpp +16 −28 Original line number Diff line number Diff line Loading @@ -285,6 +285,7 @@ public: audio_session_t session, pid_t pid, uid_t uid, const String16& opPackageName, const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t *selectedDeviceId, Loading Loading @@ -313,6 +314,7 @@ public: data.writeInt32(session); data.writeInt32(pid); data.writeInt32(uid); data.writeString16(opPackageName); data.write(config, sizeof(audio_config_base_t)); data.writeInt32(flags); data.writeInt32(*selectedDeviceId); Loading @@ -331,18 +333,12 @@ public: return NO_ERROR; } virtual status_t startInput(audio_io_handle_t input, audio_session_t session, audio_devices_t device, uid_t uid, virtual status_t startInput(audio_port_handle_t portId, bool *silenced) { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); data.writeInt32(input); data.writeInt32(session); data.writeInt32(device); data.writeInt32(uid); data.writeInt32(portId); data.writeInt32(*silenced ? 1 : 0); remote()->transact(START_INPUT, data, &reply); status_t status = static_cast <status_t> (reply.readInt32()); Loading @@ -350,24 +346,20 @@ public: return status; } virtual status_t stopInput(audio_io_handle_t input, audio_session_t session) virtual status_t stopInput(audio_port_handle_t portId) { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); data.writeInt32(input); data.writeInt32(session); data.writeInt32(portId); remote()->transact(STOP_INPUT, data, &reply); return static_cast <status_t> (reply.readInt32()); } virtual void releaseInput(audio_io_handle_t input, audio_session_t session) virtual void releaseInput(audio_port_handle_t portId) { Parcel data, reply; data.writeInterfaceToken(IAudioPolicyService::getInterfaceDescriptor()); data.writeInt32(input); data.writeInt32(session); data.writeInt32(portId); remote()->transact(RELEASE_INPUT, data, &reply); } Loading Loading @@ -1034,6 +1026,7 @@ status_t BnAudioPolicyService::onTransact( audio_session_t session = (audio_session_t)data.readInt32(); pid_t pid = (pid_t)data.readInt32(); uid_t uid = (uid_t)data.readInt32(); const String16 opPackageName = data.readString16(); audio_config_base_t config; memset(&config, 0, sizeof(audio_config_base_t)); data.read(&config, sizeof(audio_config_base_t)); Loading @@ -1041,7 +1034,7 @@ status_t BnAudioPolicyService::onTransact( audio_port_handle_t selectedDeviceId = (audio_port_handle_t) data.readInt32(); audio_port_handle_t portId = (audio_port_handle_t)data.readInt32(); status_t status = getInputForAttr(&attr, &input, session, pid, uid, &config, opPackageName, &config, flags, &selectedDeviceId, &portId); reply->writeInt32(status); if (status == NO_ERROR) { Loading @@ -1054,12 +1047,9 @@ status_t BnAudioPolicyService::onTransact( case START_INPUT: { CHECK_INTERFACE(IAudioPolicyService, data, reply); audio_io_handle_t input = static_cast <audio_io_handle_t>(data.readInt32()); audio_session_t session = static_cast <audio_session_t>(data.readInt32()); audio_devices_t device = static_cast <audio_devices_t>(data.readInt32()); uid_t uid = static_cast <uid_t>(data.readInt32()); audio_port_handle_t portId = static_cast <audio_port_handle_t>(data.readInt32()); bool silenced = data.readInt32() == 1; status_t status = startInput(input, session, device, uid, &silenced); status_t status = startInput(portId, &silenced); reply->writeInt32(static_cast <uint32_t>(status)); reply->writeInt32(silenced ? 1 : 0); return NO_ERROR; Loading @@ -1067,17 +1057,15 @@ status_t BnAudioPolicyService::onTransact( case STOP_INPUT: { CHECK_INTERFACE(IAudioPolicyService, data, reply); audio_io_handle_t input = static_cast <audio_io_handle_t>(data.readInt32()); audio_session_t session = static_cast <audio_session_t>(data.readInt32()); reply->writeInt32(static_cast <uint32_t>(stopInput(input, session))); audio_port_handle_t portId = static_cast <audio_port_handle_t>(data.readInt32()); reply->writeInt32(static_cast <uint32_t>(stopInput(portId))); return NO_ERROR; } break; case RELEASE_INPUT: { CHECK_INTERFACE(IAudioPolicyService, data, reply); audio_io_handle_t input = static_cast <audio_io_handle_t>(data.readInt32()); audio_session_t session = static_cast <audio_session_t>(data.readInt32()); releaseInput(input, session); audio_port_handle_t portId = static_cast <audio_port_handle_t>(data.readInt32()); releaseInput(portId); return NO_ERROR; } break; Loading
media/libaudioclient/include/media/AudioSystem.h +4 −8 Original line number Diff line number Diff line Loading @@ -239,20 +239,16 @@ public: audio_session_t session, pid_t pid, uid_t uid, const String16& opPackageName, const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t *selectedDeviceId, audio_port_handle_t *portId); static status_t startInput(audio_io_handle_t input, audio_session_t session, audio_devices_t device, uid_t uid, static status_t startInput(audio_port_handle_t portId, bool *silenced); static status_t stopInput(audio_io_handle_t input, audio_session_t session); static void releaseInput(audio_io_handle_t input, audio_session_t session); static status_t stopInput(audio_port_handle_t portId); static void releaseInput(audio_port_handle_t portId); static status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax); Loading
media/libaudioclient/include/media/IAudioPolicyService.h +4 −8 Original line number Diff line number Diff line Loading @@ -80,19 +80,15 @@ public: audio_session_t session, pid_t pid, uid_t uid, const String16& opPackageName, const audio_config_base_t *config, audio_input_flags_t flags, audio_port_handle_t *selectedDeviceId, audio_port_handle_t *portId) = 0; virtual status_t startInput(audio_io_handle_t input, audio_session_t session, audio_devices_t device, uid_t uid, virtual status_t startInput(audio_port_handle_t portId, bool *silenced) = 0; virtual status_t stopInput(audio_io_handle_t input, audio_session_t session) = 0; virtual void releaseInput(audio_io_handle_t input, audio_session_t session) = 0; virtual status_t stopInput(audio_port_handle_t portId) = 0; virtual void releaseInput(audio_port_handle_t portId) = 0; virtual status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax) = 0; Loading
services/audioflinger/AudioFlinger.cpp +5 −3 Original line number Diff line number Diff line Loading @@ -321,6 +321,7 @@ status_t AudioFlinger::openMmapStream(MmapStreamInterface::stream_direction_t di actualSessionId, client.clientPid, client.clientUid, client.packageName, config, AUDIO_INPUT_FLAG_MMAP_NOIRQ, deviceId, &portId); } Loading @@ -340,7 +341,7 @@ status_t AudioFlinger::openMmapStream(MmapStreamInterface::stream_direction_t di if (direction == MmapStreamInterface::DIRECTION_OUTPUT) { AudioSystem::releaseOutput(io, streamType, actualSessionId); } else { AudioSystem::releaseInput(io, actualSessionId); AudioSystem::releaseInput(portId); } ret = NO_INIT; } Loading Loading @@ -1663,7 +1664,7 @@ sp<media::IAudioRecord> AudioFlinger::createRecord(const CreateRecordInput& inpu // release previously opened input if retrying. if (output.inputId != AUDIO_IO_HANDLE_NONE) { recordTrack.clear(); AudioSystem::releaseInput(output.inputId, sessionId); AudioSystem::releaseInput(portId); output.inputId = AUDIO_IO_HANDLE_NONE; } lStatus = AudioSystem::getInputForAttr(&input.attr, &output.inputId, Loading @@ -1671,6 +1672,7 @@ sp<media::IAudioRecord> AudioFlinger::createRecord(const CreateRecordInput& inpu // FIXME compare to AudioTrack clientPid, clientUid, input.opPackageName, &input.config, output.flags, &output.selectedDeviceId, &portId); Loading Loading @@ -1739,7 +1741,7 @@ Exit: } recordTrack.clear(); if (output.inputId != AUDIO_IO_HANDLE_NONE) { AudioSystem::releaseInput(output.inputId, sessionId); AudioSystem::releaseInput(portId); } } Loading