public void SetBufferingMode(BufferingMode mode) { if (MidiOutPortValid()) { _midiOut.SendMessage(new MidiControlChangeMessage(OutputMidiChannel, 0x00, (byte)mode)); } }
/// <summary> /// Initializes a new instance of the <see cref="GeometryFileReader" /> class. /// </summary> /// <param name="format">The format of the stream reader.</param> /// <param name="parameters">The parameters of the reader.</param> /// <exception cref="System.ArgumentNullException"> /// The format is null. /// or /// The format requires parameters which are not specified. /// </exception> /// <exception cref="System.ArgumentException"> /// The parameters do not contain a required parameter value. /// or /// The type of a parameter value does not match the type specified by the format. /// </exception> protected GeometryStreamReader(GeometryStreamFormat format, IDictionary <GeometryStreamParameter, Object> parameters) { if (format == null) { throw new ArgumentNullException("format", MessageFormatIsNull); } if (parameters == null && format.Parameters != null && format.Parameters.Length > 0) { throw new ArgumentNullException("parameters", MessageParametersNull); } if (parameters != null && format.Parameters != null) { foreach (GeometryStreamParameter parameter in format.Parameters) { // check parameter existence if (!parameter.IsOptional && (!parameters.ContainsKey(parameter) || parameters[parameter] == null)) { throw new ArgumentException(String.Format(MessageParameterMissing, parameter.Name), "parameters"); } if (parameters.ContainsKey(parameter)) { // check parameter type if (!(parameter.Type.GetInterfaces().Contains(typeof(IConvertible)) && parameters[parameter] is IConvertible) && !parameter.Type.Equals(parameters[parameter].GetType()) && !parameters[parameter].GetType().IsSubclassOf(parameter.Type) && !parameters[parameter].GetType().GetInterfaces().Contains(parameter.Type)) { throw new ArgumentException(String.Format(MessageParameterTypeError, parameter.Name), "parameters"); } // check parameter value if (!parameter.IsValid(parameters[parameter])) { throw new ArgumentException(String.Format(MessageParameterConditionError, parameter.Name), "parameters"); } } } } // store parameters Format = format; _parameters = parameters; _disposeSourceStream = true; _disposed = false; _bufferingMode = ResolveParameter <BufferingMode>(GeometryStreamParameters.BufferingMode); // resolve factory or factory type if (IsProvidedParameter(GeometryStreamParameters.GeometryFactory)) { _factory = ResolveParameter <IGeometryFactory>(GeometryStreamParameters.GeometryFactory); } else if (IsProvidedParameter(GeometryStreamParameters.GeometryFactoryType)) { _factoryType = ResolveParameter <Type>(GeometryStreamParameters.GeometryFactoryType); } }
/// <summary> /// Initializes a new instance of the <see cref="GeometryStreamWriter" /> class. /// </summary> /// <param name="stream">The file path to be written.</param> /// <param name="format">The format.</param> /// <param name="parameters">The parameters.</param> /// <exception cref="System.ArgumentNullException"> /// The stream is null. /// or /// The format is null. /// or /// The format requires parameters which are not specified. /// </exception> /// <exception cref="System.ArgumentException"> /// The parameters do not contain a required parameter value. /// or /// The type of a parameter value does not match the type specified by the format. /// </exception> protected GeometryStreamWriter(Stream stream, GeometryStreamFormat format, IDictionary <GeometryStreamParameter, Object> parameters) { if (stream == null) { throw new ArgumentNullException("stream", MessageStreamIsNull); } if (format == null) { throw new ArgumentNullException("format", MessageFormatIsNull); } if (parameters == null && format.Parameters != null && format.Parameters.Length > 0) { throw new ArgumentNullException("parameters", MessageParametersNull); } if (parameters != null && format.Parameters != null) { foreach (GeometryStreamParameter parameter in format.Parameters) { // check parameter existence if (!parameter.IsOptional && (!parameters.ContainsKey(parameter) || parameters[parameter] == null)) { throw new ArgumentException(String.Format(MessageParameterMissing, parameter.Name), "parameters"); } if (parameters.ContainsKey(parameter)) { // check parameter type if (!(parameter.Type.GetInterfaces().Contains(typeof(IConvertible)) && parameters[parameter] is IConvertible) && !parameter.Type.Equals(parameters[parameter].GetType()) && !parameters[parameter].GetType().IsSubclassOf(parameter.Type) && !parameters[parameter].GetType().GetInterfaces().Contains(parameter.Type)) { throw new ArgumentException(String.Format(MessageParameterTypeError, parameter.Name), "parameters"); } // check parameter value if (!parameter.IsValid(parameters[parameter])) { throw new ArgumentException(String.Format(MessageParameterConditionError, parameter.Name), "parameters"); } } } _parameters = new Dictionary <GeometryStreamParameter, Object>(parameters); } Format = format; _bufferingMode = ResolveParameter <BufferingMode>(GeometryStreamParameters.BufferingMode); _disposeSourceStream = false; _disposed = false; _sourceStream = stream; // apply buffering switch (_bufferingMode) { case BufferingMode.Minimal: _baseStream = new ProxyStream(_sourceStream, ProxyStreamOptions.ForceProxy | ProxyStreamOptions.SingleAccess); break; case BufferingMode.Maximal: _baseStream = new MemoryBufferedStream(_sourceStream); break; default: _baseStream = _sourceStream; break; } }