std::auto_ptr<Preset> MilkdropPresetFactory::allocate(const std::string & url, const std::string & name, const std::string & author) {

    PresetOutputs *presetOutputs = _usePresetOutputs ? _presetOutputs : _presetOutputs2;

	_usePresetOutputs = !_usePresetOutputs;
	resetPresetOutputs(presetOutputs);

	std::string path;
	if (PresetFactory::protocol(url, path) == PresetFactory::IDLE_PRESET_PROTOCOL) {
		return IdlePresets::allocate(path, *presetOutputs);
	} else
		return std::auto_ptr<Preset>(new MilkdropPreset(url, name, *presetOutputs));
}
/* Reinitializes the engine variables to a default (conservative and sane) value */
void MilkdropPresetFactory::reset()
{
    resetPresetOutputs(_presetOutputs);
    resetPresetOutputs(_presetOutputs2);
}