]> git.donarmstrong.com Git - lilypond.git/blob - src/inputcommand.cc
release: 0.0.14
[lilypond.git] / src / inputcommand.cc
1 #include "inputcommand.hh"
2 #include "debug.hh"
3 #include "command.hh"
4
5 Input_command::Input_command()
6 {
7     when = -1;
8 }
9
10 Input_command::Input_command(Real w)
11 {
12     when =w;
13 }
14
15 Input_command::operator Command()
16 {
17     Command c(when);
18     if (!args.sz())
19         return c;
20     
21     c.code = INTERPRET;
22     String s = args[0];
23         
24     int p;
25     if (s == "KEY")
26         p = 200;
27     else if (s=="CLEF")
28         p = 190;
29     else if (s == "METER")
30         p = 180;
31     else if (s == "BAR")
32         p = 170;
33     
34     c.priority = p;
35     c.args = args;
36     
37     return c;    
38 }
39
40
41 Input_command*
42 get_partial_command(Real u)
43 {
44     Input_command*c = new Input_command;
45     c->args.add("PARTIAL");
46     c->args.add(u);
47     return c;
48 }
49
50 Input_command*
51 get_key_interpret_command(svec<String>a ) 
52 {
53     Input_command*c = new Input_command;
54     c->args.add("KEY");
55     for (int i=0; i < a.sz(); i ++)
56         c->args.add(a[i]);
57     
58     return c;
59 }
60
61 Input_command*
62 get_reset_command()
63 {
64     Input_command*c = new Input_command;
65     c->args.add("RESET");
66     return c;
67 }
68
69 Input_command *
70 get_meterchange_command(int n, int m)
71 {
72     Input_command*c = new Input_command;
73
74     c->args.add( "METER");
75     c->args.add( n );
76     c->args.add( m );
77
78     return c;
79 }
80
81 Input_command *
82 get_bar_command(Real w)
83 {
84     Input_command*c = new Input_command;
85     c->when = w;
86     c->args.add( "BAR");
87     c->args.add( "|");
88
89     return c;
90 }
91
92 Input_command *
93 get_skip_command(int n, Real m)
94 {
95     Input_command*c = new Input_command;
96     
97     c->args.add( "SKIP");
98     c->args.add( n );
99     c->args.add( m );
100
101     return c;
102 }
103
104
105 void
106 Input_command::print()const
107 {
108     mtor << "{ at " << when;
109     if (args.sz()) {
110         mtor<< " args: ";
111         for (int i = 0; i<args.sz(); i++)
112             mtor << "`"<<args[i] <<"',";
113     }
114     mtor << "}\n";
115 }
116
117 Input_command*
118 get_clef_interpret_command(String w)
119 {
120     Input_command*c = new Input_command;
121     c->args.add("CLEF");
122     c->args.add(w);
123     return c;
124 }