khronosfws/openmax_al/src/common/xanokialinearvolumeitf.c
branchRCL_3
changeset 20 0ac9a5310753
parent 19 095bea5f582e
child 21 999b2818a0eb
--- a/khronosfws/openmax_al/src/common/xanokialinearvolumeitf.c	Tue Aug 31 15:43:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,314 +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: Nokia Linear Volume Interface Implementation
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-
-#include "xanlinearvolumeitf.h"
-#include "xanokialinearvolumeitfadaptationmmf.h"
-
-/**
- * XANokiaLinearVolumeItfImpl* GetImpl(XANokiaLinearVolumeItf self)
- * Description: Validated interface pointer and cast it to implementations pointer.
- **/
-static XANokiaLinearVolumeItfImpl* GetImpl(XANokiaLinearVolumeItf self)
-    {
-    if (self)
-        {
-        XANokiaLinearVolumeItfImpl* impl =
-                (XANokiaLinearVolumeItfImpl*) (*self);
-        if (impl && impl == impl->self)
-            {
-            return impl;
-            }
-        }
-    return NULL;
-    }
-
-/**
- * XAresult XANokiaLinearVolumeItfImpl_RegisterVolumeCallback(XANokiaLinearVolumeItf self,
- *                                               xaNokiaLinearVolumeCallback callback,
- *                                               void * pContext)
- * Description: Sets or clears the xaVolumeCallback.
- **/
-XAresult XANokiaLinearVolumeItfImpl_RegisterVolumeCallback(
-        XANokiaLinearVolumeItf self, xaNokiaLinearVolumeCallback callback,
-        void * pContext)
-    {
-    XAresult ret = XA_RESULT_SUCCESS;
-    XANokiaLinearVolumeItfImpl* impl = GetImpl(self);
-    DEBUG_API("->XANokiaLinearVolumeItfImpl_RegisterVolumeCallback");
-
-    if (!impl)
-        {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        /* invalid parameter */
-        DEBUG_API("<-XANokiaLinearVolumeItfImpl_RegisterVolumeCallback");
-        return XA_RESULT_PARAMETER_INVALID;
-        }
-
-    impl->callback = callback;
-    impl->context = pContext;
-    impl->cbPtrToSelf = self;
-
-    DEBUG_API("<-XANokiaLinearVolumeItfImpl_RegisterVolumeCallback");
-    return ret;
-    }
-
-/**
- * Base interface XANokiaLinearVolumeItf implementation
- */
-
-/**
- * XAresult XANokiaLinearVolumeItfImpl_SetVolumeLevel(XANokiaLinearVolumeItf self, XAuint32 percentage)
- * Description: Sets the object's volume level.
- **/
-XAresult XANokiaLinearVolumeItfImpl_SetVolumeLevel(
-        XANokiaLinearVolumeItf self, XAuint32 *percentage)
-    {
-    XANokiaLinearVolumeItfImpl *impl = GetImpl(self);
-    XAresult ret = XA_RESULT_SUCCESS;
-    XAuint32 vol = *percentage;
-
-    DEBUG_API("->XANokiaLinearVolumeItfImpl_SetVolumeLevel");
-
-    if ((!impl) || (vol > MAX_PERCENTAGE_VOLUME))
-        {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        DEBUG_API("<-XANokiaLinearVolumeItfImpl_SetVolumeLevel");
-        /* invalid parameter */
-        return XA_RESULT_PARAMETER_INVALID;
-        }
-
-    ret = XAAdaptationBase_ThreadEntry(impl->adapCtx);
-    if (ret == XA_RESULT_SUCCESS)
-        {
-        if (impl->adapCtx && impl->adapCtx->fwtype == FWMgrFWMMF)
-            {
-            ret = XANokiaLinearVolumeItfAdapt_SetVolumeLevel(
-                    (XAAdaptationMMFCtx*) impl->adapCtx, vol);
-            if (ret == XA_RESULT_SUCCESS)
-                {
-                impl->volumeLevel = vol;
-                }
-            }
-        XAAdaptationBase_ThreadExit(impl->adapCtx);
-        }
-    DEBUG_API("<-XANokiaLinearVolumeItfImpl_SetVolumeLevel");
-    return ret;
-    }
-
-/**
- * XAresult XANokiaLinearVolumeItfImpl_GetVolumeLevel(XANokiaLinearVolumeItf self, XAmillibel *pLevel)
- * Description: Gets the object’s volume level.
- **/
-XAresult XANokiaLinearVolumeItfImpl_GetVolumeLevel(
-        XANokiaLinearVolumeItf self, XAuint32 *percentage)
-    {
-    XAresult ret = XA_RESULT_SUCCESS;
-    XANokiaLinearVolumeItfImpl *impl = GetImpl(self);
-    DEBUG_API("->XANokiaLinearVolumeItfImpl_GetVolumeLevel");
-
-    if (!impl || !percentage)
-        {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        DEBUG_API("<-XANokiaLinearVolumeItfImpl_GetVolumeLevel");
-        /* invalid parameter */
-        return XA_RESULT_PARAMETER_INVALID;
-        }
-
-    ret = XAAdaptationBase_ThreadEntry(impl->adapCtx);
-    if (ret == XA_RESULT_SUCCESS)
-        {
-        if (impl->adapCtx && impl->adapCtx->fwtype == FWMgrFWMMF)
-            {
-            ret = XANokiaLinearVolumeItfAdapt_GetVolumeLevel(
-                    (XAAdaptationMMFCtx*) impl->adapCtx, percentage);
-            if (ret == XA_RESULT_SUCCESS)
-                {
-                impl->volumeLevel = *percentage;
-                }
-            }
-        XAAdaptationBase_ThreadExit(impl->adapCtx);
-        }
-
-    DEBUG_API("<-XANokiaLinearVolumeItfImpl_GetVolumeLevel");
-    return ret;
-    }
-
-/**
- * XAresult XANokiaLinearVolumeItfImpl_GetMaxVolumeLevel(XANokiaLinearVolumeItf  self, XAmillibel *pMaxLevel)
- * Description: Gets the maximum supported level.
- **/
-XAresult XANokiaLinearVolumeItfImpl_GetStepCount(XANokiaLinearVolumeItf self,
-        XAuint32 *pStepCount)
-    {
-    XAresult ret = XA_RESULT_SUCCESS;
-    XANokiaLinearVolumeItfImpl *impl = GetImpl(self);
-    DEBUG_API("->XANokiaLinearVolumeItfImpl_GetVolumeLevel");
-
-    if (!impl || !pStepCount)
-        {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        DEBUG_API("<-XANokiaLinearVolumeItfImpl_GetMaxVolumeLevel");
-        /* invalid parameter */
-        return XA_RESULT_PARAMETER_INVALID;
-        }
-
-    ret = XAAdaptationBase_ThreadEntry(impl->adapCtx);
-    if (ret == XA_RESULT_SUCCESS)
-        {
-        if (impl->adapCtx && impl->adapCtx->fwtype == FWMgrFWMMF)
-            {
-            ret = XANokiaLinearVolumeItfAdapt_GetStepCount(
-                    (XAAdaptationMMFCtx*) impl->adapCtx, pStepCount);
-            }
-    
-        XAAdaptationBase_ThreadExit(impl->adapCtx);
-        }
-    DEBUG_API("<-XANokiaLinearVolumeItfImpl_GetMaxVolumeLevel");
-    return ret;
-    }
-
-XAresult XANokiaLinearVolumeItfImpl_SetCallbackEventsMask(
-        XANokiaLinearVolumeItf self, XAuint32 eventFlags)
-    {
-    XAresult ret = XA_RESULT_SUCCESS;
-    XANokiaLinearVolumeItfImpl* impl = GetImpl(self);
-    DEBUG_API("->XANokiaLinearVolumeItfImpl_SetCallbackEventsMask");
-
-    if (!impl)
-        {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        /* invalid parameter */
-        DEBUG_API("<-XANokiaLinearVolumeItfImpl_SetCallbackEventsMask");
-        return XA_RESULT_PARAMETER_INVALID;
-        }
-
-    impl->eventFlags = eventFlags;
-
-    DEBUG_API("<-XANokiaLinearVolumeItfImpl_SetCallbackEventsMask");
-    return ret;
-    }
-
-XAresult XANokiaLinearVolumeItfImpl_GetCallbackEventsMask(
-        XANokiaLinearVolumeItf self, XAuint32 * pEventFlags)
-    {
-    XAresult ret = XA_RESULT_SUCCESS;
-    XANokiaLinearVolumeItfImpl* impl = GetImpl(self);
-    DEBUG_API("->XANokiaLinearVolumeItfImpl_GetCallbackEventsMask");
-
-    if (!impl || !pEventFlags)
-        {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        /* invalid parameter */
-        DEBUG_API("<-XANokiaLinearVolumeItfImpl_GetCallbackEventsMask");
-        return XA_RESULT_PARAMETER_INVALID;
-        }
-
-    *pEventFlags = impl->eventFlags;
-
-    DEBUG_API("<-XANokiaLinearVolumeItfImpl_GetCallbackEventsMask");
-    return ret;
-    }
-
-/**
- * XANokiaLinearVolumeItfImpl -specific methods
- **/
-
-/**
- * XANokiaLinearVolumeItfImpl* XANokiaLinearVolumeItfImpl_Create()
- * Description: Allocate and initialize VolumeItfImpl
- **/
-XANokiaLinearVolumeItfImpl* XANokiaLinearVolumeItfImpl_Create(
-        XAAdaptationBaseCtx *adapCtx)
-    {
-    XANokiaLinearVolumeItfImpl *self = (XANokiaLinearVolumeItfImpl*) calloc(
-            1, sizeof(XANokiaLinearVolumeItfImpl));
-    DEBUG_API("->XANokiaLinearVolumeItfImpl_Create");
-
-    if (self)
-        {
-        /* init itf default implementation */
-        self->itf.GetStepCount = XANokiaLinearVolumeItfImpl_GetStepCount;
-        self->itf.GetVolumeLevel = XANokiaLinearVolumeItfImpl_GetVolumeLevel;
-        self->itf.SetVolumeLevel = XANokiaLinearVolumeItfImpl_SetVolumeLevel;
-        self->itf.RegisterVolumeCallback
-                = XANokiaLinearVolumeItfImpl_RegisterVolumeCallback;
-        self->itf.SetCallbackEventsMask
-                = XANokiaLinearVolumeItfImpl_SetCallbackEventsMask;
-        self->itf.GetCallbackEventsMask
-                = XANokiaLinearVolumeItfImpl_GetCallbackEventsMask;
-        /* init variables */
-        self->volumeLevel = 0;
-
-        self->adapCtx = adapCtx;
-
-        XAAdaptationBase_AddEventHandler(adapCtx,
-                &XANokiaLinearVolumeItfImpl_AdaptCb,
-                XA_NOKIALINEARVOLITFEVENTS, self);
-
-        self->self = self;
-        }
-
-    DEBUG_API("<-XANokiaLinearVolumeItfImpl_Create");
-    return self;
-    }
-
-/**
- * void XANokiaLinearVolumeItfImpl_Free(XANokiaLinearVolumeItfImpl* self)
- * Description: Free all resources reserved at XANokiaLinearVolumeItfImpl_Create
- **/
-void XANokiaLinearVolumeItfImpl_Free(XANokiaLinearVolumeItfImpl* self)
-    {
-    DEBUG_API("->XANokiaLinearVolumeItfImpl_Free");
-    assert(self==self->self);
-    free(self);
-    DEBUG_API("<-XANokiaLinearVolumeItfImpl_Free");
-    }
-
-/* void XANokiaLinearVolumeItfimpl_AdaptCb( void *pHandlerCtx, XAAdaptEvent *event )
- * Description: Event handler for adaptation events
- */
-void XANokiaLinearVolumeItfImpl_AdaptCb(void *pHandlerCtx,
-        XAAdaptEvent *event)
-    {
-    XANokiaLinearVolumeItfImpl* impl =
-            (XANokiaLinearVolumeItfImpl*) pHandlerCtx;
-    XAboolean eventBoolean = XA_BOOLEAN_FALSE;
-
-    DEBUG_API("->XANokiaLinearVolumeItfimpl_AdaptCb");
-
-    if (!impl || !event)
-        {
-        DEBUG_ERR("XANokiaLinearVolumeItfImpl_AdaptCb, invalid context pointer!");
-        DEBUG_API("<-XANokiaLinearVolumeItfImpl_AdaptCb");
-        return;
-        }
-    
-    if (event->eventid == XA_ADAPT_VOLUME_VOLUME_CHANGED && impl->callback)
-        {
-        if (XA_NOKIALINEARVOLUME_EVENT_VOLUME_CHANGED & impl->eventFlags)
-            {
-            DEBUG_API("Volume level changed in adaptation");
-            impl->callback(impl->cbPtrToSelf, impl->context,
-                    XA_NOKIALINEARVOLUME_EVENT_VOLUME_CHANGED, eventBoolean);
-            }
-        }
-    DEBUG_API("<-XANokiaLinearVolumeItfimpl_AdaptCb");
-    }