Add AudioSystem::getFrameCountHAL()
And add comments about declaring methods in binder opcode order.
Bug: 28117362
Change-Id: I3c4426fa4bb3ce9c4a207a44d3bb1103d7fef160
diff --git a/media/libmedia/IAudioFlinger.cpp b/media/libmedia/IAudioFlinger.cpp
index 7543b60..aa75188 100644
--- a/media/libmedia/IAudioFlinger.cpp
+++ b/media/libmedia/IAudioFlinger.cpp
@@ -81,7 +81,8 @@
LIST_AUDIO_PATCHES,
SET_AUDIO_PORT_CONFIG,
GET_AUDIO_HW_SYNC,
- SYSTEM_READY
+ SYSTEM_READY,
+ FRAME_COUNT_HAL,
};
#define MAX_ITEMS_PER_LIST 1024
@@ -274,6 +275,8 @@
return reply.readInt32();
}
+ // RESERVED for channelCount()
+
virtual audio_format_t format(audio_io_handle_t output) const
{
Parcel data, reply;
@@ -911,6 +914,18 @@
data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor());
return remote()->transact(SYSTEM_READY, data, &reply, IBinder::FLAG_ONEWAY);
}
+ virtual size_t frameCountHAL(audio_io_handle_t ioHandle) const
+ {
+ Parcel data, reply;
+ data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor());
+ data.writeInt32((int32_t) ioHandle);
+ status_t status = remote()->transact(FRAME_COUNT_HAL, data, &reply);
+ if (status != NO_ERROR) {
+ return 0;
+ }
+ return reply.readInt64();
+ }
+
};
IMPLEMENT_META_INTERFACE(AudioFlinger, "android.media.IAudioFlinger");
@@ -993,6 +1008,9 @@
reply->writeInt32( sampleRate((audio_io_handle_t) data.readInt32()) );
return NO_ERROR;
} break;
+
+ // RESERVED for channelCount()
+
case FORMAT: {
CHECK_INTERFACE(IAudioFlinger, data, reply);
reply->writeInt32( format((audio_io_handle_t) data.readInt32()) );
@@ -1419,6 +1437,11 @@
systemReady();
return NO_ERROR;
} break;
+ case FRAME_COUNT_HAL: {
+ CHECK_INTERFACE(IAudioFlinger, data, reply);
+ reply->writeInt64( frameCountHAL((audio_io_handle_t) data.readInt32()) );
+ return NO_ERROR;
+ } break;
default:
return BBinder::onTransact(code, data, reply, flags);
}