# gupnp_control_point_callback_set

(PECL gupnp >= 0.1.0)

gupnp_control_point_callback_set — Set control point callback

### 说明

gupnp_control_point_callback_set ( resource `$cpoint` , int `$signal` , mixed `$callback` [, mixed `$arg` ] ) : bool

Set control point callback function for signal.

### 参数

`cpoint`

  A control point identifier, returned by gupnp_control_point_new().

`signal`

  The value of signal. Signal can be one of the following values:

  `GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE`
    Emitted whenever a new device has become available.
  `GUPNP_SIGNAL_DEVICE_PROXY_UNAVAILABLE`
    Emitted whenever a device is not available any more.
  `GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE`
    Emitted whenever a new service has become available.
  `GUPNP_SIGNAL_SERVICE_PROXY_UNAVAILABLE`
    Emitted whenever a service is not available any more.
`callback`

  The callback function for the certain signal. Typically, callback function takes on two parameters. The `proxy` parameter's identifier being the first, and the `arg` second.

`arg`

  User data for `callback`.

### 返回值

成功时返回 `TRUE`， 或者在失败时返回 `FALSE`。

### 范例

Example #1 Create new UPnP context and start browsing

    <?php

    function device_proxy_available_cb($proxy, $arg)
    {
        $info = gupnp_device_info_get($proxy);

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

        printf("Device available:\n");
        printf("type:     %s\n", $type);
        printf("location: %s\n", $location);
    }

    /* Create the UPnP context */
    $context = gupnp_context_new();

    if (!$context) {
     die("Error creating the GUPnP context\n");
    }

    /* We're interested in everything */
    $cp = gupnp_control_point_new($context, "ssdp:all");

    gupnp_control_point_callback_set($cp,
        GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE, 'device_proxy_available_cb');

    /* Start for browsing */
    gupnp_control_point_browse_start($cp);

    ?>

### 错误／异常

Issues E_WARNING with not valid callback function.

### 参见

- gupnp_control_point_new() - Create a new control point
- gupnp_control_point_browse_start() - Start browsing