Ejemplo n.º 1
0
void
search_container (GUPnPServiceProxy *cds_proxy)
{
        gupnp_service_proxy_begin_action (cds_proxy,
                                          "Browse",
                                          browse_cb,
                                          NULL,
                                          /* IN args */
                                          "ObjectID",
                                                G_TYPE_STRING,
                                                "0",
                                          "BrowseFlag",
                                                G_TYPE_STRING,
                                                "BrowseDirectChildren",
                                          "Filter",
                                                G_TYPE_STRING,
                                                "*",
                                          "StartingIndex",
                                                G_TYPE_UINT,
                                                0,
                                          "RequestedCount",
                                                G_TYPE_UINT,
                                                0,
                                          "SortCriteria",
                                                G_TYPE_STRING,
                                                "",
                                          NULL);
}
Ejemplo n.º 2
0
void
create_item (const char        *file_path,
             const char        *title,
             GUPnPServiceProxy *cds_proxy,
             const char        *container_id)
{
        char *didl;

        didl = create_didl_for_file (file_path, title, container_id);
        if (didl == NULL) {
                item_created (NULL);

                return;
        }

        gupnp_service_proxy_begin_action (cds_proxy,
                                          "CreateObject",
                                          create_object_cb,
                                          NULL,
                                          "ContainerID",
                                                G_TYPE_STRING,
                                                container_id,
                                          "Elements",
                                                G_TYPE_STRING,
                                                didl,
                                          NULL);
}
Ejemplo n.º 3
0
static void
gupnp_simple_igd_gather (GUPnPSimpleIgd *self,
                         struct Proxy *prox)
{
    prox->external_ip_action = gupnp_service_proxy_begin_action (prox->proxy,
                               "GetExternalIPAddress",
                               _service_proxy_got_external_ip_address, prox, NULL);

    gupnp_service_proxy_add_notify (prox->proxy, "ExternalIPAddress",
                                    G_TYPE_STRING, _external_ip_address_changed, prox);

