public void Evaluate(int SpreadMax)
		{
			if (FInRefresh[0] || FInFlags.IsChanged || firstRun)
			{
				firstRun = false;
				FOutStatus.SliceCount = 1;
				try
				{
					_BMDVideoOutputFlags flags = _BMDVideoOutputFlags.bmdVideoOutputFlagDefault;
					for (int i = 0; i < FInFlags.SliceCount; i++)
					{
						if (i == 0)
							flags = FInFlags[i];
						else
							flags |= FInFlags[i];
					}
					ModeRegister.Singleton.Refresh(flags);

					string firstKey = ModeRegister.Singleton.Modes.Keys.First();
					EnumManager.UpdateEnum("DeckLinkOutputMode", firstKey, ModeRegister.Singleton.EnumStrings);
					FOutStatus[0] = "OK";
				}
				catch(Exception e)
				{
					FOutStatus[0] = e.Message;
				}
			}

			if (FInMode.IsChanged)
			{
				FOutMode.SliceCount = SpreadMax;
				FOutWidth.SliceCount = SpreadMax;
				FOutHeight.SliceCount = SpreadMax;
				FOutFrameRate.SliceCount = SpreadMax;
				FOutStatus.SliceCount = SpreadMax;

				for (int slice = 0; slice < SpreadMax; slice++)
				{
					try
					{
						var modes = ModeRegister.Singleton.Modes;

						var selection = FInMode[slice];
						if (!modes.ContainsKey(selection.Name))
							throw (new Exception("No valid mode selected (" + selection.Name + ")"));

						var mode = modes[selection.Name];
						FOutMode[slice] = new ModeRegister.ModeIndex(selection.Name);
						FOutWidth[slice] = mode.Width;
						FOutHeight[slice] = mode.Height;
						FOutFrameRate[slice] = mode.FrameRate;
						
						FOutStatus[slice] = "OK";
					}
					catch (Exception e)
					{
						FOutStatus[slice] = e.Message;
					}
				}
			}
		}
        public void Evaluate(int SpreadMax)
        {
            if (FInRefresh[0] || FInFlags.IsChanged || firstRun)
            {
                firstRun = false;
                FOutStatus.SliceCount = 1;
                try
                {
                    _BMDVideoOutputFlags flags = _BMDVideoOutputFlags.bmdVideoOutputFlagDefault;
                    for (int i = 0; i < FInFlags.SliceCount; i++)
                    {
                        if (i == 0)
                        {
                            flags = FInFlags[i];
                        }
                        else
                        {
                            flags |= FInFlags[i];
                        }
                    }
                    ModeRegister.Singleton.Refresh(flags);

                    string firstKey = ModeRegister.Singleton.Modes.Keys.First();
                    EnumManager.UpdateEnum("DeckLinkOutputMode", firstKey, ModeRegister.Singleton.EnumStrings);
                    FOutStatus[0] = "OK";
                }
                catch (Exception e)
                {
                    FOutStatus[0] = e.Message;
                }
            }

            if (FInMode.IsChanged)
            {
                FOutMode.SliceCount      = SpreadMax;
                FOutWidth.SliceCount     = SpreadMax;
                FOutHeight.SliceCount    = SpreadMax;
                FOutFrameRate.SliceCount = SpreadMax;
                FOutStatus.SliceCount    = SpreadMax;

                for (int slice = 0; slice < SpreadMax; slice++)
                {
                    try
                    {
                        var modes = ModeRegister.Singleton.Modes;

                        var selection = FInMode[slice];
                        if (!modes.ContainsKey(selection.Name))
                        {
                            throw (new Exception("No valid mode selected (" + selection.Name + ")"));
                        }

                        var mode = modes[selection.Name];
                        FOutMode[slice]      = new ModeRegister.ModeIndex(selection.Name);
                        FOutWidth[slice]     = mode.Width;
                        FOutHeight[slice]    = mode.Height;
                        FOutFrameRate[slice] = mode.FrameRate;

                        FOutStatus[slice] = "OK";
                    }
                    catch (Exception e)
                    {
                        FOutStatus[slice] = e.Message;
                    }
                }
            }
        }