From f7c761e5d31146a1fbd2a51d9adfe17cc61ad4c1 Mon Sep 17 00:00:00 2001 From: Daniel Lam Date: Mon, 30 Jan 2012 15:51:27 -0800 Subject: Refactored query function from SurfaceTexture into BufferQueue Change-Id: Id1cb6cc38d01edb4fcfcad867c5a7693bdcc3ab1 --- libs/gui/BufferQueue.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'libs/gui/BufferQueue.cpp') diff --git a/libs/gui/BufferQueue.cpp b/libs/gui/BufferQueue.cpp index c7e2c0f21fe4..0791de2269ef 100644 --- a/libs/gui/BufferQueue.cpp +++ b/libs/gui/BufferQueue.cpp @@ -166,6 +166,37 @@ status_t BufferQueue::setBufferCount(int bufferCount) { return OK; } +int BufferQueue::query(int what, int* outValue) +{ + Mutex::Autolock lock(mMutex); + + if (mAbandoned) { + ST_LOGE("query: SurfaceTexture has been abandoned!"); + return NO_INIT; + } + + int value; + switch (what) { + case NATIVE_WINDOW_WIDTH: + value = mDefaultWidth; + break; + case NATIVE_WINDOW_HEIGHT: + value = mDefaultHeight; + break; + case NATIVE_WINDOW_FORMAT: + value = mPixelFormat; + break; + case NATIVE_WINDOW_MIN_UNDEQUEUED_BUFFERS: + value = mSynchronousMode ? + (MIN_UNDEQUEUED_BUFFERS-1) : MIN_UNDEQUEUED_BUFFERS; + break; + default: + return BAD_VALUE; + } + outValue[0] = value; + return NO_ERROR; +} + status_t BufferQueue::requestBuffer(int slot, sp* buf) { ST_LOGV("requestBuffer: slot=%d", slot); Mutex::Autolock lock(mMutex); -- cgit v1.2.3-59-g8ed1b