diff -r 94fc26b6e006 -r 1fa3fb47b1e3 khronosfws/openmax_al/src/engine/xadevicevolumeitf.c --- a/khronosfws/openmax_al/src/engine/xadevicevolumeitf.c Tue Jul 06 14:50:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,211 +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 -#include -#include -#include "xaglobals.h" -#include "xadevicevolumeitf.h" - -#include "xadevicevolumeitfadaptation.h" - - -static XADeviceVolumeItfImpl* GetImpl(XADeviceVolumeItf self) -{ - if( self ) - { - XADeviceVolumeItfImpl* impl = (XADeviceVolumeItfImpl*)(*self); - if( impl && (impl == impl->self) ) - { - return impl; - } - } - return NULL; -} - -/** - * Base interface XADeviceVolumeItf implementation - */ - -/* XAresult XADeviceVolumeItfImpl_GetVolumeScale( XADeviceVolumeItf self, - * XAuint32 deviceID, - * XAint32* pMinValue, - * XAint32* pMaxValue, - * XAboolean* pIsMillibelScale) - * Description: Gets the properties of the volume scale supported by the given device. - */ -XAresult XADeviceVolumeItfImpl_GetVolumeScale( XADeviceVolumeItf self, - XAuint32 deviceID, - XAint32* pMinValue, - XAint32* pMaxValue, - XAboolean* pIsMillibelScale) -{ - XADeviceVolumeItfImpl* impl = GetImpl(self); - XAresult ret = XA_RESULT_SUCCESS; - XAboolean supported = XA_BOOLEAN_FALSE; - DEBUG_API("->XADeviceVolumeItfImpl_GetVolumeScale"); - if( !impl || !pMinValue || !pMaxValue || !pIsMillibelScale ) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-XADeviceVolumeItfImpl_GetVolumeScale"); - return XA_RESULT_PARAMETER_INVALID; - } - - - ret = XADeviceVolumeItfAdapt_IsDeviceIDSupported((XAAdaptationGstCtx*)impl->adapCtx, deviceID, &supported); - - if( ret != XA_RESULT_SUCCESS || supported != XA_BOOLEAN_TRUE ) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-XADeviceVolumeItfImpl_GetVolumeScale"); - return XA_RESULT_PARAMETER_INVALID; - } - - *pMinValue = impl->minVolume; - *pMaxValue = impl->maxVolume; - *pIsMillibelScale = impl->ismBscale; - - DEBUG_API("<-XADeviceVolumeItfImpl_GetVolumeScale"); - return ret; -} - -/* XAresult XADeviceVolumeItfImpl_SetVolume( XADeviceVolumeItf self, - * XAuint32 deviceID, - * XAint32 volume) - * Description: Sets the device's volume. - */ -XAresult XADeviceVolumeItfImpl_SetVolume( XADeviceVolumeItf self, - XAuint32 deviceID, - XAint32 volume) -{ - XADeviceVolumeItfImpl* impl = GetImpl(self); - XAresult ret = XA_RESULT_SUCCESS; - - XAboolean supported = XA_BOOLEAN_FALSE; - - DEBUG_API("->XADeviceVolumeItfImpl_SetVolume"); - - if( !impl || volume < impl->minVolume || volume > impl->maxVolume ) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-XADeviceVolumeItfImpl_SetVolume"); - return XA_RESULT_PARAMETER_INVALID; - } - - - ret = XADeviceVolumeItfAdapt_IsDeviceIDSupported((XAAdaptationGstCtx*)impl->adapCtx, deviceID, &supported); - if( ret != XA_RESULT_SUCCESS || supported != XA_BOOLEAN_TRUE ) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-XADeviceVolumeItfImpl_SetVolume"); - return XA_RESULT_PARAMETER_INVALID; - } - - ret = XADeviceVolumeItfAdapt_SetVolume((XAAdaptationGstCtx*)impl->adapCtx, deviceID, volume); - - if( ret == XA_RESULT_SUCCESS ) - { - impl->curVolume = volume; - } - - DEBUG_API("<-XADeviceVolumeItfImpl_SetVolume"); - return ret; -} - -/* XAresult XADeviceVolumeItfImpl_GetVolume( XADeviceVolumeItf self, - * XAuint32 deviceID, - * XAint32 * pVolume) - * Description: Gets the device's volume. - */ -XAresult XADeviceVolumeItfImpl_GetVolume( XADeviceVolumeItf self, - XAuint32 deviceID, - XAint32 * pVolume) -{ - XADeviceVolumeItfImpl* impl = GetImpl(self); - XAresult ret = XA_RESULT_SUCCESS; - XAboolean supported = XA_BOOLEAN_FALSE; - DEBUG_API("->XADeviceVolumeItfImpl_GetVolume"); - - if( !impl || !pVolume ) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-XADeviceVolumeItfImpl_GetVolume"); - return XA_RESULT_PARAMETER_INVALID; - } - - - ret = XADeviceVolumeItfAdapt_IsDeviceIDSupported((XAAdaptationGstCtx*)impl->adapCtx, deviceID, &supported); - - if( ret != XA_RESULT_SUCCESS || supported != XA_BOOLEAN_TRUE ) - { - DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); - DEBUG_API("<-XADeviceVolumeItfImpl_GetVolume"); - return XA_RESULT_PARAMETER_INVALID; - } - *pVolume = impl->curVolume; - DEBUG_API("<-XADeviceVolumeItfImpl_GetVolume"); - return XA_RESULT_SUCCESS; -} - -/** - * XADeviceVolumeItfImpl -specific methods - **/ - -/** - * XADeviceVolumeItfImpl* XADeviceVolumeItfImpl_Create(XAAdaptationBaseCtx *adapCtx) - * Description: Allocate and initialize DeviceVolumeImpl - **/ -XADeviceVolumeItfImpl* XADeviceVolumeItfImpl_Create(XAAdaptationBaseCtx *adapCtx) -{ - XADeviceVolumeItfImpl* self = (XADeviceVolumeItfImpl*) - calloc(1,sizeof(XADeviceVolumeItfImpl)); - DEBUG_API("->XADeviceVolumeItfImpl_Create"); - - if(self) - { - /* init itf default implementation */ - self->itf.GetVolumeScale = - XADeviceVolumeItfImpl_GetVolumeScale; - self->itf.GetVolume = - XADeviceVolumeItfImpl_GetVolume; - self->itf.SetVolume = - XADeviceVolumeItfImpl_SetVolume; - - /* init variables */ - /* these values are replaced by adaptation in init phase */ - self->curVolume = DEFAULTDEVICEVOLUME; - self->minVolume = DEFAULTDEVICEMINVOLUME; - self->maxVolume = DEFAULTDEVICEMAXVOLUME; - self->ismBscale = DEFAULTSCALEISMILLIBEL; - - self->adapCtx = adapCtx; - self->self = self; - } - DEBUG_API("<-XADeviceVolumeItfImpl_Create"); - return self; -} - -/* void XADeviceVolumeItfImpl_Free(XADeviceVolumeItfImpl* self) - * Description: Free all resources reserved at XADeviceVolumeItfImpl_Create - */ -void XADeviceVolumeItfImpl_Free(XADeviceVolumeItfImpl* self) -{ - DEBUG_API("->XADeviceVolumeItfImpl_Free"); - assert(self==self->self); - free(self); - DEBUG_API("<-XADeviceVolumeItfImpl_Free"); -}