/**
 * @file audio-track-button.js
 */
import TrackButton de '../track-button.js' ;
import Component from '../../component.js' ;
import AudioTrackMenuItem de './audio-track-menu-item.js' ;

/**
 * La classe de base pour les boutons qui commutent des types spécifiques de {@link AudioTrack}.
 *
 * @extends TrackButton
 */
class AudioTrackButton extends TrackButton {

  /**
   * Crée une instance de cette classe.
   *
   * @param {Player} player
   *        Le `Player` auquel cette classe doit être attachée.
   *
   * @param {Objet} [options={}]
   *        La mémoire clé/valeur des options du lecteur.
   */
  constructor(player, options = {}) {
    options.tracks = player.audioTracks() ;

    super(player, options) ;
  }

  /**
   * Construit le DOM par défaut `className`.
   *
   * @return {string}
   *         Le `nom de classe` du DOM pour cet objet.
   */
  buildCSSClass() {
    return `vjs-audio-button ${super.buildCSSClass()}` ;
  }

  buildWrapperCSSClass() {
    return `vjs-audio-button ${super.buildWrapperCSSClass()}` ;
  }

  /**
   * Créer un élément de menu pour chaque piste audio
   *
   * @param {AudioTrackMenuItem[]} [items=[]]
   *        Un tableau d'éléments de menu existants à utiliser.
   *
   * @return {AudioTrackMenuItem[]}
   *         Un tableau d'éléments de menu
   */
  createItems(items = []) {
    // s'il n'y a qu'une seule piste audio, il est inutile de la montrer
    this.hideThreshold_ = 1 ;

    const tracks = this.player_.audioTracks() ;

    for (let i = 0 ; i < tracks.length ; i++) {
      const track = tracks[i] ;

      items.push(new AudioTrackMenuItem(this.player_, {
        la voie ferrée,
        // L'élément de menu est sélectionnable
        sélectionnable : true,
        // L'élément de menu n'est PAS multi-sélectionnable (c'est-à-dire qu'un seul élément peut être marqué comme "sélectionné" à la fois)
        multiSelectable : false
      })) ;
    }

    les articles de retour ;
  }
}

/**
 * Le texte qui doit s'afficher au-dessus des contrôles `AudioTrackButton`. Ajouté pour la localisation.
 *
 * @type {string}
 * @private
 */
AudioTrackButton.prototype.controlText_ = 'Audio Track' ;
Component.registerComponent('AudioTrackButton', AudioTrackButton) ;
exporter le bouton AudioTrackButton par défaut ;