Pull out base class that has no knowledge of frame size or buffer
Change-Id: I0727601faf9766c4ed2d08346f53257c20337fe7
diff --git a/audio_utils/fifo.cpp b/audio_utils/fifo.cpp
index 827b441..92e0a9f 100644
--- a/audio_utils/fifo.cpp
+++ b/audio_utils/fifo.cpp
@@ -24,23 +24,21 @@
#include <cutils/log.h>
#include <utils/Errors.h>
-audio_utils_fifo::audio_utils_fifo(uint32_t frameCount, uint32_t frameSize, void *buffer)
+audio_utils_fifo_base::audio_utils_fifo_base(uint32_t frameCount)
__attribute__((no_sanitize("integer"))) :
mFrameCount(frameCount), mFrameCountP2(roundup(frameCount)),
- mFudgeFactor(mFrameCountP2 - mFrameCount), mFrameSize(frameSize), mBuffer(buffer),
+ mFudgeFactor(mFrameCountP2 - mFrameCount),
mSharedRear(0), mThrottleFront(NULL)
{
- // maximum value of frameCount * frameSize is INT_MAX (2^31 - 1), not 2^31, because we need to
- // be able to distinguish successful and error return values from read and write.
- ALOG_ASSERT(frameCount > 0 && frameSize > 0 && buffer != NULL &&
- frameCount <= ((uint32_t) INT_MAX) / frameSize);
+ // actual upper bound on frameCount will depend on the frame size
+ ALOG_ASSERT(frameCount > 0 && frameCount <= ((uint32_t) INT_MAX));
}
-audio_utils_fifo::~audio_utils_fifo()
+audio_utils_fifo_base::~audio_utils_fifo_base()
{
}
-uint32_t audio_utils_fifo::sum(uint32_t index, uint32_t increment)
+uint32_t audio_utils_fifo_base::sum(uint32_t index, uint32_t increment)
__attribute__((no_sanitize("integer")))
{
if (mFudgeFactor) {
@@ -58,7 +56,7 @@
}
}
-int32_t audio_utils_fifo::diff(uint32_t rear, uint32_t front, size_t *lost)
+int32_t audio_utils_fifo_base::diff(uint32_t rear, uint32_t front, size_t *lost)
__attribute__((no_sanitize("integer")))
{
uint32_t diff = rear - front;
@@ -93,6 +91,22 @@
////////////////////////////////////////////////////////////////////////////////
+audio_utils_fifo::audio_utils_fifo(uint32_t frameCount, uint32_t frameSize, void *buffer)
+ __attribute__((no_sanitize("integer"))) :
+ audio_utils_fifo_base(frameCount), mFrameSize(frameSize), mBuffer(buffer)
+{
+ // maximum value of frameCount * frameSize is INT_MAX (2^31 - 1), not 2^31, because we need to
+ // be able to distinguish successful and error return values from read and write.
+ ALOG_ASSERT(frameCount > 0 && frameSize > 0 && buffer != NULL &&
+ frameCount <= ((uint32_t) INT_MAX) / frameSize);
+}
+
+audio_utils_fifo::~audio_utils_fifo()
+{
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
audio_utils_fifo_provider::audio_utils_fifo_provider() :
mObtained(0)
{