Navegando por dispositivos y servicios

Este ejemplo muestra como obtener información acerca de todos los dispositivos y servicios. Esto inicia un bucle infinito (usando CLI), y si alguno de los dispositivos o servicios disponibles es hayado, la función callback correcta será invocada.

Ejemplo #1 Buscar toos los dispositivos y servicios UPnP.

<?php

/* Callback para dispositivo disponible */
function device_proxy_available_cb($proxy$arg)
{
    
$info gupnp_device_info_get($proxy);

    
$type $info['device_type'];
    
$location $info['location'];

    
printf("Dispositivo Disponible:\n");
    
printf("\ttipo:     %s\n"$type);
    
printf("\tubicación: %s\n"$location);
}

/* Callback para servicio disponible */
function service_proxy_available_cb($proxy$arg)
{
    
$info gupnp_service_info_get($proxy);

    
$type $info['service_type'];
    
$location $info['location'];

    
printf("Servicio Disponible:\n");
    
printf("\ttipo:     %s\n"$type);
    
printf("\tubicación: %s\n"$location);
}

/* Crear el contexto UPnP */
$context gupnp_context_new();
if (!
$context) {
    
printf("Error creando el contexto GUPnP\n");
    exit(-
1);
}

/* Estamos interesados en todo */
$cp gupnp_control_point_new($context"ssdp:all");

/* Carga callbacks */
gupnp_control_point_callback_set($cp
    
GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE'device_proxy_available_cb');
gupnp_control_point_callback_set($cp
    
GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE'service_proxy_available_cb');

/* Inicio para navegar (lazo infinito, Ctrl-C para interrumpir) */
gupnp_control_point_browse_start($cp);

?>