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.

cmGrTksbFltk.h 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #ifndef cmGrTksbFltk_h
  2. #define cmGrTksbFltk_h
  3. class Fl_Menu_Bar;
  4. class cmdIf;
  5. class cmGrTksbFltk : public cmGrPlotFltk, public gvHashFuncArg
  6. {
  7. public:
  8. cmGrTksbFltk(cmCtx_t* ctx, cmdIf* cp, Fl_Menu_Bar* menuBar, int x, int y, int w, int h);
  9. virtual ~cmGrTksbFltk();
  10. void setTksbHandle( void* vp );
  11. virtual cmScMsgTypeId_t recvScoreMsg( const void* msg, unsigned msgByteCnt );
  12. virtual double sampleRate() const;
  13. virtual bool on_plot_object( cmGrPlotCbArg_t* arg );
  14. typedef enum
  15. {
  16. kInvalidTId,
  17. kSelectTId,
  18. kRefreshTId,
  19. } cbTId_t;
  20. cbTId_t cbTypeId() const;
  21. virtual unsigned scoreSelectedEleIndex() const;
  22. virtual void setScoreLocation( unsigned locIdx, unsigned vel, unsigned smpIdx );
  23. private:
  24. enum
  25. {
  26. kOkRC,
  27. kInsertObjFailRC
  28. };
  29. enum
  30. {
  31. kPitchMId,
  32. kAttrMId,
  33. kDynMId,
  34. kLocIdxMId,
  35. kFracMId,
  36. kSectEvenMId,
  37. kSectDynMId,
  38. kSectTempoMId,
  39. kMenuItemCnt
  40. };
  41. typedef struct
  42. {
  43. cmGrTksbFltk* p;
  44. int id;
  45. } item_t;
  46. typedef enum
  47. {
  48. kEventTksbId,
  49. kSectionTksbId,
  50. kTakeTksbId
  51. } tksbId_t;
  52. typedef struct scObj_str
  53. {
  54. tksbId_t id;
  55. union
  56. {
  57. const cmScoreEvt_t* ep;
  58. const cmScoreSection_t* sp;
  59. unsigned tlMarkerUid;
  60. } u;
  61. scObj_str( const cmScoreEvt_t* e) : id(kEventTksbId) { u.ep=e;}
  62. scObj_str( const cmScoreSection_t* s) : id(kSectionTksbId) { u.sp=s;}
  63. scObj_str( unsigned i ) : id(kTakeTksbId) { u.tlMarkerUid=i;}
  64. } scObj_t;
  65. cmErr_t _err;
  66. //cmdIf* _cmdIf;
  67. cmTakeSeqBldrH_t _tksbH;
  68. Fl_Menu_Bar* _menuBar;
  69. unsigned _samplesMetricId;
  70. unsigned _secondsMetricId;
  71. double _objSecs;
  72. unsigned _objId;
  73. bool _togFl;
  74. cmGrPlObjH_t _lastBarPlotObjH;
  75. item_t _menuArray[ kMenuItemCnt ];
  76. unsigned _nextTakeY;
  77. cbTId_t _curCbTId;
  78. void _insertSection( const cmScoreSection_t* s );
  79. void _insertEvent( const cmScoreEvt_t* m );
  80. void _insertTake( const cmTksbScTrkTake_t* take );
  81. void _createMenu();
  82. bool _isMenuChecked( int id );
  83. void _setEventLabels();
  84. void _setSectionLabels();
  85. cmGrPlObjH_t _scEvtIdxToPlotObj( unsigned scEvtIdx );
  86. static void _s_menuCallback(Fl_Widget* w, void* arg);
  87. };
  88. #endif