#ifndef __MIDIDATA_H__ #define __MIDIDATA_H__ /* * $Id: MidiData.h,v 1.3 1999/03/30 17:13:06 baron Exp baron $ * * Base Class * */ #include #include class MidiData: public BListItem { public: MidiData(int event_kind = -1); virtual ~MidiData(); float GetTime(void) const; int GetChannel(void) const; int GetKind(void) const; long GetValue() const; void SetTime(float); void SetChannel(int); void SetKind(int); void SetValue(long); virtual bool Edit(void) = 0; // returns true if changed virtual void DrawItem(BView *owner, BRect frame, bool complete); private: float time; //time of the event int channel; int kind; long value; }; class Note: public MidiData { public: Note(); ~Note(); void SetOnVelocity(int); void SetOffVelocity(int); void SetNote(int); void SetNoteLength(float); int GetOnVelocity(void) const; int GetOffVelocity(void) const; int GetNote(void) const; float GetNoteLength(void) const; virtual bool Edit(void); virtual void DrawItem(BView *owner, BRect frame, bool complete); private: int OnVelocity; int OffVelocity; int note; //the actual note float length; //length of note }; class Text: public MidiData { public: Text(); ~Text(); void SetText(const BString&); const char *GetText(void) const; void SetType(int); int GetType(void) const; virtual void DrawItem(BView *owner, BRect frame, bool complete); virtual bool Edit(void); private: BString txt; int type; }; class Tempo: public MidiData { public: Tempo(); ~Tempo(); virtual void DrawItem(BView *owner, BRect frame, bool complete); virtual bool Edit(void) {return false;}; private: }; class ProgramChange: public MidiData { public: ProgramChange(); ~ProgramChange(); virtual void DrawItem(BView *owner, BRect frame, bool complete); virtual bool Edit(void) {return false;}; private: }; class PitchBend: public MidiData { public: PitchBend(); ~PitchBend(); virtual void DrawItem(BView *owner, BRect frame, bool complete); virtual bool Edit(void) {return false;}; }; class KeySignature: public MidiData { public: KeySignature(); ~KeySignature(); bool GetMinor() const; int GetKey() const; void SetMinor(bool); void SetKey(int); virtual void DrawItem(BView *owner, BRect frame, bool complete); virtual bool Edit(void) {return false;}; private: bool minor; int key; }; class ControlChange: public MidiData { public: ControlChange(); ~ControlChange(); void SetController(int); int GetController(void) const; virtual void DrawItem(BView *owner, BRect frame, bool complete); virtual bool Edit(void) {return false;}; private: int controller; }; class TimeSig: public MidiData { public: TimeSig(); ~TimeSig(); int GetNumerator(void) const; int GetDenominator(void) const; int GetClock(void) const; int GetClick(void) const; void SetNumerator(int); void SetDenominator(int); void SetClick(int); void SetClock(int); virtual void DrawItem(BView *owner, BRect frame, bool complete); virtual bool Edit(void) {return false;}; private: int num; int den; int clock; int click; }; #endif