ohif-viewer/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js

70 lines
2.1 KiB
JavaScript

import { OHIF } from 'meteor/ohif:core';
function updateFramerate(rate) {
OHIF.viewer.cine.framesPerSecond = rate;
// Update playClip toolData for this imageId
var element = getActiveViewportElement();
var playClipToolData = cornerstoneTools.getToolState(element, 'playClip');
playClipToolData.data[0].framesPerSecond = OHIF.viewer.cine.framesPerSecond;
// If the movie is playing, stop/start to update the framerate
if (isPlaying()) {
cornerstoneTools.stopClip(element);
cornerstoneTools.playClip(element);
}
Session.set('UpdateCine', Random.id());
}
Template.cineDialog.helpers({
isPlaying: function() {
return isPlaying();
},
framerate: function() {
Session.get('UpdateCine');
return OHIF.viewer.cine.framesPerSecond.toFixed(1);
}
});
Template.cineDialog.events({
'click #cineFirstButton': function() {
switchToImageByIndex(0);
},
'click #cineBackButton': function() {
switchToImageRelative(-1);
},
'click #cineSlowPlaybackButton': function() {
updateFramerate(OHIF.viewer.cine.framesPerSecond - 1);
},
'click #cinePlayButton': function() {
toggleCinePlay();
},
'click #cineNextButton': function() {
switchToImageRelative(1);
},
'click #cineFastForwardButton': function() {
updateFramerate(OHIF.viewer.cine.framesPerSecond + 1);
},
'click #cineLastButton': function() {
switchToImageByIndex(-1);
},
'change #cineLoopCheckbox': function(e) {
var element = getActiveViewportElement();
var playClipToolData = cornerstoneTools.getToolState(element, 'playClip');
playClipToolData.data[0].loop = $(e.currentTarget).is(':checked');
OHIF.viewer.cine.loop = playClipToolData.data[0].loop;
},
'input #cineSlider': function(e) {
// Update the FPS text onscreen
var rate = parseFloat($(e.currentTarget).val());
updateFramerate(rate);
}
});
Template.cineDialog.onRendered(function() {
const instance = Template.instance();
const dialog = instance.$('#cineDialog');
dialog.draggable();
});