sintonia/legacy/public/js/airtime/player/player.js

91 lines
2.5 KiB
JavaScript

function updateEmbedSrcParams() {
var $embedCodeParams = "?";
var $streamMode = getStreamMode();
if ($streamMode == "manual") {
var $stream = $("input[name=player_stream_url]:radio:checked").val();
$embedCodeParams += "stream=" + $stream;
} else if ($streamMode == "auto") {
$embedCodeParams += "stream=auto";
}
$embedCodeParams += "&title=" + getPlayerTitle();
$embedCodeParams += '"';
$("textarea[name=player_embed_src]").val(function (index, value) {
return value.replace(/\?.*?"/, $embedCodeParams);
});
updatePlayerIframeSrc($("textarea[name=player_embed_src]").val());
}
function updatePlayerIframeSrc(iframe_text) {
var $player_iframe = $("#player_form iframe");
var player_iframe_src = iframe_text.match(/http.*?"/)[0].slice(0, -1);
$player_iframe.attr("src", player_iframe_src);
}
function getStreamMode() {
return $("input[name=player_stream_mode]:radio:checked").val();
}
function getPlayerTitle() {
return $("input[name=player_title]").val();
}
$(document).ready(function () {
$("#player_stream_url-element").hide();
// stream mode change event
$("#player_stream_mode-element").change(function () {
var $streamMode = getStreamMode();
if ($streamMode == "auto") {
$("#player_stream_url-element").hide();
} else if ($streamMode == "manual") {
$("#player_stream_url-element").show();
$("input[name=player_stream_url]").each(function (i, obj) {
if ($(this).parent().text().toLowerCase().indexOf("opus") >= 0) {
$(this).attr("disabled", "disabled");
}
});
}
updateEmbedSrcParams();
});
// stream url change event
$("#player_stream_url-element").change(function () {
updateEmbedSrcParams();
});
// display title checkbox change event
$("#player_display_title").change(function () {
if ($(this).prop("checked")) {
$("#player_title-label").show();
$("#player_title-element").show();
} else {
$("#player_title-label").hide();
$("#player_title-element").hide();
}
updateEmbedSrcParams();
});
// title textbox change event
// setup before functions
var typingTimer;
var doneTypingInterval = 3000;
// on keyup, start the countdown
$("input[name=player_title]").keyup(function () {
clearTimeout(typingTimer);
typingTimer = setTimeout(updateEmbedSrcParams, doneTypingInterval);
});
// on keydown, clear the countdown
$("input[name=player_title]").keydown(function () {
clearTimeout(typingTimer);
});
});