khronosfws/openmax_al/src/outputmix/xaoutputmixitf.c
changeset 33 5e8b14bae8c3
parent 28 ebf79c79991a
child 36 73253677b50a
--- a/khronosfws/openmax_al/src/outputmix/xaoutputmixitf.c	Fri Jun 25 17:36:03 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,226 +0,0 @@
-/*
-* Copyright (c) 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: 
-*
-*/
-
-#include "xaoutputmixitf.h"
-
-#include "xaoutputmixitfadaptation.h"
-
-#include <assert.h>
-#include "xathreadsafety.h"
-#include "e32def.h"
-/**
- * XAOutputMixtfImpl* GetImpl(XAOutputMixtfImpl self)
- * Description: Validated interface pointer and cast it to implementations pointer.
- **/
-static XAOutputMixItfImpl* GetImpl(XAOutputMixItf self)
-{
-    if(self)
-    {
-        XAOutputMixItfImpl* impl = (XAOutputMixItfImpl*)(*self);
-        if(impl && impl == impl->self)
-        {
-            return impl;
-        }
-    }
-    return NULL;
-}
-
-/**
- * Base interface XAOutputMixtf implementation
- */
-
-/*
- * XAresult XAOutputMixItfImpl_GetDestinationOutputDeviceIDs( XAOutputMixItf self,
- *                                                          XAint32 * pNumDevices,
- *                                                          XAuint32 * pDeviceIDs )
- * Description: Retrieves the device IDs of the destination output devices currently
- * associated with the output mix.
- */
-XAresult XAOutputMixItfImpl_GetDestinationOutputDeviceIDs( XAOutputMixItf self, XAint32 * pNumDevices, XAuint32 * pDeviceIDs )
-{
-    XAresult ret = XA_RESULT_SUCCESS;
-    XAOutputMixItfImpl* impl = GetImpl(self);
-    DEBUG_API_A1("->XAOutputMixItfImpl_GetDestinationOutputDeviceIDs - pNumDevices %ld",*pNumDevices);
-    XA_IMPL_THREAD_SAFETY_ENTRY(XATSOutputMix);
-    if(!impl || !pNumDevices  )
-    {
-        /* invalid parameter */
-        XA_IMPL_THREAD_SAFETY_EXIT(XATSOutputMix);
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        DEBUG_API("<-XAOutputMixItfImpl_GetDestinationOutputDeviceIDs");
-        return XA_RESULT_PARAMETER_INVALID;
-    }
-
-
-    ret = XAOutputMixItfAdapt_GetDestinationOutputDeviceIDs((XAAdaptationGstCtx*)impl->adapCtx, pNumDevices, pDeviceIDs );
-
-    XA_IMPL_THREAD_SAFETY_EXIT(XATSOutputMix);
-    DEBUG_API_A1("<-XAOutputMixItfImpl_GetDestinationOutputDeviceIDs - pNumDevices %ld",*pNumDevices);
-    return ret;
-}
-
-/*
- * XAresult XAOutputMixItfImpl_RegisterDeviceChangeCallback( XAOutputMixItf self,
- *                                                          xaMixDeviceChangeCallback callback,
- *                                                          void * pContext)
- * Description: Registers a callback to notify client when there are changes to the
- * device IDs associated with the output mix.
- */
-XAresult XAOutputMixItfImpl_RegisterDeviceChangeCallback( XAOutputMixItf self, xaMixDeviceChangeCallback callback, void * pContext)
-{
-   XAresult ret = XA_RESULT_SUCCESS;
-   XAOutputMixItfImpl* impl = GetImpl(self);
-   DEBUG_API("->XAOutputMixItfImpl_RegisterDeviceChangeCallback");
-   if(!impl)
-   {
-       /* invalid parameter */
-       DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-       DEBUG_API("<-XAOutputMixItfImpl_RegisterDeviceChangeCallback");
-       return XA_RESULT_PARAMETER_INVALID;
-   }
-
-   /* callback may be NULL (to remove callback) */
-   impl->callback = callback;
-   impl->cbContext = pContext;
-   impl->cbPtrToSelf = self;
-
-   if(callback)
-   {   /* start listening */
-       XAAdaptationBase_AddEventHandler( impl->adapCtx, &XAOutputMixItfImpl_AdaptCb, XA_OUTPUTMIXITFEVENTS, (void*)self );
-   }
-   else
-   {   /* stop listening */
-       XAAdaptationBase_RemoveEventHandler( impl->adapCtx, &XAOutputMixItfImpl_AdaptCb );
-   }
-
-
-   DEBUG_API("<-XAOutputMixItfImpl_RegisterDeviceChangeCallback");
-   return ret;
-}
-
-/*
- * XAresult XAOutputMixItfImpl_ReRoute( XAOutputMixItf self,
- *                                      XAint32 numOutputDevices,
- *                                      XAuint32 * pOutputDeviceIDs)
- * Description: Requests a change to the specified set of output devices on an output mix.
- */
-XAresult XAOutputMixItfImpl_ReRoute( XAOutputMixItf self, XAint32 numOutputDevices, XAuint32 * pOutputDeviceIDs)
-{
-   XAresult ret = XA_RESULT_SUCCESS;
-   XAOutputMixItfImpl* impl = GetImpl(self);
-
-   DEBUG_API("->XAOutputMixItfImpl_ReRoute");
-   XA_IMPL_THREAD_SAFETY_ENTRY(XATSOutputMix);
-
-   if(!impl || ( numOutputDevices > 0 && !pOutputDeviceIDs) )
-   {
-       /* invalid parameter */
-       XA_IMPL_THREAD_SAFETY_EXIT(XATSOutputMix);
-       DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-       DEBUG_API("<-XAOutputMixItfImpl_ReRoute");
-       return XA_RESULT_PARAMETER_INVALID;
-   }
-
-
-   ret = XAOutputMixItfAdapt_ReRoute((XAAdaptationGstCtx*)impl->adapCtx, numOutputDevices, pOutputDeviceIDs );
-
-
-   XA_IMPL_THREAD_SAFETY_EXIT(XATSOutputMix);
-   DEBUG_API("<-XAOutputMixItfImpl_ReRoute");
-   return ret;
-
-}
-
-/**
- * XAVolumeItfImpl -specific methods
- **/
-
-
-/*
- * XAOutputMixItfImpl* XAOutputMixItfImpl_Create(XAAdaptationBaseCtx *adapCtx)
- * Description: Creates new Output mix itf implmementation
- */
-XAOutputMixItfImpl* XAOutputMixItfImpl_Create(XAAdaptationBaseCtx *adapCtx)
-{
-   XAOutputMixItfImpl *self = (XAOutputMixItfImpl*)
-        calloc(1,sizeof(XAOutputMixItfImpl));
-   DEBUG_API("->XAVolumeItfImpl_Create");
-
-    if(self)
-    {
-        /* init itf default implementation */
-        self->itf.GetDestinationOutputDeviceIDs = XAOutputMixItfImpl_GetDestinationOutputDeviceIDs;
-        self->itf.RegisterDeviceChangeCallback = XAOutputMixItfImpl_RegisterDeviceChangeCallback;
-        self->itf.ReRoute = XAOutputMixItfImpl_ReRoute;
-
-        /* init variables */
-        self->adapCtx = adapCtx;
-        self->callback = NULL;
-        self->cbContext = NULL;
-        self->cbPtrToSelf = NULL;
-
-        self->self = self;
-    }
-
-    DEBUG_API("<-XAVolumeItfImpl_Create");
-    return self;
-}
-
-/*
- * void XAOutputMixItfImpl_Free(XAOutputMixItfImpl* self)
- * Description: Frees XAOutputMixItfImpl
- */
-void XAOutputMixItfImpl_Free(XAOutputMixItfImpl* self)
-{
-    DEBUG_API("->XAOutputMixItfImpl_Free");
-    assert(self==self->self);
-    if( self->callback )
-    {
-        XAAdaptationBase_RemoveEventHandler( self->adapCtx, &XAOutputMixItfImpl_AdaptCb );
-    }
-    free(self);
-    DEBUG_API("<-XAOutputMixItfImpl_Free");
-}
-
-
-
-/* void XAOutputMixItfImpl_AdaptCb( void *pHandlerCtx,
- *                                  XAAdaptEvent *event )
- * Description: Listen changes in adaptation
- */
-void XAOutputMixItfImpl_AdaptCb( void *pHandlerCtx, XAAdaptEvent *event )
-{
-     XAOutputMixItfImpl* impl = (XAOutputMixItfImpl*)pHandlerCtx;
-     DEBUG_API("->XAOutputMixItfImpl_AdaptCb");
-
-     if(!impl)
-     {
-        DEBUG_ERR("XAOutputMixItfImpl_AdaptCb, invalid context pointer!");
-        return;
-     }
-     assert(event);
-
-     /* send callback if needed.
-      * Check event-id to avoid sending incorrect events. */
-     if( (event->eventid==XA_ADAPT_OMIX_DEVICESET_CHANGED) && impl->callback )
-     {
-        impl->callback(impl->cbPtrToSelf, impl->cbContext);
-     }
-
-     DEBUG_API("<-XAOutputMixItfImpl_AdaptCb");
-}
-