From 1856a6b8a4c1facbb3ff1df0f240acc9d378b315 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sat, 22 Nov 2014 02:28:47 +0100 Subject: [PATCH] Support a ding sound per move. Off by default, of course. --- www/ding.mp3 | Bin 0 -> 27456 bytes www/ding.opus | Bin 0 -> 15120 bytes www/index.html | 13 ++++++++++++- www/js/remoteglot.js | 38 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 www/ding.mp3 create mode 100644 www/ding.opus diff --git a/www/ding.mp3 b/www/ding.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a90cc8481ab12b7d32ce1a9d76cea02c1a5caf43 GIT binary patch literal 27456 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 literal 0 HcmV?d00001 diff --git a/www/ding.opus b/www/ding.opus new file mode 100644 index 0000000000000000000000000000000000000000..c1ee4e2c9e0a6b17339feab9044e95a15dd69d5a GIT binary patch literal 15120 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 literal 0 HcmV?d00001 diff --git a/www/index.html b/www/index.html index c4e17b2..aece701 100644 --- a/www/index.html +++ b/www/index.html @@ -10,6 +10,10 @@ +

Analysis

@@ -20,7 +24,13 @@

PV:

History and potential moves (multi-PV)

-

Sort by: Move +

+ Sound: + On + Off + | + Sort by: + Move Score | No history @@ -55,6 +65,7 @@ Hosting and multi-PV analysis hardware by Studentersamfundet i Trondhjem. JavaScript chessboard powered by chessboard.js and chess.js. + Ding sound by Aiwa (CC-BY-3.0). 7-man Lomonosov tablebase lookup by ChessOK.

diff --git a/www/js/remoteglot.js b/www/js/remoteglot.js index 1b6952d..cd2ffa5 100644 --- a/www/js/remoteglot.js +++ b/www/js/remoteglot.js @@ -65,6 +65,9 @@ var highlighted_move = null; /** @type {?number} @private */ var unique = null; +/** @type {boolean} @private */ +var enable_sound = false; + /** The current position on the board, represented as a FEN string. * @type {?string} * @private @@ -121,6 +124,7 @@ var request_update = function() { }).done(function(data, textstatus, xhr) { ims = xhr.getResponseHeader('X-Remoteglot-Last-Modified'); var num_viewers = xhr.getResponseHeader('X-Remoteglot-Num-Viewers'); + possibly_play_sound(current_analysis_data, data); current_analysis_data = data; update_board(current_analysis_data, displayed_analysis_data); update_num_viewers(num_viewers); @@ -133,6 +137,24 @@ var request_update = function() { }); } +var possibly_play_sound = function(old_data, new_data) { + if (!enable_sound) { + return; + } + if (old_data === null) { + return; + } + var ding = document.getElementById('ding'); + if (ding && ding.play !== undefined) { + if (old_data['position'] && old_data['position']['fen'] && + new_data['position'] && new_data['position']['fen'] && + (old_data['position']['fen'] !== new_data['position']['fen'] || + old_data['position']['move_num'] !== new_data['position']['move_num'])) { + ding.play(); + } + } +} + var clear_arrows = function() { for (var i = 0; i < arrows.length; ++i) { if (arrows[i].svg) { @@ -930,8 +952,24 @@ var update_displayed_line = function() { board.position(hiddenboard.fen()); } +/** + * @param {boolean} param_enable_sound + */ +var set_sound = function(param_enable_sound) { + enable_sound = param_enable_sound; + if (enable_sound) { + $("#soundon").html("On"); + $("#soundoff").html("Off"); + } else { + $("#soundon").html("On"); + $("#soundoff").html("Off"); + } +} +window['set_sound'] = set_sound; + var init = function() { unique = get_unique(); + set_sound(false); // Create board. board = new window.ChessBoard('board', 'start'); -- 2.39.2