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

Log of /linuxsampler/trunk/src/network/lscpserver.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (download) (annotate)
Sticky Revision:

Revision 401 - (view) (download) (annotate) - [select for diffs]
Modified Tue Feb 22 14:09:26 2005 UTC (19 years ago) by schoenebeck
File length: 61664 byte(s)
Diff to previous 398
* fixed build failure if libsqlite3 is not installed


Revision 398 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 21 04:35:31 2005 UTC (19 years, 1 month ago) by senkov
File length: 61669 byte(s)
Diff to previous 397
removed debug from previous checkin.


Revision 397 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 21 04:28:50 2005 UTC (19 years, 1 month ago) by senkov
File length: 61706 byte(s)
Diff to previous 392
* Added first cut of instrument database query support.


Revision 392 - (view) (download) (annotate) - [select for diffs]
Modified Sat Feb 19 02:40:24 2005 UTC (19 years, 1 month ago) by schoenebeck
File length: 60760 byte(s)
Diff to previous 385
* fixed possibility that memory got not locked
* immediately set instrument status when calling LOAD INSTUMENT NON_MODAL


Revision 385 - (view) (download) (annotate) - [select for diffs]
Modified Thu Feb 17 02:53:45 2005 UTC (19 years, 1 month ago) by schoenebeck
File length: 60550 byte(s)
Diff to previous 376
* lscpserver: we now only use one instrument loader thread; commands for
  loading instruments in the background wait in a queue to be processed one
  by one to avoid possible race conditions and to improve I/O efficiency
* fixed possible race condition while streaming with multiple disk threads
  by using an own decompression buffer for each disk thread
* libgig: fixed some memory leaks caused by non virtual base constructors


Revision 376 - (view) (download) (annotate) - [select for diffs]
Modified Sat Feb 12 23:48:50 2005 UTC (19 years, 1 month ago) by senkov
File length: 61152 byte(s)
Diff to previous 374
* Added INSTRUMENT_NAME to GET CHANNEL INFO command result set


Revision 374 - (view) (download) (annotate) - [select for diffs]
Modified Sat Feb 12 00:36:08 2005 UTC (19 years, 1 month ago) by schoenebeck
File length: 60997 byte(s)
Diff to previous 360
* JACK audio driver: added device creation parameter 'NAME' which can be
  used to assign an arbitrary name to the JACK client, it's now possible to
  create multiple JACK audio output devices simultaniously for LS
* src/network/lscpserver.cpp: fixed little bug in
  'SET CHANNEL AUDIO_OUTPUT_CHANNEL' (altering of audio routing)
  implementation, cleanup of error messages


Revision 360 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 7 00:19:30 2005 UTC (19 years, 1 month ago) by senkov
File length: 60611 byte(s)
Diff to previous 337
* Updated implementation for real time notify messages:
VOICE_COUNT, STREAM_COUNT, BUFFER_FILL


Revision 337 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jan 9 02:26:29 2005 UTC (19 years, 2 months ago) by senkov
File length: 60176 byte(s)
Diff to previous 274
* Fix for a core. SET CHANNEL AUDIO_OUTPUT_CHANNEL needs
 to check if audio output device exists.


Revision 274 - (view) (download) (annotate) - [select for diffs]
Modified Sat Oct 9 00:46:18 2004 UTC (19 years, 5 months ago) by schoenebeck
File length: 59919 byte(s)
Diff to previous 227
* MidiInputPort: fixed dispatching of MIDI events to engines which are
  listening to all MIDI channels
* switched MIDI channel indexing to low level indexing (means 0..15 now)


Revision 227 - (view) (download) (annotate) - [select for diffs]
Modified Thu Aug 26 22:05:44 2004 UTC (19 years, 6 months ago) by schoenebeck
File length: 59926 byte(s)
Diff to previous 226
* ALSA audio driver: bugfix in device parameter 'CARD' which caused an
  error message if used in conjunction with 'CREATE AUDIO_OUTPUT_DEVICE'
  LSCP command
* JACK audio driver: fixed minor JACK port name issue and the device was
  not activated by default on creation which caused it to render solely
  silence
* src/network/lscpserver.cpp: retry to bind socket for 3 minutes if bind
  failed


