72 lines
3.2 KiB
JavaScript
72 lines
3.2 KiB
JavaScript
import 'jquery';
|
|
import loading from '../../components/loading/loading';
|
|
import libraryMenu from '../../scripts/libraryMenu';
|
|
import globalize from '../../scripts/globalize';
|
|
import Dashboard from '../../utils/dashboard';
|
|
|
|
function loadPage(page, config) {
|
|
const trickplayOptions = config.TrickplayOptions;
|
|
|
|
page.querySelector('#chkEnableHwAcceleration').checked = trickplayOptions.EnableHwAcceleration;
|
|
$('#selectScanBehavior', page).val(trickplayOptions.ScanBehavior);
|
|
$('#selectProcessPriority', page).val(trickplayOptions.ProcessPriority);
|
|
$('#txtInterval', page).val(trickplayOptions.Interval);
|
|
$('#txtWidthResolutions', page).val(trickplayOptions.WidthResolutions.join(','));
|
|
$('#txtTileWidth', page).val(trickplayOptions.TileWidth);
|
|
$('#txtTileHeight', page).val(trickplayOptions.TileHeight);
|
|
$('#txtQscale', page).val(trickplayOptions.Qscale);
|
|
$('#txtJpegQuality', page).val(trickplayOptions.JpegQuality);
|
|
$('#txtProcessThreads', page).val(trickplayOptions.ProcessThreads);
|
|
loading.hide();
|
|
}
|
|
|
|
function onSubmit() {
|
|
loading.show();
|
|
const form = this;
|
|
ApiClient.getServerConfiguration().then(function (config) {
|
|
const trickplayOptions = config.TrickplayOptions;
|
|
|
|
trickplayOptions.EnableHwAcceleration = form.querySelector('#chkEnableHwAcceleration').checked;
|
|
trickplayOptions.ScanBehavior = $('#selectScanBehavior', form).val();
|
|
trickplayOptions.ProcessPriority = $('#selectProcessPriority', form).val();
|
|
trickplayOptions.Interval = Math.max(0, parseInt($('#txtInterval', form).val() || '10000', 10));
|
|
trickplayOptions.WidthResolutions = $('#txtWidthResolutions', form).val().replace(' ', '').split(',').map(Number);
|
|
trickplayOptions.TileWidth = Math.max(1, parseInt($('#txtTileWidth', form).val() || '10', 10));
|
|
trickplayOptions.TileHeight = Math.max(1, parseInt($('#txtTileHeight', form).val() || '10', 10));
|
|
trickplayOptions.Qscale = Math.min(31, parseInt($('#txtQscale', form).val() || '10', 10));
|
|
trickplayOptions.JpegQuality = Math.min(100, parseInt($('#txtJpegQuality', form).val() || '80', 10));
|
|
trickplayOptions.ProcessThreads = parseInt($('#txtProcessThreads', form).val() || '0', 10);
|
|
|
|
ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult);
|
|
});
|
|
|
|
return false;
|
|
}
|
|
|
|
function getTabs() {
|
|
return [{
|
|
href: '#/dashboard/playback/transcoding',
|
|
name: globalize.translate('Transcoding')
|
|
}, {
|
|
href: '#/dashboard/playback/resume',
|
|
name: globalize.translate('ButtonResume')
|
|
}, {
|
|
href: '#/dashboard/playback/streaming',
|
|
name: globalize.translate('TabStreaming')
|
|
}, {
|
|
href: '#/dashboard/playback/trickplay',
|
|
name: globalize.translate('Trickplay')
|
|
}];
|
|
}
|
|
|
|
$(document).on('pageinit', '#trickplayConfigurationPage', function () {
|
|
$('.trickplayConfigurationForm').off('submit', onSubmit).on('submit', onSubmit);
|
|
}).on('pageshow', '#trickplayConfigurationPage', function () {
|
|
loading.show();
|
|
libraryMenu.setTabs('playback', 3, getTabs);
|
|
const page = this;
|
|
ApiClient.getServerConfiguration().then(function (config) {
|
|
loadPage(page, config);
|
|
});
|
|
});
|