using System.Collections.ObjectModel;

namespace Inspectron.Camera
{
    /// <summary>
    /// ICameraParameter interface, standard interface to list and change camera parameters
    /// </summary>
    public interface ICameraParameter
    {
        /// <summary>
        /// User friendly name
        /// </summary>
        string Name { get; }
        /// <summary>
        /// Getter and setter to values, null setter if readonly
        /// </summary>
        object Value { get; set; }
        /// <summary>
        /// Indicates that the parameter is readonly, Value setter is null
        /// </summary>
        bool IsReadOnly { get; }
        /// <summary>
        /// Values that can be chosen in case of fixed parameters set.
        /// </summary>
        ReadOnlyCollection<object> Values { get; }
    }
}