1b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten/* 2b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * Copyright (C) 2011 The Android Open Source Project 3b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * 4b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * Licensed under the Apache License, Version 2.0 (the "License"); 5b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * you may not use this file except in compliance with the License. 6b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * You may obtain a copy of the License at 7b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * 8b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * http://www.apache.org/licenses/LICENSE-2.0 9b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * 10b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * Unless required by applicable law or agreed to in writing, software 11b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * distributed under the License is distributed on an "AS IS" BASIS, 12b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * See the License for the specific language governing permissions and 14b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten * limitations under the License. 15b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten */ 16b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 17b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten// Dual engine test 18b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 19b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten#include <assert.h> 20b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten#include <stdio.h> 21b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten#include <stdlib.h> 22c6853892c94800e72c0bd676d5d2136d48cea76eGlenn Kasten#include <SLES/OpenSLES.h> 23c6853892c94800e72c0bd676d5d2136d48cea76eGlenn Kasten#include <OMXAL/OpenMAXAL.h> 24b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 25b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kastenint main(int argc, char **argv) 26b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten{ 27b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten XAresult xaResult; 28b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten XAObjectItf xaEngineObject; 29b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 30b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten SLresult slResult; 31b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten SLObjectItf slEngineObject; 32b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 33b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("xaCreateEngine\n"); 34b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten xaResult = xaCreateEngine(&xaEngineObject, 0, NULL, 0, NULL, NULL); 3558432eb9cea995c69b4f905e68b38c1b8216edebGlenn Kasten printf("xaResult = %d\n", xaResult); 36b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten assert(XA_RESULT_SUCCESS == xaResult); 37b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("xaEngineObject = %p\n", xaEngineObject); 38b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 39b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("realize xaEngineObject\n"); 40b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten xaResult = (*xaEngineObject)->Realize(xaEngineObject, XA_BOOLEAN_FALSE); 4158432eb9cea995c69b4f905e68b38c1b8216edebGlenn Kasten printf("xaResult = %d\n", xaResult); 42b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 43b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("GetInterface for XA_IID_ENGINE\n"); 44b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten XAEngineItf xaEngineEngine; 45b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten xaResult = (*xaEngineObject)->GetInterface(xaEngineObject, XA_IID_ENGINE, &xaEngineEngine); 4658432eb9cea995c69b4f905e68b38c1b8216edebGlenn Kasten printf("xaResult = %d\n", xaResult); 47b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("xaEngineEngine = %p\n", xaEngineEngine); 48b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten assert(XA_RESULT_SUCCESS == xaResult); 49b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 50b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("slCreateEngine\n"); 51b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten slResult = slCreateEngine(&slEngineObject, 0, NULL, 0, NULL, NULL); 5258432eb9cea995c69b4f905e68b38c1b8216edebGlenn Kasten printf("slResult = %d\n", slResult); 53b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten assert(SL_RESULT_SUCCESS == slResult); 54b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("slEngineObject = %p\n", slEngineObject); 55b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 56b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("realize slEngineObject\n"); 57b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten slResult = (*slEngineObject)->Realize(slEngineObject, SL_BOOLEAN_FALSE); 5858432eb9cea995c69b4f905e68b38c1b8216edebGlenn Kasten printf("slResult = %d\n", slResult); 59b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 60b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("GetInterface for SL_IID_ENGINE\n"); 61b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten SLEngineItf slEngineEngine; 62b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten slResult = (*slEngineObject)->GetInterface(slEngineObject, SL_IID_ENGINE, &slEngineEngine); 6358432eb9cea995c69b4f905e68b38c1b8216edebGlenn Kasten printf("slResult = %d\n", slResult); 64b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("slEngineEngine = %p\n", slEngineEngine); 65b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten assert(SL_RESULT_SUCCESS == slResult); 66b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 67b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("destroying xaEngineObject\n"); 68b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten (*xaEngineObject)->Destroy(xaEngineObject); 69b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 70b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("destroying slEngineObject\n"); 71b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten (*slEngineObject)->Destroy(slEngineObject); 72b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten 73b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten printf("exit\n"); 74b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten return EXIT_SUCCESS; 75b8738cd33a43cf03f67534dd7ea567d1354cfcceGlenn Kasten} 76