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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1143 - (hide 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 iliev 912 /*
2     * JSampler - a java front-end for LinuxSampler
3     *
4 iliev 1143 * Copyright (C) 2005-2007 Grigor Iliev <grigor@grigoriliev.com>
5 iliev 912 *
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 iliev 1143 * Provides the LSCP grammar represented in a tree structure.
27 iliev 912 * @author Grigor Iliev
28     */
29     public class LscpTree {
30     private static LscpNode rootNode;
31    
32     static {
33     LscpNode add = new LscpNode("ADD");
34 iliev 1143 LscpNode clear = new LscpNode("CLEAR", new LscpNode("MIDI_INSTRUMENTS", true, false));
35 iliev 912 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 iliev 1143 LscpNode map = new LscpNode("MAP", new LscpNode("MIDI_INSTRUMENT", true));
41 iliev 912 LscpNode quit = new LscpNode("QUIT", true, false);
42 iliev 1143 LscpNode remove = new LscpNode("REMOVE");
43 iliev 912 LscpNode reset = new LscpNode("RESET", new LscpNode("CHANNEL"), true, false);
44     LscpNode set = new LscpNode("SET");
45     LscpNode subscribe = new LscpNode("SUBSCRIBE");
46 iliev 1143 LscpNode unmap = new LscpNode("UNMAP", new LscpNode("MIDI_INSTRUMENT"), true);
47 iliev 912 LscpNode unsubscribe = new LscpNode("UNSUBSCRIBE");
48    
49     LscpNode[] cmds = {
50 iliev 1143 add, clear, create, destroy, get, list, load, map, quit,
51     remove, reset, set, subscribe, unmap, unsubscribe
52 iliev 912 };
53    
54     rootNode = new LscpNode("", cmds);
55    
56     // ADD command
57 iliev 1143 LscpNode[] nodes = new LscpNode[2];
58     nodes[0] = new LscpNode("CHANNEL", true, false);
59     nodes[1] = new LscpNode("MIDI_INSTRUMENT_MAP");
60 iliev 912 add.setChildren(nodes);
61    
62     // CREATE command
63 iliev 1143 nodes = new LscpNode[3];
64 iliev 912 nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE");
65 iliev 1143 nodes[1] = new LscpNode("FX_SEND");
66     nodes[2] = new LscpNode("MIDI_INPUT_DEVICE");
67 iliev 912 create.setChildren(nodes);
68    
69     // DESTROY command
70 iliev 1143 nodes = new LscpNode[3];
71 iliev 912 nodes[0] = new LscpNode("AUDIO_OUTPUT_DEVICE");
72 iliev 1143 nodes[1] = new LscpNode("FX_SEND");
73     nodes[2] = new LscpNode("MIDI_INPUT_DEVICE");
74 iliev 912 destroy.setChildren(nodes);
75    
76     // GET command
77 iliev 1143 nodes = new LscpNode[26];
78 iliev 912 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 iliev 1143 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 iliev 912 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 iliev 1143 nodes = new LscpNode[9];
117 iliev 912 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 iliev 1143 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 iliev 912 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 iliev 1143 // 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 iliev 912 // SET command
141 iliev 1143 nodes = new LscpNode[9];
142 iliev 912 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 iliev 1143 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 iliev 912 set.setChildren(nodes);
154    
155     // SET CHANNEL command
156 iliev 1143 nodes = new LscpNode[12];
157 iliev 912 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 iliev 1143 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 iliev 912 setChn.setChildren(nodes);
170    
171 iliev 1143 // 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 iliev 912 // SUBSCRIBE command
180 iliev 1143 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 iliev 912 subscribe.setChildren(nodes);
200    
201     // UNSUBSCRIBE command
202 iliev 1143 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 iliev 912 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