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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   UnixCar (http://pccar.ru/forumdisplay.php?f=20)
-   -   Миссия: написать оболочку (http://pccar.ru/showthread.php?t=7414)

Futurelink 20.01.2009 14:23

Миссия: написать оболочку
 
Для своей инсталляции взялся писать оболочку. Под Linux Qt4.

Идея следующая: юзаются модули, основная прога только mp3 играет (вернее отображает то, что сейчас играет) и часики ну еще менюшку делает. У меня есть дистр на 250 метров с иксами и qt4 используется для другой встроенной системы. На базе слака 10-го.

Ядро самое свежее соберу для этого дела, чтобы с дровами не было дефицита.

Сегодня написал менюшку и заложил основу для модулей. API модулей буду делать завтра. Болванку дизайна сделаю сам. Но дизайнер из меня хреновый ) Если кто-то заинтересован - дам шаблоны. Кстати, сборка под винду тоже возможна ))

Как будет что посмотреть кину скрины-исходники.

format_c 20.01.2009 15:06

давай всё :)

mebitek 21.01.2009 10:21

Клёво! Очень клёво! :smile1:

Futurelink 21.01.2009 11:15

Кое что по наработке
 
Вложений: 1
Чтобы поддержать интерес выкидываю что есть на данный момент.
Сейчас буду заниматься модулем mp3. Самое простое. Будет просто фронтенд к mpg123- кстати его порт для винды есть в архиве )

Есть у кого нибудь какая-нибудь карта для навигации, надо посмотреть изучить формат - может документация по формату есть? Думаю можно смотрелку для навигации и самому сделать на основе libgps. На выходе будет широта и долгота и надо будет только наложить это на карту и отобразить.

Futurelink 21.01.2009 12:17

Насчет рутинга интересно, вообще задача тривиальная, но надо видеть код карты и формат в это все упирается. А вообще решаемо написать свою навигашку ) Или запустить виндовую под вайном )

vokchaks 21.01.2009 13:22

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

Futurelink 21.01.2009 13:24

Сделать надо, но сейчас не к спеху. Если есть желание помочь - милости прошу.

vokchaks 21.01.2009 13:34

попытался собрать под убунту - собралось, получил пустое окно..?
собирал стандартно qmake;make
приложеные Makefile.XXXX как я понимаю под винду.

Futurelink 21.01.2009 13:40

ну вообще щас там пустое окно и менюха слева вверху. Все только наброски еще. Завтра сделаю модуль для проигрывания mp3 )

Futurelink 06.02.2009 09:40

Вложений: 2
Да, обидно блин, долгие поиски оптимального решения привели к следующим выводам:

1) оболочку на X11 писать смысла нет, т.к. она должна заменять window manager. То есть это должен быть полноэкранный однооконный менеджер. т.е. у него только одно окно способно быть в топе, остальные невидимы.

2) должна быть панель неперекрываемая окнами то есть взаимодействующая с менеджером.

Вобщем буду писать для себя на Qt 443 Embedded. Пока копаю его особенности. Из плюсов - не нужны иксы. Ну и минус тоже - иксовый софт не получится юзать. Зато можно будет пускать проги для Nokia 810i ))) А там и навигация есть и все что только можно! Потому что в ней qt_embedded и линух.

Скин себе сделал для оболочки, пока прототип. Кстати с нуля вообще, сделано в inkscape. )

indie 06.02.2009 16:55

Цитата:

Сообщение от Futurelink (Сообщение 86354)
1) оболочку на X11 писать смысла нет, т.к. она должна заменять window manager. То есть это должен быть полноэкранный однооконный менеджер. т.е. у него только одно окно способно быть в топе, остальные невидимы.

2) должна быть панель неперекрываемая окнами то есть взаимодействующая с менеджером.

все это не обязательно. можно в иксах вообще ничего не запускать кроме нужного приложения

indie 06.02.2009 17:22

Цитата:

Сообщение от Futurelink (Сообщение 84648)
Идея следующая: юзаются модули, основная прога только mp3 играет (вернее отображает то, что сейчас играет) и часики ну еще менюшку делает.

ИМХО функцию игры mp3 тоже лучше в модуль сделать. Оболочка должна только грузить модули и управлять ими.

