/[svn]/linuxsampler/trunk/src/network/lscpparser.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/network/lscpparser.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 35 by schoenebeck, Fri Mar 5 13:46:15 2004 UTC revision 135 by senkov, Sun Jun 20 16:01:50 2004 UTC
# Line 1  Line 1 
1  /* A Bison parser, made by GNU Bison 1.875a.  */  /* A Bison parser, made by GNU Bison 1.875.  */
2    
3  /* Skeleton parser for Yacc-like parsing with Bison,  /* Skeleton parser for Yacc-like parsing with Bison,
4     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
5    
6     This program is free software; you can redistribute it and/or modify     This program is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by     it under the terms of the GNU General Public License as published by
# Line 56  Line 56 
56       CHAR = 258,       CHAR = 258,
57       DOTNUM = 259,       DOTNUM = 259,
58       NUMBER = 260,       NUMBER = 260,
59       SP = 261,       STRINGVAL = 261,
60       LF = 262,       SP = 262,
61       CR = 263,       LF = 263,
62       ADD = 264,       CR = 264,
63       GET = 265,       HASH = 265,
64       LOAD = 266,       EQ = 266,
65       REMOVE = 267,       ADD = 267,
66       SET = 268,       GET = 268,
67       SUBSCRIBE = 269,       CREATE = 269,
68       UNSUBSCRIBE = 270,       DESTROY = 270,
69       RESET = 271,       LIST = 271,
70       QUIT = 272,       LOAD = 272,
71       CHANNEL = 273,       LOAD_BACKGROUND = 273,
72       NOTIFICATION = 274,       REMOVE = 274,
73       AVAILABLE_ENGINES = 275,       SET = 275,
74       CHANNELS = 276,       SUBSCRIBE = 276,
75       INFO = 277,       UNSUBSCRIBE = 277,
76       BUFFER_FILL = 278,       RESET = 278,
77       STREAM_COUNT = 279,       QUIT = 279,
78       VOICE_COUNT = 280,       CHANNEL = 280,
79       INSTRUMENT = 281,       NOTIFICATION = 281,
80       ENGINE = 282,       AVAILABLE_ENGINES = 282,
81       AUDIO_OUTPUT_CHANNEL = 283,       AVAILABLE_AUDIO_OUTPUT_DRIVERS = 283,
82       AUDIO_OUTPUT_TYPE = 284,       CHANNELS = 284,
83       MIDI_INPUT_PORT = 285,       INFO = 285,
84       MIDI_INPUT_CHANNEL = 286,       BUFFER_FILL = 286,
85       MIDI_INPUT_TYPE = 287,       STREAM_COUNT = 287,
86       VOLUME = 288,       VOICE_COUNT = 288,
87       BYTES = 289,       INSTRUMENT = 289,
88       PERCENTAGE = 290,       ENGINE = 290,
89       ALSA = 291,       AUDIO_OUTPUT_CHANNEL = 291,
90       JACK = 292       AUDIO_OUTPUT_CHANNEL_PARAMETER = 292,
91         AUDIO_OUTPUT_DEVICE = 293,
92         AUDIO_OUTPUT_DEVICES = 294,
93         AUDIO_OUTPUT_DEVICE_PARAMETER = 295,
94         AUDIO_OUTPUT_DRIVER = 296,
95         AUDIO_OUTPUT_DRIVER_PARAMETER = 297,
96         MIDI_INPUT_PORT = 298,
97         MIDI_INPUT_CHANNEL = 299,
98         MIDI_INPUT_TYPE = 300,
99         VOLUME = 301,
100         BYTES = 302,
101         PERCENTAGE = 303,
102         MISCELLANEOUS = 304
103     };     };
104  #endif  #endif
105  #define CHAR 258  #define CHAR 258
106  #define DOTNUM 259  #define DOTNUM 259
107  #define NUMBER 260  #define NUMBER 260
108  #define SP 261  #define STRINGVAL 261
109  #define LF 262  #define SP 262
110  #define CR 263  #define LF 263
111  #define ADD 264  #define CR 264
112  #define GET 265  #define HASH 265
113  #define LOAD 266  #define EQ 266
114  #define REMOVE 267  #define ADD 267
115  #define SET 268  #define GET 268
116  #define SUBSCRIBE 269  #define CREATE 269
117  #define UNSUBSCRIBE 270  #define DESTROY 270
118  #define RESET 271  #define LIST 271
119  #define QUIT 272  #define LOAD 272
120  #define CHANNEL 273  #define LOAD_BACKGROUND 273
121  #define NOTIFICATION 274  #define REMOVE 274
122  #define AVAILABLE_ENGINES 275  #define SET 275
123  #define CHANNELS 276  #define SUBSCRIBE 276
124  #define INFO 277  #define UNSUBSCRIBE 277
125  #define BUFFER_FILL 278  #define RESET 278
126  #define STREAM_COUNT 279  #define QUIT 279
127  #define VOICE_COUNT 280  #define CHANNEL 280
128  #define INSTRUMENT 281  #define NOTIFICATION 281
129  #define ENGINE 282  #define AVAILABLE_ENGINES 282
130  #define AUDIO_OUTPUT_CHANNEL 283  #define AVAILABLE_AUDIO_OUTPUT_DRIVERS 283
131  #define AUDIO_OUTPUT_TYPE 284  #define CHANNELS 284
132  #define MIDI_INPUT_PORT 285  #define INFO 285
133  #define MIDI_INPUT_CHANNEL 286  #define BUFFER_FILL 286
134  #define MIDI_INPUT_TYPE 287  #define STREAM_COUNT 287
135  #define VOLUME 288  #define VOICE_COUNT 288
136  #define BYTES 289  #define INSTRUMENT 289
137  #define PERCENTAGE 290  #define ENGINE 290
138  #define ALSA 291  #define AUDIO_OUTPUT_CHANNEL 291
139  #define JACK 292  #define AUDIO_OUTPUT_CHANNEL_PARAMETER 292
140    #define AUDIO_OUTPUT_DEVICE 293
141    #define AUDIO_OUTPUT_DEVICES 294
142    #define AUDIO_OUTPUT_DEVICE_PARAMETER 295
143    #define AUDIO_OUTPUT_DRIVER 296
144    #define AUDIO_OUTPUT_DRIVER_PARAMETER 297
145    #define MIDI_INPUT_PORT 298
146    #define MIDI_INPUT_CHANNEL 299
147    #define MIDI_INPUT_TYPE 300
148    #define VOLUME 301
149    #define BYTES 302
150    #define PERCENTAGE 303
151    #define MISCELLANEOUS 304
152    
153    
154    
# Line 183  typedef int YYSTYPE; Line 207  typedef int YYSTYPE;
207    
208    
209  /* Line 214 of yacc.c.  */  /* Line 214 of yacc.c.  */
210  #line 187 "y.tab.c"  #line 210 "y.tab.c"
211    
212  #if ! defined (yyoverflow) || YYERROR_VERBOSE  #if ! defined (yyoverflow) || YYERROR_VERBOSE
213    
# Line 280  union yyalloc Line 304  union yyalloc
304  #endif  #endif
305    
306  /* YYFINAL -- State number of the termination state. */  /* YYFINAL -- State number of the termination state. */
307  #define YYFINAL  22  #define YYFINAL  32
308  /* YYLAST -- Last index in YYTABLE.  */  /* YYLAST -- Last index in YYTABLE.  */
309  #define YYLAST   123  #define YYLAST   219
310    
311  /* YYNTOKENS -- Number of terminals. */  /* YYNTOKENS -- Number of terminals. */
312  #define YYNTOKENS  38  #define YYNTOKENS  50
313  /* YYNNTS -- Number of nonterminals. */  /* YYNNTS -- Number of nonterminals. */
314  #define YYNNTS  24  #define YYNNTS  29
315  /* YYNRULES -- Number of rules. */  /* YYNRULES -- Number of rules. */
316  #define YYNRULES  56  #define YYNRULES  88
317  /* YYNRULES -- Number of states. */  /* YYNRULES -- Number of states. */
318  #define YYNSTATES  136  #define YYNSTATES  228
319    
320  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
321  #define YYUNDEFTOK  2  #define YYUNDEFTOK  2
322  #define YYMAXUTOK   292  #define YYMAXUTOK   304
323    
324  #define YYTRANSLATE(YYX)                                                \  #define YYTRANSLATE(YYX)                                                \
325    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 332  static const unsigned char yytranslate[] Line 356  static const unsigned char yytranslate[]
356         5,     6,     7,     8,     9,    10,    11,    12,    13,    14,         5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
357        15,    16,    17,    18,    19,    20,    21,    22,    23,    24,        15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
358        25,    26,    27,    28,    29,    30,    31,    32,    33,    34,        25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
359        35,    36,    37        35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
360          45,    46,    47,    48,    49
361  };  };
362    
363  #if YYDEBUG  #if YYDEBUG
364  /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in  /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
365     YYRHS.  */     YYRHS.  */
366  static const unsigned char yyprhs[] =  static const unsigned short yyprhs[] =
367  {  {
368         0,     0,     3,     5,     9,    14,    15,    17,    19,    23,         0,     0,     3,     5,     9,    14,    15,    17,    19,    21,
369        27,    31,    37,    43,    49,    55,    61,    63,    65,    67,        23,    26,    29,    32,    35,    39,    43,    47,    51,    55,
370        73,    81,    87,    93,    99,   103,   107,   113,   119,   125,        59,    63,    69,    73,    77,    81,    87,    89,    91,    93,
371       131,   137,   143,   145,   147,   153,   157,   159,   161,   163,        95,    97,    99,   101,   103,   105,   107,   109,   111,   113,
372       165,   167,   169,   171,   173,   175,   177,   179,   181,   183,       115,   117,   123,   131,   141,   143,   149,   157,   167,   169,
373       185,   189,   191,   193,   196,   199,   201       175,   183,   189,   195,   201,   209,   219,   223,   229,   233,
374         237,   241,   247,   255,   261,   267,   273,   279,   283,   289,
375         291,   293,   295,   301,   305,   307,   309,   311,   313,   315,
376         317,   319,   321,   323,   325,   327,   329,   331,   333
377  };  };
378    
379  /* YYRHS -- A `-1'-separated list of the rules' RHS. */  /* YYRHS -- A `-1'-separated list of the rules' RHS. */
380  static const yysigned_char yyrhs[] =  static const yysigned_char yyrhs[] =
381  {  {
382        39,     0,    -1,    40,    -1,    39,     7,    40,    -1,    39,        51,     0,    -1,    52,    -1,    51,     8,    52,    -1,    51,
383         8,     7,    40,    -1,    -1,    41,    -1,     1,    -1,     9,         9,     8,    52,    -1,    -1,    53,    -1,    54,    -1,     1,
384         6,    18,    -1,    10,     6,    42,    -1,    11,     6,    43,        -1,    10,    -1,    53,    10,    -1,    53,     7,    -1,    53,
385        -1,    12,     6,    18,     6,    51,    -1,    13,     6,    18,         5,    -1,    53,    78,    -1,    12,     7,    25,    -1,    13,
386         6,    44,    -1,    14,     6,    19,     6,    53,    -1,    15,         7,    57,    -1,    14,     7,    59,    -1,    15,     7,    60,
387         6,    19,     6,    56,    -1,    16,     6,    18,     6,    51,        -1,    16,     7,    65,    -1,    17,     7,    61,    -1,    18,
388        -1,    17,    -1,    20,    -1,    21,    -1,    18,     6,    22,         7,    61,    -1,    19,     7,    25,     7,    70,    -1,    20,
389         6,    51,    -1,    18,     6,    23,     6,    45,     6,    51,         7,    58,    -1,    21,     7,    55,    -1,    22,     7,    56,
390        -1,    18,     6,    24,     6,    51,    -1,    18,     6,    25,        -1,    23,     7,    25,     7,    70,    -1,    24,    -1,    29,
391         6,    51,    -1,    27,     6,    22,     6,    57,    -1,    26,        -1,    33,    -1,    32,    -1,    31,    -1,    30,    -1,    49,
392         6,    46,    -1,    27,     6,    47,    -1,    28,     6,    51,        -1,    29,    -1,    33,    -1,    32,    -1,    31,    -1,    30,
393         6,    54,    -1,    29,     6,    51,     6,    48,    -1,    30,        -1,    49,    -1,    27,    -1,    28,    -1,    41,     7,    30,
394         6,    51,     6,    58,    -1,    31,     6,    51,     6,    55,         7,    78,    -1,    42,     7,    30,     7,    78,     7,    78,
395        -1,    32,     6,    51,     6,    49,    -1,    33,     6,    51,        -1,    42,     7,    30,     7,    78,     7,    78,     7,    63,
396         6,    50,    -1,    34,    -1,    35,    -1,    59,     6,    52,        -1,    39,    -1,    38,     7,    30,     7,     5,    -1,    36,
397         6,    51,    -1,    57,     6,    51,    -1,    36,    -1,    37,         7,    30,     7,     5,     7,     5,    -1,    37,     7,    30,
398        -1,    36,    -1,     4,    -1,     5,    -1,     5,    -1,     5,         7,     5,     7,     5,     7,    78,    -1,    29,    -1,    25,
399        -1,     5,    -1,     5,    -1,     5,    -1,    60,    -1,    61,         7,    30,     7,    70,    -1,    25,     7,    31,     7,    64,
400        -1,    60,    -1,    60,    -1,    59,     6,    60,    -1,    61,         7,    70,    -1,    25,     7,    32,     7,    70,    -1,    25,
401        -1,     5,    -1,    60,    61,    -1,    60,     5,    -1,     3,         7,    33,     7,    70,    -1,    35,     7,    30,     7,    74,
402        -1,    61,     3,    -1        -1,    40,     7,     5,     7,    78,    11,    77,    -1,    37,
403           7,     5,     7,     5,     7,    78,    11,    77,    -1,    25,
404           7,    62,    -1,    38,     7,    78,     7,    63,    -1,    38,
405           7,     5,    -1,    34,     7,    66,    -1,    35,     7,    67,
406          -1,    38,     7,    70,     7,     5,    -1,    36,     7,    70,
407           7,    72,     7,    72,    -1,    43,     7,    70,     7,    75,
408          -1,    44,     7,    70,     7,    73,    -1,    45,     7,    70,
409           7,    68,    -1,    46,     7,    70,     7,    69,    -1,    78,
410          11,    77,    -1,    63,     7,    78,    11,    77,    -1,    47,
411          -1,    48,    -1,    39,    -1,    76,     7,    71,     7,    70,
412          -1,    74,     7,    70,    -1,    78,    -1,     4,    -1,     5,
413          -1,     5,    -1,     5,    -1,     5,    -1,     5,    -1,    78,
414          -1,     6,    -1,     6,    -1,     6,    -1,     5,    -1,     4,
415          -1,     3,    -1,    78,     3,    -1
416  };  };
417    
418  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
419  static const unsigned char yyrline[] =  static const unsigned char yyrline[] =
420  {  {
421         0,    76,    76,    77,    78,    81,    82,    83,    86,    87,         0,    77,    77,    78,    79,    82,    83,    84,    85,    88,
422        88,    89,    90,    91,    92,    93,    94,    97,    98,    99,        89,    90,    91,    92,    95,    96,    97,    98,    99,   100,
423       100,   101,   102,   103,   106,   107,   110,   111,   112,   113,       101,   102,   103,   104,   105,   106,   107,   110,   111,   112,
424       114,   115,   118,   119,   122,   125,   128,   129,   132,   135,       113,   114,   115,   118,   119,   120,   121,   122,   123,   126,
425       136,   139,   142,   145,   148,   151,   154,   157,   160,   163,       127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
426       164,   167,   168,   169,   170,   173,   174       137,   138,   139,   140,   143,   144,   145,   148,   151,   154,
427         155,   158,   159,   160,   161,   162,   163,   166,   167,   170,
428         171,   174,   177,   180,   183,   186,   187,   190,   193,   196,
429         199,   202,   205,   208,   211,   212,   213,   216,   217
430  };  };
431  #endif  #endif
432    
# Line 391  static const unsigned char yyrline[] = Line 435  static const unsigned char yyrline[] =
435     First, the terminals, then, starting at YYNTOKENS, nonterminals. */     First, the terminals, then, starting at YYNTOKENS, nonterminals. */
436  static const char *const yytname[] =  static const char *const yytname[] =
437  {  {
438    "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "SP", "LF",    "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "STRINGVAL",
439    "CR", "ADD", "GET", "LOAD", "REMOVE", "SET", "SUBSCRIBE", "UNSUBSCRIBE",    "SP", "LF", "CR", "HASH", "EQ", "ADD", "GET", "CREATE", "DESTROY",
440    "RESET", "QUIT", "CHANNEL", "NOTIFICATION", "AVAILABLE_ENGINES",    "LIST", "LOAD", "LOAD_BACKGROUND", "REMOVE", "SET", "SUBSCRIBE",
441    "CHANNELS", "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT",    "UNSUBSCRIBE", "RESET", "QUIT", "CHANNEL", "NOTIFICATION",
442    "INSTRUMENT", "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_TYPE",    "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS",
443    "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "VOLUME",    "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT", "INSTRUMENT",
444    "BYTES", "PERCENTAGE", "ALSA", "JACK", "$accept", "input", "line",    "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_CHANNEL_PARAMETER",
445    "command", "get_instruction", "load_instruction",    "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DEVICES",
446    "set_chan_instruction", "buffer_size_type", "load_instr_args",    "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DRIVER",
447    "load_engine_args", "audio_output_type", "midi_input_type", "volume",    "AUDIO_OUTPUT_DRIVER_PARAMETER", "MIDI_INPUT_PORT",
448    "sampler_channel", "instrument_index", "udp_port",    "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "VOLUME", "BYTES",
449    "audio_output_channel", "midi_input_channel", "session_id",    "PERCENTAGE", "MISCELLANEOUS", "$accept", "input", "line", "comment",
450    "engine_name", "midi_input_port", "filename", "alpha_num_string",    "command", "subscribe_event", "unsubscribe_event", "get_instruction",
451    "string", 0    "set_instruction", "create_instruction", "destroy_instruction",
452      "load_instruction", "set_chan_instruction", "key_val_list",
453      "buffer_size_type", "list_instruction", "load_instr_args",
454      "load_engine_args", "midi_input_type", "volume", "sampler_channel",
455      "instrument_index", "audio_output_channel", "midi_input_channel",
456      "engine_name", "midi_input_port", "filename", "param_val", "string", 0
457  };  };
458  #endif  #endif
459    
# Line 416  static const unsigned short yytoknum[] = Line 465  static const unsigned short yytoknum[] =
465         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
466       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
467       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
468       285,   286,   287,   288,   289,   290,   291,   292       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
469         295,   296,   297,   298,   299,   300,   301,   302,   303,   304
470  };  };
471  # endif  # endif
472    
473  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
474  static const unsigned char yyr1[] =  static const unsigned char yyr1[] =
475  {  {
476         0,    38,    39,    39,    39,    40,    40,    40,    41,    41,         0,    50,    51,    51,    51,    52,    52,    52,    52,    53,
477        41,    41,    41,    41,    41,    41,    41,    42,    42,    42,        53,    53,    53,    53,    54,    54,    54,    54,    54,    54,
478        42,    42,    42,    42,    43,    43,    44,    44,    44,    44,        54,    54,    54,    54,    54,    54,    54,    55,    55,    55,
479        44,    44,    45,    45,    46,    47,    48,    48,    49,    50,        55,    55,    55,    56,    56,    56,    56,    56,    56,    57,
480        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,        57,    57,    57,    57,    57,    57,    57,    57,    57,    57,
481        59,    60,    60,    60,    60,    61,    61        57,    57,    57,    57,    58,    58,    58,    59,    60,    61,
482          61,    62,    62,    62,    62,    62,    62,    63,    63,    64,
483          64,    65,    66,    67,    68,    69,    69,    70,    71,    72,
484          73,    74,    75,    76,    77,    77,    77,    78,    78
485  };  };
486    
487  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
488  static const unsigned char yyr2[] =  static const unsigned char yyr2[] =
489  {  {
490         0,     2,     1,     3,     4,     0,     1,     1,     3,     3,         0,     2,     1,     3,     4,     0,     1,     1,     1,     1,
491         3,     5,     5,     5,     5,     5,     1,     1,     1,     5,         2,     2,     2,     2,     3,     3,     3,     3,     3,     3,
492         7,     5,     5,     5,     3,     3,     5,     5,     5,     5,         3,     5,     3,     3,     3,     5,     1,     1,     1,     1,
        5,     5,     1,     1,     5,     3,     1,     1,     1,     1,  
493         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
494         3,     1,     1,     2,     2,     1,     2         1,     5,     7,     9,     1,     5,     7,     9,     1,     5,
495           7,     5,     5,     5,     7,     9,     3,     5,     3,     3,
496           3,     5,     7,     5,     5,     5,     5,     3,     5,     1,
497           1,     1,     5,     3,     1,     1,     1,     1,     1,     1,
498           1,     1,     1,     1,     1,     1,     1,     1,     2
499  };  };
500    
501  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
# Line 447  static const unsigned char yyr2[] = Line 503  static const unsigned char yyr2[] =
503     means the default is an error.  */     means the default is an error.  */
504  static const unsigned char yydefact[] =  static const unsigned char yydefact[] =
505  {  {
506         0,     7,     0,     0,     0,     0,     0,     0,     0,     0,         0,     8,     9,     0,     0,     0,     0,     0,     0,     0,
507        16,     0,     2,     6,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,    26,     0,     2,     6,     7,
        0,     0,     1,     0,     0,     8,     0,    17,    18,     0,  
        9,     0,     0,    10,     0,     0,     0,     0,     0,     3,  
508         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
509         4,     0,     0,     0,     0,     0,    55,    52,    24,     0,         0,     0,     1,     0,     0,    87,    12,    11,    10,    13,
510        49,    51,    25,     0,    47,    41,    11,     0,     0,     0,        14,     0,    39,    40,    48,     0,     0,     0,     0,    44,
511         0,     0,     0,    12,    43,    13,    14,    46,    15,     0,         0,     0,    15,     0,    16,     0,    17,    71,    18,     0,
512         0,     0,     0,     0,     0,    54,    53,    56,     0,     0,         0,    19,    20,     0,     0,     0,     0,    22,    27,    31,
513         0,     0,     0,     0,     0,    19,    32,    33,     0,    21,        30,    29,    28,    32,    23,    33,    37,    36,    35,    34,
514        22,    23,    52,     0,    50,    35,     0,     0,     0,     0,        38,    24,     0,     3,     0,    88,     0,     0,     0,     0,
515         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
516        20,    34,    44,    26,    36,    37,    27,    28,    48,    45,         0,     0,     4,     0,     0,     0,     0,     0,     0,     0,
517        29,    38,    30,    39,    40,    31         0,     0,     0,     0,    58,    83,    59,     0,    60,     0,
518          81,    77,    21,     0,     0,     0,     0,     0,     0,    56,
519           0,     0,    25,     0,     0,     0,     0,     0,     0,     0,
520           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
521           0,     0,     0,     0,    49,    69,    70,     0,    51,    52,
522          53,     0,     0,    45,    41,     0,    57,     0,    78,     0,
523          73,     0,     0,     0,     0,     0,     0,     0,     0,     0,
524           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
525           0,     0,     0,     0,    50,    46,     0,    42,     0,    86,
526          85,    84,    67,    72,    79,     0,    61,    82,    63,    80,
527          64,    65,    74,    75,    76,    66,     0,    54,     0,     0,
528           0,     0,     0,    47,    43,    68,    62,    55
529  };  };
530    
531  /* YYDEFGOTO[NTERM-NUM]. */  /* YYDEFGOTO[NTERM-NUM]. */
532  static const short yydefgoto[] =  static const short yydefgoto[] =
533  {  {
534        -1,    11,    12,    13,    30,    33,    73,    98,    58,    62,        -1,    16,    17,    18,    19,    74,    81,    52,    67,    54,
535       126,   132,   135,    66,   103,    75,   123,   130,    76,    63,        56,    61,   129,   166,   157,    58,   116,   118,   211,   215,
536       127,    59,    60,    61       122,   169,   205,   210,   119,   208,   117,   202,   120
537  };  };
538    
539  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
540     STATE-NUM.  */     STATE-NUM.  */
541  #define YYPACT_NINF -48  #define YYPACT_NINF -191
542  static const yysigned_char yypact[] =  static const short yypact[] =
543  {  {
544        10,   -48,    -4,     3,    25,    40,    56,    60,    64,    70,         4,  -191,  -191,     2,    22,    24,    37,    85,    87,    96,
545       -48,    28,   -48,   -48,    16,   -14,   -12,    57,    59,    61,        99,   107,   109,   110,   111,  -191,    34,  -191,    97,  -191,
546        62,    65,   -48,    10,    71,   -48,    73,   -48,   -48,    76,       -14,    45,   -23,    77,    80,   -27,   -27,    95,    27,     8,
547       -48,    79,    80,   -48,    81,    82,    83,    84,    85,   -48,        29,   101,  -191,     4,   113,  -191,  -191,  -191,  -191,   119,
548        10,    20,    72,     0,    89,    88,    26,    90,     0,    88,      -191,   120,  -191,  -191,  -191,   121,   122,   123,   124,  -191,
549       -48,    91,    92,    93,    94,    95,   -48,   -48,   -48,    96,       125,   126,  -191,   127,  -191,   129,  -191,  -191,  -191,   130,
550        27,   100,   -48,    98,   100,   -48,   -48,    99,   101,   102,       131,  -191,  -191,   132,   133,   134,   135,  -191,  -191,  -191,
551       103,   104,   105,   -48,   -48,   -48,   -48,    27,   -48,    88,      -191,  -191,  -191,  -191,  -191,  -191,  -191,  -191,  -191,  -191,
552        30,    88,    88,    89,    58,   -48,   100,   -48,    88,    88,      -191,  -191,   136,  -191,     4,  -191,    78,   114,   115,   116,
553        88,    88,    88,    88,    88,   -48,   -48,   -48,   106,   -48,       117,   118,   128,   146,   145,   147,   146,   149,    52,   150,
554       -48,   -48,   107,   108,    27,   -48,   109,   110,   111,   112,       151,   149,  -191,   144,   152,   153,   154,   155,   156,   159,
555       113,   114,    88,    88,   116,    31,     0,   117,    87,    69,       160,   161,   162,     3,  -191,  -191,  -191,   163,  -191,   164,
556       -48,   -48,   -48,   -48,   -48,   -48,   -48,   -48,    27,   -48,       119,  -191,  -191,   166,   168,   169,   170,   171,   172,  -191,
557       -48,   -48,   -48,   -48,   -48,   -48       173,   174,  -191,   149,    18,   149,   149,   146,   177,   178,
558         179,   146,   146,   146,   180,   149,   149,   149,   149,   149,
559         149,   149,   181,   146,  -191,  -191,  -191,   182,  -191,  -191,
560        -191,   183,   184,  -191,   119,    86,   185,    60,  -191,   186,
561        -191,   187,   188,   189,   190,   191,   192,   195,    65,   149,
562         198,   199,   146,   146,    50,   149,   200,   201,   202,   204,
563         146,   108,   146,    50,  -191,  -191,   203,    98,    66,  -191,
564        -191,  -191,  -191,  -191,  -191,   205,  -191,  -191,  -191,  -191,
565        -191,  -191,   119,  -191,  -191,  -191,    88,  -191,   146,   146,
566          50,   200,    50,   119,   185,  -191,  -191,  -191
567  };  };
568    
569  /* YYPGOTO[NTERM-NUM].  */  /* YYPGOTO[NTERM-NUM].  */
570  static const yysigned_char yypgoto[] =  static const short yypgoto[] =
571  {  {
572       -48,   -48,   -11,   -48,   -48,   -48,   -48,   -48,   -48,   -48,      -191,  -191,   -31,  -191,  -191,  -191,  -191,  -191,  -191,  -191,
573       -48,   -48,   -48,   -41,   -48,   -48,   -48,   -48,   -48,    13,      -191,   193,  -191,   -67,  -191,  -191,  -191,  -191,  -191,  -191,
574       -48,   -48,   -47,   -44      -100,  -191,   -64,  -191,    51,  -191,  -191,  -190,   -18
575  };  };
576    
577  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
578     positive, shift that token.  If negative, reduce the rule which     positive, shift that token.  If negative, reduce the rule which
579     number is the opposite.  If zero, do what YYDEFACT says.     number is the opposite.  If zero, do what YYDEFACT says.
580     If YYTABLE_NINF, syntax error.  */     If YYTABLE_NINF, syntax error.  */
581  #define YYTABLE_NINF -43  #define YYTABLE_NINF -6
582  static const short yytable[] =  static const short yytable[] =
583  {  {
584        64,    77,    14,    56,    26,    57,    27,    28,    78,    15,        39,   132,    83,   217,    -5,     1,    85,    59,    60,    20,
585        -5,     1,    39,    29,    31,    32,    86,    -5,    -5,     2,       143,    40,    -5,    -5,     2,    53,     3,     4,     5,     6,
586         3,     4,     5,     6,     7,     8,     9,    10,    22,    50,         7,     8,     9,    10,    11,    12,    13,    14,    15,    21,
587        56,    16,    85,    86,    25,    23,    24,   104,    95,    64,       225,    22,   227,   154,    32,   158,   159,    68,    69,    70,
588        99,   100,    51,    52,    53,    54,    17,   105,   106,   107,        71,    72,    33,    34,    23,   170,   171,   172,   173,   174,
589       108,   109,   110,   111,    67,    68,    69,    70,    71,    72,       175,   176,    64,   102,   199,   200,   201,    73,    75,    76,
590        86,    56,    18,   102,    96,    97,    19,   124,   125,   128,        77,    78,    79,    85,    65,   155,   156,    66,    85,    85,
591        20,   120,   121,   133,   134,    34,    21,    35,    40,    41,        41,   184,    42,    43,    44,   113,   193,   220,    80,   194,
592        36,    37,    42,    38,    86,    43,    44,    45,    46,    47,        45,    46,    47,    48,    49,   203,    50,    51,   123,    85,
593        48,    49,    56,    65,    55,    74,   101,    79,    80,    81,       124,    85,    24,   182,    25,   125,   126,   127,   128,   222,
594        82,    83,    84,    87,    88,    89,     0,    90,    91,    92,        35,    85,    36,    26,    37,   219,    27,    38,   103,   104,
595        93,    94,   112,   -42,   113,   114,   115,   116,   117,   118,       105,   106,   213,   214,    28,    55,    29,    30,    31,    57,
596       119,   122,   129,   131        63,    84,    85,   164,   165,   167,    82,    86,    87,    88,
597          89,    90,    91,    92,    93,   178,    94,    95,    96,    97,
598          98,    99,   100,   101,   107,   108,   109,   110,   111,    35,
599         114,   133,   224,   115,   121,   130,   131,   226,   112,   134,
600         135,   136,   137,   138,   197,   198,   139,   140,   141,   142,
601         144,   145,   212,   146,   216,   147,   148,   149,   150,   151,
602         152,   153,   161,   162,   163,   168,   177,     0,   160,   179,
603         180,   181,   183,   185,   186,   187,   188,   189,   190,   191,
604         223,   167,   192,   195,   196,   204,   206,     0,   207,   209,
605         218,     0,   221,     0,     0,     0,     0,     0,     0,    62
606  };  };
607    
608  static const short yycheck[] =  static const short yycheck[] =
609  {  {
610        44,    48,     6,     3,    18,     5,    20,    21,    49,     6,        18,   101,    33,   193,     0,     1,     3,    34,    35,     7,
611         0,     1,    23,    27,    26,    27,    60,     7,     8,     9,         7,    25,     8,     9,    10,    38,    12,    13,    14,    15,
612        10,    11,    12,    13,    14,    15,    16,    17,     0,    40,        16,    17,    18,    19,    20,    21,    22,    23,    24,     7,
613         3,     6,     5,    77,    18,     7,     8,    84,    79,    83,       220,     7,   222,   133,     0,   135,   136,    29,    30,    31,
614        81,    82,    22,    23,    24,    25,     6,    88,    89,    90,        32,    33,     8,     9,     7,   145,   146,   147,   148,   149,
615        91,    92,    93,    94,    28,    29,    30,    31,    32,    33,       150,   151,    25,    84,     4,     5,     6,    49,    29,    30,
616       104,     3,     6,     5,    34,    35,     6,    36,    37,   116,        31,    32,    33,     3,    37,    47,    48,    40,     3,     3,
617         6,   112,   113,     4,     5,    18,     6,    18,     7,     6,        25,    11,    27,    28,    29,    93,    11,    11,    49,   179,
618        19,    19,     6,    18,   128,     6,     6,     6,     6,     6,        35,    36,    37,    38,    39,   185,    41,    42,    36,     3,
619         6,     6,     3,     5,    22,     5,    83,     6,     6,     6,        38,     3,     7,     7,     7,    43,    44,    45,    46,    11,
620         6,     6,     6,     3,     6,     6,    -1,     6,     6,     6,         3,     3,     5,     7,     7,     7,     7,    10,    30,    31,
621         6,     6,     6,     6,     6,     6,     6,     6,     6,     6,        32,    33,     4,     5,     7,    38,     7,     7,     7,    39,
622         6,     5,     5,    36        25,     8,     3,   141,   142,   143,    25,     7,     7,     7,
623           7,     7,     7,     7,     7,   153,     7,     7,     7,     7,
624           7,     7,     7,     7,    30,    30,    30,    30,    30,     3,
625           5,     7,   219,     6,     5,     5,     5,   221,    30,     7,
626           7,     7,     7,     7,   182,   183,     7,     7,     7,     7,
627           7,     7,   190,     7,   192,     7,     7,     7,     7,     7,
628           7,     7,     5,     5,     5,     5,     5,    -1,   137,     7,
629           7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
630         218,   219,     7,     5,     5,     5,     5,    -1,     6,     5,
631           7,    -1,     7,    -1,    -1,    -1,    -1,    -1,    -1,    26
632  };  };
633    
634  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
635     symbol of state STATE-NUM.  */     symbol of state STATE-NUM.  */
636  static const unsigned char yystos[] =  static const unsigned char yystos[] =
637  {  {
638         0,     1,     9,    10,    11,    12,    13,    14,    15,    16,         0,     1,    10,    12,    13,    14,    15,    16,    17,    18,
639        17,    39,    40,    41,     6,     6,     6,     6,     6,     6,        19,    20,    21,    22,    23,    24,    51,    52,    53,    54,
640         6,     6,     0,     7,     8,    18,    18,    20,    21,    27,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
641        42,    26,    27,    43,    18,    18,    19,    19,    18,    40,         7,     7,     0,     8,     9,     3,     5,     7,    10,    78,
642         7,     6,     6,     6,     6,     6,     6,     6,     6,     6,        25,    25,    27,    28,    29,    35,    36,    37,    38,    39,
643        40,    22,    23,    24,    25,    22,     3,     5,    46,    59,        41,    42,    57,    38,    59,    38,    60,    39,    65,    34,
644        60,    61,    47,    57,    61,     5,    51,    28,    29,    30,        35,    61,    61,    25,    25,    37,    40,    58,    29,    30,
645        31,    32,    33,    44,     5,    53,    56,    60,    51,     6,        31,    32,    33,    49,    55,    29,    30,    31,    32,    33,
646         6,     6,     6,     6,     6,     5,    61,     3,     6,     6,        49,    56,    25,    52,     8,     3,     7,     7,     7,     7,
647         6,     6,     6,     6,     6,    51,    34,    35,    45,    51,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
648        51,    57,     5,    52,    60,    51,    51,    51,    51,    51,         7,     7,    52,    30,    31,    32,    33,    30,    30,    30,
649        51,    51,     6,     6,     6,     6,     6,     6,     6,     6,        30,    30,    30,    78,     5,     6,    66,    76,    67,    74,
650        51,    51,     5,    54,    36,    37,    48,    58,    60,     5,        78,     5,    70,    36,    38,    43,    44,    45,    46,    62,
651        55,    36,    49,     4,     5,    50         5,     5,    70,     7,     7,     7,     7,     7,     7,     7,
652           7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
653           7,     7,     7,     7,    70,    47,    48,    64,    70,    70,
654          74,     5,     5,     5,    78,    78,    63,    78,     5,    71,
655          70,    70,    70,    70,    70,    70,    70,     5,    78,     7,
656           7,     7,     7,     7,    11,     7,     7,     7,     7,     7,
657           7,     7,     7,    11,    70,     5,     5,    78,    78,     4,
658           5,     6,    77,    70,     5,    72,     5,     6,    75,     5,
659          73,    68,    78,     4,     5,    69,    78,    77,     7,     7,
660          11,     7,    11,    78,    63,    77,    72,    77
661  };  };
662    
663  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# Line 1166  yyreduce: Line 1267  yyreduce:
1267    YY_REDUCE_PRINT (yyn);    YY_REDUCE_PRINT (yyn);
1268    switch (yyn)    switch (yyn)
1269      {      {
1270          case 6:          case 7:
1271  #line 82 "lscp.y"  #line 84 "lscp.y"
1272      { LSCPSERVER->AnswerClient(yyvsp[0].String); }      { LSCPSERVER->AnswerClient(yyvsp[0].String); }
1273      break;      break;
1274    
   case 7:  
 #line 83 "lscp.y"  
     { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }  
     break;  
   
1275    case 8:    case 8:
1276  #line 86 "lscp.y"  #line 85 "lscp.y"
1277      { yyval.String = LSCPSERVER->AddChannel();                  }      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }
     break;  
   
   case 9:  
 #line 87 "lscp.y"  
     { yyval.String = yyvsp[0].String;                                        }  
     break;  
   
   case 10:  
 #line 88 "lscp.y"  
     { yyval.String = yyvsp[0].String;                                        }  
     break;  
   
   case 11:  
 #line 89 "lscp.y"  
     { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }  
     break;  
   
   case 12:  
 #line 90 "lscp.y"  
     { yyval.String = yyvsp[0].String;                                        }  
     break;  
   
   case 13:  
 #line 91 "lscp.y"  
     { yyval.String = LSCPSERVER->SubscribeNotification(yyvsp[0].Number);     }  
1278      break;      break;
1279    
1280    case 14:    case 14:
1281  #line 92 "lscp.y"  #line 95 "lscp.y"
1282      { yyval.String = LSCPSERVER->UnsubscribeNotification(yyvsp[0].String);   }      { yyval.String = LSCPSERVER->AddChannel();                  }
1283      break;      break;
1284    
1285    case 15:    case 15:
1286  #line 93 "lscp.y"  #line 96 "lscp.y"
1287      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }      { yyval.String = yyvsp[0].String;                                        }
1288      break;      break;
1289    
1290    case 16:    case 16:
1291  #line 94 "lscp.y"  #line 97 "lscp.y"
1292      { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; }      { yyval.String = yyvsp[0].String;                                        }
1293      break;      break;
1294    
1295    case 17:    case 17:
1296  #line 97 "lscp.y"  #line 98 "lscp.y"
1297      { yyval.String = LSCPSERVER->GetAvailableEngines(); }      { yyval.String = yyvsp[0].String;                                        }
1298      break;      break;
1299    
1300    case 18:    case 18:
1301  #line 98 "lscp.y"  #line 99 "lscp.y"
1302      { yyval.String = LSCPSERVER->GetChannels();         }      { yyval.String = yyvsp[0].String;                                        }
1303      break;      break;
1304    
1305    case 19:    case 19:
1306  #line 99 "lscp.y"  #line 100 "lscp.y"
1307      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);    }      { yyval.String = yyvsp[0].String;                                        }
1308      break;      break;
1309    
1310    case 20:    case 20:
1311  #line 100 "lscp.y"  #line 101 "lscp.y"
1312      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number); }      { yyval.String = yyvsp[0].String;                                        }
1313      break;      break;
1314    
1315    case 21:    case 21:
1316  #line 101 "lscp.y"  #line 102 "lscp.y"
1317      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);    }      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }
1318      break;      break;
1319    
1320    case 22:    case 22:
1321  #line 102 "lscp.y"  #line 103 "lscp.y"
1322      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);     }      { yyval.String = yyvsp[0].String;                                        }
1323      break;      break;
1324    
1325    case 23:    case 23:
1326  #line 103 "lscp.y"  #line 104 "lscp.y"
1327      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);     }      { yyval.String = yyvsp[0].String;                                        }
1328      break;      break;
1329    
1330    case 24:    case 24:
1331  #line 106 "lscp.y"  #line 105 "lscp.y"
1332      { yyval.String = yyvsp[0].String; }      { yyval.String = yyvsp[0].String;                                        }
1333      break;      break;
1334    
1335    case 25:    case 25:
1336  #line 107 "lscp.y"  #line 106 "lscp.y"
1337      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }
1338      break;      break;
1339    
1340    case 26:    case 26:
1341  #line 110 "lscp.y"  #line 107 "lscp.y"
1342      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[0].Number, yyvsp[-2].Number); }      { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; }
1343      break;      break;
1344    
1345    case 27:    case 27:
1346  #line 111 "lscp.y"  #line 110 "lscp.y"
1347      { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].AudioOutput, yyvsp[-2].Number);    }      { yyval.String = LSCPSERVER->SubscribeNotification(event_channels); }
1348      break;      break;
1349    
1350    case 28:    case 28:
1351  #line 112 "lscp.y"  #line 111 "lscp.y"
1352      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].String, yyvsp[-2].Number);      }      { yyval.String = LSCPSERVER->SubscribeNotification(event_voice_count); }
1353      break;      break;
1354    
1355    case 29:    case 29:
1356  #line 113 "lscp.y"  #line 112 "lscp.y"
1357      { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);   }      { yyval.String = LSCPSERVER->SubscribeNotification(event_stream_count); }
1358      break;      break;
1359    
1360    case 30:    case 30:
1361  #line 114 "lscp.y"  #line 113 "lscp.y"
1362      { yyval.String = "Err:0:Not implemented yet\r\n";           }      { yyval.String = LSCPSERVER->SubscribeNotification(event_channel_buffer_fill); }
1363      break;      break;
1364    
1365    case 31:    case 31:
1366  #line 115 "lscp.y"  #line 114 "lscp.y"
1367      { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);             }      { yyval.String = LSCPSERVER->SubscribeNotification(event_channel_info); }
1368      break;      break;
1369    
1370    case 32:    case 32:
1371  #line 118 "lscp.y"  #line 115 "lscp.y"
1372      { yyval.FillResponse = fill_response_bytes;      }      { yyval.String = LSCPSERVER->SubscribeNotification(event_misc); }
1373      break;      break;
1374    
1375    case 33:    case 33:
1376  #line 119 "lscp.y"  #line 118 "lscp.y"
1377      { yyval.FillResponse = fill_response_percentage; }      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channels); }
1378      break;      break;
1379    
1380    case 34:    case 34:
1381  #line 122 "lscp.y"  #line 119 "lscp.y"
1382      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_voice_count); }
1383      break;      break;
1384    
1385    case 35:    case 35:
1386  #line 125 "lscp.y"  #line 120 "lscp.y"
1387      { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_stream_count); }
1388      break;      break;
1389    
1390    case 36:    case 36:
1391  #line 128 "lscp.y"  #line 121 "lscp.y"
1392      { yyval.AudioOutput = audio_output_type_alsa; }      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channel_buffer_fill); }
1393      break;      break;
1394    
1395    case 37:    case 37:
1396  #line 129 "lscp.y"  #line 122 "lscp.y"
1397      { yyval.AudioOutput = audio_output_type_jack; }      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channel_info); }
1398      break;      break;
1399    
1400    case 38:    case 38:
1401  #line 132 "lscp.y"  #line 123 "lscp.y"
1402      { yyval.Number = ALSA; }      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_misc); }
1403        break;
1404    
1405      case 39:
1406    #line 126 "lscp.y"
1407        { yyval.String = LSCPSERVER->GetAvailableEngines();                          }
1408      break;      break;
1409    
1410    case 40:    case 40:
1411    #line 127 "lscp.y"
1412        { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();               }
1413        break;
1414    
1415      case 41:
1416    #line 128 "lscp.y"
1417        { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);                   }
1418        break;
1419    
1420      case 42:
1421    #line 129 "lscp.y"
1422        { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }
1423        break;
1424    
1425      case 43:
1426    #line 130 "lscp.y"
1427        { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }
1428        break;
1429    
1430      case 44:
1431    #line 131 "lscp.y"
1432        { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();                    }
1433        break;
1434    
1435      case 45:
1436    #line 132 "lscp.y"
1437        { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);                   }
1438        break;
1439    
1440      case 46:
1441    #line 133 "lscp.y"
1442        { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);              }
1443        break;
1444    
1445      case 47:
1446    #line 134 "lscp.y"
1447        { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); }
1448        break;
1449    
1450      case 48:
1451    #line 135 "lscp.y"
1452        { yyval.String = LSCPSERVER->GetChannels();                                  }
1453        break;
1454    
1455      case 49:
1456  #line 136 "lscp.y"  #line 136 "lscp.y"
1457      { yyval.Dotnum = yyvsp[0].Number; }      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);                             }
1458      break;      break;
1459    
1460    case 50:    case 50:
1461  #line 164 "lscp.y"  #line 137 "lscp.y"
1462      { yyval.String = yyvsp[-2].String + ' ' + yyvsp[0].String; }      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);                          }
1463      break;      break;
1464    
1465    case 51:    case 51:
1466  #line 167 "lscp.y"  #line 138 "lscp.y"
1467      { yyval.String = yyvsp[0].String;                                             }      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);                             }
1468      break;      break;
1469    
1470    case 52:    case 52:
1471  #line 168 "lscp.y"  #line 139 "lscp.y"
1472      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);                              }
1473      break;      break;
1474    
1475    case 53:    case 53:
1476  #line 169 "lscp.y"  #line 140 "lscp.y"
1477      { yyval.String = yyvsp[-1].String + yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);                              }
1478      break;      break;
1479    
1480    case 54:    case 54:
1481  #line 170 "lscp.y"  #line 143 "lscp.y"
1482      { std::stringstream ss; ss << yyvsp[-1].String << yyvsp[0].Number; yyval.String = ss.str(); }      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }
1483      break;      break;
1484    
1485    case 55:    case 55:
1486  #line 173 "lscp.y"  #line 144 "lscp.y"
1487      { std::string s; s = yyvsp[0].Char; yyval.String = s; }      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }
1488      break;      break;
1489    
1490    case 56:    case 56:
1491    #line 145 "lscp.y"
1492        { yyval.String = yyvsp[0].String;                                                         }
1493        break;
1494    
1495      case 57:
1496    #line 148 "lscp.y"
1497        { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }
1498        break;
1499    
1500      case 58:
1501    #line 151 "lscp.y"
1502        { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); }
1503        break;
1504    
1505      case 59:
1506    #line 154 "lscp.y"
1507        { yyval.String = yyvsp[0].String; }
1508        break;
1509    
1510      case 60:
1511    #line 155 "lscp.y"
1512        { yyval.String = yyvsp[0].String; }
1513        break;
1514    
1515      case 61:
1516    #line 158 "lscp.y"
1517        { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }
1518        break;
1519    
1520      case 62:
1521    #line 159 "lscp.y"
1522        { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }
1523        break;
1524    
1525      case 63:
1526    #line 160 "lscp.y"
1527        { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].String, yyvsp[-2].Number);          }
1528        break;
1529    
1530      case 64:
1531    #line 161 "lscp.y"
1532        { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }
1533        break;
1534    
1535      case 65:
1536    #line 162 "lscp.y"
1537        { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }
1538        break;
1539    
1540      case 66:
1541    #line 163 "lscp.y"
1542        { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }
1543        break;
1544    
1545      case 67:
1546    #line 166 "lscp.y"
1547        { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }
1548        break;
1549    
1550      case 68:
1551    #line 167 "lscp.y"
1552        { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }
1553        break;
1554    
1555      case 69:
1556    #line 170 "lscp.y"
1557        { yyval.FillResponse = fill_response_bytes;      }
1558        break;
1559    
1560      case 70:
1561    #line 171 "lscp.y"
1562        { yyval.FillResponse = fill_response_percentage; }
1563        break;
1564    
1565      case 71:
1566  #line 174 "lscp.y"  #line 174 "lscp.y"
1567        { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }
1568        break;
1569    
1570      case 72:
1571    #line 177 "lscp.y"
1572        { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); }
1573        break;
1574    
1575      case 73:
1576    #line 180 "lscp.y"
1577        { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }
1578        break;
1579    
1580      case 76:
1581    #line 187 "lscp.y"
1582        { yyval.Dotnum = yyvsp[0].Number; }
1583        break;
1584    
1585      case 84:
1586    #line 211 "lscp.y"
1587        { yyval.String = yyvsp[0].String;                                             }
1588        break;
1589    
1590      case 85:
1591    #line 212 "lscp.y"
1592        { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }
1593        break;
1594    
1595      case 86:
1596    #line 213 "lscp.y"
1597        { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str();       }
1598        break;
1599    
1600      case 87:
1601    #line 216 "lscp.y"
1602        { std::string s; s = yyvsp[0].Char; yyval.String = s; }
1603        break;
1604    
1605      case 88:
1606    #line 217 "lscp.y"
1607      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }
1608      break;      break;
1609    
# Line 1375  yyreduce: Line 1611  yyreduce:
1611      }      }
1612    
1613  /* Line 999 of yacc.c.  */  /* Line 999 of yacc.c.  */
1614  #line 1379 "y.tab.c"  #line 1614 "y.tab.c"
1615    
1616    yyvsp -= yylen;    yyvsp -= yylen;
1617    yyssp -= yylen;    yyssp -= yylen;
# Line 1569  yyreturn: Line 1805  yyreturn:
1805  }  }
1806    
1807    
1808  #line 177 "lscp.y"  #line 77 "lscp.y"
1809    
1810    
1811  /**  /**

Legend:
Removed from v.35  
changed lines
  Added in v.135

  ViewVC Help
Powered by ViewVC