using System;
namespace LibMpc
{
    /// 
    /// The MpdOutput class contains all attributes of an output device of the MPD.
    /// 
    public class MpdOutput
    {
        private readonly int id;
        private readonly string name;
        private readonly bool enabled;
        /// 
        /// The id of the output.
        /// 
        public int Id { get { return this.id; } }
        /// 
        /// The name of the output.
        /// 
        public string Name { get { return this.name; } }
        /// 
        /// If the output is enabled.
        /// 
        public bool IsEnabled { get { return this.enabled; } }
        /// 
        /// Creates a new MpdOutput object.
        /// 
        /// The id of the output.
        /// The name of the output.
        /// If the output is enabled.
        public MpdOutput(int id, string name, bool enabled)
        {
            if (name == null)
                throw new ArgumentNullException("name");
            this.id = id;
            this.name = name;
            this.enabled = enabled;
        }
        /// 
        /// Returns a string representation of the object mainly for debuging purpose.
        /// 
        /// A string representation of the object.
        public override string ToString()
        {
            return this.id + "::" + this.name + "::" + this.enabled;
        }
    }
}