Himura2la / FestEngine

Our humble attempts to create a player for live shows that is capable to display images and play video or audio tracks from a single-window control
GNU General Public License v3.0
24 stars 6 forks source link
anime cosplay cosplay2-timer entertainment-control event-management fest-engine festival festival-app festival-mangement festivals hacktoberfest image-viewer player python show-control video-player vlc vlc-python-bindings wxpython

Build status

Сидел я однажды на региональном Аниме-фесте, смотрел как на проекторе на глазах у зрителей мышкой таскают файлы и моё терпение лопнуло.

Миру нужна простая и бесплатная система, через которую можно одновременно показывать картинку на проекторе (задник), включать аудио и при необходимости включать видео вместо картинки.

На одном компьютере.

В одном приложении.

Как было до Fest Engine

Как это у других, лучше не знать... Мало кто отключает системные звуки даже, а мышка бегающая по экрану проектора и интерфейсы винды -- это в порядке вещей.

Идея Fest Engine не нова, вот список дорогих и/или неполноценных программ, которыми можно его заменить:

Как выглядит Fest Engine

скриншот окна

Как работает Fest Engine

Полный список шоткатов

Как настроить Fest Engine

Пример настроек:

настройки

Пошаговая инструкция по применению

Из чего это сделано

Соответственно, Linux, Windows и MacOS нативно поддерживаются сразу из коробки (самом деле нет, надо получше потестить, сейчас хорошо поддерживаются только Windows и Linux, но у последних есть проблемы, связанные со странностями Gtk)

Предупреждение для разработчиков

Код FestEngine выглядит дико и совсем не энтерпрайзно, отказ от сложной модульной архитектуры был осознанным выбором. Главным принципом при разработке на данный момент является минималистичность: минимализация кодовой базы, времени разработки и фанатичное избегание всяческого вспомогательного кода. Всё сделано на 100% в лоб самым прямым и тупым методом. Это привело к тому что большенство кода находится в основном классе MainWindow и совершенно никак не тестируется, поскольку код плотно завязан на UI. Да, это не есть хорошо. Считайте, что это спайк. Если у Вас есть время спроецировать этот спайк на нормальную архитектуру, будет просто замечательно, но у нас его, как видите, нету. Надо фесты делать, а не классы наследовать, да интерфейсы имплементить. Гляньте на bCNC, у них тоже всё плохо ))) я хотя бы по PEP8 пишу.

Какие ещё киллер-фичи?

В планах

Если ты чувствуешь в себе силу что-нибудь из этого запилить, будешь няшкой и сделаешь звук на фестах чуть лучше!

Как развернуть среду для разработки?

Windows

Debian-based

Внимание! 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

CentOS 8

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, смело пишите баги с содержанием ошибок, это значит что вы или ваша система делаете что-то, на что мы не рассчитывали ))