khronosfws/openmax_al/src/engine/xaaudioiodevicecapabilitiesitf.h
branchRCL_3
changeset 19 095bea5f582e
equal deleted inserted replaced
18:a36789189b53 19:095bea5f582e
       
     1 /*
       
     2  * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0"
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  *
       
    12  * Contributors:
       
    13  *
       
    14  * Description: Audio IO Device capabilities Itf
       
    15  *
       
    16  */
       
    17 
       
    18 #ifndef XAAUDIOIODEVICECAPABILITIESITF_H
       
    19 #define XAAUDIOIODEVICECAPABILITIESITF_H
       
    20 
       
    21 #include "openmaxalwrapper.h"
       
    22 #include "xaglobals.h"
       
    23 #include "xacapabilitiesmgr.h"
       
    24 /** MACROS **/
       
    25 
       
    26 /** TYPES **/
       
    27 
       
    28 /** ENUMERATIONS **/
       
    29 
       
    30 /** STRUCTURES **/
       
    31 /* Definition of XAAudioIODeviceCapabilitiesItf implementation */
       
    32 typedef struct XAAudIODevCapaItfImpl_
       
    33     {
       
    34     /* parent interface */
       
    35     struct XAAudioIODeviceCapabilitiesItf_ itf;
       
    36     /* pointer to self */
       
    37     struct XAAudIODevCapaItfImpl_* self;
       
    38 
       
    39     /* variables */
       
    40     xaAvailableAudioInputsChangedCallback inputCb;
       
    41     void* inputCbCtx;
       
    42     XAAudioIODeviceCapabilitiesItf inputCbPtrToSelf;
       
    43     xaAvailableAudioOutputsChangedCallback outputCb;
       
    44     void* outputCbCtx;
       
    45     XAAudioIODeviceCapabilitiesItf outputCbPtrToSelf;
       
    46     xaDefaultDeviceIDMapChangedCallback deviceMapCb;
       
    47     void* deviceMapCtx;
       
    48     XAAudioIODeviceCapabilitiesItf deviceMapCbPtrToSelf;
       
    49 
       
    50     XAuint32 numInputDevices;
       
    51     XAuint32 numOutputDevices;
       
    52     XAmilliHertz sampleRateArray[12];
       
    53     XACapabilities* capslist;
       
    54 
       
    55     } XAAudIODevCapaItfImpl;
       
    56 
       
    57 /* Base interface XAAudioIODeviceCapabilitiesItf implementation */
       
    58 XAresult XAAudIODevCapaItfImpl_GetAvailableAudioInputs(
       
    59         XAAudioIODeviceCapabilitiesItf self, XAint32* pNumInputs,
       
    60         XAuint32* pInputDeviceIDs);
       
    61 
       
    62 XAresult XAAudIODevCapaItfImpl_QueryAudioInputCapabilities(
       
    63         XAAudioIODeviceCapabilitiesItf self, XAuint32 deviceId,
       
    64         XAAudioInputDescriptor* pDescriptor);
       
    65 
       
    66 XAresult XAAudIODevCapaItfImpl_RegisterAvailableAudioInputsChangedCallback(
       
    67         XAAudioIODeviceCapabilitiesItf self,
       
    68         xaAvailableAudioInputsChangedCallback callback, void* pContext);
       
    69 
       
    70 XAresult XAAudIODevCapaItfImpl_GetAvailableAudioOutputs(
       
    71         XAAudioIODeviceCapabilitiesItf self, XAint32* pNumOutputs,
       
    72         XAuint32* pOutputDeviceIDs);
       
    73 
       
    74 XAresult XAAudIODevCapaItfImpl_QueryAudioOutputCapabilities(
       
    75         XAAudioIODeviceCapabilitiesItf self, XAuint32 deviceId,
       
    76         XAAudioOutputDescriptor* pDescriptor);
       
    77 
       
    78 XAresult XAAudIODevCapaItfImpl_RegisterAvailableAudioOutputsChangedCallback(
       
    79         XAAudioIODeviceCapabilitiesItf self,
       
    80         xaAvailableAudioOutputsChangedCallback callback, void* pContext);
       
    81 
       
    82 XAresult XAAudIODevCapaItfImpl_RegisterDefaultDeviceIDMapChangedCallback(
       
    83         XAAudioIODeviceCapabilitiesItf self,
       
    84         xaDefaultDeviceIDMapChangedCallback callback, void* pContext);
       
    85 
       
    86 XAresult XAAudIODevCapaItfImpl_GetAssociatedAudioInputs(
       
    87         XAAudioIODeviceCapabilitiesItf self, XAuint32 deviceId,
       
    88         XAint32* pNumAudioInputs, XAuint32* pAudioInputDeviceIDs);
       
    89 
       
    90 XAresult XAAudIODevCapaItfImpl_GetAssociatedAudioOutputs(
       
    91         XAAudioIODeviceCapabilitiesItf self, XAuint32 deviceId,
       
    92         XAint32* pNumAudioOutputs, XAuint32* pAudioOutputDeviceIDs);
       
    93 
       
    94 XAresult XAAudIODevCapaItfImpl_GetDefaultAudioDevices(
       
    95         XAAudioIODeviceCapabilitiesItf self, XAuint32 defaultDeviceID,
       
    96         XAint32 *pNumAudioDevices, XAuint32 *pAudioDeviceIDs);
       
    97 
       
    98 XAresult XAAudIODevCapaItfImpl_QuerySampleFormatsSupported(
       
    99         XAAudioIODeviceCapabilitiesItf self, XAuint32 deviceId,
       
   100         XAmilliHertz samplingRate, XAint32* pSampleFormats,
       
   101         XAint32* pNumOfSampleFormats);
       
   102 
       
   103 /* XAAudIODevCapaItfImpl -specific methods */
       
   104 XAAudIODevCapaItfImpl* XAAudIODevCapaItfImpl_Create(XACapabilities* caps);
       
   105 void XAAudIODevCapaItfImpl_Free(XAAudIODevCapaItfImpl* self);
       
   106 
       
   107 #endif /* XAAUDIOIODEVICECAPABILITIESITF_H */