audio: Align bluetooth start behavior am: 66351e5a9f

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/3044732

Change-Id: Ia5267369d96824a1daf21b1d050b1764d6fa32c9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Mikhail Naganov
2024-04-16 17:34:16 +00:00
committed by Automerger Merge Worker

View File

@@ -93,17 +93,18 @@ StreamBluetooth::StreamBluetooth(StreamContext* context, const Metadata& metadat
::android::status_t StreamBluetooth::transfer(void* buffer, size_t frameCount,
size_t* actualFrameCount, int32_t* latencyMs) {
std::lock_guard guard(mLock);
*actualFrameCount = 0;
*latencyMs = StreamDescriptor::LATENCY_UNKNOWN;
if (mBtDeviceProxy == nullptr || mBtDeviceProxy->getState() == BluetoothStreamState::DISABLED) {
*actualFrameCount = 0;
*latencyMs = StreamDescriptor::LATENCY_UNKNOWN;
// The BT session is turned down, silently ignore write.
return ::android::OK;
}
*actualFrameCount = 0;
*latencyMs = 0;
if (!mBtDeviceProxy->start()) {
LOG(ERROR) << __func__ << ": state= " << mBtDeviceProxy->getState() << " failed to start";
return -EIO;
LOG(WARNING) << __func__ << ": state= " << mBtDeviceProxy->getState()
<< " failed to start, will retry";
return ::android::OK;
}
*latencyMs = 0;
const size_t bytesToTransfer = frameCount * mFrameSizeBytes;
const size_t bytesTransferred = mIsInput ? mBtDeviceProxy->readData(buffer, bytesToTransfer)
: mBtDeviceProxy->writeData(buffer, bytesToTransfer);