Я занимаюсь подобным проектом. Юзаю C + SDL. Сейчас думаю над архитектурой, т.е. как будут плагины взаимодействовать с оболочкой. Плагины могут быть не только отображающие что-либо на дисплее. Планирую, что программа будет запускаться как в X11, так и во фреймбуффере

ps
а для музыки скорее всего будет mpd :)

Futurelink 07.02.2009 07:48

Цитата:

Сообщение от indie (Сообщение 86433)
все это не обязательно. можно в иксах вообще ничего не запускать кроме нужного приложения

Дело в том, что:

1) для работы с окнами (хотя бы свертывание-развертывание) надо иметь механизм window management'a. Это обязательно. Иначе как окна выводить во фронт или в бэк.

2) Если будет запущено одно приложение без виндов-менеджера то это значит что только оно и будет выполняться. Короче это не удобно.

Писал я такую прогу, типа монитор на который только смотрят. Так вот он запускался непосредственно из xinitrc. Никакого оконного менеджера, только эта прога в фулскрине.

Qt Embedded легко кстати собирается с простой либой Qt и выполняется в иксах. Ну и наоброт. )

Ну и еще плюсы: есть штатный WebKit, работа с ALSA (это есть конечно и в SDL), есть также куча поддерживаемых форматов графики - скин можно сделать векторный!, ну и вдобравок разные бэкенды для баз данных.

Короче SDL несколько не удобно будет... я рассматривал такой вариант. В том числе и на винде директХ.

Futurelink 07.02.2009 07:56

Цитата:

Сообщение от indie (Сообщение 86438)
ИМХО функцию игры mp3 тоже лучше в модуль сделать. Оболочка должна только грузить модули и управлять ими.

Это правильно! Но есть еще одна фигня - панель. На панель надо выводить инфу что сейчас играется, какая частота радио настроена и т.п. В т.ч. громкость и мьют. Так что в ядро должен быть интегрирован движок управления медиа.

ИЛИ

Как сделано в КДЕ 4 - plasma addon можно поставить на тулбар а можно на десктоп. В зависимости от этого его вид меняется. То есть для модуля есть две ф-ции активации: для панели и для окна.


Цитата:

Сообщение от indie (Сообщение 86438)
Плагины могут быть не только отображающие что-либо на дисплее.

ps
а для музыки скорее всего будет mpd :)

Я написал фронт для mplayer ) Причем писал под виндой, а потом под линухом собрал...

А представь себе плагин который ничего не выводит? Зачем он нужен? Правильнее сказать - это плагин который ничего не выводит когда выполняется в фоне. Но при желании его можно активировать и показать его окно. Пример - видеорегистратор. Нажал кнопку - пошла регистрация. Надо посмотреть - вывел окно.

Кстати, что будешь делать с GPS трекером?

indie 07.02.2009 12:01

Цитата:

1) для работы с окнами (хотя бы свертывание-развертывание) надо иметь механизм window management'a. Это обязательно. Иначе как окна выводить во фронт или в бэк.

2) Если будет запущено одно приложение без виндов-менеджера то это значит что только оно и будет выполняться. Короче это не удобно.
имхо, только оболочка должна быть запущена, все остальное не нужно. имхо. вообщем не принципиально )

Цитата:

Короче SDL несколько не удобно будет... я рассматривал такой вариант. В том числе и на винде директХ.
пожалуй соглашусь, особенно будет не удобен, когда понадобиться отрисовывать кнопочки, поля ввода, etc..

Цитата:

Это правильно! Но есть еще одна фигня - панель. На панель надо выводить инфу что сейчас играется, какая частота радио настроена и т.п. В т.ч. громкость и мьют. Так что в ядро должен быть интегрирован движок управления медиа.
на вкус и цвет. часов имхо достаточно.

Цитата:

Как сделано в КДЕ 4 - plasma addon можно поставить на тулбар а можно на десктоп. В зависимости от этого его вид меняется. То есть для модуля есть две ф-ции активации: для панели и для окна.
вот это лучше, но опять же это работает как модуль/плагин

Цитата:

А представь себе плагин который ничего не выводит?
запросто! скажем инпут-девайс, который общается через серийный интерфейс. и нужно что бы сигнальчики от него как-нить интерпретировались.

