#!/bin/bash

setup_alsa_override() {
  if [ "$SNAP_ARCH" = "amd64" ]; then
    ALSA_ARCH_TRIPLET="x86_64-linux-gnu"
  elif [ "$SNAP_ARCH" = "armhf" ]; then
    ALSA_ARCH_TRIPLET="arm-linux-gnueabihf"
  elif [ "$SNAP_ARCH" = "arm64" ]; then
    ALSA_ARCH_TRIPLET="aarch64-linux-gnu"
  elif [ "$SNAP_ARCH" = "ppc64el" ]; then
    ALSA_ARCH_TRIPLET="powerpc64le-linux-gnu"
  else
    ALSA_ARCH_TRIPLET="$SNAP_ARCH-linux-gnu"
  fi

  export ALSA_CONFIG_PATH="$SNAP/etc/asound.conf"

  if [ -d "$SNAP/usr/lib/alsa-lib" ]; then
      export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SNAP/usr/lib/alsa-lib"
  elif [ -d "$SNAP/usr/lib/$ALSA_ARCH_TRIPLET/alsa-lib" ]; then
      export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SNAP/usr/lib/$ALSA_ARCH_TRIPLET/alsa-lib"
  fi
  export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SNAP/usr/lib/$ALSA_ARCH_TRIPLET/pulseaudio"

  # Make PulseAudio socket available inside the snap-specific $XDG_RUNTIME_DIR
  if [ -n "$XDG_RUNTIME_DIR" ]; then
    pulsenative="pulse/native"
    pulseaudio_sockpath="$XDG_RUNTIME_DIR/../$pulsenative"
    if [ -S "$pulseaudio_sockpath" ]; then
      export PULSE_SERVER="unix:${pulseaudio_sockpath}"
    fi
  fi
}

setup_alsa_override

exec "$@"
