khronosfws/openmax_al/src/engine/xaaudioiodevicecapabilitiesitf.c
branchRCL_3
changeset 20 0ac9a5310753
parent 19 095bea5f582e
child 21 999b2818a0eb
--- a/khronosfws/openmax_al/src/engine/xaaudioiodevicecapabilitiesitf.c	Tue Aug 31 15:43:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,738 +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: Audio IO Device capabilities Itf
-*
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <string.h>
-
-#include "xaglobals.h"
-#include "xaaudioiodevicecapabilitiesitf.h"
-#include "xacapabilitiesmgr.h"
-
-
-/* XAAudIODevCapaItfImpl* GetImpl
- * Description: Validate interface pointer and cast it to implementation pointer.
- */
-static XAAudIODevCapaItfImpl* GetImpl(XAAudioIODeviceCapabilitiesItf self)
-{
-    if( self )
-    {
-        XAAudIODevCapaItfImpl* impl = (XAAudIODevCapaItfImpl*)(*self);
-        if( impl && (impl == impl->self) )
-        {
-            return impl;
-        }
-    }
-    return NULL;
-}
-
-/**
- * Base interface XAAudioIODeviceCapabilitiesItf implementation
- **/
-
-/* XAresult XAAudIODevCapaItfImpl_GetAvailableAudioInputs
- * Description: Gets the number and IDs of audio input devices currently available.
- */
-XAresult XAAudIODevCapaItfImpl_GetAvailableAudioInputs(
-                                            XAAudioIODeviceCapabilitiesItf self,
-                                            XAint32* pNumInputs,
-                                            XAuint32* pInputDeviceIDs)
-{
-    XAAudIODevCapaItfImpl* impl = GetImpl(self);
-    XAresult res = XA_RESULT_SUCCESS;
-    DEBUG_API("->XAAudIODevCapaItfImpl_GetAvailableAudioInputs");
-
-    if( !impl || !pNumInputs )
-    {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        res = XA_RESULT_PARAMETER_INVALID;
-    }
-    else
-    {
-        if( pInputDeviceIDs )
-        {   /* query array of input devices */
-            if( *pNumInputs < impl->numInputDevices )
-            {
-                DEBUG_ERR("XA_RESULT_BUFFER_INSUFFICIENT");
-                res = XA_RESULT_BUFFER_INSUFFICIENT;
-            }
-            else
-            {
-                XAuint32 i;
-                XACapabilities temp;
-                for( i=0; i<impl->numInputDevices; i++ )
-                {
-                    /* query device id from adaptation using index value */
-                    res = XACapabilitiesMgr_GetCapsByIdx(impl->capslist, (XACapsType)(XACAP_DEVSRC|XACAP_AUDIO), i, &temp);
-                    pInputDeviceIDs[i] = temp.xaid;
-                }
-
-                pInputDeviceIDs[0] = 0xAD7E5001;
-            }
-        }
-        *pNumInputs = impl->numInputDevices;
-    }
-    DEBUG_API("<-XAAudIODevCapaItfImpl_GetAvailableAudioInputs");
-    return res;
-}
-
-/* XAresult XAAudIODevCapaItfImpl_QueryAudioInputCapabilities
- * Description: Gets the capabilities of the specified audio input device.
- */
-XAresult XAAudIODevCapaItfImpl_QueryAudioInputCapabilities(
-                                            XAAudioIODeviceCapabilitiesItf self,
-                                            XAuint32 deviceId,
-                                            XAAudioInputDescriptor* pDescriptor)
-{
-    XAAudIODevCapaItfImpl* impl = GetImpl(self);
-    XACapabilities temp;
-    XAresult res = XA_RESULT_SUCCESS;
-    DEBUG_API("->XAAudIODevCapaItfImpl_QueryAudioInputCapabilities");
-
-    if( !impl || !pDescriptor )
-    {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        res = XA_RESULT_PARAMETER_INVALID;
-    }
-    else
-    {
-        memset(pDescriptor,0,sizeof(XAAudioInputDescriptor));
-
-        /* query capabilities from adaptation using device id */
-        
-
-        res = XACapabilitiesMgr_GetCapsById(impl->capslist, (XACapsType)(XACAP_DEVSRC|XACAP_AUDIO), deviceId, &temp);
-        if( res == XA_RESULT_SUCCESS )
-        {
-            XAAudioInputDescriptor* desc = ((XAAudioInputDescriptor*)(temp.pEntry));
-            /* map applicable values to XAAudioCodecCapabilities */
-            pDescriptor->maxChannels=desc->maxChannels;
-            pDescriptor->minSampleRate=desc->minSampleRate; /* milliHz */
-            if (desc->maxSampleRate < (0xFFFFFFFF ))
-            {
-                pDescriptor->maxSampleRate = desc->maxSampleRate;
-            }
-            else
-            {
-                pDescriptor->maxSampleRate = 0xFFFFFFFF;
-            }
-            pDescriptor->isFreqRangeContinuous=desc->isFreqRangeContinuous;
-            pDescriptor->deviceConnection = desc->deviceConnection;
-            pDescriptor->deviceScope = desc->deviceScope;
-            pDescriptor->deviceLocation = desc->deviceLocation;
-            pDescriptor->deviceName = desc->deviceName;
-            /* other caps undefined */
-            pDescriptor->isForTelephony = desc->isForTelephony;
-            pDescriptor->samplingRatesSupported = desc->samplingRatesSupported;
-            pDescriptor->numOfSamplingRatesSupported = desc->numOfSamplingRatesSupported;
-         }
-    }
-
-    DEBUG_API("<-XAAudIODevCapaItfImpl_QueryAudioInputCapabilities");
-    return res;
-}
-
-/* XAresult XAAudIODevCapaItfImpl_RegisterAvailableAudioInputsChangedCallback
- * Description: Sets or clears xaAvailableAudioInputsChangedCallback().
- */
-XAresult XAAudIODevCapaItfImpl_RegisterAvailableAudioInputsChangedCallback(
-                                            XAAudioIODeviceCapabilitiesItf self,
-                                            xaAvailableAudioInputsChangedCallback callback,
-                                            void* pContext)
-{
-    XAAudIODevCapaItfImpl* impl = GetImpl(self);
-    XAresult res = XA_RESULT_SUCCESS;
-
-    DEBUG_API("->XAAudIODevCapaItfImpl_RegisterAvailableAudioInputsChangedCallback");
-
-    if( !impl )
-    {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        res = XA_RESULT_PARAMETER_INVALID;
-    }
-    else
-    {
-        impl->inputCb = callback;
-        impl->inputCbCtx = pContext;
-        impl->inputCbPtrToSelf = self;
-    }
-
-    DEBUG_API("<-XAAudIODevCapaItfImpl_RegisterAvailableAudioInputsChangedCallback");
-    return res;
-}
-
-/* XAresult XAAudIODevCapaItfImpl_GetAvailableAudioOutputs
- * Description: Gets the number and IDs of audio output devices currently available.
- */
-XAresult XAAudIODevCapaItfImpl_GetAvailableAudioOutputs(
-                                            XAAudioIODeviceCapabilitiesItf self,
-                                            XAint32* pNumOutputs,
-                                            XAuint32* pOutputDeviceIDs)
-{
-    XAAudIODevCapaItfImpl* impl = GetImpl(self);
-    XAresult res = XA_RESULT_SUCCESS;
-
-    DEBUG_API("->XAAudIODevCapaItfImpl_GetAvailableAudioOutputs");
-
-    /* NOTE: only default speaker supported by this impl */
-    if( !impl || !pNumOutputs )
-    {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        res = XA_RESULT_PARAMETER_INVALID;
-    }
-    else
-    {
-        if( pOutputDeviceIDs )
-        {   /* query array of output devices */
-            if( *pNumOutputs < impl->numOutputDevices )
-            {
-                DEBUG_ERR("XA_RESULT_BUFFER_INSUFFICIENT");
-                res = XA_RESULT_BUFFER_INSUFFICIENT;
-            }
-            else
-            {
-
-
-                XAuint32 i = 0;
-                XACapabilities temp;
-                for( i=0; i<impl->numOutputDevices; i++ )
-                {
-                    /* query device id from adaptation using index value */
-                    res = XACapabilitiesMgr_GetCapsByIdx(impl->capslist, (XACapsType)(XACAP_DEVSNK|XACAP_AUDIO), i, &temp);
-                    pOutputDeviceIDs[i] = temp.xaid;
-                }
-
-                pOutputDeviceIDs[0] = 0xAD7E5002;
-            }
-        }
-        *pNumOutputs = impl->numOutputDevices;
-    }
-    DEBUG_API("<-XAAudIODevCapaItfImpl_GetAvailableAudioOutputs");
-    return res;
-}
-
-/* XAresult XAAudIODevCapaItfImpl_QueryAudioOutputCapabilities
- * Description: Gets the capabilities of the specified audio output device.
- */
-XAresult XAAudIODevCapaItfImpl_QueryAudioOutputCapabilities(
-                                        XAAudioIODeviceCapabilitiesItf self,
-                                        XAuint32 deviceId,
-                                        XAAudioOutputDescriptor* pDescriptor)
-{
-
-    XAAudIODevCapaItfImpl* impl = GetImpl(self);
-    XAresult res = XA_RESULT_SUCCESS;
-    XACapabilities temp;
-    DEBUG_API("->XAAudIODevCapaItfImpl_QueryAudioOutputCapabilities");
-
-    if( !impl || !pDescriptor )
-    {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        res = XA_RESULT_PARAMETER_INVALID;
-    }
-    else
-    {
-        memset(pDescriptor,0,sizeof(XAAudioOutputDescriptor));
-        /* query capabilities from adaptation using device id */
-
-        
-
-        res = XACapabilitiesMgr_GetCapsById(impl->capslist, (XACapsType)(XACAP_DEVSNK|XACAP_AUDIO), deviceId, &temp);
-        if( res == XA_RESULT_SUCCESS )
-        {
-            XAAudioOutputDescriptor* desc = ((XAAudioOutputDescriptor*)(temp.pEntry));
-            /* map applicable values to XAAudioCodecCapabilities */
-            pDescriptor->maxChannels=desc->maxChannels;
-            pDescriptor->minSampleRate=desc->minSampleRate; /* milliHz */
-            if (desc->maxSampleRate < (0xFFFFFFFF))
-            {
-                pDescriptor->maxSampleRate = desc->maxSampleRate;
-            }
-            else
-            {
-                pDescriptor->maxSampleRate = 0xFFFFFFFF;
-            }
-            pDescriptor->isFreqRangeContinuous=desc->isFreqRangeContinuous;
-            pDescriptor->deviceConnection = desc->deviceConnection;
-            pDescriptor->deviceScope = desc->deviceScope;
-            pDescriptor->deviceLocation = desc->deviceLocation;
-            pDescriptor->pDeviceName = desc->pDeviceName;
-            /* other caps undefined */
-            pDescriptor->isForTelephony = desc->isForTelephony;
-            pDescriptor->samplingRatesSupported = desc->samplingRatesSupported;
-            pDescriptor->numOfSamplingRatesSupported = desc->numOfSamplingRatesSupported;
-         }
-    }
-
-    DEBUG_API("<-XAAudIODevCapaItfImpl_QueryAudioOutputCapabilities");
-    return res;
-}
-
-/* XAresult XAAudIODevCapaItfImpl_RegisterAvailableAudioOutputsChangedCallback
- * Description: Sets or clears xaAvailableAudioOutputsChangedCallback().
- */
-XAresult XAAudIODevCapaItfImpl_RegisterAvailableAudioOutputsChangedCallback(
-                                            XAAudioIODeviceCapabilitiesItf self,
-                                            xaAvailableAudioOutputsChangedCallback callback,
-                                            void* pContext)
-{
-
-    XAAudIODevCapaItfImpl* impl = GetImpl(self);
-    XAresult res = XA_RESULT_SUCCESS;
-    DEBUG_API("->XAAudIODevCapaItfImpl_RegisterAvailableAudioOutputsChangedCallback");
-
-    if( !impl )
-    {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        res = XA_RESULT_PARAMETER_INVALID;
-    }
-    else
-    {
-        impl->outputCb = callback;
-        impl->outputCbCtx = pContext;
-        impl->outputCbPtrToSelf = self;
-    }
-
-    DEBUG_API("<-XAAudIODevCapaItfImpl_RegisterAvailableAudioOutputsChangedCallback");
-    return res;
-}
-
-/* XAresult XAAudIODevCapaItfImpl_RegisterDefaultDeviceIDMapChangedCallback
- * Description: Sets or clears xaDefaultDeviceIDMapChangedCallback().
- */
-XAresult XAAudIODevCapaItfImpl_RegisterDefaultDeviceIDMapChangedCallback(
-                                            XAAudioIODeviceCapabilitiesItf self,
-                                            xaDefaultDeviceIDMapChangedCallback callback,
-                                            void* pContext)
-{
-    XAAudIODevCapaItfImpl* impl = GetImpl(self);
-    XAresult res = XA_RESULT_SUCCESS;
-
-    DEBUG_API("->XAAudIODevCapaItfImpl_RegisterDefaultDeviceIDMapChangedCallback");
-
-    if( !impl )
-    {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        res = XA_RESULT_PARAMETER_INVALID;
-    }
-    else
-    {
-        impl->deviceMapCb = callback;
-        impl->deviceMapCtx = pContext;
-        impl->deviceMapCbPtrToSelf = self;
-    }
-
-    DEBUG_API("<-XAAudIODevCapaItfImpl_RegisterDefaultDeviceIDMapChangedCallback");
-    return res;
-}
-
-/* XAresult XAAudIODevCapaItfImpl_GetAssociatedAudioInputs
- * Description: This method returns an array of audio input devices physically
- * associated with this audio I/O device.
- */
-XAresult XAAudIODevCapaItfImpl_GetAssociatedAudioInputs(
-                                                XAAudioIODeviceCapabilitiesItf self,
-                                                XAuint32 deviceId,
-                                                XAint32* pNumAudioInputs,
-                                                XAuint32* pAudioInputDeviceIDs)
-{
-    XAAudIODevCapaItfImpl* impl = GetImpl(self);
-    XAresult res = XA_RESULT_SUCCESS;
-    DEBUG_API("->XAAudIODevCapaItfImpl_GetAssociatedAudioInputs");
-    if( !impl || !pNumAudioInputs )
-    {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        res = XA_RESULT_PARAMETER_INVALID;
-    }
-    else
-    {
-
-        XACapabilities temp;
-        XAuint32 associatedCount = 0;
-
-        XAuint32 i = 0;
-        for( i=0; i<impl->numInputDevices; i++ )
-        {
-            /* query device id from adaptation using index value */
-            res = XACapabilitiesMgr_GetCapsByIdx(impl->capslist, (XACapsType)(XACAP_DEVSRC|XACAP_AUDIO), i, &temp);
-            if (temp.xaid != deviceId)
-            {
-                associatedCount++;
-            }
-        }
-
-        if (pAudioInputDeviceIDs)
-        {
-            if( *pNumAudioInputs < associatedCount )
-            {
-                DEBUG_ERR("XA_RESULT_BUFFER_INSUFFICIENT");
-                DEBUG_API("<-XAAudIODevCapaItfImpl_GetAssociatedAudioInputs");
-                return XA_RESULT_BUFFER_INSUFFICIENT;
-            }
-
-            for( i=0, associatedCount = 0; i<impl->numInputDevices; i++ )
-            {
-                /* query device id from adaptation using index value */
-                res = XACapabilitiesMgr_GetCapsByIdx(impl->capslist, (XACapsType)(XACAP_DEVSRC|XACAP_AUDIO), i, &temp);
-                if (temp.xaid != deviceId)
-                {
-                    pAudioInputDeviceIDs[associatedCount++] = temp.xaid;
-                }
-            }
-        }
-
-        *pNumAudioInputs = associatedCount;
-
-
-    if(!pAudioInputDeviceIDs)
-        {
-        switch(deviceId)
-            {
-            case 0xAD7E5001:
-                *pNumAudioInputs = 0;
-                break;
-            case 0xAD7E5002:
-                *pNumAudioInputs = 1;
-                break;
-            default:
-                res = XA_RESULT_PARAMETER_INVALID;
-                break;
-            }
-        }
-    else
-        {
-        switch(deviceId)
-            {
-            case 0xAD7E5001:
-                res = XA_RESULT_PARAMETER_INVALID;
-                break;
-            case 0xAD7E5002:
-                pAudioInputDeviceIDs[*pNumAudioInputs - 1] = 0xAD7E5001;
-                break;
-            default:
-                res = XA_RESULT_PARAMETER_INVALID;
-                break;
-            }
-        }
-
-    }
-
-    DEBUG_API("<-XAAudIODevCapaItfImpl_GetAssociatedAudioInputs");
-    return res;
-}
-
-/* XAresult XAAudIODevCapaItfImpl_GetAssociatedAudioOutputs
- * Description: This method returns an array of audio output devices physically
- * associated with this audio I/O device.
- */
-XAresult XAAudIODevCapaItfImpl_GetAssociatedAudioOutputs(
-                                                XAAudioIODeviceCapabilitiesItf self,
-                                                XAuint32 deviceId,
-                                                XAint32* pNumAudioOutputs,
-                                                XAuint32* pAudioOutputDeviceIDs)
-{
-    XAAudIODevCapaItfImpl* impl = GetImpl(self);
-    XAresult res = XA_RESULT_SUCCESS;
-    DEBUG_API("->XAAudIODevCapaItfImpl_GetAssociatedAudioOutputs");
-
-    if( !impl || !pNumAudioOutputs )
-    {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        res = XA_RESULT_PARAMETER_INVALID;
-    }
-    else
-    {
-
-        XACapabilities temp;
-        XAuint32 associatedCount = 0;
-
-        XAuint32 i = 0;
-        for( i=0; i<impl->numOutputDevices; i++ )
-        {
-            /* query device id from adaptation using index value */
-            res = XACapabilitiesMgr_GetCapsByIdx(impl->capslist, (XACapsType)(XACAP_DEVSNK|XACAP_AUDIO), i, &temp);
-            if (temp.xaid != deviceId)
-            {
-                associatedCount++;
-            }
-        }
-
-        if (pAudioOutputDeviceIDs)
-        {
-            if( *pNumAudioOutputs < associatedCount )
-            {
-                DEBUG_ERR("XA_RESULT_BUFFER_INSUFFICIENT");
-                DEBUG_API("<-XAAudIODevCapaItfImpl_GetAssociatedAudioOutputs");
-                return XA_RESULT_BUFFER_INSUFFICIENT;
-            }
-
-            for( i=0, associatedCount = 0; i<impl->numOutputDevices; i++ )
-            {
-                /* query device id from adaptation using index value */
-                res = XACapabilitiesMgr_GetCapsByIdx(impl->capslist, (XACapsType)(XACAP_DEVSNK|XACAP_AUDIO), i, &temp);
-                if (temp.xaid != deviceId)
-                {
-                    pAudioOutputDeviceIDs[associatedCount++] = temp.xaid;
-                }
-            }
-        }
-
-        *pNumAudioOutputs = associatedCount;
-
-
-        if(!pAudioOutputDeviceIDs)
-            {
-            switch(deviceId)
-                {
-                case 0xAD7E5002:
-                    *pNumAudioOutputs = 0;
-                    break;
-                case 0xAD7E5001:
-                    *pNumAudioOutputs = 1;
-                    break;
-                default:
-                    res = XA_RESULT_PARAMETER_INVALID;
-                    break;
-                }
-            }
-        else
-            {
-            switch(deviceId)
-                {
-                case 0xAD7E5002:
-                    res = XA_RESULT_PARAMETER_INVALID;
-                    break;
-                case 0xAD7E5001:
-                    pAudioOutputDeviceIDs[*pNumAudioOutputs - 1] = 0xAD7E5001;
-                    break;
-                default:
-                    res = XA_RESULT_PARAMETER_INVALID;
-                    break;
-                }
-            }
-    }
-
-    DEBUG_API("<-XAAudIODevCapaItfImpl_GetAssociatedAudioOutputs");
-    return res;
-}
-
-/* XAresult XAAudIODevCapaItfImpl_GetDefaultAudioDevices
- * Gets the number of audio devices currently mapped to the given default device ID.
- */
-XAresult XAAudIODevCapaItfImpl_GetDefaultAudioDevices(XAAudioIODeviceCapabilitiesItf self,
-                                                      XAuint32 defaultDeviceID,
-                                                      XAint32 *pNumAudioDevices,
-                                                      XAuint32 *pAudioDeviceIDs)
-{
-    XAAudIODevCapaItfImpl* impl = GetImpl(self);
-    XAresult res = XA_RESULT_SUCCESS;
-    DEBUG_API("->XAAudIODevCapaItfImpl_GetDefaultAudioDevices");
-
-    if( !impl || !pNumAudioDevices )
-    {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        res = XA_RESULT_PARAMETER_INVALID;
-    }
-    else
-    {
-    if(!pAudioDeviceIDs)
-        {
-        switch(defaultDeviceID)
-            {
-            case XA_DEFAULTDEVICEID_AUDIOOUTPUT:
-                *pNumAudioDevices = 1;
-                break;
-            case XA_DEFAULTDEVICEID_AUDIOINPUT :
-                *pNumAudioDevices = 1;
-                break;
-            default:
-                res = XA_RESULT_PARAMETER_INVALID;
-                break;
-            }
-        }
-    else
-        {
-        switch(defaultDeviceID)
-            {
-            case XA_DEFAULTDEVICEID_AUDIOOUTPUT:
-                pAudioDeviceIDs[*pNumAudioDevices - 1] = 0xAD7E5002;
-                break;
-            case XA_DEFAULTDEVICEID_AUDIOINPUT:
-                pAudioDeviceIDs[*pNumAudioDevices - 1] = 0xAD7E5001;
-                break;
-            default:
-                res = XA_RESULT_PARAMETER_INVALID;
-                break;
-            }
-        }      
-
-    }
-    DEBUG_API("<-XAAudIODevCapaItfImpl_GetDefaultAudioDevices");
-    return res;
-}
-
-/* XAresult XAAudIODevCapaItfImpl_GetAssociatedAudioOutputs
- * Description: Gets an array of sample formats supported by the audio I/O
- * device for the given sampling rate.
- */
-XAresult XAAudIODevCapaItfImpl_QuerySampleFormatsSupported(
-                                            XAAudioIODeviceCapabilitiesItf self,
-                                            XAuint32 deviceId,
-                                            XAmilliHertz samplingRate,
-                                            XAint32* pSampleFormats,
-                                            XAint32* pNumOfSampleFormats)
-{
-    XAAudIODevCapaItfImpl* impl = GetImpl(self);
-    XAresult res = XA_RESULT_SUCCESS;
-    DEBUG_API("->XAAudIODevCapaItfImpl_QuerySampleFormatsSupported");
-
-    if( !impl || !pNumOfSampleFormats )
-    {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        res = XA_RESULT_PARAMETER_INVALID;
-    }
-    else
-    {
-
-/*        XACapabilities temp;
-        res = XACapabilitiesMgr_GetCapsById(NULL, (XACapsType)(XACAP_DEVSNK|XACAP_AUDIO),
-                                            deviceId, &temp);
-         deviceid can be either input or output
-        if( res == XA_RESULT_FEATURE_UNSUPPORTED )
-        {
-            res = XACapabilitiesMgr_GetCapsById(NULL, (XACapsType)(XACAP_DEVSRC|XACAP_AUDIO),
-                                                deviceId, &temp);
-        }
-        if( res == XA_RESULT_SUCCESS )
-        {
-            XAAudioOutputDescriptor* desc = ((XAAudioOutputDescriptor*)(temp.pEntry));
-            XAuint32 count = 0, i = 0;
-            for (i=0; i < sizeof(temp.pcmProfilesSupported)*8; i++)
-                count+=temp.pcmProfilesSupported>>i&0x1;
-
-            if(pSampleFormats)
-            {
-                if(*pNumOfSampleFormats<count)
-                {
-                    res = XA_RESULT_BUFFER_INSUFFICIENT;
-                }
-                else
-                {
-                    XAuint32 insertCount = 0;
-                    if (temp.pcmProfilesSupported & XA_ADAPT_PCMSAMPLEFORMAT_SUPPORTED_8) {
-                        pSampleFormats[insertCount++] = XA_PCMSAMPLEFORMAT_FIXED_8; }
-                    if (temp.pcmProfilesSupported & XA_ADAPT_PCMSAMPLEFORMAT_SUPPORTED_16) {
-                        pSampleFormats[insertCount++] = XA_PCMSAMPLEFORMAT_FIXED_16; }
-                    if (temp.pcmProfilesSupported & XA_ADAPT_PCMSAMPLEFORMAT_SUPPORTED_20) {
-                        pSampleFormats[insertCount++] = XA_PCMSAMPLEFORMAT_FIXED_20; }
-                    if (temp.pcmProfilesSupported & XA_ADAPT_PCMSAMPLEFORMAT_SUPPORTED_24) {
-                        pSampleFormats[insertCount++] = XA_PCMSAMPLEFORMAT_FIXED_20; }
-                    if (temp.pcmProfilesSupported & XA_ADAPT_PCMSAMPLEFORMAT_SUPPORTED_28) {
-                        pSampleFormats[insertCount++] = XA_PCMSAMPLEFORMAT_FIXED_20; }
-                    if (temp.pcmProfilesSupported & XA_ADAPT_PCMSAMPLEFORMAT_SUPPORTED_32) {
-                        pSampleFormats[insertCount++] = XA_PCMSAMPLEFORMAT_FIXED_20; }
-                }
-            }
-            *pNumOfSampleFormats = count;
-        }*/
-
-
-    if(!pSampleFormats)
-        {
-        *pNumOfSampleFormats = 1;
-        }
-    else
-        {
-        pSampleFormats[*pNumOfSampleFormats - 1] = XA_PCMSAMPLEFORMAT_FIXED_16;
-        }
-
-    }
-
-    DEBUG_API("<-XAAudIODevCapaItfImpl_QuerySampleFormatsSupported");
-    return res;
-}
-
-/**
- * XAAudIODevCapaItfImpl -specific methods
- **/
-
-/* XAAudIODevCapaItfImpl_Create
- * Description: Allocate and initialize XAAudIODevCapaItfImpl
- */
-XAAudIODevCapaItfImpl* XAAudIODevCapaItfImpl_Create(XACapabilities* caps)
-{
-    XAAudIODevCapaItfImpl* self = (XAAudIODevCapaItfImpl*)
-        calloc(1,sizeof(XAAudIODevCapaItfImpl));
-    DEBUG_API("->XAAudIODevCapaItfImpl_Create");
-
-    if( self )
-    {
-        /* init itf default implementation */
-        self->itf.GetAssociatedAudioInputs =
-            XAAudIODevCapaItfImpl_GetAssociatedAudioInputs;
-        self->itf.GetAssociatedAudioOutputs =
-            XAAudIODevCapaItfImpl_GetAssociatedAudioOutputs;
-        self->itf.GetAvailableAudioInputs =
-            XAAudIODevCapaItfImpl_GetAvailableAudioInputs;
-        self->itf.GetAvailableAudioOutputs =
-            XAAudIODevCapaItfImpl_GetAvailableAudioOutputs;
-        self->itf.QueryAudioInputCapabilities =
-            XAAudIODevCapaItfImpl_QueryAudioInputCapabilities;
-        self->itf.QueryAudioOutputCapabilities =
-            XAAudIODevCapaItfImpl_QueryAudioOutputCapabilities;
-        self->itf.GetDefaultAudioDevices =
-            XAAudIODevCapaItfImpl_GetDefaultAudioDevices;
-        self->itf.QuerySampleFormatsSupported =
-            XAAudIODevCapaItfImpl_QuerySampleFormatsSupported;
-        self->itf.RegisterAvailableAudioInputsChangedCallback =
-            XAAudIODevCapaItfImpl_RegisterAvailableAudioInputsChangedCallback;
-        self->itf.RegisterAvailableAudioOutputsChangedCallback =
-            XAAudIODevCapaItfImpl_RegisterAvailableAudioOutputsChangedCallback;
-        self->itf.RegisterDefaultDeviceIDMapChangedCallback =
-            XAAudIODevCapaItfImpl_RegisterDefaultDeviceIDMapChangedCallback;
-        self->capslist = caps;
-        /* init variables */
-        XACapabilitiesMgr_GetCapsCount( caps, (XACapsType)(XACAP_DEVSNK|XACAP_AUDIO),
-                                  &(self->numOutputDevices) );
-        XACapabilitiesMgr_GetCapsCount( caps, (XACapsType)(XACAP_DEVSRC|XACAP_AUDIO),
-                                  &(self->numInputDevices) );
-        
-        /*TODO: Remove this later*/
-        XACapabilitiesMgr_QueryColorFormats(caps, NULL, NULL);
-
-        self->inputCbPtrToSelf = NULL;
-        self->outputCbPtrToSelf = NULL;
-        self->deviceMapCbPtrToSelf = NULL;
-        self->numInputDevices = 1;
-        self->numOutputDevices = 1;
-        self->self = self;
-    }
-    DEBUG_API("<-XAAudIODevCapaItfImpl_Create");
-    return self;
-}
-
-/* void XAAudIODevCapaItfImpl_Free
- * Description: Free all resources reserved at XAAudIODevCapaItfImpl_Create
- */
-void XAAudIODevCapaItfImpl_Free(XAAudIODevCapaItfImpl* self)
-{
-    DEBUG_API("->XAAudIODevCapaItfImpl_Free");
-    assert(self==self->self);
-    free(self);
-    DEBUG_API("<-XAAudIODevCapaItfImpl_Free");
-}