{
  lib,
  pkgs,
  config,
  ...
}:
with lib;
{
  options = {
    mpd = {
      enable = mkEnableOption "enables MPD";
      port = lib.mkOption {
        type = lib.types.int;
        default = 6600;
        description = "The port that MPD is served on.";
      };
      httpPort = lib.mkOption {
        type = lib.types.int;
        default = 8006;
        description = "The port that MPD is served on.";
      };
      musicDir = lib.mkOption {
        type = lib.types.str;
        default = "/home/fw/Music";
        description = "the path to the Music";
      };
    };
  };
  config = mkMerge [
    (mkIf config.mpd.enable {
      services.mpd = {
        enable = true;
		user = "fw";
		group = "users";
		network = {
			port = config.mpd.port;
			listenAddress = "any";
		};
        musicDirectory = config.mpd.musicDir;
        extraConfig = ''
		  audio_output {
				type            "httpd"
				name            "My HTTP Stream"
				encoder         "vorbis"       # or "mp3" if you have lame installed
				port            "${toString config.mpd.httpPort}"         # default HTTP port
				bind_to_address "0.0.0.0"      # listen on all network interfaces
				quality         "5.0"          # Ogg Vorbis quality
			}
        '';
      };
    })
  ];

}
