Files
artcraft/old_code/trumpet-trumped.com/frontend/old_frontend/js/initialize.js
T

76 lines
2.5 KiB
JavaScript

'use strict';
// TODO: Use real AMD.
(function() {
/** Install event handlers. */
var installEventHandlers = function() {
$('form').submit(function(ev) { return Events.handleFormSubmit(ev); });
$('input#text').on('keyup', function(ev) { return Events.handleTyping(ev); });
$('body').on('keydown', function(ev) { return Events.handleBodyTyping(ev); });
$('select').on('change', function(ev) { return Events.handleVoiceSelect(ev); });
};
/** Init the UI, possibly from a state passed in from the URL. */
var uiInitialize = function() {
var sentence = Url.getSentence(),
speaker = Url.getSpeaker() || Library.getDefaultSpeaker(),
volume = Url.getVolume() || Volume.DEFAULT,
speed = Url.getSpeed() || 1.0,
useMonophones = Url.getUseMonophones(),
useNPhones = Url.getUseNPhones(),
useSyllables = Url.getUseSyllables(),
useWords = Url.getUseWords(),
useEnds = Url.getUseEnds(),
pbp = Url.getPaddingBetweenPhones() || 0,
pps = Url.getPolyphonePaddingStart() || 600,
ppe = Url.getPolyphonePaddingEnd() || 600,
wps = Url.getWordPaddingStart() || 600,
wpe = Url.getWordPaddingEnd() || 600,
urlPreviousState = false;
if (useMonophones === null) useMonophones = true;
if (useNPhones === null) useNPhones = true;
if (useSyllables === null) useSyllables = true;
if (useWords === null) useWords = true;
if (useEnds === null) useEnds = true;
if (speaker) {
$('select').val(speaker); // TODO: whitelist
}
if (sentence.length > 0) {
$('input#text').val(sentence);
urlPreviousState = true;
}
speed = parseFloat(speed).toFixed(2);
$('input#speed').val(speed);
$('input#vol').val(volume);
$('#use_monophones').prop('checked', useMonophones);
$('#use_n_phones').prop('checked', useNPhones);
$('#use_syllables').prop('checked', useSyllables);
$('#use_words').prop('checked', useWords);
$('#use_ends').prop('checked', useEnds);
$('input#padding_between_phones').val(pbp);
$('input#polyphone_padding_start').val(pps);
$('input#polyphone_padding_end').val(ppe);
$('input#word_padding_start').val(wps);
$('input#word_padding_end').val(wpe);
Library.load(function(library) { Ui.libraryLoadCallback(library); });
Sound.install();
if (urlPreviousState) {
$('form').submit();
}
};
$(function() {
installEventHandlers();
uiInitialize();
});
}());