api.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "api.h"
  2. #include <stdlib.h>
  3. Reverb* createReverb()
  4. {
  5. Reverb* pobj = (Reverb*)malloc(sizeof(Reverb));
  6. if (pobj)
  7. {
  8. Reverb_init(pobj);
  9. return pobj;
  10. }
  11. return NULL;
  12. }
  13. OSStatus deleteReverb(Reverb* pobj)
  14. {
  15. OSStatus result = noErr;
  16. if (pobj)
  17. {
  18. Reverb_release(pobj);
  19. free(pobj);
  20. }
  21. return result;
  22. }
  23. //处理数据
  24. OSStatus simpleDelay1 (Reverb* pobj, //混响对象
  25. void *inRefCon, // scope reference
  26. UInt32 inNumberFrames, // number of frames to process
  27. SInt16 *sampleBuffer,//数据
  28. int samplingFreqHz,
  29. int channelNum)//是否双声道 // frame data
  30. {
  31. OSStatus result = noErr;
  32. Reverb_Process(pobj,sampleBuffer,inNumberFrames,samplingFreqHz,channelNum);
  33. return result;
  34. }
  35. //设置属性
  36. OSStatus setReverbParem(Reverb* pobj,
  37. float drytime,
  38. float wettime,
  39. float dampness,
  40. float roomwidth,
  41. float roomsize)
  42. {
  43. return Reverb_SetProperty(pobj,drytime,wettime,dampness,roomwidth,roomsize);
  44. }
  45. //获取属性
  46. OSStatus getReverbParem(Reverb* pobj,
  47. float* drytime,
  48. float* wettime,
  49. float* dampness,
  50. float* roomwidth,
  51. float* roomsize)
  52. {
  53. return Reverb_GetProperty(pobj,drytime,wettime,dampness,roomwidth,roomsize);
  54. }