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.

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