123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- //| Copyright: (C) 2019-2020 Kevin Larke <contact AT larke DOT org>
- //| License: GNU GPL version 3.0 or above. See the accompanying LICENSE file.
- #ifndef cmGrTksrFltk_h
- #define cmGrTksrFltk_h
-
- class Fl_Menu_Bar;
- class cmdIf;
-
- class cmGrTksrFltk : public cmGrPlotFltk, public gvHashFuncArg
- {
- public:
- cmGrTksrFltk(cmCtx_t* ctx, cmdIf* cp, Fl_Menu_Bar* menuBar, int x, int y, int w, int h);
- virtual ~cmGrTksrFltk();
-
- void setTksbHandle( void* vp );
-
- void refresh();
-
- virtual double sampleRate() const;
-
- virtual bool on_plot_object( cmGrPlotCbArg_t* arg );
-
- private:
- enum
- {
- kOkRC,
- kInsertObjFailRC,
- kClearPlotFailRC,
- kTksbFailRC
- };
-
- enum
- {
- kPitchMId,
- kScEvtMId,
- kDeleteMId,
- kSustainMId,
- kSostenutoMId,
- kWriteMId,
- kReadMId,
- kMenuItemCnt
- };
-
- typedef struct
- {
- cmGrTksrFltk* p;
- int id;
- } item_t;
-
- typedef enum
- {
- kInvalidTksrId,
- kNoteTksrId,
- kPedalTksrId,
- } tksrId_t;
-
- typedef struct scObj_str
- {
- tksrId_t id;
- union
- {
- unsigned rid;
- } u;
-
- scObj_str( tksrId_t i, unsigned rid ) : id(i) { u.rid=rid; }
- } scObj_t;
-
- cmErr_t _err;
- //cmdIf* _cmdIf;
- cmTakeSeqBldrH_t _tksbH;
- Fl_Menu_Bar* _menuBar;
- unsigned _samplesMetricId;
- unsigned _secondsMetricId;
- //double _objSecs;
- unsigned _objId;
- //bool _togFl;
- item_t _menuArray[ kMenuItemCnt ];
-
- void _insertEvent( const cmTksbRend_t* m, double srate );
- void _createMenu();
- bool _isMenuChecked( int id );
- void _setEventLabels();
- void _write();
- void _read();
- void _insertPedal( unsigned long pedalMId );
-
- static void _s_deleteSelectedEle( void* arg, cmGrPlObjH_t oh );
- static void _s_menuCallback(Fl_Widget* w, void* arg);
-
- };
-
-
- #endif
|