CVS log for linuxsampler/src/Sampler.h |
|
Help |
Request diff between arbitrary revisions / Display revisions graphically
* src/Sampler.h, src/Sampler.cpp: allow 3rd party applications to retrieve available drivers and sampler engines * src/linuxsampler.cpp: show available engines on startup (on the console)
just a bit API doc correction
just some refactoring work, moved the following files: - src/engines/common/Engine.h -> src/engines/Engine.h, - src/engines/common/EngineChannel.h -> src/engines/EngineChannel.h, - src/engines/common/EngineChannel.cpp -> src/engines/EngineChannel.cpp
just some refactoring work: - renamed class LinuxSamplerException -> Exception - encapsulated LS API relevant files into LS namespace - removed unnecessary header inclusions
* fixed some concurrency problems between the lscp thread and the audio/midi threads for these commands: load engine, set channel audio output device, set channel midi input device/port/channel and remove channel. Thanks to Vincent Bongiorno for bug reports and testing. * removed an autotools warning * fixed an iterator bug * minor code clean-ups
Added new LSCP commands: GET TOTAL_VOICE_COUNT, GET TOTAL_VOICE_COUNT_MAX, SUBSCRIBE/UNSUBSCRIBE TOTAL_VOICE_COUNT
* update MIDI channel info on program change
Fix destructor
* design change: using now one sampler engine instance and one disk thread instance for all sampler channels that are connected to the same audio output device (and are using the same engine type of course) * added EngineFactory / EngineChannelFactory to remove the annoying build dependencies e.g. of the lscpserver to the actual sampler engine implementations * bumped version to 0.3.0 (current CVS state is still quite broken, previous, stable CVS version was tagged as "v0_2_0" and is also available as source tarball)
* 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")
* 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"
* 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
forgot to change some things which was mandatory due to the recent
directory movements ('/src/audiodriver' -> '/src/drivers/audio',
'/src/mididriver' -> '/src/drivers/midi')
moved ToString() out
* 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>...]
* 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
* 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
* 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')
forgot to update copyright header for 2004 for following files: src/linuxsampler.cpp, src/Sampler.h, src/Sampler.cpp, src/network/lscpscanner.cpp
* src/common/Thread.cpp: method StartThread() now blocks until thread actually runs, mlockall() will only be applied for realtime threads * libtoolized liblinuxsampler * initiated automatic unit tests against the LinuxSampler codebase (see src/testcases): already added a couple of tests for the Thread and Mutex classes, you have to explicitly compile the unit tests by running 'make testcases' (you need to have cppunit installed though) and then you can run the console version of the test runner by calling 'src/testcases/linuxsamplertest' * src/Sampler.h: added API documentation
* 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
| LinuxSampler Developers |
Powered by ViewCVS |