PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Разработка программ

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2010, 19:37   #1
AndreyAv
Старший Пользователь
 
Регистрация: 16.04.2009
Возраст: 41
Регион: 74
Машина: Hyundai Accent 2008
Сообщений: 96
AndreyAv is on a distinguished road
По умолчанию Очередной мега-фронт-енд.

Раньше пользовался 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, и вообще любую визуальную программу, основанную на спрайтах.

Может кто-нибудь покритикует идею, чтобы убрать слабые места, о которых я не подумал?
AndreyAv вне форума   Ответить с цитированием
Старый 21.11.2010, 21:40   #2
beaverBox
Пользователь
 
Аватар для beaverBox
 
Регистрация: 04.08.2010
Город: Нижнекамск
Регион: 16, 116
Машина: Toyota bB NCP31 1NZ-FE
Сообщений: 39
beaverBox is on a distinguished road
По умолчанию

А чего ж не поюзать xml, раз всё в нодах? И читабельней в разы, и работать с ним приятней, раз уж всё в открытотекстовом виде жить будет.
beaverBox вне форума   Ответить с цитированием
Старый 21.11.2010, 22:45   #3
AndreyAv
Старший Пользователь
 
Регистрация: 16.04.2009
Возраст: 41
Регион: 74
Машина: Hyundai Accent 2008
Сообщений: 96
AndreyAv is on a distinguished road
По умолчанию

Цитата:
Сообщение от beaverBox Посмотреть сообщение
А чего ж не поюзать xml, раз всё в нодах? И читабельней в разы, и работать с ним приятней, раз уж всё в открытотекстовом виде жить будет.
Ну xml вообще очень статичен. Вот например простейший обработчик кнопки "next track" на моем lua:

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 невозможно.
AndreyAv вне форума   Ответить с цитированием
Старый 21.11.2010, 22:49   #4
grblmm
Старший Пользователь
 
Регистрация: 09.02.2010
Регион: Украина
Машина: Chery Amulet
Сообщений: 118
grblmm is on a distinguished road
По умолчанию

а чего ж идею критиковать ) выкладывай на общее обозрение, будем ловить баги и критиковать)
__________________
Мой КарПисюк)
grblmm вне форума   Ответить с цитированием
Старый 21.11.2010, 22:54   #5
AndreyAv
Старший Пользователь
 
Регистрация: 16.04.2009
Возраст: 41
Регион: 74
Машина: Hyundai Accent 2008
Сообщений: 96
AndreyAv is on a distinguished road
По умолчанию

Цитата:
Сообщение от grblmm Посмотреть сообщение
а чего ж идею критиковать ) выкладывай на общее обозрение, будем ловить баги и критиковать)
Если что-то было задумано сильно не так, то потом в какой то момент придется все сильно переписывать. Уверен на 99% что мне будет лень.
AndreyAv вне форума   Ответить с цитированием
Старый 22.11.2010, 00:20   #6
__virus__
Старший Пользователь
 
Аватар для __virus__
 
Регистрация: 04.05.2008
Возраст: 42
Регион: 74
Сообщений: 91
__virus__ is on a distinguished road
По умолчанию

Идеи всегда имеют права на жизнь! Но тебе не кажется, что получится слишком уж сложно?
Я не работал с Lua, но в конечном итоге у тебя получится еще 1 узкоспециализированный язык для разработки чего угодно. Это тот же , что и с++, c#, delphi и т.д. и т.п. но ориентированный на определенный результат.

Это пока идея, и чтобы понять как это все будет выглядеть и насколько будет удобно нужно это увидеть в реализованном виде. В большинстве случаев, никому не нужно, лазить в сурсах проекта, и что-то там менять. Нужен документированный интерфейс, для подключения внешних модулей + легкий способ изменить интерфейс окна. Думаю, как-то так!
__virus__ вне форума   Ответить с цитированием
Старый 22.11.2010, 03:02   #7
grblmm
Старший Пользователь
 
Регистрация: 09.02.2010
Регион: Украина
Машина: Chery Amulet
Сообщений: 118
grblmm is on a distinguished road
По умолчанию

по поводу идеи, хотелось бы видеть такое(помимо того что уже перечислено):
1. помимо мр3 обязательно поддержка CUE
2. легко создаваемые скины которые могут полностью менять внешний вид программы.
удачи в разработке) готов стать бета тестером под вин7 и ХР
__________________
Мой КарПисюк)
grblmm вне форума   Ответить с цитированием
Старый 22.11.2010, 09:09   #8
beaverBox
Пользователь
 
Аватар для beaverBox
 
Регистрация: 04.08.2010
Город: Нижнекамск
Регион: 16, 116
Машина: Toyota bB NCP31 1NZ-FE
Сообщений: 39
beaverBox is on a distinguished road
По умолчанию

Цитата:
Сообщение от AndreyAv Посмотреть сообщение
Ну xml вообще очень статичен. Вот например простейший обработчик кнопки "next track" на моем lua:

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 невозможно.
Если говорить о треках - зачем изобретать велосипед? Я бы использовал изобретенный замечательный foobar.
А по использованию xml - я бы в нем хранил интерфейс.
А в приведенном примере я вообще не увидел применения xml.
beaverBox вне форума   Ответить с цитированием
Старый 22.11.2010, 12:22   #9
AndreyAv
Старший Пользователь
 
Регистрация: 16.04.2009
Возраст: 41
Регион: 74
Машина: Hyundai Accent 2008
Сообщений: 96
AndreyAv is on a distinguished road
По умолчанию

Насколько я знаком с xml - это язык разметки со структурой дерева, к программированию никакого отношения не имеет, к конфигурации больше. Я хочу сделать все-в-одном, то есть и логика и скин определяются одним языком одинаково. Хочешь поправить расположение элемента - правишь циферки, хочешь логику срабатывания - правишь буковки. Причем логику не в пределах, дозволенных базовой программой, а гораздо шире, потому что базовая программа на себя много не берет, а отдает скрипту.
Насчет фубара подумаю, но пока bass как обычно.
AndreyAv вне форума   Ответить с цитированием
Старый 22.11.2010, 12:30   #10
St@rz
Модератор
 
Аватар для St@rz
 
Регистрация: 27.05.2008
Возраст: 50
Город: Пермь
Регион: 59
Машина: INDESIT/2007
Сообщений: 1,330
St@rz is a splendid one to beholdSt@rz is a splendid one to beholdSt@rz is a splendid one to beholdSt@rz is a splendid one to beholdSt@rz is a splendid one to beholdSt@rz is a splendid one to beholdSt@rz is a splendid one to behold
По умолчанию

BASS почти у всех есть. Лучше SDK Foobar2000 посмотри.

Тем более что...
Цитата:
Сообщение от AndreyAv Посмотреть сообщение
Если что-то было задумано сильно не так, то потом в какой то момент придется все сильно переписывать. Уверен на 99% что мне будет лень.
St@rz вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 22:10.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot