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

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

Open
jamesremuscat opened this issue Aug 19, 2020 · 1 comment
Open

Comments

@jamesremuscat
Copy link
Member

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.

@rjmunro
Copy link
Member

rjmunro commented Aug 24, 2020

Sounds good, but 5 seconds sounds possibly a bit long. Just 1-2 seconds should be fine.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants