]> git.donarmstrong.com Git - lilypond.git/blobdiff - src/inputcommand.cc
release: 0.0.23
[lilypond.git] / src / inputcommand.cc
index 121271e4f0daecaa56da60e5686b3a95e86dba77..02e7e7281308b15d25ddecbcd31effcf3c9946d1 100644 (file)
@@ -4,18 +4,13 @@
 
 Input_command::Input_command()
 {
-    when = -1;
 }
 
-Input_command::Input_command(Real w)
-{
-    when =w;
-}
 
 Input_command::operator Command()
 {
-    Command c(when);
-    if (!args.sz())
+    Command c;
+    if (!args.size())
        return c;
     
     c.code = INTERPRET;
@@ -41,7 +36,7 @@ Input_command::operator Command()
 
 
 Input_command*
-get_partial_command(Real u)
+get_partial_command(Moment u)
 {
     Input_command*c = new Input_command;
     c->args.add("PARTIAL");
@@ -50,24 +45,42 @@ get_partial_command(Real u)
 }
 
 Input_command*
-get_grouping_command(svec<int>a ) 
+get_goto_command(String s)
+{
+    Input_command*c = new Input_command;
+    c->args.add("GOTO");
+    c->args.add(s);
+    return c;
+}
+
+Input_command*
+get_cadenza_toggle(int i)
+{
+    
+    Input_command*c = new Input_command;
+    c->args.add("CADENZA");
+    c->args.add(i);
+    return c;
+}
+Input_command*
+get_grouping_command(Array<int>a ) 
 {
     Input_command*c = new Input_command;
-    c->args.add("GROUPING");
-    for (int i=0; i < a.sz(); i ++)
+    c->args.add("GROUPING");    
+    for (int i=0; i < a.size(); i ++)
        c->args.add(a[i]);
 
     return c;
 }
 
 Input_command*
-get_key_interpret_command(svec<String>a ) 
+get_key_interpret_command(Array<int >a ) 
 {
     Input_command*c = new Input_command;
     c->args.add("KEY");
-    for (int i=0; i < a.sz(); i ++)
+    for (int i=0; i < a.size(); i ++) {
        c->args.add(a[i]);
-    
+    }
     return c;
 }
 
@@ -92,18 +105,15 @@ get_meterchange_command(int n, int m)
 }
 
 Input_command *
-get_bar_command(Real w)
+get_newmeasure_command()
 {
     Input_command*c = new Input_command;
-    c->when = w;
-    c->args.add( "BAR");
-    c->args.add( "|");
-
+    c->args.add( "NEWMEASURE");
     return c;
 }
 
 Input_command *
-get_skip_command(int n, Real m)
+get_skip_command(int n, Moment m)
 {
     Input_command*c = new Input_command;
     
@@ -118,13 +128,15 @@ get_skip_command(int n, Real m)
 void
 Input_command::print()const
 {
-    mtor << "{ at " << when;
-    if (args.sz()) {
+#ifndef NPRINT
+    mtor << "{ ";
+    if (args.size()) {
        mtor<< " args: ";
-       for (int i = 0; i<args.sz(); i++)
+       for (int i = 0; i<args.size(); i++)
            mtor << "`"<<args[i] <<"',";
     }
     mtor << "}\n";
+#endif    
 }
 
 Input_command*
@@ -135,3 +147,29 @@ get_clef_interpret_command(String w)
     c->args.add(w);
     return c;
 }
+
+Input_command*
+get_bar_command(String w)
+{
+    Input_command*c = new Input_command;
+    c->args.add("BAR");
+    c->args.add(w);
+    return c;
+}
+
+Array<int>
+get_default_grouping(int count)
+{
+    Array<int> s;
+    if (!(count % 3 )) {
+       for (int i=0; i < count/3; i++)
+           s.add(3);
+    } else if (!(count %2)) {
+       for (int i=0; i < count/2; i++)
+           s.add(2);
+    }else {
+       s.add(2);
+       s.concat(get_default_grouping(count-2));
+    }
+    return s;
+}