наверно я тоже перейду на qt, иначе замучаюсь рисовать всяческие кнопочки и почую ересь.

Цитата:

Кстати, что будешь делать с GPS трекером?
как вариант выдрать кусок кода с maemo-mapper

indie 07.02.2009 15:51

ответил в пм.

если пока в нете нету репозитория, то очень рекомендую завести его тут: http://www.assembla.com/ (svn)

Futurelink 09.02.2009 02:31

Цитата:

имхо, только оболочка должна быть запущена, все остальное не нужно. имхо. вообщем не принципиально )
Да вот как раз принципиально блин ) Как ты навигацию встроишь в оболочку? Свою писать надо? Это такая запарка, что ужас...

Я весь моск сломал думая как дескриптор любого X окна вставить в виджет Qt... ну или дескриптор HWND. И как его получить перед этой вставкой.

indie 09.02.2009 10:41

Цитата:

Сообщение от Futurelink (Сообщение 86677)
Да вот как раз принципиально блин ) Как ты Это такая запарка, что ужас...

Есть Navit, есть qt-mapper, maemo-mapper. Все opensource. Какие проблемы куосок кода выдрать? :)

Futurelink 09.02.2009 11:12

Ну хорошо, уговорил ) так проще даже будет.

indie 09.02.2009 16:04

Вечером я скину адресс svn-репозитория. За выходные я кое чего набросал как я вижу работу приложения. Если с чем-то не будешь согласен, отписывайся

format_c 12.02.2009 22:27

Народ, а можно предложение внести?
хочется чтобы оболочка поддерживала ВСЕ аудио видео форматы без танцев с бубном. т.е. вплоть до DVD-audio, dts, flac, ape...

Futurelink 13.02.2009 02:37

Цитата:

Сообщение от format_c (Сообщение 87294)
Народ, а можно предложение внести?
хочется чтобы оболочка поддерживала ВСЕ аудио видео форматы без танцев с бубном. т.е. вплоть до DVD-audio, dts, flac, ape...

Ну так это какие форматы будут поддерживать модули, такие и будут играться ) Хоть флеш-мультики ;)

Ядро в стадии формирования интерфейса и API для работы со шкурками.

Regressor 13.02.2009 06:46

Дошел и я до стадии написания оболочки (доделал вроде большую часть железа, обточил ядро и нужные сервисы). Изначально собирался переделать оконный менеджем matchbox под работу с модулями. Т.е. разрешение 800x480. Справа сверху вниз бар с кнопками, сверху полоска с иконками статуса - остальное под окно модуля. Некоторые модули (типа видеоплеера) могут работать на полный экран.

Сейчас подглядываю на эту тему и много думаю :)

Futurelink 13.02.2009 13:00

Цитата:

Сообщение от Regressor (Сообщение 87319)
Дошел и я до стадии написания оболочки (доделал вроде большую часть железа, обточил ядро и нужные сервисы). Изначально собирался переделать оконный менеджем matchbox под работу с модулями. Т.е. разрешение 800x480. Справа сверху вниз бар с кнопками, сверху полоска с иконками статуса - остальное под окно модуля. Некоторые модули (типа видеоплеера) могут работать на полный экран.

Сейчас подглядываю на эту тему и много думаю :)

Под что будешь писать? Думаю, если в этой теме - то комп будет работать под линухом? Какие есть мысли выкладывай. Если програмишь на C++ - репозиторий http://code.google.com/p/lyxcar/.

Пользует Qt4. В стадии формирования интерфейса и модульности.

Regressor 13.02.2009 18:37

Ну да, писать собираюсь под линух. Я под юниксами уже программил некоторые вещи, но графику писал очень давно - годов этак 5 назад... На qt... ICQ клиент это был. Так что qt придется изучать по новой - он сильно с тех пор поменялся.

Сама система - kubuntu, единственно я ядро сильно обточил под то железо, что у меня есть. И старт сервисов поменял на параллельный. На блоке Сергея Лебедева от подачи acc до полной загрузки проходит 25 секунд. Думаю после смены биоса на линуксбиос и с SSD диском будет еще быстрее (расчитываю выиграть еще порядка 7-8 секунд).

Код с репозитория гляну на выходных ежель время будет.

