/[svn]/jsampler/trunk/src/org/jsampler/LscpTree.java
ViewVC logotype

Contents of /jsampler/trunk/src/org/jsampler/LscpTree.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1143 - (show annotations) (download)
Mon Apr 2 21:18:31 2007 UTC (17 years ago) by iliev
File size: 9776 byte(s)
* upgrading to version 0.4a

1 /*
2 * JSampler - a java front-end for LinuxSampler
3 *
4 * Copyright (C) 2005-2007 Grigor Iliev <grigor@grigoriliev.com>
5 *
6 * This file is part of JSampler.
7 *
8 * JSampler is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2
10 * as published by the Free Software Foundation.
11 *
12 * JSampler is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with JSampler; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20 * MA 02111-1307 USA
21 */
22
23 package org.jsampler;
24
25 /**
26 * Provides the LSCP grammar represented in a tree structure.
27 * @author Grigor Iliev
28 */
29 public class LscpTree {
30 private static LscpNode rootNode;
31
32 static {
33 LscpNode add = new LscpNode("ADD");
34 LscpNode clear = new LscpNode("CLEAR", new LscpNode("MIDI_INSTRUMENTS", true, false));
35 LscpNode create = new LscpNode("CREATE");
36 LscpNode destroy = new LscpNode("DESTROY");
37 LscpNode get = new LscpNode("GET");
38 LscpNode list = new LscpNode("LIST");
39 LscpNode load = new LscpNode("LOAD");
40 LscpNode map = new LscpNode("MAP", new LscpNode("MIDI_INSTRUMENT", true));
41 LscpNode quit = new LscpNode("QUIT", true, false);
42 LscpNode remove = new LscpNode("REMOVE");
43 LscpNode reset = new LscpNode("RESET", new LscpNode("CHANNEL"), true, false);
44 LscpNode set = new LscpNode("SET");
45 LscpNode subscribe = new LscpNode("SUBSCRIBE");
46 LscpNode unmap = new LscpNode("UNMAP", new LscpNode("MIDI_INSTRUMENT"), true);
47 LscpNode unsubscribe = new LscpNode("UNSUBSCRIBE");
48
49 LscpNode[] cmds = {
50 add, clear, create, destroy, get, list, load, map, quit,
51 remove, reset, set, subscribe, unmap, unsubscribe
52 };
53
54 rootNode = new LscpNode("", cmds);
55
56 // ADD command
57 LscpNode[] nodes = new LscpNode[2];
58 nodes[0] = new LscpNode("CHANNEL", true, false);
59 nodes[1] = new LscpNode("MIDI_INSTRUMENT_MAP");
60 add.setChildren(nodes);
61
62 // CREATE command
63 nodes = new LscpNode[3];
64 nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE");
65 nodes[1] = new LscpNode("FX_SEND");
66 nodes[2] = new LscpNode("MIDI_INPUT_DEVICE");
67 create.setChildren(nodes);
68
69 // DESTROY command
70 nodes = new LscpNode[3];
71 nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE");
72 nodes[1] = new LscpNode("FX_SEND");
73 nodes[2] = new LscpNode("MIDI_INPUT_DEVICE");
74 destroy.setChildren(nodes);
75
76 // GET command
77 nodes = new LscpNode[26];
78 nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL", new LscpNode("INFO"));
79 nodes[1] = new LscpNode("AUDIO_OUTPUT_CHANNEL_PARAMETER", new LscpNode("INFO"));
80 nodes[2] = new LscpNode("AUDIO_OUTPUT_DEVICE", new LscpNode("INFO"));
81 nodes[3] = new LscpNode("AUDIO_OUTPUT_DEVICES", true, false);
82 nodes[4] = new LscpNode("AUDIO_OUTPUT_DRIVER", new LscpNode("INFO"));
83 nodes[5] = new LscpNode("AUDIO_OUTPUT_DRIVER_PARAMETER", new LscpNode("INFO"));
84 nodes[6] = new LscpNode("AVAILABLE_AUDIO_OUTPUT_DRIVERS", true, false);
85 nodes[7] = new LscpNode("AVAILABLE_ENGINES", true, false);
86 nodes[8] = new LscpNode("AVAILABLE_MIDI_INPUT_DRIVERS", true, false);
87 LscpNode getChn = new LscpNode("CHANNEL");
88 nodes[9] = getChn;
89 nodes[10] = new LscpNode("CHANNELS", true, false);
90 nodes[11] = new LscpNode("ENGINE", new LscpNode("INFO"));
91 nodes[12] = new LscpNode("FX_SEND", new LscpNode("INFO"));
92 nodes[13] = new LscpNode("FX_SENDS");
93 nodes[14] = new LscpNode("MIDI_INPUT_DEVICE", new LscpNode("INFO"));
94 nodes[15] = new LscpNode("MIDI_INPUT_DEVICES", true, false);
95 nodes[16] = new LscpNode("MIDI_INPUT_DRIVER", new LscpNode("INFO"));
96 nodes[17] = new LscpNode("MIDI_INPUT_DRIVER_PARAMETER", new LscpNode("INFO"));
97 nodes[18] = new LscpNode("MIDI_INPUT_PORT", new LscpNode("INFO"));
98 nodes[19] = new LscpNode("MIDI_INPUT_PORT_PARAMETER", new LscpNode("INFO"));
99 nodes[20] = new LscpNode("MIDI_INSTRUMENT", new LscpNode("INFO"));
100 nodes[21] = new LscpNode("MIDI_INSTRUMENT_MAP", new LscpNode("INFO"));
101 nodes[22] = new LscpNode("MIDI_INSTRUMENT_MAPS", true, false);
102 nodes[23] = new LscpNode("MIDI_INSTRUMENTS", new LscpNode("ALL", true, false), true);
103 nodes[24] = new LscpNode("SERVER", new LscpNode("INFO", true, false));
104 nodes[25] = new LscpNode("VOLUME", true, false);
105 get.setChildren(nodes);
106
107 // GET CHANNEL command
108 nodes = new LscpNode[4];
109 nodes[0] = new LscpNode("BUFFER_FILL");
110 nodes[1] = new LscpNode("INFO");
111 nodes[2] = new LscpNode("STREAM_COUNT");
112 nodes[3] = new LscpNode("VOICE_COUNT");
113 getChn.setChildren(nodes);
114
115 // LIST command
116 nodes = new LscpNode[9];
117 nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICES", true, false);
118 nodes[1] = new LscpNode("AVAILABLE_AUDIO_OUTPUT_DRIVERS", true, false);
119 nodes[2] = new LscpNode("AVAILABLE_ENGINES", true, false);
120 nodes[3] = new LscpNode("AVAILABLE_MIDI_INPUT_DRIVERS", true, false);
121 nodes[4] = new LscpNode("CHANNELS", true, false);
122 nodes[5] = new LscpNode("FX_SENDS");
123 nodes[6] = new LscpNode("MIDI_INPUT_DEVICES", true, false);
124 nodes[7] = new LscpNode("MIDI_INSTRUMENT_MAPS", true, false);
125 nodes[8] = new LscpNode("MIDI_INSTRUMENTS", true, false);
126 list.setChildren(nodes);
127
128 // LOAD command
129 nodes = new LscpNode[2];
130 nodes[0] = new LscpNode("ENGINE");
131 nodes[1] = new LscpNode("INSTRUMENT", new LscpNode("NON_MODAL"), true);
132 load.setChildren(nodes);
133
134 // REMOVE command
135 nodes = new LscpNode[2];
136 nodes[0] = new LscpNode("CHANNEL");
137 nodes[1] = new LscpNode("MIDI_INSTRUMENT_MAP", new LscpNode("ALL"), true);
138 remove.setChildren(nodes);
139
140 // SET command
141 nodes = new LscpNode[9];
142 nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL_PARAMETER");
143 nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE_PARAMETER");
144 LscpNode setChn = new LscpNode("CHANNEL");
145 nodes[2] = setChn;
146 nodes[3] = new LscpNode("ECHO");
147 LscpNode fxSend = new LscpNode("FX_SEND");
148 nodes[4] = fxSend;
149 nodes[5] = new LscpNode("MIDI_INPUT_DEVICE_PARAMETER");
150 nodes[6] = new LscpNode("MIDI_INPUT_PORT_PARAMETER");
151 nodes[7] = new LscpNode("MIDI_INSTRUMENT_MAP", new LscpNode("NAME"));
152 nodes[8] = new LscpNode("VOLUME");
153 set.setChildren(nodes);
154
155 // SET CHANNEL command
156 nodes = new LscpNode[12];
157 nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL");
158 nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE");
159 nodes[2] = new LscpNode("AUDIO_OUTPUT_TYPE");
160 nodes[3] = new LscpNode("MIDI_INPUT");
161 nodes[4] = new LscpNode("MIDI_INPUT_CHANNEL");
162 nodes[5] = new LscpNode("MIDI_INPUT_DEVICE");
163 nodes[6] = new LscpNode("MIDI_INPUT_PORT");
164 nodes[7] = new LscpNode("MIDI_INPUT_TYPE");
165 nodes[8] = new LscpNode("MIDI_INSTRUMENT_MAP");
166 nodes[9] = new LscpNode("MUTE");
167 nodes[10] = new LscpNode("SOLO");
168 nodes[11] = new LscpNode("VOLUME");
169 setChn.setChildren(nodes);
170
171 // SET FX_SEND command
172 nodes = new LscpNode[4];
173 nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL");
174 nodes[1] = new LscpNode("LEVEL");
175 nodes[2] = new LscpNode("MIDI_CONTROLLER");
176 nodes[3] = new LscpNode("NAME");
177 fxSend.setChildren(nodes);
178
179 // SUBSCRIBE command
180 nodes = new LscpNode[18];
181 nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE_COUNT", true, false);
182 nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE_INFO", true, false);
183 nodes[2] = new LscpNode("BUFFER_FILL", true, false);
184 nodes[3] = new LscpNode("CHANNEL_COUNT", true, false);
185 nodes[4] = new LscpNode("CHANNEL_INFO", true, false);
186 nodes[5] = new LscpNode("FX_SEND_COUNT", true, false);
187 nodes[6] = new LscpNode("FX_SEND_INFO", true, false);
188 nodes[7] = new LscpNode("GLOBAL_INFO", true, false);
189 nodes[8] = new LscpNode("MIDI_INPUT_DEVICE_COUNT", true, false);
190 nodes[9] = new LscpNode("MIDI_INPUT_DEVICE_INFO", true, false);
191 nodes[10] = new LscpNode("MIDI_INSTRUMENT_COUNT", true, false);
192 nodes[11] = new LscpNode("MIDI_INSTRUMENT_INFO", true, false);
193 nodes[12] = new LscpNode("MIDI_INSTRUMENT_MAP_COUNT", true, false);
194 nodes[13] = new LscpNode("MIDI_INSTRUMENT_MAP_INFO", true, false);
195 nodes[14] = new LscpNode("MISCELLANEOUS", true, false);
196 nodes[15] = new LscpNode("STREAM_COUNT", true, false);
197 nodes[16] = new LscpNode("TOTAL_VOICE_COUNT", true, false);
198 nodes[17] = new LscpNode("VOICE_COUNT", true, false);
199 subscribe.setChildren(nodes);
200
201 // UNSUBSCRIBE command
202 nodes = new LscpNode[18];
203 nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE_COUNT", true, false);
204 nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE_INFO", true, false);
205 nodes[2] = new LscpNode("BUFFER_FILL", true, false);
206 nodes[3] = new LscpNode("CHANNEL_COUNT", true, false);
207 nodes[4] = new LscpNode("CHANNEL_INFO", true, false);
208 nodes[5] = new LscpNode("FX_SEND_COUNT", true, false);
209 nodes[6] = new LscpNode("FX_SEND_INFO", true, false);
210 nodes[7] = new LscpNode("GLOBAL_INFO", true, false);
211 nodes[8] = new LscpNode("MIDI_INPUT_DEVICE_COUNT", true, false);
212 nodes[9] = new LscpNode("MIDI_INPUT_DEVICE_INFO", true, false);
213 nodes[10] = new LscpNode("MIDI_INSTRUMENT_COUNT", true, false);
214 nodes[11] = new LscpNode("MIDI_INSTRUMENT_INFO", true, false);
215 nodes[12] = new LscpNode("MIDI_INSTRUMENT_MAP_COUNT", true, false);
216 nodes[13] = new LscpNode("MIDI_INSTRUMENT_MAP_INFO", true, false);
217 nodes[14] = new LscpNode("MISCELLANEOUS", true, false);
218 nodes[15] = new LscpNode("STREAM_COUNT", true, false);
219 nodes[16] = new LscpNode("TOTAL_VOICE_COUNT", true, false);
220 nodes[17] = new LscpNode("VOICE_COUNT", true, false);
221 unsubscribe.setChildren(nodes);
222 }
223
224 /** Forbits the instantiation of this class. */
225 private
226 LscpTree() { }
227
228 /**
229 * Gets the root node of the tree.
230 */
231 public static LscpNode
232 getRoot() { return rootNode; }
233 }

  ViewVC Help
Powered by ViewVC