[project]
name = "mpf-mc"
description = "Mission Pinball Framework Media Controller"
readme = "README.md"
requires-python = ">=3.8, <3.12"
license = {text = "MIT"}
authors = [{ name = "The Mission Pinball Framework Team", email = "brian@missionpinball.org"}]
keywords = ["pinball"]
classifiers=[
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Natural Language :: English",
    "Operating System :: MacOS :: MacOS X",
    "Operating System :: Microsoft :: Windows",
    "Operating System :: POSIX :: Linux",
    "Topic :: Artistic Software",
    "Topic :: Games/Entertainment :: Arcade"
    ]
dependencies = [
    "mpf >= 0.57.0",  # ALSO CHANGE THIS IN _version.py
    "kivy == 2.2.1",  # Sept 19, 2023  # ALSO CHECK for updates to kivy_deps packages below
    "psutil == 5.9.8",  # Sept 19, 2023
    "Pygments == 2.16.1", # Sept 19, 2023  Only used for the interactive MC. Does anyone use that?
    "ffpyplayer == 4.5.1",  # Nov 3, 2023  4.5.1 needed for RPi.

    # These kivy versions match the ones from kivy
    "kivy_deps.sdl2 == 0.6.0; platform_system=='Windows'",  # Sept 19, 2023
    "kivy_deps.glew == 0.3.1; platform_system=='Windows'",  # Sept 19, 2023
    "kivy_deps.gstreamer == 0.3.3; platform_system=='Windows'",  # Sept 19, 2023
    ]
dynamic = ["version"]

[project.urls]
homepage = "https://missionpinball.org"
support-forum = "https://missionpinball.org/community"

[project.entry-points."mpf.config_player"]
sound_player = "mpfmc.config_players.plugins.sound_player:register_with_mpf"
sound_loop_player = "mpfmc.config_players.plugins.sound_loop_player:register_with_mpf"
playlist_player = "mpfmc.config_players.plugins.playlist_player:register_with_mpf"
widget_player = "mpfmc.config_players.plugins.widget_player:register_with_mpf"
slide_player = "mpfmc.config_players.plugins.slide_player:register_with_mpf"
track_player = "mpfmc.config_players.plugins.track_player:register_with_mpf"
display_light_player = "mpfmc.config_players.plugins.display_light_player:register_with_mpf"

[project.entry-points."mpf.command"]
mc = "mpfmc.commands.mc:get_command"
imc = "mpfmc.commands.imc:get_command"

[tool.setuptools]
include-package-data = true

[tool.setuptools.dynamic]
version = {attr = "mpfmc._version.__version__"}

[tool.setuptools.packages.find]
include = ["mpfmc*"]

# TODO Should we use these lines
# [tool.setuptools.package_data]
# "mpfmc" = ["*.yaml"]

# TODO when setuptools_scm switches to SemVer, we can prob use this for versioning
# [tool.setuptools_scm]
# write_to = "mpfmc/_version.py"

[build-system]
requires = [
    "setuptools >= 63",
    "setuptools_scm[toml] >= 6.2",
    "cython == 0.29.36, < 3.0",
    "pkgconfig",
    "kivy_deps.sdl2 >= 0.6.0; platform_system=='Windows'",
    "kivy_deps.sdl2-dev >= 0.6.0; platform_system=='Windows'",
    "kivy_deps.glew >= 0.3.1; platform_system=='Windows'",
    "kivy_deps.glew-dev >= 0.3.1; platform_system=='Windows'",
    "kivy_deps.gstreamer >= 0.3.3; platform_system=='Windows'",
    "kivy_deps.gstreamer-dev >= 0.3.3; platform_system=='Windows'",
    ]
build-backend = "setuptools.build_meta"