00001 00024 #ifndef __BELLAGIO_OPENMAX_SYMBIANLOADER_H__ 00025 #define __BELLAGIO_OPENMAX_SYMBIANLOADER_H__ 00026 00027 #include <e32def.h> //TBool 00028 #include <e32std.h> //RLibrary 00029 00030 #include "BellagioOpenMaxLoader.h" 00031 00032 #include "BellagioOpenMaxSymbianLoaderImplUid.hrh" 00033 00034 #include "BellagioOpenMaxComponent.h" 00035 00036 // The actual implementation 00037 #include "nrc_symbian_component_loader.h" 00038 00039 // Forward declaration 00040 struct BOSA_COMPONENTLOADER; 00041 00042 class CBellagioOpenMaxSymbianLoader : public CBellagioOpenMaxLoader 00043 { 00044 public: 00045 static CBellagioOpenMaxSymbianLoader* NewL(TAny* aInitParams); 00046 virtual ~CBellagioOpenMaxSymbianLoader(); 00047 00048 OMX_COMPONENTTYPE* CreateComponent(OMX_STRING cComponentName, BOSA_COMPONENTLOADER* loader); 00049 OMX_ERRORTYPE DestroyComponent(OMX_COMPONENTTYPE *hComponent); 00050 00051 OMX_ERRORTYPE ComponentNameEnum(OMX_STRING cComponentName, 00052 OMX_U32 nNameLength, 00053 OMX_U32 nIndex); 00054 00055 OMX_ERRORTYPE GetRolesOfComponent(OMX_STRING compName, 00056 OMX_U32 *pNumRoles, 00057 OMX_U8 **roles); 00058 00059 OMX_ERRORTYPE GetComponentsOfRole(OMX_STRING role, 00060 OMX_U32 *pNumComps, 00061 OMX_U8 **compNames); 00062 00063 CBellagioOpenMaxComponent* GetComponentPrivate(OMX_COMPONENTTYPE *hComponent); 00064 TInt MakeComponentList(); 00065 00066 private: 00067 CBellagioOpenMaxSymbianLoader(); 00068 00069 TInt GetInfoIndex(OMX_STRING componentName); 00070 00071 private: 00072 /* a array to hold all components created by this loader */ 00073 RPointerArray<CBellagioOpenMaxComponent> iComponents; 00074 00075 /* a array to hold component infos */ 00076 RImplInfoPtrArray componentInfos; 00077 }; 00078 00079 #endif // __BELLAGIO_OPENMAX_SYMBIANLOADER_H__