39 |
const char *pszResult = NULL; |
const char *pszResult = NULL; |
40 |
char szTemp[256]; |
char szTemp[256]; |
41 |
int i; |
int i; |
42 |
static int iChannel = 0; |
static int iSamplerChannel = 0; |
43 |
|
static int iAudioDevice = 0; |
44 |
|
static int iMidiDevice = 0; |
45 |
|
|
46 |
if (pchBuffer == NULL) { |
if (pchBuffer == NULL) { |
47 |
fprintf(stderr, "server_callback: addr=%s port=%d: ", |
fprintf(stderr, "server_callback: addr=%s port=%d: ", |
110 |
else if (lscp_parser_test(&tok, "CHANNELS")) { |
else if (lscp_parser_test(&tok, "CHANNELS")) { |
111 |
// Current number of sampler channels: |
// Current number of sampler channels: |
112 |
// GET CHANNELS |
// GET CHANNELS |
113 |
sprintf(szTemp, "%d", iChannel); |
sprintf(szTemp, "%d", iSamplerChannel); |
114 |
pszResult = szTemp; |
pszResult = szTemp; |
115 |
} |
} |
116 |
else if (lscp_parser_test(&tok, "AVAILABLE_AUDIO_OUTPUT_DRIVERS")) { |
else if (lscp_parser_test(&tok, "AVAILABLE_AUDIO_OUTPUT_DRIVERS")) { |
194 |
} |
} |
195 |
else ret = LSCP_FAILED; |
else ret = LSCP_FAILED; |
196 |
} |
} |
197 |
|
else if (lscp_parser_test2(&tok, "AUDIO_OUTPUT_DEVICE", "INFO")) { |
198 |
|
// Getting informations about a specific audio output device. |
199 |
|
// GET AUDIO_OUTPUT_DEVICE INFO <audio-device-id> |
200 |
|
if (lscp_parser_nextint(&tok) < iAudioDevice) { |
201 |
|
pszResult = "driver: Alsa\r\n" |
202 |
|
"active: TRUE\r\n" |
203 |
|
"channels: 2\r\n" |
204 |
|
"samplerate: 44100\r\n"; |
205 |
|
} |
206 |
|
else ret = LSCP_FAILED; |
207 |
|
} |
208 |
|
else if (lscp_parser_test2(&tok, "MIDI_INPUT_DEVICE", "INFO")) { |
209 |
|
// Getting informations about a specific MIDI input device. |
210 |
|
// GET MIDI_INPUT_DEVICE INFO <midi-device-id> |
211 |
|
if (lscp_parser_nextint(&tok) < iMidiDevice) { |
212 |
|
pszResult = "driver: Alsa\r\n" |
213 |
|
"active: TRUE\r\n" |
214 |
|
"channels: 16\r\n" |
215 |
|
"ports: 1\r\n"; |
216 |
|
} |
217 |
|
else ret = LSCP_FAILED; |
218 |
|
} |
219 |
else if (lscp_parser_test(&tok, "AVAILABLE_ENGINES")) { |
else if (lscp_parser_test(&tok, "AVAILABLE_ENGINES")) { |
220 |
// Getting all available engines: |
// Getting all available engines: |
221 |
// GET AVAILABLE_ENGINES |
// GET AVAILABLE_ENGINES |
244 |
if (lscp_parser_test(&tok, "CHANNELS")) { |
if (lscp_parser_test(&tok, "CHANNELS")) { |
245 |
// Getting all created sampler channel list. |
// Getting all created sampler channel list. |
246 |
// GET CHANNELS |
// GET CHANNELS |
247 |
if (iChannel > 0) { |
if (iSamplerChannel > 0) { |
248 |
strcpy(szTemp, "0"); |
strcpy(szTemp, "0"); |
249 |
for (i = 1; i < iChannel; i++) |
for (i = 1; i < iSamplerChannel; i++) |
250 |
sprintf(szTemp + strlen(szTemp), ",%d", i); |
sprintf(szTemp + strlen(szTemp), ",%d", i); |
251 |
strcat(szTemp, "\r\n"); |
strcat(szTemp, "\r\n"); |
252 |
pszResult = szTemp; |
pszResult = szTemp; |
256 |
else if (lscp_parser_test(&tok, "AUDIO_OUTPUT_DEVICES")) { |
else if (lscp_parser_test(&tok, "AUDIO_OUTPUT_DEVICES")) { |
257 |
// Getting all created audio output device list. |
// Getting all created audio output device list. |
258 |
// GET AUDIO_OUTPUT_DEVICES |
// GET AUDIO_OUTPUT_DEVICES |
259 |
pszResult = "0,1\r\n"; |
if (iAudioDevice > 0) { |
260 |
|
strcpy(szTemp, "0"); |
261 |
|
for (i = 1; i < iAudioDevice; i++) |
262 |
|
sprintf(szTemp + strlen(szTemp), ",%d", i); |
263 |
|
strcat(szTemp, "\r\n"); |
264 |
|
pszResult = szTemp; |
265 |
|
} |
266 |
|
else ret = LSCP_FAILED; |
267 |
} |
} |
268 |
else if (lscp_parser_test(&tok, "MIDI_INPUT_DEVICES")) { |
else if (lscp_parser_test(&tok, "MIDI_INPUT_DEVICES")) { |
269 |
// Getting all created MID input device list. |
// Getting all created MID input device list. |
270 |
// GET MIDI_INPUT_DEVICES |
// GET MIDI_INPUT_DEVICES |
271 |
pszResult = "0\r\n"; |
if (iMidiDevice > 0) { |
272 |
|
strcpy(szTemp, "0"); |
273 |
|
for (i = 1; i < iMidiDevice; i++) |
274 |
|
sprintf(szTemp + strlen(szTemp), ",%d", i); |
275 |
|
strcat(szTemp, "\r\n"); |
276 |
|
pszResult = szTemp; |
277 |
|
} |
278 |
|
else ret = LSCP_FAILED; |
279 |
} |
} |
280 |
else ret = LSCP_FAILED; |
else ret = LSCP_FAILED; |
281 |
} |
} |
331 |
else if (lscp_parser_test2(&tok, "ADD", "CHANNEL")) { |
else if (lscp_parser_test2(&tok, "ADD", "CHANNEL")) { |
332 |
// Adding a new sampler channel: |
// Adding a new sampler channel: |
333 |
// ADD CHANNEL |
// ADD CHANNEL |
334 |
sprintf(szTemp, "OK[%d]", iChannel++); |
sprintf(szTemp, "OK[%d]", iSamplerChannel++); |
335 |
pszResult = szTemp; |
pszResult = szTemp; |
336 |
} |
} |
337 |
else if (lscp_parser_test2(&tok, "REMOVE", "CHANNEL")) { |
else if (lscp_parser_test2(&tok, "REMOVE", "CHANNEL")) { |
338 |
// Removing a sampler channel: |
// Removing a sampler channel: |
339 |
// REMOVE CHANNEL <sampler-channel> |
// REMOVE CHANNEL <sampler-channel> |
340 |
|
if (lscp_parser_nextint(&tok) > iSamplerChannel) |
341 |
|
ret = LSCP_FAILED; |
342 |
} |
} |
343 |
else if (lscp_parser_test2(&tok, "RESET", "CHANNEL")) { |
else if (lscp_parser_test2(&tok, "RESET", "CHANNEL")) { |
344 |
// Resetting a sampler channel: |
// Resetting a sampler channel: |
345 |
// RESET CHANNEL <sampler-channel> |
// RESET CHANNEL <sampler-channel> |
346 |
|
if (lscp_parser_nextint(&tok) > iSamplerChannel) |
347 |
|
ret = LSCP_FAILED; |
348 |
|
} |
349 |
|
else if (lscp_parser_test(&tok, "CREATE")) { |
350 |
|
if (lscp_parser_test(&tok, "AUDIO_OUTPUT_DEVICE")) { |
351 |
|
// Creating an audio output device. |
352 |
|
// CREATE AUDIO_OUTPUT_DEVICE <audio-output-driver> [<params>] |
353 |
|
sprintf(szTemp, "OK[%d]", iAudioDevice++); |
354 |
|
pszResult = szTemp; |
355 |
|
} |
356 |
|
else if (lscp_parser_test(&tok, "MIDI_INPUT_DEVICE")) { |
357 |
|
// Creating an MIDI input device. |
358 |
|
// CREATE MIDI_INPUT_DEVICE <midi-input-driver> [<params>] |
359 |
|
sprintf(szTemp, "OK[%d]", iMidiDevice++); |
360 |
|
pszResult = szTemp; |
361 |
|
} |
362 |
|
else ret = LSCP_FAILED; |
363 |
|
} |
364 |
|
else if (lscp_parser_test(&tok, "DESTROY")) { |
365 |
|
if (lscp_parser_test(&tok, "AUDIO_OUTPUT_DEVICE")) { |
366 |
|
// Destroying an audio output device. |
367 |
|
// DESTROY AUDIO_OUTPUT_DEVICE <audio-device-id> |
368 |
|
if (lscp_parser_nextint(&tok) > iAudioDevice) |
369 |
|
ret = LSCP_FAILED; |
370 |
|
} |
371 |
|
else if (lscp_parser_test(&tok, "MIDI_INPUT_DEVICE")) { |
372 |
|
// Destroying an MIDI intput device. |
373 |
|
// DESTROY MIDI_INPUT_DEVICE <midi-device-id> |
374 |
|
if (lscp_parser_nextint(&tok) > iMidiDevice) |
375 |
|
ret = LSCP_FAILED; |
376 |
|
} |
377 |
|
else ret = LSCP_FAILED; |
378 |
} |
} |
379 |
else if (lscp_parser_test(&tok, "SUBSCRIBE")) { |
else if (lscp_parser_test(&tok, "SUBSCRIBE")) { |
380 |
// Register frontend for receiving event notification messages: |
// Register frontend for receiving event notification messages: |