| 24 #include <glib.h> |
24 #include <glib.h> |
| 25 #include <glib-object.h> |
25 #include <glib-object.h> |
| 26 |
26 |
| 27 #ifdef USE_FARSIGHT |
27 #ifdef USE_FARSIGHT |
| 28 |
28 |
| 29 #include <farsight/farsight.h> |
|
| 30 |
|
| 31 G_BEGIN_DECLS |
29 G_BEGIN_DECLS |
| 32 |
30 |
| 33 typedef struct { |
31 typedef struct { |
| 34 char *id; |
32 char *id; |
| 35 JabberStream *js; |
33 JabberStream *js; |
| 36 FarsightStream *stream; |
|
| 37 PurpleMedia *media; |
34 PurpleMedia *media; |
| 38 char *remote_jid; |
35 char *remote_jid; |
| 39 char *initiator; |
36 char *initiator; |
| 40 gboolean is_initiator; |
37 gboolean is_initiator; |
| 41 GList *remote_candidates; |
38 gboolean session_started; |
| 42 GList *remote_codecs; |
|
| 43 } JingleSession; |
39 } JingleSession; |
| 44 |
40 |
| 45 JingleSession *jabber_jingle_session_create(JabberStream *js); |
41 JingleSession *jabber_jingle_session_create(JabberStream *js); |
| 46 JingleSession *jabber_jingle_session_create_by_id(JabberStream *js, |
42 JingleSession *jabber_jingle_session_create_by_id(JabberStream *js, |
| 47 const char *id); |
43 const char *id); |
| 50 JabberStream *jabber_jingle_session_get_js(const JingleSession *sess); |
46 JabberStream *jabber_jingle_session_get_js(const JingleSession *sess); |
| 51 |
47 |
| 52 void jabber_jingle_session_destroy(JingleSession *sess); |
48 void jabber_jingle_session_destroy(JingleSession *sess); |
| 53 |
49 |
| 54 JingleSession *jabber_jingle_session_find_by_id(const char *id); |
50 JingleSession *jabber_jingle_session_find_by_id(const char *id); |
| 55 |
51 GList *jabber_jingle_session_find_by_js(JabberStream *js); |
| 56 FarsightStream *jabber_jingle_session_get_stream(const JingleSession *sess); |
52 JingleSession *jabber_jingle_session_find_by_jid(JabberStream *js, const char *jid); |
| 57 void jabber_jingle_session_set_stream(JingleSession *sess, FarsightStream *stream); |
|
| 58 |
53 |
| 59 PurpleMedia *jabber_jingle_session_get_media(const JingleSession *sess); |
54 PurpleMedia *jabber_jingle_session_get_media(const JingleSession *sess); |
| 60 void jabber_jingle_session_set_media(JingleSession *sess, PurpleMedia *media); |
55 void jabber_jingle_session_set_media(JingleSession *sess, PurpleMedia *media); |
| 61 |
56 |
| 62 const char *jabber_jingle_session_get_remote_jid(const JingleSession *sess); |
57 const char *jabber_jingle_session_get_remote_jid(const JingleSession *sess); |
| 68 |
63 |
| 69 const char *jabber_jingle_session_get_initiator(const JingleSession *sess); |
64 const char *jabber_jingle_session_get_initiator(const JingleSession *sess); |
| 70 void jabber_jingle_session_set_initiator(JingleSession *sess, |
65 void jabber_jingle_session_set_initiator(JingleSession *sess, |
| 71 const char *initiator); |
66 const char *initiator); |
| 72 |
67 |
| 73 void jabber_jingle_session_add_remote_candidate(JingleSession *sess, |
|
| 74 const GList *candidate); |
|
| 75 |
|
| 76 xmlnode *jabber_jingle_session_create_terminate(const JingleSession *sess, |
68 xmlnode *jabber_jingle_session_create_terminate(const JingleSession *sess, |
| 77 const char *reasoncode, |
69 const char *reasoncode, |
| 78 const char *reasontext); |
70 const char *reasontext); |
| 79 |
|
| 80 xmlnode *jabber_jingle_session_create_session_accept(const JingleSession *sess); |
71 xmlnode *jabber_jingle_session_create_session_accept(const JingleSession *sess); |
| 81 xmlnode *jabber_jingle_session_create_transport_info(const JingleSession *sess, |
72 xmlnode *jabber_jingle_session_create_transport_info(const JingleSession *sess); |
| 82 gchar *candidate_id); |
|
| 83 xmlnode *jabber_jingle_session_create_content_replace(const JingleSession *sess, |
73 xmlnode *jabber_jingle_session_create_content_replace(const JingleSession *sess, |
| 84 gchar *native_candidate_id, |
74 FsCandidate *native_candidate, |
| 85 gchar *remote_candidate_id); |
75 FsCandidate *remote_candidate); |
| 86 xmlnode *jabber_jingle_session_create_content_accept(const JingleSession *sess); |
76 xmlnode *jabber_jingle_session_create_content_accept(const JingleSession *sess); |
| |
77 xmlnode *jabber_jingle_session_create_description(const JingleSession *sess); |
| 87 |
78 |
| 88 /** |
79 /** |
| 89 * Gets a list of Farsight codecs from a Jingle <description> tag |
80 * Gets a list of Farsight codecs from a Jingle <description> tag |
| 90 * |
81 * |
| 91 * @param description |
82 * @param description |
| 93 */ |
84 */ |
| 94 GList *jabber_jingle_get_codecs(const xmlnode *description); |
85 GList *jabber_jingle_get_codecs(const xmlnode *description); |
| 95 |
86 |
| 96 GList *jabber_jingle_get_candidates(const xmlnode *transport); |
87 GList *jabber_jingle_get_candidates(const xmlnode *transport); |
| 97 |
88 |
| 98 void jabber_jingle_session_set_remote_codecs(JingleSession *sess, |
|
| 99 GList *codecs); |
|
| 100 GList *jabber_jingle_session_get_remote_codecs(const JingleSession *sess); |
|
| 101 |
|
| 102 G_END_DECLS |
89 G_END_DECLS |
| 103 |
90 |
| 104 #endif /* USE_FARSIGHT */ |
91 #endif /* USE_FARSIGHT */ |
| 105 |
92 |
| 106 #endif /* JINGLE_H */ |
93 #endif /* JINGLE_H */ |