khronosfws/openmax_al/src/engine/xaengine.c
changeset 19 4a629bc82c5e
parent 12 5a06f39ad45b
child 25 6f7ceef7b1d1
--- a/khronosfws/openmax_al/src/engine/xaengine.c	Mon May 03 12:59:52 2010 +0300
+++ b/khronosfws/openmax_al/src/engine/xaengine.c	Fri Apr 30 19:18:45 2010 -0500
@@ -35,25 +35,28 @@
 #include "xadevicevolumeitf.h"
 #include "xaconfigextensionsitf.h"
 #include "xathreadsafety.h"
-#ifdef _GSTREAMER_BACKEND_  
-#include "XAStaticCameraCapsAdaptation.h"
-#endif
+#include "xaframeworkmgr.h"  
+#include "xastaticcameracapsadaptation.h"
+
+
 /* Static mapping of enumeration XAEngineInterfaces to interface iids */
 static const XAInterfaceID* xaEngineItfIIDs[ENGINE_ITFCOUNT]={
     &XA_IID_OBJECT,
     &XA_IID_ENGINE,
     &XA_IID_DYNAMICINTERFACEMANAGEMENT,
     &XA_IID_THREADSYNC,
-    &XA_IID_CONFIGEXTENSION,
-    &XA_IID_DEVICEVOLUME,
+/*    &XA_IID_CONFIGEXTENSION,*/
+/*    &XA_IID_DEVICEVOLUME,*/
     &XA_IID_AUDIOIODEVICECAPABILITIES,
-    &XA_IID_AUDIODECODERCAPABILITIES,
-    &XA_IID_AUDIOENCODERCAPABILITIES,
+/*    &XA_IID_AUDIODECODERCAPABILITIES,*/
+    &XA_IID_AUDIOENCODERCAPABILITIES
+/*
     &XA_IID_CAMERACAPABILITIES,
     &XA_IID_IMAGEDECODERCAPABILITIES,
     &XA_IID_IMAGEENCODERCAPABILITIES,
     &XA_IID_VIDEODECODERCAPABILITIES,
     &XA_IID_VIDEOENCODERCAPABILITIES
+*/
 };
 
 /*****************************************************************************
@@ -173,9 +176,11 @@
         }
     }
 
-#ifdef _GSTREAMER_BACKEND_  
+/*
+  
     pImpl->adaptationCtx = XAEngineAdapt_Create();
-#endif
+
+*/
     /* Set ObjectItf to point to newly created object */
     *pEngine = ((XAObjectItf)&(pBaseObj->self));
 
@@ -257,23 +262,26 @@
         return XA_RESULT_PARAMETER_INVALID;
     }
 
-#ifdef _GSTREAMER_BACKEND_  
-    ret = XAEngineAdapt_PostInit( pObjImpl->adaptationCtx );
-#endif
-    if( ret != XA_RESULT_SUCCESS )
+   
+    /* Table containing use-case framework map */
+    pObjImpl->frameworkMap = XAFrameworkMgr_CreateFrameworkMap();
+    if (pObjImpl->frameworkMap == NULL)
     {
-        DEBUG_ERR_A1("Engine postinit failed - %d", ret);
+        DEBUG_ERR("XA_RESULT_MEMORY_FAILURE");
         DEBUG_API("<-XAEngineImpl_DoRealize");
-        return ret;
+        /* memory allocation failed */
+        return XA_RESULT_MEMORY_FAILURE;
     }
 