Revision 226 - (view) (download) (annotate) - [select for diffs]
Modified Wed Aug 25 22:00:33 2004 UTC (19 years, 6 months ago) by schoenebeck
File length: 59423 byte(s)
Diff to previous 225
* ALSA MIDI driver: create one MIDI port by default, implemented parameter
  info for parameter 'ALSA_SEQ_BINDINGS'
* ALSA audio driver: implemented parameter info for driver parameters
  'FRAGMENTS' and 'FRAGMENTSIZE'
* JACK audio driver: fixed creation of channels on device creation, channel
  parameter 'NAME' now actually updates the respective JACK port name,
  implemented channel parameter 'JACK_BINDINGS' (as well as its parameter
  info)
* src/network/lscpserver.cpp: fixed commands
  "GET MIDI_INPUT_DRIVER_PARAMETER INFO" and
  "GET AUDIO_OUTPUT_DRIVER_PARAMETER  INFO", fixed backward compatibility
  for "SET AUDIO_OUTPUT_TYPE" and "SET MIDI_INPUT_TYPE" commands
* src/networ/lscp.y: added comma character (',') to symbol 'char'
* src/drivers/DeviceParameter.cpp: fixed methods RangeMin(), RangeMax() in
  class DeviceCreationParameterInt which returned wrong values


Revision 225 - (view) (download) (annotate) - [select for diffs]
Modified Sun Aug 22 14:46:47 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 58817 byte(s)
Diff to previous 223
* set default volume to 1.0 in Gigasampler engine (was 0.0)
* implemented "SET CHANNEL AUDIO_OUTPUT_CHANNEL" LSCP command
* fixed "GET ENGINE INFO" LSCP command
* fixed "GET CHANNEL INFO" LSCP command
* src/network/lscp.y: fixed 'stringval' rule (returned string with formal
  apostrophes), fixed 'dotnum' rule (ignored position after decimal point)


Revision 223 - (view) (download) (annotate) - [select for diffs]
Modified Sat Aug 21 11:43:53 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 57756 byte(s)
Diff to previous 221
* bug fixes in LSCP server (returned '1'/'0' instead of 'true'/'false' for
  binary fields, spuriously created new elements in maps while trying to
  find map members)


Revision 221 - (view) (download) (annotate) - [select for diffs]
Modified Fri Aug 20 17:25:19 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 57427 byte(s)
Diff to previous 219
* src/drivers/midi/MidiInputDeviceAlsa.cpp: implemented port parameter
 "NAME" which now updates the registered ALSA seq port name as well, fixed
  port parameter "ALSA_SEQ_BINDINGS" to allow more than one binding
* src/network/lscp.y: fixed symbol STRINGVAL (that is strings encapsulated
  into apostrophes) which didn't allow space characters
* changed all driver names and driver paramaters to upper case
* fixed typo in LSCP documentation
  (section 5.3.12, was: "SET MIDI_INPUT_PORT PARAMETER",
   should be: "SET MIDI_INPUT_PORT_PARAMETER")


Revision 219 - (view) (download) (annotate) - [select for diffs]
Modified Tue Aug 17 20:35:04 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 57474 byte(s)
Diff to previous 212
* completely removed the lex scanner and replaced it by pure yacc rules
  for all terminal symbols (that is command keywords and variables) to
  avoid misunderstandings while parsing (e.g. recognition of command
  keywords in string arguments)
* src/drivers/audio/AudioChannel.cpp: changed channel parameter 'Name' to
 'NAME' as defined in the LSCP documentation


Revision 212 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jul 28 14:17:29 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 57565 byte(s)
Diff to previous 211
* introduced and implemented new LSCP command "RESET" which resets the
  whole sampler instance
* src/drivers/audio/AudioOutputDeviceAlsa.cpp: parameter 'card' now
  returns all available sound cards as possibility, added dependency to
  parameter 'card' to parameters 'fragments' and 'fragmentsize'
* src/drivers/DeviceParameter.cpp: fixed return value(s) for classes
  'DeviceCreationParameterString' and 'DeviceCreationParameterStrings'
  which returned the default value(s) not encapsulated into apostrophes
