Гибкая, эффективная и простая в использовании инфраструктура UPnP

# GUPnP

GUPnP — это объектно-ориентированная инфраструктура с открытым кодом для создания устройств UPnP и управления точками, написана на C с использованием GObject и libsoup. В основе программного интерфейса GUPnP лежит гибкость, эффективность и простота в использовании.

Инфраструктура GUPnP состоит из следующих компонентов/пакетов:

GSSDP: низкоуровневая библиотека, которая выполняет обнаружение ресурсов и их анонс в сети по протоколу SSDP.

GUPnP: основная библиотека, в которой реализована спецификация UPnP: анонс и обнаружение ресурсов, описание, управление, уведомление о событиях и представление (в GUPnP имеются возможности простого веб-сервера с помощью libsoup). В GUPnP нет вспомогательных функций для создания или управления какими-либо стандартизованными ресурсами (например, MediaServer); это обеспечивают библиотеки более высокого уровня, использующие инфраструктуру GUPnP.

GUPnP A/V: небольшая библиотека инструментов, целью которой является облегчение обработки и реализации аудио/видео профилей UPnP.

GUPnP DLNA: небольшая библиотека инструментов, целью которой является упрощение решение задач DLNA, например определение правильного медиа-профиля, перекодирование в заданный профиль и т.д.

GUPnP IGD: библиотека для работы с отображением портов устройств UPnP, работающих в качестве интернет-шлюзов.

GUPnP Vala: привязки Vala к библиотекам GUPnP.

GUPnP Tools: свободная замена инструментов Intel UPnP, использующая GUPnP. В пакете содержатся клиентские и серверные инструменты, позволяющие легко протестировать и отладить устройства UPnP и точки контроля:

Universal Control Point: инструмент, который позволяет обнаружить устройства и службы UPnP, получить информацию о них, подписаться на события и задать выполнение действий.

Network Light: виртуальная лампочка, которую можно включать или выключать через точки контроля, изменять её тусклость и запрашивать её текущее состояние. Также предоставляется простой пользовательский интерфейс для управления всеми лампами сети.

AV Control Point: простой пользовательский интерфейс медиапроигрывателя, позволяющий обнаружить и воспроизвести мультимедийный данные, доступные в сети. Является только точкой контроля и поэтому не имеет никаких возможностей воспроизведения и для фактического воспроизведения полагается на внешние устройства UPnP MediaRenderer.

Upload: простая утилита командной строки для отправки файлов и известные медиасерверы. Для обнаружения медиасерверов используйте Universal Control Point.

Инфраструктура GUPnP появилась из-за неудовлетворённости libupnp и отсутствием в ней поддержки нитей. GUPnP — однонитевая (но асинхронная) разработка, интегрируется с главным циклом GLib и предоставляет такой же набор возможностей что и libupnp, хотя и скрывает большую часть внутреннего устройства UPnP под элегантным объектно-ориентированным решением.

GUPnP — свободное ПО. Все библиотеки выпущены под лицензией GNU LGPL, а GUPnP Tools имеют лицензию GNU GPL.

Используйте GUPnP, если вам нужен код для взаимодействия с устройствами UPnP или DLNA. Такими устройствами являются, например, Sony Playstation 3 и телевизоры модели Bravia, телевизоры и телефоны Samsung, Microsoft XBox и все современные маршрутизаторы. Перечень устройств огромен и постоянно растёт.

Кроме контакта с существующими устройствами UPnP, на базе GUPnP можно легко создать домашнюю сеть, в которой устройства/службы смогут находиться и взаимодействовать друг с другом без какой-либо настройки пользователем.

Дополнительную информацию о GUPnP можно найти на домашней странице проекта.