    gupnp_service_proxy_set_subscribed (prox->proxy, TRUE);
}
Ejemplo n.º 4
0
void browse(GUPnPServiceProxy *content_dir, const char *container_id,
            guint32 starting_index, guint32 requested_count,
            GtkListStore *list, GUPnPDIDLLiteParser *didl_parser)
{
    struct browse_data *data;
    data = browse_data_new(content_dir, container_id, starting_index, list);

    gupnp_service_proxy_begin_action(content_dir, "Browse", browse_cb, data,
                                     "ObjectID", G_TYPE_STRING, container_id,
                                     "BrowseFlag", G_TYPE_STRING, 
                                         "BrowseDirectChildren",
                                     "Filter", G_TYPE_STRING, "*",
                                     "StartingIndex", G_TYPE_UINT,
                                         starting_index,
                                     "RequestedCount", G_TYPE_UINT,
                                         requested_count,
                                     "SortCriteria", G_TYPE_STRING, "",
                                     NULL);
}
Ejemplo n.º 5
0
static void
free_proxymapping (struct ProxyMapping *pm, GUPnPSimpleIgd *self)
{
    stop_proxymapping (pm, TRUE);

    if (pm->mapped && self)
    {
        self->priv->deleting_count++;
        g_object_ref (self);
        gupnp_service_proxy_begin_action (pm->proxy->proxy,
                                          "DeletePortMapping",
                                          _service_proxy_delete_port_mapping, self,
                                          "NewRemoteHost", G_TYPE_STRING, "",
                                          "NewExternalPort", G_TYPE_UINT, pm->actual_external_port,
                                          "NewProtocol", G_TYPE_STRING, pm->mapping->protocol,
                                          NULL);
    }

    g_slice_free (struct ProxyMapping, pm);
}
Ejemplo n.º 6
0
void
start_transfer (const char        *file_path,
                const char        *dest_uri,
                GUPnPServiceProxy *cds_proxy,
                GUPnPContext      *context)
{
        char *source_uri;
        char *file_name;

        if (!g_path_is_absolute (file_path)) {
                g_critical ("Given file path '%s' is not absolute.", file_path);

                transfer_completed ();

                return;
        }

        /* Time to host the file */
        gupnp_context_host_path (context, file_path, file_path);

        source_uri = g_strdup_printf ("http://%s:%u%s",
                                      gssdp_client_get_host_ip (GSSDP_CLIENT (context)),
                                      gupnp_context_get_port (context),
                                      file_path);

        file_name = g_path_get_basename (file_path);
        gupnp_service_proxy_begin_action (cds_proxy,
                                          "ImportResource",
                                          import_resource_cb,
                                          file_name,
                                          "SourceURI",
                                                G_TYPE_STRING,
                                                source_uri,
                                          "DestinationURI",
                                                G_TYPE_STRING,
                                                dest_uri,
                                          NULL);

        g_free (source_uri);
}
Ejemplo n.º 7
0
static gboolean
track_transfer (gpointer user_data)
{
        TrackTransferData *data = (TrackTransferData *) user_data;

        if (data->action != NULL) {
                /* Previous action call still in progress */
                return TRUE;
        }

        data->action = gupnp_service_proxy_begin_action (
                                        data->cds_proxy,
                                        "GetTransferProgress",
                                        get_transfer_progress_cb,
                                        data,
                                        "TransferID",
                                                G_TYPE_UINT,
                                                data->transfer_id,
                                        NULL);

        return TRUE;
}
Ejemplo n.º 8
0
static void
gupnp_simple_igd_call_add_port_mapping (struct ProxyMapping *pm,
                                        GUPnPServiceProxyActionCallback callback)
{
    g_assert (pm);
    g_return_if_fail (pm->action == NULL);
    g_assert (pm->proxy);
    g_assert (pm->mapping);

    pm->action = gupnp_service_proxy_begin_action (pm->proxy->proxy,
                 "AddPortMapping",
                 callback, pm,
                 "NewRemoteHost", G_TYPE_STRING, "",
                 "NewExternalPort", G_TYPE_UINT, pm->actual_external_port,
                 "NewProtocol", G_TYPE_STRING, pm->mapping->protocol,
                 "NewInternalPort", G_TYPE_UINT, pm->mapping->local_port,
                 "NewInternalClient", G_TYPE_STRING, pm->mapping->local_ip,
                 "NewEnabled", G_TYPE_BOOLEAN, TRUE,
                 "NewPortMappingDescription", G_TYPE_STRING, pm->mapping->description,
                 "NewLeaseDuration", G_TYPE_UINT, pm->mapping->lease_duration,
                 NULL);
}
Ejemplo n.º 9
0
void
set_all_load_level (gint load_level)
{
        GList *proxy_node;

        for (proxy_node = dimming_proxies;
             proxy_node;
             proxy_node = g_list_next (proxy_node)) {
                GUPnPServiceProxy *proxy;
                char *action_name;

                proxy = GUPNP_SERVICE_PROXY (proxy_node->data);
                action_name = g_strdup ("SetLoadLevelTarget");

                gupnp_service_proxy_begin_action (proxy,
                                                  action_name,
                                                  on_service_proxy_action_ret,
                                                  action_name,
                                                  "newLoadlevelTarget",
                                                  G_TYPE_UINT,
                                                  load_level,
                                                  NULL);
        }
}
Ejemplo n.º 10
0
void
set_all_status (gboolean status)
{
        GList *proxy_node;

        for (proxy_node = switch_proxies;
             proxy_node;
             proxy_node = g_list_next (proxy_node)) {
                GUPnPServiceProxy *proxy;
                char *action_name;

                proxy = GUPNP_SERVICE_PROXY (proxy_node->data);
                action_name = g_strdup ("SetTarget");

                gupnp_service_proxy_begin_action (proxy,
                                                  action_name,
                                                  on_service_proxy_action_ret,
                                                  action_name,
                                                  "newTargetValue",
                                                  G_TYPE_BOOLEAN,
                                                  status,
                                                  NULL);
        }
}