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

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

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-репозитория. За выходные я кое чего набросал как я вижу работу приложения. Если с чем-то не будешь согласен, отписывайся


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

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