コード例 #1
0
        /// <summary>
        /// Called when play mode is entered, sets up object in SceneTrack core
        /// </summary>
        public static void EnterPlayMode()
        {
            // Bail Out Check
            if (InPlayMode || InstanceHandle != 0)
            {
                return;
            }

            var fileName = Cache.GetNextTakeFilename();

            if (!string.IsNullOrEmpty(FilenameOverride))
            {
                // Find next number
                fileName = FilenameOverride;
            }

            // Start Recording
            InstanceHandle = Recording.CreateRecording();

            int recordTime    = Mathf.Clamp(EditorPrefs.GetInt("SceneTrack_AppendRecordFrames", 2), 1, 30);
            int framePool     = EditorPrefs.GetInt("SceneTrack_MemoryReserveFramePool", 0);
            int frameDataPool = EditorPrefs.GetInt("SceneTrack_MemoryReserveFrameDataPool", 0);

            Recording.MemoryReserve(0, framePool);
            Recording.MemoryReserve(1, frameDataPool);

            // Setup the new take for recording, writing every 2 frames
            Recording.AppendSaveRecording(new StringBuilder(Cache.Folder + fileName + "." + Cache.FileExtension), Format.Binary, (uint)recordTime);

            // Create Schema
            Classes.CreateSchema();

            // Set Flag
            InPlayMode = true;
        }
コード例 #2
0
            protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
            {
                var tuple = await DuplicateAndComputeChecksum(request);

                var checksum = tuple.Item1;

                using (var forward = tuple.Item2)
                {
                    using (var response = await this.Client.SendAsync(forward, cancellationToken))
                    {
                        var recording = await Recording.CreateRecording(checksum, response);

                        recording.Response.RequestMessage = request;
                        session.Recordings.Enqueue(recording);

                        return(recording.Response);
                    }
                }
            }