Source: ui/basic_ad.js

/*! @license
 * Shaka Player
 * Copyright 2016 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */


goog.provide('shaka.ui.BasicAd');

goog.require('shaka.ads.AbstractAd');

shaka.ui.BasicAd = class extends shaka.ads.AbstractAd {
  /**
   * @param {HTMLMediaElement} video
   * @param {?number} startTime
   * @param {?number} endTime
   */
  constructor(video, startTime, endTime) {
    super(video);

    /** @private {?number} */
    this.startTime_ = startTime;

    /** @private {?number} */
    this.endTime_ = endTime;

    /** @private {boolean} */
    this.isLinear_ = this.startTime_ != null;
  }

  /**
   * @override
   */
  getDuration() {
    if (this.endTime_ == null || this.startTime_ == null) {
      return -1;
    }
    return this.endTime_ - this.startTime_;
  }

  /**
   * @override
   */
  getRemainingTime() {
    if (this.endTime_ == null) {
      return -1;
    }
    return this.endTime_ - this.video.currentTime;
  }

  /**
   * @override
   */
  isLinear() {
    return this.isLinear_;
  }

  /**
   * @override
   */
  getTimeOffset() {
    if (this.startTime_ == null) {
      return 0;
    }
    return this.startTime_;
  }
};