![]() |
Миссия: написать оболочку
Для своей инсталляции взялся писать оболочку. Под Linux Qt4.
Идея следующая: юзаются модули, основная прога только mp3 играет (вернее отображает то, что сейчас играет) и часики ну еще менюшку делает. У меня есть дистр на 250 метров с иксами и qt4 используется для другой встроенной системы. На базе слака 10-го. Ядро самое свежее соберу для этого дела, чтобы с дровами не было дефицита. Сегодня написал менюшку и заложил основу для модулей. API модулей буду делать завтра. Болванку дизайна сделаю сам. Но дизайнер из меня хреновый ) Если кто-то заинтересован - дам шаблоны. Кстати, сборка под винду тоже возможна )) Как будет что посмотреть кину скрины-исходники. |
давай всё :)
|
Клёво! Очень клёво! :smile1:
|
Кое что по наработке
Вложений: 1
Чтобы поддержать интерес выкидываю что есть на данный момент.
Сейчас буду заниматься модулем mp3. Самое простое. Будет просто фронтенд к mpg123- кстати его порт для винды есть в архиве ) Есть у кого нибудь какая-нибудь карта для навигации, надо посмотреть изучить формат - может документация по формату есть? Думаю можно смотрелку для навигации и самому сделать на основе libgps. На выходе будет широта и долгота и надо будет только наложить это на карту и отобразить. |
Насчет рутинга интересно, вообще задача тривиальная, но надо видеть код карты и формат в это все упирается. А вообще решаемо написать свою навигашку ) Или запустить виндовую под вайном )
|
неплохо бы репозиторий создать, чтоб не качать такие обьемы
и изменения отслеживать.. |
Сделать надо, но сейчас не к спеху. Если есть желание помочь - милости прошу.
|
попытался собрать под убунту - собралось, получил пустое окно..?
собирал стандартно qmake;make приложеные Makefile.XXXX как я понимаю под винду. |
ну вообще щас там пустое окно и менюха слева вверху. Все только наброски еще. Завтра сделаю модуль для проигрывания mp3 )
|
Вложений: 2
Да, обидно блин, долгие поиски оптимального решения привели к следующим выводам:
1) оболочку на X11 писать смысла нет, т.к. она должна заменять window manager. То есть это должен быть полноэкранный однооконный менеджер. т.е. у него только одно окно способно быть в топе, остальные невидимы. 2) должна быть панель неперекрываемая окнами то есть взаимодействующая с менеджером. Вобщем буду писать для себя на Qt 443 Embedded. Пока копаю его особенности. Из плюсов - не нужны иксы. Ну и минус тоже - иксовый софт не получится юзать. Зато можно будет пускать проги для Nokia 810i ))) А там и навигация есть и все что только можно! Потому что в ней qt_embedded и линух. Скин себе сделал для оболочки, пока прототип. Кстати с нуля вообще, сделано в inkscape. ) |
Цитата:
|
Цитата:
Я занимаюсь подобным проектом. Юзаю C + SDL. Сейчас думаю над архитектурой, т.е. как будут плагины взаимодействовать с оболочкой. Плагины могут быть не только отображающие что-либо на дисплее. Планирую, что программа будет запускаться как в X11, так и во фреймбуффере ps а для музыки скорее всего будет mpd :) |
Цитата:
1) для работы с окнами (хотя бы свертывание-развертывание) надо иметь механизм window management'a. Это обязательно. Иначе как окна выводить во фронт или в бэк. 2) Если будет запущено одно приложение без виндов-менеджера то это значит что только оно и будет выполняться. Короче это не удобно. Писал я такую прогу, типа монитор на который только смотрят. Так вот он запускался непосредственно из xinitrc. Никакого оконного менеджера, только эта прога в фулскрине. Qt Embedded легко кстати собирается с простой либой Qt и выполняется в иксах. Ну и наоброт. ) Ну и еще плюсы: есть штатный WebKit, работа с ALSA (это есть конечно и в SDL), есть также куча поддерживаемых форматов графики - скин можно сделать векторный!, ну и вдобравок разные бэкенды для баз данных. Короче SDL несколько не удобно будет... я рассматривал такой вариант. В том числе и на винде директХ. |
Цитата:
ИЛИ Как сделано в КДЕ 4 - plasma addon можно поставить на тулбар а можно на десктоп. В зависимости от этого его вид меняется. То есть для модуля есть две ф-ции активации: для панели и для окна. Цитата:
А представь себе плагин который ничего не выводит? Зачем он нужен? Правильнее сказать - это плагин который ничего не выводит когда выполняется в фоне. Но при желании его можно активировать и показать его окно. Пример - видеорегистратор. Нажал кнопку - пошла регистрация. Надо посмотреть - вывел окно. Кстати, что будешь делать с GPS трекером? |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
наверно я тоже перейду на qt, иначе замучаюсь рисовать всяческие кнопочки и почую ересь. Цитата:
|
ответил в пм.
если пока в нете нету репозитория, то очень рекомендую завести его тут: http://www.assembla.com/ (svn) |
Цитата:
Я весь моск сломал думая как дескриптор любого X окна вставить в виджет Qt... ну или дескриптор HWND. И как его получить перед этой вставкой. |
Цитата:
|
Ну хорошо, уговорил ) так проще даже будет.
|
Вечером я скину адресс svn-репозитория. За выходные я кое чего набросал как я вижу работу приложения. Если с чем-то не будешь согласен, отписывайся
|
Народ, а можно предложение внести?
хочется чтобы оболочка поддерживала ВСЕ аудио видео форматы без танцев с бубном. т.е. вплоть до DVD-audio, dts, flac, ape... |
Цитата:
Ядро в стадии формирования интерфейса и API для работы со шкурками. |
Дошел и я до стадии написания оболочки (доделал вроде большую часть железа, обточил ядро и нужные сервисы). Изначально собирался переделать оконный менеджем matchbox под работу с модулями. Т.е. разрешение 800x480. Справа сверху вниз бар с кнопками, сверху полоска с иконками статуса - остальное под окно модуля. Некоторые модули (типа видеоплеера) могут работать на полный экран.
Сейчас подглядываю на эту тему и много думаю :) |
Цитата:
Пользует Qt4. В стадии формирования интерфейса и модульности. |
Ну да, писать собираюсь под линух. Я под юниксами уже программил некоторые вещи, но графику писал очень давно - годов этак 5 назад... На qt... ICQ клиент это был. Так что qt придется изучать по новой - он сильно с тех пор поменялся.
Сама система - kubuntu, единственно я ядро сильно обточил под то железо, что у меня есть. И старт сервисов поменял на параллельный. На блоке Сергея Лебедева от подачи acc до полной загрузки проходит 25 секунд. Думаю после смены биоса на линуксбиос и с SSD диском будет еще быстрее (расчитываю выиграть еще порядка 7-8 секунд). Код с репозитория гляну на выходных ежель время будет. |
Цитата:
|
Если будет время обязательно постараюсь в чем-нибудь помочь.
Сейчас на работе как-раз занимаюсь программированием под линукс навигационной системы для военных. В разработке используется собственноручный дистрибутив, если так можно сказать (собран из исходников). Правда с кутэ не знаком особо, че-то пытался делать на GTK, а так вообще проект достался на чистом Xlib, его и допиливаю. По теме оболочки, я где-то читал что один забугорный товарищ использовал для этих целей возможности compiz'а. Т.е. на одной грани куба навигация, на другой - видео, на третей - музыка и т.д. Я думаю это эффектно бы смотрелось. |
Нашёл вот такую вещь. Сделана на qt, не хватает только нормальной поддержки DVD.
http://www.mp3car.com/vbulletin/othe...reenshots.html http://sourceforge.net/projects/headunit |
Цитата:
Посмотрел программу изнутри обнаружены следующие недостатки: 1) Скины фиксированы - то есть расположение элементов зашито в скин и в программу. 2) Используются платформенно-зависимые ф-ции для винды и линуха. 3) Используется Qt3. 4) Довольно топорно сделано вообще все. ) Из полезностей стоит подчерпнуть идеи взаимодействия с устройствами: микшер, видео и т.п. Интересен также qxinewidget включенный в эту программу (ну это чтобы самим велосипед не изобретать) :) |
Что делается на данном этапе у нас?
1) Делается нормальный анимированный скиненый список. Будет еще вариант списка-селектора (когда выделение стоит в центре, а items красиво двигаются вверх-вниз). 2) Дорабатывается механизм взаимодействия модулей и ядра, выбирается видеоплейер. Копается phonon, который сейчас планируют сделать единым для всех платформ бэкендом для медиа в Qt 4.5. 3) Устраняются баги которые находятся в процессе (так сказать контроль качества). Пишется кстати в винде тестится в винде и под линухом. Одна из задач которая поставлена перед проектом - мультиплатформенность. 4) Разрабатывается механизм конфигурирования, формат описания скинов. Кто хочет написать модуль красивых часиков на панель? ;) У меня до него никогда руки не дойдут... |
Цитата:
|
dOzEr, ты видел сорцы этого монстра? там разобрать вообще мало что получается, да и управление по телнету - сомнительное удовольствие для carpc
|
Цитата:
|
Ну я перебрал два плейера - mplayer и xine. Оба понимают кучу форматов, к mplayer есть порты виндовых кодеков.
И что самое главное - можно его вывод внедрить в любое X11 окно. Ну и еще можно потоком выводить на стандартный вывод. VLC хороший плейер, но глючный. Дома юзаю для просмотра ТВ интернету. Вообще планируется так: mplayer для mp3 и звуковых файлов всяких; xine для видео, DVD, VCD. Хотя теоретически можно пользовать один xine для всего. |
Цитата:
|
Цитата:
|
Вопрос
Возник вопрос следующего плана:
какие вы можете описать эффекты появления элементов управления? Сейчас будет писаться библиотека эффектов, хотелось бы узнать кто какие эффекты появления и исчезнования предочитает ) Я лично выяснил для себя два вида: вылетание (то есть анимация движения, в том числе увеличение-уменьшение) и blending то есть исчезнование в прозрачность (в том числе вспышка и т.п.) Кто еще какие знает, просьба, опишитесь тут. |
Цитата:
Но, имхо, это не надо. Тех, что ты описал - достаточно |
Цитата:
Забавно будет смотреться. Вообще можно даже попытаться внедрить в поле OpenGL окошко с какой-нить 3D сценой. Но т.к. я 3Д графикой не увлекаюсь делать этого не буду. Интересен в этом плане 3D спектроанализатор красивый какой-нибудь. |
Вложений: 2
Скрины с анимацией. Что на данном этапе есть. Менюха с кнопочки вылетает с анимацией красивенько так. Сейчас прорабатывается API в нормальном варианте.
Анимацию надо будет сильно оптимизировать для увеличения быстродействия на слабых безвентиляторных системах до 900 Мгц (можно будет ее вообще отключить при желании). Вид анимации кстати будет задаваться скином. То есть у девелопера скина будет простор для творчества. ) Репозиторий http://code.google.com/p/lyxcar/. Кому интересно - качаем ) |
Часовой пояс GMT +4, время: 19:09. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot