21.11.2010, 19:37 | #1 |
Старший Пользователь
Регистрация: 16.04.2009
Возраст: 41
Регион: 74
Машина: Hyundai Accent 2008
Сообщений: 96
|
Очередной мега-фронт-енд.
Раньше пользовался 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, и вообще любую визуальную программу, основанную на спрайтах. Может кто-нибудь покритикует идею, чтобы убрать слабые места, о которых я не подумал? |
21.11.2010, 21:40 | #2 |
Пользователь
Регистрация: 04.08.2010
Город: Нижнекамск
Регион: 16, 116
Машина: Toyota bB NCP31 1NZ-FE
Сообщений: 39
|
А чего ж не поюзать xml, раз всё в нодах? И читабельней в разы, и работать с ним приятней, раз уж всё в открытотекстовом виде жить будет.
|
21.11.2010, 22:45 | #3 | |
Старший Пользователь
Регистрация: 16.04.2009
Возраст: 41
Регион: 74
Машина: Hyundai Accent 2008
Сообщений: 96
|
Цитата:
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 невозможно. |
|
21.11.2010, 22:49 | #4 |
Старший Пользователь
Регистрация: 09.02.2010
Регион: Украина
Машина: Chery Amulet
Сообщений: 118
|
а чего ж идею критиковать ) выкладывай на общее обозрение, будем ловить баги и критиковать)
|
21.11.2010, 22:54 | #5 |
Старший Пользователь
Регистрация: 16.04.2009
Возраст: 41
Регион: 74
Машина: Hyundai Accent 2008
Сообщений: 96
|
|
22.11.2010, 00:20 | #6 |
Старший Пользователь
Регистрация: 04.05.2008
Возраст: 42
Регион: 74
Сообщений: 91
|
Идеи всегда имеют права на жизнь! Но тебе не кажется, что получится слишком уж сложно?
Я не работал с Lua, но в конечном итоге у тебя получится еще 1 узкоспециализированный язык для разработки чего угодно. Это тот же , что и с++, c#, delphi и т.д. и т.п. но ориентированный на определенный результат. Это пока идея, и чтобы понять как это все будет выглядеть и насколько будет удобно нужно это увидеть в реализованном виде. В большинстве случаев, никому не нужно, лазить в сурсах проекта, и что-то там менять. Нужен документированный интерфейс, для подключения внешних модулей + легкий способ изменить интерфейс окна. Думаю, как-то так! |
22.11.2010, 03:02 | #7 |
Старший Пользователь
Регистрация: 09.02.2010
Регион: Украина
Машина: Chery Amulet
Сообщений: 118
|
по поводу идеи, хотелось бы видеть такое(помимо того что уже перечислено):
1. помимо мр3 обязательно поддержка CUE 2. легко создаваемые скины которые могут полностью менять внешний вид программы. удачи в разработке) готов стать бета тестером под вин7 и ХР |
22.11.2010, 09:09 | #8 | |
Пользователь
Регистрация: 04.08.2010
Город: Нижнекамск
Регион: 16, 116
Машина: Toyota bB NCP31 1NZ-FE
Сообщений: 39
|
Цитата:
А по использованию xml - я бы в нем хранил интерфейс. А в приведенном примере я вообще не увидел применения xml. |
|
22.11.2010, 12:22 | #9 |
Старший Пользователь
Регистрация: 16.04.2009
Возраст: 41
Регион: 74
Машина: Hyundai Accent 2008
Сообщений: 96
|
Насколько я знаком с xml - это язык разметки со структурой дерева, к программированию никакого отношения не имеет, к конфигурации больше. Я хочу сделать все-в-одном, то есть и логика и скин определяются одним языком одинаково. Хочешь поправить расположение элемента - правишь циферки, хочешь логику срабатывания - правишь буковки. Причем логику не в пределах, дозволенных базовой программой, а гораздо шире, потому что базовая программа на себя много не берет, а отдает скрипту.
Насчет фубара подумаю, но пока bass как обычно. |
22.11.2010, 12:30 | #10 |
Модератор
Регистрация: 27.05.2008
Возраст: 50
Город: Пермь
Регион: 59
Машина: INDESIT/2007
Сообщений: 1,330
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|