* src/network/lscpserver.cpp: fixed implementation of LSCP commands
  "GET MIDI_INPUT_DRIVER_PARAMETER INFO" and
  "GET AUDIO_OUTPUT_DRIVER_PARAMETER INFO"


Revision 211 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jul 25 23:27:41 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 57174 byte(s)
Diff to previous 210
* src/linuxsampler.cpp: tidied up a bit, "initialization completed"
  message shown only after the server is actually running
* src/testcases/: print the name of each test suite before running the
  tests of the suite, added first tests against the LSCP server using a
  socket connection to the LSCP server (tests for the following LSCP
  commands: "ADD CHANNEL", "GET CHANNELS", "REMOVE CHANNEL")


Revision 210 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jul 24 12:33:49 2004 UTC (19 years, 7 months ago) by schoenebeck
File length: 56552 byte(s)
Diff to previous 209
* implemented "SET ECHO" LSCP command


Revision 209 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jul 18 00:29:39 2004 UTC (19 years, 8 months ago) by schoenebeck
File length: 55329 byte(s)
Diff to previous 203
* src/Sampler.cpp: changed sampler channel index allocation from consistent
channel index allocation to incrementing channel index allocation, that is
it doesn't fill channel index gaps anymore (to avoid race conditions)
* implemented "LIST CHANNELS" LSCP command


Revision 203 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jul 13 22:44:13 2004 UTC (19 years, 8 months ago) by schoenebeck
File length: 54798 byte(s)
Diff to previous 198
forgot to change some things which was mandatory due to the recent
directory movements ('/src/audiodriver' -> '/src/drivers/audio',
'/src/mididriver' -> '/src/drivers/midi')


Revision 198 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jul 13 15:36:16 2004 UTC (19 years, 8 months ago) by senkov
File length: 54823 byte(s)
Diff to previous 185
* Get rid of the timeout on select()


Revision 185 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jul 7 02:49:51 2004 UTC (19 years, 8 months ago) by senkov
File length: 54900 byte(s)
Diff to previous 184
* GET MIDI_INPUT_PORT_PARAMETER INFO command


Revision 184 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jul 7 02:00:37 2004 UTC (19 years, 8 months ago) by senkov
File length: 53140 byte(s)
Diff to previous 170
* Added MISCELLANEOUS event to help debugging client/server
interaction. It spits out every line received by the server.


Revision 170 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jul 3 20:08:07 2004 UTC (19 years, 8 months ago) by senkov
File length: 53007 byte(s)
Diff to previous 159
* moved ToString to common
* Implemented handling of multiple connections
* Implemented guts for event subscription/unsubscription
* Illustrated event notification sending by sending MISC events
when connections are established or terminated.


Revision 159 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jun 29 21:11:50 2004 UTC (19 years, 8 months ago) by capela
File length: 44557 byte(s)
Diff to previous 155
* Unconsolidaded MIDI input related channel commands are back:
  SET CHANNEL MIDI_INPUT_DEVICE <chan> <midi-device>
  SET CHANNEL MIDI_INPUT_PORT <chan> <midi-port>
  SET CHANNEL MIDI_INPUT_CHANNEL <chan> <midi-chan>

* Still useful for compability with legacy clients, an almost
  deprecated command gets re-implemented:
  SET CHANNEL MIDI_INPUT_TYPE <chan> <midi-driver>

* Optional parameter list on MIDI input device creation fixed,
  but not quite fully effective yet:
  CREATE MIDI_INPUT_DEVICE <midi-driver> [<key>=<val>...]


Revision 155 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jun 28 04:30:11 2004 UTC (19 years, 8 months ago) by senkov
File length: 41640 byte(s)
Diff to previous 143
* Updated parser, lscp server and sampler class for new MIDI_INPUT
* Minor fixes (and major new bugs) here and there
* Consolidated 3 SET CHANNEL MIDI_xxx commands into one:
SET CHANNEL MIDI_INPUT


Revision 143 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jun 23 18:54:08 2004 UTC (19 years, 8 months ago) by capela
File length: 32622 byte(s)
Diff to previous 142
* SET CHANNEL AUDIO_OUTPUT_TYPE <chan> <driver> command is back!
  creates an audio output device instance of the given driver type
  ('Jack' or 'Alsa') with default parameters if none exists,
  otherwise it just picks the first available device and assign
  it to the intended sampler channel.

