Concepts
- Head: a tuple, that reflects the active ‹slide;display› combination currently displayed on a slideshow player; specific to every slideshow player instance; either synchronized with global live head (set by the speakers) or moving freely in the slide/display deck, detached from the live head (controlled by the user of the slideshow player);
- Live head – Current slide/display of the speakers; it is a global value, synchronized thru an upstream; usually, head of every member of the audience and the other speaker is synchronized with this live head;
- Detached head – Current slide/display of a speaker or member of the audience; detached head is specific to every slideshow player instance;
- Resync – either resets the the live head to the current detached head of the slideshow player (only speakers can do this); or resets the head of a slideshow player to the global live head;
- Audience – all participants of the presentation; their slideshow is by default automatically synchronized to live head, and they can go to detached head and revisit previous slides, until they resync with live head;
- Speaker – controls the live head and can optionaly go to detached head (to look for a slide);
- Room (future use) – if there would be multiple rooms with different speakers on same presentation, live head would be different in each room; we have no such requirement, but introduced it incidentally in the Firebase database model, to serve as a key in the
live document collection.
Features
Focus on moving live head first, for speakers. Note: outcome of same the keypresses is different for speakers and audience, so a boolean attribute speaker will be needed on ‹dia-show› element.
Then focus on detached head, for both speakers and audience. An additional detached boolean attribute will probably help on ‹dia-show› element.
Configuration
Speakers
Audience
Note
- When the speaker sets the live head, the ‹slide;display› tuple it sends to the remote is its ‹current slide;default audience display› – the speaker indeed simultaneously sees/projects contents of all displays;
- whereas the audience actually can only see one display at a time – and they use the default audience display that the speaker sent;
- therefore, the slideshow author must determine, for each slide, which diapositive should be displayed to the audience.
See also
Concepts
livedocument collection.Features
Focus on moving live head first, for speakers. Note: outcome of same the keypresses is different for speakers and audience, so a boolean attribute
speakerwill be needed on ‹dia-show› element.Then focus on detached head, for both speakers and audience. An additional
detachedboolean attribute will probably help on ‹dia-show› element.Configuration
TODOTODOsee Refactor ‹dia-controller› to allow opt-in/out of child controllers #12Speakers
⟶/ left⟵moves live head to next/previous slide, all local and remote views synchronized to head (and space is alias of cursor right)ALT-CTRL-Sgoes to speaker modeESCpress first goes to detached head, all local views subsequently synchronized with detached head; live head is not affected until resyncESCpress displays overview of all slides & click on a slide/display sets detached head to the clicked slide/displaySPACEleaves detached mode and resynchronizes the speaker's detached head with live head (and she·he looses the slide where she·he currently was)CTRL-SPACEresynchronizes the live head with the speaker's detached head (what Yves named to « re-focus »).Audience
⟶/ left⟵moves goes to detached head and moves detached head to next/previous slide; subsenquetly stays unsynchronized, until resync;SPACEresynchronizes the audience's detached head with live headESCdisplays overview of all slides & click on a slide/display sets detached head to the clicked slide/display.Note
See also