Разработчик запустил рендеринг «современных» скинов Winamp в браузере после реверс-инжиниринга байт-кода MAKI
Разработчик Джордан Элдридж (автор проекта Webamp) рассказал с подробными техническими деталями, как он смог запустить рендеринг «современных» скинов Winamp в браузере после реверс-инжиниринга байт-кода MAKI (Make a killer interface) и внедрения нужного интерпретатора в JavaScript. Обсуждение этой темы на Reddit.
Изначально проект Webamp просто реализует классические скины Winamp, которые по сути представляют собой набор спрайт-листов. Они могли изменять внешний вид проигрывателя, но не макет, и они не могли добавлять никаких пользовательских взаимодействий.
Разработчики Winamp 5 представили новый, значительно более мощный движок скинов, который работает на XML-файлах, описывающих пользовательский интерфейс, который становился интерактивным с помощью определённых скиннером скриптов, написанных на специальном языке MAKI. Вместе XML и Maki работали во многом как HTML и JavaScript. Они позволяли «скинеру» создавать высокодинамичные пользовательские интерфейсы. Это включало интерфейсы с пользовательской анимацией, интерактивными элементами и многим другим.
После работы над классическими скинами Winamp Элдриджу стало интересно узнать о современных скинах. Например, он захотел выяснить, можно ли запустить современные скины в браузере.
Прочитав о том, как были реализованы эти скины, Элдридж узнал, что современные скины распространялись в виде файлов .zip с расширением .wal, которые состояли из файлов .xml и .maki вместе с изображениями. Файлы скриптов .maki содержали скомпилированный байт-код. Некоторые скины также включали исходные файлы .m, но не все. Авторам скинов требовалось скомпилировать свои скины перед их загрузкой. Элдридж понял, что если ему нужно визуализировать эти скины в браузере, то придётся понять их байт-код и
Читать на habr.com