import 'htmx.org';
import '/src/htmx_import.js'
import AudioMotionAnalyzer from 'audiomotion-analyzer';

addEventListener("load", (_event) => {
  const container = document.getElementById('audioContainer');
  const audioSource = document.getElementById('player');
  const audioMotion = new AudioMotionAnalyzer(container, { source: audioSource });
  audioMotion.registerGradient('sandwich', {
    dir: 'h',           // add this property to create a horizontal gradient (optional)
    colorStops: [       // list your gradient colors in this array (at least one color is required)
      { color: '#957b09', pos: .0 },  // use `level` to set the max bar amplitude (0 to 1) to use this color
      { color: '#f8d170', pos: .65 }, // in an object, use `pos` to adjust the offset (0 to 1) of a colorStop
    ]
  });
  audioMotion.setOptions({ source: audioSource, height: 256, overlay: true, bgAlpha: 0.0, showScaleX: false, gradient: 'sandwich', ledBars: true, mode: 7, reflexRatio: 0.5, reflexAlpha: 1.0, alphaBars: true, weightingFilter: '468', onCanvasDraw: drawCallback });


  function drawCallback(instance, _info) {
    const energy = instance.getEnergy() * 150;
    document.documentElement.style.setProperty('--energy', energy + 'px');
  }
});
