/[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 982 by capela, Sun Dec 3 18:30:04 2006 UTC revision 983 by capela, Mon Dec 18 09:39:20 2006 UTC
# Line 43  lscp_status_t server_callback ( lscp_con Line 43  lscp_status_t server_callback ( lscp_con
43          static int iSamplerChannel = 0;          static int iSamplerChannel = 0;
44          static int iAudioDevice = 0;          static int iAudioDevice = 0;
45          static int iMidiDevice  = 0;          static int iMidiDevice  = 0;
46            static int iMidiMaps = 0;
47          static int iMidiInstruments = 0;          static int iMidiInstruments = 0;
48    
49          if (pchBuffer == NULL) {          if (pchBuffer == NULL) {
# Line 417  lscp_status_t server_callback ( lscp_con Line 418  lscp_status_t server_callback ( lscp_con
418                          sprintf(szTemp, "%d\r\n", iMidiInstruments);                          sprintf(szTemp, "%d\r\n", iMidiInstruments);
419                          pszResult = szTemp;                          pszResult = szTemp;
420                  }                  }
421                  if (lscp_parser_test2(&tok, "MIDI_INSTRUMENT", "INFO")) {                  else if (lscp_parser_test(&tok, "MIDI_INSTRUMENT_MAPS")) {
422                            // Get the total count of MIDI instrument maps:
423                            // GET MIDI_INSTRUMENT_MAPS
424                            sprintf(szTemp, "%d\r\n", iMidiMaps);
425                            pszResult = szTemp;
426                    }
427                    else if (lscp_parser_test2(&tok, "MIDI_INSTRUMENT_MAP", "INFO")) {
428                            // Getting information about a MIDI instrument map entry:
429                            // GET MIDI_INSTRUMENT_MAP INFO <midi-map>
430                            pszResult = "NAME: DummyMapName\r\n"
431                                                    ".\r\n";
432                    }
433                    else if (lscp_parser_test2(&tok, "MIDI_INSTRUMENT", "INFO")) {
434                          // Getting information about a MIDI instrument map entry:                          // Getting information about a MIDI instrument map entry:
435                          // GET MIDI_INSTRUMENT INFO <midi-bank-msb> <midi-bank-lsb> <midi-prog>                          // GET MIDI_INSTRUMENT INFO <midi-map> <midi-bank> <midi-prog>
436                          pszResult = "NAME: DummyName\r\n"                          pszResult = "NAME: DummyName\r\n"
437                                                  "ENGINE_NAME: DummyEngine\r\n"                                                  "ENGINE_NAME: DummyEngine\r\n"
438                                                  "INSTRUMENT_FILE: DummyInstrument.gig\r\n"                                                  "INSTRUMENT_FILE: DummyInstrument.gig\r\n"
# Line 435  lscp_status_t server_callback ( lscp_con Line 448  lscp_status_t server_callback ( lscp_con
448                  if (lscp_parser_test(&tok, "CHANNELS")) {                  if (lscp_parser_test(&tok, "CHANNELS")) {
449                          // Getting all created sampler channel list.                          // Getting all created sampler channel list.
450                          // LIST CHANNELS                          // LIST CHANNELS
451                            szTemp[0] = (char) 0;
452                          for (i = 0; i < iSamplerChannel && strlen(szTemp) < sizeof(szTemp) - 8; i++) {                          for (i = 0; i < iSamplerChannel && strlen(szTemp) < sizeof(szTemp) - 8; i++) {
453                                  if (i > 0)                                  if (i > 0)
454                                          strcat(szTemp, ",");                                          strcat(szTemp, ",");
# Line 461  lscp_status_t server_callback ( lscp_con Line 475  lscp_status_t server_callback ( lscp_con
475                  else if (lscp_parser_test(&tok, "AUDIO_OUTPUT_DEVICES")) {                  else if (lscp_parser_test(&tok, "AUDIO_OUTPUT_DEVICES")) {
476                          // Getting all created audio output device list.                          // Getting all created audio output device list.
477                          // LIST AUDIO_OUTPUT_DEVICES                          // LIST AUDIO_OUTPUT_DEVICES
478                            szTemp[0] = (char) 0;
479                          for (i = 0; i < iAudioDevice && strlen(szTemp) < sizeof(szTemp) - 8; i++) {                          for (i = 0; i < iAudioDevice && strlen(szTemp) < sizeof(szTemp) - 8; i++) {
480                                  if (i > 0)                                  if (i > 0)
481                                          strcat(szTemp, ",");                                          strcat(szTemp, ",");
# Line 472  lscp_status_t server_callback ( lscp_con Line 487  lscp_status_t server_callback ( lscp_con
487                  else if (lscp_parser_test(&tok, "MIDI_INPUT_DEVICES")) {                  else if (lscp_parser_test(&tok, "MIDI_INPUT_DEVICES")) {
488                          // Getting all created MID input device list.                          // Getting all created MID input device list.
489                          // LIST MIDI_INPUT_DEVICES                          // LIST MIDI_INPUT_DEVICES
490                            szTemp[0] = (char) 0;
491                          for (i = 0; i < iMidiDevice && strlen(szTemp) < sizeof(szTemp) - 8; i++) {                          for (i = 0; i < iMidiDevice && strlen(szTemp) < sizeof(szTemp) - 8; i++) {
492                                  if (i > 0)                                  if (i > 0)
493                                          strcat(szTemp, ",");                                          strcat(szTemp, ",");
# Line 483  lscp_status_t server_callback ( lscp_con Line 499  lscp_status_t server_callback ( lscp_con
499                  else if (lscp_parser_test(&tok, "MIDI_INSTRUMENTS")) {                  else if (lscp_parser_test(&tok, "MIDI_INSTRUMENTS")) {
500                          // Getting indeces of all MIDI instrument map entries:                          // Getting indeces of all MIDI instrument map entries:
501                          // LIST MIDI_INSTRUMENTS                          // LIST MIDI_INSTRUMENTS
502                            szTemp[0] = (char) 0;
503                          for (i = 0; i < iMidiInstruments && strlen(szTemp) < sizeof(szTemp) - 16; i++) {                          for (i = 0; i < iMidiInstruments && strlen(szTemp) < sizeof(szTemp) - 16; i++) {
504                                  if (i > 0)                                  if (i > 0)
505                                          strcat(szTemp, ",");                                          strcat(szTemp, ",");
# Line 491  lscp_status_t server_callback ( lscp_con Line 508  lscp_status_t server_callback ( lscp_con
508                          strcat(szTemp, "\r\n");                          strcat(szTemp, "\r\n");
509                          pszResult = szTemp;                          pszResult = szTemp;
510                  }                  }
511                    else if (lscp_parser_test(&tok, "MIDI_INSTRUMENT_MAPS")) {
512                            // Getting indeces of all MIDI instrument map entries:
513                            // LIST MIDI_INSTRUMENT_MAPS
514                            szTemp[0] = (char) 0;
515                            for (i = 0; i < iMidiMaps && strlen(szTemp) < sizeof(szTemp) - 8; i++) {
516                                    if (i > 0)
517                                            strcat(szTemp, ",");
518                                    sprintf(szTemp + strlen(szTemp), "%d", i);
519                            }
520                            strcat(szTemp, "\r\n");
521                            pszResult = szTemp;
522                    }
523                  else ret = LSCP_FAILED;                  else ret = LSCP_FAILED;
524          }          }
525          else if (lscp_parser_test(&tok, "SET")) {          else if (lscp_parser_test(&tok, "SET")) {
# Line 537  lscp_status_t server_callback ( lscp_con Line 566  lscp_status_t server_callback ( lscp_con
566                          }                          }
567                          else ret = LSCP_FAILED;                          else ret = LSCP_FAILED;
568                  }                  }
569                    else if (lscp_parser_test2(&tok, "MIDI_INSTRUMENT_MAP", "NAME")) {
570                            // Setting MIDI instrument map name:
571                            // SET MIDI_INSTRUMENT_MAP NAME <midi-map> <map-name>
572                    }
573                  else ret = LSCP_FAILED;                  else ret = LSCP_FAILED;
574          }          }
575          else if (lscp_parser_test(&tok, "LOAD")) {          else if (lscp_parser_test(&tok, "LOAD")) {
# Line 550  lscp_status_t server_callback ( lscp_con Line 583  lscp_status_t server_callback ( lscp_con
583                  }                  }
584                  else ret = LSCP_FAILED;                  else ret = LSCP_FAILED;
585          }          }
586          else if (lscp_parser_test2(&tok, "ADD", "CHANNEL")) {          else if (lscp_parser_test(&tok, "ADD")) {
587                  // Adding a new sampler channel:                  if (lscp_parser_test(&tok, "CHANNEL")) {
588                  // ADD CHANNEL                          // Adding a new sampler channel:
589                  if (iSamplerChannel < 16) {                          // ADD CHANNEL
590                          sprintf(szTemp, "OK[%d]\r\n", iSamplerChannel++);                          if (iSamplerChannel < 16) {
591                          pszResult = szTemp;                                  sprintf(szTemp, "OK[%d]\r\n", iSamplerChannel++);
592                  } else {                                  pszResult = szTemp;
593                          iSamplerChannel = 0;                          } else {
594                          ret = LSCP_FAILED;                                  iSamplerChannel = 0;
595                                    ret = LSCP_FAILED;
596                            }
597                    }
598                    else if (lscp_parser_test(&tok, "MIDI_INSTRUMENT_MAP")) {
599                            // Adding a new MIDI instrument map:
600                            // ADD MIDI_INSTRUMENT_MAP <map-name>
601                            if (iMidiMaps < 2) {
602                                    sprintf(szTemp, "OK[%d]\r\n", iMidiMaps++);
603                                    pszResult = szTemp;
604                            } else {
605                                    iMidiMaps = 0;
606                                    ret = LSCP_FAILED;
607                            }
608                  }                  }
609          }          }
610          else if (lscp_parser_test2(&tok, "REMOVE", "CHANNEL")) {          else if (lscp_parser_test(&tok, "REMOVE")) {
611                  // Removing a sampler channel:                  if (lscp_parser_test(&tok, "CHANNEL")) {
612                  // REMOVE CHANNEL <sampler-channel>                          // Removing a sampler channel:
613                  if (lscp_parser_nextint(&tok) < iSamplerChannel)                          // REMOVE CHANNEL <sampler-channel>
614                          iSamplerChannel--;                          if (lscp_parser_nextint(&tok) >= 0)
615                  else                                  iSamplerChannel--;
616                          ret = LSCP_FAILED;                          else
617                                    ret = LSCP_FAILED;
618                    }
619                    else if (lscp_parser_test(&tok, "MIDI_INSTRUMENT_MAP")) {
620                            // Removing a MIDI instrument map:
621                            // REMOVE MIDI_INSTRUMENT_MAP <midi-map>
622                            if (lscp_parser_nextint(&tok) >= 0)
623                                    iMidiMaps--;
624                            else
625                                    ret = LSCP_FAILED;
626                    }
627          }          }
628          else if (lscp_parser_test(&tok, "RESET")) {          else if (lscp_parser_test(&tok, "RESET")) {
629                  if (lscp_parser_test(&tok, "CHANNEL")) {                  if (lscp_parser_test(&tok, "CHANNEL")) {
# Line 629  lscp_status_t server_callback ( lscp_con Line 685  lscp_status_t server_callback ( lscp_con
685          }          }
686          else if (lscp_parser_test2(&tok, "MAP", "MIDI_INSTRUMENT")) {          else if (lscp_parser_test2(&tok, "MAP", "MIDI_INSTRUMENT")) {
687                  // Create or replace a MIDI instrumnet map entry:                  // Create or replace a MIDI instrumnet map entry:
688                  // MAP MIDI_INSTRUMENT <midi-bank-msb> <midi-bank-lsb> <midi-prog>                  // MAP MIDI_INSTRUMENT <midi-map> <midi-bank> <midi-prog>
689                  // <engine-name> <filename> <instr-index> <volume> <load-mode> [<name>]                  // <engine-name> <filename> <instr-index> <volume> <load-mode> [<name>]
690                  iMidiInstruments++;                  iMidiInstruments++;
691          }          }
692          else if (lscp_parser_test2(&tok, "UNMAP", "MIDI_INSTRUMENT")) {          else if (lscp_parser_test2(&tok, "UNMAP", "MIDI_INSTRUMENT")) {
693                  // Remove an entry from the MIDI instrument map:                  // Remove an entry from the MIDI instrument map:
694                  // UNMAP MIDI_INSTRUMENT <midi-bank-msb> <midi-bank-lsb> <midi-prog>                  // UNMAP MIDI_INSTRUMENT <midi-map> <midi-bank> <midi-prog>
695                  if (iMidiInstruments > 0)                  if (iMidiInstruments > 0)
696                          iMidiInstruments--;                          iMidiInstruments--;
697                  else                  else

Legend:
Removed from v.982  
changed lines
  Added in v.983

  ViewVC Help
Powered by ViewVC