Intermediate whiteboard snapshots
A virtual whiteboard is modified responsive to editing commands. Each of the editing commands results in a respective state of the virtual whiteboard. At least some of the respective states are stored as whiteboard snapshots. A command to display one of the whiteboard snapshots is received. Based on the command, a user interface associated with the virtual whiteboard is updated according to the one of the whiteboard snapshots.
1 . A method, comprising:
modifying a virtual whiteboard responsive to editing commands, each editing command resulting in a respective state of the virtual whiteboard;
storing at least some of the respective states as whiteboard snapshots;
receiving a command to display one of the whiteboard snapshots;
updating, based on the command, a user interface associated with the virtual whiteboard according to the one of the whiteboard snapshots;
receiving an edit command of a graphical element; and
in response to the edit command, performing a snapshot consistency check to determine whether the edit command affects downstream whiteboard snapshots.
2 . The method of claim 1 , wherein storing the at least some of the respective states as the whiteboard snapshots comprises:
storing, in response to a first snapshot capture command, a first whiteboard snapshot corresponding to a first state; and
storing, in response to a second snapshot capture command received after the first snapshot capture command, a second whiteboard snapshot corresponding to a second state, wherein the second whiteboard snapshot stores differences from the first state to the second state.
3 . The method of claim 1 , further comprising:
updating the user interface based on a first whiteboard snapshot that is upstream from a second whiteboard snapshot;
receiving an edit command of a graphical element displayed in the user interface;
determining whether the graphical element is modified in the second whiteboard snapshot; and
in response to determining that the graphical element is modified in the second whiteboard snapshot, providing a notification indicating that the graphical element is modified in the second whiteboard snapshot.
4 . The method of claim 1 , further comprising:
receiving a request to delete a graphical element from a first whiteboard snapshot of the whiteboard snapshots; and
moving the graphical element to a second whiteboard snapshot that is downstream from the first whiteboard snapshot.
5 . The method of claim 1 , further comprising:
associating a media annotation with the one of the whiteboard snapshots.
6 . The method of claim 1 , further comprising:
associating a textual annotation with the one of the whiteboard snapshots.
7 . The method of claim 1 , further comprising:
associating a name with the one of the whiteboard snapshots.
8 . The method of claim 1 , further comprising:
in response to determining that the edit command affects the downstream whiteboard snapshots, applying the edit command to at least one of the downstream whiteboard snapshots; and
updating the at least one of the downstream whiteboard snapshots to reflect the edit command.
9 . A system, comprising:
one or more memories; and
one or more processors, the one or more processors configured to execute instructions stored in the one or more memories to:
modify a virtual whiteboard responsive to editing commands, each editing command resulting in a respective state of the virtual whiteboard;
store at least some of the respective states as whiteboard snapshots;
receive a command to display one of the whiteboard snapshots;
update, based on the command, a user interface associated with the virtual whiteboard according to the one of the whiteboard snapshots;
receive an edit command of a graphical element; and
in response to the edit command, perform a snapshot consistency check to determine whether the edit command affects downstream whiteboard snapshots.
10 . The system of claim 9 , wherein the one or more processors is further configured to execute instructions stored in the one or more memories to:
associate an audio annotation with the one of the whiteboard snapshots.
11 . The system of claim 9 , wherein the one or more processors is further configured to execute instructions stored in the one or more memories to:
associate an audio-visual annotation with the one of the whiteboard snapshots.
12 . The system of claim 9 , wherein the one or more processors is further configured to execute instructions stored in the one or more memories to:
display a list corresponding to the whiteboard snapshots in the user interface, wherein the command to display the one of the whiteboard snapshots is received in response to a selection from the list.
13 . The system of claim 9 , wherein the user interface associated with the virtual whiteboard includes navigation tools configured to sequentially update the user interface based on the whiteboard snapshots.
14 . The system of claim 9 , wherein the one or more processors is further configured to execute instructions stored in the one or more memories to:
sequentially update the user interface based on the whiteboard snapshots in response to a play command.
15 . Non-transitory computer readable media storing instructions operable to cause one or more processors to perform operations comprising:
modifying a virtual whiteboard responsive to editing commands, each editing command resulting in a respective state of the virtual whiteboard;
storing at least some of the respective states as whiteboard snapshots;
receiving a command to display one of the whiteboard snapshots;
updating, based on the command, a user interface associated with the virtual whiteboard according to the one of the whiteboard snapshots;
receiving an edit command of a graphical element; and
in response to the edit command, performing a snapshot consistency check to determine whether the edit command affects downstream whiteboard snapshots.
16 . The non-transitory computer readable media of claim 15 , wherein modifying the virtual whiteboard comprises:
adding, moving, resizing, or deleting graphical elements in response to the editing commands.
17 . The non-transitory computer readable media of claim 15 , wherein the operations further comprise:
playing a media annotation associated with the one of the whiteboard snapshots in response to receiving the command.
18 . The non-transitory computer readable media of claim 15 , wherein the operations further comprise:
displaying a textual annotation associated with the one of the whiteboard snapshots in response to receiving the command.
19 . The non-transitory computer readable media of claim 15 , wherein the operations further comprise:
displaying a list of the whiteboard snapshots.
20 . The non-transitory computer readable media of claim 15 , wherein the operations further comprise:
sequentially displaying the whiteboard snapshots in response to a play command, wherein each of the whiteboard snapshots is displayed for predefined display duration.