All files / src/visual timeElements.js

55% Statements 11/20
100% Branches 0/0
60% Functions 3/5
55% Lines 11/20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120                                                                                                                      31x         370x 370x 370x 370x                                     211x 211x 211x 211x 211x                                       31x                  
/**
 * Imports the AmplitudeJS Current Time
 * @module visual/time/CurrentTimeElements
 */
import CurrentTimeElements from "./time/currentTimeElements.js";
 
/**
 * Imports the AmplitudeJS Current Hour Elements
 * @module visual/time/CurrentHourElements
 */
import CurrentHourElements from "./time/currentHourElements.js";
 
/**
 * Imports the AmplitudeJS Current Minute Elements
 * @module visual/time/CurrentMinuteElements
 */
import CurrentMinuteElements from "./time/currentMinuteElements.js";
 
/**
 * Imports the AmplitudeJS Current Second Elements
 * @module visual/time/CurrentTimeElements
 */
import CurrentSecondElements from "./time/currentSecondElements.js";
 
/**
 * Imports the AmplitudeJS Duration Count Down Time Elements
 * @module visual/time/DurationCountDownTimeElements
 */
import DurationCountDownTimeElements from "./time/durationCountDownTimeElements.js";
 
/**
 * Imports the AmplitudeJS Duration Hour Elements
 * @module visual/time/DurationHourElements
 */
import DurationHourElements from "./time/durationHourElements.js";
 
/**
 * Imports the AmplitudeJS Duration Minute Elements
 * @module visual/time/DurationMinuteElements
 */
import DurationMinuteElements from "./time/durationMinuteElements.js";
 
/**
 * Imports the AmplitudeJS Duration Second Elements
 * @module visual/time/DurationSecondElements
 */
import DurationSecondElements from "./time/durationSecondElements.js";
 
/**
 * Imports the AmplitudeJS Duration Time Elements
 * @module visual/time/DurationTimeElements
 */
import DurationTimeElements from "./time/durationTimeElements.js";
 
/**
 * Time Elements Interface. This allows us to update all of the sub time elements
 * through one central point.
 * @module visual/TimeElements
 */
let TimeElements = (function() {
  /**
   * Resets the current times.
   */
  function resetCurrentTimes() {
    CurrentTimeElements.resetTimes();
    CurrentHourElements.resetTimes();
    CurrentMinuteElements.resetTimes();
    CurrentSecondElements.resetTimes();
  }
 
  /**
   * Syncs the current time elements to the time provided.
   *
   * @param {Object} currentTime - An object representing the current time of the audio.
   */
  function syncCurrentTimes(currentTime) {
    CurrentTimeElements.sync(currentTime);
    CurrentHourElements.sync(currentTime.hours);
    CurrentMinuteElements.sync(currentTime.minutes);
    CurrentSecondElements.sync(currentTime.seconds);
  }
 
  /**
   * Resets the duration times.
   */
  function resetDurationTimes() {
    DurationCountDownTimeElements.resetTimes();
    DurationHourElements.resetTimes();
    DurationMinuteElements.resetTimes();
    DurationSecondElements.resetTimes();
    DurationTimeElements.resetTimes();
  }
 
  /**
   * Syncs the duration times to the times provided.
   *
   * @param {Object} currentTime - An object representing the current time of the audio.
   * @param {Object} songDuration - An object representing the duration of the audio
   */
  function syncDurationTimes(currentTime, songDuration) {
    DurationCountDownTimeElements.sync(currentTime, songDuration);
    DurationTimeElements.sync(songDuration);
    DurationHourElements.sync(songDuration.hours);
    DurationMinuteElements.sync(songDuration.minutes);
    DurationSecondElements.sync(songDuration.seconds);
  }
 
  /**
   * Returns the publically accessible methods.
   */
  return {
    resetCurrentTimes: resetCurrentTimes,
    syncCurrentTimes: syncCurrentTimes,
    resetDurationTimes: resetDurationTimes,
    syncDurationTimes: syncDurationTimes
  };
})();
 
export default TimeElements;