summaryrefslogtreecommitdiff
path: root/libdleyna/server/upnp.h
blob: 69edb37fcef3cf598eca400f635d7b524bc6a42a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*
 * dLeyna
 *
 * Copyright (C) 2012-2017 Intel Corporation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms and conditions of the GNU Lesser General Public License,
 * version 2.1, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
 * for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Mark Ryan <mark.d.ryan@intel.com>
 *
 */

#ifndef DLS_UPNP_H__
#define DLS_UPNP_H__

#include <libdleyna/core/connector.h>
#include <libgupnp/gupnp-context-manager.h>

#include "client.h"
#include "async.h"

typedef void (*dls_upnp_callback_t)(const gchar *path, void *user_data);
typedef void (*dls_upnp_task_complete_t)(dls_task_t *task, GError *error);

dls_upnp_t *dls_upnp_new(dleyna_connector_id_t connection,
			 guint port,
			 const dleyna_connector_dispatch_cb_t *dispatch_table,
			 dls_upnp_callback_t found_server,
			 dls_upnp_callback_t lost_server,
			 void *user_data);

void dls_upnp_delete(dls_upnp_t *upnp);

GVariant *dls_upnp_get_device_ids(dls_upnp_t *upnp);

GHashTable *dls_upnp_get_device_udn_map(dls_upnp_t *upnp);

GHashTable *dls_upnp_get_sleeping_device_udn_map(dls_upnp_t *upnp);

void dls_upnp_delete_sleeping_device(dls_upnp_t *upnp, dls_device_t *device);

void dls_upnp_get_children(dls_upnp_t *upnp, dls_client_t *client,
			   dls_task_t *task,
			   dls_upnp_task_complete_t cb);

void dls_upnp_get_all_props(dls_upnp_t *upnp, dls_client_t *client,
			    dls_task_t *task,
			    dls_upnp_task_complete_t cb);

void dls_upnp_get_prop(dls_upnp_t *upnp, dls_client_t *client,
		       dls_task_t *task,
		       dls_upnp_task_complete_t cb);

void dls_upnp_search(dls_upnp_t *upnp, dls_client_t *client,
		     dls_task_t *task,
		     dls_upnp_task_complete_t cb);

void dls_upnp_browse_objects(dls_upnp_t *upnp, dls_client_t *client,
			     dls_task_t *task,
			     dls_upnp_task_complete_t cb);

void dls_upnp_get_resource(dls_upnp_t *upnp, dls_client_t *client,
			   dls_task_t *task,
			   dls_upnp_task_complete_t cb);

void dls_upnp_upload_to_any(dls_upnp_t *upnp, dls_client_t *client,
			    dls_task_t *task,
			    dls_upnp_task_complete_t cb);

void dls_upnp_upload(dls_upnp_t *upnp, dls_client_t *client,
		     dls_task_t *task,
		     dls_upnp_task_complete_t cb);

void dls_upnp_get_upload_status(dls_upnp_t *upnp, dls_task_t *task);

void dls_upnp_get_upload_ids(dls_upnp_t *upnp, dls_task_t *task);

void dls_upnp_cancel_upload(dls_upnp_t *upnp, dls_task_t *task);

void dls_upnp_delete_object(dls_upnp_t *upnp, dls_client_t *client,
			    dls_task_t *task,
			    dls_upnp_task_complete_t cb);

void dls_upnp_create_container(dls_upnp_t *upnp, dls_client_t *client,
			       dls_task_t *task,
			       dls_upnp_task_complete_t cb);

void dls_upnp_create_container_in_any(dls_upnp_t *upnp, dls_client_t *client,
				      dls_task_t *task,
				      dls_upnp_task_complete_t cb);

void dls_upnp_update_object(dls_upnp_t *upnp, dls_client_t *client,
			    dls_task_t *task,
			    dls_upnp_task_complete_t cb);

void dls_upnp_get_object_metadata(dls_upnp_t *upnp, dls_client_t *client,
				  dls_task_t *task,
				  dls_upnp_task_complete_t cb);

void dls_upnp_create_reference(dls_upnp_t *upnp, dls_client_t *client,
			       dls_task_t *task,
			       dls_upnp_task_complete_t cb);

void dls_upnp_get_icon(dls_upnp_t *upnp, dls_client_t *client,
		       dls_task_t *task,
		       dls_upnp_task_complete_t cb);

void dls_upnp_wake(dls_upnp_t *upnp, dls_client_t *client,
		   dls_task_t *task,
		   dls_upnp_task_complete_t cb);

void dls_upnp_unsubscribe(dls_upnp_t *upnp);

gboolean dls_upnp_device_context_exist(dls_device_t *device,
				       dls_device_context_t *context);

void dls_upnp_rescan(dls_upnp_t *upnp);

GUPnPContextManager *dls_upnp_get_context_manager(dls_upnp_t *upnp);

#endif /* DLS_UPNP_H__ */