141 |
%type <Char> char char_base digit digit_oct digit_hex escape_seq escape_seq_octal escape_seq_hex |
%type <Char> char char_base digit digit_oct digit_hex escape_seq escape_seq_octal escape_seq_hex |
142 |
%type <Dotnum> dotnum volume_value boolean |
%type <Dotnum> dotnum volume_value boolean |
143 |
%type <Number> number sampler_channel instrument_index fx_send_id audio_channel_index device_index midi_input_channel_index midi_input_port_index midi_map midi_bank midi_prog midi_ctrl |
%type <Number> number sampler_channel instrument_index fx_send_id audio_channel_index device_index midi_input_channel_index midi_input_port_index midi_map midi_bank midi_prog midi_ctrl |
144 |
%type <String> string string_escaped text text_escaped stringval digits param_val_list param_val query_val pathname dirname filename map_name entry_name fx_send_name engine_name command add_instruction create_instruction destroy_instruction get_instruction list_instruction load_instruction set_chan_instruction load_instr_args load_engine_args audio_output_type_name midi_input_type_name remove_instruction unmap_instruction set_instruction subscribe_event unsubscribe_event map_instruction reset_instruction clear_instruction find_instruction move_instruction copy_instruction scan_mode edit_instruction |
%type <String> string string_escaped text text_escaped textval_escaped stringval stringval_escaped digits param_val_list param_val query_val filename db_path map_name entry_name fx_send_name engine_name command add_instruction create_instruction destroy_instruction get_instruction list_instruction load_instruction set_chan_instruction load_instr_args load_engine_args audio_output_type_name midi_input_type_name remove_instruction unmap_instruction set_instruction subscribe_event unsubscribe_event map_instruction reset_instruction clear_instruction find_instruction move_instruction copy_instruction scan_mode edit_instruction |
145 |
%type <FillResponse> buffer_size_type |
%type <FillResponse> buffer_size_type |
146 |
%type <KeyValList> key_val_list query_val_list |
%type <KeyValList> key_val_list query_val_list |
147 |
%type <LoadMode> instr_load_mode |
%type <LoadMode> instr_load_mode |
202 |
| QUIT { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; } |
| QUIT { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; } |
203 |
; |
; |
204 |
|
|
205 |
add_instruction : CHANNEL { $$ = LSCPSERVER->AddChannel(); } |
add_instruction : CHANNEL { $$ = LSCPSERVER->AddChannel(); } |
206 |
| DB_INSTRUMENT_DIRECTORY SP pathname { $$ = LSCPSERVER->AddDbInstrumentDirectory($3); } |
| DB_INSTRUMENT_DIRECTORY SP db_path { $$ = LSCPSERVER->AddDbInstrumentDirectory($3); } |
207 |
| DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP pathname SP pathname { $$ = LSCPSERVER->AddDbInstruments($5,$7,$9, true); } |
| DB_INSTRUMENTS SP NON_MODAL SP scan_mode SP db_path SP filename { $$ = LSCPSERVER->AddDbInstruments($5,$7,$9, true); } |
208 |
| DB_INSTRUMENTS SP scan_mode SP pathname SP pathname { $$ = LSCPSERVER->AddDbInstruments($3,$5,$7); } |
| DB_INSTRUMENTS SP scan_mode SP db_path SP filename { $$ = LSCPSERVER->AddDbInstruments($3,$5,$7); } |
209 |
| DB_INSTRUMENTS SP NON_MODAL SP pathname SP pathname { $$ = LSCPSERVER->AddDbInstruments($5,$7, -1, true); } |
| DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename { $$ = LSCPSERVER->AddDbInstruments($5,$7, -1, true); } |
210 |
| DB_INSTRUMENTS SP NON_MODAL SP pathname SP pathname SP instrument_index { $$ = LSCPSERVER->AddDbInstruments($5,$7,$9, true); } |
| DB_INSTRUMENTS SP NON_MODAL SP db_path SP filename SP instrument_index { $$ = LSCPSERVER->AddDbInstruments($5,$7,$9, true); } |
211 |
| DB_INSTRUMENTS SP pathname SP pathname { $$ = LSCPSERVER->AddDbInstruments($3,$5); } |
| DB_INSTRUMENTS SP db_path SP filename { $$ = LSCPSERVER->AddDbInstruments($3,$5); } |
212 |
| DB_INSTRUMENTS SP pathname SP pathname SP instrument_index { $$ = LSCPSERVER->AddDbInstruments($3,$5,$7); } |
| DB_INSTRUMENTS SP db_path SP filename SP instrument_index { $$ = LSCPSERVER->AddDbInstruments($3,$5,$7); } |
213 |
| MIDI_INSTRUMENT_MAP { $$ = LSCPSERVER->AddMidiInstrumentMap(); } |
| MIDI_INSTRUMENT_MAP { $$ = LSCPSERVER->AddMidiInstrumentMap(); } |
214 |
| MIDI_INSTRUMENT_MAP SP map_name { $$ = LSCPSERVER->AddMidiInstrumentMap($3); } |
| MIDI_INSTRUMENT_MAP SP map_name { $$ = LSCPSERVER->AddMidiInstrumentMap($3); } |
215 |
; |
; |
273 |
unmap_instruction : MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog { $$ = LSCPSERVER->RemoveMIDIInstrumentMapping($3,$5,$7); } |
unmap_instruction : MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog { $$ = LSCPSERVER->RemoveMIDIInstrumentMapping($3,$5,$7); } |
274 |
; |
; |
275 |
|
|
276 |
remove_instruction : CHANNEL SP sampler_channel { $$ = LSCPSERVER->RemoveChannel($3); } |
remove_instruction : CHANNEL SP sampler_channel { $$ = LSCPSERVER->RemoveChannel($3); } |
277 |
| MIDI_INSTRUMENT_MAP SP midi_map { $$ = LSCPSERVER->RemoveMidiInstrumentMap($3); } |
| MIDI_INSTRUMENT_MAP SP midi_map { $$ = LSCPSERVER->RemoveMidiInstrumentMap($3); } |
278 |
| MIDI_INSTRUMENT_MAP SP ALL { $$ = LSCPSERVER->RemoveAllMidiInstrumentMaps(); } |
| MIDI_INSTRUMENT_MAP SP ALL { $$ = LSCPSERVER->RemoveAllMidiInstrumentMaps(); } |
279 |
| DB_INSTRUMENT_DIRECTORY SP FORCE SP pathname { $$ = LSCPSERVER->RemoveDbInstrumentDirectory($5, true); } |
| DB_INSTRUMENT_DIRECTORY SP FORCE SP db_path { $$ = LSCPSERVER->RemoveDbInstrumentDirectory($5, true); } |
280 |
| DB_INSTRUMENT_DIRECTORY SP pathname { $$ = LSCPSERVER->RemoveDbInstrumentDirectory($3); } |
| DB_INSTRUMENT_DIRECTORY SP db_path { $$ = LSCPSERVER->RemoveDbInstrumentDirectory($3); } |
281 |
| DB_INSTRUMENT SP pathname { $$ = LSCPSERVER->RemoveDbInstrument($3); } |
| DB_INSTRUMENT SP db_path { $$ = LSCPSERVER->RemoveDbInstrument($3); } |
282 |
; |
; |
283 |
|
|
284 |
get_instruction : AVAILABLE_ENGINES { $$ = LSCPSERVER->GetAvailableEngines(); } |
get_instruction : AVAILABLE_ENGINES { $$ = LSCPSERVER->GetAvailableEngines(); } |
314 |
| MIDI_INSTRUMENT_MAP SP INFO SP midi_map { $$ = LSCPSERVER->GetMidiInstrumentMap($5); } |
| MIDI_INSTRUMENT_MAP SP INFO SP midi_map { $$ = LSCPSERVER->GetMidiInstrumentMap($5); } |
315 |
| FX_SENDS SP sampler_channel { $$ = LSCPSERVER->GetFxSends($3); } |
| FX_SENDS SP sampler_channel { $$ = LSCPSERVER->GetFxSends($3); } |
316 |
| FX_SEND SP INFO SP sampler_channel SP fx_send_id { $$ = LSCPSERVER->GetFxSendInfo($5,$7); } |
| FX_SEND SP INFO SP sampler_channel SP fx_send_id { $$ = LSCPSERVER->GetFxSendInfo($5,$7); } |
317 |
| DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP pathname { $$ = LSCPSERVER->GetDbInstrumentDirectoryCount($5, true); } |
| DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path { $$ = LSCPSERVER->GetDbInstrumentDirectoryCount($5, true); } |
318 |
| DB_INSTRUMENT_DIRECTORIES SP pathname { $$ = LSCPSERVER->GetDbInstrumentDirectoryCount($3, false); } |
| DB_INSTRUMENT_DIRECTORIES SP db_path { $$ = LSCPSERVER->GetDbInstrumentDirectoryCount($3, false); } |
319 |
| DB_INSTRUMENT_DIRECTORY SP INFO SP pathname { $$ = LSCPSERVER->GetDbInstrumentDirectoryInfo($5); } |
| DB_INSTRUMENT_DIRECTORY SP INFO SP db_path { $$ = LSCPSERVER->GetDbInstrumentDirectoryInfo($5); } |
320 |
| DB_INSTRUMENTS SP RECURSIVE SP pathname { $$ = LSCPSERVER->GetDbInstrumentCount($5, true); } |
| DB_INSTRUMENTS SP RECURSIVE SP db_path { $$ = LSCPSERVER->GetDbInstrumentCount($5, true); } |
321 |
| DB_INSTRUMENTS SP pathname { $$ = LSCPSERVER->GetDbInstrumentCount($3, false); } |
| DB_INSTRUMENTS SP db_path { $$ = LSCPSERVER->GetDbInstrumentCount($3, false); } |
322 |
| DB_INSTRUMENT SP INFO SP pathname { $$ = LSCPSERVER->GetDbInstrumentInfo($5); } |
| DB_INSTRUMENT SP INFO SP db_path { $$ = LSCPSERVER->GetDbInstrumentInfo($5); } |
323 |
| DB_INSTRUMENTS_JOB SP INFO SP number { $$ = LSCPSERVER->GetDbInstrumentsJobInfo($5); } |
| DB_INSTRUMENTS_JOB SP INFO SP number { $$ = LSCPSERVER->GetDbInstrumentsJobInfo($5); } |
324 |
| VOLUME { $$ = LSCPSERVER->GetGlobalVolume(); } |
| VOLUME { $$ = LSCPSERVER->GetGlobalVolume(); } |
325 |
; |
; |
335 |
| FX_SEND SP AUDIO_OUTPUT_CHANNEL SP sampler_channel SP fx_send_id SP audio_channel_index SP audio_channel_index { $$ = LSCPSERVER->SetFxSendAudioOutputChannel($5,$7,$9,$11); } |
| FX_SEND SP AUDIO_OUTPUT_CHANNEL SP sampler_channel SP fx_send_id SP audio_channel_index SP audio_channel_index { $$ = LSCPSERVER->SetFxSendAudioOutputChannel($5,$7,$9,$11); } |
336 |
| FX_SEND SP MIDI_CONTROLLER SP sampler_channel SP fx_send_id SP midi_ctrl { $$ = LSCPSERVER->SetFxSendMidiController($5,$7,$9); } |
| FX_SEND SP MIDI_CONTROLLER SP sampler_channel SP fx_send_id SP midi_ctrl { $$ = LSCPSERVER->SetFxSendMidiController($5,$7,$9); } |
337 |
| FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value { $$ = LSCPSERVER->SetFxSendLevel($5,$7,$9); } |
| FX_SEND SP LEVEL SP sampler_channel SP fx_send_id SP volume_value { $$ = LSCPSERVER->SetFxSendLevel($5,$7,$9); } |
338 |
| DB_INSTRUMENT_DIRECTORY SP NAME SP pathname SP dirname { $$ = LSCPSERVER->SetDbInstrumentDirectoryName($5,$7); } |
| DB_INSTRUMENT_DIRECTORY SP NAME SP db_path SP stringval_escaped { $$ = LSCPSERVER->SetDbInstrumentDirectoryName($5,$7); } |
339 |
| DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP pathname SP stringval { $$ = LSCPSERVER->SetDbInstrumentDirectoryDescription($5,$7); } |
| DB_INSTRUMENT_DIRECTORY SP DESCRIPTION SP db_path SP stringval_escaped { $$ = LSCPSERVER->SetDbInstrumentDirectoryDescription($5,$7); } |
340 |
| DB_INSTRUMENT SP NAME SP pathname SP dirname { $$ = LSCPSERVER->SetDbInstrumentName($5,$7); } |
| DB_INSTRUMENT SP NAME SP db_path SP stringval_escaped { $$ = LSCPSERVER->SetDbInstrumentName($5,$7); } |
341 |
| DB_INSTRUMENT SP DESCRIPTION SP pathname SP stringval { $$ = LSCPSERVER->SetDbInstrumentDescription($5,$7); } |
| DB_INSTRUMENT SP DESCRIPTION SP db_path SP stringval_escaped { $$ = LSCPSERVER->SetDbInstrumentDescription($5,$7); } |
342 |
| ECHO SP boolean { $$ = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, $3); } |
| ECHO SP boolean { $$ = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, $3); } |
343 |
| VOLUME SP volume_value { $$ = LSCPSERVER->SetGlobalVolume($3); } |
| VOLUME SP volume_value { $$ = LSCPSERVER->SetGlobalVolume($3); } |
344 |
; |
; |
358 |
| MIDI_INSTRUMENTS SP ALL { $$ = LSCPSERVER->ClearAllMidiInstrumentMappings(); } |
| MIDI_INSTRUMENTS SP ALL { $$ = LSCPSERVER->ClearAllMidiInstrumentMappings(); } |
359 |
; |
; |
360 |
|
|
361 |
find_instruction : DB_INSTRUMENTS SP NON_RECURSIVE SP pathname SP query_val_list { $$ = LSCPSERVER->FindDbInstruments($5,$7, false); } |
find_instruction : DB_INSTRUMENTS SP NON_RECURSIVE SP db_path SP query_val_list { $$ = LSCPSERVER->FindDbInstruments($5,$7, false); } |
362 |
| DB_INSTRUMENTS SP pathname SP query_val_list { $$ = LSCPSERVER->FindDbInstruments($3,$5, true); } |
| DB_INSTRUMENTS SP db_path SP query_val_list { $$ = LSCPSERVER->FindDbInstruments($3,$5, true); } |
363 |
| DB_INSTRUMENT_DIRECTORIES SP NON_RECURSIVE SP pathname SP query_val_list { $$ = LSCPSERVER->FindDbInstrumentDirectories($5,$7, false); } |
| DB_INSTRUMENT_DIRECTORIES SP NON_RECURSIVE SP db_path SP query_val_list { $$ = LSCPSERVER->FindDbInstrumentDirectories($5,$7, false); } |
364 |
| DB_INSTRUMENT_DIRECTORIES SP pathname SP query_val_list { $$ = LSCPSERVER->FindDbInstrumentDirectories($3,$5, true); } |
| DB_INSTRUMENT_DIRECTORIES SP db_path SP query_val_list { $$ = LSCPSERVER->FindDbInstrumentDirectories($3,$5, true); } |
365 |
; |
; |
366 |
|
|
367 |
move_instruction : DB_INSTRUMENT_DIRECTORY SP pathname SP pathname { $$ = LSCPSERVER->MoveDbInstrumentDirectory($3,$5); } |
move_instruction : DB_INSTRUMENT_DIRECTORY SP db_path SP db_path { $$ = LSCPSERVER->MoveDbInstrumentDirectory($3,$5); } |
368 |
| DB_INSTRUMENT SP pathname SP pathname { $$ = LSCPSERVER->MoveDbInstrument($3,$5); } |
| DB_INSTRUMENT SP db_path SP db_path { $$ = LSCPSERVER->MoveDbInstrument($3,$5); } |
369 |
; |
; |
370 |
|
|
371 |
copy_instruction : DB_INSTRUMENT_DIRECTORY SP pathname SP pathname { $$ = LSCPSERVER->CopyDbInstrumentDirectory($3,$5); } |
copy_instruction : DB_INSTRUMENT_DIRECTORY SP db_path SP db_path { $$ = LSCPSERVER->CopyDbInstrumentDirectory($3,$5); } |
372 |
| DB_INSTRUMENT SP pathname SP pathname { $$ = LSCPSERVER->CopyDbInstrument($3,$5); } |
| DB_INSTRUMENT SP db_path SP db_path { $$ = LSCPSERVER->CopyDbInstrument($3,$5); } |
373 |
; |
; |
374 |
|
|
375 |
destroy_instruction : AUDIO_OUTPUT_DEVICE SP number { $$ = LSCPSERVER->DestroyAudioOutputDevice($3); } |
destroy_instruction : AUDIO_OUTPUT_DEVICE SP number { $$ = LSCPSERVER->DestroyAudioOutputDevice($3); } |
422 |
| MIDI_INSTRUMENTS SP ALL { $$ = LSCPSERVER->ListAllMidiInstrumentMappings(); } |
| MIDI_INSTRUMENTS SP ALL { $$ = LSCPSERVER->ListAllMidiInstrumentMappings(); } |
423 |
| MIDI_INSTRUMENT_MAPS { $$ = LSCPSERVER->ListMidiInstrumentMaps(); } |
| MIDI_INSTRUMENT_MAPS { $$ = LSCPSERVER->ListMidiInstrumentMaps(); } |
424 |
| FX_SENDS SP sampler_channel { $$ = LSCPSERVER->ListFxSends($3); } |
| FX_SENDS SP sampler_channel { $$ = LSCPSERVER->ListFxSends($3); } |
425 |
| DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP pathname { $$ = LSCPSERVER->GetDbInstrumentDirectories($5, true); } |
| DB_INSTRUMENT_DIRECTORIES SP RECURSIVE SP db_path { $$ = LSCPSERVER->GetDbInstrumentDirectories($5, true); } |
426 |
| DB_INSTRUMENT_DIRECTORIES SP pathname { $$ = LSCPSERVER->GetDbInstrumentDirectories($3); } |
| DB_INSTRUMENT_DIRECTORIES SP db_path { $$ = LSCPSERVER->GetDbInstrumentDirectories($3); } |
427 |
| DB_INSTRUMENTS SP RECURSIVE SP pathname { $$ = LSCPSERVER->GetDbInstruments($5, true); } |
| DB_INSTRUMENTS SP RECURSIVE SP db_path { $$ = LSCPSERVER->GetDbInstruments($5, true); } |
428 |
| DB_INSTRUMENTS SP pathname { $$ = LSCPSERVER->GetDbInstruments($3); } |
| DB_INSTRUMENTS SP db_path { $$ = LSCPSERVER->GetDbInstruments($3); } |
429 |
; |
; |
430 |
|
|
431 |
load_instr_args : filename SP instrument_index SP sampler_channel { $$ = LSCPSERVER->LoadInstrument($1, $3, $5); } |
load_instr_args : filename SP instrument_index SP sampler_channel { $$ = LSCPSERVER->LoadInstrument($1, $3, $5); } |
487 |
engine_name : string |
engine_name : string |
488 |
; |
; |
489 |
|
|
490 |
pathname : stringval |
filename : path { $$ = $1.toPosix(); /*TODO: assuming POSIX*/ } |
491 |
; |
; |
492 |
|
|
493 |
dirname : stringval |
db_path : path { $$ = $1.toDbPath(); } |
|
; |
|
|
|
|
|
filename : path { $$ = $1.toPosix(); /*TODO: assuming POSIX*/ } |
|
494 |
; |
; |
495 |
|
|
496 |
map_name : stringval |
map_name : stringval |
516 |
| query_val_list SP string '=' query_val { $$ = $1; $$[$3] = $5; } |
| query_val_list SP string '=' query_val { $$ = $1; $$[$3] = $5; } |
517 |
; |
; |
518 |
|
|
519 |
query_val : string |
query_val : textval_escaped |
520 |
| stringval |
| stringval_escaped |
521 |
; |
; |
522 |
|
|
523 |
scan_mode : RECURSIVE { $$ = "RECURSIVE"; } |
scan_mode : RECURSIVE { $$ = "RECURSIVE"; } |
615 |
| '\"' text '\"' { $$ = $2; } |
| '\"' text '\"' { $$ = $2; } |
616 |
; |
; |
617 |
|
|
618 |
|
stringval_escaped : '\'' textval_escaped '\'' { $$ = $2; } |
619 |
|
| '\"' textval_escaped '\"' { $$ = $2; } |
620 |
|
; |
621 |
|
|
622 |
text : SP { $$ = " "; } |
text : SP { $$ = " "; } |
623 |
| string |
| string |
624 |
| text SP { $$ = $1 + " "; } |
| text SP { $$ = $1 + " "; } |
631 |
| text_escaped string_escaped { $$ = $1 + $2; } |
| text_escaped string_escaped { $$ = $1 + $2; } |
632 |
; |
; |
633 |
|
|
634 |
|
textval_escaped : '/' { $$ = "/"; } |
635 |
|
| text_escaped |
636 |
|
| textval_escaped '/' { $$ = $1 + "/"; } |
637 |
|
| textval_escaped text_escaped { $$ = $1 + $2; } |
638 |
|
; |
639 |
|
|
640 |
string : char { std::string s; s = $1; $$ = s; } |
string : char { std::string s; s = $1; $$ = s; } |
641 |
| string char { $$ = $1 + $2; } |
| string char { $$ = $1 + $2; } |
642 |
; |
; |