iaudionsinterface.h 958 B

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. #ifdef _WIN32
  3. #ifdef LIBAUDIONS_EXPORTS
  4. #define IAUDIONSINTERFACE_API __declspec(dllexport)
  5. #else
  6. #define IAUDIONSINTERFACE_API __declspec(dllimport)
  7. #endif
  8. # elif ( defined(__GNUC__) && __GNUC__ >= 4 )
  9. #define IAUDIONSINTERFACE_API __attribute__((visibility("default")))
  10. #else // RVC_OS_WIN
  11. #define IAUDIONSINTERFACE_API
  12. #endif // RVC_OS_WIN
  13. #include <stdint.h>
  14. #include <stdarg.h>
  15. typedef struct audions_callback_s {
  16. void (*debug)(void* user_data, const char* fmt, va_list arg);
  17. void* user_data;
  18. }audions_callback_t;
  19. class IAudioNs
  20. {
  21. public:
  22. virtual int SetNsParams(uint32_t uSampleRate, uint32_t uAudioCapturePeroid, int iMode) = 0;
  23. virtual int NsProcess(char* pDst, uint32_t uDstLen, char* pSrc, uint32_t uSrcLen) = 0;
  24. virtual void ReleaseObj() = 0;
  25. };
  26. extern "C" IAUDIONSINTERFACE_API IAudioNs* CreateIAudioNsObj(audions_callback_t* pCallback);
  27. extern "C" IAUDIONSINTERFACE_API void DestroyIAudioNsObj(IAudioNs* pIAudioNs);