Blame libdleyna/server/upnp.h

Packit 6eaa26
/*
Packit 6eaa26
 * dLeyna
Packit 6eaa26
 *
Packit 6eaa26
 * Copyright (C) 2012-2017 Intel Corporation. All rights reserved.
Packit 6eaa26
 *
Packit 6eaa26
 * This program is free software; you can redistribute it and/or modify it
Packit 6eaa26
 * under the terms and conditions of the GNU Lesser General Public License,
Packit 6eaa26
 * version 2.1, as published by the Free Software Foundation.
Packit 6eaa26
 *
Packit 6eaa26
 * This program is distributed in the hope it will be useful, but WITHOUT
Packit 6eaa26
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
Packit 6eaa26
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
Packit 6eaa26
 * for more details.
Packit 6eaa26
 *
Packit 6eaa26
 * You should have received a copy of the GNU Lesser General Public License
Packit 6eaa26
 * along with this program; if not, write to the Free Software Foundation, Inc.,
Packit 6eaa26
 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
Packit 6eaa26
 *
Packit 6eaa26
 * Mark Ryan <mark.d.ryan@intel.com>
Packit 6eaa26
 *
Packit 6eaa26
 */
Packit 6eaa26
Packit 6eaa26
#ifndef DLS_UPNP_H__
Packit 6eaa26
#define DLS_UPNP_H__
Packit 6eaa26
Packit 6eaa26
#include <libdleyna/core/connector.h>
Packit 6eaa26
#include <libgupnp/gupnp-context-manager.h>
Packit 6eaa26
Packit 6eaa26
#include "client.h"
Packit 6eaa26
#include "async.h"
Packit 6eaa26
Packit 6eaa26
typedef void (*dls_upnp_callback_t)(const gchar *path, void *user_data);
Packit 6eaa26
typedef void (*dls_upnp_task_complete_t)(dls_task_t *task, GError *error);
Packit 6eaa26
Packit 6eaa26
dls_upnp_t *dls_upnp_new(dleyna_connector_id_t connection,
Packit 6eaa26
			 guint port,
Packit 6eaa26
			 const dleyna_connector_dispatch_cb_t *dispatch_table,
Packit 6eaa26
			 dls_upnp_callback_t found_server,
Packit 6eaa26
			 dls_upnp_callback_t lost_server,
Packit 6eaa26
			 void *user_data);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_delete(dls_upnp_t *upnp);
Packit 6eaa26
Packit 6eaa26
GVariant *dls_upnp_get_device_ids(dls_upnp_t *upnp);
Packit 6eaa26
Packit 6eaa26
GHashTable *dls_upnp_get_device_udn_map(dls_upnp_t *upnp);
Packit 6eaa26
Packit 6eaa26
GHashTable *dls_upnp_get_sleeping_device_udn_map(dls_upnp_t *upnp);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_delete_sleeping_device(dls_upnp_t *upnp, dls_device_t *device);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_get_children(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
			   dls_task_t *task,
Packit 6eaa26
			   dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_get_all_props(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
			    dls_task_t *task,
Packit 6eaa26
			    dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_get_prop(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
		       dls_task_t *task,
Packit 6eaa26
		       dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_search(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
		     dls_task_t *task,
Packit 6eaa26
		     dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_browse_objects(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
			     dls_task_t *task,
Packit 6eaa26
			     dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_get_resource(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
			   dls_task_t *task,
Packit 6eaa26
			   dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_upload_to_any(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
			    dls_task_t *task,
Packit 6eaa26
			    dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_upload(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
		     dls_task_t *task,
Packit 6eaa26
		     dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_get_upload_status(dls_upnp_t *upnp, dls_task_t *task);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_get_upload_ids(dls_upnp_t *upnp, dls_task_t *task);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_cancel_upload(dls_upnp_t *upnp, dls_task_t *task);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_delete_object(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
			    dls_task_t *task,
Packit 6eaa26
			    dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_create_container(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
			       dls_task_t *task,
Packit 6eaa26
			       dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_create_container_in_any(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
				      dls_task_t *task,
Packit 6eaa26
				      dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_update_object(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
			    dls_task_t *task,
Packit 6eaa26
			    dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_get_object_metadata(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
				  dls_task_t *task,
Packit 6eaa26
				  dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_create_reference(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
			       dls_task_t *task,
Packit 6eaa26
			       dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_get_icon(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
		       dls_task_t *task,
Packit 6eaa26
		       dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_wake(dls_upnp_t *upnp, dls_client_t *client,
Packit 6eaa26
		   dls_task_t *task,
Packit 6eaa26
		   dls_upnp_task_complete_t cb);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_unsubscribe(dls_upnp_t *upnp);
Packit 6eaa26
Packit 6eaa26
gboolean dls_upnp_device_context_exist(dls_device_t *device,
Packit 6eaa26
				       dls_device_context_t *context);
Packit 6eaa26
Packit 6eaa26
void dls_upnp_rescan(dls_upnp_t *upnp);
Packit 6eaa26
Packit 6eaa26
GUPnPContextManager *dls_upnp_get_context_manager(dls_upnp_t *upnp);
Packit 6eaa26
Packit 6eaa26
#endif /* DLS_UPNP_H__ */