khronosfws/openmax_al/src/engine/xaaudioiodevicecapabilitiesitf.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 23 Jun 2010 18:47:10 +0300
changeset 31 8dfd592727cb
parent 16 43d09473c595
permissions -rw-r--r--
Revision: 201023 Kit: 2010125

/*
 * 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
 *
 */

#ifndef XAAUDIOIODEVICECAPABILITIESITF_H
#define XAAUDIOIODEVICECAPABILITIESITF_H

#include "openmaxalwrapper.h"
#include "xaglobals.h"
#include "xacapabilitiesmgr.h"
/** MACROS **/

/** TYPES **/

/** ENUMERATIONS **/

/** STRUCTURES **/
/* Definition of XAAudioIODeviceCapabilitiesItf implementation */
typedef struct XAAudIODevCapaItfImpl_
    {
    /* parent interface */
    struct XAAudioIODeviceCapabilitiesItf_ itf;
    /* pointer to self */
    struct XAAudIODevCapaItfImpl_* self;

    /* variables */
    xaAvailableAudioInputsChangedCallback inputCb;
    void* inputCbCtx;
    XAAudioIODeviceCapabilitiesItf inputCbPtrToSelf;
    xaAvailableAudioOutputsChangedCallback outputCb;
    void* outputCbCtx;
    XAAudioIODeviceCapabilitiesItf outputCbPtrToSelf;
    xaDefaultDeviceIDMapChangedCallback deviceMapCb;
    void* deviceMapCtx;
    XAAudioIODeviceCapabilitiesItf deviceMapCbPtrToSelf;

    XAuint32 numInputDevices;
    XAuint32 numOutputDevices;
    XAmilliHertz sampleRateArray[12];
    XACapabilities* capslist;

    } XAAudIODevCapaItfImpl;

/* Base interface XAAudioIODeviceCapabilitiesItf implementation */
XAresult XAAudIODevCapaItfImpl_GetAvailableAudioInputs(
        XAAudioIODeviceCapabilitiesItf self, XAint32* pNumInputs,
        XAuint32* pInputDeviceIDs);

XAresult XAAudIODevCapaItfImpl_QueryAudioInputCapabilities(
        XAAudioIODeviceCapabilitiesItf self, XAuint32 deviceId,
        XAAudioInputDescriptor* pDescriptor);

XAresult XAAudIODevCapaItfImpl_RegisterAvailableAudioInputsChangedCallback(
        XAAudioIODeviceCapabilitiesItf self,
        xaAvailableAudioInputsChangedCallback callback, void* pContext);

XAresult XAAudIODevCapaItfImpl_GetAvailableAudioOutputs(
        XAAudioIODeviceCapabilitiesItf self, XAint32* pNumOutputs,
        XAuint32* pOutputDeviceIDs);

XAresult XAAudIODevCapaItfImpl_QueryAudioOutputCapabilities(
        XAAudioIODeviceCapabilitiesItf self, XAuint32 deviceId,
        XAAudioOutputDescriptor* pDescriptor);

XAresult XAAudIODevCapaItfImpl_RegisterAvailableAudioOutputsChangedCallback(
        XAAudioIODeviceCapabilitiesItf self,
        xaAvailableAudioOutputsChangedCallback callback, void* pContext);

XAresult XAAudIODevCapaItfImpl_RegisterDefaultDeviceIDMapChangedCallback(
        XAAudioIODeviceCapabilitiesItf self,
        xaDefaultDeviceIDMapChangedCallback callback, void* pContext);

XAresult XAAudIODevCapaItfImpl_GetAssociatedAudioInputs(
        XAAudioIODeviceCapabilitiesItf self, XAuint32 deviceId,
        XAint32* pNumAudioInputs, XAuint32* pAudioInputDeviceIDs);

XAresult XAAudIODevCapaItfImpl_GetAssociatedAudioOutputs(
        XAAudioIODeviceCapabilitiesItf self, XAuint32 deviceId,
        XAint32* pNumAudioOutputs, XAuint32* pAudioOutputDeviceIDs);

XAresult XAAudIODevCapaItfImpl_GetDefaultAudioDevices(
        XAAudioIODeviceCapabilitiesItf self, XAuint32 defaultDeviceID,
        XAint32 *pNumAudioDevices, XAuint32 *pAudioDeviceIDs);

XAresult XAAudIODevCapaItfImpl_QuerySampleFormatsSupported(
        XAAudioIODeviceCapabilitiesItf self, XAuint32 deviceId,
        XAmilliHertz samplingRate, XAint32* pSampleFormats,
        XAint32* pNumOfSampleFormats);

/* XAAudIODevCapaItfImpl -specific methods */
XAAudIODevCapaItfImpl* XAAudIODevCapaItfImpl_Create(XACapabilities* caps);
void XAAudIODevCapaItfImpl_Free(XAAudIODevCapaItfImpl* self);

#endif /* XAAUDIOIODEVICECAPABILITIESITF_H */