libcm is a C development framework with an emphasis on audio signal processing applications.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

cmDspCtx.h 1.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //| Copyright: (C) 2009-2020 Kevin Larke <contact AT larke DOT org>
  2. //| License: GNU GPL version 3.0 or above. See the accompanying LICENSE file.
  3. #ifndef cmDspCtx_h
  4. #define cmDspCtx_h
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. //( { file_desc:"Dataflow global context interface." kw:[snap] }
  9. typedef cmHandle_t cmDspSysH_t;
  10. typedef cmHandle_t cmDspStoreH_t;
  11. struct cmAudioSysCtx_str;
  12. struct cmDspGlobalVar_str;
  13. // DSP system context passed to many DSP instance functions
  14. typedef struct
  15. {
  16. cmDspSysH_t dspH;
  17. cmRpt_t* rpt;
  18. cmCtx_t* cmCtx; // global pgm context
  19. struct cmCtx_str* cmProcCtx; // context used by cmProc objects
  20. struct cmAudioSysCtx_str* ctx; // audio sub-system context this DSP program is executing within
  21. cmLHeapH_t lhH;
  22. cmJsonH_t jsH;
  23. cmSymTblH_t stH;
  24. cmDspStoreH_t dsH;
  25. cmJsonH_t rsrcJsH;
  26. unsigned cycleCnt; // count of DSP execution cycles (multiply by cmDspSamplesPerCycle() to get time since start of DSP system in samples)
  27. unsigned _disableSymId;
  28. unsigned _enableSymId;
  29. unsigned execDurUsecs;
  30. } cmDspCtx_t;
  31. //)
  32. #ifdef __cplusplus
  33. }
  34. #endif
  35. #endif