public void AddAt(int idx, CaptureSequence s) { Items.Insert(idx, s); if (Items.Count(i => i.Enabled) == 1) { ActiveSequence = Items.First(i => i.Enabled); } }
public CaptureSequence Clone() { CaptureSequence clone = new CaptureSequence(ExposureTime, ImageType, FilterType, Binning, TotalExposureCount); clone.Gain = Gain; clone.Dither = Dither; clone.DitherAmount = DitherAmount; clone.Offset = Offset; return(clone); }
public void Add(CaptureSequence s) { Items.Add(s); if (Items.Count(i => i.Enabled) == 1) { ActiveSequence = Items.First(i => i.Enabled); } HasChanged = true; s.PropertyChanged += Sequence_Item_PropertyChanged; }
public CaptureSequence GetNextSequenceItem(CaptureSequence currentItem) { if (Items.Count == 0) { return(null); } CaptureSequence seq = currentItem; if (Mode == SequenceMode.STANDARD) { if (seq?.ProgressExposureCount == seq?.TotalExposureCount) { //No exposures remaining. Get next Sequence var idx = Items.IndexOf(seq) + 1; seq = Items.Skip(idx).Where(i => i.Enabled).FirstOrDefault(); if (seq != null) { return(GetNextSequenceItem(seq)); } } } else if (Mode == SequenceMode.ROTATE) { //Check if all sequences are done if (Items.Where(x => x.Enabled).Count() == Items.Where(x => x.ProgressExposureCount == x.TotalExposureCount && x.Enabled).Count()) { //All sequences done return(null); } if (seq == Items.FirstOrDefault(i => i.Enabled) && seq?.ProgressExposureCount == 0 && seq?.TotalExposureCount > 0) { //first sequence active seq = Items.First(i => i.Enabled); } else { do { var idx = (Items.IndexOf(seq) + 1) % Items.Count; seq = Items[idx]; } while (!seq.Enabled); } if (seq.ProgressExposureCount == seq.TotalExposureCount) { return(this.GetNextSequenceItem(seq)); //Search for next sequence where exposurecount > 0 } } return(seq); }
public CaptureSequenceList(CaptureSequence seq) : this() { Add(seq); HasChanged = false; }