libcm is a C development framework with an emphasis on audio signal processing applications.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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