/// <summary>
        /// See description of INuvoEssentiaCommand
        /// </summary>
        public void addCommand(ENuvoEssentiaCommands command)
        {
            switch (command)
            {
            // combined commands -> TurnZoneON, SetVolume and SetSource.
            case ENuvoEssentiaCommands.SetZoneStatus:
                _commandList.Add(new NuvoEssentiaSingleCommand(ENuvoEssentiaCommands.TurnZoneON, _zoneId));
                _commandList.Add(new NuvoEssentiaSingleCommand(ENuvoEssentiaCommands.SetVolume, _zoneId, _volume));
                _commandList.Add(new NuvoEssentiaSingleCommand(ENuvoEssentiaCommands.SetSource, _zoneId, _sourceId));
                break;

            // combined command --> Two commands => ReadStatusCONNECT and ReadStatusZONE.
            case ENuvoEssentiaCommands.GetZoneStatus:
                _commandList.Add(new NuvoEssentiaSingleCommand(ENuvoEssentiaCommands.ReadStatusCONNECT, _zoneId));
                _commandList.Add(new NuvoEssentiaSingleCommand(ENuvoEssentiaCommands.ReadStatusZONE, _zoneId));
                break;

            case ENuvoEssentiaCommands.NoCommand:
                break;

            // default, single command and add them to the list
            default:
                _commandList.Add(new NuvoEssentiaSingleCommand(command));
                break;
            }
        }
 /// <summary>
 /// Public constructor, setting the Command, Zone Id, Source Id and Volume level.
 /// </summary>
 /// <param name="command">Nuvo Essentia Command.</param>
 /// <param name="zone">Zone Id.</param>
 /// <param name="source">Source Id.</param>
 /// <param name="volume">Volume Level.</param>
 public NuvoEssentiaCommand(ENuvoEssentiaCommands command, ENuvoEssentiaZones zone, ENuvoEssentiaSources source, int volume)
 {
     initMembers();
     _zoneId   = zone;
     _sourceId = source;
     _volume   = limitVolume2NuvoEssentia(volume);
     addCommand(command);
 }
 /// <summary>
 /// Public constructor, setting the Command and Zone id.
 /// </summary>
 /// <param name="command">Nuvo Essentia Command.</param>
 /// <param name="zone">Zone Id.</param>
 public NuvoEssentiaCommand(ENuvoEssentiaCommands command, ENuvoEssentiaZones zone)
 {
     initMembers();
     _zoneId = zone;
     addCommand(command);
 }