* The AudioOutputDevice class get's a new pure virtual method,
  Driver(), which is implemented on both of the existing inherited
  classes, AudioOutputDeviceAlsa and AudioOutputDeviceJack, with
  the sole purpose to return the driver type name as a String
  ('Alsa' and 'Jack', respectively).

* The quoting on the filename argument for the LOAD INSTRUMENT
  command has been made optional; you can have both ways, with
  single quotes or none, keeping compability with older LSCP
  specification.

* An additional sanity check is made on LOAD INSTRUMENT, whether
  the sampler channel has an audio output device assigned, thus
  preventing the server from crashing on instrument file load.

* The GET AUDIO_OUTPUT_DEVICE INFO now includes the missing
  'driver' item, as predicted by the draft protocol document.


Revision 142 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jun 22 00:02:17 2004 UTC (19 years, 9 months ago) by senkov
File length: 30437 byte(s)
Diff to previous 138
* Added implementation for SET CHANNEL AUDIO_OUTPUT_DEVICE


Revision 138 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jun 20 23:18:24 2004 UTC (19 years, 9 months ago) by senkov
File length: 29831 byte(s)
Diff to previous 137
* Fix for CREATE_AUDIO_OUTPUT_DEVICE with all default params
* Fix for GET AUDIO_OUTPUT_DEVICES resultset
* Support for BACKGROUND loading


Revision 137 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jun 20 16:49:47 2004 UTC (19 years, 9 months ago) by capela
File length: 29828 byte(s)
Diff to previous 135
* Changed LSCPServer::LoadInstrument() signature, which adds a new
  boolean argument (bool bBackground) where the loading mode maybe
  selected, whether modal (the default), or modeless (in background).


Revision 135 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jun 20 16:01:50 2004 UTC (19 years, 9 months ago) by senkov
File length: 29695 byte(s)
Diff to previous 133
* Update parser to comply with the latest spec


Revision 133 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jun 18 14:29:02 2004 UTC (19 years, 9 months ago) by capela
File length: 29717 byte(s)
Diff to previous 129
* Load Instrument patch applied; this patch makes the
  LOAD INSTRUMENT command to return immediately,
  almost/always with an OK response, while spawning
  the proper instrument file loading in the background.

* New INSTRUMENT_STATUS field on GET CHANNEL INFO result
  set; the instrument status value holds the load progress
  percentage if positive, otherwise a negative value is
  evidence of a load exception error.

* VERSION is now set to 0.2.


Revision 129 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jun 15 03:30:16 2004 UTC (19 years, 9 months ago) by senkov
File length: 28931 byte(s)
Diff to previous 123
Small change to generate "NA" resultset using resultset class.


Revision 123 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jun 14 19:33:16 2004 UTC (19 years, 9 months ago) by schoenebeck
File length: 28907 byte(s)
Diff to previous 121
* src/common: added template class 'optional<>' which can be used e.g. as
  return type whenever a value might be returned, but don't has to; this
  template class pretty much acts like a pointer of the given type, but is
  much more safer than a simple pointer
* src/audiodriver: added static class AudioDeviceFactory to create audio
  devices at runtime by using a string and to obtain driver informations
  of drivers at runtime, driver classes should simply use the macro
  REGISTER_AUDIO_OUTPUT_DRIVER(DriverName,DriverClass) in their cpp file
  to register the driver to LinuxSampler (no changes needed anymore in the
  LS code to add a new audio output driver)
* src/drivers: added classes to dynamically manage driver parameters; there
  are two different kinds of parameters: parameters which are need to
  create a new device (DeviceCreationParameterX) used to e.g. create an
  audio output device or a MIDI input device and parameters which are only
  available at runtime, means when a device is already created
  (DeviceRuntimeParameterX) which will be e.g. used as audio channel
  parameters and MIDI port parameters
* src/linuxsampler.cpp: all registered audio output drivers will be shown
  on the console on startup
* src/network: implemented configuration of audio output devices via LSCP


Revision 121 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jun 12 07:46:02 2004 UTC (19 years, 9 months ago) by senkov
File length: 17245 byte(s)
Diff to previous 120
typo in case statement (while doing string replace forgot to add breaks)


