Repo created
This commit is contained in:
parent
81b91f4139
commit
f8c34fa5ee
22732 changed files with 4815320 additions and 2 deletions
|
|
@ -0,0 +1,48 @@
|
|||
//
|
||||
// libtgvoip is free and unencumbered public domain software.
|
||||
// For more information, see http://unlicense.org or the UNLICENSE file
|
||||
// you should have received with this source code distribution.
|
||||
//
|
||||
|
||||
#include <cstddef>
|
||||
#include "OpenSLEngineWrapper.h"
|
||||
#include "../../logging.h"
|
||||
|
||||
#define CHECK_SL_ERROR(res, msg) if(res!=SL_RESULT_SUCCESS){ LOGE(msg); return NULL; }
|
||||
|
||||
using namespace tgvoip;
|
||||
using namespace tgvoip::audio;
|
||||
|
||||
|
||||
SLObjectItf OpenSLEngineWrapper::sharedEngineObj=NULL;
|
||||
SLEngineItf OpenSLEngineWrapper::sharedEngine=NULL;
|
||||
int OpenSLEngineWrapper::count=0;
|
||||
|
||||
void OpenSLEngineWrapper::DestroyEngine(){
|
||||
count--;
|
||||
LOGI("release: engine instance count %d", count);
|
||||
if(count==0){
|
||||
(*sharedEngineObj)->Destroy(sharedEngineObj);
|
||||
sharedEngineObj=NULL;
|
||||
sharedEngine=NULL;
|
||||
}
|
||||
LOGI("after release");
|
||||
}
|
||||
|
||||
SLEngineItf OpenSLEngineWrapper::CreateEngine(){
|
||||
count++;
|
||||
if(sharedEngine)
|
||||
return sharedEngine;
|
||||
const SLInterfaceID pIDs[1] = {SL_IID_ENGINE};
|
||||
const SLboolean pIDsRequired[1] = {SL_BOOLEAN_TRUE};
|
||||
SLresult result = slCreateEngine(&sharedEngineObj, 0, NULL, 1, pIDs, pIDsRequired);
|
||||
CHECK_SL_ERROR(result, "Error creating engine");
|
||||
|
||||
result=(*sharedEngineObj)->Realize(sharedEngineObj, SL_BOOLEAN_FALSE);
|
||||
CHECK_SL_ERROR(result, "Error realizing engine");
|
||||
|
||||
result = (*sharedEngineObj)->GetInterface(sharedEngineObj, SL_IID_ENGINE, &sharedEngine);
|
||||
CHECK_SL_ERROR(result, "Error getting engine interface");
|
||||
return sharedEngine;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue