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

Legend:
Removed from v.111  
changed lines
  Added in v.138

  ViewVC Help
Powered by ViewVC