Revision 120 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jun 12 07:29:37 2004 UTC (19 years, 9 months ago) by senkov
File length: 17227 byte(s)
Diff to previous 117
* Error handling in resultset class, rewrite lscpserver to use resultset.


Revision 117 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jun 8 01:29:08 2004 UTC (19 years, 9 months ago) by senkov
File length: 19218 byte(s)
Diff to previous 113
Updated GET CHANNEL INFO to send uninitialized params with "NONE"/0


Revision 113 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jun 6 20:59:49 2004 UTC (19 years, 9 months ago) by senkov
File length: 18957 byte(s)
Diff to previous 79
* Added LSCP command GET CHANNEL INFO


Revision 79 - (view) (download) (annotate) - [select for diffs]
Modified Sat May 22 06:33:55 2004 UTC (19 years, 10 months ago) by senkov
File length: 17646 byte(s)
Diff to previous 68
* Fixed SET CHANNEL MIDI_INPUT_CHANNEL lscp command.


Revision 68 - (view) (download) (annotate) - [select for diffs]
Modified Sat May 8 19:03:17 2004 UTC (19 years, 10 months ago) by senkov
File length: 17651 byte(s)
Diff to previous 64
* Adding LSCP command SET CHANNEL MIDI_INPUT_PORT. First attempt.


Revision 64 - (view) (download) (annotate) - [select for diffs]
Modified Thu May 6 20:06:20 2004 UTC (19 years, 10 months ago) by schoenebeck
File length: 17009 byte(s)
Diff to previous 56
* src/Sampler.cpp: fixed 3 stupid but fatal bugs that left in the rush (in
  method SamplerChannels(), CreateAudioOutputDevice() and
  CreateMidiInputDevice())
* src/network/lscpserver.cpp: implemented LSCP command
  'SET CHANNEL MIDI_INPUT_CHANNEL'
* src/Sampler.h: moved enums 'audio_output_type_t', 'midi_input_type_t'
  and 'engine_type_t' into the respective base classes
  ('AudioOutputDevice', 'MidiInputDevice', 'Engine')


Revision 56 - (view) (download) (annotate) - [select for diffs]
Modified Tue Apr 27 09:21:58 2004 UTC (19 years, 10 months ago) by schoenebeck
File length: 16244 byte(s)
Diff to previous 53
updated copyright header for 2004


Revision 53 - (view) (download) (annotate) - [select for diffs]
Modified Mon Apr 26 17:15:51 2004 UTC (19 years, 10 months ago) by schoenebeck
File length: 16244 byte(s)
Diff to previous 35
* completely restructured source tree
* implemented multi channel support
* implemented instrument manager, which controls sharing of instruments
  between multiple sampler engines / sampler channels
* created abstract classes 'AudioOutputDevice' and 'MidiInputDevice' for
  convenient implementation of further audio output driver and MIDI input
  driver for LinuxSampler
* implemented following LSCP commands: 'SET CHANNEL MIDI INPUT TYPE',
  'LOAD ENGINE', 'GET CHANNELS', 'ADD CHANNEL', 'REMOVE CHANNEL',
  'SET CHANNEL AUDIO OUTPUT TYPE'
* temporarily removed all command line options
* LSCP server is now launched by default


Revision 35 - (view) (download) (annotate) - [select for diffs]
Added Fri Mar 5 13:46:15 2004 UTC (20 years ago) by schoenebeck
File length: 9714 byte(s)
* implemented parser for the LinuxSampler control protocol (LSCP) by using
  flex / bison (where src/network/lscp.l is the input file for lex / flex
  and src/network/lscp.y is the input file for yacc / bison), parser and
  scanner can be regenerated by 'make parser'
* implemented LSCP network server (only single threaded so far), LSCP
  server will be launched if LinuxSampler was started with "--server" flag,
  implemented the following LSCP commands so far: "LOAD INSTRUMENT", "GET
  CHANNEL VOICE_COUNT", "GET CHANNEL STREAM_COUNT", "GET CHANNEL
  BUFFER_FILL", "SET CHANNEL VOLUME" and "RESET CHANNEL"
* disk thread now started within the engine


This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

  ViewVC Help
Powered by ViewVC