aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/util/RecordingApi.ts21
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx6
-rw-r--r--src/client/views/nodes/RecordingBox/RecordingView.tsx3
3 files changed, 21 insertions, 9 deletions
diff --git a/src/client/util/RecordingApi.ts b/src/client/util/RecordingApi.ts
index ab7642a90..b53cba79d 100644
--- a/src/client/util/RecordingApi.ts
+++ b/src/client/util/RecordingApi.ts
@@ -1,6 +1,7 @@
import { CollectionFreeFormView } from "../views/collections/collectionFreeForm";
import { IReactionDisposer, observable, reaction } from "mobx";
import { NumCast } from "../../fields/Types";
+import { Doc } from "../../fields/Doc";
type Movement = {
time: number,
@@ -42,6 +43,7 @@ export class RecordingApi {
// used for tracking movements in the view frame
this.disposeFunc = null;
+ this.recordingFFView = null;
// for now, set playFFView
this.playFFView = null;
@@ -60,6 +62,9 @@ export class RecordingApi {
return new Error('[recordingApi.ts] start()')
}
+ // update the presentation mode
+ Doc.UserDoc().presentationMode = 'recording'
+
// (1a) get start date for presenation
const startDate = new Date()
// (1b) set start timestamp to absolute timestamp
@@ -80,6 +85,9 @@ export class RecordingApi {
return new Error('[recordingApi.ts] clear()')
}
+ // update the presentation mode
+ Doc.UserDoc().presentationMode = 'none'
+
const presCopy = { ...this.currentPresentation }
// clear presenation data
@@ -133,8 +141,8 @@ export class RecordingApi {
private trackMovements = (panX: number, panY: number): Error | undefined => {
// ensure we are recording
if (!this.isRecording) {
- console.error('[recordingApi.ts] pause() failed: recording is paused()')
- return new Error('[recordingApi.ts] pause()')
+ console.error('[recordingApi.ts] trackMovements() failed: recording is paused()')
+ return new Error('[recordingApi.ts] trackMovements()')
}
// get the time
@@ -149,11 +157,12 @@ export class RecordingApi {
// instance variable for the FFView
private disposeFunc: IReactionDisposer | null;
+ private recordingFFView: CollectionFreeFormView | null;
// set the FFView that will be used in a reaction to track the movements
public setRecordingFFView = (view: CollectionFreeFormView): void => {
// set the view to the current view
- if (view === null || view === this.playFFView) return;
+ if (view === this.recordingFFView || view === null) return;
//this.recordingFFView = view;
// set the reaction to track the movements
@@ -163,7 +172,7 @@ export class RecordingApi {
)
// for now, set the most recent recordingFFView to the playFFView
- this.playFFView = view;
+ this.recordingFFView = view;
}
// call on dispose function to stop tracking movements
@@ -194,6 +203,10 @@ export class RecordingApi {
// })
// }
+ public setPlayFFView = (view: CollectionFreeFormView): void => {
+ this.playFFView = view
+ }
+
public pauseMovements = (): undefined | Error => {
if (this.playFFView === null) {
return new Error('[recordingApi.ts] pauseMovements() failed: no view')
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index f74e526b6..8bcf6f46f 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -965,8 +965,10 @@ export class CollectionFreeFormView extends CollectionSubView<Partial<collection
@action
setPan(panX: number, panY: number, panTime: number = 0, clamp: boolean = false) {
- // set the current FFview to the tab being panned.
- RecordingApi.Instance.setRecordingFFView(this)
+ // set the current respective FFview to the tab being panned.
+ RecordingApi.Instance.setRecordingFFView(this);
+ // TODO: make this based off the specific recording FFView
+ Doc.UserDoc()?.presentationMode !== 'recording' && RecordingApi.Instance.setPlayFFView(this);
if (!this.isAnnotationOverlay && clamp) {
// this section wraps the pan position, horizontally and/or vertically whenever the content is panned out of the viewing bounds
diff --git a/src/client/views/nodes/RecordingBox/RecordingView.tsx b/src/client/views/nodes/RecordingBox/RecordingView.tsx
index 51cc44941..f7446b556 100644
--- a/src/client/views/nodes/RecordingBox/RecordingView.tsx
+++ b/src/client/views/nodes/RecordingBox/RecordingView.tsx
@@ -160,7 +160,6 @@ export function RecordingView(props: IRecordingViewProps) {
videoRecorder.current.onstart = (event: any) => {
setRecording(true);
- // TODO: update names
// RecordingApi.Instance.clear();
RecordingApi.Instance.start();
}
@@ -176,7 +175,6 @@ export function RecordingView(props: IRecordingViewProps) {
videoChunks = []
setRecording(false);
setFinished(true);
- console.log("finished recording")
RecordingApi.Instance.pause();
}
@@ -188,7 +186,6 @@ export function RecordingView(props: IRecordingViewProps) {
// reset the temporary chunks
videoChunks = []
setRecording(false);
- console.log("paused recording")
RecordingApi.Instance.pause();
}