Exemple #1
0
        public void Evaluate(int SpreadMax)
        {
            if (FInDevice.IsChanged || FInFramerate.IsChanged || FInChannel.IsChanged || FInChannels.IsChanged)
            {
                foreach (var instance in FInstances)
                {
                    if (instance != null)
                    {
                        instance.Dispose();
                    }
                }

                FInstances.SliceCount = 0;
                FOutStatus.SliceCount = SpreadMax;
                FOutTimecode.SliceCount = SpreadMax;

                for (int i = 0; i < SpreadMax; i++)
                {
                    try
                    {
                        var instance = new DecodeInstance(FInDevice[i], FInChannels[i], FInChannel[i], FInFramerate[i]);
                        FInstances.Add(instance);
                        FOutStatus[i] = "OK";
                    }
                    catch (Exception e)
                    {
                        FInstances.Add(null);
                        FOutStatus[i] = e.Message;
                    }
                }
            }

            for (int i = 0; i < FInstances.SliceCount; i++)
            {
                if (FInstances[i] != null)
                {
                    try
                    {
                        FOutTimecode[i] = FInstances[i].Timecode;
                    }
                    catch
                    {
                    }
                }
                else
                {
                    FOutTimecode[i] = null;
                }
            }
        }
        public void Evaluate(int SpreadMax)
        {
            if (FInDevice.IsChanged || FInFramerate.IsChanged || FInChannel.IsChanged || FInChannels.IsChanged)
            {
                foreach (var instance in FInstances)
                {
                    if (instance != null)
                    {
                        instance.Dispose();
                    }
                }

                FInstances.SliceCount   = 0;
                FOutStatus.SliceCount   = SpreadMax;
                FOutTimecode.SliceCount = SpreadMax;

                for (int i = 0; i < SpreadMax; i++)
                {
                    try
                    {
                        var instance = new DecodeInstance(FInDevice[i], FInChannels[i], FInChannel[i], FInFramerate[i]);
                        FInstances.Add(instance);
                        FOutStatus[i] = "OK";
                    }
                    catch (Exception e)
                    {
                        FInstances.Add(null);
                        FOutStatus[i] = e.Message;
                    }
                }
            }

            for (int i = 0; i < FInstances.SliceCount; i++)
            {
                if (FInstances[i] != null)
                {
                    try
                    {
                        FOutTimecode[i] = FInstances[i].Timecode;
                    }
                    catch
                    {
                    }
                }
                else
                {
                    FOutTimecode[i] = null;
                }
            }
        }