Media panel integration ready for assessment

Antranig Basman antranig.basman at
Thu Mar 1 10:52:46 UTC 2012

I've pushed to my branch (amb26/demo-integration-sketch) a seemingly working version of our media panel 
integration... it correctly broadcasts events relating to volume, language and transcript settings.

There has been significant rewriting of the logic of the related parts of the video player, mostly 
simplifying them. In particular, all updates to the video volume are handled directly through the model, 
which seems to have been set up to be shared across all subcomponents in any case. "Backwash protection" 
avoiding infinite loops between reads and writes of the volume state by UI components is helped by some 
utility functions, which right now are in VideoPlayer_controllers.js, but will be shortly pushed out into 
the core framework -

fluid.hasChangeSource - assesses whether a change event came from a particular source
fluid.addSourceGuardedListener - adds a change listener that only fires for changes not from a source
fluid.fireSourcedChange - fires a change event with a particular source noted.

This kind of scheme should be our preferred one for various other kinds of updates, removing the need for 
dedicated named events relating to each kind of update (which, after all, was the purpose of the 
ChangeApplier in the first place). In future, we will be also able to separate the models sent to different 
components in a set, by means of something like the "relay" system which is currently used to connect 
UIOptions with VideoPlayer. These will all find their way into the framework relatively soon with some 
suitable declarative syntax - in the meantime the utilities are free to use.

I took the opportunity to knock off a number of other very annoying bugs - for example toolbar 4. "selecting 
the already select option does not hide the menu for transcripts and captions", various superfluous code was 
removed from the MenuBar to enable this

"volume slider needs a background - too easy to have it disappear when trying to change the volume" and
"volume slider should be above scrubbing handle" set by CSS rules on ".fl-videoPlayer-volumeControl"

"multiple quick hovers cause ghosting of appearance/disappearance of controls" fixed by appropriate use of 

I've only given this branch light testing so far - in particular, I haven't tested captions or keyboard-a11y 
very much and so may have missed a few facilities during simplification work. Please take a look and supply 
fixes/comments - more tomorrow, assuming no bigger problems, I'll next turn to "mute should move the volume 
slider to the bottom and sliding the volume to the bottom change the icon to mute" as well as ensuring that 
the MyInfusion.js can be produced by means of some reasonable kind of framework build. It depends on two 
fixes for which there are currently pull requests as well as various other changes to UIOptions and 
ChangeApplier utility functions.


More information about the fluid-work mailing list