/// <summary> /// /// </summary> /// <param name="parameters"></param> public void ChangeVolume(ChangeVolumeParameters parameters, int minimumValue, int maximumValue) { switch (parameters.ChangeType) { case ChangeVolumeParameters.EChangeType.Fixed: Volume = parameters.Value; break; case ChangeVolumeParameters.EChangeType.Relative: Volume = MathUtils.ClipValue(Volume + parameters.Value, 0, 127); break; case ChangeVolumeParameters.EChangeType.Percentage: Volume = (int)(Volume * (float)parameters.Value / 100.0 + 0.5); break; case ChangeVolumeParameters.EChangeType.Mapped: Volume = MathUtils.MapValue(Volume, 0, 127, parameters.Value, parameters.ToValue); break; case ChangeVolumeParameters.EChangeType.SmartMapped: Volume = MathUtils.MapValue(Volume, minimumValue, maximumValue, parameters.Value, parameters.ToValue); break; default: throw new ApplicationException("Illegal ChangeVolumeParameter"); } Update("ContentChanged"); }
/// <summary> /// /// </summary> /// <param name="parameters"></param> /// <param name="minimumVolume"></param> /// <param name="maximumVolume"></param> public void ChangeVolume(ChangeVolumeParameters parameters, int minimumVolume, int maximumVolume) { foreach (ITimbre timbre in this.Timbres.TimbresCollection) { IParameter currentVolumeParameter = timbre.GetParam(ParameterNames.TimbreParameterName.Volume); switch (parameters.ChangeType) { case ChangeVolumeParameters.EChangeType.Fixed: currentVolumeParameter.Value = parameters.Value; break; case ChangeVolumeParameters.EChangeType.Relative: currentVolumeParameter.Value = MathUtils.ClipValue(currentVolumeParameter.Value + parameters.Value, 0, 127); break; case ChangeVolumeParameters.EChangeType.Percentage: currentVolumeParameter.Value = (int)(currentVolumeParameter.Value * (float)parameters.Value / 100.0 + 0.5); break; case ChangeVolumeParameters.EChangeType.Mapped: currentVolumeParameter.Value = MathUtils.MapValue(currentVolumeParameter.Value, 0, 127, parameters.Value, parameters.ToValue); break; case ChangeVolumeParameters.EChangeType.SmartMapped: currentVolumeParameter.Value = MathUtils.MapValue(currentVolumeParameter.Value, minimumVolume, maximumVolume, parameters.Value, parameters.ToValue); break; default: throw new ApplicationException("Illegal ChangeVolumeParameter"); } Update("ContentChanged"); } }
/// <summary> /// /// </summary> /// <param name="memory"></param> public ChangeVolumeWindow(ChangeVolumeParameters changeVolumeParameters) { _parameters = changeVolumeParameters; InitializeComponent(); }