Сидел я однажды на региональном Аниме-фесте, смотрел как на проекторе на глазах у зрителей мышкой таскают файлы и моё терпение лопнуло.
Миру нужна простая и бесплатная система, через которую можно одновременно показывать картинку на проекторе (задник), включать аудио и при необходимости включать видео вместо картинки.
На одном компьютере.
В одном приложении.
Как это у других, лучше не знать... Мало кто отключает системные звуки даже, а мышка бегающая по экрану проектора и интерфейсы винды -- это в порядке вещей.
Идея Fest Engine не нова, вот список дорогих и/или неполноценных программ, которыми можно его заменить:
FestEngine.exe
(для минимальной версии бинарика, нужно сначала запустить Install.bat от админа). Открываются пустые настройки.Пример настроек:
Соответственно, Linux, Windows и MacOS нативно поддерживаются сразу из коробки (самом деле нет, надо получше потестить, сейчас хорошо поддерживаются только Windows и Linux, но у последних есть проблемы, связанные со странностями Gtk)
Код FestEngine выглядит дико и совсем не энтерпрайзно, отказ от сложной модульной архитектуры был осознанным выбором. Главным принципом при разработке на данный момент является минималистичность: минимализация кодовой базы, времени разработки и фанатичное избегание всяческого вспомогательного кода. Всё сделано на 100% в лоб самым прямым и тупым методом. Это привело к тому что большенство кода находится в основном классе MainWindow
и совершенно никак не тестируется, поскольку код плотно завязан на UI. Да, это не есть хорошо. Считайте, что это спайк. Если у Вас есть время спроецировать этот спайк на нормальную архитектуру, будет просто замечательно, но у нас его, как видите, нету. Надо фесты делать, а не классы наследовать, да интерфейсы имплементить. Гляньте на bCNC, у них тоже всё плохо ))) я хотя бы по PEP8 пишу.
">183 maybe"
), строчка сдублируется в нужном месте. Это удобно если участника паренесли и надо не забыть об этом. Такие строки можно удалять и обновлять комент в них изменяя комент в исходной.Если ты чувствуешь в себе силу что-нибудь из этого запилить, будешь няшкой и сделаешь звук на фестах чуть лучше!
pip install --upgrade setuptools pip
pip install wxpython python-vlc
git clone https://github.com/Himura2la/FestEngine.git
py main.pyw
Внимание! wxPython
при установке из pip
обожает начинать компилироваться из исходников. Это безнадежное занятие, ему надо явно указать .whl
наиболее подходящий для вашей системы (желательно, конечно, совсем подходящий, но вроде бы билды для чужих систем иногда работает). Официальная инструкция, вам нужен раздел -- Yes, we have Linux Wheels. Sort of.
sudo apt install git python3 python3-pip vlc -y
pip install --upgrade setuptools pip
pip install python-vlc
pip install -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04 wxPython
git clone https://github.com/Himura2la/FestEngine.git
cd FestEngine/src/locale && ./msgfmt.sh && cd ..
python3 main.pyw
python3 -m venv .venv
. .venv/bin/activate
.venv/bin/python3 -m pip install --upgrade pip setuptools
.venv/bin/python3 -m pip install python-vlc
.venv/bin/python3 -m pip install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/centos-8 wxPython
sudo dnf install SDL
С помощью Fest Engine проводились следующие мероприятия
Если не запускается на винде, возможно поможет использование версии с правильной разрядностью, или установка Visual C++ Redistributable for Visual Studio 2015. При использовании минимальной версии, у вас должен быть установлен VLC той же разрядности, что и ваша система. Но вам еще Install.bat про это расскажет ))
Если не запускается на линуксе, попробуйте запустить приложение до и после исполнения install.sh. Еще можно установить/переустанвоить vlc
. Больше мы ни с какаими проблемами не сталкивались, должно работать, пишите в Gitter или пишите баги.
Если появляется окно с ошибками от wxPython, смело пишите баги с содержанием ошибок, это значит что вы или ваша система делаете что-то, на что мы не рассчитывали ))