Skip to content
This repository was archived by the owner on Dec 8, 2022. It is now read-only.
This repository was archived by the owner on Dec 8, 2022. It is now read-only.

Mitigate potential for multi-user conflict when moving cameras #38

Description

@jamesremuscat

When more than one user of av-control is operating at once, there exists the possibility for them to attempt moving a camera simultaneously. There is no reliable visual indication that another user may be about to move the camera, and the camera will react to each command as it arrives, which could make its behaviour unpredictable.

In order to mitigate this, I propose the following:

  • When a user moves camera 1, they broadcast a message to all connected av-control clients: "I am moving camera 1"
  • When a user receives "I am moving camera 1", if it did not originate from them, their controls for camera 1 are disabled for a period of five seconds, with a dismissable/overridable message to appear over that camera's control UI

Note that changing the speed of pan/tilt, stopping, changing the zoom, storing and recalling a preset will all generate "I am moving..." messages. If a second message is received during the timeout period from the first, the timer should be reset e.g. controls are automatically reenabled if five seconds pass without receiving an "I am moving" message for that camera.

The temporary disable should affect both the regular and advanced camera control screens, as well as joystick input.

I'm imagining this to be entirely client-side, with no changes to avx required.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    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