#!/bin/bash
echo "Starting sunshine service..."

if [ -f "$HOME/.config/gamescope/gamescope.conf" ]; then
    source "$HOME/.config/gamescope/gamescope.conf"
fi
OUTPUT_CONNECTOR=${OUTPUT_CONNECTOR:-HDMI-A-1}
FRAMERATE=${FRAMERATE:-120}
RESOLUTION=${RESOLUTION:-1920x1080}
HDR_ENABLED=${HDR_ENABLED:-${HDR:-1}}

echo "Building gamescope command..."

# Choose backend based on environment
BACKEND_ARGS=""
DRM_ARGS=""
IN_WAYLAND=0
if [ -n "${WAYLAND_DISPLAY:-}" ] || [ "${XDG_SESSION_TYPE:-}" = "wayland" ]; then
  IN_WAYLAND=1
  BACKEND_ARGS="--backend wayland"
fi

# HDR only relevant for DRM path generally
HDR_FLAG=""
if [[ "$HDR_ENABLED" == "1" || "$HDR_ENABLED" == "true" || "$HDR_ENABLED" == "yes" ]]; then
    HDR_FLAG="--hdr-enabled"
    echo "   HDR flag added: --hdr-enabled"
else
    echo "   HDR disabled, no HDR flag added"
fi

WIDTH="${RESOLUTION%x*}"
HEIGHT="${RESOLUTION#*x}"

if [ "$IN_WAYLAND" -eq 0 ]; then
  DRM_ARGS="-O \"$OUTPUT_CONNECTOR\" -r \"$FRAMERATE\" $HDR_FLAG"
fi

echo ""
echo "Final Configuration Summary:"
echo "   Backend: $([ "$IN_WAYLAND" -eq 1 ] && echo Wayland || echo DRM/KMS)"
echo "   Output Connector: ${OUTPUT_CONNECTOR}"
echo "   Framerate: ${FRAMERATE}Hz"
echo "   Resolution: ${RESOLUTION}"
echo "   HDR: $([ -n "$HDR_FLAG" ] && echo "enabled" || echo "disabled")"
echo "   MangoHUD: enabled"
echo "   Steam Mode: SteamOS3"

echo ""
echo "Launching gamescope session..."
echo "Full command:"
echo "   gamescope $BACKEND_ARGS $DRM_ARGS --mangoapp -w $WIDTH -h $HEIGHT -e -- /usr/bin/steamos"
echo ""
echo "========================================="

LOGDIR="${HOME}/.local/logs"
mkdir -p "$LOGDIR"
echo "[$(date --iso-8601=seconds)] Launching (backend: $([ "$IN_WAYLAND" -eq 1 ] && echo wayland || echo drm)): gamescope $BACKEND_ARGS $DRM_ARGS --mangoapp -w $WIDTH -h $HEIGHT -e -- /usr/bin/steamos" >>"$LOGDIR/gamescope-launch.log"
exec bash -lc "gamescope $BACKEND_ARGS $DRM_ARGS --mangoapp -w $WIDTH -h $HEIGHT -e -- /usr/bin/steamos"
