コード例 #1
0
        private void SaveFrameData()
        {
            IEnumerable <MemoryFrame> frames = _frameHandles.Select(x => x.Item);

            var preparedWriters = PrepareWriters(_writingShot, frames);

            foreach (Tuple <Smithers.Serialization.Writers.IWriter, TSavedItem> preparedWriter in preparedWriters)
            {
                Smithers.Serialization.Writers.IWriter writer = preparedWriter.Item1;
                TSavedItem savedItem = preparedWriter.Item2;

                string path = Path.Combine(_session.SessionPath, savedItem.Path);

                Directory.CreateDirectory(Path.GetDirectoryName(path));

                using (FileStream stream = new FileStream(path, FileMode.Create))
                {
                    writer.Write(stream);
                    stream.Close();
                }

                _writingShot.SavedItems.Add(savedItem);
            }

            List <TSavedItem> subList = new List <TSavedItem>();

            foreach (TSavedItem item in _writingShot.SavedItems)
            {
                subList.Add(item);
            }

            _session.Metadata.FrameItems.Add(subList as List <DS4SavedItem>);
        }
コード例 #2
0
        protected virtual string GeneratePath(TShot shot, MemoryFrame frame, int frameIndex, Smithers.Serialization.Writers.IWriter writer)
        {
            string folderName = writer.Type.Name;

            int    shotCount = _session.Shots.IndexOf(shot as Shot <ShotDefinition, DS4SavedItem>) + 1;
            string shotName  = string.Format("Shot_{0:D3}", shotCount);

            // 0 -> Frame_001, 1 -> Frame_002, etc.
            string frameName = string.Format("Frame_{0:D3}", frameIndex + 1);

            string fileName = string.Format(
                "{0}{1}{2}{3}",
                shotName,
                shotName == null ? "" : "_",
                frameName,
                writer.FileExtension
                );

            if (_mode == CaptureMode.Sweeping)
            {
                string sweepName     = string.Format("sweep_{0:D2}", _session.SweepCounter);
                string sweepFileName = string.Format("{0:D3}{1}", frameIndex + 1, writer.FileExtension);
                //In sweep mode, put sweepName out to be folder so someone can conveniently fit one sweep
                return(Path.Combine(sweepName, folderName, sweepFileName));
            }

            return(Path.Combine(folderName, fileName));
        }