mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 01:18:34 +00:00
76 lines
2.5 KiB
JavaScript
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();
|
|
});
|
|
}());
|