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