public MoCapTimeRecorder(MoCapManager.Group group, string customPrefix) { this.recordingState = MoCapManager.State.Ongoing; this.group = group; this.customPrefix = customPrefix; MoCapManager.recordingEvent += OnRecordingEvent; }
public MoCapTimePlayback(MoCapManager.Group group, string customPrefix) { this.group = group; this.customPrefix = customPrefix; this.playbackState = MoCapManager.State.Ongoing; MoCapManager.playbackEvent += OnPlaybackEvent; durationLeft = FileManager.DeSerializeObject <float>(group, customPrefix, "time"); }
public void UpdateTime(float deltaTime) { if (playbackState == MoCapManager.State.Ongoing) { durationLeft -= deltaTime; if (durationLeft < 0) { playbackState = MoCapManager.State.Stopped; onPlaybackFinishedEvent?.Invoke(group, customPrefix); } } }
void OnPlaybackEvent(MoCapManager.Group group, MoCapManager.State state, string customPrefix) { if (this.group != group) { Debug.Log( "Found recording group " + this.group + ", not responding to " + group + " call"); return; } this.customPrefix = customPrefix; switch (state) { case MoCapManager.State.Preload: { LoadFromDisk(); } break; case MoCapManager.State.Ongoing: if (playbackState == MoCapManager.State.Stopped || playbackState == MoCapManager.State.Preload) { Debug.Log("Starting to playback"); time = 0; LoadFromDisk(); } break; case MoCapManager.State.Paused: // Only valid when recording is ongoing. if (playbackState != MoCapManager.State.Ongoing) { Debug.LogWarning("Playback state is " + playbackState); return; } break; case MoCapManager.State.Stopped: // Only invalid when no recording is going on. if (playbackState == MoCapManager.State.Stopped) { Debug.LogError("No ongoing playback"); return; } Debug.Log("playback has stopped"); break; } playbackState = state; }
private void OnRecordingEvent(MoCapManager.Group group, MoCapManager.State state, string customPrefix) { // Make sure this is the correct group and prefix. if (this.group != group || !string.Equals(this.customPrefix, customPrefix)) { return; } if (state == MoCapManager.State.Stopped && recordingState != MoCapManager.State.Stopped) { RecordTime(); } recordingState = state; }
private void OnPlaybackEvent(MoCapManager.Group group, MoCapManager.State state, string customPrefix) { // Make sure this is the correct group and prefix. if (this.group != group || !string.Equals(this.customPrefix, customPrefix)) { return; } if (state == MoCapManager.State.Stopped && playbackState != MoCapManager.State.Stopped) { onPlaybackFinishedEvent?.Invoke(group, customPrefix); } playbackState = state; }
void OnRecordingEvent(MoCapManager.Group group, MoCapManager.State state, string customPrefix) { if (this.group != group) { Debug.Log("Found recording group " + this.group + ", not responding to " + group + " call"); return; } this.customPrefix = customPrefix; Debug.Log("Found recording group " + this.group + state); switch (state) { case MoCapManager.State.Ongoing: // If stopped, start. if (recordingState == MoCapManager.State.Stopped) { Debug.Log("Starting recording"); // This is needed here as we start recording coroutine right here. Waiting until it leaves the switch will be too late. recordingState = state; maxTime = MoCapManager.instance.maxTime; this.keyframeInterval = MoCapManager.instance.keyframeInterval; StartCoroutine("WriteCurves"); } // If paused, resume. break; case MoCapManager.State.Paused: // Only valid when recording is ongoing. if (recordingState != MoCapManager.State.Ongoing) { Debug.LogWarning("Recording state is " + recordingState); return; } break; case MoCapManager.State.Stopped: // Only invalid when no recording is going on. if (recordingState == MoCapManager.State.Stopped) { Debug.LogError("No ongoing record"); return; } break; } recordingState = state; }