From cc8c35cee5de7fdf2d79a1a3716120b64301cdfe Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Queru Date: Thu, 12 Nov 2009 18:45:53 -0800 Subject: eclair snapshot --- libs/ui/Overlay.cpp | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) (limited to 'libs/ui/Overlay.cpp') diff --git a/libs/ui/Overlay.cpp b/libs/ui/Overlay.cpp index 59c65146e5..3aa8950af5 100644 --- a/libs/ui/Overlay.cpp +++ b/libs/ui/Overlay.cpp @@ -14,10 +14,10 @@ * limitations under the License. */ -#include -#include +#include +#include #include -#include +#include #include #include @@ -59,6 +59,30 @@ status_t Overlay::queueBuffer(overlay_buffer_t buffer) return mOverlayData->queueBuffer(mOverlayData, buffer); } +status_t Overlay::resizeInput(uint32_t width, uint32_t height) +{ + if (mStatus != NO_ERROR) return mStatus; + return mOverlayData->resizeInput(mOverlayData, width, height); +} + +status_t Overlay::setParameter(int param, int value) +{ + if (mStatus != NO_ERROR) return mStatus; + return mOverlayData->setParameter(mOverlayData, param, value); +} + +status_t Overlay::setCrop(uint32_t x, uint32_t y, uint32_t w, uint32_t h) +{ + if (mStatus != NO_ERROR) return mStatus; + return mOverlayData->setCrop(mOverlayData, x, y, w, h); +} + +status_t Overlay::getCrop(uint32_t* x, uint32_t* y, uint32_t* w, uint32_t* h) +{ + if (mStatus != NO_ERROR) return mStatus; + return mOverlayData->getCrop(mOverlayData, x, y, w, h); +} + int32_t Overlay::getBufferCount() const { if (mStatus != NO_ERROR) return mStatus; @@ -73,6 +97,15 @@ void* Overlay::getBufferAddress(overlay_buffer_t buffer) void Overlay::destroy() { if (mStatus != NO_ERROR) return; + + // Must delete the objects in reverse creation order, thus the + // data side must be closed first and then the destroy send to + // the control side. + if (mOverlayData) { + overlay_data_close(mOverlayData); + mOverlayData = NULL; + } + mOverlayRef->mOverlayChannel->destroy(); } -- cgit v1.2.3-59-g8ed1b