BeOS - статьи


         

Это позволяет упростить код. Драйвер


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



Местонахождение драйвера

Системные драйвера, которые установлены с ОС, находятся в B_BEOS_ADDONS_DIRECTORY в подкаталоге Print (т.е. /boot/beos/system/add-ons/Print). Драйвера, установленные пользователем, находятся в B_USER_ADDONS_DIRECTORY в подкаталоге Print (т.е. /boot/home/config/add-ons/Print).

Транспортные модули находятся в пользовательском или системном каталоге драйверов в подкаталоге transport.

Жизнь драйвера принтера

Установка драйвера

Для установки драйвера достаточно скопировать нужный файл в каталог драйверов. Драйвер не должен быть слинкован с какими-либо динамическими библиотеками кроме системных. Старайтесь использовать статическую линковку. Это позволит избежать проблем с конфликтом версий.

Добавление нового принтера

Если пользователь добавит новый принтер через диалог Printers, он выберет имя принтера, модель принтера и транспортный модуль. Приложение Printers создаст каталог спулера (spooler), названный именем принтера в B_USER_PRINTERS_DIRECTORY

(например: /boot/home/config/settings/printers). Имя транспортного модуля сохранится в атрибуте transport каталога спулера. Тип этого атрибута - B_STRING_TYPE.

Когда сервер печати получит сообщение, что был добавлен новый принтер, то он вызовет драйвер, чтобы его настроить. Прототип функции в драйвере принтера выглядит так:

char* add_printer(char* printer_name);

Это даст шанс драйверу открыть диалог конфигурирования. Все настройки могут сохранены в атрибутах каталога спулера. При удачном завершении операции драйвер должен вернуть указатель на строку printer_name, а в случае неудачи, как было оговорено выше — NULL.

Настройка страницы

Когда приложение пользователя вызовет BPrintJob::ConfigPage(), сервер печати вызовет следующую функцию в драйвере:

BMessage* config_page (BNode* spool_folder, BMessage* settings);

В этом вызове драйверу будет передан указатель на спулер печати, и в результате этого драйвер сможет прочитать настройки из атрибутов спулера.

Содержание  Назад  Вперед