diff options
Diffstat (limited to 'camera/inc/ANativeWindowDisplayAdapter.h')
-rw-r--r-- | camera/inc/ANativeWindowDisplayAdapter.h | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/camera/inc/ANativeWindowDisplayAdapter.h b/camera/inc/ANativeWindowDisplayAdapter.h deleted file mode 100644 index 560e98d..0000000 --- a/camera/inc/ANativeWindowDisplayAdapter.h +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Copyright (C) Texas Instruments - http://www.ti.com/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - -#include "CameraHal.h" -#include <ui/GraphicBufferMapper.h> -#include <hal_public.h> - -namespace Ti { -namespace Camera { - -/** - * Display handler class - This class basically handles the buffer posting to display - */ - -class ANativeWindowDisplayAdapter : public DisplayAdapter -{ -public: - - typedef struct - { - CameraBuffer *mBuffer; - void *mUser; - int mOffset; - int mWidth; - int mHeight; - int mWidthStride; - int mHeightStride; - int mLength; - CameraFrame::FrameType mType; - } DisplayFrame; - - enum DisplayStates - { - DISPLAY_INIT = 0, - DISPLAY_STARTED, - DISPLAY_STOPPED, - DISPLAY_EXITED - }; - -public: - - ANativeWindowDisplayAdapter(); - virtual ~ANativeWindowDisplayAdapter(); - - ///Initializes the display adapter creates any resources required - virtual status_t initialize(); - - virtual int setPreviewWindow(struct preview_stream_ops *window); - virtual int setFrameProvider(FrameNotifier *frameProvider); - virtual int setErrorHandler(ErrorNotifier *errorNotifier); - virtual int enableDisplay(int width, int height, struct timeval *refTime = NULL); - virtual int disableDisplay(bool cancel_buffer = true); - virtual status_t pauseDisplay(bool pause); - -#if PPM_INSTRUMENTATION || PPM_INSTRUMENTATION_ABS - - //Used for shot to snapshot measurement - virtual status_t setSnapshotTimeRef(struct timeval *refTime = NULL); - -#endif - - virtual bool supportsExternalBuffering(); - - //Implementation of inherited interfaces - virtual CameraBuffer * allocateBufferList(int width, int height, const char* format, int &bytes, int numBufs); - virtual CameraBuffer *getBufferList(int *numBufs); - virtual uint32_t * getOffsets() ; - virtual int getFd() ; - virtual int freeBufferList(CameraBuffer * buflist); - - virtual status_t maxQueueableBuffers(unsigned int& queueable); - virtual status_t minUndequeueableBuffers(int& unqueueable); - - ///Class specific functions - static void frameCallbackRelay(CameraFrame* caFrame); - void frameCallback(CameraFrame* caFrame); - - void displayThread(); - - private: - void destroy(); - bool processHalMsg(); - status_t PostFrame(ANativeWindowDisplayAdapter::DisplayFrame &dispFrame); - bool handleFrameReturn(); - status_t returnBuffersToWindow(); - -public: - - static const int DISPLAY_TIMEOUT; - static const int FAILED_DQS_TO_SUSPEND; - - class DisplayThread : public android::Thread - { - ANativeWindowDisplayAdapter* mDisplayAdapter; - Utils::MessageQueue mDisplayThreadQ; - - public: - DisplayThread(ANativeWindowDisplayAdapter* da) - : Thread(false), mDisplayAdapter(da) { } - - ///Returns a reference to the display message Q for display adapter to post messages - Utils::MessageQueue& msgQ() - { - return mDisplayThreadQ; - } - - virtual bool threadLoop() - { - mDisplayAdapter->displayThread(); - return false; - } - - enum DisplayThreadCommands - { - DISPLAY_START, - DISPLAY_STOP, - DISPLAY_FRAME, - DISPLAY_EXIT - }; - }; - - //friend declarations -friend class DisplayThread; - -private: - int postBuffer(void* displayBuf); - -private: - bool mFirstInit; - bool mSuspend; - int mFailedDQs; - bool mPaused; //Pause state - preview_stream_ops_t* mANativeWindow; - android::sp<DisplayThread> mDisplayThread; - FrameProvider *mFrameProvider; ///Pointer to the frame provider interface - Utils::MessageQueue mDisplayQ; - unsigned int mDisplayState; - ///@todo Have a common class for these members - mutable android::Mutex mLock; - bool mDisplayEnabled; - int mBufferCount; - CameraBuffer *mBuffers; - //buffer_handle_t** mBufferHandleMap; // -> frames[i].BufferHandle - //IMG_native_handle_t** mGrallocHandleMap; // -> frames[i].GrallocHandle - uint32_t* mOffsetsMap; // -> frames[i].Offset - int mFD; - android::KeyedVector<buffer_handle_t *, int> mFramesWithCameraAdapterMap; - android::KeyedVector<int, int> mFramesType; - android::sp<ErrorNotifier> mErrorNotifier; - - uint32_t mFrameWidth; - uint32_t mFrameHeight; - uint32_t mPreviewWidth; - uint32_t mPreviewHeight; - - uint32_t mXOff; - uint32_t mYOff; - - const char *mPixelFormat; - -#if PPM_INSTRUMENTATION || PPM_INSTRUMENTATION_ABS - //Used for calculating standby to first shot - struct timeval mStandbyToShot; - bool mMeasureStandby; - //Used for shot to snapshot/shot calculation - struct timeval mStartCapture; - bool mShotToShot; - -#endif - -}; - -} // namespace Camera -} // namespace Ti |