Loading bluetooth/audio/aidl/default/BluetoothAudioProvider.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,8 @@ ndk::ScopedAStatus BluetoothAudioProvider::setLowLatencyModeAllowed( return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); } LOG(INFO) << __func__ << " - allowed " << allowed; BluetoothAudioSessionReport::ReportLowLatencyModeAllowedChanged( session_type_, allowed); return ndk::ScopedAStatus::ok(); } Loading bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -416,6 +416,22 @@ void BluetoothAudioSession::ReportControlStatus(bool start_resp, } } void BluetoothAudioSession::ReportLowLatencyModeAllowedChanged(bool allowed) { std::lock_guard<std::recursive_mutex> guard(mutex_); if (observers_.empty()) { LOG(WARNING) << __func__ << " - SessionType=" << toString(session_type_) << " has NO port state observer"; return; } for (auto& observer : observers_) { uint16_t cookie = observer.first; std::shared_ptr<PortStatusCallbacks> callback = observer.second; LOG(INFO) << __func__ << " - allowed=" << allowed ? " allowed" : " disallowed"; callback->low_latency_mode_allowed_cb_(cookie, allowed); } } bool BluetoothAudioSession::GetPresentationPosition( PresentationPosition& presentation_position) { std::lock_guard<std::recursive_mutex> guard(mutex_); Loading bluetooth/audio/utils/aidl_session/BluetoothAudioSession.h +16 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,15 @@ struct PortStatusCallbacks { * @param: cookie - indicates which bluetooth_audio output should handle ***/ std::function<void(uint16_t cookie)> audio_configuration_changed_cb_; /*** * low_latency_mode_allowed_cb_ - when the Bluetooth stack low latency mode * allowed or disallowed, the BluetoothAudioProvider will invoke * this callback to report to the bluetooth_audio module. * @param: cookie - indicates which bluetooth_audio output should handle * @param: allowed - indicates if low latency mode is allowed ***/ std::function<void(uint16_t cookie, bool allowed)> low_latency_mode_allowed_cb_; }; class BluetoothAudioSession { Loading Loading @@ -155,6 +164,13 @@ class BluetoothAudioSession { ***/ void ReportAudioConfigChanged(const AudioConfiguration& audio_config); /*** * The report function is used to report that the Bluetooth stack has notified * the low latency mode allowed changed, and will invoke * low_latency_mode_allowed_changed_cb to notify registered bluetooth_audio * outputs ***/ void ReportLowLatencyModeAllowedChanged(bool allowed); /*** * Those control functions are for the bluetooth_audio module to start, * suspend, stop stream, to check position, and to update metadata. Loading bluetooth/audio/utils/aidl_session/BluetoothAudioSessionReport.h +12 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,18 @@ class BluetoothAudioSessionReport { session_ptr->ReportAudioConfigChanged(audio_config); } } /*** * The API reports the Bluetooth stack has replied the changed of the low * latency audio allowed, and will inform registered bluetooth_audio outputs ***/ static void ReportLowLatencyModeAllowedChanged( const SessionType& session_type, bool allowed) { std::shared_ptr<BluetoothAudioSession> session_ptr = BluetoothAudioSessionInstance::GetSessionInstance(session_type); if (session_ptr != nullptr) { session_ptr->ReportLowLatencyModeAllowedChanged(allowed); } } }; } // namespace audio Loading Loading
bluetooth/audio/aidl/default/BluetoothAudioProvider.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,8 @@ ndk::ScopedAStatus BluetoothAudioProvider::setLowLatencyModeAllowed( return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT); } LOG(INFO) << __func__ << " - allowed " << allowed; BluetoothAudioSessionReport::ReportLowLatencyModeAllowedChanged( session_type_, allowed); return ndk::ScopedAStatus::ok(); } Loading
bluetooth/audio/utils/aidl_session/BluetoothAudioSession.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -416,6 +416,22 @@ void BluetoothAudioSession::ReportControlStatus(bool start_resp, } } void BluetoothAudioSession::ReportLowLatencyModeAllowedChanged(bool allowed) { std::lock_guard<std::recursive_mutex> guard(mutex_); if (observers_.empty()) { LOG(WARNING) << __func__ << " - SessionType=" << toString(session_type_) << " has NO port state observer"; return; } for (auto& observer : observers_) { uint16_t cookie = observer.first; std::shared_ptr<PortStatusCallbacks> callback = observer.second; LOG(INFO) << __func__ << " - allowed=" << allowed ? " allowed" : " disallowed"; callback->low_latency_mode_allowed_cb_(cookie, allowed); } } bool BluetoothAudioSession::GetPresentationPosition( PresentationPosition& presentation_position) { std::lock_guard<std::recursive_mutex> guard(mutex_); Loading
bluetooth/audio/utils/aidl_session/BluetoothAudioSession.h +16 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,15 @@ struct PortStatusCallbacks { * @param: cookie - indicates which bluetooth_audio output should handle ***/ std::function<void(uint16_t cookie)> audio_configuration_changed_cb_; /*** * low_latency_mode_allowed_cb_ - when the Bluetooth stack low latency mode * allowed or disallowed, the BluetoothAudioProvider will invoke * this callback to report to the bluetooth_audio module. * @param: cookie - indicates which bluetooth_audio output should handle * @param: allowed - indicates if low latency mode is allowed ***/ std::function<void(uint16_t cookie, bool allowed)> low_latency_mode_allowed_cb_; }; class BluetoothAudioSession { Loading Loading @@ -155,6 +164,13 @@ class BluetoothAudioSession { ***/ void ReportAudioConfigChanged(const AudioConfiguration& audio_config); /*** * The report function is used to report that the Bluetooth stack has notified * the low latency mode allowed changed, and will invoke * low_latency_mode_allowed_changed_cb to notify registered bluetooth_audio * outputs ***/ void ReportLowLatencyModeAllowedChanged(bool allowed); /*** * Those control functions are for the bluetooth_audio module to start, * suspend, stop stream, to check position, and to update metadata. Loading
bluetooth/audio/utils/aidl_session/BluetoothAudioSessionReport.h +12 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,18 @@ class BluetoothAudioSessionReport { session_ptr->ReportAudioConfigChanged(audio_config); } } /*** * The API reports the Bluetooth stack has replied the changed of the low * latency audio allowed, and will inform registered bluetooth_audio outputs ***/ static void ReportLowLatencyModeAllowedChanged( const SessionType& session_type, bool allowed) { std::shared_ptr<BluetoothAudioSession> session_ptr = BluetoothAudioSessionInstance::GetSessionInstance(session_type); if (session_ptr != nullptr) { session_ptr->ReportLowLatencyModeAllowedChanged(allowed); } } }; } // namespace audio Loading