![]() |
Очередной мега-фронт-енд.
Раньше пользовался Centrafuse 2, сейчас 3.1, в общем-то почти устраивает, но раздражают тормоза и есть проблемы с изменением скина. Роадраннер пытался покрутить пару раз, почему-то не вдохновило, не знаю почему конкретно. Разработки здешних пользователей глядел, те же яйца, только вид сбоку - каждый делает то что интересно именно ему, хотя это в общем-то нормально.
Решил в свободное от отдыха время придумать что-то принципиально другое. Вот что получилось: 1. Основа для функциональности - скриптовый язык Lua с JavaScript-подобным строением объектов. В основу философии положил объект node, который имеет родителя, детей, положение, размер, текстуру и прочие нужные-важные поля. Кроме того есть базовый объект root, от которого все растет. Работает это примерно так: local node = root.createNode({id="Main", visible=true}) node.left = 0 (можно так) node.top = 0 node.setAttr({width=800, height=600}) (можно и так) node.onLeftPress = function(this) (и так далее...) end Для мультимедиа-функций будет существовать глобальный объект objects.mediaPlayer с методами (например startTrack) и событиями (например onTrackEnd). Ну и подобные объекты для других глобальных подсистем. Lua быстра, а учитывая то что при первом запуске скрипт компилируется и лежит в памяти готовым-для-запуска, оно вообще летает. 2. Основа для графики - OpenGL. Решает проблемы с корректным масштабированием, со скоростью отрисовки, но не жрет много ресурсов. 3. Встраивание приложений - возможно будет как базовый модуль (например objects.extApps). Сейчас встраивание готово, в Lua пока не добавлено, но работает корректно и глюков с непрорисовкой главного меню iGo (как в Centrafuse 3.1) нет. Основной плюс в том, что фактически оболочка получается с открытым кодом в текстовом виде (за исключением движка конечно же). На этом движке можно будет сделать не только фронт-енд, а хоть авторан для dvd, и вообще любую визуальную программу, основанную на спрайтах. Может кто-нибудь покритикует идею, чтобы убрать слабые места, о которых я не подумал? |
А чего ж не поюзать xml, раз всё в нодах? И читабельней в разы, и работать с ним приятней, раз уж всё в открытотекстовом виде жить будет.
|
Цитата:
local size = objects.mediaPlayer.getPlaylist().getSize() local index if objects.storage.getBoolean("Shuffle") then index = random(size) else index = objects.mediaPlayer.getPlaylist().getTrack() + 1 if index == size then index = 0 end end objects.mediaPlayer.startTrack(index) Такое на xml невозможно. |
а чего ж идею критиковать ) выкладывай на общее обозрение, будем ловить баги и критиковать)
|
Цитата:
|
Идеи всегда имеют права на жизнь! Но тебе не кажется, что получится слишком уж сложно?
Я не работал с Lua, но в конечном итоге у тебя получится еще 1 узкоспециализированный язык для разработки чего угодно. Это тот же , что и с++, c#, delphi и т.д. и т.п. но ориентированный на определенный результат. Это пока идея, и чтобы понять как это все будет выглядеть и насколько будет удобно нужно это увидеть в реализованном виде. В большинстве случаев, никому не нужно, лазить в сурсах проекта, и что-то там менять. Нужен документированный интерфейс, для подключения внешних модулей + легкий способ изменить интерфейс окна. Думаю, как-то так! :) |
по поводу идеи, хотелось бы видеть такое(помимо того что уже перечислено):
1. помимо мр3 обязательно поддержка CUE 2. легко создаваемые скины которые могут полностью менять внешний вид программы. удачи в разработке) готов стать бета тестером под вин7 и ХР |
Цитата:
А по использованию xml - я бы в нем хранил интерфейс. А в приведенном примере я вообще не увидел применения xml. |
Насколько я знаком с xml - это язык разметки со структурой дерева, к программированию никакого отношения не имеет, к конфигурации больше. Я хочу сделать все-в-одном, то есть и логика и скин определяются одним языком одинаково. Хочешь поправить расположение элемента - правишь циферки, хочешь логику срабатывания - правишь буковки. Причем логику не в пределах, дозволенных базовой программой, а гораздо шире, потому что базовая программа на себя много не берет, а отдает скрипту.
Насчет фубара подумаю, но пока bass как обычно. |
BASS почти у всех есть. Лучше SDK Foobar2000 посмотри.
Тем более что... :) Цитата:
|
Часовой пояс GMT +4, время: 01:18. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot