Skip to content

Remote control to navigate the slideshow #6

@olange

Description

@olange

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

  • Connect to back-end, to sync with active slide of presenters and update live head
  • Cursor right / 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-S goes to speaker mode
  • First ESC press first goes to detached head, all local views subsequently synchronized with detached head; live head is not affected until resync
  • Second ESC press displays overview of all slides & click on a slide/display sets detached head to the clicked slide/display
  • SPACE leaves detached mode and resynchronizes the speaker's detached head with live head (and she·he looses the slide where she·he currently was)
  • CTRL-SPACE resynchronizes the live head with the speaker's detached head (what Yves named to « re-focus »).

Audience

  • Connects to back-end, to sync with live head of speakers and communicate their current head (a feedback to the speakers)
  • Cursor right / left moves goes to detached head and moves detached head to next/previous slide; subsenquetly stays unsynchronized, until resync;
  • SPACE resynchronizes the audience's detached head with live head
  • ESC displays overview of all slides & click on a slide/display sets detached head to the clicked slide/display.

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions