audiomicspk3.h 890 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef __AUDIOMICSPK3_H__
  2. #define __AUDIOMICSPK3_H__
  3. #pragma once
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #define AMS2_OPT_AGC 0x04
  8. #define AMS2_OPT_NS 0x08
  9. #define AMS2_OPT_AEC 0x10
  10. #include "audiostream.h"
  11. typedef struct audiomicspk3_t audiomicspk3_t;
  12. struct audiomicspk3_t
  13. {
  14. audiostream_t base;
  15. int opt;
  16. int rec_dev_id;
  17. int ply_dev_id;
  18. int ply_dev_id_portaudio;
  19. int frame_samples;
  20. HANDLE evt_exit;
  21. void *ply_stream;
  22. void *ply_dbuf;
  23. short *ply_buf;
  24. unsigned ply_buf_cnt;
  25. void *rec_dmo;
  26. void *rec_dbuf;
  27. DWORD rec_buf_size;
  28. HANDLE worker_thread;
  29. };
  30. apr_status_t audiomicspk3_create(apr_pool_t *pool,
  31. audioengine_t *engine,
  32. int opt,
  33. int clock,
  34. const char *rec_dev_key,
  35. const char *ply_dev_key,
  36. audiomicspk3_t **p_micspk);
  37. void audiomicspk3_destroy(audiomicspk3_t *micspk);
  38. #ifdef __cplusplus
  39. } // extern "C" {
  40. #endif
  41. #endif //__AUDIOMICSPK3_H__