#!/usr/bin/env bash
set -euo pipefail

CARD="${CARD:-0}"
TITLE="İleri linuks ses mimarisi ses karıştırıcı sayın Öner Tanyeri (c) tarafından, Türkiye' de ducduckgo ve gemini yapay zeka yardımı ile, 2026 yılında üretilmiştir"

zenity_info() {
  zenity --info --title="$TITLE" --text="$1" --width=650 --height=400 2>/dev/null || true
}

get_sctrl() {
  amixer -c "$CARD" sget "$1" 2>/dev/null || echo "Kontrol bilgisi alınamadı."
}

set_sctrl_pct() {
  local ctrl="$1"
  local pct="$2"
  amixer -c "$CARD" sset "$ctrl" "${pct}%" 2>/dev/null || \
  amixer -c "$CARD" sset "$ctrl" "$pct" 2>/dev/null || true
}

pick_section() {
  zenity --list \
    --title="$TITLE" \
    --text="Listeden bir seçim yapınız" \
    --column="Kontrol Adı" \
    "Ana (Master)" \
    "Hoparlör (Speaker)" \
    "Kulaklık (Headphone)" \
    "Dijital Ses (PCM)" \
    "Hat Girişi (Line)" \
    "Hat Çıkışı (Line Out)" \
    "Dijital (Digital)" \
    "Hat Güçlendirme (Line Boost)" \
    --width=700 --height=380 \
    2>/dev/null
}

pick_level() {
  zenity --list \
    --title="$TITLE" \
    --text="Listeden bir seçim yapınız" \
    --column="Seviye" \
    "0%" "10%" "20%" "30%" "40%" "50%" "60%" "70%" "80%" "90%" "100%" \
    --width=700 --height=400 \
    2>/dev/null
}

label_to_control() {
  case "$1" in
    "Ana (Master)") echo "Master" ;;
    "Hoparlör (Speaker)") echo "Speaker" ;;
    "Kulaklık (Headphone)") echo "Headphone" ;;
    "Dijital Ses (PCM)") echo "PCM" ;;
    "Hat Girişi (Line)") echo "Line" ;;
    "Hat Çıkışı (Line Out)") echo "Line Out" ;;
    "Dijital (Digital)") echo "Digital" ;;
    "Hat Güçlendirme (Line Boost)") echo "Line Boost" ;;
    *) echo "" ;;
  esac
}

while true; do
  sel="$(pick_section)" || exit 0
  [[ -z "$sel" ]] && exit 0

  lvl="$(pick_level)" || exit 0
  [[ -z "$lvl" ]] && exit 0

  pct="${lvl//%/}"

  ctrl="$(label_to_control "$sel")"
  if [[ -z "$ctrl" ]]; then
    zenity_info "Kontrol bulunamadı: $sel"
    continue
  fi

  set_sctrl_pct "$ctrl" "$pct"
  
  info="$(get_sctrl "$ctrl")"
  zenity_info "<b>$ctrl</b> ayarı <b>%${pct}</b> olarak güncellendi.\n\n$info"
done