dOzEr 19.02.2009 09:23

Цитата:

Сообщение от format_c (Сообщение 87294)
Народ, а можно предложение внести?
хочется чтобы оболочка поддерживала ВСЕ аудио видео форматы без танцев с бубном. т.е. вплоть до DVD-audio, dts, flac, ape...

Можно ВСЕ что поддерживает линукс )

dOzEr 19.02.2009 09:36

Если будет время обязательно постараюсь в чем-нибудь помочь.
Сейчас на работе как-раз занимаюсь программированием под линукс навигационной системы для военных. В разработке используется собственноручный дистрибутив, если так можно сказать (собран из исходников). Правда с кутэ не знаком особо, че-то пытался делать на GTK, а так вообще проект достался на чистом Xlib, его и допиливаю.

По теме оболочки, я где-то читал что один забугорный товарищ использовал для этих целей возможности compiz'а. Т.е. на одной грани куба навигация, на другой - видео, на третей - музыка и т.д. Я думаю это эффектно бы смотрелось.

Apexi 19.02.2009 11:11

Нашёл вот такую вещь. Сделана на qt, не хватает только нормальной поддержки DVD.
http://www.mp3car.com/vbulletin/othe...reenshots.html
http://sourceforge.net/projects/headunit

Futurelink 19.02.2009 11:59

Цитата:

Сообщение от Apexi (Сообщение 88061)
Нашёл вот такую вещь. Сделана на qt, не хватает только нормальной поддержки DVD.
http://www.mp3car.com/vbulletin/othe...reenshots.html
http://sourceforge.net/projects/headunit

Не поддерживается с 2004 года. Последняя версия 0.3. Так что не наш вариант. Разве что можно оттуда что-то взять. Да, в то время Qt3 только начиналось. Это тоже старая либа уже.

Посмотрел программу изнутри обнаружены следующие недостатки:

1) Скины фиксированы - то есть расположение элементов зашито в скин и в программу.
2) Используются платформенно-зависимые ф-ции для винды и линуха.
3) Используется Qt3.
4) Довольно топорно сделано вообще все. )

Из полезностей стоит подчерпнуть идеи взаимодействия с устройствами: микшер, видео и т.п.
Интересен также qxinewidget включенный в эту программу (ну это чтобы самим велосипед не изобретать) :)

Futurelink 19.02.2009 12:13

Что делается на данном этапе у нас?

1) Делается нормальный анимированный скиненый список. Будет еще вариант списка-селектора (когда выделение стоит в центре, а items красиво двигаются вверх-вниз).

2) Дорабатывается механизм взаимодействия модулей и ядра, выбирается видеоплейер. Копается phonon, который сейчас планируют сделать единым для всех платформ бэкендом для медиа в Qt 4.5.

3) Устраняются баги которые находятся в процессе (так сказать контроль качества). Пишется кстати в винде тестится в винде и под линухом. Одна из задач которая поставлена перед проектом - мультиплатформенность.

4) Разрабатывается механизм конфигурирования, формат описания скинов.

Кто хочет написать модуль красивых часиков на панель? ;) У меня до него никогда руки не дойдут...

dOzEr 19.02.2009 14:42

Цитата:

Сообщение от Futurelink (Сообщение 88079)
Что делается на данном этапе у нас?

2) Дорабатывается механизм взаимодействия модулей и ядра, выбирается видеоплейер. Копается phonon, который сейчас планируют сделать единым для всех платформ бэкендом для медиа в Qt 4.5.

Советую обратить внимание на VLC media player - он кросплатформенный, понимает кучу форматов, а также имеется возможность удаленного управления через консоль, телнет и вэб-интерфейс. Остается только организовать с ним взаимодействие.

Urvin 19.02.2009 15:06

dOzEr, ты видел сорцы этого монстра? там разобрать вообще мало что получается, да и управление по телнету - сомнительное удовольствие для carpc

dOzEr 19.02.2009 15:47

Цитата:

Сообщение от Urvin (Сообщение 88101)
dOzEr, ты видел сорцы этого монстра? там разобрать вообще мало что получается, да и управление по телнету - сомнительное удовольствие для carpc

Каюсь, не смотрел, мое дело только предложить :whistle:

Futurelink 20.02.2009 02:44

