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

cmGrTksrFltk.h 1.6KB

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