khronosfws/openmax_al/src/engine/xaaudioiodevicecapabilitiesitf.c
changeset 32 94fc26b6e006
parent 31 8dfd592727cb
child 53 eabc8c503852
equal deleted inserted replaced
31:8dfd592727cb 32:94fc26b6e006
    23 #include "xaglobals.h"
    23 #include "xaglobals.h"
    24 #include "xaaudioiodevicecapabilitiesitf.h"
    24 #include "xaaudioiodevicecapabilitiesitf.h"
    25 #include "xacapabilitiesmgr.h"
    25 #include "xacapabilitiesmgr.h"
    26 
    26 
    27 
    27 
    28 static XAchar deviceName1[] = "Default Mic";
       
    29 
       
    30 /* XAAudIODevCapaItfImpl* GetImpl
    28 /* XAAudIODevCapaItfImpl* GetImpl
    31  * Description: Validate interface pointer and cast it to implementation pointer.
    29  * Description: Validate interface pointer and cast it to implementation pointer.
    32  */
    30  */
    33 static XAAudIODevCapaItfImpl* GetImpl(XAAudioIODeviceCapabilitiesItf self)
    31 static XAAudIODevCapaItfImpl* GetImpl(XAAudioIODeviceCapabilitiesItf self)
    34 {
    32 {
   122         if( res == XA_RESULT_SUCCESS )
   120         if( res == XA_RESULT_SUCCESS )
   123         {
   121         {
   124             XAAudioInputDescriptor* desc = ((XAAudioInputDescriptor*)(temp.pEntry));
   122             XAAudioInputDescriptor* desc = ((XAAudioInputDescriptor*)(temp.pEntry));
   125             /* map applicable values to XAAudioCodecCapabilities */
   123             /* map applicable values to XAAudioCodecCapabilities */
   126             pDescriptor->maxChannels=desc->maxChannels;
   124             pDescriptor->maxChannels=desc->maxChannels;
   127             pDescriptor->minSampleRate=desc->minSampleRate*1000; /* milliHz */
   125             pDescriptor->minSampleRate=desc->minSampleRate; /* milliHz */
   128             if (desc->maxSampleRate < (0xFFFFFFFF / 1000))
   126             if (desc->maxSampleRate < (0xFFFFFFFF ))
   129             {
   127             {
   130                 pDescriptor->maxSampleRate = desc->maxSampleRate*1000;
   128                 pDescriptor->maxSampleRate = desc->maxSampleRate;
   131             }
   129             }
   132             else
   130             else
   133             {
   131             {
   134                 pDescriptor->maxSampleRate = 0xFFFFFFFF;
   132                 pDescriptor->maxSampleRate = 0xFFFFFFFF;
   135             }
   133             }
   136             pDescriptor->isFreqRangeContinuous=XA_BOOLEAN_TRUE;
   134             pDescriptor->isFreqRangeContinuous=desc->isFreqRangeContinuous;
   137             pDescriptor->deviceConnection = XA_DEVCONNECTION_INTEGRATED;
   135             pDescriptor->deviceConnection = desc->deviceConnection;
   138             pDescriptor->deviceScope = XA_DEVSCOPE_ENVIRONMENT;
   136             pDescriptor->deviceScope = desc->deviceScope;
   139             pDescriptor->deviceLocation = XA_DEVLOCATION_HANDSET;
   137             pDescriptor->deviceLocation = desc->deviceLocation;
   140             pDescriptor->deviceName = temp.adaptId;
   138             pDescriptor->deviceName = desc->deviceName;
   141             /* other caps undefined */
   139             /* other caps undefined */
   142         }
   140             pDescriptor->isForTelephony = desc->isForTelephony;
   143 
   141             pDescriptor->samplingRatesSupported = desc->samplingRatesSupported;
   144         switch (deviceId)
   142             pDescriptor->numOfSamplingRatesSupported = desc->numOfSamplingRatesSupported;
   145                 {
   143          }
   146                 case 0xAD7E5001:
       
   147                     {
       
   148                     impl->sampleRateArray[0] = 8000000;
       
   149                     impl->sampleRateArray[1] = 11025000;
       
   150                     impl->sampleRateArray[2] = 12000000;
       
   151                     impl->sampleRateArray[3] = 16000000;
       
   152                     impl->sampleRateArray[4] = 22050000;
       
   153                     impl->sampleRateArray[5] = 24000000;
       
   154                     impl->sampleRateArray[6] = 32000000;
       
   155                     impl->sampleRateArray[7] = 44100000;
       
   156                     impl->sampleRateArray[8] = 48000000;
       
   157                     impl->sampleRateArray[9] = 64000000;
       
   158                     impl->sampleRateArray[10] = 88200000;
       
   159                     impl->sampleRateArray[11] = 96000000;
       
   160 
       
   161                     pDescriptor->deviceName = (XAchar *)deviceName1;
       
   162                     pDescriptor->deviceConnection = XA_DEVCONNECTION_INTEGRATED;
       
   163                     pDescriptor->deviceScope = XA_DEVSCOPE_ENVIRONMENT;
       
   164                     pDescriptor->deviceLocation = XA_DEVLOCATION_HANDSET;
       
   165                     pDescriptor->isForTelephony = XA_BOOLEAN_FALSE;
       
   166                     pDescriptor->minSampleRate=8000000; /* milliHz */
       
   167                     pDescriptor->maxSampleRate = 96000000;
       
   168                     pDescriptor->isFreqRangeContinuous=XA_BOOLEAN_FALSE;
       
   169                     pDescriptor->samplingRatesSupported = (XAmilliHertz*)(&(impl->sampleRateArray));
       
   170                     pDescriptor->numOfSamplingRatesSupported = 12;
       
   171                     pDescriptor->maxChannels = 2;
       
   172                     }
       
   173                     break;
       
   174                 default:
       
   175                     res = XA_RESULT_PARAMETER_INVALID;
       
   176                     break;
       
   177                 }
       
   178     }
   144     }
   179 
   145 
   180     DEBUG_API("<-XAAudIODevCapaItfImpl_QueryAudioInputCapabilities");
   146     DEBUG_API("<-XAAudIODevCapaItfImpl_QueryAudioInputCapabilities");
   181     return res;
   147     return res;
   182 }
   148 }
   290         if( res == XA_RESULT_SUCCESS )
   256         if( res == XA_RESULT_SUCCESS )
   291         {
   257         {
   292             XAAudioOutputDescriptor* desc = ((XAAudioOutputDescriptor*)(temp.pEntry));
   258             XAAudioOutputDescriptor* desc = ((XAAudioOutputDescriptor*)(temp.pEntry));
   293             /* map applicable values to XAAudioCodecCapabilities */
   259             /* map applicable values to XAAudioCodecCapabilities */
   294             pDescriptor->maxChannels=desc->maxChannels;
   260             pDescriptor->maxChannels=desc->maxChannels;
   295             pDescriptor->minSampleRate=desc->minSampleRate*1000; /* milliHz */
   261             pDescriptor->minSampleRate=desc->minSampleRate; /* milliHz */
   296             if (desc->maxSampleRate < (0xFFFFFFFF / 1000))
   262             if (desc->maxSampleRate < (0xFFFFFFFF))
   297             {
   263             {
   298                 pDescriptor->maxSampleRate = desc->maxSampleRate*1000;
   264                 pDescriptor->maxSampleRate = desc->maxSampleRate;
   299             }
   265             }
   300             else
   266             else
   301             {
   267             {
   302                 pDescriptor->maxSampleRate = 0xFFFFFFFF;
   268                 pDescriptor->maxSampleRate = 0xFFFFFFFF;
   303             }
   269             }
   304             pDescriptor->isFreqRangeContinuous=XA_BOOLEAN_TRUE;
   270             pDescriptor->isFreqRangeContinuous=desc->isFreqRangeContinuous;
   305             pDescriptor->deviceConnection = XA_DEVCONNECTION_INTEGRATED;
   271             pDescriptor->deviceConnection = desc->deviceConnection;
   306             pDescriptor->deviceScope = XA_DEVSCOPE_ENVIRONMENT;
   272             pDescriptor->deviceScope = desc->deviceScope;
   307             pDescriptor->deviceLocation = XA_DEVLOCATION_HANDSET;
   273             pDescriptor->deviceLocation = desc->deviceLocation;
   308             pDescriptor->pDeviceName = temp.adaptId;
   274             pDescriptor->pDeviceName = desc->pDeviceName;
   309             /* other caps undefined */
   275             /* other caps undefined */
   310         }
   276             pDescriptor->isForTelephony = desc->isForTelephony;
   311 
   277             pDescriptor->samplingRatesSupported = desc->samplingRatesSupported;
   312 
   278             pDescriptor->numOfSamplingRatesSupported = desc->numOfSamplingRatesSupported;
   313         switch (deviceId)
   279          }
   314                 {
       
   315                 case 0xAD7E5002:
       
   316                     {
       
   317                     impl->sampleRateArray[0] = 8000000;
       
   318                     impl->sampleRateArray[1] = 11025000;
       
   319                     impl->sampleRateArray[2] = 12000000;
       
   320                     impl->sampleRateArray[3] = 16000000;
       
   321                     impl->sampleRateArray[4] = 22050000;
       
   322                     impl->sampleRateArray[5] = 24000000;
       
   323                     impl->sampleRateArray[6] = 32000000;
       
   324                     impl->sampleRateArray[7] = 44100000;
       
   325                     impl->sampleRateArray[8] = 48000000;
       
   326                     impl->sampleRateArray[9] = 64000000;
       
   327                     impl->sampleRateArray[10] = 88200000;
       
   328                     impl->sampleRateArray[11] = 96000000;
       
   329 
       
   330                     pDescriptor->pDeviceName = (XAchar *)"Device Speaker";
       
   331                     pDescriptor->deviceConnection = XA_DEVCONNECTION_INTEGRATED;
       
   332                     pDescriptor->deviceScope = XA_DEVSCOPE_ENVIRONMENT;
       
   333                     pDescriptor->deviceLocation = XA_DEVLOCATION_HANDSET;
       
   334                     pDescriptor->isForTelephony = XA_BOOLEAN_FALSE;
       
   335                     pDescriptor->minSampleRate=8000000; /* milliHz */
       
   336                     pDescriptor->maxSampleRate = 96000000;
       
   337                     pDescriptor->isFreqRangeContinuous=XA_BOOLEAN_FALSE;
       
   338                     pDescriptor->samplingRatesSupported = (XAmilliHertz*)(&(impl->sampleRateArray));
       
   339                     pDescriptor->numOfSamplingRatesSupported = 12;
       
   340                     pDescriptor->maxChannels = 2;
       
   341                     }
       
   342                     break;
       
   343                 default:
       
   344                     res = XA_RESULT_PARAMETER_INVALID;
       
   345                     break;
       
   346                 }
       
   347     }
   280     }
   348 
   281 
   349     DEBUG_API("<-XAAudIODevCapaItfImpl_QueryAudioOutputCapabilities");
   282     DEBUG_API("<-XAAudIODevCapaItfImpl_QueryAudioOutputCapabilities");
   350     return res;
   283     return res;
   351 }
   284 }