Ну я перебрал два плейера - mplayer и xine. Оба понимают кучу форматов, к mplayer есть порты виндовых кодеков.

И что самое главное - можно его вывод внедрить в любое X11 окно. Ну и еще можно потоком выводить на стандартный вывод.

VLC хороший плейер, но глючный. Дома юзаю для просмотра ТВ интернету.

Вообще планируется так: mplayer для mp3 и звуковых файлов всяких; xine для видео, DVD, VCD. Хотя теоретически можно пользовать один xine для всего.

Apexi 20.02.2009 16:38

Цитата:

Сообщение от Futurelink (Сообщение 88079)
Что делается на данном этапе у нас?

1) Делается нормальный анимированный скиненый список. Будет еще вариант списка-селектора (когда выделение стоит в центре, а items красиво двигаются вверх-вниз).

2) Дорабатывается механизм взаимодействия модулей и ядра, выбирается видеоплейер. Копается phonon, который сейчас планируют сделать единым для всех платформ бэкендом для медиа в Qt 4.5.

3) Устраняются баги которые находятся в процессе (так сказать контроль качества). Пишется кстати в винде тестится в винде и под линухом. Одна из задач которая поставлена перед проектом - мультиплатформенность.

4) Разрабатывается механизм конфигурирования, формат описания скинов.

Кто хочет написать модуль красивых часиков на панель? ;) У меня до него никогда руки не дойдут...

А кто меньше ресурсов ест: phonon, gstreamer или aRts?

Futurelink 21.02.2009 06:42

Цитата:

Сообщение от Apexi (Сообщение 88233)
А кто меньше ресурсов ест: phonon, gstreamer или aRts?

Ну phonon это midend для xine, gstreamer и т.п. Потому сравнение несколько неуместно. А вообще, arts устарел уже морально. gstreamer не юзал не знаю. У меня KDE 4.2 юзает xine engine. В принципе доволен. Но комп все равно не менее 1Ghz. Какой-нить Atom вообще будет летать. Тестить я все буду на 1.2Ghz (Gigabyte TA3-LB)

Futurelink 24.02.2009 15:38

Вопрос
 
Возник вопрос следующего плана:

какие вы можете описать эффекты появления элементов управления?
Сейчас будет писаться библиотека эффектов, хотелось бы узнать кто какие эффекты появления и исчезнования предочитает )

Я лично выяснил для себя два вида: вылетание (то есть анимация движения, в том числе увеличение-уменьшение) и blending то есть исчезнование в прозрачность (в том числе вспышка и т.п.)

Кто еще какие знает, просьба, опишитесь тут.

indie 24.02.2009 20:02

Цитата:

Сообщение от Futurelink (Сообщение 88695)
Возник вопрос следующего плана:

какие вы можете описать эффекты появления элементов управления?
Сейчас будет писаться библиотека эффектов, хотелось бы узнать кто какие эффекты появления и исчезнования предочитает )

Я лично выяснил для себя два вида: вылетание (то есть анимация движения, в том числе увеличение-уменьшение) и blending то есть исчезнование в прозрачность (в том числе вспышка и т.п.)

Кто еще какие знает, просьба, опишитесь тут.

Собирать по частям :)
Но, имхо, это не надо. Тех, что ты описал - достаточно

Futurelink 25.02.2009 04:34

Цитата:

Сообщение от indie (Сообщение 88738)
Собирать по частям :)
Но, имхо, это не надо. Тех, что ты описал - достаточно

Ну хорошо. Значит будем делать так )

Забавно будет смотреться. Вообще можно даже попытаться внедрить в поле OpenGL окошко с какой-нить 3D сценой. Но т.к. я 3Д графикой не увлекаюсь делать этого не буду. Интересен в этом плане 3D спектроанализатор красивый какой-нибудь.

Futurelink 26.02.2009 11:26

Вложений: 2
Скрины с анимацией. Что на данном этапе есть. Менюха с кнопочки вылетает с анимацией красивенько так. Сейчас прорабатывается API в нормальном варианте.

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

Вид анимации кстати будет задаваться скином. То есть у девелопера скина будет простор для творчества. )

Репозиторий http://code.google.com/p/lyxcar/.

Кому интересно - качаем )


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

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