Programmable real-time audio signal processing application
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.

cmGrTksrFltk.h 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. //| Copyright: (C) 2019-2020 Kevin Larke <contact AT larke DOT org>
  2. //| License: GNU GPL version 3.0 or above. See the accompanying LICENSE file.
  3. #ifndef cmGrTksrFltk_h
  4. #define cmGrTksrFltk_h
  5. class Fl_Menu_Bar;
  6. class cmdIf;
  7. class cmGrTksrFltk : public cmGrPlotFltk, public gvHashFuncArg
  8. {
  9. public:
  10. cmGrTksrFltk(cmCtx_t* ctx, cmdIf* cp, Fl_Menu_Bar* menuBar, int x, int y, int w, int h);
  11. virtual ~cmGrTksrFltk();
  12. void setTksbHandle( void* vp );
  13. void refresh();
  14. virtual double sampleRate() const;
  15. virtual bool on_plot_object( cmGrPlotCbArg_t* arg );
  16. private:
  17. enum
  18. {
  19. kOkRC,
  20. kInsertObjFailRC,
  21. kClearPlotFailRC,
  22. kTksbFailRC
  23. };
  24. enum
  25. {
  26. kPitchMId,
  27. kScEvtMId,
  28. kDeleteMId,
  29. kSustainMId,
  30. kSostenutoMId,
  31. kWriteMId,
  32. kReadMId,
  33. kMenuItemCnt
  34. };
  35. typedef struct
  36. {
  37. cmGrTksrFltk* p;
  38. int id;
  39. } item_t;
  40. typedef enum
  41. {
  42. kInvalidTksrId,
  43. kNoteTksrId,
  44. kPedalTksrId,
  45. } tksrId_t;
  46. typedef struct scObj_str
  47. {
  48. tksrId_t id;
  49. union
  50. {
  51. unsigned rid;
  52. } u;
  53. scObj_str( tksrId_t i, unsigned rid ) : id(i) { u.rid=rid; }
  54. } scObj_t;
  55. cmErr_t _err;
  56. //cmdIf* _cmdIf;
  57. cmTakeSeqBldrH_t _tksbH;
  58. Fl_Menu_Bar* _menuBar;
  59. unsigned _samplesMetricId;
  60. unsigned _secondsMetricId;
  61. //double _objSecs;
  62. unsigned _objId;
  63. //bool _togFl;
  64. item_t _menuArray[ kMenuItemCnt ];
  65. void _insertEvent( const cmTksbRend_t* m, double srate );
  66. void _createMenu();
  67. bool _isMenuChecked( int id );
  68. void _setEventLabels();
  69. void _write();
  70. void _read();
  71. void _insertPedal( unsigned long pedalMId );
  72. static void _s_deleteSelectedEle( void* arg, cmGrPlObjH_t oh );
  73. static void _s_menuCallback(Fl_Widget* w, void* arg);
  74. };
  75. #endif