/[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 1142 by iliev, Mon Aug 7 18:34:40 2006 UTC revision 1143 by iliev, Mon Apr 2 21:18:31 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 create = new LscpNode("CREATE");                  LscpNode create = new LscpNode("CREATE");
36                  LscpNode destroy = new LscpNode("DESTROY");                  LscpNode destroy = new LscpNode("DESTROY");
37                  LscpNode get = new LscpNode("GET");                  LscpNode get = new LscpNode("GET");
38                  LscpNode list = new LscpNode("LIST");                  LscpNode list = new LscpNode("LIST");
39                  LscpNode load = new LscpNode("LOAD");                  LscpNode load = new LscpNode("LOAD");
40                    LscpNode map = new LscpNode("MAP", new LscpNode("MIDI_INSTRUMENT", true));
41                  LscpNode quit = new LscpNode("QUIT", true, false);                  LscpNode quit = new LscpNode("QUIT", true, false);
42                  LscpNode remove = new LscpNode("REMOVE", new LscpNode("CHANNEL"));                  LscpNode remove = new LscpNode("REMOVE");
43                  LscpNode reset = new LscpNode("RESET", new LscpNode("CHANNEL"), true, false);                  LscpNode reset = new LscpNode("RESET", new LscpNode("CHANNEL"), true, false);
44                  LscpNode set = new LscpNode("SET");                  LscpNode set = new LscpNode("SET");
45                  LscpNode subscribe = new LscpNode("SUBSCRIBE");                  LscpNode subscribe = new LscpNode("SUBSCRIBE");
46                    LscpNode unmap = new LscpNode("UNMAP", new LscpNode("MIDI_INSTRUMENT"), true);
47                  LscpNode unsubscribe = new LscpNode("UNSUBSCRIBE");                  LscpNode unsubscribe = new LscpNode("UNSUBSCRIBE");
48                                    
49                  LscpNode[] cmds = {                  LscpNode[] cmds = {
50                          add, create, destroy, get, list, load, quit,                          add, clear, create, destroy, get, list, load, map, quit,
51                          remove, reset, set, subscribe, unsubscribe                          remove, reset, set, subscribe, unmap, unsubscribe
52                  };                  };
53                                    
54                  rootNode = new LscpNode("", cmds);                  rootNode = new LscpNode("", cmds);
55                                    
56                  // ADD command                  // ADD command
57                  LscpNode[] nodes = { new LscpNode("CHANNEL", true, false) };                  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);                  add.setChildren(nodes);
61                                    
62                  // CREATE command                  // CREATE command
63                  nodes = new LscpNode[2];                  nodes = new LscpNode[3];
64                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE");                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE");
65                  nodes[1] = new LscpNode("MIDI_INPUT_DEVICE");                  nodes[1] = new LscpNode("FX_SEND");
66                    nodes[2] = new LscpNode("MIDI_INPUT_DEVICE");
67                  create.setChildren(nodes);                  create.setChildren(nodes);
68                                    
69                  // DESTROY command                  // DESTROY command
70                  nodes = new LscpNode[2];                  nodes = new LscpNode[3];
71                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE");                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE");
72                  nodes[1] = new LscpNode("MIDI_INPUT_DEVICE");                  nodes[1] = new LscpNode("FX_SEND");
73                    nodes[2] = new LscpNode("MIDI_INPUT_DEVICE");
74                  destroy.setChildren(nodes);                  destroy.setChildren(nodes);
75                                    
76                  // GET command                  // GET command
77                  nodes = new LscpNode[19];                  nodes = new LscpNode[26];
78                  nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL", new LscpNode("INFO"));                  nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL", new LscpNode("INFO"));
79                  nodes[1] = new LscpNode("AUDIO_OUTPUT_CHANNEL_PARAMETER", new LscpNode("INFO"));                  nodes[1] = new LscpNode("AUDIO_OUTPUT_CHANNEL_PARAMETER", new LscpNode("INFO"));
80                  nodes[2] = new LscpNode("AUDIO_OUTPUT_DEVICE", new LscpNode("INFO"));                  nodes[2] = new LscpNode("AUDIO_OUTPUT_DEVICE", new LscpNode("INFO"));
# Line 81  public class LscpTree { Line 88  public class LscpTree {
88                  nodes[9] = getChn;                  nodes[9] = getChn;
89                  nodes[10] = new LscpNode("CHANNELS", true, false);                  nodes[10] = new LscpNode("CHANNELS", true, false);
90                  nodes[11] = new LscpNode("ENGINE", new LscpNode("INFO"));                  nodes[11] = new LscpNode("ENGINE", new LscpNode("INFO"));
91                  nodes[12] = new LscpNode("MIDI_INPUT_DEVICE", new LscpNode("INFO"));                  nodes[12] = new LscpNode("FX_SEND", new LscpNode("INFO"));
92                  nodes[13] = new LscpNode("MIDI_INPUT_DEVICES", true, false);                  nodes[13] = new LscpNode("FX_SENDS");
93                  nodes[14] = new LscpNode("MIDI_INPUT_DRIVER", new LscpNode("INFO"));                  nodes[14] = new LscpNode("MIDI_INPUT_DEVICE", new LscpNode("INFO"));
94                  nodes[15] = new LscpNode("MIDI_INPUT_DRIVER_PARAMETER", new LscpNode("INFO"));                  nodes[15] = new LscpNode("MIDI_INPUT_DEVICES", true, false);
95                  nodes[16] = new LscpNode("MIDI_INPUT_PORT", new LscpNode("INFO"));                  nodes[16] = new LscpNode("MIDI_INPUT_DRIVER", new LscpNode("INFO"));
96                  nodes[17] = new LscpNode("MIDI_INPUT_PORT_PARAMETER", new LscpNode("INFO"));                  nodes[17] = new LscpNode("MIDI_INPUT_DRIVER_PARAMETER", new LscpNode("INFO"));
97                  nodes[18] = new LscpNode("SERVER", new LscpNode("INFO", true, false));                  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);                  get.setChildren(nodes);
106                                    
107                  // GET CHANNEL command                  // GET CHANNEL command
# Line 99  public class LscpTree { Line 113  public class LscpTree {
113                  getChn.setChildren(nodes);                  getChn.setChildren(nodes);
114                                    
115                  // LIST command                  // LIST command
116                  nodes = new LscpNode[6];                  nodes = new LscpNode[9];
117                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICES", true, false);                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICES", true, false);
118                  nodes[1] = new LscpNode("AVAILABLE_AUDIO_OUTPUT_DRIVERS", true, false);                  nodes[1] = new LscpNode("AVAILABLE_AUDIO_OUTPUT_DRIVERS", true, false);
119                  nodes[2] = new LscpNode("AVAILABLE_ENGINES", true, false);                  nodes[2] = new LscpNode("AVAILABLE_ENGINES", true, false);
120                  nodes[3] = new LscpNode("AVAILABLE_MIDI_INPUT_DRIVERS", true, false);                  nodes[3] = new LscpNode("AVAILABLE_MIDI_INPUT_DRIVERS", true, false);
121                  nodes[4] = new LscpNode("CHANNELS", true, false);                  nodes[4] = new LscpNode("CHANNELS", true, false);
122                  nodes[5] = new LscpNode("MIDI_INPUT_DEVICES", true, false);                  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);                  list.setChildren(nodes);
127                                    
128                  // LOAD command                  // LOAD command
# Line 114  public class LscpTree { Line 131  public class LscpTree {
131                  nodes[1] = new LscpNode("INSTRUMENT", new LscpNode("NON_MODAL"), true);                  nodes[1] = new LscpNode("INSTRUMENT", new LscpNode("NON_MODAL"), true);
132                  load.setChildren(nodes);                  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                  // SET command
141                  nodes = new LscpNode[6];                  nodes = new LscpNode[9];
142                  nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL_PARAMETER");                  nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL_PARAMETER");
143                  nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE_PARAMETER");                  nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE_PARAMETER");
144                  LscpNode setChn = new LscpNode("CHANNEL");                  LscpNode setChn = new LscpNode("CHANNEL");
145                  nodes[2] = setChn;                  nodes[2] = setChn;
146                  nodes[3] = new LscpNode("ECHO");                  nodes[3] = new LscpNode("ECHO");
147                  nodes[4] = new LscpNode("MIDI_INPUT_DEVICE_PARAMETER");                  LscpNode fxSend = new LscpNode("FX_SEND");
148                  nodes[5] = new LscpNode("MIDI_INPUT_PORT_PARAMETER");                  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);                  set.setChildren(nodes);
154                                    
155                  // SET CHANNEL command                  // SET CHANNEL command
156                  nodes = new LscpNode[11];                  nodes = new LscpNode[12];
157                  nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL");                  nodes[0] = new LscpNode("AUDIO_OUTPUT_CHANNEL");
158                  nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE");                  nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE");
159                  nodes[2] = new LscpNode("AUDIO_OUTPUT_TYPE");                  nodes[2] = new LscpNode("AUDIO_OUTPUT_TYPE");
# Line 135  public class LscpTree { Line 162  public class LscpTree {
162                  nodes[5] = new LscpNode("MIDI_INPUT_DEVICE");                  nodes[5] = new LscpNode("MIDI_INPUT_DEVICE");
163                  nodes[6] = new LscpNode("MIDI_INPUT_PORT");                  nodes[6] = new LscpNode("MIDI_INPUT_PORT");
164                  nodes[7] = new LscpNode("MIDI_INPUT_TYPE");                  nodes[7] = new LscpNode("MIDI_INPUT_TYPE");
165                  nodes[8] = new LscpNode("MUTE");                  nodes[8] = new LscpNode("MIDI_INSTRUMENT_MAP");
166                  nodes[9] = new LscpNode("SOLO");                  nodes[9] = new LscpNode("MUTE");
167                  nodes[10] = new LscpNode("VOLUME");                  nodes[10] = new LscpNode("SOLO");
168                    nodes[11] = new LscpNode("VOLUME");
169                  setChn.setChildren(nodes);                  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                  // SUBSCRIBE command
180                  nodes = new LscpNode[6];                  nodes = new LscpNode[18];
181                  nodes[0] = new LscpNode("BUFFER_FILL", true, false);                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE_COUNT", true, false);
182                  nodes[1] = new LscpNode("CHANNEL_COUNT", true, false);                  nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE_INFO", true, false);
183                  nodes[2] = new LscpNode("CHANNEL_INFO", true, false);                  nodes[2] = new LscpNode("BUFFER_FILL", true, false);
184                  nodes[3] = new LscpNode("MISCELLANEOUS", true, false);                  nodes[3] = new LscpNode("CHANNEL_COUNT", true, false);
185                  nodes[4] = new LscpNode("STREAM_COUNT", true, false);                  nodes[4] = new LscpNode("CHANNEL_INFO", true, false);
186                  nodes[5] = new LscpNode("VOICE_COUNT", true, false);                  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);                  subscribe.setChildren(nodes);
200                                    
201                  // UNSUBSCRIBE command                  // UNSUBSCRIBE command
202                  nodes = new LscpNode[6];                  nodes = new LscpNode[18];
203                  nodes[0] = new LscpNode("BUFFER_FILL", true, false);                  nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE_COUNT", true, false);
204                  nodes[1] = new LscpNode("CHANNEL_COUNT", true, false);                  nodes[1] = new LscpNode("AUDIO_OUTPUT_DEVICE_INFO", true, false);
205                  nodes[2] = new LscpNode("CHANNEL_INFO", true, false);                  nodes[2] = new LscpNode("BUFFER_FILL", true, false);
206                  nodes[3] = new LscpNode("MISCELLANEOUS", true, false);                  nodes[3] = new LscpNode("CHANNEL_COUNT", true, false);
207                  nodes[4] = new LscpNode("STREAM_COUNT", true, false);                  nodes[4] = new LscpNode("CHANNEL_INFO", true, false);
208                  nodes[5] = new LscpNode("VOICE_COUNT", true, false);                  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);                  unsubscribe.setChildren(nodes);
222          }          }
223                    

Legend:
Removed from v.1142  
changed lines
  Added in v.1143

  ViewVC Help
Powered by ViewVC