-    ret = XAEngineAdaptMMF_PostInit( pObjImpl->adaptationMmfCtx );
-    if( ret != XA_RESULT_SUCCESS )
-    {
-        DEBUG_ERR_A1("Engine postinit failed (MMF) - %d", ret);
-        DEBUG_API("<-XAEngineImpl_DoRealize");
+
+    /* Create capabilities list */
+    ret = XACapabilitiesMgr_CreateCapabilitieList(pObjImpl->frameworkMap, &(pObjImpl->capabilities));
+    if (ret != XA_RESULT_SUCCESS)
+        {
         return ret;
-    }
+        }
+
+
     /* Realize all implicit and explicitly wanted interfaces */
     for(itfIdx=0; itfIdx<ENGINE_ITFCOUNT; itfIdx++)
     {
@@ -284,7 +292,7 @@
             switch(itfIdx)
             {
                 case ENGINE_ENGINEITF:
-                    pItf = XAEngineItfImpl_Create();
+                    pItf = XAEngineItfImpl_Create(pObjImpl->frameworkMap, pObjImpl->capabilities);
                     break;
                 case ENGINE_THREADSYNCITF:
                     pItf = XAThreadSyncItfImpl_Create();
@@ -293,11 +301,12 @@
                     pItf = XADIMItfImpl_Create();
                     break;
                 case ENGINE_AUDIOIODEVICECAPAITF:
-                    pItf = XAAudIODevCapaItfImpl_Create();
+                    pItf = XAAudIODevCapaItfImpl_Create(pObjImpl->capabilities);
                     break;
                 case ENGINE_AUDIOENCODERCAPAITF:
-                    pItf = XAAudioEncoderCapabilitiesItfImpl_Create();
+                    pItf = XAAudioEncoderCapabilitiesItfImpl_Create(pObjImpl->capabilities);
                     break;
+/*
                 case ENGINE_AUDIODECODERCAPAITF:
                     pItf = XAAudioDecoderCapabilitiesItfImpl_Create();
                     break;
@@ -305,15 +314,13 @@
                     pItf = XAConfigExtensionsItfImpl_Create();
                     break;
                 case ENGINE_DEVICEVOLUMEITF:
-#ifdef _GSTREAMER_BACKEND_  
                     pItf = XADeviceVolumeItfImpl_Create(pObjImpl->adaptationCtx);
-#endif
                     break;
                 case ENGINE_CAMERACAPAITF:
-#ifdef _GSTREAMER_BACKEND_
+
                     XAStaticCameraCaps_Init();
                     pItf = XACameraCapabilitiesItfImpl_Create();
-#endif                    
+                    
                     break;
                 case ENGINE_IMAGEDECODERCAPAITF:
                     pItf = XAImageDecoderCapabilitiesItfImpl_Create();
@@ -327,6 +334,7 @@
                 case ENGINE_VIDEOENCODERCAPAITF:
                     pItf = XAVideoEncoderCapabilitiesItfImpl_Create();
                     break;
+*/
                 default:
                     break;
             }
@@ -394,6 +402,7 @@
                 case ENGINE_AUDIOENCODERCAPAITF:
                     XAAudioEncoderCapabilitiesItfImpl_Free(pItf);
                     break;
+/*
                 case ENGINE_AUDIODECODERCAPAITF:
                     XAAudioDecoderCapabilitiesItfImpl_Free(pItf);
                     break;
@@ -404,9 +413,9 @@
                     XADeviceVolumeItfImpl_Free(pItf);
                     break;
                 case ENGINE_CAMERACAPAITF:
-#ifdef _GSTREAMER_BACKEND_
+
                     XACameraCapabilitiesItfImpl_Free(pItf);
-#endif                    
+                    
                     break;
                 case ENGINE_IMAGEDECODERCAPAITF:
                     XAImageDecoderCapabilitiesItfImpl_Free(pItf);
@@ -420,6 +429,7 @@
                 case ENGINE_VIDEOENCODERCAPAITF:
                     XAVideoEncoderCapabilitiesItfImpl_Free(pItf);
                     break;
+*/
                 default:
                     break;
             }
@@ -428,20 +438,25 @@
     }
 
     /* free all other allocated resources*/
-#ifdef _GSTREAMER_BACKEND_  
+/*  
     if ( pImpl->adaptationCtx != NULL )
     {
         XAEngineAdapt_Destroy( pImpl->adaptationCtx );
         pImpl->adaptationCtx = NULL;
     }
-#endif    
+    
     if ( pImpl->adaptationMmfCtx != NULL )
     {
         XAEngineAdaptMMF_Destroy( pImpl->adaptationMmfCtx );
         pImpl->adaptationMmfCtx = NULL;
-    }
-
-    XAThreadSafety_Destroy();
+    }*/
+    /* free framework map */
+    XAFrameworkMgr_DeleteFrameworkMap(&pImpl->frameworkMap);
+    
+    /* TODO free capabilities list */
+    XACapabilitiesMgr_DeleteCapabilitieList(&pImpl->capabilities);
+    
+     XAThreadSafety_Destroy();
 
     DEBUG_API("<-XAEngineImpl_FreeResources");
     return;