15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Called by the common.js module.
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function attachListeners() {
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  document.getElementById('playButton').addEventListener('click', playSound);
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  document.getElementById('stopButton').addEventListener('click', stopSound);
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  document.getElementById('frequencyField').addEventListener('change',
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      changeFrequency);
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Called by the common.js module.
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function moduleDidLoad() {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The module is not hidden by default so we can easily see if the plugin
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // failed to load.
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  common.hideModule();
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function getFrequencyElement() {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return document.getElementById('frequencyField');
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function playSound() {
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  common.naclModule.postMessage('setFrequency:' + getFrequencyElement().value);
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  common.naclModule.postMessage('playSound');
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function stopSound() {
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  common.naclModule.postMessage('stopSound');
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function changeFrequency() {
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  common.naclModule.postMessage('setFrequency:' + getFrequencyElement().value);
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Called by the common.js module.
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)function handleMessage(e) {
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  getFrequencyElement().value = message_event.data;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
41