Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial commit of the remote control #325

Merged
merged 13 commits into from Feb 21, 2016

Conversation

robertrosman
Copy link
Contributor

@robertrosman robertrosman commented Oct 28, 2015

In #211 I've mentioned the remote control I've been hacking on. Now it's implemented in the source code with a few improvements. I'd say it's production ready but not feature complete. I haven't had any problems with it in chrome or firefox, except that firefox may block the popup if it's fired by the keyboard shortcut [c]. The reason I chose [c] is remote [c]ontrol, [c]onsole, [c]ontroller or in the future [c]omments.

Here's a demonstration of a sozi presentation with this remote control, made with this very branch.

@robertrosman
Copy link
Contributor Author

robertrosman commented Oct 29, 2015

Bonus feature: #146. Didn't want to put that in a separate branch or pull request, hope that's okay.

The demonstration is updated to reflect the new commits.

@robertrosman robertrosman mentioned this pull request Oct 30, 2015
@aumouvantsillage
Copy link
Collaborator

aumouvantsillage commented Oct 31, 2015

Thanks for your contribution. I will have a look at it as soon as I can. The demonstration works great, except for the first time if popups are disabled by default in Firefox.

I would have preferred a separate pull request for feature #146 but it will be fine.

In the future, I would like to add the concept of module (extension or plugin) to Sozi.
It would be great if contributors could develop and release new features without asking my permission.

@robertrosman
Copy link
Contributor Author

robertrosman commented Nov 1, 2015

Thanks for your feedback. Maybe I should add an error message if the popup is blocked, so the user knows what's going on.

I see. I'll remember that.

It would probably be a good thing with modules in Sozi. My limited experience is that it often takes more time to set up a working extendable system than it takes to implement pull requests, but it's of course your decision to make.

@aumouvantsillage aumouvantsillage merged commit bbd248b into sozi-projects:dev Feb 21, 2016
@aumouvantsillage
Copy link
Collaborator

aumouvantsillage commented Feb 22, 2016

I have merged your implementation of the remote control.

I see that you use iframes to display copies of the current, previous and next frames. Invisible divs capture click events. The frame list is hidden based on the URL hash.

Another technique would be to create a separate Sozi player for each preview area. Like in player.html, you could create an instance of Viewport and Player for each of the current, previous and next frames. It would allow the remote control to listen to frameChange events directly without capturing click events in invisible divs.

Have you already tried that?

@robertrosman
Copy link
Contributor Author

robertrosman commented Feb 22, 2016

Interesting. I haven't tried that. If you think it's a better approach I could try to implement it. The current implementation makes the different previews behave a little different:

Current: Show transition. Left click for next frame, right click for previous.
Previous: No transition. Left click for previous frame.
Next: No transition. Left click for next frame.

Would that also be possible to achieve without too much work with the Viewport + Player technique?

@aumouvantsillage
Copy link
Collaborator

aumouvantsillage commented Feb 22, 2016

Would that also be possible to achieve without too much work with the Viewport + Player technique?

For the previous and next, you could create your own object that inherits Player and overrides methods setupEventHandlers or onClick.

@robertrosman
Copy link
Contributor Author

robertrosman commented Feb 22, 2016

That's true.

One thing to consider, which is actually the reason why I went with the iframe solution, is that we would need a nice way to copy over all contents from the base document to the remote control. The svg and presentation data shouldn't be too hard, but I have no idea how to best copy over the javascript itself.

@ngoonee
Copy link

ngoonee commented Aug 17, 2016

This has been merged but hasn't appeared yet in the release, or am I simply missing how to activate it? Downloaded the binaries that roggan87 made available, seems to work well, but an official release since it's been merged would be nice.

@robertrosman
Copy link
Contributor Author

robertrosman commented Aug 19, 2016

It is merged into the dev branch, so still considered unstable. It works fine for me, but @SENSHU needs to review/test it before an official release.

@aumouvantsillage
Copy link
Collaborator

aumouvantsillage commented Sep 7, 2016

Sorry for the delay.

Actually, I observed that the implementation could be made simpler by relying on existing features from the Sozi player. See the comments I made at the beginning of this thread.
I was planning to try those ideas before releasing it officially, but time passed and I have not even started.

I think I will include the current implementation in the next release. Evolutions will come later if they are relevant.

@er-vin
Copy link

er-vin commented Jul 31, 2018

Any chance to have it in a release soon? I mean it's 2018 now. :-)

At least I didn't find the feature in 18.04.

@tjlytle
Copy link

tjlytle commented Oct 16, 2019

I like the new presenter support; however, it doesn't (as far as I can tell) allow arbitrary navigation while this does. I've been hacking my own JS to do similar (linking headers from my presentation notes to specific frames), but would love this UI to be available.

Anything I can do to help make that happen?

@aumouvantsillage
Copy link
Collaborator

aumouvantsillage commented Oct 17, 2019

@tjlytle Can you send me a pull request with your code?

N.B I think that this is not the right place to discuss the current implementation of the presenter console. If you don't mind, please open a new issue and describe your proposal in more details. Thanks.

@tjlytle
Copy link

tjlytle commented Oct 17, 2019

@SENSHU sorry, I wasn't clear. I'm not meaning this as a proposal for the new presenter console. I mean I like what the code that was merged in this PR does (at least what I see in the linked demos), but that seems to have just stayed in a dev branch and not gotten merged into master.

Is there some way I can help get @roggan87's code merged into the current version?

@aumouvantsillage
Copy link
Collaborator

aumouvantsillage commented Oct 17, 2019

I understand. Since this PR is quite old, I preferred to integrate the presenter console step by step, taking inspiration from @roggan87's code. I have also made different choices:

  • the communication between the presenter window and the main presentation window does not use the same technique
  • in my version, the presentation is opened from the presenter console instead of the other way round.

Is there some way I can help

I would suggest to follow the same approach, porting one feature at a time from @roggan87's code to the version in the master branch. Please submit a new PR for each feature.
I can answer questions related to the internals of Sozi, if needed.

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

Successfully merging this pull request may close these issues.

None yet

5 participants