Reverse-engineered from its PowerPC binary and checked against the original running under emulation: textures byte for byte and every triangle, over 3,600 frames. 25 fps like the plugin; its colour maps and wave images are extracted from its own code; tests/kaleidostrobe_golden.npz was recorded from the original.
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
import re
|
|
from pathlib import Path
|
|
|
|
from setuptools import setup, find_packages
|
|
|
|
# Single source of truth for the version is lintunes/__init__.py; read it
|
|
# textually so setup.py doesn't import the package (and its Qt deps).
|
|
_init = (Path(__file__).parent / "lintunes" / "__init__.py").read_text()
|
|
_version = re.search(r'^__version__ = "([^"]+)"', _init, re.MULTILINE)[1]
|
|
|
|
setup(
|
|
name="lintunes",
|
|
version=_version,
|
|
packages=find_packages(),
|
|
# The web-mix templates (player.js/css, the player sprite GIF and
|
|
# the placeholder image) must ride along in an installed copy.
|
|
# The andTunes APK LinTunes installs, and the default button artwork
|
|
# sync ships to the device.
|
|
package_data={
|
|
"lintunes": ["sounds/*.wav"],
|
|
"lintunes.export": ["templates/*"],
|
|
"lintunes.android": ["andTunes.apk", "andTunes.json"],
|
|
"lintunes.andtunes": ["buttons/*.png"],
|
|
"lintunes.kaleidostrobe": ["tables.npz"],
|
|
},
|
|
install_requires=[
|
|
"PyQt6>=6.8.0", # QAudioBufferOutput (visualizer) needs Qt 6.8+
|
|
"mutagen>=1.46",
|
|
"numpy>=1.24",
|
|
"requests>=2.28",
|
|
"pychromecast>=14.0.10",
|
|
],
|
|
data_files=[
|
|
("share/applications", ["packaging/lintunes.desktop"]),
|
|
],
|
|
entry_points={
|
|
"console_scripts": [
|
|
"lintunes=lintunes.main:main",
|
|
],
|
|
},
|
|
python_requires=">=3.11",
|
|
)
|