From b353e619fb3e6dfea1c65562252112a061f564b3 Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 3 Sep 1996 23:15:12 +0000 Subject: [PATCH] lilypond-0.0.1 --- command.hh | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 command.hh diff --git a/command.hh b/command.hh new file mode 100644 index 0000000000..353bf5d4bb --- /dev/null +++ b/command.hh @@ -0,0 +1,69 @@ +#ifndef COMMAND_HH +#define COMMAND_HH +#include "glob.hh" +#include "mtime.hh" +#include "vray.hh" +enum Commandcode { + NOP, + INTERPRET, + TYPESET, + BREAK_PRE,BREAK_MIDDLE, BREAK_POST, BREAK_END, +}; +/// set a nonrythmical symbol +struct Command { + Commandcode code; + + Mtime when; + /// analogous to argv[] + svec args; +}; + +/** + A nonrhythmical "thing" in a staff is called a "command". + Commands have these properties: + + \begin{itemize} + \item They are \bf{not} rhythmical, i.e. they do not have a duration + \item They have a staff-wide impact, i.e. a command cannot be targeted at + only one voice in the staff: two voices sharing a staff can't have + different clefs + \item Commands are ordered, that is, when from musical point of view the + commands happen simultaneously, the order in which Staff receives the + commands can still make a difference in the output + \item Some commands are actually score wide, so Score has to issue these + commands to the Staff, eg. BREAK commands + \end{itemize} + + At this moment we have three classes of commands: + \begin{description} + INTERPRET commands are not grouped. + \item[TYPESET] These commands instruct the Staff to + typeset symbols on the output, eg meter/clef/key changes + \item[INTERPRET] These commands do not produce output, instead, + they change the interpretation of other commands or requests. + example: shift output vertically, set the key. + \item[BREAK_XXX] These commands group TYPESET commands in + prebreak and postbreak commands. \See{Col}. + Staff can insert additional commands in a sequence of BREAK_XXX + commands, eg. key change commands + + \end{description} + + These commands are generated by Score, since they have to be the + same for the whole score. + + + \begin{description} + \item[BREAK_PRE] + \item[BREAK_MIDDLE] + \item[BREAK_POST] + \item[BREAK_END] + \item[TYPESET] METER,BAR + \end{description} + + + Commands can be freely copied, they do not have virtual methods. + */ + + +#endif -- 2.39.5