libcm is a C development framework with an emphasis on audio signal processing applications.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

cmDspPreset.h 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #ifndef cmDspPresetMgr_h
  2. #define cmDspPresetMgr_h
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. typedef struct _cmDspPreVar_str
  7. {
  8. unsigned symId;
  9. cmDspValue_t value;
  10. struct _cmDspPreVar_str* link;
  11. } _cmDspPresetVar_t;
  12. typedef struct _cmDspPresetInst_str
  13. {
  14. unsigned symId;
  15. struct _cmDspPresetInst_str* link;
  16. _cmDspPresetVar_t* list;
  17. } _cmDspPresetInst_t;
  18. typedef struct _cmDspPresetPre_str
  19. {
  20. unsigned symId;
  21. struct _cmDspPresetPre_str* link;
  22. _cmDspPresetInst_t* list;
  23. _cmDspPresetInst_t* ip;
  24. } _cmDspPresetPre_t;
  25. typedef struct _cmDspPresetGrp_str
  26. {
  27. unsigned symId;
  28. struct _cmDspPresetGrp_str* link;
  29. _cmDspPresetPre_t* list;
  30. _cmDspPresetPre_t* pp;
  31. } _cmDspPresetGrp_t;
  32. typedef struct
  33. {
  34. cmErr_t* err;
  35. cmLHeapH_t lhH;
  36. cmSymTblH_t stH;
  37. _cmDspPresetGrp_t* list;
  38. _cmDspPresetGrp_t* gp;
  39. const cmChar_t* dfltPathJsFn;
  40. const cmChar_t* dfltPathCsvFn;
  41. } cmDspPresetMgr_t;
  42. void _cmDspPresetAlloc( cmDspPresetMgr_t* p );
  43. cmDspRC_t _cmDspPresetLoad( cmDspPresetMgr_t* p, cmCtx_t* ctx, cmErr_t* err, cmLHeapH_t lhH, cmSymTblH_t stH, const cmChar_t* fnPrefixStr );
  44. cmDspRC_t _cmDspPresetUnload( cmDspPresetMgr_t* p, cmCtx_t* ctx );
  45. cmDspRC_t _cmDspPresetRead( cmDspPresetMgr_t* p, cmCtx_t* ctx, const cmChar_t* fn );
  46. cmDspRC_t _cmDspPresetWrite( cmDspPresetMgr_t* p, cmCtx_t* ctx, const cmChar_t* fn );
  47. cmDspRC_t _cmDspPresetWriteCsv( cmDspPresetMgr_t* p, cmCtx_t* ctx, const cmChar_t* fn );
  48. unsigned _cmDspPresetGroupCount( cmDspPresetMgr_t* p );
  49. unsigned _cmDspPresetGroupSymId( cmDspPresetMgr_t* p, unsigned groupIdx );
  50. const cmChar_t* _cmDspPresetGroupLabel( cmDspPresetMgr_t* p, unsigned groupIdx );
  51. cmDspRC_t _cmDspPresetGroupJsonList( cmDspPresetMgr_t* p, cmJsonH_t* jsHPtr );
  52. unsigned _cmDspPresetPresetCount( cmDspPresetMgr_t* p, unsigned groupIdx );
  53. unsigned _cmDspPresetPresetSymId( cmDspPresetMgr_t* p, unsigned groupIdx, unsigned presetIdx );
  54. const cmChar_t* _cmDspPresetPresetLabel( cmDspPresetMgr_t* p, unsigned groupIdx, unsigned presetIdx );
  55. cmDspRC_t _cmDspPresetPresetJsonList( cmDspPresetMgr_t* p, cmJsonH_t* jsHPtr, unsigned groupSymId );
  56. cmDspRC_t _cmDspPresetCreatePreset( cmDspPresetMgr_t* p, const cmChar_t* groupLabel, const cmChar_t* presetLabel );
  57. cmDspRC_t _cmDspPresetCreateInstance( cmDspPresetMgr_t* p, unsigned instSymId );
  58. cmDspRC_t _cmDspPresetCreateVar( cmDspPresetMgr_t* p, unsigned varSymId, const cmDspValue_t* valPtr );
  59. cmDspRC_t _cmDspPresetRecallPreset( cmDspPresetMgr_t* p, const cmChar_t* groupLabel, const cmChar_t* presetLabel );
  60. cmDspRC_t _cmDspPresetRecallInstance( cmDspPresetMgr_t* p, unsigned instSymId );
  61. cmDspRC_t _cmDspPresetRecallVar( cmDspPresetMgr_t* p, unsigned varSymId, cmDspValue_t* valPtr );
  62. #ifdef __cplusplus
  63. }
  64. #endif
  65. #endif