--- linuxsampler/trunk/src/network/lscpparser.cpp 2004/07/18 00:29:39 209 +++ linuxsampler/trunk/src/network/lscpparser.cpp 2004/07/24 12:33:49 210 @@ -74,41 +74,42 @@ SUBSCRIBE = 276, UNSUBSCRIBE = 277, RESET = 278, - QUIT = 279, - CHANNEL = 280, - NOTIFICATION = 281, - AVAILABLE_ENGINES = 282, - AVAILABLE_AUDIO_OUTPUT_DRIVERS = 283, - CHANNELS = 284, - INFO = 285, - BUFFER_FILL = 286, - STREAM_COUNT = 287, - VOICE_COUNT = 288, - INSTRUMENT = 289, - ENGINE = 290, - AUDIO_OUTPUT_CHANNEL = 291, - AUDIO_OUTPUT_CHANNEL_PARAMETER = 292, - AUDIO_OUTPUT_DEVICE = 293, - AUDIO_OUTPUT_DEVICES = 294, - AUDIO_OUTPUT_DEVICE_PARAMETER = 295, - AUDIO_OUTPUT_DRIVER = 296, - AUDIO_OUTPUT_DRIVER_PARAMETER = 297, - AUDIO_OUTPUT_TYPE = 298, - 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 + ECHO = 279, + QUIT = 280, + CHANNEL = 281, + NOTIFICATION = 282, + AVAILABLE_ENGINES = 283, + AVAILABLE_AUDIO_OUTPUT_DRIVERS = 284, + CHANNELS = 285, + INFO = 286, + BUFFER_FILL = 287, + STREAM_COUNT = 288, + VOICE_COUNT = 289, + INSTRUMENT = 290, + ENGINE = 291, + AUDIO_OUTPUT_CHANNEL = 292, + AUDIO_OUTPUT_CHANNEL_PARAMETER = 293, + AUDIO_OUTPUT_DEVICE = 294, + AUDIO_OUTPUT_DEVICES = 295, + AUDIO_OUTPUT_DEVICE_PARAMETER = 296, + AUDIO_OUTPUT_DRIVER = 297, + AUDIO_OUTPUT_DRIVER_PARAMETER = 298, + AUDIO_OUTPUT_TYPE = 299, + MIDI_INPUT = 300, + MIDI_INPUT_TYPE = 301, + MIDI_INPUT_PORT = 302, + MIDI_INPUT_CHANNEL = 303, + VOLUME = 304, + MIDI_INPUT_DRIVER = 305, + MIDI_INPUT_DRIVER_PARAMETER = 306, + AVAILABLE_MIDI_INPUT_DRIVERS = 307, + MIDI_INPUT_DEVICE = 308, + MIDI_INPUT_DEVICES = 309, + MIDI_INPUT_DEVICE_PARAMETER = 310, + MIDI_INPUT_PORT_PARAMETER = 311, + BYTES = 312, + PERCENTAGE = 313, + MISCELLANEOUS = 314 }; #endif #define CHAR 258 @@ -132,47 +133,48 @@ #define SUBSCRIBE 276 #define UNSUBSCRIBE 277 #define RESET 278 -#define QUIT 279 -#define CHANNEL 280 -#define NOTIFICATION 281 -#define AVAILABLE_ENGINES 282 -#define AVAILABLE_AUDIO_OUTPUT_DRIVERS 283 -#define CHANNELS 284 -#define INFO 285 -#define BUFFER_FILL 286 -#define STREAM_COUNT 287 -#define VOICE_COUNT 288 -#define INSTRUMENT 289 -#define ENGINE 290 -#define AUDIO_OUTPUT_CHANNEL 291 -#define AUDIO_OUTPUT_CHANNEL_PARAMETER 292 -#define AUDIO_OUTPUT_DEVICE 293 -#define AUDIO_OUTPUT_DEVICES 294 -#define AUDIO_OUTPUT_DEVICE_PARAMETER 295 -#define AUDIO_OUTPUT_DRIVER 296 -#define AUDIO_OUTPUT_DRIVER_PARAMETER 297 -#define AUDIO_OUTPUT_TYPE 298 -#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 +#define ECHO 279 +#define QUIT 280 +#define CHANNEL 281 +#define NOTIFICATION 282 +#define AVAILABLE_ENGINES 283 +#define AVAILABLE_AUDIO_OUTPUT_DRIVERS 284 +#define CHANNELS 285 +#define INFO 286 +#define BUFFER_FILL 287 +#define STREAM_COUNT 288 +#define VOICE_COUNT 289 +#define INSTRUMENT 290 +#define ENGINE 291 +#define AUDIO_OUTPUT_CHANNEL 292 +#define AUDIO_OUTPUT_CHANNEL_PARAMETER 293 +#define AUDIO_OUTPUT_DEVICE 294 +#define AUDIO_OUTPUT_DEVICES 295 +#define AUDIO_OUTPUT_DEVICE_PARAMETER 296 +#define AUDIO_OUTPUT_DRIVER 297 +#define AUDIO_OUTPUT_DRIVER_PARAMETER 298 +#define AUDIO_OUTPUT_TYPE 299 +#define MIDI_INPUT 300 +#define MIDI_INPUT_TYPE 301 +#define MIDI_INPUT_PORT 302 +#define MIDI_INPUT_CHANNEL 303 +#define VOLUME 304 +#define MIDI_INPUT_DRIVER 305 +#define MIDI_INPUT_DRIVER_PARAMETER 306 +#define AVAILABLE_MIDI_INPUT_DRIVERS 307 +#define MIDI_INPUT_DEVICE 308 +#define MIDI_INPUT_DEVICES 309 +#define MIDI_INPUT_DEVICE_PARAMETER 310 +#define MIDI_INPUT_PORT_PARAMETER 311 +#define BYTES 312 +#define PERCENTAGE 313 +#define MISCELLANEOUS 314 /* Copy the first part of user declarations. */ -#line 23 "lscp.y" +#line 26 "lscp.y" #include "lscpparser.h" @@ -226,7 +228,7 @@ /* Line 214 of yacc.c. */ -#line 230 "y.tab.c" +#line 232 "y.tab.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE @@ -325,20 +327,20 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 30 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 300 +#define YYLAST 306 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 59 +#define YYNTOKENS 60 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 32 +#define YYNNTS 33 /* YYNRULES -- Number of rules. */ -#define YYNRULES 108 +#define YYNRULES 111 /* YYNRULES -- Number of states. */ -#define YYNSTATES 313 +#define YYNSTATES 318 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 313 +#define YYMAXUTOK 314 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -377,7 +379,7 @@ 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, 51, 52, 53, 54, - 55, 56, 57, 58 + 55, 56, 57, 58, 59 }; #if YYDEBUG @@ -391,78 +393,80 @@ 89, 91, 93, 95, 97, 99, 101, 103, 105, 111, 119, 129, 131, 137, 145, 155, 157, 159, 165, 171, 179, 189, 197, 207, 209, 215, 223, 229, 235, 241, - 249, 259, 267, 277, 281, 287, 291, 297, 301, 305, - 309, 313, 317, 323, 331, 337, 347, 353, 359, 365, - 371, 377, 381, 387, 389, 391, 393, 395, 397, 403, - 411, 415, 417, 419, 421, 423, 425, 427, 429, 431, - 433, 435, 437, 439, 441, 443, 445, 447, 449 + 249, 259, 267, 277, 281, 285, 291, 295, 301, 305, + 309, 313, 317, 321, 327, 335, 341, 351, 357, 363, + 369, 375, 381, 385, 391, 393, 395, 397, 399, 401, + 407, 415, 419, 421, 423, 425, 427, 429, 431, 433, + 435, 437, 439, 441, 443, 445, 447, 449, 451, 453, + 455, 457 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yysigned_char yyrhs[] = { - 60, 0, -1, 61, 8, -1, -1, 62, -1, 63, - -1, 1, -1, 10, -1, 62, 10, -1, 62, 7, - -1, 62, 5, -1, 62, 90, -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, 85, -1, 20, 7, 67, - -1, 21, 7, 64, -1, 22, 7, 65, -1, 23, - 7, 25, 7, 85, -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, 90, - -1, 50, 7, 30, 7, 90, 7, 90, -1, 50, - 7, 30, 7, 90, 7, 90, 7, 72, -1, 28, - -1, 41, 7, 30, 7, 90, -1, 42, 7, 30, - 7, 90, 7, 90, -1, 42, 7, 30, 7, 90, - 7, 90, 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, 55, - 7, 30, 7, 5, 7, 5, 7, 90, -1, 36, - 7, 30, 7, 5, 7, 5, -1, 37, 7, 30, - 7, 5, 7, 5, 7, 90, -1, 29, -1, 25, - 7, 30, 7, 85, -1, 25, 7, 31, 7, 73, - 7, 85, -1, 25, 7, 32, 7, 85, -1, 25, - 7, 33, 7, 85, -1, 35, 7, 30, 7, 87, - -1, 40, 7, 5, 7, 90, 11, 89, -1, 37, - 7, 5, 7, 5, 7, 90, 11, 89, -1, 54, - 7, 5, 7, 90, 11, 89, -1, 55, 7, 5, - 7, 5, 7, 90, 11, 89, -1, 25, 7, 71, - -1, 38, 7, 90, 7, 72, -1, 38, 7, 90, - -1, 52, 7, 90, 7, 72, -1, 52, 7, 90, - -1, 38, 7, 5, -1, 52, 7, 5, -1, 34, - 7, 75, -1, 35, 7, 76, -1, 38, 7, 85, - 7, 77, -1, 36, 7, 85, 7, 78, 7, 78, - -1, 43, 7, 85, 7, 79, -1, 44, 7, 85, - 7, 80, 7, 81, 7, 82, -1, 52, 7, 85, - 7, 80, -1, 46, 7, 85, 7, 81, -1, 47, - 7, 85, 7, 82, -1, 45, 7, 85, 7, 83, - -1, 48, 7, 85, 7, 84, -1, 90, 11, 89, - -1, 72, 7, 90, 11, 89, -1, 56, -1, 57, - -1, 39, -1, 53, -1, 29, -1, 88, 7, 86, - 7, 85, -1, 18, 7, 88, 7, 86, 7, 85, - -1, 87, 7, 85, -1, 5, -1, 5, -1, 90, - -1, 5, -1, 5, -1, 5, -1, 90, -1, 4, - -1, 5, -1, 5, -1, 5, -1, 90, -1, 6, - -1, 6, -1, 5, -1, 4, -1, 3, -1, 90, - 3, -1 + 61, 0, -1, 62, 8, -1, -1, 63, -1, 64, + -1, 1, -1, 10, -1, 63, 10, -1, 63, 7, + -1, 63, 5, -1, 63, 92, -1, 12, 7, 26, + -1, 13, 7, 67, -1, 14, 7, 69, -1, 15, + 7, 70, -1, 16, 7, 75, -1, 17, 7, 71, + -1, 19, 7, 26, 7, 86, -1, 20, 7, 68, + -1, 21, 7, 65, -1, 22, 7, 66, -1, 23, + 7, 26, 7, 86, -1, 25, -1, 30, -1, 34, + -1, 33, -1, 32, -1, 31, -1, 59, -1, 30, + -1, 34, -1, 33, -1, 32, -1, 31, -1, 59, + -1, 28, -1, 52, -1, 50, 7, 31, 7, 92, + -1, 51, 7, 31, 7, 92, 7, 92, -1, 51, + 7, 31, 7, 92, 7, 92, 7, 73, -1, 29, + -1, 42, 7, 31, 7, 92, -1, 43, 7, 31, + 7, 92, 7, 92, -1, 43, 7, 31, 7, 92, + 7, 92, 7, 73, -1, 40, -1, 54, -1, 39, + 7, 31, 7, 5, -1, 53, 7, 31, 7, 5, + -1, 47, 7, 31, 7, 5, 7, 5, -1, 56, + 7, 31, 7, 5, 7, 5, 7, 92, -1, 37, + 7, 31, 7, 5, 7, 5, -1, 38, 7, 31, + 7, 5, 7, 5, 7, 92, -1, 30, -1, 26, + 7, 31, 7, 86, -1, 26, 7, 32, 7, 74, + 7, 86, -1, 26, 7, 33, 7, 86, -1, 26, + 7, 34, 7, 86, -1, 36, 7, 31, 7, 88, + -1, 41, 7, 5, 7, 92, 11, 90, -1, 38, + 7, 5, 7, 5, 7, 92, 11, 90, -1, 55, + 7, 5, 7, 92, 11, 90, -1, 56, 7, 5, + 7, 5, 7, 92, 11, 90, -1, 26, 7, 72, + -1, 24, 7, 91, -1, 39, 7, 92, 7, 73, + -1, 39, 7, 92, -1, 53, 7, 92, 7, 73, + -1, 53, 7, 92, -1, 39, 7, 5, -1, 53, + 7, 5, -1, 35, 7, 76, -1, 36, 7, 77, + -1, 39, 7, 86, 7, 78, -1, 37, 7, 86, + 7, 79, 7, 79, -1, 44, 7, 86, 7, 80, + -1, 45, 7, 86, 7, 81, 7, 82, 7, 83, + -1, 53, 7, 86, 7, 81, -1, 47, 7, 86, + 7, 82, -1, 48, 7, 86, 7, 83, -1, 46, + 7, 86, 7, 84, -1, 49, 7, 86, 7, 85, + -1, 92, 11, 90, -1, 73, 7, 92, 11, 90, + -1, 57, -1, 58, -1, 40, -1, 54, -1, 30, + -1, 89, 7, 87, 7, 86, -1, 18, 7, 89, + 7, 87, 7, 86, -1, 88, 7, 86, -1, 5, + -1, 5, -1, 92, -1, 5, -1, 5, -1, 5, + -1, 92, -1, 4, -1, 5, -1, 5, -1, 5, + -1, 92, -1, 6, -1, 6, -1, 5, -1, 4, + -1, 5, -1, 92, -1, 3, -1, 92, 3, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned char yyrline[] = { - 0, 79, 79, 81, 82, 83, 84, 87, 88, 89, - 90, 91, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 108, 109, 110, 111, 112, 113, - 116, 117, 118, 119, 120, 121, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 149, - 150, 151, 152, 153, 156, 157, 158, 159, 162, 163, - 166, 167, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 181, 182, 185, 186, 189, 190, 191, 194, 195, - 198, 201, 204, 207, 210, 213, 216, 219, 222, 223, - 226, 229, 232, 235, 238, 239, 240, 243, 244 + 0, 82, 82, 84, 85, 86, 87, 90, 91, 92, + 93, 94, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 111, 112, 113, 114, 115, 116, + 119, 120, 121, 122, 123, 124, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 152, + 153, 154, 155, 156, 157, 160, 161, 162, 163, 166, + 167, 170, 171, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 185, 186, 189, 190, 193, 194, 195, 198, + 199, 202, 205, 208, 211, 214, 217, 220, 223, 226, + 227, 230, 233, 236, 239, 242, 243, 244, 247, 248, + 251, 252 }; #endif @@ -474,7 +478,7 @@ "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "STRINGVAL", "SP", "LF", "CR", "HASH", "EQ", "ADD", "GET", "CREATE", "DESTROY", "LIST", "LOAD", "NON_MODAL", "REMOVE", "SET", "SUBSCRIBE", - "UNSUBSCRIBE", "RESET", "QUIT", "CHANNEL", "NOTIFICATION", + "UNSUBSCRIBE", "RESET", "ECHO", "QUIT", "CHANNEL", "NOTIFICATION", "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS", "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT", "INSTRUMENT", "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_CHANNEL_PARAMETER", @@ -494,7 +498,7 @@ "audio_output_device", "audio_output_channel", "audio_output_type", "midi_input_device", "midi_input_port", "midi_input_channel", "midi_input_type", "volume", "sampler_channel", "instrument_index", - "engine_name", "filename", "param_val", "string", 0 + "engine_name", "filename", "param_val", "boolean", "string", 0 }; #endif @@ -508,24 +512,25 @@ 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, 306, 307, 308, 309, 310, 311, 312, 313 + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const unsigned char yyr1[] = { - 0, 59, 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, 66, 67, - 67, 67, 67, 67, 68, 68, 68, 68, 69, 69, - 70, 70, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 72, 72, 73, 73, 74, 74, 74, 75, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 84, - 85, 86, 87, 88, 89, 89, 89, 90, 90 + 0, 60, 61, 62, 62, 62, 62, 63, 63, 63, + 63, 63, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, + 66, 66, 66, 66, 66, 66, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 68, + 68, 68, 68, 68, 68, 69, 69, 69, 69, 70, + 70, 71, 71, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 73, 73, 74, 74, 75, 75, 75, 76, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 85, 86, 87, 88, 89, 90, 90, 90, 91, 91, + 92, 92 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -537,11 +542,12 @@ 1, 1, 1, 1, 1, 1, 1, 1, 5, 7, 9, 1, 5, 7, 9, 1, 1, 5, 5, 7, 9, 7, 9, 1, 5, 7, 5, 5, 5, 7, - 9, 7, 9, 3, 5, 3, 5, 3, 3, 3, - 3, 3, 5, 7, 5, 9, 5, 5, 5, 5, - 5, 3, 5, 1, 1, 1, 1, 1, 5, 7, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2 + 9, 7, 9, 3, 3, 5, 3, 5, 3, 3, + 3, 3, 3, 5, 7, 5, 9, 5, 5, 5, + 5, 5, 3, 5, 1, 1, 1, 1, 1, 5, + 7, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -552,92 +558,92 @@ 0, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 107, 10, 9, 8, 11, 12, 0, 36, + 1, 2, 110, 10, 9, 8, 11, 12, 0, 36, 41, 53, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 37, 0, 46, 0, 13, 0, 0, 14, - 0, 0, 15, 87, 85, 86, 16, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 19, 24, 28, 27, - 26, 25, 29, 20, 30, 34, 33, 32, 31, 35, - 21, 0, 108, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 88, 86, 87, 16, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 0, 19, 24, 28, + 27, 26, 25, 29, 20, 30, 34, 33, 32, 31, + 35, 21, 0, 111, 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, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 67, 68, 69, 103, 0, 70, - 0, 71, 0, 102, 100, 18, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, - 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 66, 68, 69, 70, 104, + 0, 71, 0, 72, 0, 103, 101, 18, 108, 64, + 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 0, 22, 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, 54, 83, 84, 0, 56, 57, - 58, 0, 0, 47, 42, 0, 0, 38, 0, 48, - 0, 64, 0, 66, 0, 101, 0, 90, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 84, 85, 0, 56, 57, 58, 0, 0, 47, 42, + 0, 0, 38, 0, 48, 0, 65, 0, 67, 0, + 102, 0, 91, 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, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 51, 0, 43, 49, - 39, 0, 0, 106, 105, 104, 81, 0, 88, 92, - 0, 91, 72, 74, 93, 94, 0, 79, 97, 95, - 77, 96, 78, 98, 99, 80, 76, 0, 59, 61, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 44, 40, 50, 82, 89, 73, 0, 60, - 62, 0, 75 + 55, 51, 0, 43, 49, 39, 0, 0, 107, 106, + 105, 82, 0, 89, 93, 0, 92, 73, 75, 94, + 95, 0, 80, 98, 96, 78, 97, 79, 99, 100, + 81, 77, 0, 59, 61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 44, 40, 50, + 83, 90, 74, 0, 60, 62, 0, 76 }; /* YYDEFGOTO[NTERM-NUM]. */ static const short yydefgoto[] = { - -1, 15, 16, 17, 18, 83, 90, 56, 76, 59, - 62, 69, 155, 211, 197, 66, 139, 141, 272, 270, - 273, 276, 280, 282, 277, 285, 145, 216, 142, 140, - 266, 212 + -1, 15, 16, 17, 18, 84, 91, 56, 77, 59, + 62, 69, 160, 216, 202, 66, 141, 143, 277, 275, + 278, 281, 285, 287, 282, 290, 147, 221, 144, 142, + 271, 149, 217 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -250 +#define YYPACT_NINF -252 static const short yypact[] = { - 82, -250, -250, -1, 16, 100, 103, 128, 143, 144, - 147, 150, 151, 152, -250, 13, 30, 106, -250, 15, - -20, -27, -24, -19, 110, 53, -13, 23, 28, 55, - -250, -250, -250, -250, -250, -250, 127, -250, 153, -250, - -250, -250, 154, 155, 156, 157, -250, 158, 159, 160, - 161, 162, -250, 163, -250, 164, -250, 165, 166, -250, - 169, 170, -250, -250, -250, -250, -250, 171, 172, -250, - 174, 175, 176, 177, 178, 179, -250, -250, -250, -250, - -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, - -250, 180, -250, 107, 119, 167, 168, 173, 181, 182, - 183, 184, 185, 186, 188, 187, 187, 189, 190, 31, - 187, 191, 76, 194, 195, 196, 197, 191, 198, 199, - 200, 201, 202, 203, 213, 215, 216, 217, 218, 219, - 221, 223, 224, 36, 72, -250, -250, -250, 225, -250, - 226, -250, 228, 127, -250, -250, 229, 231, 232, 233, - 234, 235, 236, 237, 238, -250, 239, 240, 241, 242, - -250, 191, 6, 191, 191, 187, 245, 246, 247, 187, - 187, 248, 187, 187, 249, 250, 187, 187, 251, 253, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 254, 187, 187, 255, -250, -250, -250, 256, -250, -250, - -250, 257, 258, -250, 127, 84, 259, 127, 124, -250, - 260, 261, 33, 261, 262, -250, 263, -250, 264, 265, - 266, 268, 269, 271, 272, 273, 274, 275, 71, 73, - 276, 191, 279, 280, 187, 281, 187, 282, 187, 137, - 253, 191, 283, 284, 187, 285, 187, 286, 287, 142, - 285, 187, 137, 137, 187, -250, -250, 288, 126, -250, - 129, 289, 74, -250, -250, -250, -250, 290, -250, -250, - 291, -250, -250, -250, 127, -250, 292, -250, 127, -250, - -250, -250, -250, -250, -250, -250, -250, 97, -250, -250, - 123, 187, 187, 187, 187, 137, 191, 283, 286, 137, - 137, 127, 261, 261, 127, -250, -250, -250, 293, -250, - -250, 287, -250 + 85, -252, -252, 24, 39, 54, 73, 81, 105, 108, + 128, 144, 147, 148, -252, 92, 109, 124, -252, 126, + -14, -26, -9, -22, 110, 133, -21, 25, 32, 136, + -252, -252, -252, -252, -252, -252, 153, -252, 156, -252, + -252, -252, 157, 158, 159, 160, -252, 161, 162, 163, + 164, 165, -252, 166, -252, 167, -252, 168, 169, -252, + 170, 171, -252, -252, -252, -252, -252, 174, 175, -252, + 177, 178, 179, 180, 181, 182, 183, -252, -252, -252, + -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, + -252, -252, 184, -252, 107, 172, 173, 176, 185, 186, + 187, 188, 189, 190, 192, 194, 191, 191, 193, 195, + 3, 191, 196, 78, 77, 197, 200, 201, 203, 196, + 202, 204, 205, 206, 207, 208, 220, 221, 222, 223, + 224, 226, 228, 229, 230, 38, 40, -252, -252, -252, + 231, -252, 233, -252, 234, 153, -252, -252, -252, -252, + 153, 236, 237, 238, 239, 240, 241, 242, 243, 244, + -252, 245, 246, 247, 248, -252, 196, 90, 196, 196, + 191, 251, 252, 253, 191, 191, 254, 191, 191, 255, + 256, 191, 191, 257, 259, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 260, 191, 191, 261, -252, + -252, -252, 262, -252, -252, -252, 263, 264, -252, 153, + 75, 265, 153, 106, -252, 266, 267, -1, 267, 268, + -252, 269, -252, 270, 271, 273, 274, 276, 277, 278, + 279, 280, 281, 8, 49, 282, 196, 285, 286, 191, + 287, 191, 288, 191, 138, 259, 196, 289, 290, 191, + 291, 191, 292, 293, 145, 291, 191, 138, 138, 191, + -252, -252, 294, 129, -252, 130, 295, 74, -252, -252, + -252, -252, 296, -252, -252, 297, -252, -252, -252, 153, + -252, 298, -252, 153, -252, -252, -252, -252, -252, -252, + -252, -252, 76, -252, -252, 100, 191, 191, 191, 191, + 138, 196, 289, 292, 138, 138, 153, 267, 267, 153, + -252, -252, -252, 299, -252, -252, 293, -252 }; /* YYPGOTO[NTERM-NUM]. */ static const short yypgoto[] = { - -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, - -250, -250, -250, -175, -250, -250, -250, -250, -250, -109, - -250, -61, -107, -119, -250, -250, -116, -47, 39, 78, - -249, -17 + -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, + -252, -252, -252, -178, -252, -252, -252, -252, -252, -110, + -252, -62, -108, -120, -252, -252, -118, -48, 29, 27, + -251, -252, -17 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -647,72 +653,72 @@ #define YYTABLE_NINF -4 static const short yytable[] = { - 36, 160, 213, 288, 289, 38, 19, 39, 40, 41, - 63, 57, 71, 30, 60, 42, 43, 44, 45, 46, - 64, 47, 48, 20, 72, 58, 49, 73, 61, 50, - 51, 52, 53, 54, 65, 55, 92, 137, 31, 92, - 37, 74, 75, 176, 239, 194, 305, 198, 199, 138, - 309, 310, 77, 78, 79, 80, 81, 84, 85, 86, - 87, 88, 195, 196, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 92, 92, 92, 92, 70, 177, - 91, 82, 252, 1, 253, 295, 89, 92, 133, 134, - -3, 234, 2, 143, 3, 4, 5, 6, 7, 8, - 92, 9, 10, 11, 12, 13, 14, 21, 299, 32, - 22, 33, 146, 34, 147, 255, 35, 302, 303, 148, - 149, 150, 151, 152, 153, 268, 92, 92, 154, 92, - 92, 236, 92, 292, 300, 23, 293, 118, 119, 120, - 121, 263, 264, 265, 67, 68, 283, 284, 143, 122, - 24, 25, 204, 205, 26, 207, 208, 27, 28, 29, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 228, 229, 107, 108, 109, 110, - 306, 111, 112, 113, 114, 115, 116, 117, 307, 286, - 32, 308, 312, 267, 135, 136, 144, 123, 124, 156, - 157, 158, 159, 125, 200, 161, 162, 163, 164, 165, - 166, 126, 127, 128, 129, 130, 131, 258, 132, 260, - 167, 262, 168, 169, 170, 171, 172, 274, 173, 278, - 174, 175, 178, 179, 287, 180, 181, 290, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 201, 202, 203, 206, 209, 210, 214, 137, 215, 227, - 230, 0, 0, 231, 232, 233, 235, 237, 238, 240, - 241, 242, 243, 244, 301, 245, 246, 304, 247, 248, - 249, 250, 251, 254, 256, 257, 259, 261, 269, 271, - 275, 279, 281, 0, 0, 291, 294, 296, 297, 298, - 311 + 36, 165, 93, 71, 218, 72, 293, 294, 63, 139, + 244, 93, 38, 57, 39, 40, 41, 73, 64, 257, + 74, 140, 42, 43, 44, 45, 46, 58, 47, 48, + 60, 19, 65, 49, 75, 76, 50, 51, 52, 53, + 54, 93, 55, 93, 61, 181, 20, 182, 199, 310, + 203, 204, 93, 314, 315, 78, 79, 80, 81, 82, + 258, 21, 85, 86, 87, 88, 89, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 93, 93, 93, + 22, 32, 239, 148, 83, 300, 1, 304, 23, 135, + 136, 90, 30, -3, 145, 2, 150, 3, 4, 5, + 6, 7, 8, 93, 9, 10, 11, 12, 13, 93, + 14, 305, 24, 241, 151, 25, 152, 31, 260, 307, + 308, 153, 154, 155, 156, 157, 158, 32, 273, 33, + 159, 34, 93, 93, 35, 26, 297, 298, 120, 121, + 122, 123, 268, 269, 270, 67, 68, 200, 201, 288, + 289, 27, 37, 145, 28, 29, 93, 209, 210, 70, + 212, 213, 92, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 233, + 234, 110, 111, 311, 112, 113, 114, 115, 116, 117, + 118, 119, 312, 291, 32, 313, 317, 272, 137, 205, + 138, 146, 161, 124, 125, 162, 163, 126, 164, 166, + 219, 167, 168, 169, 170, 171, 127, 128, 129, 130, + 131, 132, 263, 133, 265, 134, 267, 172, 173, 174, + 175, 176, 279, 177, 283, 178, 179, 180, 183, 292, + 184, 185, 295, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 206, 207, 208, 211, + 214, 215, 0, 139, 220, 232, 235, 0, 0, 236, + 237, 238, 240, 242, 243, 245, 246, 247, 248, 306, + 249, 250, 309, 251, 252, 253, 254, 255, 256, 259, + 261, 262, 264, 266, 274, 276, 280, 284, 286, 0, + 0, 296, 299, 301, 302, 303, 316 }; static const short yycheck[] = { - 17, 117, 177, 252, 253, 25, 7, 27, 28, 29, - 29, 38, 25, 0, 38, 35, 36, 37, 38, 39, - 39, 41, 42, 7, 37, 52, 46, 40, 52, 49, - 50, 51, 52, 53, 53, 55, 3, 6, 8, 3, - 25, 54, 55, 7, 11, 161, 295, 163, 164, 18, - 299, 300, 29, 30, 31, 32, 33, 29, 30, 31, - 32, 33, 56, 57, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 3, 3, 3, 3, 25, 7, - 25, 58, 11, 1, 11, 11, 58, 3, 105, 106, - 8, 7, 10, 110, 12, 13, 14, 15, 16, 17, - 3, 19, 20, 21, 22, 23, 24, 7, 11, 3, - 7, 5, 36, 7, 38, 231, 10, 292, 293, 43, - 44, 45, 46, 47, 48, 241, 3, 3, 52, 3, - 3, 7, 3, 7, 11, 7, 7, 30, 31, 32, - 33, 4, 5, 6, 34, 35, 4, 5, 165, 30, - 7, 7, 169, 170, 7, 172, 173, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 191, 192, 7, 7, 7, 7, - 296, 7, 7, 7, 7, 7, 7, 7, 297, 250, - 3, 298, 311, 240, 5, 5, 5, 30, 30, 5, - 5, 5, 5, 30, 165, 7, 7, 7, 7, 7, - 7, 30, 30, 30, 30, 30, 30, 234, 30, 236, - 7, 238, 7, 7, 7, 7, 7, 244, 7, 246, - 7, 7, 7, 7, 251, 7, 7, 254, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 5, 5, 5, 5, 5, 5, 178, 6, 5, 5, - 5, -1, -1, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 291, 7, 7, 294, 7, 7, - 7, 7, 7, 7, 5, 5, 5, 5, 5, 5, - 5, 5, 5, -1, -1, 7, 7, 7, 7, 7, - 7 + 17, 119, 3, 24, 182, 26, 257, 258, 30, 6, + 11, 3, 26, 39, 28, 29, 30, 38, 40, 11, + 41, 18, 36, 37, 38, 39, 40, 53, 42, 43, + 39, 7, 54, 47, 55, 56, 50, 51, 52, 53, + 54, 3, 56, 3, 53, 7, 7, 7, 166, 300, + 168, 169, 3, 304, 305, 30, 31, 32, 33, 34, + 11, 7, 30, 31, 32, 33, 34, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 3, 3, 3, + 7, 3, 7, 5, 59, 11, 1, 11, 7, 106, + 107, 59, 0, 8, 111, 10, 113, 12, 13, 14, + 15, 16, 17, 3, 19, 20, 21, 22, 23, 3, + 25, 11, 7, 7, 37, 7, 39, 8, 236, 297, + 298, 44, 45, 46, 47, 48, 49, 3, 246, 5, + 53, 7, 3, 3, 10, 7, 7, 7, 31, 32, + 33, 34, 4, 5, 6, 35, 36, 57, 58, 4, + 5, 7, 26, 170, 7, 7, 3, 174, 175, 26, + 177, 178, 26, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 196, + 197, 7, 7, 301, 7, 7, 7, 7, 7, 7, + 7, 7, 302, 255, 3, 303, 316, 245, 5, 170, + 5, 5, 5, 31, 31, 5, 5, 31, 5, 7, + 183, 7, 7, 7, 7, 7, 31, 31, 31, 31, + 31, 31, 239, 31, 241, 31, 243, 7, 7, 7, + 7, 7, 249, 7, 251, 7, 7, 7, 7, 256, + 7, 7, 259, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, + 5, 5, -1, 6, 5, 5, 5, -1, -1, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 296, + 7, 7, 299, 7, 7, 7, 7, 7, 7, 7, + 5, 5, 5, 5, 5, 5, 5, 5, 5, -1, + -1, 7, 7, 7, 7, 7, 7 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -720,37 +726,37 @@ static const unsigned char yystos[] = { 0, 1, 10, 12, 13, 14, 15, 16, 17, 19, - 20, 21, 22, 23, 24, 60, 61, 62, 63, 7, + 20, 21, 22, 23, 25, 61, 62, 63, 64, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 0, 8, 3, 5, 7, 10, 90, 25, 25, 27, - 28, 29, 35, 36, 37, 38, 39, 41, 42, 46, - 49, 50, 51, 52, 53, 55, 66, 38, 52, 68, - 38, 52, 69, 29, 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, 3, 7, 7, 7, 7, 7, 7, 7, + 0, 8, 3, 5, 7, 10, 92, 26, 26, 28, + 29, 30, 36, 37, 38, 39, 40, 42, 43, 47, + 50, 51, 52, 53, 54, 56, 67, 39, 53, 69, + 39, 53, 70, 30, 40, 54, 75, 35, 36, 71, + 26, 24, 26, 38, 41, 55, 56, 68, 30, 31, + 32, 33, 34, 59, 65, 30, 31, 32, 33, 34, + 59, 66, 26, 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, 30, 31, - 32, 33, 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 90, 90, 5, 5, 6, 18, 75, - 88, 76, 87, 90, 5, 85, 36, 38, 43, 44, - 45, 46, 47, 48, 52, 71, 5, 5, 5, 5, - 85, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 31, 32, 33, 34, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 92, 92, 5, 5, 6, + 18, 76, 89, 77, 88, 92, 5, 86, 5, 91, + 92, 37, 39, 44, 45, 46, 47, 48, 49, 53, + 72, 5, 5, 5, 5, 86, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 85, 56, 57, 73, 85, 85, - 87, 5, 5, 5, 90, 90, 5, 90, 90, 5, - 5, 72, 90, 72, 88, 5, 86, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 5, 90, 90, - 5, 7, 7, 7, 7, 7, 7, 7, 7, 11, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 11, 11, 7, 85, 5, 5, 90, 5, - 90, 5, 90, 4, 5, 6, 89, 86, 85, 5, - 78, 5, 77, 79, 90, 5, 80, 83, 90, 5, - 81, 5, 82, 4, 5, 84, 80, 90, 89, 89, - 90, 7, 7, 7, 7, 11, 7, 7, 7, 11, - 11, 90, 72, 72, 90, 89, 85, 78, 81, 89, - 89, 7, 82 + 7, 7, 7, 7, 7, 7, 7, 7, 7, 86, + 57, 58, 74, 86, 86, 88, 5, 5, 5, 92, + 92, 5, 92, 92, 5, 5, 73, 92, 73, 89, + 5, 87, 86, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 5, 92, 92, 5, 7, 7, 7, 7, + 7, 7, 7, 7, 11, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 11, 11, 7, + 86, 5, 5, 92, 5, 92, 5, 92, 4, 5, + 6, 90, 87, 86, 5, 79, 5, 78, 80, 92, + 5, 81, 84, 92, 5, 82, 5, 83, 4, 5, + 85, 81, 92, 90, 90, 92, 7, 7, 7, 7, + 11, 7, 7, 7, 11, 11, 92, 73, 73, 92, + 90, 86, 79, 82, 90, 90, 7, 83 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -1361,447 +1367,462 @@ switch (yyn) { case 3: -#line 81 "lscp.y" +#line 84 "lscp.y" { return LSCP_DONE; } break; case 4: -#line 82 "lscp.y" +#line 85 "lscp.y" { return LSCP_DONE; } break; case 5: -#line 83 "lscp.y" +#line 86 "lscp.y" { LSCPSERVER->AnswerClient(yyvsp[0].String); return LSCP_DONE; } break; case 6: -#line 84 "lscp.y" +#line 87 "lscp.y" { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; } break; case 12: -#line 94 "lscp.y" +#line 97 "lscp.y" { yyval.String = LSCPSERVER->AddChannel(); } break; case 13: -#line 95 "lscp.y" +#line 98 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 14: -#line 96 "lscp.y" +#line 99 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 15: -#line 97 "lscp.y" +#line 100 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 16: -#line 98 "lscp.y" +#line 101 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 17: -#line 99 "lscp.y" +#line 102 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 18: -#line 100 "lscp.y" +#line 103 "lscp.y" { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number); } break; case 19: -#line 101 "lscp.y" +#line 104 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 20: -#line 102 "lscp.y" +#line 105 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 21: -#line 103 "lscp.y" +#line 106 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 22: -#line 104 "lscp.y" +#line 107 "lscp.y" { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number); } break; case 23: -#line 105 "lscp.y" +#line 108 "lscp.y" { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; } break; case 24: -#line 108 "lscp.y" +#line 111 "lscp.y" { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channels); } break; case 25: -#line 109 "lscp.y" +#line 112 "lscp.y" { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count); } break; case 26: -#line 110 "lscp.y" +#line 113 "lscp.y" { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count); } break; case 27: -#line 111 "lscp.y" +#line 114 "lscp.y" { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill); } break; case 28: -#line 112 "lscp.y" +#line 115 "lscp.y" { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_info); } break; case 29: -#line 113 "lscp.y" +#line 116 "lscp.y" { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc); } break; case 30: -#line 116 "lscp.y" +#line 119 "lscp.y" { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channels); } break; case 31: -#line 117 "lscp.y" +#line 120 "lscp.y" { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count); } break; case 32: -#line 118 "lscp.y" +#line 121 "lscp.y" { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count); } break; case 33: -#line 119 "lscp.y" +#line 122 "lscp.y" { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill); } break; case 34: -#line 120 "lscp.y" +#line 123 "lscp.y" { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_info); } break; case 35: -#line 121 "lscp.y" +#line 124 "lscp.y" { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc); } break; case 36: -#line 124 "lscp.y" +#line 127 "lscp.y" { yyval.String = LSCPSERVER->GetAvailableEngines(); } break; case 37: -#line 125 "lscp.y" +#line 128 "lscp.y" { yyval.String = LSCPSERVER->GetAvailableMidiInputDrivers(); } break; case 38: -#line 126 "lscp.y" +#line 129 "lscp.y" { yyval.String = LSCPSERVER->GetMidiInputDriverInfo(yyvsp[0].String); } break; case 39: -#line 127 "lscp.y" +#line 130 "lscp.y" { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String); } break; case 40: -#line 128 "lscp.y" +#line 131 "lscp.y" { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList); } break; case 41: -#line 129 "lscp.y" +#line 132 "lscp.y" { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers(); } break; case 42: -#line 130 "lscp.y" +#line 133 "lscp.y" { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String); } break; case 43: -#line 131 "lscp.y" +#line 134 "lscp.y" { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String); } break; case 44: -#line 132 "lscp.y" +#line 135 "lscp.y" { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList); } break; case 45: -#line 133 "lscp.y" +#line 136 "lscp.y" { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount(); } break; case 46: -#line 134 "lscp.y" +#line 137 "lscp.y" { yyval.String = LSCPSERVER->GetMidiInputDeviceCount(); } break; case 47: -#line 135 "lscp.y" +#line 138 "lscp.y" { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number); } break; case 48: -#line 136 "lscp.y" +#line 139 "lscp.y" { yyval.String = LSCPSERVER->GetMidiInputDeviceInfo(yyvsp[0].Number); } break; case 49: -#line 137 "lscp.y" +#line 140 "lscp.y" { yyval.String = LSCPSERVER->GetMidiInputPortInfo(yyvsp[-2].Number, yyvsp[0].Number); } break; case 50: -#line 138 "lscp.y" +#line 141 "lscp.y" { yyval.String = LSCPSERVER->GetMidiInputPortParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); } break; case 51: -#line 139 "lscp.y" +#line 142 "lscp.y" { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number); } break; case 52: -#line 140 "lscp.y" +#line 143 "lscp.y" { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); } break; case 53: -#line 141 "lscp.y" +#line 144 "lscp.y" { yyval.String = LSCPSERVER->GetChannels(); } break; case 54: -#line 142 "lscp.y" +#line 145 "lscp.y" { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number); } break; case 55: -#line 143 "lscp.y" +#line 146 "lscp.y" { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number); } break; case 56: -#line 144 "lscp.y" +#line 147 "lscp.y" { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number); } break; case 57: -#line 145 "lscp.y" +#line 148 "lscp.y" { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number); } break; case 58: -#line 146 "lscp.y" +#line 149 "lscp.y" { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String); } break; case 59: -#line 149 "lscp.y" +#line 152 "lscp.y" { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } break; case 60: -#line 150 "lscp.y" +#line 153 "lscp.y" { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } break; case 61: -#line 151 "lscp.y" +#line 154 "lscp.y" { yyval.String = LSCPSERVER->SetMidiInputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } break; case 62: -#line 152 "lscp.y" +#line 155 "lscp.y" { yyval.String = LSCPSERVER->SetMidiInputPortParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } break; case 63: -#line 153 "lscp.y" +#line 156 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 64: -#line 156 "lscp.y" - { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); } +#line 157 "lscp.y" + { yyval.String = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, yyvsp[0].Dotnum); } break; case 65: -#line 157 "lscp.y" - { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String); } +#line 160 "lscp.y" + { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); } break; case 66: -#line 158 "lscp.y" - { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); } +#line 161 "lscp.y" + { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String); } break; case 67: -#line 159 "lscp.y" - { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[0].String); } +#line 162 "lscp.y" + { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); } break; case 68: -#line 162 "lscp.y" - { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); } +#line 163 "lscp.y" + { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[0].String); } break; case 69: -#line 163 "lscp.y" - { yyval.String = LSCPSERVER->DestroyMidiInputDevice(yyvsp[0].Number); } +#line 166 "lscp.y" + { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); } break; case 70: -#line 166 "lscp.y" - { yyval.String = yyvsp[0].String; } +#line 167 "lscp.y" + { yyval.String = LSCPSERVER->DestroyMidiInputDevice(yyvsp[0].Number); } break; case 71: -#line 167 "lscp.y" +#line 170 "lscp.y" { yyval.String = yyvsp[0].String; } break; case 72: -#line 170 "lscp.y" - { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number); } +#line 171 "lscp.y" + { yyval.String = yyvsp[0].String; } break; case 73: -#line 171 "lscp.y" - { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); } +#line 174 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number); } break; case 74: -#line 172 "lscp.y" - { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number); } +#line 175 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); } break; case 75: -#line 173 "lscp.y" - { yyval.String = LSCPSERVER->SetMIDIInput(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-6].Number); } +#line 176 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number); } break; case 76: -#line 174 "lscp.y" - { yyval.String = LSCPSERVER->SetMIDIInputDevice(yyvsp[0].Number, yyvsp[-2].Number); } +#line 177 "lscp.y" + { yyval.String = LSCPSERVER->SetMIDIInput(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-6].Number); } break; case 77: -#line 175 "lscp.y" - { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].Number, yyvsp[-2].Number); } +#line 178 "lscp.y" + { yyval.String = LSCPSERVER->SetMIDIInputDevice(yyvsp[0].Number, yyvsp[-2].Number); } break; case 78: -#line 176 "lscp.y" - { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number); } +#line 179 "lscp.y" + { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].Number, yyvsp[-2].Number); } break; case 79: -#line 177 "lscp.y" - { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number); } +#line 180 "lscp.y" + { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number); } break; case 80: -#line 178 "lscp.y" - { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number); } +#line 181 "lscp.y" + { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number); } break; case 81: -#line 181 "lscp.y" - { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; } +#line 182 "lscp.y" + { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number); } break; case 82: -#line 182 "lscp.y" - { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; } +#line 185 "lscp.y" + { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; } break; case 83: -#line 185 "lscp.y" - { yyval.FillResponse = fill_response_bytes; } +#line 186 "lscp.y" + { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; } break; case 84: -#line 186 "lscp.y" - { yyval.FillResponse = fill_response_percentage; } +#line 189 "lscp.y" + { yyval.FillResponse = fill_response_bytes; } break; case 85: -#line 189 "lscp.y" - { yyval.String = LSCPSERVER->GetAudioOutputDevices(); } +#line 190 "lscp.y" + { yyval.FillResponse = fill_response_percentage; } break; case 86: -#line 190 "lscp.y" - { yyval.String = LSCPSERVER->GetMidiInputDevices(); } +#line 193 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputDevices(); } break; case 87: -#line 191 "lscp.y" - { yyval.String = LSCPSERVER->ListChannels(); } +#line 194 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDevices(); } break; case 88: -#line 194 "lscp.y" - { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); } +#line 195 "lscp.y" + { yyval.String = LSCPSERVER->ListChannels(); } break; case 89: -#line 195 "lscp.y" - { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true); } +#line 198 "lscp.y" + { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); } break; case 90: -#line 198 "lscp.y" +#line 199 "lscp.y" + { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true); } + break; + + case 91: +#line 202 "lscp.y" { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); } break; - case 99: -#line 223 "lscp.y" + case 100: +#line 227 "lscp.y" { yyval.Dotnum = yyvsp[0].Number; } break; - case 104: -#line 238 "lscp.y" + case 105: +#line 242 "lscp.y" { yyval.String = yyvsp[0].String; } break; - case 105: -#line 239 "lscp.y" + case 106: +#line 243 "lscp.y" { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str(); } break; - case 106: -#line 240 "lscp.y" + case 107: +#line 244 "lscp.y" { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str(); } break; - case 107: -#line 243 "lscp.y" + case 108: +#line 247 "lscp.y" + { yyval.Dotnum = yyvsp[0].Number; } + break; + + case 109: +#line 248 "lscp.y" + { yyval.Dotnum = -1; } + break; + + case 110: +#line 251 "lscp.y" { std::string s; s = yyvsp[0].Char; yyval.String = s; } break; - case 108: -#line 244 "lscp.y" + case 111: +#line 252 "lscp.y" { yyval.String = yyvsp[-1].String + yyvsp[0].Char; } break; @@ -1809,7 +1830,7 @@ } /* Line 999 of yacc.c. */ -#line 1813 "y.tab.c" +#line 1834 "y.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -2003,7 +2024,7 @@ } -#line 247 "lscp.y" +#line 255 "lscp.y" /**