/[svn]/liblscp/trunk/examples/example_server.c
ViewVC logotype

Diff of /liblscp/trunk/examples/example_server.c

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

revision 163 by capela, Wed Jun 30 15:16:03 2004 UTC revision 171 by capela, Mon Jul 5 16:26:44 2004 UTC
# Line 39  lscp_status_t server_callback ( lscp_con Line 39  lscp_status_t server_callback ( lscp_con
39      const char *pszResult = NULL;      const char *pszResult = NULL;
40      char szTemp[256];      char szTemp[256];
41      int i;      int i;
42      static int iChannel = 0;      static int iSamplerChannel = 0;
43        static int iAudioDevice = 0;
44        static int iMidiDevice  = 0;
45    
46      if (pchBuffer == NULL) {      if (pchBuffer == NULL) {
47          fprintf(stderr, "server_callback: addr=%s port=%d: ",          fprintf(stderr, "server_callback: addr=%s port=%d: ",
# Line 108  lscp_status_t server_callback ( lscp_con Line 110  lscp_status_t server_callback ( lscp_con
110          else if (lscp_parser_test(&tok, "CHANNELS")) {          else if (lscp_parser_test(&tok, "CHANNELS")) {
111              // Current number of sampler channels:              // Current number of sampler channels:
112              // GET CHANNELS              // GET CHANNELS
113              sprintf(szTemp, "%d", iChannel);              sprintf(szTemp, "%d", iSamplerChannel);
114              pszResult = szTemp;              pszResult = szTemp;
115          }          }
116          else if (lscp_parser_test(&tok, "AVAILABLE_AUDIO_OUTPUT_DRIVERS")) {          else if (lscp_parser_test(&tok, "AVAILABLE_AUDIO_OUTPUT_DRIVERS")) {
# Line 192  lscp_status_t server_callback ( lscp_con Line 194  lscp_status_t server_callback ( lscp_con
194              }              }
195              else ret = LSCP_FAILED;              else ret = LSCP_FAILED;
196          }          }
197            else if (lscp_parser_test2(&tok, "AUDIO_OUTPUT_DEVICE", "INFO")) {
198                // Getting informations about a specific audio output device.
199                // GET AUDIO_OUTPUT_DEVICE INFO <audio-device-id>
200                if (lscp_parser_nextint(&tok) < iAudioDevice) {
201                    pszResult = "driver: Alsa\r\n"
202                                "active: TRUE\r\n"
203                                "channels: 2\r\n"
204                                "samplerate: 44100\r\n";
205                }
206                else ret = LSCP_FAILED;
207            }
208            else if (lscp_parser_test2(&tok, "MIDI_INPUT_DEVICE", "INFO")) {
209                // Getting informations about a specific MIDI input device.
210                // GET MIDI_INPUT_DEVICE INFO <midi-device-id>
211                if (lscp_parser_nextint(&tok) < iMidiDevice) {
212                    pszResult = "driver: Alsa\r\n"
213                                "active: TRUE\r\n"
214                                "channels: 16\r\n"
215                                "ports: 1\r\n";
216                }
217                else ret = LSCP_FAILED;
218            }
219          else if (lscp_parser_test(&tok, "AVAILABLE_ENGINES")) {          else if (lscp_parser_test(&tok, "AVAILABLE_ENGINES")) {
220              // Getting all available engines:              // Getting all available engines:
221              // GET AVAILABLE_ENGINES              // GET AVAILABLE_ENGINES
# Line 220  lscp_status_t server_callback ( lscp_con Line 244  lscp_status_t server_callback ( lscp_con
244          if (lscp_parser_test(&tok, "CHANNELS")) {          if (lscp_parser_test(&tok, "CHANNELS")) {
245              // Getting all created sampler channel list.              // Getting all created sampler channel list.
246              // GET CHANNELS              // GET CHANNELS
247              if (iChannel > 0) {              if (iSamplerChannel > 0) {
248                  strcpy(szTemp, "0");                  strcpy(szTemp, "0");
249                  for (i = 1; i < iChannel; i++)                  for (i = 1; i < iSamplerChannel; i++)
250                      sprintf(szTemp + strlen(szTemp), ",%d", i);                      sprintf(szTemp + strlen(szTemp), ",%d", i);
251                  strcat(szTemp, "\r\n");                  strcat(szTemp, "\r\n");
252                  pszResult = szTemp;                  pszResult = szTemp;
# Line 232  lscp_status_t server_callback ( lscp_con Line 256  lscp_status_t server_callback ( lscp_con
256          else if (lscp_parser_test(&tok, "AUDIO_OUTPUT_DEVICES")) {          else if (lscp_parser_test(&tok, "AUDIO_OUTPUT_DEVICES")) {
257              // Getting all created audio output device list.              // Getting all created audio output device list.
258              // GET AUDIO_OUTPUT_DEVICES              // GET AUDIO_OUTPUT_DEVICES
259              pszResult = "0,1\r\n";              if (iAudioDevice > 0) {
260                    strcpy(szTemp, "0");
261                    for (i = 1; i < iAudioDevice; i++)
262                        sprintf(szTemp + strlen(szTemp), ",%d", i);
263                    strcat(szTemp, "\r\n");
264                    pszResult = szTemp;
265                }
266                else ret = LSCP_FAILED;
267          }          }
268          else if (lscp_parser_test(&tok, "MIDI_INPUT_DEVICES")) {          else if (lscp_parser_test(&tok, "MIDI_INPUT_DEVICES")) {
269              // Getting all created MID input device list.              // Getting all created MID input device list.
270              // GET MIDI_INPUT_DEVICES              // GET MIDI_INPUT_DEVICES
271              pszResult = "0\r\n";              if (iMidiDevice > 0) {
272                    strcpy(szTemp, "0");
273                    for (i = 1; i < iMidiDevice; i++)
274                        sprintf(szTemp + strlen(szTemp), ",%d", i);
275                    strcat(szTemp, "\r\n");
276                    pszResult = szTemp;
277                }
278                else ret = LSCP_FAILED;
279          }          }
280          else ret = LSCP_FAILED;          else ret = LSCP_FAILED;
281      }      }
# Line 293  lscp_status_t server_callback ( lscp_con Line 331  lscp_status_t server_callback ( lscp_con
331      else if (lscp_parser_test2(&tok, "ADD", "CHANNEL")) {      else if (lscp_parser_test2(&tok, "ADD", "CHANNEL")) {
332          // Adding a new sampler channel:          // Adding a new sampler channel:
333          // ADD CHANNEL          // ADD CHANNEL
334          sprintf(szTemp, "OK[%d]", iChannel++);          sprintf(szTemp, "OK[%d]", iSamplerChannel++);
335          pszResult = szTemp;          pszResult = szTemp;
336      }      }
337      else if (lscp_parser_test2(&tok, "REMOVE", "CHANNEL")) {      else if (lscp_parser_test2(&tok, "REMOVE", "CHANNEL")) {
338          // Removing a sampler channel:          // Removing a sampler channel:
339          // REMOVE CHANNEL <sampler-channel>          // REMOVE CHANNEL <sampler-channel>
340            if (lscp_parser_nextint(&tok) > iSamplerChannel)
341                ret = LSCP_FAILED;
342      }      }
343      else if (lscp_parser_test2(&tok, "RESET", "CHANNEL")) {      else if (lscp_parser_test2(&tok, "RESET", "CHANNEL")) {
344          // Resetting a sampler channel:          // Resetting a sampler channel:
345          // RESET CHANNEL <sampler-channel>          // RESET CHANNEL <sampler-channel>
346            if (lscp_parser_nextint(&tok) > iSamplerChannel)
347                ret = LSCP_FAILED;
348        }
349        else if (lscp_parser_test(&tok, "CREATE")) {
350            if (lscp_parser_test(&tok, "AUDIO_OUTPUT_DEVICE")) {
351                // Creating an audio output device.
352                // CREATE AUDIO_OUTPUT_DEVICE <audio-output-driver> [<params>]
353                sprintf(szTemp, "OK[%d]", iAudioDevice++);
354                pszResult = szTemp;
355            }
356            else if (lscp_parser_test(&tok, "MIDI_INPUT_DEVICE")) {
357                // Creating an MIDI input device.
358                // CREATE MIDI_INPUT_DEVICE <midi-input-driver> [<params>]
359                sprintf(szTemp, "OK[%d]", iMidiDevice++);
360                pszResult = szTemp;
361            }
362            else ret = LSCP_FAILED;
363        }
364        else if (lscp_parser_test(&tok, "DESTROY")) {
365            if (lscp_parser_test(&tok, "AUDIO_OUTPUT_DEVICE")) {
366                // Destroying an audio output device.
367                // DESTROY AUDIO_OUTPUT_DEVICE <audio-device-id>
368                if (lscp_parser_nextint(&tok) > iAudioDevice)
369                    ret = LSCP_FAILED;
370            }
371            else if (lscp_parser_test(&tok, "MIDI_INPUT_DEVICE")) {
372                // Destroying an MIDI intput device.
373                // DESTROY MIDI_INPUT_DEVICE <midi-device-id>
374                if (lscp_parser_nextint(&tok) > iMidiDevice)
375                    ret = LSCP_FAILED;
376            }
377            else ret = LSCP_FAILED;
378      }      }
379      else if (lscp_parser_test(&tok, "SUBSCRIBE")) {      else if (lscp_parser_test(&tok, "SUBSCRIBE")) {
380          // Register frontend for receiving event notification messages:          // Register frontend for receiving event notification messages:

Legend:
Removed from v.163  
changed lines
  Added in v.171

  ViewVC Help
Powered by ViewVC