--- linuxsampler/trunk/src/network/lscpparser.cpp 2004/06/23 18:54:08 143 +++ linuxsampler/trunk/src/network/lscpparser.cpp 2004/06/28 04:30:11 155 @@ -94,13 +94,21 @@ AUDIO_OUTPUT_DRIVER = 296, AUDIO_OUTPUT_DRIVER_PARAMETER = 297, AUDIO_OUTPUT_TYPE = 298, - MIDI_INPUT_PORT = 299, - MIDI_INPUT_CHANNEL = 300, - MIDI_INPUT_TYPE = 301, - VOLUME = 302, - BYTES = 303, - PERCENTAGE = 304, - MISCELLANEOUS = 305 + MIDI_INPUT = 299, + MIDI_INPUT_TYPE = 300, + MIDI_INPUT_PORT = 301, + MIDI_INPUT_CHANNEL = 302, + VOLUME = 303, + MIDI_INPUT_DRIVER = 304, + MIDI_INPUT_DRIVER_PARAMETER = 305, + AVAILABLE_MIDI_INPUT_DRIVERS = 306, + MIDI_INPUT_DEVICE = 307, + MIDI_INPUT_DEVICES = 308, + MIDI_INPUT_DEVICE_PARAMETER = 309, + MIDI_INPUT_PORT_PARAMETER = 310, + BYTES = 311, + PERCENTAGE = 312, + MISCELLANEOUS = 313 }; #endif #define CHAR 258 @@ -144,13 +152,21 @@ #define AUDIO_OUTPUT_DRIVER 296 #define AUDIO_OUTPUT_DRIVER_PARAMETER 297 #define AUDIO_OUTPUT_TYPE 298 -#define MIDI_INPUT_PORT 299 -#define MIDI_INPUT_CHANNEL 300 -#define MIDI_INPUT_TYPE 301 -#define VOLUME 302 -#define BYTES 303 -#define PERCENTAGE 304 -#define MISCELLANEOUS 305 +#define MIDI_INPUT 299 +#define MIDI_INPUT_TYPE 300 +#define MIDI_INPUT_PORT 301 +#define MIDI_INPUT_CHANNEL 302 +#define VOLUME 303 +#define MIDI_INPUT_DRIVER 304 +#define MIDI_INPUT_DRIVER_PARAMETER 305 +#define AVAILABLE_MIDI_INPUT_DRIVERS 306 +#define MIDI_INPUT_DEVICE 307 +#define MIDI_INPUT_DEVICES 308 +#define MIDI_INPUT_DEVICE_PARAMETER 309 +#define MIDI_INPUT_PORT_PARAMETER 310 +#define BYTES 311 +#define PERCENTAGE 312 +#define MISCELLANEOUS 313 @@ -209,7 +225,7 @@ /* Line 214 of yacc.c. */ -#line 212 "y.tab.c" +#line 228 "y.tab.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE @@ -308,20 +324,20 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 30 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 225 +#define YYLAST 285 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 51 +#define YYNTOKENS 59 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 30 +#define YYNNTS 31 /* YYNRULES -- Number of rules. */ -#define YYNRULES 92 +#define YYNRULES 104 /* YYNRULES -- Number of states. */ -#define YYNSTATES 239 +#define YYNSTATES 290 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 305 +#define YYMAXUTOK 313 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -359,7 +375,8 @@ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50 + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58 }; #if YYDEBUG @@ -371,68 +388,77 @@ 23, 26, 29, 32, 35, 39, 43, 47, 51, 55, 59, 65, 69, 73, 77, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, - 113, 119, 127, 137, 139, 145, 153, 163, 165, 171, - 179, 185, 191, 197, 205, 215, 219, 225, 229, 233, - 237, 241, 247, 255, 261, 267, 273, 279, 285, 289, - 295, 297, 299, 301, 307, 315, 319, 321, 323, 325, - 327, 329, 331, 333, 335, 337, 339, 341, 343, 345, - 347, 349, 351 + 113, 119, 127, 137, 139, 145, 153, 163, 165, 167, + 173, 179, 187, 195, 205, 207, 213, 221, 227, 233, + 239, 247, 257, 265, 275, 279, 285, 289, 293, 297, + 301, 305, 309, 315, 323, 329, 339, 345, 351, 355, + 361, 363, 365, 367, 369, 375, 383, 387, 389, 391, + 393, 395, 397, 399, 401, 403, 405, 407, 409, 411, + 413, 415, 417, 419, 421 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yysigned_char yyrhs[] = { - 52, 0, -1, 53, -1, 52, 8, 53, -1, 52, - 9, 8, 53, -1, -1, 54, -1, 55, -1, 1, - -1, 10, -1, 54, 10, -1, 54, 7, -1, 54, - 5, -1, 54, 80, -1, 12, 7, 25, -1, 13, - 7, 58, -1, 14, 7, 60, -1, 15, 7, 61, - -1, 16, 7, 66, -1, 17, 7, 62, -1, 19, - 7, 25, 7, 72, -1, 20, 7, 59, -1, 21, - 7, 56, -1, 22, 7, 57, -1, 23, 7, 25, - 7, 72, -1, 24, -1, 29, -1, 33, -1, 32, - -1, 31, -1, 30, -1, 50, -1, 29, -1, 33, - -1, 32, -1, 31, -1, 30, -1, 50, -1, 27, - -1, 28, -1, 41, 7, 30, 7, 80, -1, 42, - 7, 30, 7, 80, 7, 80, -1, 42, 7, 30, - 7, 80, 7, 80, 7, 64, -1, 39, -1, 38, - 7, 30, 7, 5, -1, 36, 7, 30, 7, 5, - 7, 5, -1, 37, 7, 30, 7, 5, 7, 5, - 7, 80, -1, 29, -1, 25, 7, 30, 7, 72, - -1, 25, 7, 31, 7, 65, 7, 72, -1, 25, - 7, 32, 7, 72, -1, 25, 7, 33, 7, 72, - -1, 35, 7, 30, 7, 76, -1, 40, 7, 5, - 7, 80, 11, 79, -1, 37, 7, 5, 7, 5, - 7, 80, 11, 79, -1, 25, 7, 63, -1, 38, - 7, 80, 7, 64, -1, 38, 7, 80, -1, 38, - 7, 5, -1, 34, 7, 67, -1, 35, 7, 68, - -1, 38, 7, 72, 7, 5, -1, 36, 7, 72, - 7, 74, 7, 74, -1, 43, 7, 72, 7, 69, - -1, 44, 7, 72, 7, 77, -1, 45, 7, 72, - 7, 75, -1, 46, 7, 72, 7, 70, -1, 47, - 7, 72, 7, 71, -1, 80, 11, 79, -1, 64, - 7, 80, 11, 79, -1, 48, -1, 49, -1, 39, - -1, 78, 7, 73, 7, 72, -1, 18, 7, 78, - 7, 73, 7, 72, -1, 76, 7, 72, -1, 80, - -1, 80, -1, 4, -1, 5, -1, 5, -1, 5, - -1, 5, -1, 5, -1, 80, -1, 6, -1, 6, - -1, 80, -1, 6, -1, 5, -1, 4, -1, 3, - -1, 80, 3, -1 + 60, 0, -1, 61, -1, 60, 8, 61, -1, 60, + 9, 8, 61, -1, -1, 62, -1, 63, -1, 1, + -1, 10, -1, 62, 10, -1, 62, 7, -1, 62, + 5, -1, 62, 89, -1, 12, 7, 25, -1, 13, + 7, 66, -1, 14, 7, 68, -1, 15, 7, 69, + -1, 16, 7, 74, -1, 17, 7, 70, -1, 19, + 7, 25, 7, 83, -1, 20, 7, 67, -1, 21, + 7, 64, -1, 22, 7, 65, -1, 23, 7, 25, + 7, 83, -1, 24, -1, 29, -1, 33, -1, 32, + -1, 31, -1, 30, -1, 58, -1, 29, -1, 33, + -1, 32, -1, 31, -1, 30, -1, 58, -1, 27, + -1, 51, -1, 49, 7, 30, 7, 89, -1, 50, + 7, 30, 7, 89, 7, 89, -1, 50, 7, 30, + 7, 89, 7, 89, 7, 72, -1, 28, -1, 41, + 7, 30, 7, 89, -1, 42, 7, 30, 7, 89, + 7, 89, -1, 42, 7, 30, 7, 89, 7, 89, + 7, 72, -1, 39, -1, 53, -1, 38, 7, 30, + 7, 5, -1, 52, 7, 30, 7, 5, -1, 46, + 7, 30, 7, 5, 7, 5, -1, 36, 7, 30, + 7, 5, 7, 5, -1, 37, 7, 30, 7, 5, + 7, 5, 7, 89, -1, 29, -1, 25, 7, 30, + 7, 83, -1, 25, 7, 31, 7, 73, 7, 83, + -1, 25, 7, 32, 7, 83, -1, 25, 7, 33, + 7, 83, -1, 35, 7, 30, 7, 86, -1, 40, + 7, 5, 7, 89, 11, 88, -1, 37, 7, 5, + 7, 5, 7, 89, 11, 88, -1, 54, 7, 5, + 7, 89, 11, 88, -1, 55, 7, 5, 7, 5, + 7, 89, 11, 88, -1, 25, 7, 71, -1, 38, + 7, 89, 7, 72, -1, 38, 7, 89, -1, 52, + 7, 89, -1, 38, 7, 5, -1, 52, 7, 5, + -1, 34, 7, 75, -1, 35, 7, 76, -1, 38, + 7, 83, 7, 5, -1, 36, 7, 83, 7, 85, + 7, 85, -1, 43, 7, 83, 7, 77, -1, 44, + 7, 83, 7, 78, 7, 79, 7, 80, -1, 45, + 7, 83, 7, 81, -1, 48, 7, 83, 7, 82, + -1, 89, 11, 88, -1, 72, 7, 89, 11, 88, + -1, 56, -1, 57, -1, 39, -1, 53, -1, 87, + 7, 84, 7, 83, -1, 18, 7, 87, 7, 84, + 7, 83, -1, 86, 7, 83, -1, 89, -1, 5, + -1, 5, -1, 5, -1, 89, -1, 4, -1, 5, + -1, 5, -1, 5, -1, 5, -1, 89, -1, 6, + -1, 89, -1, 6, -1, 5, -1, 4, -1, 3, + -1, 89, 3, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned char yyrline[] = { - 0, 77, 77, 78, 79, 82, 83, 84, 85, 88, - 89, 90, 91, 92, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 109, 110, 111, 112, - 113, 114, 117, 118, 119, 120, 121, 122, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 142, 143, 144, 147, 148, 151, 154, - 155, 158, 159, 160, 161, 162, 163, 164, 167, 168, - 171, 172, 175, 178, 179, 182, 185, 188, 191, 192, - 195, 198, 201, 204, 207, 210, 213, 214, 217, 218, - 219, 222, 223 + 0, 78, 78, 79, 80, 83, 84, 85, 86, 89, + 90, 91, 92, 93, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 110, 111, 112, 113, + 114, 115, 118, 119, 120, 121, 122, 123, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 150, 151, 152, 153, 154, 157, 158, 159, 162, 163, + 166, 167, 170, 171, 172, 173, 174, 175, 178, 179, + 182, 183, 186, 187, 190, 191, 194, 197, 200, 203, + 206, 209, 212, 213, 216, 219, 222, 225, 228, 229, + 232, 233, 234, 237, 238 }; #endif @@ -450,16 +476,20 @@ "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_CHANNEL_PARAMETER", "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DEVICES", "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DRIVER", - "AUDIO_OUTPUT_DRIVER_PARAMETER", "AUDIO_OUTPUT_TYPE", "MIDI_INPUT_PORT", - "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "VOLUME", "BYTES", - "PERCENTAGE", "MISCELLANEOUS", "$accept", "input", "line", "comment", - "command", "subscribe_event", "unsubscribe_event", "get_instruction", - "set_instruction", "create_instruction", "destroy_instruction", - "load_instruction", "set_chan_instruction", "key_val_list", - "buffer_size_type", "list_instruction", "load_instr_args", - "load_engine_args", "audio_output_type", "midi_input_type", "volume", - "sampler_channel", "instrument_index", "audio_output_channel", - "midi_input_channel", "engine_name", "midi_input_port", "filename", + "AUDIO_OUTPUT_DRIVER_PARAMETER", "AUDIO_OUTPUT_TYPE", "MIDI_INPUT", + "MIDI_INPUT_TYPE", "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "VOLUME", + "MIDI_INPUT_DRIVER", "MIDI_INPUT_DRIVER_PARAMETER", + "AVAILABLE_MIDI_INPUT_DRIVERS", "MIDI_INPUT_DEVICE", + "MIDI_INPUT_DEVICES", "MIDI_INPUT_DEVICE_PARAMETER", + "MIDI_INPUT_PORT_PARAMETER", "BYTES", "PERCENTAGE", "MISCELLANEOUS", + "$accept", "input", "line", "comment", "command", "subscribe_event", + "unsubscribe_event", "get_instruction", "set_instruction", + "create_instruction", "destroy_instruction", "load_instruction", + "set_chan_instruction", "key_val_list", "buffer_size_type", + "list_instruction", "load_instr_args", "load_engine_args", + "audio_output_type", "midi_input_device", "midi_input_port", + "midi_input_channel", "midi_input_type", "volume", "sampler_channel", + "instrument_index", "audio_output_channel", "engine_name", "filename", "param_val", "string", 0 }; #endif @@ -474,23 +504,24 @@ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305 + 305, 306, 307, 308, 309, 310, 311, 312, 313 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const unsigned char yyr1[] = { - 0, 51, 52, 52, 52, 53, 53, 53, 53, 54, - 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 56, 56, 56, 56, - 56, 56, 57, 57, 57, 57, 57, 57, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 59, 59, 59, 60, 60, 61, 62, - 62, 63, 63, 63, 63, 63, 63, 63, 64, 64, - 65, 65, 66, 67, 67, 68, 69, 70, 71, 71, - 72, 73, 74, 75, 76, 77, 78, 78, 79, 79, - 79, 80, 80 + 0, 59, 60, 60, 60, 61, 61, 61, 61, 62, + 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 64, 64, 64, 64, + 64, 64, 65, 65, 65, 65, 65, 65, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 67, 67, 67, 67, 67, 68, 68, 68, 69, 69, + 70, 70, 71, 71, 71, 71, 71, 71, 72, 72, + 73, 73, 74, 74, 75, 75, 76, 77, 78, 79, + 80, 81, 82, 82, 83, 84, 85, 86, 87, 87, + 88, 88, 88, 89, 89 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -500,12 +531,13 @@ 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 5, 7, 9, 1, 5, 7, 9, 1, 5, 7, - 5, 5, 5, 7, 9, 3, 5, 3, 3, 3, - 3, 5, 7, 5, 5, 5, 5, 5, 3, 5, - 1, 1, 1, 5, 7, 3, 1, 1, 1, 1, + 5, 7, 9, 1, 5, 7, 9, 1, 1, 5, + 5, 7, 7, 9, 1, 5, 7, 5, 5, 5, + 7, 9, 7, 9, 3, 5, 3, 3, 3, 3, + 3, 3, 5, 7, 5, 9, 5, 5, 3, 5, + 1, 1, 1, 1, 5, 7, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2 + 1, 1, 1, 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -516,74 +548,86 @@ 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 2, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 91, 12, 11, 10, 13, 14, 0, - 38, 39, 47, 0, 0, 0, 0, 43, 0, 0, - 15, 0, 16, 0, 17, 72, 18, 0, 0, 19, - 0, 0, 0, 0, 21, 26, 30, 29, 28, 27, - 31, 22, 32, 36, 35, 34, 33, 37, 23, 0, - 3, 0, 92, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 1, 0, 0, 103, 12, 11, 10, 13, 14, 0, + 38, 43, 54, 0, 0, 0, 0, 47, 0, 0, + 0, 0, 0, 39, 0, 48, 15, 0, 0, 16, + 0, 0, 17, 82, 83, 18, 0, 0, 19, 0, + 0, 0, 0, 0, 0, 21, 26, 30, 29, 28, + 27, 31, 22, 32, 36, 35, 34, 33, 37, 23, + 0, 3, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 57, 58, 86, 0, 59, 0, 87, 60, 0, 84, - 80, 20, 0, 0, 0, 0, 0, 0, 0, 55, - 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 48, 70, 71, 0, - 50, 51, 52, 0, 0, 44, 40, 0, 56, 0, - 0, 81, 0, 75, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 67, 68, 69, 98, 0, 70, + 0, 99, 71, 0, 97, 94, 20, 0, 0, 0, + 0, 0, 0, 64, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 45, 0, 41, 0, 90, 89, 88, 68, 0, - 73, 82, 0, 61, 63, 76, 85, 64, 83, 65, - 66, 77, 78, 79, 67, 0, 53, 0, 0, 0, - 0, 0, 0, 46, 42, 69, 74, 62, 54 + 0, 0, 0, 0, 0, 0, 0, 55, 80, 81, + 0, 57, 58, 59, 0, 0, 49, 44, 0, 0, + 40, 0, 50, 65, 0, 0, 95, 0, 86, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 52, 0, 45, 51, 41, 0, 102, 101, 100, 78, + 0, 84, 96, 0, 72, 74, 87, 88, 0, 76, + 91, 92, 93, 77, 0, 60, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 46, 42, + 79, 85, 73, 89, 0, 61, 63, 0, 90, 75 }; /* YYDEFGOTO[NTERM-NUM]. */ static const short yydefgoto[] = { - -1, 15, 16, 17, 18, 71, 78, 50, 64, 52, - 54, 59, 129, 168, 159, 56, 114, 117, 214, 220, - 224, 121, 172, 212, 219, 118, 217, 115, 208, 116 + -1, 15, 16, 17, 18, 82, 89, 56, 75, 59, + 62, 68, 153, 203, 190, 65, 139, 142, 255, 258, + 284, 289, 259, 263, 146, 207, 253, 143, 140, 249, + 204 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -198 +#define YYPACT_NINF -235 static const short yypact[] = { - 3, -198, -198, -1, 1, 30, 53, 81, 83, 115, - 116, 120, 121, 122, -198, 21, -198, 98, -198, 22, - 43, -10, 20, 82, 40, 105, 8, 11, 33, 106, - -198, 3, 124, -198, -198, -198, -198, 131, -198, 128, - -198, -198, -198, 129, 130, 132, 133, -198, 134, 135, - -198, 136, -198, 137, -198, -198, -198, 138, 139, -198, - 140, 141, 142, 143, -198, -198, -198, -198, -198, -198, - -198, -198, -198, -198, -198, -198, -198, -198, -198, 144, - -198, 3, -198, 79, 123, 125, 126, 127, 145, 147, - 149, 153, 28, 149, 154, 51, 155, 156, 154, -198, - 157, 158, 159, 160, 161, 164, 165, 166, 167, 171, - 2, -198, -198, 173, -198, 175, 131, -198, 176, 131, - -198, -198, 177, 178, 179, 180, 181, 182, 183, -198, - 184, 185, -198, 154, 68, 154, 154, 149, 188, 189, - 190, 149, 149, 149, 101, 191, 154, 154, 154, 154, - 154, 154, 154, 154, 192, 149, -198, -198, -198, 193, - -198, -198, -198, 194, 195, -198, 131, 7, 196, 56, - 197, -198, 198, -198, 199, 200, 201, 202, 205, 206, - 207, 208, 66, 154, 211, 212, 149, 149, 109, 191, - 154, 213, 214, 149, 148, 215, 149, 114, 149, 109, - -198, -198, 216, 99, 88, -198, -198, -198, -198, 217, - -198, -198, 218, -198, -198, 131, -198, -198, -198, -198, - -198, 131, -198, -198, -198, 89, -198, 149, 149, 109, - 154, 213, 109, 131, 196, -198, -198, -198, -198 + 101, -235, -235, 10, 40, 62, 78, 83, 92, 112, + 133, 138, 140, 141, -235, 44, -235, 134, -235, 127, + 45, -24, -20, -14, 71, 130, -21, -22, -9, 135, + -235, 101, 150, -235, -235, -235, -235, 146, -235, 152, + -235, -235, -235, 154, 155, 156, 157, -235, 158, 159, + 162, 163, 164, -235, 165, -235, -235, 166, 167, -235, + 168, 169, -235, -235, -235, -235, 170, 171, -235, 172, + 173, 174, 175, 176, 177, -235, -235, -235, -235, -235, + -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, + 178, -235, 101, -235, 24, 160, 161, 179, 180, 181, + 182, 183, 185, 187, 189, 184, 184, 188, 190, 9, + 184, 191, 90, 192, 193, 194, 195, 191, -235, 196, + 197, 199, 213, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 28, 146, -235, -235, -235, 225, -235, + 226, 146, -235, 227, 146, -235, -235, 228, 229, 230, + 231, 232, 233, -235, 234, 235, 236, 237, -235, 191, + 51, 191, 191, 184, 240, 241, 242, 184, 184, 243, + 184, 184, 244, 184, 23, 245, 191, 191, 191, 191, + 191, 191, 191, 247, 184, 184, 248, -235, -235, -235, + 249, -235, -235, -235, 250, 251, -235, 146, 68, 252, + 146, 97, -235, 253, 2, 254, -235, 255, -235, 256, + 257, 258, 259, 260, 261, 262, 27, 37, 263, 191, + 266, 267, 184, 268, 184, 184, 73, 245, 191, 269, + 270, 184, 271, 184, 125, 184, 73, 73, 184, -235, + -235, 272, 124, -235, 129, 47, -235, -235, -235, -235, + 273, -235, -235, 274, -235, -235, 146, -235, 275, -235, + 146, -235, -235, -235, 48, -235, -235, 65, 184, 184, + 184, 73, 191, 269, 278, 73, 73, 146, 253, 253, + -235, -235, -235, -235, 277, -235, -235, 280, -235, -235 }; /* YYPGOTO[NTERM-NUM]. */ static const short yypgoto[] = { - -198, -198, -24, -198, -198, -198, -198, -198, -198, -198, - -198, -198, -198, -66, -198, -198, -198, -198, -198, -198, - -198, -97, -26, -33, -198, 62, -198, 77, -197, -17 + -235, -235, -25, -235, -235, -235, -235, -235, -235, -235, + -235, -235, -235, -127, -235, -235, -235, -235, -235, -235, + -235, -235, -235, -235, -116, -41, -85, 26, 18, -234, + -17 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -593,56 +637,68 @@ #define YYTABLE_NINF -6 static const short yytable[] = { - 37, 132, 226, -5, 1, 82, 19, 80, 20, 143, - 82, -5, -5, 2, 186, 3, 4, 5, 6, 7, - 8, 30, 9, 10, 11, 12, 13, 14, 51, 31, - 32, 33, 235, 61, 112, 238, 156, 21, 160, 161, - 65, 66, 67, 68, 69, 62, 113, 38, 63, 173, - 174, 175, 176, 177, 178, 179, 180, 99, 53, 82, - 22, 70, 72, 73, 74, 75, 76, 188, 39, 82, - 40, 41, 42, 110, 57, 58, 119, 199, 43, 44, - 45, 46, 47, 77, 48, 49, 200, 122, 23, 123, - 24, 82, 82, 210, 124, 125, 126, 127, 128, 229, - 232, 33, 82, 34, 33, 35, 228, 112, 36, 100, - 101, 102, 103, 205, 206, 207, 157, 158, 222, 223, - 119, 55, 25, 26, 166, 167, 169, 27, 28, 29, - 60, 79, 81, 236, 82, 83, 84, 85, 182, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 33, 104, 216, 105, 106, 107, 111, 120, - 130, 131, 234, 209, 133, 134, 135, 136, 137, 203, - 204, 138, 139, 140, 141, 108, 215, 109, 142, 221, - 144, 225, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 163, 164, 165, 171, 181, 237, 162, - 183, 184, 185, 187, 189, 190, 191, 192, 193, 194, - 233, 169, 195, 196, 197, 198, 201, 202, 211, 213, - 218, 170, 0, 227, 230, 231 + 37, 158, 265, 266, 70, 93, 91, 76, 77, 78, + 79, 80, 33, 226, 57, 137, 71, 19, 60, 72, + 83, 84, 85, 86, 87, 63, 33, 138, 58, 137, + 93, 93, 61, 73, 74, 173, 81, 280, 236, 64, + 93, 285, 286, 187, 30, 191, 192, 20, 237, 88, + 93, 93, 31, 32, 119, 120, 121, 122, 271, 275, + 208, 209, 210, 211, 212, 213, 214, 118, 93, 21, + 39, 93, 40, 41, 42, 222, 276, 246, 247, 248, + 43, 44, 45, 46, 47, 22, 48, 49, 133, 134, + 23, 50, 141, 144, 51, 52, 53, 54, 55, 24, + 93, -5, 1, 239, 224, 66, 67, 188, 189, -5, + -5, 2, 251, 3, 4, 5, 6, 7, 8, 25, + 9, 10, 11, 12, 13, 14, 147, 93, 148, 261, + 262, 269, 93, 149, 150, 151, 270, 33, 152, 34, + 26, 35, 278, 279, 36, 27, 144, 28, 29, 93, + 197, 198, 38, 200, 201, 69, 281, 141, 92, 94, + 90, 95, 96, 97, 98, 99, 100, 216, 217, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 250, 33, 282, 193, + 123, 124, 205, 135, 0, 136, 145, 154, 155, 156, + 157, 0, 0, 159, 160, 242, 161, 244, 245, 125, + 126, 127, 128, 129, 256, 130, 260, 131, 264, 132, + 162, 267, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 194, 195, 196, 199, 202, + 206, 277, 215, 218, 0, 0, 219, 220, 221, 223, + 225, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 238, 240, 241, 243, 252, 254, 257, 0, 0, 268, + 272, 273, 274, 283, 287, 288 }; static const short yycheck[] = { - 17, 98, 199, 0, 1, 3, 7, 31, 7, 7, - 3, 8, 9, 10, 7, 12, 13, 14, 15, 16, - 17, 0, 19, 20, 21, 22, 23, 24, 38, 8, - 9, 3, 229, 25, 6, 232, 133, 7, 135, 136, - 29, 30, 31, 32, 33, 37, 18, 25, 40, 146, - 147, 148, 149, 150, 151, 152, 153, 81, 38, 3, - 7, 50, 29, 30, 31, 32, 33, 11, 25, 3, - 27, 28, 29, 90, 34, 35, 93, 11, 35, 36, - 37, 38, 39, 50, 41, 42, 183, 36, 7, 38, - 7, 3, 3, 190, 43, 44, 45, 46, 47, 11, - 11, 3, 3, 5, 3, 7, 7, 6, 10, 30, - 31, 32, 33, 4, 5, 6, 48, 49, 4, 5, - 137, 39, 7, 7, 141, 142, 143, 7, 7, 7, - 25, 25, 8, 230, 3, 7, 7, 7, 155, 7, + 17, 117, 236, 237, 25, 3, 31, 29, 30, 31, + 32, 33, 3, 11, 38, 6, 37, 7, 38, 40, + 29, 30, 31, 32, 33, 39, 3, 18, 52, 6, + 3, 3, 52, 54, 55, 7, 58, 271, 11, 53, + 3, 275, 276, 159, 0, 161, 162, 7, 11, 58, + 3, 3, 8, 9, 30, 31, 32, 33, 11, 11, + 176, 177, 178, 179, 180, 181, 182, 92, 3, 7, + 25, 3, 27, 28, 29, 7, 11, 4, 5, 6, + 35, 36, 37, 38, 39, 7, 41, 42, 105, 106, + 7, 46, 109, 110, 49, 50, 51, 52, 53, 7, + 3, 0, 1, 219, 7, 34, 35, 56, 57, 8, + 9, 10, 228, 12, 13, 14, 15, 16, 17, 7, + 19, 20, 21, 22, 23, 24, 36, 3, 38, 4, + 5, 7, 3, 43, 44, 45, 7, 3, 48, 5, + 7, 7, 269, 270, 10, 7, 163, 7, 7, 3, + 167, 168, 25, 170, 171, 25, 272, 174, 8, 7, + 25, 7, 7, 7, 7, 7, 7, 184, 185, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 3, 30, 6, 30, 30, 30, 5, 5, - 5, 5, 228, 189, 7, 7, 7, 7, 7, 186, - 187, 7, 7, 7, 7, 30, 193, 30, 7, 196, - 7, 198, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 5, 5, 5, 5, 5, 231, 137, + 7, 7, 7, 7, 7, 7, 227, 3, 273, 163, + 30, 30, 174, 5, -1, 5, 5, 5, 5, 5, + 5, -1, -1, 7, 7, 222, 7, 224, 225, 30, + 30, 30, 30, 30, 231, 30, 233, 30, 235, 30, + 7, 238, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 227, 228, 7, 7, 7, 7, 5, 5, 5, 5, - 5, 144, -1, 7, 7, 7 + 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, + 5, 268, 5, 5, -1, -1, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 5, 5, 5, 5, 5, 5, -1, -1, 7, + 7, 7, 7, 5, 7, 5 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -650,29 +706,34 @@ static const unsigned char yystos[] = { 0, 1, 10, 12, 13, 14, 15, 16, 17, 19, - 20, 21, 22, 23, 24, 52, 53, 54, 55, 7, + 20, 21, 22, 23, 24, 60, 61, 62, 63, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 0, 8, 9, 3, 5, 7, 10, 80, 25, 25, + 0, 8, 9, 3, 5, 7, 10, 89, 25, 25, 27, 28, 29, 35, 36, 37, 38, 39, 41, 42, - 58, 38, 60, 38, 61, 39, 66, 34, 35, 62, - 25, 25, 37, 40, 59, 29, 30, 31, 32, 33, - 50, 56, 29, 30, 31, 32, 33, 50, 57, 25, - 53, 8, 3, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 53, - 30, 31, 32, 33, 30, 30, 30, 30, 30, 30, - 80, 5, 6, 18, 67, 78, 80, 68, 76, 80, - 5, 72, 36, 38, 43, 44, 45, 46, 47, 63, - 5, 5, 72, 7, 7, 7, 7, 7, 7, 7, + 46, 49, 50, 51, 52, 53, 66, 38, 52, 68, + 38, 52, 69, 39, 53, 74, 34, 35, 70, 25, + 25, 37, 40, 54, 55, 67, 29, 30, 31, 32, + 33, 58, 64, 29, 30, 31, 32, 33, 58, 65, + 25, 61, 8, 3, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 61, 30, + 31, 32, 33, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 89, 89, 5, 5, 6, 18, 75, + 87, 89, 76, 86, 89, 5, 83, 36, 38, 43, + 44, 45, 48, 71, 5, 5, 5, 5, 83, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 72, 48, 49, 65, - 72, 72, 76, 5, 5, 5, 80, 80, 64, 80, - 78, 5, 73, 72, 72, 72, 72, 72, 72, 72, - 72, 5, 80, 7, 7, 7, 7, 7, 11, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 11, - 72, 5, 5, 80, 80, 4, 5, 6, 79, 73, - 72, 5, 74, 5, 69, 80, 6, 77, 5, 75, - 70, 80, 4, 5, 71, 80, 79, 7, 7, 11, - 7, 7, 11, 80, 64, 79, 72, 74, 79 + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 83, 56, 57, + 73, 83, 83, 86, 5, 5, 5, 89, 89, 5, + 89, 89, 5, 72, 89, 87, 5, 84, 83, 83, + 83, 83, 83, 83, 83, 5, 89, 89, 5, 7, + 7, 7, 7, 7, 7, 7, 11, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 11, 11, 7, 83, + 5, 5, 89, 5, 89, 89, 4, 5, 6, 88, + 84, 83, 5, 85, 5, 77, 89, 5, 78, 81, + 89, 4, 5, 82, 89, 88, 88, 89, 7, 7, + 7, 11, 7, 7, 7, 11, 11, 89, 72, 72, + 88, 83, 85, 5, 79, 88, 88, 7, 5, 80 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -1283,352 +1344,407 @@ switch (yyn) { case 7: -#line 84 "lscp.y" +#line 85 "lscp.y" { LSCPSERVER->AnswerClient(yyvsp[0].String); } break; case 8: -#line 85 "lscp.y" +#line 86 "lscp.y" { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; } break; case 14: -#line 95 "lscp.y" +#line 96 "lscp.y" { yyval.String = LSCPSERVER->AddChannel(); } break; case 15: -#line 96 "lscp.y" +#line 97 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 16: -#line 97 "lscp.y" +#line 98 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 17: -#line 98 "lscp.y" +#line 99 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 18: -#line 99 "lscp.y" +#line 100 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 19: -#line 100 "lscp.y" +#line 101 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 20: -#line 101 "lscp.y" +#line 102 "lscp.y" { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number); } break; case 21: -#line 102 "lscp.y" +#line 103 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 22: -#line 103 "lscp.y" +#line 104 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 23: -#line 104 "lscp.y" +#line 105 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 24: -#line 105 "lscp.y" +#line 106 "lscp.y" { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number); } break; case 25: -#line 106 "lscp.y" +#line 107 "lscp.y" { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; } break; case 26: -#line 109 "lscp.y" +#line 110 "lscp.y" { yyval.String = LSCPSERVER->SubscribeNotification(event_channels); } break; case 27: -#line 110 "lscp.y" +#line 111 "lscp.y" { yyval.String = LSCPSERVER->SubscribeNotification(event_voice_count); } break; case 28: -#line 111 "lscp.y" +#line 112 "lscp.y" { yyval.String = LSCPSERVER->SubscribeNotification(event_stream_count); } break; case 29: -#line 112 "lscp.y" +#line 113 "lscp.y" { yyval.String = LSCPSERVER->SubscribeNotification(event_channel_buffer_fill); } break; case 30: -#line 113 "lscp.y" +#line 114 "lscp.y" { yyval.String = LSCPSERVER->SubscribeNotification(event_channel_info); } break; case 31: -#line 114 "lscp.y" +#line 115 "lscp.y" { yyval.String = LSCPSERVER->SubscribeNotification(event_misc); } break; case 32: -#line 117 "lscp.y" +#line 118 "lscp.y" { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channels); } break; case 33: -#line 118 "lscp.y" +#line 119 "lscp.y" { yyval.String = LSCPSERVER->UnsubscribeNotification(event_voice_count); } break; case 34: -#line 119 "lscp.y" +#line 120 "lscp.y" { yyval.String = LSCPSERVER->UnsubscribeNotification(event_stream_count); } break; case 35: -#line 120 "lscp.y" +#line 121 "lscp.y" { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channel_buffer_fill); } break; case 36: -#line 121 "lscp.y" +#line 122 "lscp.y" { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channel_info); } break; case 37: -#line 122 "lscp.y" +#line 123 "lscp.y" { yyval.String = LSCPSERVER->UnsubscribeNotification(event_misc); } break; case 38: -#line 125 "lscp.y" +#line 126 "lscp.y" { yyval.String = LSCPSERVER->GetAvailableEngines(); } break; case 39: -#line 126 "lscp.y" - { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers(); } +#line 127 "lscp.y" + { yyval.String = LSCPSERVER->GetAvailableMidiInputDrivers(); } break; case 40: -#line 127 "lscp.y" - { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String); } +#line 128 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDriverInfo(yyvsp[0].String); } break; case 41: -#line 128 "lscp.y" - { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String); } +#line 129 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String); } break; case 42: -#line 129 "lscp.y" - { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList); } +#line 130 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList); } break; case 43: -#line 130 "lscp.y" - { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount(); } +#line 131 "lscp.y" + { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers(); } break; case 44: -#line 131 "lscp.y" - { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number); } +#line 132 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String); } break; case 45: -#line 132 "lscp.y" - { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number); } +#line 133 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String); } break; case 46: -#line 133 "lscp.y" - { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); } +#line 134 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList); } break; case 47: -#line 134 "lscp.y" - { yyval.String = LSCPSERVER->GetChannels(); } +#line 135 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount(); } break; case 48: -#line 135 "lscp.y" - { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number); } +#line 136 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDeviceCount(); } break; case 49: -#line 136 "lscp.y" - { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number); } +#line 137 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number); } break; case 50: -#line 137 "lscp.y" - { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number); } +#line 138 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDeviceInfo(yyvsp[0].Number); } break; case 51: -#line 138 "lscp.y" - { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number); } +#line 139 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputPortInfo(yyvsp[-2].Number, yyvsp[0].Number); } break; case 52: -#line 139 "lscp.y" - { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String); } +#line 140 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number); } break; case 53: -#line 142 "lscp.y" - { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } +#line 141 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); } break; case 54: -#line 143 "lscp.y" - { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } +#line 142 "lscp.y" + { yyval.String = LSCPSERVER->GetChannels(); } break; case 55: -#line 144 "lscp.y" - { yyval.String = yyvsp[0].String; } +#line 143 "lscp.y" + { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number); } break; case 56: -#line 147 "lscp.y" - { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); } +#line 144 "lscp.y" + { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number); } break; case 57: -#line 148 "lscp.y" - { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String); } +#line 145 "lscp.y" + { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number); } break; case 58: -#line 151 "lscp.y" - { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); } +#line 146 "lscp.y" + { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number); } break; case 59: -#line 154 "lscp.y" - { yyval.String = yyvsp[0].String; } +#line 147 "lscp.y" + { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String); } break; case 60: -#line 155 "lscp.y" - { yyval.String = yyvsp[0].String; } +#line 150 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } break; case 61: -#line 158 "lscp.y" - { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number); } +#line 151 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } break; case 62: -#line 159 "lscp.y" - { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); } +#line 152 "lscp.y" + { yyval.String = LSCPSERVER->SetMidiInputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } break; case 63: -#line 160 "lscp.y" - { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number); } +#line 153 "lscp.y" + { yyval.String = LSCPSERVER->SetMidiInputPortParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } break; case 64: -#line 161 "lscp.y" - { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].String, yyvsp[-2].Number); } +#line 154 "lscp.y" + { yyval.String = yyvsp[0].String; } break; case 65: -#line 162 "lscp.y" - { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number); } +#line 157 "lscp.y" + { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); } break; case 66: -#line 163 "lscp.y" - { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number); } +#line 158 "lscp.y" + { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String); } break; case 67: -#line 164 "lscp.y" - { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number); } +#line 159 "lscp.y" + { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[0].String); } break; case 68: -#line 167 "lscp.y" - { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; } +#line 162 "lscp.y" + { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); } break; case 69: -#line 168 "lscp.y" - { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; } +#line 163 "lscp.y" + { yyval.String = LSCPSERVER->DestroyMidiInputDevice(yyvsp[0].Number); } break; case 70: -#line 171 "lscp.y" - { yyval.FillResponse = fill_response_bytes; } +#line 166 "lscp.y" + { yyval.String = yyvsp[0].String; } break; case 71: -#line 172 "lscp.y" - { yyval.FillResponse = fill_response_percentage; } +#line 167 "lscp.y" + { yyval.String = yyvsp[0].String; } break; case 72: -#line 175 "lscp.y" - { yyval.String = LSCPSERVER->GetAudioOutputDevices(); } +#line 170 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number); } break; case 73: -#line 178 "lscp.y" - { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); } +#line 171 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); } break; case 74: -#line 179 "lscp.y" - { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true); } +#line 172 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number); } break; case 75: +#line 173 "lscp.y" + { yyval.String = LSCPSERVER->SetMIDIInput(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-6].Number); } + break; + + case 76: +#line 174 "lscp.y" + { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number); } + break; + + case 77: +#line 175 "lscp.y" + { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number); } + break; + + case 78: +#line 178 "lscp.y" + { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; } + break; + + case 79: +#line 179 "lscp.y" + { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; } + break; + + case 80: #line 182 "lscp.y" + { yyval.FillResponse = fill_response_bytes; } + break; + + case 81: +#line 183 "lscp.y" + { yyval.FillResponse = fill_response_percentage; } + break; + + case 82: +#line 186 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputDevices(); } + break; + + case 83: +#line 187 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDevices(); } + break; + + case 84: +#line 190 "lscp.y" + { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); } + break; + + case 85: +#line 191 "lscp.y" + { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true); } + break; + + case 86: +#line 194 "lscp.y" { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); } break; - case 79: -#line 192 "lscp.y" + case 93: +#line 213 "lscp.y" { yyval.Dotnum = yyvsp[0].Number; } break; - case 88: -#line 217 "lscp.y" + case 100: +#line 232 "lscp.y" { yyval.String = yyvsp[0].String; } break; - case 89: -#line 218 "lscp.y" + case 101: +#line 233 "lscp.y" { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str(); } break; - case 90: -#line 219 "lscp.y" + case 102: +#line 234 "lscp.y" { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str(); } break; - case 91: -#line 222 "lscp.y" + case 103: +#line 237 "lscp.y" { std::string s; s = yyvsp[0].Char; yyval.String = s; } break; - case 92: -#line 223 "lscp.y" + case 104: +#line 238 "lscp.y" { yyval.String = yyvsp[-1].String + yyvsp[0].Char; } break; @@ -1636,7 +1752,7 @@ } /* Line 999 of yacc.c. */ -#line 1639 "y.tab.c" +#line 1755 "y.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -1830,7 +1946,7 @@ } -#line 77 "lscp.y" +#line 78 "lscp.y" /**