diff -r 000000000000 -r 0e4a32b9112d omxil_generic/omxilcomplib/src/omxilcallbackmanagerif.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omxil_generic/omxilcomplib/src/omxilcallbackmanagerif.h Wed Aug 25 12:40:50 2010 +0300 @@ -0,0 +1,195 @@ +// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +/** +@file +@internalComponent +*/ + +#ifndef OMXILCALLBACKMANAGERIF_H +#define OMXILCALLBACKMANAGERIF_H + +#include + +#include + +// Forward declarations +class MOmxILPortManagerIf; +class COmxILFsm; + +/** + CallBack Manager Interface used by Callback Manager implementations. + */ +class MOmxILCallbackManagerIf : public MOmxILCallbackNotificationIf + { + +public: + + virtual ~MOmxILCallbackManagerIf(); + + /** + Method to update the Port Manager reference + + @param [in] aPortManager The Port Manager + + @return OMX_ERRORTYPE + */ + virtual void SetPortManager(MOmxILPortManagerIf& aPortManager) = 0; + + /** + Method to update the FSM reference + + @param [in] aFsm The FSM + + @return OMX_ERRORTYPE + */ + virtual void SetFsm(COmxILFsm& aFsm) = 0; + + + // + // Methods for Callback Registration/Un-registration + // + + /** + Method to register the component handle + + @param [in] aComponentHandle The component handle + + @return OMX_ERRORTYPE + */ + virtual OMX_ERRORTYPE RegisterComponentHandle( + OMX_HANDLETYPE aComponentHandle) = 0; + + /** + Method to register the IL Client callbacks + + @param [in] apCallbacks The IL Client callback pointers + + @param [in] apAppData The IL Client data used to provide + component-specific context + + @return OMX_ERRORTYPE + */ + virtual OMX_ERRORTYPE RegisterILClientCallbacks( + const OMX_CALLBACKTYPE* apCallbacks, + const OMX_PTR apAppData) = 0; + + /** + Method to register a tunnel callback + + @param [in] aLocalPortIndex The tunnel's local port index + + @param [in] aLocalPortDirection The direction of the tunnel's local port + + @param [in] aTunnelledComponentHandle Tunnelled component handle + + @param [in] aTunnelledPortIndex Index of the tunnelled port + + @return OMX_ERRORTYPE + */ + virtual OMX_ERRORTYPE RegisterTunnelCallback( + OMX_U32 aLocalPortIndex, + OMX_DIRTYPE aLocalPortDirection, + OMX_HANDLETYPE aTunnelledComponentHandle, + OMX_U32 aTunnelledPortIndex) = 0; + + /** + Method to un-register a tunnel callback + + @param [in] aLocalPortIndex The tunnel's local port index + + @return OMX_ERRORTYPE + */ + virtual OMX_ERRORTYPE DeregisterTunnelCallback( + OMX_U32 aLocalPortIndex) = 0; + + /** + Method to register buffer mark propagation ports + + @param [in] aPortIndex The index of the input port that receives buffer + marks + + @param [in] aPropagationPortIndex An index of the ouput port where buffer marks + will be propagated + + @return OMX_ERRORTYPE + */ + virtual OMX_ERRORTYPE RegisterBufferMarkPropagationPort( + OMX_U32 aPortIndex, + OMX_U32 aPropagationPortIndex) = 0; + + /** + Method to remove a buffer done commands from the Callback Manager + internal queues, if queueing is in use + + @param [in] apBufferHeader The buffer header contained in the buffer indication + + @param [in] aDirection The direction of the port that handles the buffer + + @return TBool + */ + virtual TBool BufferRemovalIndication( + OMX_BUFFERHEADERTYPE* apBufferHeader, + OMX_DIRTYPE aDirection) = 0; + + // + // Methods for Callback Notification + // + + /** + Method to notify the IL Client of the completion of an OpenMAX IL state + transition + + @param [in] aOmxState The new state + + @return OMX_ERRORTYPE + */ + virtual OMX_ERRORTYPE TransitionCompleteNotification( + OMX_STATETYPE aOmxState) = 0; + + /** + Method to notify the IL Client of the completion of a OpenMAX IL command + + @param [in] aOmxCommand The command that has been completed + + @param [in] aOmxPortIndex The index of the port where the command + applies, if any + + @return OMX_ERRORTYPE + */ + virtual OMX_ERRORTYPE CommandCompleteNotification( + OMX_COMMANDTYPE aOmxCommand, + OMX_U32 aOmxPortIndex) = 0; + +#ifdef _OMXIL_COMMON_IL516C_ON + /** + Method to request from the tunnelled component the ejection of the + buffers present in one of its ports + + @param [in] aLocalOmxPortIndex The index of the local port that is + tunnelled to the component that the ejection request applies to + + @return OMX_ERRORTYPE + */ + virtual OMX_ERRORTYPE EjectBuffersRequest( + OMX_U32 aLocalOmxPortIndex) = 0; +#endif + + }; + +#include "omxilcallbackmanagerif.inl" + +#endif // OMXILCALLBACKMANAGERIF_H