khronosfws/openmax_al/src/common/xaobjectitf.h
changeset 25 6f7ceef7b1d1
parent 19 4a629bc82c5e
child 53 eabc8c503852
equal deleted inserted replaced
21:2ed61feeead6 25:6f7ceef7b1d1
     1 /*
     1 /*
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     2  * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3  * All rights reserved.
     4 * This component and the accompanying materials are made available
     4  * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5  * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6  * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     8 *
     8  *
     9 * Initial Contributors:
     9  * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    10  * Nokia Corporation - initial contribution.
    11 *
    11  *
    12 * Contributors:
    12  * Contributors:
    13 *
    13  *
    14 * Description: 
    14  * Description: 
    15 *
    15  *
    16 */
    16  */
    17 
    17 
    18 #ifndef XAOBJECTITF_H
    18 #ifndef XAOBJECTITF_H
    19 #define XAOBJECTITF_H
    19 #define XAOBJECTITF_H
    20 
    20 
    21 #include "openmaxalwrapper.h"
    21 #include "openmaxalwrapper.h"
    32 
    32 
    33 /** ENUMERATIONS **/
    33 /** ENUMERATIONS **/
    34 
    34 
    35 /** STRUCTURES **/
    35 /** STRUCTURES **/
    36 typedef struct XAObjItfMapEntry_
    36 typedef struct XAObjItfMapEntry_
    37 {
    37     {
    38     XAInterfaceID iid;
    38     XAInterfaceID iid;
    39     XAuint8       mapIdx;
    39     XAuint8 mapIdx;
    40     void          *pItf;
    40     void *pItf;
    41     XAboolean     locEnabled;
    41     XAboolean locEnabled;
    42     XAboolean     required;
    42     XAboolean required;
    43     XAboolean     isDynamic;
    43     XAboolean isDynamic;
    44 } XAObjItfMapEntry;
    44     } XAObjItfMapEntry;
    45 
    45 
    46 /* Definition of XAObjectItf implementation */
    46 /* Definition of XAObjectItf implementation */
    47 typedef struct XAObjectItfImpl_
    47 typedef struct XAObjectItfImpl_
    48 {
    48     {
    49     /* parent interface */
    49     /* parent interface */
    50     struct XAObjectItf_ itf;
    50     struct XAObjectItf_ itf;
    51     /* pointer to self */
    51     /* pointer to self */
    52     struct XAObjectItfImpl_* self;
    52     struct XAObjectItfImpl_* self;
    53 
    53 
    70     /* object-specific function implementation pointers */
    70     /* object-specific function implementation pointers */
    71     /* (must be implemented by every object) */
    71     /* (must be implemented by every object) */
    72     xaDoRealizeImpl DoRealizeImpl;
    72     xaDoRealizeImpl DoRealizeImpl;
    73     xaDoResumeImpl DoResumeImpl;
    73     xaDoResumeImpl DoResumeImpl;
    74     xaFreeResourcesImpl FreeResourcesImpl;
    74     xaFreeResourcesImpl FreeResourcesImpl;
    75 } XAObjectItfImpl;
    75     } XAObjectItfImpl;
    76 
       
    77 
    76 
    78 /** METHODS **/
    77 /** METHODS **/
    79 
    78 
    80 /* Base interface XAObjectItf implementation */
    79 /* Base interface XAObjectItf implementation */
    81 XAresult XAObjectItfImpl_Realize(XAObjectItf self, XAboolean async);
    80 XAresult XAObjectItfImpl_Realize(XAObjectItf self, XAboolean async);
    83 XAresult XAObjectItfImpl_Resume(XAObjectItf self, XAboolean async);
    82 XAresult XAObjectItfImpl_Resume(XAObjectItf self, XAboolean async);
    84 
    83 
    85 XAresult XAObjectItfImpl_GetState(XAObjectItf self, XAuint32 *pState);
    84 XAresult XAObjectItfImpl_GetState(XAObjectItf self, XAuint32 *pState);
    86 
    85 
    87 XAresult XAObjectItfImpl_GetInterface(XAObjectItf self,
    86 XAresult XAObjectItfImpl_GetInterface(XAObjectItf self,
    88                                        const XAInterfaceID iid,
    87         const XAInterfaceID iid, void *pInterface);
    89                                        void *pInterface);
       
    90 
    88 
    91 XAresult XAObjectItfImpl_RegisterCallback(XAObjectItf self,
    89 XAresult XAObjectItfImpl_RegisterCallback(XAObjectItf self,
    92                                            xaObjectCallback callback,
    90         xaObjectCallback callback, void *pContext);
    93                                            void *pContext);
       
    94 
    91 
    95 void XAObjectItfImpl_AbortAsyncOperation(XAObjectItf self);
    92 void XAObjectItfImpl_AbortAsyncOperation(XAObjectItf self);
    96 
    93 
    97 void XAObjectItfImpl_Destroy(XAObjectItf self);
    94 void XAObjectItfImpl_Destroy(XAObjectItf self);
    98 
    95 
    99 XAresult XAObjectItfImpl_SetPriority(XAObjectItf self, XAint32 priority,
    96 XAresult XAObjectItfImpl_SetPriority(XAObjectItf self, XAint32 priority,
   100                                       XAboolean preemptable);
    97         XAboolean preemptable);
   101 
    98 
   102 XAresult XAObjectItfImpl_GetPriority(XAObjectItf self, XAint32 *pPriority,
    99 XAresult XAObjectItfImpl_GetPriority(XAObjectItf self, XAint32 *pPriority,
   103                                       XAboolean *pPreemptable);
   100         XAboolean *pPreemptable);
   104 
   101 
   105 XAresult XAObjectItfImpl_SetLossOfControlInterfaces(XAObjectItf self,
   102 XAresult XAObjectItfImpl_SetLossOfControlInterfaces(XAObjectItf self,
   106                                                      XAint16 numInterfaces,
   103         XAint16 numInterfaces, XAInterfaceID *pInterfaceIDs,
   107                                                      XAInterfaceID *pInterfaceIDs,
   104         XAboolean enabled);
   108                                                      XAboolean enabled);
       
   109 
   105 
   110 /* XAObjectItfImpl -specific methods */
   106 /* XAObjectItfImpl -specific methods */
   111 
   107 
   112 /* Allocate and initialize base object */
   108 /* Allocate and initialize base object */
   113 XAresult XAObjectItfImpl_Init(XAObjectItfImpl* self,
   109 XAresult XAObjectItfImpl_Init(XAObjectItfImpl* self, XAuint32 itfCount,
   114                               XAuint32 itfCount,
   110         const XAInterfaceID** itfIIDs, xaDoRealizeImpl doRealizeImpl,
   115                               const XAInterfaceID** itfIIDs,
   111         xaDoResumeImpl doResumeImpl, xaFreeResourcesImpl freeResourcesImpl);
   116                               xaDoRealizeImpl doRealizeImpl,
       
   117                               xaDoResumeImpl doResumeImpl,
       
   118                               xaFreeResourcesImpl freeResourcesImpl);
       
   119 
   112 
   120 /* methods for asynchronous service */
   113 /* methods for asynchronous service */
   121 void* XAObjectItfImpl_AsyncRealize(void* args);
   114 void* XAObjectItfImpl_AsyncRealize(void* args);
   122 void* XAObjectItfImpl_AsyncResume(void* args);
   115 void* XAObjectItfImpl_AsyncResume(void* args);
   123 
   116 
   124 XAObjItfMapEntry* XAObjectItfImpl_GetItfEntry(const XAObjectItf self,
   117 XAObjItfMapEntry* XAObjectItfImpl_GetItfEntry(const XAObjectItf self,
   125                                               const XAInterfaceID iid);
   118         const XAInterfaceID iid);
   126 
   119 
   127 #endif /* XAOBJECTITF_H */
   120 #endif /* XAOBJECTITF_H */