--- linuxsampler/trunk/src/drivers/audio/AudioOutputDeviceFactory.cpp 2009/02/16 08:12:55 1834 +++ linuxsampler/trunk/src/drivers/audio/AudioOutputDeviceFactory.cpp 2009/02/16 17:56:50 1835 @@ -156,9 +156,13 @@ } DeviceCreationParameter* AudioOutputDeviceFactory::GetDriverParameter(String DriverName, String ParameterName) throw (Exception) { - std::map parameters = GetAvailableDriverParameters(DriverName); - if (!parameters.count(ParameterName)) throw Exception("Audio output driver '" + DriverName + "' does not have a parameter '" + ParameterName + "'."); - return parameters[ParameterName]; + if (!InnerFactories.count(DriverName)) throw Exception("There is no audio output driver '" + DriverName + "'."); + DeviceParameterFactory* pParamFactory = ParameterFactories[DriverName]; + if (pParamFactory) { + try { return pParamFactory->Create(ParameterName); } + catch(Exception e) { } + } + throw Exception("Audio output driver '" + DriverName + "' does not have a parameter '" + ParameterName + "'."); } String AudioOutputDeviceFactory::GetDriverDescription(String DriverName) throw (Exception) {