linuxsampler 2.3.1
|
Abstracet base class for all driver parameters of the sampler. More...
#include <DeviceParameter.h>
Public Member Functions | |
virtual String | Type ()=0 |
Some name reflecting the parameter's value type, like "BOOL,
"INT", "FLOAT", "STRING", "STRINGS". | |
virtual String | Description ()=0 |
A human readable description, explaining the exact purpose of the driver parameter. | |
virtual bool | Fix ()=0 |
Whether the parameter is read only. | |
virtual bool | Multiplicity ()=0 |
Whether the parameter only allows to set one scalar value, or if true is returned here, the parameter allows to manage a list of values instead. | |
virtual optional< String > | RangeMin ()=0 |
The driver parameter might (optionally) return a minimum value for the parameter. | |
virtual optional< String > | RangeMax ()=0 |
The driver parameter might (optionally) return a maximum value for the parameter. | |
virtual optional< String > | Possibilities ()=0 |
The driver parameter might (optionally) return a list of possible values for this parameter, encoded as comma separated list. | |
virtual String | Value ()=0 |
The current value of this parameter (encoded as String). | |
virtual void | SetValue (String val) throw (Exception) =0 |
Alter the parameter with the value given by val. | |
virtual | ~DeviceRuntimeParameter () |
Destructor. | |
Abstracet base class for all driver parameters of the sampler.
All audio / MIDI drivers for the sampler are using dynamic driver parameters based on this base class. The main purpose behind this concept is to be able to write GUI frontends for the sampler, which don't need to know about specific drivers the sampler provides, nor the exact list of parameters those drivers offer. Instead a frontend can use this API to retrieve what kind of parameters the respective available drivers offer at runtime. This way new drivers can be added or existing ones being changed arbitrarily to the sampler at any time, without a GUI frontend to be changed or recompiled.
There are various parameter classes deriving from this base class, which implement convenient handling for the various common value types like bool, int, float, String. A driver would rather use one of those type specialized classes, instead of this abstract base class. Because the methods of this very base parameter class here are generalized being encoded in String type for all parameter types.
Besides that, there are 2 distinct sets of parameter types:
Definition at line 73 of file DeviceParameter.h.
|
inlinevirtual |
Destructor.
Virtual base destructor which enforces that all destructors of all deriving classes are called automatically upon object destruction.
Definition at line 189 of file DeviceParameter.h.
A human readable description, explaining the exact purpose of the driver parameter.
The text returned here can be used to display the user in a GUI frontend some helping text, that explains what the parameter actually does.
Implemented in LinuxSampler::AudioChannel::ParameterName, LinuxSampler::AudioChannel::ParameterIsMixChannel, LinuxSampler::AudioChannel::ParameterMixChannelDestination, LinuxSampler::AudioOutputDevice::ParameterActive, LinuxSampler::AudioOutputDevice::ParameterSampleRate, LinuxSampler::AudioOutputDevice::ParameterChannels, LinuxSampler::MidiInputDevice::ParameterActive, LinuxSampler::MidiInputDevice::ParameterPorts, and LinuxSampler::MidiInputPort::ParameterName.
Whether the parameter is read only.
Not to be confused with "creation" parameters! A driver parameter which returns true here can never be set or altered at any time. Not even at instanciation time of the driver! A typical example would be a parameter "SAMPLERATE" for a specific sound card, where the specific sound card does not allow to switch the sound card's sample rate in any way. Yet the value returned by the parameter (read only) might be different, depending on the actual sound card the user selected with the audio driver.
Implemented in LinuxSampler::AudioChannel::ParameterName, LinuxSampler::AudioChannel::ParameterIsMixChannel, LinuxSampler::AudioChannel::ParameterMixChannelDestination, LinuxSampler::AudioOutputDevice::ParameterActive, LinuxSampler::AudioOutputDevice::ParameterSampleRate, LinuxSampler::AudioOutputDevice::ParameterChannels, LinuxSampler::MidiInputDevice::ParameterActive, LinuxSampler::MidiInputDevice::ParameterPorts, and LinuxSampler::MidiInputPort::ParameterName.
Whether the parameter only allows to set one scalar value, or if true
is returned here, the parameter allows to manage a list of values instead.
A typical example of multiplicity parameter is i.e. a "ROUTING" parameter, that would allow a user to interconnect the sampler with other apps and devices with drivers that support such concepts (like JACK and ALSA MIDI do).
Implemented in LinuxSampler::DeviceRuntimeParameterBool, LinuxSampler::DeviceRuntimeParameterInt, LinuxSampler::DeviceRuntimeParameterFloat, LinuxSampler::DeviceRuntimeParameterString, LinuxSampler::DeviceRuntimeParameterStrings, LinuxSampler::DeviceCreationParameterBool, LinuxSampler::DeviceCreationParameterInt, LinuxSampler::DeviceCreationParameterFloat, LinuxSampler::DeviceCreationParameterString, and LinuxSampler::DeviceCreationParameterStrings.
The driver parameter might (optionally) return a list of possible values for this parameter, encoded as comma separated list.
For example an audio driver might return "44100,96000" for a "SAMPLERATE" parameter for a specific sound card.
You probably don't want to call this method directly, but instead cast this object to the respective deriving parameter class like DeviceRuntimeParameterInt, and use its PossibilitiesAsInt() method instead, which conveniently returns a vector in its value type. So you don't need to parse this return value here.
Implemented in LinuxSampler::DeviceCreationParameter, LinuxSampler::DeviceRuntimeParameterBool, LinuxSampler::DeviceRuntimeParameterInt, LinuxSampler::DeviceRuntimeParameterFloat, LinuxSampler::DeviceRuntimeParameterString, and LinuxSampler::DeviceRuntimeParameterStrings.
The driver parameter might (optionally) return a maximum value for the parameter.
If some actual value is returned here, the sampler automatically performs bounds checking of parameter values to be set for such a parameter and a GUI frontend might display a spin box in such a case to the user, honoring the returned maximum value.
You probably don't want to call this method directly, but instead cast this object to the respective deriving parameter class like DeviceRuntimeParameterInt, and use its RangeMaxAsInt() method instead, which conveniently returns a value in its value type. So you don't need to parse this return value here.
Implemented in LinuxSampler::DeviceCreationParameter, LinuxSampler::DeviceRuntimeParameterBool, LinuxSampler::DeviceRuntimeParameterInt, LinuxSampler::DeviceRuntimeParameterFloat, LinuxSampler::DeviceRuntimeParameterString, and LinuxSampler::DeviceRuntimeParameterStrings.
The driver parameter might (optionally) return a minimum value for the parameter.
If some actual value is returned here, the sampler automatically performs bounds checking of parameter values to be set for such a parameter and a GUI frontend might display a spin box in such a case to the user, honoring the returned minimum value.
You probably don't want to call this method directly, but instead cast this object to the respective deriving parameter class like DeviceRuntimeParameterInt, and use its RangeMinAsInt() method instead, which conveniently returns a value in its value type. So you don't need to parse this return value here.
Implemented in LinuxSampler::DeviceCreationParameter, LinuxSampler::DeviceRuntimeParameterBool, LinuxSampler::DeviceRuntimeParameterInt, LinuxSampler::DeviceRuntimeParameterFloat, LinuxSampler::DeviceRuntimeParameterString, and LinuxSampler::DeviceRuntimeParameterStrings.
|
pure virtual |
Alter the parameter with the value given by val.
The respective deriving parameter class automatically parses the String value supplied here, and converts it into its native value type like int, float or String vector ("Strings").
- | new parameter value encoded as string |
Exception | - if val is out of bounds, not encoded correctly in its string representation or any other reason the driver might not want to accept the given value. |
Implemented in LinuxSampler::DeviceRuntimeParameterBool, LinuxSampler::DeviceRuntimeParameterInt, LinuxSampler::DeviceRuntimeParameterFloat, LinuxSampler::DeviceRuntimeParameterString, LinuxSampler::DeviceRuntimeParameterStrings, LinuxSampler::DeviceCreationParameterBool, LinuxSampler::DeviceCreationParameterInt, LinuxSampler::DeviceCreationParameterFloat, LinuxSampler::DeviceCreationParameterString, and LinuxSampler::DeviceCreationParameterStrings.
Some name reflecting the parameter's value type, like "BOOL, "INT", "FLOAT", "STRING", "STRINGS".
Upon the value returned here, the object can be casted to the respective implementing parameter class.
Implemented in LinuxSampler::DeviceRuntimeParameterBool, LinuxSampler::DeviceRuntimeParameterInt, LinuxSampler::DeviceRuntimeParameterFloat, LinuxSampler::DeviceRuntimeParameterString, LinuxSampler::DeviceRuntimeParameterStrings, LinuxSampler::DeviceCreationParameterBool, LinuxSampler::DeviceCreationParameterInt, LinuxSampler::DeviceCreationParameterFloat, LinuxSampler::DeviceCreationParameterString, and LinuxSampler::DeviceCreationParameterStrings.
The current value of this parameter (encoded as String).
You might want to cast to the respective deriving parameter class like DeviceRuntimeParameterInt and use its method ValueAsInt() for not being forced to parse the String here.
Implemented in LinuxSampler::DeviceRuntimeParameterBool, LinuxSampler::DeviceRuntimeParameterInt, LinuxSampler::DeviceRuntimeParameterFloat, LinuxSampler::DeviceRuntimeParameterString, LinuxSampler::DeviceRuntimeParameterStrings, LinuxSampler::DeviceCreationParameterBool, LinuxSampler::DeviceCreationParameterInt, LinuxSampler::DeviceCreationParameterFloat, LinuxSampler::DeviceCreationParameterString, and LinuxSampler::DeviceCreationParameterStrings.