{ config, lib, ... }:

{
  options.modules.audio.enable = lib.mkEnableOption "Enable Pipewire audio";

  config = lib.mkIf config.modules.audio.enable {
    services.pipewire = {
      enable = true;
      audio.enable = true;
      pulse.enable = true;
      jack.enable = false;

      wireplumber.extraConfig.bluetoothEnhancements = lib.mkIf config.modules.bluetooth.enable {
        "monitor.bluez.properties" = {
          "bluez5.enable-sbc-xq" = true;
          "bluez5.enable-msbc" = true;
          "bluez5.enable-hw-volume" = true;
        };

        "wireplumber.settings" = {
          "bluetooth.autoswitch-to-headset-profile" = false;
        };
      };
    };
  };
}
