]> git.donarmstrong.com Git - lilypond.git/blob - src/inputcommand.cc
release: 0.0.15
[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=0;
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     else if (s == "GROUPING")
34         p = 160;
35     
36     c.priority = p;
37     c.args = args;
38     
39     return c;    
40 }
41
42
43 Input_command*
44 get_partial_command(Real u)
45 {
46     Input_command*c = new Input_command;
47     c->args.add("PARTIAL");
48     c->args.add(u);
49     return c;
50 }
51
52 Input_command*
53 get_grouping_command(svec<int>a ) 
54 {
55     Input_command*c = new Input_command;
56     c->args.add("GROUPING");
57     for (int i=0; i < a.sz(); i ++)
58         c->args.add(a[i]);
59
60     return c;
61 }
62
63 Input_command*
64 get_key_interpret_command(svec<String>a ) 
65 {
66     Input_command*c = new Input_command;
67     c->args.add("KEY");
68     for (int i=0; i < a.sz(); i ++)
69         c->args.add(a[i]);
70     
71     return c;
72 }
73
74 Input_command*
75 get_reset_command()
76 {
77     Input_command*c = new Input_command;
78     c->args.add("RESET");
79     return c;
80 }
81
82 Input_command *
83 get_meterchange_command(int n, int m)
84 {
85     Input_command*c = new Input_command;
86
87     c->args.add( "METER");
88     c->args.add( n );
89     c->args.add( m );
90
91     return c;
92 }
93
94 Input_command *
95 get_bar_command(Real w)
96 {
97     Input_command*c = new Input_command;
98     c->when = w;
99     c->args.add( "BAR");
100     c->args.add( "|");
101
102     return c;
103 }
104
105 Input_command *
106 get_skip_command(int n, Real m)
107 {
108     Input_command*c = new Input_command;
109     
110     c->args.add( "SKIP");
111     c->args.add( n );
112     c->args.add( m );
113
114     return c;
115 }
116
117
118 void
119 Input_command::print()const
120 {
121     mtor << "{ at " << when;
122     if (args.sz()) {
123         mtor<< " args: ";
124         for (int i = 0; i<args.sz(); i++)
125             mtor << "`"<<args[i] <<"',";
126     }
127     mtor << "}\n";
128 }
129
130 Input_command*
131 get_clef_interpret_command(String w)
132 {
133     Input_command*c = new Input_command;
134     c->args.add("CLEF");
135     c->args.add(w);
136     return c;
137 }