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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 912 by iliev, Mon Aug 7 18:34:40 2006 UTC revision 1204 by iliev, Thu May 24 21:43:45 2007 UTC
# Line 1  Line 1 
1  /*  /*
2   *   JSampler - a java front-end for LinuxSampler   *   JSampler - a java front-end for LinuxSampler
3   *   *
4   *   Copyright (C) 2005, 2006 Grigor Kirilov Iliev   *   Copyright (C) 2005-2007 Grigor Iliev <grigor@grigoriliev.com>
5   *   *
6   *   This file is part of JSampler.   *   This file is part of JSampler.
7   *   *
# Line 23  Line 23 
23  package org.jsampler;  package org.jsampler;
24    
25  /**  /**
26   *   * Provides the LSCP grammar represented in a tree structure.
27   * @author Grigor Iliev   * @author Grigor Iliev
28   */   */
29  public class LscpTree {  public class LscpTree {
# Line 31  public class LscpTree { Line 31  public class LscpTree {
31    
32          static {          static {
33                  LscpNode add = new LscpNode("ADD");                  LscpNode add = new LscpNode("ADD");
34                    LscpNode clear = new LscpNode("CLEAR", new LscpNode("MIDI_INSTRUMENTS", true, false));
35                    LscpNode copy = new LscpNode("COPY");
36                  LscpNode create = new LscpNode("CREATE");                  LscpNode create = new LscpNode("CREATE");
37                  LscpNode destroy = new LscpNode("DESTROY");                  LscpNode destroy = new LscpNode("DESTROY");
38                    LscpNode find = new LscpNode("FIND");
39                  LscpNode get = new LscpNode("GET");                  LscpNode get = new LscpNode("GET");
40                  LscpNode list = new LscpNode("LIST");                  LscpNode list = new LscpNode("LIST");
41                  LscpNode load = new LscpNode("LOAD");                  LscpNode load = new LscpNode("LOAD");
42                    LscpNode map = new LscpNode("MAP", new LscpNode("MIDI_INSTRUMENT", true));
43                    LscpNode move = new LscpNode("MOVE");
44                  LscpNode quit = new LscpNode("QUIT", true, false);                  LscpNode quit = new LscpNode("QUIT", true, false);
45                  LscpNode remove = new LscpNode("REMOVE", new LscpNode("CHANNEL"));                  LscpNode remove = new LscpNode("REMOVE");
46                  LscpNode reset = new LscpNode("RESET", new LscpNode("CHANNEL"), true, false);                  LscpNode reset = new LscpNode("RESET", new LscpNode("CHANNEL"), true, false);
47                  LscpNode set = new LscpNode("SET");                  LscpNode set = new LscpNode("SET");
48                  LscpNode subscribe = new LscpNode("SUBSCRIBE");                  LscpNode subscribe = new LscpNode("SUBSCRIBE");
49                    LscpNode unmap = new LscpNode("UNMAP", new LscpNode("MIDI_INSTRUMENT"), true);
50                  LscpNode unsubscribe = new LscpNode("UNSUBSCRIBE");                  LscpNode unsubscribe = new LscpNode("UNSUBSCRIBE");
51                                    
52                  LscpNode[] cmds = {                  LscpNode[] cmds = {
53                          add, create, destroy, get, list, load, quit,                          add, clear, copy, create, destroy, find, get, list, load, map, move, quit,
54                          remove, reset, set, subscribe, unsubscribe                          remove, reset, set, subscribe, unmap, unsubscribe
55                  };                  };
56                                    
57                  rootNode = new LscpNode("", cmds);                  rootNode = new LscpNode("", cmds);
58                                    
59                  // ADD command                  // ADD command
60                  LscpNode[] nodes = { new LscpNode("CHANNEL", true, false) };                  LscpNode[] nodes = new LscpNode[4];
61                    nodes[0] = new LscpNode("CHANNEL", true, false);
62                    nodes[1] = new LscpNode("DB_INSTRUMENT_DIRECTORY");
63                    LscpNode addDbInstr = new LscpNode("DB_INSTRUMENTS", true);
64                    nodes[2] = addDbInstr;
65                    nodes[3] = new LscpNode("MIDI_INSTRUMENT_MAP");
66                  add.setChildren(nodes);                  add.setChildren(nodes);
67                                    
68                  // CREATE command                  // ADD DB_INSTRUMENTS command
69                    nodes = new LscpNode[4];
70                    nodes[0] = new LscpNode("FLAT", true);
71                    LscpNode addDbInstrnNonModal = new LscpNode("NON_MODAL", true);
72                    nodes[1] = addDbInstrnNonModal;
73                    nodes[2] = new LscpNode("NON_RECURSIVE", true);
74                    nodes[3] = new LscpNode("RECURSIVE", true);
75                    addDbInstr.setChildren(nodes);
76                    
77                    // ADD DB_INSTRUMENTS NON_MODAL command
78                    nodes = new LscpNode[3];
79                    nodes[0] = new LscpNode("FLAT", true);
80                    nodes[1] = new LscpNode("NON_RECURSIVE", true);
81                    nodes[2] = new LscpNode("RECURSIVE", true);
82                    addDbInstrnNonModal.setChildren(nodes);
83                    
84                    // COPY command
85                  nodes = new LscpNode[2];                  nodes = new LscpNode[2];
86                    nodes[0] = new LscpNode("DB_INSTRUMENT", true);
87                    nodes[1] = new LscpNode("DB_INSTRUMENT_DIRECTORY", true);
88                    copy.setChildren(nodes);
89                    
90                    // CREATE command
91                    nodes = new LscpNode[3];
92                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE");                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE");
93                  nodes[1] = new LscpNode("MIDI_INPUT_DEVICE");                  nodes[1] = new LscpNode("FX_SEND");
94                    nodes[2] = new LscpNode("MIDI_INPUT_DEVICE");
95                  create.setChildren(nodes);                  create.setChildren(nodes);
96                                    
97                  // DESTROY command                  // DESTROY command
98                  nodes = new LscpNode[2];                  nodes = new LscpNode[3];
99                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE");                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE");
100                  nodes[1] = new LscpNode("MIDI_INPUT_DEVICE");                  nodes[1] = new LscpNode("FX_SEND");
101                    nodes[2] = new LscpNode("MIDI_INPUT_DEVICE");
102                  destroy.setChildren(nodes);                  destroy.setChildren(nodes);
103                                    
104                    // FIND command
105                    nodes = new LscpNode[2];
106                    LscpNode n = new LscpNode("NON_RECURSIVE", true);
107                    nodes[0] = new LscpNode("DB_INSTRUMENT_DIRECTORIES", n, true);
108                    n = new LscpNode("NON_RECURSIVE", true);
109                    nodes[1] = new LscpNode("DB_INSTRUMENTS", n, true);
110                    find.setChildren(nodes);
111                    
112                  // GET command                  // GET command
113                  nodes = new LscpNode[19];                  nodes = new LscpNode[30];
114                  nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL", new LscpNode("INFO"));                  nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL", new LscpNode("INFO"));
115                  nodes[1] = new LscpNode("AUDIO_OUTPUT_CHANNEL_PARAMETER", new LscpNode("INFO"));                  nodes[1] = new LscpNode("AUDIO_OUTPUT_CHANNEL_PARAMETER", new LscpNode("INFO"));
116                  nodes[2] = new LscpNode("AUDIO_OUTPUT_DEVICE", new LscpNode("INFO"));                  nodes[2] = new LscpNode("AUDIO_OUTPUT_DEVICE", new LscpNode("INFO"));
# Line 80  public class LscpTree { Line 123  public class LscpTree {
123                  LscpNode getChn = new LscpNode("CHANNEL");                  LscpNode getChn = new LscpNode("CHANNEL");
124                  nodes[9] = getChn;                  nodes[9] = getChn;
125                  nodes[10] = new LscpNode("CHANNELS", true, false);                  nodes[10] = new LscpNode("CHANNELS", true, false);
126                  nodes[11] = new LscpNode("ENGINE", new LscpNode("INFO"));                  nodes[11] = new LscpNode("DB_INSTRUMENT", new LscpNode("INFO", true));
127                  nodes[12] = new LscpNode("MIDI_INPUT_DEVICE", new LscpNode("INFO"));                  nodes[12] = new LscpNode("DB_INSTRUMENT_DIRECTORIES", true);
128                  nodes[13] = new LscpNode("MIDI_INPUT_DEVICES", true, false);                  nodes[13] = new LscpNode("DB_INSTRUMENT_DIRECTORY", new LscpNode("INFO", true));
129                  nodes[14] = new LscpNode("MIDI_INPUT_DRIVER", new LscpNode("INFO"));                  nodes[14] = new LscpNode("DB_INSTRUMENTS", true);
130                  nodes[15] = new LscpNode("MIDI_INPUT_DRIVER_PARAMETER", new LscpNode("INFO"));                  nodes[15] = new LscpNode("ENGINE", new LscpNode("INFO"));
131                  nodes[16] = new LscpNode("MIDI_INPUT_PORT", new LscpNode("INFO"));                  nodes[16] = new LscpNode("FX_SEND", new LscpNode("INFO"));
132                  nodes[17] = new LscpNode("MIDI_INPUT_PORT_PARAMETER", new LscpNode("INFO"));                  nodes[17] = new LscpNode("FX_SENDS");
133                  nodes[18] = new LscpNode("SERVER", new LscpNode("INFO", true, false));                  nodes[18] = new LscpNode("MIDI_INPUT_DEVICE", new LscpNode("INFO"));
134                    nodes[19] = new LscpNode("MIDI_INPUT_DEVICES", true, false);
135                    nodes[20] = new LscpNode("MIDI_INPUT_DRIVER", new LscpNode("INFO"));
136                    nodes[21] = new LscpNode("MIDI_INPUT_DRIVER_PARAMETER", new LscpNode("INFO"));
137                    nodes[22] = new LscpNode("MIDI_INPUT_PORT", new LscpNode("INFO"));
138                    nodes[23] = new LscpNode("MIDI_INPUT_PORT_PARAMETER", new LscpNode("INFO"));
139                    nodes[24] = new LscpNode("MIDI_INSTRUMENT", new LscpNode("INFO"));
140                    nodes[25] = new LscpNode("MIDI_INSTRUMENT_MAP", new LscpNode("INFO"));
141                    nodes[26] = new LscpNode("MIDI_INSTRUMENT_MAPS", true, false);
142                    nodes[27] = new LscpNode("MIDI_INSTRUMENTS", new LscpNode("ALL", true, false), true);
143                    nodes[28] = new LscpNode("SERVER", new LscpNode("INFO", true, false));
144                    nodes[29] = new LscpNode("VOLUME", true, false);
145                  get.setChildren(nodes);                  get.setChildren(nodes);
146                                    
147                  // GET CHANNEL command                  // GET CHANNEL command
# Line 99  public class LscpTree { Line 153  public class LscpTree {
153                  getChn.setChildren(nodes);                  getChn.setChildren(nodes);
154                                    
155                  // LIST command                  // LIST command
156                  nodes = new LscpNode[6];                  nodes = new LscpNode[11];
157                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICES", true, false);                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICES", true, false);
158                  nodes[1] = new LscpNode("AVAILABLE_AUDIO_OUTPUT_DRIVERS", true, false);                  nodes[1] = new LscpNode("AVAILABLE_AUDIO_OUTPUT_DRIVERS", true, false);
159                  nodes[2] = new LscpNode("AVAILABLE_ENGINES", true, false);                  nodes[2] = new LscpNode("AVAILABLE_ENGINES", true, false);
160                  nodes[3] = new LscpNode("AVAILABLE_MIDI_INPUT_DRIVERS", true, false);                  nodes[3] = new LscpNode("AVAILABLE_MIDI_INPUT_DRIVERS", true, false);
161                  nodes[4] = new LscpNode("CHANNELS", true, false);                  nodes[4] = new LscpNode("CHANNELS", true, false);
162                  nodes[5] = new LscpNode("MIDI_INPUT_DEVICES", true, false);                  nodes[5] = new LscpNode("DB_INSTRUMENT_DIRECTORIES", true);
163                    nodes[6] = new LscpNode("DB_INSTRUMENTS", true);
164                    nodes[7] = new LscpNode("FX_SENDS");
165                    nodes[8] = new LscpNode("MIDI_INPUT_DEVICES", true, false);
166                    nodes[9] = new LscpNode("MIDI_INSTRUMENT_MAPS", true, false);
167                    nodes[10] = new LscpNode("MIDI_INSTRUMENTS", true, false);
168                  list.setChildren(nodes);                  list.setChildren(nodes);
169                                    
170                  // LOAD command                  // LOAD command
# Line 114  public class LscpTree { Line 173  public class LscpTree {
173                  nodes[1] = new LscpNode("INSTRUMENT", new LscpNode("NON_MODAL"), true);                  nodes[1] = new LscpNode("INSTRUMENT", new LscpNode("NON_MODAL"), true);
174                  load.setChildren(nodes);                  load.setChildren(nodes);
175                                    
176                    // MOVE command
177                    nodes = new LscpNode[2];
178                    nodes[0] = new LscpNode("DB_INSTRUMENT", true);
179                    nodes[1] = new LscpNode("DB_INSTRUMENT_DIRECTORY", true);
180                    move.setChildren(nodes);
181                    
182                    // REMOVE command
183                    nodes = new LscpNode[4];
184                    nodes[0] = new LscpNode("CHANNEL");
185                    nodes[1] = new LscpNode("DB_INSTRUMENT", true);
186                    nodes[2] = new LscpNode("DB_INSTRUMENT_DIRECTORY", new LscpNode("FORCE", true), true);
187                    nodes[3] = new LscpNode("MIDI_INSTRUMENT_MAP", new LscpNode("ALL", true, false), true);
188                    remove.setChildren(nodes);
189                    
190                  // SET command                  // SET command
191                  nodes = new LscpNode[6];                  nodes = new LscpNode[11];
192                  nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL_PARAMETER");                  nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL_PARAMETER");
193                  nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE_PARAMETER");                  nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE_PARAMETER");
194                  LscpNode setChn = new LscpNode("CHANNEL");                  LscpNode setChn = new LscpNode("CHANNEL");
195                  nodes[2] = setChn;                  nodes[2] = setChn;
196                  nodes[3] = new LscpNode("ECHO");                  LscpNode setDbInstr = new LscpNode("DB_INSTRUMENT");
197                  nodes[4] = new LscpNode("MIDI_INPUT_DEVICE_PARAMETER");                  nodes[3] = setDbInstr;
198                  nodes[5] = new LscpNode("MIDI_INPUT_PORT_PARAMETER");                  LscpNode setDbDir = new LscpNode("DB_INSTRUMENT_DIRECTORY");
199                    nodes[4] = setDbDir;
200                    nodes[5] = new LscpNode("ECHO");
201                    LscpNode setFxSend = new LscpNode("FX_SEND");
202                    nodes[6] = setFxSend;
203                    nodes[7] = new LscpNode("MIDI_INPUT_DEVICE_PARAMETER");
204                    nodes[8] = new LscpNode("MIDI_INPUT_PORT_PARAMETER");
205                    nodes[9] = new LscpNode("MIDI_INSTRUMENT_MAP", new LscpNode("NAME"));
206                    nodes[10] = new LscpNode("VOLUME");
207                  set.setChildren(nodes);                  set.setChildren(nodes);
208                                    
209                  // SET CHANNEL command                  // SET CHANNEL command
210                  nodes = new LscpNode[11];                  nodes = new LscpNode[12];
211                  nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL");                  nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL");
212                  nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE");                  nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE");
213                  nodes[2] = new LscpNode("AUDIO_OUTPUT_TYPE");                  nodes[2] = new LscpNode("AUDIO_OUTPUT_TYPE");
# Line 135  public class LscpTree { Line 216  public class LscpTree {
216                  nodes[5] = new LscpNode("MIDI_INPUT_DEVICE");                  nodes[5] = new LscpNode("MIDI_INPUT_DEVICE");
217                  nodes[6] = new LscpNode("MIDI_INPUT_PORT");                  nodes[6] = new LscpNode("MIDI_INPUT_PORT");
218                  nodes[7] = new LscpNode("MIDI_INPUT_TYPE");                  nodes[7] = new LscpNode("MIDI_INPUT_TYPE");
219                  nodes[8] = new LscpNode("MUTE");                  nodes[8] = new LscpNode("MIDI_INSTRUMENT_MAP");
220                  nodes[9] = new LscpNode("SOLO");                  nodes[9] = new LscpNode("MUTE");
221                  nodes[10] = new LscpNode("VOLUME");                  nodes[10] = new LscpNode("SOLO");
222                    nodes[11] = new LscpNode("VOLUME");
223                  setChn.setChildren(nodes);                  setChn.setChildren(nodes);
224                                    
225                    // SET DB_INSTRUMENT
226                    nodes = new LscpNode[2];
227                    nodes[0] = new LscpNode("NAME");
228                    nodes[1] = new LscpNode("DESCRIPTION");
229                    setDbInstr.setChildren(nodes);
230                    
231                    // SET DB_INSTRUMENT_DIRECTORY
232                    nodes = new LscpNode[2];
233                    nodes[0] = new LscpNode("NAME");
234                    nodes[1] = new LscpNode("DESCRIPTION");
235                    setDbDir.setChildren(nodes);
236                    
237                    // SET FX_SEND command
238                    nodes = new LscpNode[4];
239                    nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL");
240                    nodes[1] = new LscpNode("LEVEL");
241                    nodes[2] = new LscpNode("MIDI_CONTROLLER");
242                    nodes[3] = new LscpNode("NAME");
243                    setFxSend.setChildren(nodes);
244                    
245                  // SUBSCRIBE command                  // SUBSCRIBE command
246                  nodes = new LscpNode[6];                  nodes = new LscpNode[23];
247                  nodes[0] = new LscpNode("BUFFER_FILL", true, false);                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE_COUNT", true, false);
248                  nodes[1] = new LscpNode("CHANNEL_COUNT", true, false);                  nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE_INFO", true, false);
249                  nodes[2] = new LscpNode("CHANNEL_INFO", true, false);                  nodes[2] = new LscpNode("BUFFER_FILL", true, false);
250                  nodes[3] = new LscpNode("MISCELLANEOUS", true, false);                  nodes[3] = new LscpNode("CHANNEL_COUNT", true, false);
251                  nodes[4] = new LscpNode("STREAM_COUNT", true, false);                  nodes[4] = new LscpNode("CHANNEL_INFO", true, false);
252                  nodes[5] = new LscpNode("VOICE_COUNT", true, false);                  nodes[5] = new LscpNode("FX_SEND_COUNT", true, false);
253                    nodes[6] = new LscpNode("FX_SEND_INFO", true, false);
254                    nodes[7] = new LscpNode("GLOBAL_INFO", true, false);
255                    nodes[8] = new LscpNode("MIDI_INPUT_DEVICE_COUNT", true, false);
256                    nodes[9] = new LscpNode("MIDI_INPUT_DEVICE_INFO", true, false);
257                    nodes[10] = new LscpNode("MIDI_INSTRUMENT_COUNT", true, false);
258                    nodes[11] = new LscpNode("MIDI_INSTRUMENT_INFO", true, false);
259                    nodes[12] = new LscpNode("MIDI_INSTRUMENT_MAP_COUNT", true, false);
260                    nodes[13] = new LscpNode("MIDI_INSTRUMENT_MAP_INFO", true, false);
261                    nodes[14] = new LscpNode("DB_INSTRUMENT_DIRECTORY_COUNT", true, false);
262                    nodes[15] = new LscpNode("DB_INSTRUMENT_DIRECTORY_INFO", true, false);
263                    nodes[16] = new LscpNode("DB_INSTRUMENT_COUNT", true, false);
264                    nodes[17] = new LscpNode("DB_INSTRUMENT_INFO", true, false);
265                    nodes[18] = new LscpNode("DB_INSTRUMENTS_JOB_INFO", true, false);
266                    nodes[19] = new LscpNode("MISCELLANEOUS", true, false);
267                    nodes[20] = new LscpNode("STREAM_COUNT", true, false);
268                    nodes[21] = new LscpNode("TOTAL_VOICE_COUNT", true, false);
269                    nodes[22] = new LscpNode("VOICE_COUNT", true, false);
270                  subscribe.setChildren(nodes);                  subscribe.setChildren(nodes);
271                                    
272                  // UNSUBSCRIBE command                  // UNSUBSCRIBE command
273                  nodes = new LscpNode[6];                  nodes = new LscpNode[23];
274                  nodes[0] = new LscpNode("BUFFER_FILL", true, false);                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE_COUNT", true, false);
275                  nodes[1] = new LscpNode("CHANNEL_COUNT", true, false);                  nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE_INFO", true, false);
276                  nodes[2] = new LscpNode("CHANNEL_INFO", true, false);                  nodes[2] = new LscpNode("BUFFER_FILL", true, false);
277                  nodes[3] = new LscpNode("MISCELLANEOUS", true, false);                  nodes[3] = new LscpNode("CHANNEL_COUNT", true, false);
278                  nodes[4] = new LscpNode("STREAM_COUNT", true, false);                  nodes[4] = new LscpNode("CHANNEL_INFO", true, false);
279                  nodes[5] = new LscpNode("VOICE_COUNT", true, false);                  nodes[5] = new LscpNode("FX_SEND_COUNT", true, false);
280                    nodes[6] = new LscpNode("FX_SEND_INFO", true, false);
281                    nodes[7] = new LscpNode("GLOBAL_INFO", true, false);
282                    nodes[8] = new LscpNode("MIDI_INPUT_DEVICE_COUNT", true, false);
283                    nodes[9] = new LscpNode("MIDI_INPUT_DEVICE_INFO", true, false);
284                    nodes[10] = new LscpNode("MIDI_INSTRUMENT_COUNT", true, false);
285                    nodes[11] = new LscpNode("MIDI_INSTRUMENT_INFO", true, false);
286                    nodes[12] = new LscpNode("MIDI_INSTRUMENT_MAP_COUNT", true, false);
287                    nodes[13] = new LscpNode("MIDI_INSTRUMENT_MAP_INFO", true, false);
288                    nodes[14] = new LscpNode("DB_INSTRUMENT_DIRECTORY_COUNT", true, false);
289                    nodes[15] = new LscpNode("DB_INSTRUMENT_DIRECTORY_INFO", true, false);
290                    nodes[16] = new LscpNode("DB_INSTRUMENT_COUNT", true, false);
291                    nodes[17] = new LscpNode("DB_INSTRUMENT_INFO", true, false);
292                    nodes[18] = new LscpNode("DB_INSTRUMENTS_JOB_INFO", true, false);
293                    nodes[19] = new LscpNode("MISCELLANEOUS", true, false);
294                    nodes[20] = new LscpNode("STREAM_COUNT", true, false);
295                    nodes[21] = new LscpNode("TOTAL_VOICE_COUNT", true, false);
296                    nodes[22] = new LscpNode("VOICE_COUNT", true, false);
297                  unsubscribe.setChildren(nodes);                  unsubscribe.setChildren(nodes);
298          }          }
299                    

Legend:
Removed from v.912  
changed lines
  Added in v.1204

  ViewVC Help
Powered by ViewVC