#include "string.hh"
+#include "inputcommand.hh"
#include "parseconstruct.hh"
#include "command.hh"
Command*
-get_partial_command(Real u)
-{
- Command*c = new Command;
- c->code = INTERPRET;
- c->args.add("PARTIAL");
- c->args.add(u);
- return c;
-}
-
-Command*
-get_reset_command()
-{
- Command*c = new Command;
- c->code = INTERPRET;
- c->args.add("RESET");
- return c;
-}
-
-Command*
-get_key_interpret_command(svec<String> which)
+get_key_interpret_command(svec<Scalar> which)
{
Command*c = new Command;
c->code = INTERPRET;
}
Command*
-get_clef_interpret_command(String w)
-{
- Command*c = new Command;
- c->code = INTERPRET;
- c->args.add("CLEF");
- c->args.add(w);
- c->priority = 190;
- return c;
-}
-
-Command*
-get_key_typeset_command(svec<String> which)
+get_key_typeset_command(svec<Scalar>which)
{
Command*c = new Command;
c->code = TYPESET;
return c;
}
-Command *
-get_meterchange_command(int n, int m)
-{
- Command*c = new Command;
-
- c->code = INTERPRET;
- c->args.add( "METER");
- c->args.add( n );
- c->args.add( m );
- c->priority = 170; // more than bar
- return c;
-}
-
Command *
get_meter_command(Real w, int n, int m)
{
c->priority = 40;
return c;
}
-
+#if 0
Command*
get_bar_command(Real w)
{
}
-Command *
-get_skip_command(int n, Real m)
-{
- Command*c = new Command;
-
- c->code = INTERPRET;
- c->args.add( "SKIP");
- c->args.add( n );
- c->args.add( m );
- c->priority = 0;
- return c;
-}
-
-
+#endif
--- /dev/null
+#include "inputcommand.hh"
+#include "debug.hh"
+#include "command.hh"
+
+Input_command::Input_command()
+{
+ when = -1;
+}
+
+Input_command::Input_command(Real w)
+{
+ when =w;
+}
+
+Input_command::operator Command()
+{
+ Command c(when);
+ if (!args.sz())
+ return c;
+
+ c.code = INTERPRET;
+ String s = args[0];
+
+ int p;
+ if (s == "KEY")
+ p = 200;
+ else if (s=="CLEF")
+ p = 190;
+ else if (s == "METER")
+ p = 180;
+ else if (s == "BAR")
+ p = 170;
+
+ c.priority = p;
+ c.args = args;
+
+ return c;
+}
+
+
+Input_command*
+get_partial_command(Real u)
+{
+ Input_command*c = new Input_command;
+ c->args.add("PARTIAL");
+ c->args.add(u);
+ return c;
+}
+
+Input_command*
+get_key_interpret_command(svec<String>a )
+{
+ Input_command*c = new Input_command;
+ c->args.add("KEY");
+ for (int i=0; i < a.sz(); i ++)
+ c->args.add(a[i]);
+
+ return c;
+}
+
+Input_command*
+get_reset_command()
+{
+ Input_command*c = new Input_command;
+ c->args.add("RESET");
+ return c;
+}
+
+Input_command *
+get_meterchange_command(int n, int m)
+{
+ Input_command*c = new Input_command;
+
+ c->args.add( "METER");
+ c->args.add( n );
+ c->args.add( m );
+
+ return c;
+}
+
+Input_command *
+get_bar_command(Real w)
+{
+ Input_command*c = new Input_command;
+ c->when = w;
+ c->args.add( "BAR");
+ c->args.add( "|");
+
+ return c;
+}
+
+Input_command *
+get_skip_command(int n, Real m)
+{
+ Input_command*c = new Input_command;
+
+ c->args.add( "SKIP");
+ c->args.add( n );
+ c->args.add( m );
+
+ return c;
+}
+
+
+void
+Input_command::print()const
+{
+ mtor << "{ at " << when;
+ if (args.sz()) {
+ mtor<< " args: ";
+ for (int i = 0; i<args.sz(); i++)
+ mtor << "`"<<args[i] <<"',";
+ }
+ mtor << "}\n";
+}
+
+Input_command*
+get_clef_interpret_command(String w)
+{
+ Input_command*c = new Input_command;
+ c->args.add("CLEF");
+ c->args.add(w);
+ return c;
+}