OboeAudioService: add thread to service for passing timestamps
Cleanup several TODOs.
Test: test_aaudio in CTS
Change-Id: I7fc956b6a21cbb592f98e1e5a8f43ebd6926d796
Signed-off-by: Phil Burk <philburk@google.com>
diff --git a/services/oboeservice/OboeAudioService.cpp b/services/oboeservice/OboeAudioService.cpp
index caddc1d..001569c 100644
--- a/services/oboeservice/OboeAudioService.cpp
+++ b/services/oboeservice/OboeAudioService.cpp
@@ -34,11 +34,20 @@
typedef enum
{
+ OBOE_HANDLE_TYPE_DUMMY1, // TODO remove DUMMYs
+ OBOE_HANDLE_TYPE_DUMMY2, // make server handles different than client
OBOE_HANDLE_TYPE_STREAM,
OBOE_HANDLE_TYPE_COUNT
} oboe_service_handle_type_t;
static_assert(OBOE_HANDLE_TYPE_COUNT <= HANDLE_TRACKER_MAX_TYPES, "Too many handle types.");
+android::OboeAudioService::OboeAudioService()
+ : BnOboeAudioService() {
+}
+
+OboeAudioService::~OboeAudioService() {
+}
+
oboe_handle_t OboeAudioService::openStream(oboe::OboeStreamRequest &request,
oboe::OboeStreamConfiguration &configuration) {
OboeServiceStreamBase *serviceStream = new OboeServiceStreamFakeHal();
@@ -61,7 +70,7 @@
OboeServiceStreamBase *serviceStream = (OboeServiceStreamBase *)
mHandleTracker.remove(OBOE_HANDLE_TYPE_STREAM,
streamHandle);
- ALOGI("OboeAudioService.closeStream(0x%08X)", streamHandle);
+ ALOGD("OboeAudioService.closeStream(0x%08X)", streamHandle);
if (serviceStream != nullptr) {
ALOGD("OboeAudioService::closeStream(): deleting serviceStream = %p", serviceStream);
delete serviceStream;
@@ -79,9 +88,8 @@
oboe_result_t OboeAudioService::getStreamDescription(
oboe_handle_t streamHandle,
oboe::AudioEndpointParcelable &parcelable) {
- ALOGI("OboeAudioService::getStreamDescriptor(), streamHandle = 0x%08x", streamHandle);
OboeServiceStreamBase *serviceStream = convertHandleToServiceStream(streamHandle);
- ALOGI("OboeAudioService::getStreamDescriptor(), serviceStream = %p", serviceStream);
+ ALOGD("OboeAudioService::getStreamDescription(), serviceStream = %p", serviceStream);
if (serviceStream == nullptr) {
return OBOE_ERROR_INVALID_HANDLE;
}
@@ -90,45 +98,38 @@
oboe_result_t OboeAudioService::startStream(oboe_handle_t streamHandle) {
OboeServiceStreamBase *serviceStream = convertHandleToServiceStream(streamHandle);
- ALOGI("OboeAudioService::startStream(), serviceStream = %p", serviceStream);
+ ALOGD("OboeAudioService::startStream(), serviceStream = %p", serviceStream);
if (serviceStream == nullptr) {
return OBOE_ERROR_INVALID_HANDLE;
}
- mLatestHandle = streamHandle;
- return serviceStream->start();
+ oboe_result_t result = serviceStream->start();
+ return result;
}
oboe_result_t OboeAudioService::pauseStream(oboe_handle_t streamHandle) {
OboeServiceStreamBase *serviceStream = convertHandleToServiceStream(streamHandle);
- ALOGI("OboeAudioService::pauseStream(), serviceStream = %p", serviceStream);
+ ALOGD("OboeAudioService::pauseStream(), serviceStream = %p", serviceStream);
if (serviceStream == nullptr) {
return OBOE_ERROR_INVALID_HANDLE;
}
- return serviceStream->pause();
+ oboe_result_t result = serviceStream->pause();
+ return result;
}
oboe_result_t OboeAudioService::flushStream(oboe_handle_t streamHandle) {
OboeServiceStreamBase *serviceStream = convertHandleToServiceStream(streamHandle);
- ALOGI("OboeAudioService::flushStream(), serviceStream = %p", serviceStream);
+ ALOGD("OboeAudioService::flushStream(), serviceStream = %p", serviceStream);
if (serviceStream == nullptr) {
return OBOE_ERROR_INVALID_HANDLE;
}
return serviceStream->flush();
}
-void OboeAudioService::tickle() {
- OboeServiceStreamBase *serviceStream = convertHandleToServiceStream(mLatestHandle);
- //ALOGI("OboeAudioService::tickle(), serviceStream = %p", serviceStream);
- if (serviceStream != nullptr) {
- serviceStream->tickle();
- }
-}
-
oboe_result_t OboeAudioService::registerAudioThread(oboe_handle_t streamHandle,
pid_t clientThreadId,
oboe_nanoseconds_t periodNanoseconds) {
OboeServiceStreamBase *serviceStream = convertHandleToServiceStream(streamHandle);
- ALOGI("OboeAudioService::registerAudioThread(), serviceStream = %p", serviceStream);
+ ALOGD("OboeAudioService::registerAudioThread(), serviceStream = %p", serviceStream);
if (serviceStream == nullptr) {
ALOGE("OboeAudioService::registerAudioThread(), serviceStream == nullptr");
return OBOE_ERROR_INVALID_HANDLE;