Files
Linux_Drivers/middleware/v2/sample/audio/cvi_audio_dl_adp.c
sam.xiang 89f501af2a [middleware] add cvitek's multimedia framework
Change-Id: Iffc3cf32b99b95ba3ba534081a97881a2e004a14
2023-03-10 20:36:18 +08:00

63 lines
1.2 KiB
C

#include "cvi_audio_dl_adp.h"
#include <stdio.h>
#include <dlfcn.h>
#define UNUSED_REF(X) ((X) = (X))
CVI_S32 CVI_Audio_Dlpath(CVI_CHAR *pChLibPath)
{
UNUSED_REF(pChLibPath);
return CVI_SUCCESS;
}
CVI_S32 CVI_Audio_Dlopen(CVI_VOID **pLibhandle, CVI_CHAR *pChLibName)
{
if (CVI_NULL == pLibhandle || CVI_NULL == pChLibName)
return CVI_FAILURE;
*pLibhandle = CVI_NULL;
*pLibhandle = dlopen(pChLibName, RTLD_LAZY | RTLD_LOCAL);
if (*pLibhandle == CVI_NULL) {
printf("dlopen %s failed!\n", pChLibName);
printf("[error]%s\n", dlerror());
return CVI_FAILURE;
}
return CVI_SUCCESS;
}
CVI_S32 CVI_Audio_Dlsym(CVI_VOID **pFunchandle, CVI_VOID *Libhandle,
CVI_CHAR *pChFuncName)
{
if (Libhandle == CVI_NULL) {
printf("LibHandle is empty!");
return CVI_FAILURE;
}
*pFunchandle = CVI_NULL;
*pFunchandle = dlsym(Libhandle, pChFuncName);
if (*pFunchandle == CVI_NULL) {
printf("dlsym %s fail,error msg is %s!\n", pChFuncName, dlerror());
return CVI_FAILURE;
}
return CVI_SUCCESS;
}
CVI_S32 CVI_Audio_Dlclose(CVI_VOID *Libhandle)
{
if (Libhandle == CVI_NULL) {
printf("LibHandle is empty!");
return CVI_FAILURE;
}
dlclose(Libhandle);
return CVI_SUCCESS;
}