/** Request which are assumed to be "happening" before the
musical requests. */
-struct Command_req : virtual Request {
+class Command_req : public virtual Request {
+public:
REQUESTMETHODS(Command_req, command);
-
+ virtual Terminate_voice_req *terminate() {return 0;}
+ virtual Group_change_req * groupchange() { return 0;}
+ virtual Group_feature_req * groupfeature() { return 0; }
+
virtual Measure_grouping_req * measuregrouping() { return 0; }
virtual Clef_change_req * clefchange() { return 0; }
virtual Key_change_req * keychange() { return 0; }
/** Baseclass for meter/partial req. It has to be handled by
Staff_{walker,column} baseclass. */
-struct Timing_req : Command_req {
+class Timing_req : public Command_req {
+public:
REQUESTMETHODS(Timing_req, timing);
};
-struct Partial_measure_req : Timing_req {
+class Partial_measure_req : public Timing_req {
+public:
Moment duration_;
Partial_measure_req(Moment);
/**
todo: allow C meter
*/
-struct Meter_change_req : Timing_req {
+class Meter_change_req : public Timing_req {
+public:
int beats_i_, one_beat_i_;
int compare(Meter_change_req const&);
};
/// toggle Cadenza mode
-struct Cadenza_req : Timing_req {
+class Cadenza_req : public Timing_req {
+public:
/// turn on?
bool on_b_;
Cadenza_req(bool);
};
/// check if we're at start of a measure.
-struct Barcheck_req : Timing_req {
+class Barcheck_req : public Timing_req {
+public:
REQUESTMETHODS(Barcheck_req,barcheck);
};
-struct Measure_grouping_req: Timing_req {
+class Measure_grouping_req : public Timing_req {
+public:
Array<int> beat_i_arr_;
Array<Moment> elt_length_arr_;
REQUESTMETHODS(Measure_grouping_req, measuregrouping);
};
-struct Group_change_req : Command_req {
+class Group_change_req : public Command_req {
+public:
String newgroup_str_;
REQUESTMETHODS(Group_change_req, groupchange);
};
/** draw a (repeat)-bar. This something different than #Barcheck_req#,
the latter should only happen at the start of a measure. */
-struct Bar_req : Command_req {
+class Bar_req : public Command_req {
+public:
String type_str_;
Bar_req(String);
int compare(const Bar_req&)const;
REQUESTMETHODS(Bar_req,bar);
};
-struct Terminate_voice_req : Command_req {
+class Terminate_voice_req : public Command_req {
+public:
REQUESTMETHODS(Terminate_voice_req,terminate);
};
-struct Group_feature_req : Command_req {
+class Group_feature_req : public Command_req {
+public:
int stemdir_i_;
Group_feature_req();
REQUESTMETHODS(Group_feature_req, groupfeature);
Routines for sharps and flats are separated,
so that caller may identify non-conventional keys.
*/
-struct Key_change_req : Command_req {
+class Key_change_req : public Command_req {
+public:
Array<Melodic_req*> melodic_p_arr_;
bool minor_b_;
int minor_b();
};
-struct Clef_change_req : Command_req {
+class Clef_change_req : public Command_req {
+public:
String clef_str_;
Clef_change_req(String);
REQUESTMETHODS(Clef_change_req, clefchange);