xa.c revision 8db0b106cdce5f5216b1535492de7930ad738aed
18db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#include <assert.h> 28db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#include <stdio.h> 38db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#include <stdlib.h> 48db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten#include "OMXAL/OpenMAXAL.h" 58db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 68db0b106cdce5f5216b1535492de7930ad738aedGlenn Kastenint main(int argc, char **argv) 78db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten{ 88db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XAresult result; 98db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XAObjectItf engineObject; 108db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("xaCreateEngine\n"); 118db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten result = xaCreateEngine(&engineObject, 0, NULL, 0, NULL, NULL); 128db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("result = %ld\n", result); 138db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten assert(XA_RESULT_SUCCESS == result); 148db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("engineObject = %p\n", engineObject); 158db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("realize\n"); 168db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten result = (*engineObject)->Realize(engineObject, XA_BOOLEAN_FALSE); 178db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("result = %ld\n", result); 188db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("GetInterface for ENGINE\n"); 198db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XAEngineItf engineEngine; 208db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten result = (*engineObject)->GetInterface(engineObject, XA_IID_ENGINE, &engineEngine); 218db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("result = %ld\n", result); 228db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("engineEngine = %p\n", engineEngine); 238db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten assert(XA_RESULT_SUCCESS == result); 248db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 258db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XAObjectItf outputMixObject; 268db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("CreateOutputMix"); 278db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten result = (*engineEngine)->CreateOutputMix(engineEngine, &outputMixObject, 0, NULL, NULL); 288db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("result = %ld, outputMixObject=%p\n", result, outputMixObject); 298db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 308db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XAObjectItf deviceObject; 318db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("CreateCameraDevice\n"); 328db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten result = (*engineEngine)->CreateCameraDevice(engineEngine, &deviceObject, 338db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XA_DEFAULTDEVICEID_CAMERA, 0, NULL, NULL); 348db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("result = %ld, deviceObject=%p\n", result, deviceObject); 358db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 368db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("CreateRadioDevice\n"); 378db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten result = (*engineEngine)->CreateRadioDevice(engineEngine, &deviceObject, 0, NULL, NULL); 388db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("result = %ld, deviceObject=%p\n", result, deviceObject); 398db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 408db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("CreateLEDDevice\n"); 418db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten result = (*engineEngine)->CreateLEDDevice(engineEngine, &deviceObject, XA_DEFAULTDEVICEID_LED, 428db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 0, NULL, NULL); 438db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("result = %ld, deviceObject=%p\n", result, deviceObject); 448db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 458db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("CreateVibraDevice\n"); 468db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten result = (*engineEngine)->CreateVibraDevice(engineEngine, &deviceObject, 478db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XA_DEFAULTDEVICEID_VIBRA, 0, NULL, NULL); 488db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("result = %ld, deviceObject=%p\n", result, deviceObject); 498db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 508db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("CreateMediaPlayer"); 518db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XAObjectItf playerObject; 528db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XADataLocator_URI locUri; 538db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten locUri.locatorType = XA_DATALOCATOR_URI; 548db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten locUri.URI = (XAchar *) "/sdcard/hello.wav"; 558db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XADataFormat_MIME fmtMime; 568db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten fmtMime.formatType = XA_DATAFORMAT_MIME; 578db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten fmtMime.mimeType = NULL; 588db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten fmtMime.containerType = XA_CONTAINERTYPE_UNSPECIFIED; 598db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XADataSource dataSrc; 608db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten dataSrc.pLocator = &locUri; 618db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten dataSrc.pFormat = &fmtMime; 628db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XADataSink audioSnk; 638db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XADataLocator_OutputMix locOM; 648db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten locOM.locatorType = XA_DATALOCATOR_OUTPUTMIX; 658db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten locOM.outputMix = outputMixObject; 668db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten audioSnk.pLocator = &locOM; 678db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten audioSnk.pFormat = NULL; 688db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XADataLocator_NativeDisplay locND; 698db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten locND.locatorType = XA_DATALOCATOR_NATIVEDISPLAY; 708db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten locND.hWindow = NULL; 718db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten locND.hDisplay = NULL; 728db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten XADataSink imageVideoSink; 738db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten imageVideoSink.pLocator = &locND; 748db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten imageVideoSink.pFormat = NULL; 758db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten result = (*engineEngine)->CreateMediaPlayer(engineEngine, &playerObject, &dataSrc, NULL, 768db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten &audioSnk, &imageVideoSink, NULL, NULL, 0, NULL, NULL); 778db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("result = %ld, playerObject=%p\n", result, playerObject); 788db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 798db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("destroying output mix\n"); 808db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten (*outputMixObject)->Destroy(outputMixObject); 818db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 828db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("destroying engine\n"); 838db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten (*engineObject)->Destroy(engineObject); 848db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten printf("exit\n"); 858db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten 868db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten return EXIT_SUCCESS; 878db0b106cdce5f5216b1535492de7930ad738aedGlenn Kasten} 88