Mercurial > pidgin
annotate libpurple/media.c @ 26410:343ca84d5997
Improve the padding around the mute button.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Fri, 03 Apr 2009 03:14:38 +0000 |
parents | 440e999c27ca |
children | 90c65a8575bf |
rev | line source |
---|---|
23760 | 1 /** |
23766 | 2 * @file media.c Media API |
23760 | 3 * @ingroup core |
23865
b8a73b6dc0a4
* Added documentation to media.h and mediamanager.h
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23863
diff
changeset
|
4 */ |
b8a73b6dc0a4
* Added documentation to media.h and mediamanager.h
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23863
diff
changeset
|
5 |
b8a73b6dc0a4
* Added documentation to media.h and mediamanager.h
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23863
diff
changeset
|
6 /* purple |
23760 | 7 * |
8 * Purple is the legal property of its developers, whose names are too numerous | |
9 * to list here. Please refer to the COPYRIGHT file distributed with this | |
10 * source distribution. | |
11 * | |
12 * This program is free software; you can redistribute it and/or modify | |
13 * it under the terms of the GNU General Public License as published by | |
14 * the Free Software Foundation; either version 2 of the License, or | |
15 * (at your option) any later version. | |
16 * | |
17 * This program is distributed in the hope that it will be useful, | |
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 * GNU General Public License for more details. | |
21 * | |
22 * You should have received a copy of the GNU General Public License | |
23 * along with this program; if not, write to the Free Software | |
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
25 */ | |
26 | |
23762
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
27 #include <string.h> |
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
28 |
23766 | 29 #include "internal.h" |
30 | |
23760 | 31 #include "connection.h" |
26349
1ae3af12095a
Move GStreamer related media functions into its own header.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26348
diff
changeset
|
32 #include "marshallers.h" |
23760 | 33 #include "media.h" |
26349
1ae3af12095a
Move GStreamer related media functions into its own header.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26348
diff
changeset
|
34 #include "media-gst.h" |
23876
f10e0ac24595
* Added input/output volume preferences for voice conversations.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23873
diff
changeset
|
35 #include "mediamanager.h" |
26050
ae3d25465d0f
Run an asynchronous DNS lookup for the STUN server IP (to set as a property
Marcus Lundblad <ml@update.uu.se>
parents:
26047
diff
changeset
|
36 #include "network.h" |
23760 | 37 |
23787
92e71f6e10d4
Patch from Marcus Lundblad ('mlundblad') to improve audio support in xmpp.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23772
diff
changeset
|
38 #include "debug.h" |
92e71f6e10d4
Patch from Marcus Lundblad ('mlundblad') to improve audio support in xmpp.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23772
diff
changeset
|
39 |
23804
cbe97caec684
Use USE_VV instead of USE_FARSIGHT.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23801
diff
changeset
|
40 #ifdef USE_VV |
23760 | 41 |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
42 #include <gst/farsight/fs-conference-iface.h> |
23760 | 43 |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
44 /** @copydoc _PurpleMediaSession */ |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
45 typedef struct _PurpleMediaSession PurpleMediaSession; |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
46 /** @copydoc _PurpleMediaStream */ |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
47 typedef struct _PurpleMediaStream PurpleMediaStream; |
26407
440e999c27ca
Hide these typedefs too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26406
diff
changeset
|
48 /** @copydoc _PurpleMediaClass */ |
440e999c27ca
Hide these typedefs too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26406
diff
changeset
|
49 typedef struct _PurpleMediaClass PurpleMediaClass; |
440e999c27ca
Hide these typedefs too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26406
diff
changeset
|
50 /** @copydoc _PurpleMediaPrivate */ |
440e999c27ca
Hide these typedefs too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26406
diff
changeset
|
51 typedef struct _PurpleMediaPrivate PurpleMediaPrivate; |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
52 /** @copydoc _PurpleMediaCandidateClass */ |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
53 typedef struct _PurpleMediaCandidateClass PurpleMediaCandidateClass; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
54 /** @copydoc _PurpleMediaCandidatePrivate */ |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
55 typedef struct _PurpleMediaCandidatePrivate PurpleMediaCandidatePrivate; |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
56 /** @copydoc _PurpleMediaCodecClass */ |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
57 typedef struct _PurpleMediaCodecClass PurpleMediaCodecClass; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
58 /** @copydoc _PurpleMediaCodecPrivate */ |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
59 typedef struct _PurpleMediaCodecPrivate PurpleMediaCodecPrivate; |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
60 |
26399
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
61 /** The media class */ |
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
62 struct _PurpleMediaClass |
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
63 { |
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
64 GObjectClass parent_class; /**< The parent class. */ |
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
65 }; |
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
66 |
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
67 /** The media class's private data */ |
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
68 struct _PurpleMedia |
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
69 { |
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
70 GObject parent; /**< The parent of this object. */ |
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
71 PurpleMediaPrivate *priv; /**< The private data of this object. */ |
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
72 }; |
341864c1d1f9
Hide the easy structs in media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26393
diff
changeset
|
73 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
74 struct _PurpleMediaSession |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
75 { |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
76 gchar *id; |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
77 PurpleMedia *media; |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
78 GstElement *src; |
26115
9b0761b77218
Handle the session tee in the session rather than the src bin.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26114
diff
changeset
|
79 GstElement *tee; |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
80 FsSession *session; |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
81 |
23869
551a462b346a
Changed PurpleMediaStreamType to PurpleMediaSessionType.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23865
diff
changeset
|
82 PurpleMediaSessionType type; |
26384
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
83 gboolean initiator; |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
84 }; |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
85 |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
86 struct _PurpleMediaStream |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
87 { |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
88 PurpleMediaSession *session; |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
89 gchar *participant; |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
90 FsStream *stream; |
26109
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
91 GstElement *src; |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
92 GstElement *tee; |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
93 |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
94 GList *local_candidates; |
25000
2cf44cc855fe
Add candidates instead of replacing them.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24995
diff
changeset
|
95 GList *remote_candidates; |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
96 |
26384
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
97 gboolean initiator; |
26309
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
98 gboolean accepted; |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
99 gboolean candidates_prepared; |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
100 |
26099
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
101 GList *active_local_candidates; |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
102 GList *active_remote_candidates; |
26053
c334a9e17426
Wait to create the sinks until the frames are ready.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26052
diff
changeset
|
103 |
26118
0a6f1f796d21
Use purple_timeout_* instead of g_timeout_*.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26117
diff
changeset
|
104 guint connected_cb_id; |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
105 }; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
106 #endif |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
107 |
23760 | 108 struct _PurpleMediaPrivate |
109 { | |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
110 #ifdef USE_VV |
26107
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
111 PurpleMediaManager *manager; |
26121
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
112 PurpleConnection *pc; |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
113 FsConference *conference; |
24987
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
114 gboolean initiator; |
26122
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
115 gpointer prpl_data; |
23760 | 116 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
117 GHashTable *sessions; /* PurpleMediaSession table */ |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
118 GHashTable *participants; /* FsParticipant table */ |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
119 |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
120 GList *streams; /* PurpleMediaStream table */ |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
121 |
26070
7be8c88d630c
Have all media sessions use a single pipeline.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26064
diff
changeset
|
122 GstElement *confbin; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
123 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
124 gpointer dummy; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
125 #endif |
23760 | 126 }; |
127 | |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
128 #ifdef USE_VV |
23760 | 129 #define PURPLE_MEDIA_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_MEDIA, PurpleMediaPrivate)) |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
130 #define PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_MEDIA_CANDIDATE, PurpleMediaCandidatePrivate)) |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
131 #define PURPLE_MEDIA_CODEC_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_MEDIA_CODEC, PurpleMediaCodecPrivate)) |
23760 | 132 |
133 static void purple_media_class_init (PurpleMediaClass *klass); | |
134 static void purple_media_init (PurpleMedia *media); | |
26005
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
135 static void purple_media_dispose (GObject *object); |
23760 | 136 static void purple_media_finalize (GObject *object); |
137 static void purple_media_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); | |
138 static void purple_media_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); | |
139 | |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
140 static void purple_media_new_local_candidate_cb(FsStream *stream, |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
141 FsCandidate *local_candidate, PurpleMediaSession *session); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
142 static void purple_media_candidates_prepared_cb(FsStream *stream, |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
143 PurpleMediaSession *session); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
144 static void purple_media_candidate_pair_established_cb(FsStream *stream, |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
145 FsCandidate *native_candidate, FsCandidate *remote_candidate, |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
146 PurpleMediaSession *session); |
26114
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
147 static gboolean media_bus_call(GstBus *bus, |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
148 GstMessage *msg, PurpleMedia *media); |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
149 |
23760 | 150 static GObjectClass *parent_class = NULL; |
151 | |
152 | |
153 | |
154 enum { | |
24982
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
155 ERROR, |
26060
5b64b7d8da39
Added the accepted signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26059
diff
changeset
|
156 ACCEPTED, |
26298
b892b3cb9dbc
Add candidates-prepared signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26292
diff
changeset
|
157 CANDIDATES_PREPARED, |
26059
1ff5304f6e9d
Added codecs-changed signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26058
diff
changeset
|
158 CODECS_CHANGED, |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
159 NEW_CANDIDATE, |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
160 STATE_CHANGED, |
26320
8b4394e84633
Add stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26319
diff
changeset
|
161 STREAM_INFO, |
23760 | 162 LAST_SIGNAL |
163 }; | |
164 static guint purple_media_signals[LAST_SIGNAL] = {0}; | |
165 | |
166 enum { | |
167 PROP_0, | |
26107
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
168 PROP_MANAGER, |
26121
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
169 PROP_CONNECTION, |
24985
ee2a2a9dda01
Rename "fs-conference" to "conference".
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24984
diff
changeset
|
170 PROP_CONFERENCE, |
24987
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
171 PROP_INITIATOR, |
26122
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
172 PROP_PRPL_DATA, |
23760 | 173 }; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
174 #endif |
23760 | 175 |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
176 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
177 /* |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
178 * PurpleMediaElementType |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
179 */ |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
180 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
181 GType |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
182 purple_media_session_type_get_type() |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
183 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
184 static GType type = 0; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
185 if (type == 0) { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
186 static const GFlagsValue values[] = { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
187 { PURPLE_MEDIA_NONE, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
188 "PURPLE_MEDIA_NONE", "none" }, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
189 { PURPLE_MEDIA_RECV_AUDIO, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
190 "PURPLE_MEDIA_RECV_AUDIO", "recv-audio" }, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
191 { PURPLE_MEDIA_SEND_AUDIO, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
192 "PURPLE_MEDIA_SEND_AUDIO", "send-audio" }, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
193 { PURPLE_MEDIA_RECV_VIDEO, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
194 "PURPLE_MEDIA_RECV_VIDEO", "recv-video" }, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
195 { PURPLE_MEDIA_SEND_VIDEO, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
196 "PURPLE_MEDIA_SEND_VIDEO", "send-audio" }, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
197 { PURPLE_MEDIA_AUDIO, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
198 "PURPLE_MEDIA_AUDIO", "audio" }, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
199 { PURPLE_MEDIA_VIDEO, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
200 "PURPLE_MEDIA_VIDEO", "video" }, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
201 { 0, NULL, NULL } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
202 }; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
203 type = g_flags_register_static( |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
204 "PurpleMediaSessionType", values); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
205 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
206 return type; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
207 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
208 |
23760 | 209 GType |
210 purple_media_get_type() | |
211 { | |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
212 #ifdef USE_VV |
23760 | 213 static GType type = 0; |
214 | |
215 if (type == 0) { | |
216 static const GTypeInfo info = { | |
217 sizeof(PurpleMediaClass), | |
218 NULL, | |
219 NULL, | |
220 (GClassInitFunc) purple_media_class_init, | |
221 NULL, | |
222 NULL, | |
223 sizeof(PurpleMedia), | |
224 0, | |
23772
750d700098c1
Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23766
diff
changeset
|
225 (GInstanceInitFunc) purple_media_init, |
750d700098c1
Fix the prplinfo structs and get rid of some compile warnings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23766
diff
changeset
|
226 NULL |
23760 | 227 }; |
228 type = g_type_register_static(G_TYPE_OBJECT, "PurpleMedia", &info, 0); | |
229 } | |
230 return type; | |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
231 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
232 return G_TYPE_NONE; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
233 #endif |
23760 | 234 } |
235 | |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
236 GType |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
237 purple_media_state_changed_get_type() |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
238 { |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
239 static GType type = 0; |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
240 if (type == 0) { |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
241 static const GEnumValue values[] = { |
26329
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
242 { PURPLE_MEDIA_STATE_NEW, |
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
243 "PURPLE_MEDIA_STATE_NEW", "new" }, |
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
244 { PURPLE_MEDIA_STATE_CONNECTED, |
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
245 "PURPLE_MEDIA_STATE_CONNECTED", "connected" }, |
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
246 { PURPLE_MEDIA_STATE_END, |
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
247 "PURPLE_MEDIA_STATE_END", "end" }, |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
248 { 0, NULL, NULL } |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
249 }; |
26329
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
250 type = g_enum_register_static("PurpleMediaState", values); |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
251 } |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
252 return type; |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
253 } |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
254 |
26327
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
255 GType |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
256 purple_media_info_type_get_type() |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
257 { |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
258 static GType type = 0; |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
259 if (type == 0) { |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
260 static const GEnumValue values[] = { |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
261 { PURPLE_MEDIA_INFO_HANGUP, |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
262 "PURPLE_MEDIA_INFO_HANGUP", "hangup" }, |
26367
6943d2a41c6e
Add some more PurpleMediaInfo values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26366
diff
changeset
|
263 { PURPLE_MEDIA_INFO_ACCEPT, |
6943d2a41c6e
Add some more PurpleMediaInfo values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26366
diff
changeset
|
264 "PURPLE_MEDIA_INFO_ACCEPT", "accept" }, |
26327
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
265 { PURPLE_MEDIA_INFO_REJECT, |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
266 "PURPLE_MEDIA_INFO_REJECT", "reject" }, |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
267 { PURPLE_MEDIA_INFO_MUTE, |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
268 "PURPLE_MEDIA_INFO_MUTE", "mute" }, |
26367
6943d2a41c6e
Add some more PurpleMediaInfo values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26366
diff
changeset
|
269 { PURPLE_MEDIA_INFO_UNMUTE, |
6943d2a41c6e
Add some more PurpleMediaInfo values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26366
diff
changeset
|
270 "PURPLE_MEDIA_INFO_UNMUTE", "unmute" }, |
26327
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
271 { PURPLE_MEDIA_INFO_HOLD, |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
272 "PURPLE_MEDIA_INFO_HOLD", "hold" }, |
26367
6943d2a41c6e
Add some more PurpleMediaInfo values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26366
diff
changeset
|
273 { PURPLE_MEDIA_INFO_UNHOLD, |
6943d2a41c6e
Add some more PurpleMediaInfo values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26366
diff
changeset
|
274 "PURPLE_MEDIA_INFO_HOLD", "unhold" }, |
26327
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
275 { 0, NULL, NULL } |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
276 }; |
db9d2a760329
Use the right enum for the stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26326
diff
changeset
|
277 type = g_enum_register_static("PurpleMediaInfoType", values); |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
278 } |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
279 return type; |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
280 } |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
281 |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
282 #ifdef USE_VV |
23760 | 283 static void |
284 purple_media_class_init (PurpleMediaClass *klass) | |
285 { | |
286 GObjectClass *gobject_class = (GObjectClass*)klass; | |
287 parent_class = g_type_class_peek_parent(klass); | |
288 | |
26005
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
289 gobject_class->dispose = purple_media_dispose; |
23760 | 290 gobject_class->finalize = purple_media_finalize; |
291 gobject_class->set_property = purple_media_set_property; | |
292 gobject_class->get_property = purple_media_get_property; | |
293 | |
26107
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
294 g_object_class_install_property(gobject_class, PROP_MANAGER, |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
295 g_param_spec_object("manager", |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
296 "Purple Media Manager", |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
297 "The media manager that contains this media session.", |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
298 PURPLE_TYPE_MEDIA_MANAGER, |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
299 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE)); |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
300 |
26121
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
301 g_object_class_install_property(gobject_class, PROP_CONNECTION, |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
302 g_param_spec_pointer("connection", |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
303 "PurpleConnection", |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
304 "The connection this media session is on.", |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
305 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE)); |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
306 |
24985
ee2a2a9dda01
Rename "fs-conference" to "conference".
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24984
diff
changeset
|
307 g_object_class_install_property(gobject_class, PROP_CONFERENCE, |
ee2a2a9dda01
Rename "fs-conference" to "conference".
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24984
diff
changeset
|
308 g_param_spec_object("conference", |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
309 "Farsight conference", |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
310 "The FsConference associated with this media.", |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
311 FS_TYPE_CONFERENCE, |
26388
de03cce95e17
Make the conference property write only.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26387
diff
changeset
|
312 G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE)); |
23760 | 313 |
24987
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
314 g_object_class_install_property(gobject_class, PROP_INITIATOR, |
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
315 g_param_spec_boolean("initiator", |
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
316 "initiator", |
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
317 "If the local user initiated the conference.", |
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
318 FALSE, |
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
319 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE)); |
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
320 |
26122
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
321 g_object_class_install_property(gobject_class, PROP_PRPL_DATA, |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
322 g_param_spec_pointer("prpl-data", |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
323 "gpointer", |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
324 "Data the prpl plugin set on the media session.", |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
325 G_PARAM_READWRITE)); |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
326 |
24982
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
327 purple_media_signals[ERROR] = g_signal_new("error", G_TYPE_FROM_CLASS(klass), |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
328 G_SIGNAL_RUN_LAST, 0, NULL, NULL, |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
329 g_cclosure_marshal_VOID__STRING, |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
330 G_TYPE_NONE, 1, G_TYPE_STRING); |
26060
5b64b7d8da39
Added the accepted signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26059
diff
changeset
|
331 purple_media_signals[ACCEPTED] = g_signal_new("accepted", G_TYPE_FROM_CLASS(klass), |
5b64b7d8da39
Added the accepted signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26059
diff
changeset
|
332 G_SIGNAL_RUN_LAST, 0, NULL, NULL, |
5b64b7d8da39
Added the accepted signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26059
diff
changeset
|
333 purple_smarshal_VOID__STRING_STRING, |
5b64b7d8da39
Added the accepted signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26059
diff
changeset
|
334 G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); |
26298
b892b3cb9dbc
Add candidates-prepared signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26292
diff
changeset
|
335 purple_media_signals[CANDIDATES_PREPARED] = g_signal_new("candidates-prepared", G_TYPE_FROM_CLASS(klass), |
b892b3cb9dbc
Add candidates-prepared signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26292
diff
changeset
|
336 G_SIGNAL_RUN_LAST, 0, NULL, NULL, |
b892b3cb9dbc
Add candidates-prepared signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26292
diff
changeset
|
337 purple_smarshal_VOID__STRING_STRING, |
b892b3cb9dbc
Add candidates-prepared signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26292
diff
changeset
|
338 G_TYPE_NONE, 2, G_TYPE_STRING, |
b892b3cb9dbc
Add candidates-prepared signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26292
diff
changeset
|
339 G_TYPE_STRING); |
26059
1ff5304f6e9d
Added codecs-changed signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26058
diff
changeset
|
340 purple_media_signals[CODECS_CHANGED] = g_signal_new("codecs-changed", G_TYPE_FROM_CLASS(klass), |
1ff5304f6e9d
Added codecs-changed signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26058
diff
changeset
|
341 G_SIGNAL_RUN_LAST, 0, NULL, NULL, |
1ff5304f6e9d
Added codecs-changed signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26058
diff
changeset
|
342 g_cclosure_marshal_VOID__STRING, |
1ff5304f6e9d
Added codecs-changed signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26058
diff
changeset
|
343 G_TYPE_NONE, 1, G_TYPE_STRING); |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
344 purple_media_signals[NEW_CANDIDATE] = g_signal_new("new-candidate", G_TYPE_FROM_CLASS(klass), |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
345 G_SIGNAL_RUN_LAST, 0, NULL, NULL, |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
346 purple_smarshal_VOID__POINTER_POINTER_OBJECT, |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
347 G_TYPE_NONE, 3, G_TYPE_POINTER, |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
348 G_TYPE_POINTER, PURPLE_TYPE_MEDIA_CANDIDATE); |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
349 purple_media_signals[STATE_CHANGED] = g_signal_new("state-changed", G_TYPE_FROM_CLASS(klass), |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
350 G_SIGNAL_RUN_LAST, 0, NULL, NULL, |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
351 purple_smarshal_VOID__ENUM_STRING_STRING, |
26329
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
352 G_TYPE_NONE, 3, PURPLE_MEDIA_TYPE_STATE, |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
353 G_TYPE_STRING, G_TYPE_STRING); |
26320
8b4394e84633
Add stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26319
diff
changeset
|
354 purple_media_signals[STREAM_INFO] = g_signal_new("stream-info", G_TYPE_FROM_CLASS(klass), |
8b4394e84633
Add stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26319
diff
changeset
|
355 G_SIGNAL_RUN_LAST, 0, NULL, NULL, |
26366
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
356 purple_smarshal_VOID__ENUM_STRING_STRING_BOOLEAN, |
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
357 G_TYPE_NONE, 4, PURPLE_MEDIA_TYPE_INFO_TYPE, |
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
358 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN); |
23762
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
359 g_type_class_add_private(klass, sizeof(PurpleMediaPrivate)); |
23760 | 360 } |
361 | |
23762
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
362 |
23760 | 363 static void |
364 purple_media_init (PurpleMedia *media) | |
365 { | |
366 media->priv = PURPLE_MEDIA_GET_PRIVATE(media); | |
26286
d8a7c7d9ac8a
Zero out the proper size for the PurpleMediaPrivate structure.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26134
diff
changeset
|
367 memset(media->priv, 0, sizeof(*media->priv)); |
23760 | 368 } |
369 | |
370 static void | |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
371 purple_media_stream_free(PurpleMediaStream *stream) |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
372 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
373 if (stream == NULL) |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
374 return; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
375 |
26074
1199abde956b
Set the purple_media_connected_cb timeout to a high priority and remove
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26073
diff
changeset
|
376 /* Remove the connected_cb timeout */ |
26118
0a6f1f796d21
Use purple_timeout_* instead of g_timeout_*.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26117
diff
changeset
|
377 if (stream->connected_cb_id != 0) |
0a6f1f796d21
Use purple_timeout_* instead of g_timeout_*.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26117
diff
changeset
|
378 purple_timeout_remove(stream->connected_cb_id); |
26074
1199abde956b
Set the purple_media_connected_cb timeout to a high priority and remove
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26073
diff
changeset
|
379 |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
380 g_free(stream->participant); |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
381 |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
382 if (stream->local_candidates) |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
383 fs_candidate_list_destroy(stream->local_candidates); |
25000
2cf44cc855fe
Add candidates instead of replacing them.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24995
diff
changeset
|
384 if (stream->remote_candidates) |
2cf44cc855fe
Add candidates instead of replacing them.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24995
diff
changeset
|
385 fs_candidate_list_destroy(stream->remote_candidates); |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
386 |
26099
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
387 if (stream->active_local_candidates) |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
388 fs_candidate_list_destroy(stream->active_local_candidates); |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
389 if (stream->active_remote_candidates) |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
390 fs_candidate_list_destroy(stream->active_remote_candidates); |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
391 |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
392 g_free(stream); |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
393 } |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
394 |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
395 static void |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
396 purple_media_session_free(PurpleMediaSession *session) |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
397 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
398 if (session == NULL) |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
399 return; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
400 |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
401 g_free(session->id); |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
402 g_free(session); |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
403 } |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
404 |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
405 static void |
26005
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
406 purple_media_dispose(GObject *media) |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
407 { |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
408 PurpleMediaPrivate *priv = PURPLE_MEDIA_GET_PRIVATE(media); |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
409 GList *iter = NULL; |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
410 |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
411 purple_debug_info("media","purple_media_dispose\n"); |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
412 |
26107
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
413 purple_media_manager_remove_media(priv->manager, PURPLE_MEDIA(media)); |
26005
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
414 |
26070
7be8c88d630c
Have all media sessions use a single pipeline.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26064
diff
changeset
|
415 if (priv->confbin) { |
26306
5906409c4b69
Fix some GStreamer timing issues.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26305
diff
changeset
|
416 gst_element_set_locked_state(priv->confbin, TRUE); |
26070
7be8c88d630c
Have all media sessions use a single pipeline.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26064
diff
changeset
|
417 gst_element_set_state(GST_ELEMENT(priv->confbin), |
7be8c88d630c
Have all media sessions use a single pipeline.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26064
diff
changeset
|
418 GST_STATE_NULL); |
26114
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
419 gst_bin_remove(GST_BIN(purple_media_manager_get_pipeline( |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
420 priv->manager)), priv->confbin); |
26070
7be8c88d630c
Have all media sessions use a single pipeline.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26064
diff
changeset
|
421 priv->confbin = NULL; |
7be8c88d630c
Have all media sessions use a single pipeline.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26064
diff
changeset
|
422 priv->conference = NULL; |
26005
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
423 } |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
424 |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
425 for (iter = priv->streams; iter; iter = g_list_next(iter)) { |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
426 PurpleMediaStream *stream = iter->data; |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
427 if (stream->stream) { |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
428 g_object_unref(stream->stream); |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
429 stream->stream = NULL; |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
430 } |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
431 } |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
432 |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
433 if (priv->sessions) { |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
434 GList *sessions = g_hash_table_get_values(priv->sessions); |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
435 for (; sessions; sessions = g_list_delete_link(sessions, sessions)) { |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
436 PurpleMediaSession *session = sessions->data; |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
437 if (session->session) { |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
438 g_object_unref(session->session); |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
439 session->session = NULL; |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
440 } |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
441 } |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
442 } |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
443 |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
444 if (priv->participants) { |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
445 GList *participants = g_hash_table_get_values(priv->participants); |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
446 for (; participants; participants = g_list_delete_link(participants, participants)) |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
447 g_object_unref(participants->data); |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
448 } |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
449 |
26107
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
450 if (priv->manager) { |
26114
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
451 GstElement *pipeline = purple_media_manager_get_pipeline( |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
452 priv->manager); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
453 GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline)); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
454 g_signal_handlers_disconnect_matched(G_OBJECT(bus), |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
455 G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
456 0, 0, 0, media_bus_call, media); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
457 gst_object_unref(bus); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
458 |
26107
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
459 g_object_unref(priv->manager); |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
460 priv->manager = NULL; |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
461 } |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
462 |
26292 | 463 G_OBJECT_CLASS(parent_class)->dispose(media); |
26005
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
464 } |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
465 |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
466 static void |
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
467 purple_media_finalize(GObject *media) |
23760 | 468 { |
23811
d048100a43ab
Free the PurpleMedia object when the media session ends and fix ending
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23804
diff
changeset
|
469 PurpleMediaPrivate *priv = PURPLE_MEDIA_GET_PRIVATE(media); |
d048100a43ab
Free the PurpleMedia object when the media session ends and fix ending
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23804
diff
changeset
|
470 purple_debug_info("media","purple_media_finalize\n"); |
d048100a43ab
Free the PurpleMedia object when the media session ends and fix ending
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23804
diff
changeset
|
471 |
24981
584a4f5ce4dc
Free Farsight objects better.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24980
diff
changeset
|
472 for (; priv->streams; priv->streams = g_list_delete_link(priv->streams, priv->streams)) |
584a4f5ce4dc
Free Farsight objects better.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24980
diff
changeset
|
473 purple_media_stream_free(priv->streams->data); |
584a4f5ce4dc
Free Farsight objects better.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24980
diff
changeset
|
474 |
23877
c48f5c9600c3
Fixed a ton of memory leaks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23876
diff
changeset
|
475 if (priv->sessions) { |
c48f5c9600c3
Fixed a ton of memory leaks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23876
diff
changeset
|
476 GList *sessions = g_hash_table_get_values(priv->sessions); |
c48f5c9600c3
Fixed a ton of memory leaks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23876
diff
changeset
|
477 for (; sessions; sessions = g_list_delete_link(sessions, sessions)) { |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
478 purple_media_session_free(sessions->data); |
23856
1c68f78414b7
Set the media pipeline to PLAYING immediately after initialization
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23852
diff
changeset
|
479 } |
23877
c48f5c9600c3
Fixed a ton of memory leaks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23876
diff
changeset
|
480 g_hash_table_destroy(priv->sessions); |
c48f5c9600c3
Fixed a ton of memory leaks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23876
diff
changeset
|
481 } |
23856
1c68f78414b7
Set the media pipeline to PLAYING immediately after initialization
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23852
diff
changeset
|
482 |
26005
83704757fa36
Use the dispose method too.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26004
diff
changeset
|
483 G_OBJECT_CLASS(parent_class)->finalize(media); |
23760 | 484 } |
485 | |
486 static void | |
26114
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
487 purple_media_setup_pipeline(PurpleMedia *media) |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
488 { |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
489 GstBus *bus; |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
490 gchar *name; |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
491 GstElement *pipeline; |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
492 |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
493 if (media->priv->conference == NULL || media->priv->manager == NULL) |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
494 return; |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
495 |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
496 pipeline = purple_media_manager_get_pipeline(media->priv->manager); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
497 |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
498 name = g_strdup_printf("conf_%p", |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
499 media->priv->conference); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
500 media->priv->confbin = gst_bin_new(name); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
501 g_free(name); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
502 |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
503 bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline)); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
504 g_signal_connect(G_OBJECT(bus), "message", |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
505 G_CALLBACK(media_bus_call), media); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
506 gst_object_unref(bus); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
507 |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
508 gst_bin_add(GST_BIN(pipeline), |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
509 media->priv->confbin); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
510 gst_bin_add(GST_BIN(media->priv->confbin), |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
511 GST_ELEMENT(media->priv->conference)); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
512 gst_element_set_state(GST_ELEMENT(media->priv->confbin), |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
513 GST_STATE_PLAYING); |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
514 } |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
515 |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
516 static void |
23760 | 517 purple_media_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) |
518 { | |
519 PurpleMedia *media; | |
520 g_return_if_fail(PURPLE_IS_MEDIA(object)); | |
23787
92e71f6e10d4
Patch from Marcus Lundblad ('mlundblad') to improve audio support in xmpp.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23772
diff
changeset
|
521 |
23760 | 522 media = PURPLE_MEDIA(object); |
523 | |
524 switch (prop_id) { | |
26107
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
525 case PROP_MANAGER: |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
526 media->priv->manager = g_value_get_object(value); |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
527 g_object_ref(media->priv->manager); |
26114
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
528 |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
529 purple_media_setup_pipeline(media); |
26107
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
530 break; |
26121
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
531 case PROP_CONNECTION: |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
532 media->priv->pc = g_value_get_pointer(value); |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
533 break; |
26070
7be8c88d630c
Have all media sessions use a single pipeline.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26064
diff
changeset
|
534 case PROP_CONFERENCE: { |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
535 if (media->priv->conference) |
26070
7be8c88d630c
Have all media sessions use a single pipeline.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26064
diff
changeset
|
536 gst_object_unref(media->priv->conference); |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
537 media->priv->conference = g_value_get_object(value); |
26070
7be8c88d630c
Have all media sessions use a single pipeline.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26064
diff
changeset
|
538 gst_object_ref(media->priv->conference); |
7be8c88d630c
Have all media sessions use a single pipeline.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26064
diff
changeset
|
539 |
26114
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
540 purple_media_setup_pipeline(media); |
23760 | 541 break; |
26070
7be8c88d630c
Have all media sessions use a single pipeline.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26064
diff
changeset
|
542 } |
24987
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
543 case PROP_INITIATOR: |
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
544 media->priv->initiator = g_value_get_boolean(value); |
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
545 break; |
26122
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
546 case PROP_PRPL_DATA: |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
547 media->priv->prpl_data = g_value_get_pointer(value); |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
548 break; |
23760 | 549 default: |
550 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); | |
551 break; | |
552 } | |
553 } | |
554 | |
555 static void | |
556 purple_media_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) | |
557 { | |
558 PurpleMedia *media; | |
559 g_return_if_fail(PURPLE_IS_MEDIA(object)); | |
560 | |
561 media = PURPLE_MEDIA(object); | |
562 | |
563 switch (prop_id) { | |
26107
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
564 case PROP_MANAGER: |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
565 g_value_set_object(value, media->priv->manager); |
76104100cb87
Use the media manager that created the media session in media.c.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26103
diff
changeset
|
566 break; |
26121
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
567 case PROP_CONNECTION: |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
568 g_value_set_pointer(value, media->priv->pc); |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
569 break; |
24985
ee2a2a9dda01
Rename "fs-conference" to "conference".
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24984
diff
changeset
|
570 case PROP_CONFERENCE: |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
571 g_value_set_object(value, media->priv->conference); |
23760 | 572 break; |
24987
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
573 case PROP_INITIATOR: |
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
574 g_value_set_boolean(value, media->priv->initiator); |
c7d4b67b3332
Add initiator property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24985
diff
changeset
|
575 break; |
26122
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
576 case PROP_PRPL_DATA: |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
577 g_value_set_pointer(value, media->priv->prpl_data); |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
578 break; |
23760 | 579 default: |
580 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); | |
581 break; | |
582 } | |
583 | |
584 } | |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
585 #endif |
23760 | 586 |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
587 /* |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
588 * PurpleMediaCandidateType |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
589 */ |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
590 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
591 GType |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
592 purple_media_candidate_type_get_type() |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
593 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
594 static GType type = 0; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
595 if (type == 0) { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
596 static const GEnumValue values[] = { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
597 { PURPLE_MEDIA_CANDIDATE_TYPE_HOST, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
598 "PURPLE_MEDIA_CANDIDATE_TYPE_HOST", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
599 "host" }, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
600 { PURPLE_MEDIA_CANDIDATE_TYPE_SRFLX, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
601 "PURPLE_MEDIA_CANDIDATE_TYPE_SRFLX", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
602 "srflx" }, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
603 { PURPLE_MEDIA_CANDIDATE_TYPE_PRFLX, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
604 "PURPLE_MEDIA_CANDIDATE_TYPE_PRFLX", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
605 "prflx" }, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
606 { PURPLE_MEDIA_CANDIDATE_TYPE_RELAY, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
607 "PPURPLE_MEDIA_CANDIDATE_TYPE_RELAY", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
608 "relay" }, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
609 { PURPLE_MEDIA_CANDIDATE_TYPE_MULTICAST, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
610 "PURPLE_MEDIA_CANDIDATE_TYPE_MULTICAST", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
611 "multicast" }, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
612 { 0, NULL, NULL } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
613 }; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
614 type = g_enum_register_static("PurpleMediaCandidateType", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
615 values); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
616 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
617 return type; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
618 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
619 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
620 /* |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
621 * PurpleMediaNetworkProtocol |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
622 */ |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
623 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
624 GType |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
625 purple_media_network_protocol_get_type() |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
626 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
627 static GType type = 0; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
628 if (type == 0) { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
629 static const GEnumValue values[] = { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
630 { PURPLE_MEDIA_NETWORK_PROTOCOL_UDP, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
631 "PURPLE_MEDIA_NETWORK_PROTOCOL_UDP", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
632 "udp" }, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
633 { PURPLE_MEDIA_NETWORK_PROTOCOL_TCP, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
634 "PURPLE_MEDIA_NETWORK_PROTOCOL_TCP", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
635 "tcp" }, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
636 { 0, NULL, NULL } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
637 }; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
638 type = g_enum_register_static("PurpleMediaNetworkProtocol", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
639 values); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
640 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
641 return type; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
642 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
643 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
644 /* |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
645 * PurpleMediaCandidate |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
646 */ |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
647 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
648 struct _PurpleMediaCandidateClass |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
649 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
650 GObjectClass parent_class; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
651 }; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
652 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
653 struct _PurpleMediaCandidate |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
654 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
655 GObject parent; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
656 }; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
657 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
658 struct _PurpleMediaCandidatePrivate |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
659 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
660 gchar *foundation; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
661 guint component_id; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
662 gchar *ip; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
663 guint16 port; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
664 gchar *base_ip; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
665 guint16 base_port; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
666 PurpleMediaNetworkProtocol proto; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
667 guint32 priority; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
668 PurpleMediaCandidateType type; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
669 gchar *username; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
670 gchar *password; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
671 guint ttl; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
672 }; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
673 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
674 enum { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
675 PROP_CANDIDATE_0, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
676 PROP_FOUNDATION, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
677 PROP_COMPONENT_ID, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
678 PROP_IP, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
679 PROP_PORT, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
680 PROP_BASE_IP, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
681 PROP_BASE_PORT, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
682 PROP_PROTOCOL, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
683 PROP_PRIORITY, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
684 PROP_TYPE, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
685 PROP_USERNAME, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
686 PROP_PASSWORD, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
687 PROP_TTL, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
688 }; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
689 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
690 static void |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
691 purple_media_candidate_init(PurpleMediaCandidate *info) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
692 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
693 PurpleMediaCandidatePrivate *priv = |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
694 PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(info); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
695 priv->foundation = NULL; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
696 priv->component_id = 0; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
697 priv->ip = NULL; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
698 priv->port = 0; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
699 priv->base_ip = NULL; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
700 priv->proto = PURPLE_MEDIA_NETWORK_PROTOCOL_UDP; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
701 priv->priority = 0; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
702 priv->type = PURPLE_MEDIA_CANDIDATE_TYPE_HOST; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
703 priv->username = NULL; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
704 priv->password = NULL; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
705 priv->ttl = 0; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
706 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
707 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
708 static void |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
709 purple_media_candidate_finalize(GObject *info) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
710 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
711 PurpleMediaCandidatePrivate *priv = |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
712 PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(info); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
713 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
714 g_free(priv->foundation); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
715 g_free(priv->ip); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
716 g_free(priv->base_ip); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
717 g_free(priv->username); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
718 g_free(priv->password); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
719 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
720 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
721 static void |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
722 purple_media_candidate_set_property (GObject *object, guint prop_id, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
723 const GValue *value, GParamSpec *pspec) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
724 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
725 PurpleMediaCandidatePrivate *priv; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
726 g_return_if_fail(PURPLE_IS_MEDIA_CANDIDATE(object)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
727 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
728 priv = PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(object); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
729 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
730 switch (prop_id) { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
731 case PROP_FOUNDATION: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
732 g_free(priv->foundation); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
733 priv->foundation = g_value_dup_string(value); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
734 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
735 case PROP_COMPONENT_ID: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
736 priv->component_id = g_value_get_uint(value); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
737 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
738 case PROP_IP: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
739 g_free(priv->ip); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
740 priv->ip = g_value_dup_string(value); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
741 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
742 case PROP_PORT: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
743 priv->port = g_value_get_uint(value); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
744 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
745 case PROP_BASE_IP: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
746 g_free(priv->base_ip); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
747 priv->base_ip = g_value_dup_string(value); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
748 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
749 case PROP_BASE_PORT: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
750 priv->base_port = g_value_get_uint(value); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
751 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
752 case PROP_PROTOCOL: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
753 priv->proto = g_value_get_enum(value); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
754 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
755 case PROP_PRIORITY: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
756 priv->priority = g_value_get_uint(value); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
757 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
758 case PROP_TYPE: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
759 priv->type = g_value_get_enum(value); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
760 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
761 case PROP_USERNAME: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
762 g_free(priv->username); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
763 priv->username = g_value_dup_string(value); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
764 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
765 case PROP_PASSWORD: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
766 g_free(priv->password); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
767 priv->password = g_value_dup_string(value); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
768 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
769 case PROP_TTL: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
770 priv->ttl = g_value_get_uint(value); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
771 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
772 default: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
773 G_OBJECT_WARN_INVALID_PROPERTY_ID( |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
774 object, prop_id, pspec); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
775 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
776 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
777 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
778 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
779 static void |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
780 purple_media_candidate_get_property (GObject *object, guint prop_id, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
781 GValue *value, GParamSpec *pspec) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
782 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
783 PurpleMediaCandidatePrivate *priv; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
784 g_return_if_fail(PURPLE_IS_MEDIA_CANDIDATE(object)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
785 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
786 priv = PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(object); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
787 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
788 switch (prop_id) { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
789 case PROP_FOUNDATION: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
790 g_value_set_string(value, priv->foundation); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
791 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
792 case PROP_COMPONENT_ID: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
793 g_value_set_uint(value, priv->component_id); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
794 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
795 case PROP_IP: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
796 g_value_set_string(value, priv->ip); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
797 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
798 case PROP_PORT: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
799 g_value_set_uint(value, priv->port); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
800 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
801 case PROP_BASE_IP: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
802 g_value_set_string(value, priv->base_ip); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
803 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
804 case PROP_BASE_PORT: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
805 g_value_set_uint(value, priv->base_port); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
806 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
807 case PROP_PROTOCOL: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
808 g_value_set_enum(value, priv->proto); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
809 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
810 case PROP_PRIORITY: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
811 g_value_set_uint(value, priv->priority); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
812 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
813 case PROP_TYPE: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
814 g_value_set_enum(value, priv->type); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
815 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
816 case PROP_USERNAME: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
817 g_value_set_string(value, priv->username); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
818 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
819 case PROP_PASSWORD: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
820 g_value_set_string(value, priv->password); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
821 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
822 case PROP_TTL: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
823 g_value_set_uint(value, priv->ttl); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
824 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
825 default: |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
826 G_OBJECT_WARN_INVALID_PROPERTY_ID( |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
827 object, prop_id, pspec); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
828 break; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
829 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
830 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
831 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
832 static void |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
833 purple_media_candidate_class_init(PurpleMediaCandidateClass *klass) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
834 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
835 GObjectClass *gobject_class = (GObjectClass*)klass; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
836 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
837 gobject_class->finalize = purple_media_candidate_finalize; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
838 gobject_class->set_property = purple_media_candidate_set_property; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
839 gobject_class->get_property = purple_media_candidate_get_property; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
840 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
841 g_object_class_install_property(gobject_class, PROP_FOUNDATION, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
842 g_param_spec_string("foundation", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
843 "Foundation", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
844 "The foundation of the candidate.", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
845 NULL, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
846 G_PARAM_READWRITE)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
847 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
848 g_object_class_install_property(gobject_class, PROP_COMPONENT_ID, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
849 g_param_spec_uint("component-id", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
850 "Component ID", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
851 "The component id of the candidate.", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
852 0, G_MAXUINT, 0, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
853 G_PARAM_READWRITE)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
854 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
855 g_object_class_install_property(gobject_class, PROP_IP, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
856 g_param_spec_string("ip", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
857 "IP Address", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
858 "The IP address of the candidate.", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
859 NULL, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
860 G_PARAM_READWRITE)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
861 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
862 g_object_class_install_property(gobject_class, PROP_PORT, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
863 g_param_spec_uint("port", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
864 "Port", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
865 "The port of the candidate.", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
866 0, G_MAXUINT16, 0, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
867 G_PARAM_READWRITE)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
868 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
869 g_object_class_install_property(gobject_class, PROP_BASE_IP, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
870 g_param_spec_string("base-ip", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
871 "Base IP", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
872 "The internal IP address of the candidate.", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
873 NULL, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
874 G_PARAM_READWRITE)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
875 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
876 g_object_class_install_property(gobject_class, PROP_BASE_PORT, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
877 g_param_spec_uint("base-port", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
878 "Base Port", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
879 "The internal port of the candidate.", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
880 0, G_MAXUINT16, 0, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
881 G_PARAM_READWRITE)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
882 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
883 g_object_class_install_property(gobject_class, PROP_PROTOCOL, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
884 g_param_spec_enum("protocol", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
885 "Protocol", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
886 "The protocol of the candidate.", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
887 PURPLE_TYPE_MEDIA_NETWORK_PROTOCOL, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
888 PURPLE_MEDIA_NETWORK_PROTOCOL_UDP, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
889 G_PARAM_READWRITE)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
890 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
891 g_object_class_install_property(gobject_class, PROP_PRIORITY, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
892 g_param_spec_uint("priority", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
893 "Priority", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
894 "The priority of the candidate.", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
895 0, G_MAXUINT32, 0, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
896 G_PARAM_READWRITE)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
897 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
898 g_object_class_install_property(gobject_class, PROP_TYPE, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
899 g_param_spec_enum("type", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
900 "Type", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
901 "The type of the candidate.", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
902 PURPLE_TYPE_MEDIA_CANDIDATE_TYPE, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
903 PURPLE_MEDIA_CANDIDATE_TYPE_HOST, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
904 G_PARAM_READWRITE)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
905 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
906 g_object_class_install_property(gobject_class, PROP_USERNAME, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
907 g_param_spec_string("username", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
908 "Username", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
909 "The username used to connect to the candidate.", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
910 NULL, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
911 G_PARAM_READWRITE)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
912 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
913 g_object_class_install_property(gobject_class, PROP_PASSWORD, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
914 g_param_spec_string("password", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
915 "Password", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
916 "The password use to connect to the candidate.", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
917 NULL, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
918 G_PARAM_READWRITE)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
919 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
920 g_object_class_install_property(gobject_class, PROP_TTL, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
921 g_param_spec_uint("ttl", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
922 "TTL", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
923 "The TTL of the candidate.", |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
924 0, G_MAXUINT, 0, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
925 G_PARAM_READWRITE)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
926 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
927 g_type_class_add_private(klass, sizeof(PurpleMediaCandidatePrivate)); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
928 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
929 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
930 G_DEFINE_TYPE(PurpleMediaCandidate, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
931 purple_media_candidate, G_TYPE_OBJECT); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
932 |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
933 PurpleMediaCandidate * |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
934 purple_media_candidate_new(const gchar *foundation, guint component_id, |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
935 PurpleMediaCandidateType type, |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
936 PurpleMediaNetworkProtocol proto, |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
937 const gchar *ip, guint port) |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
938 { |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
939 return g_object_new(PURPLE_TYPE_MEDIA_CANDIDATE, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
940 "foundation", foundation, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
941 "component-id", component_id, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
942 "type", type, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
943 "protocol", proto, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
944 "ip", ip, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
945 "port", port, NULL); |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
946 } |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
947 |
26315
c0499eb4dd4d
Disapprove part of the revision that shouldn't be there.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26314
diff
changeset
|
948 static PurpleMediaCandidate * |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
949 purple_media_candidate_copy(PurpleMediaCandidate *candidate) |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
950 { |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
951 PurpleMediaCandidatePrivate *priv; |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
952 PurpleMediaCandidate *new_candidate; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
953 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
954 if (candidate == NULL) |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
955 return NULL; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
956 |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
957 priv = PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(candidate); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
958 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
959 new_candidate = purple_media_candidate_new(priv->foundation, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
960 priv->component_id, priv->type, priv->proto, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
961 priv->ip, priv->port); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
962 g_object_set(new_candidate, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
963 "base-ip", priv->base_ip, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
964 "base-port", priv->base_port, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
965 "priority", priv->priority, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
966 "username", priv->username, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
967 "password", priv->password, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
968 "ttl", priv->ttl, NULL); |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
969 return new_candidate; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
970 } |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
971 |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
972 #ifdef USE_VV |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
973 static FsCandidate * |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
974 purple_media_candidate_to_fs(PurpleMediaCandidate *candidate) |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
975 { |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
976 PurpleMediaCandidatePrivate *priv; |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
977 FsCandidate *fscandidate; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
978 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
979 if (candidate == NULL) |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
980 return NULL; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
981 |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
982 priv = PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(candidate); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
983 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
984 fscandidate = fs_candidate_new(priv->foundation, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
985 priv->component_id, priv->type, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
986 priv->proto, priv->ip, priv->port); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
987 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
988 fscandidate->base_ip = g_strdup(priv->base_ip); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
989 fscandidate->base_port = priv->base_port; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
990 fscandidate->priority = priv->priority; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
991 fscandidate->username = g_strdup(priv->username); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
992 fscandidate->password = g_strdup(priv->password); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
993 fscandidate->ttl = priv->ttl; |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
994 return fscandidate; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
995 } |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
996 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
997 static PurpleMediaCandidate * |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
998 purple_media_candidate_from_fs(FsCandidate *fscandidate) |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
999 { |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1000 PurpleMediaCandidate *candidate; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1001 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1002 if (fscandidate == NULL) |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1003 return NULL; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1004 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1005 candidate = purple_media_candidate_new(fscandidate->foundation, |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1006 fscandidate->component_id, fscandidate->type, |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1007 fscandidate->proto, fscandidate->ip, fscandidate->port); |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1008 g_object_set(candidate, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1009 "base-ip", fscandidate->base_ip, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1010 "base-port", fscandidate->base_port, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1011 "priority", fscandidate->priority, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1012 "username", fscandidate->username, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1013 "password", fscandidate->password, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1014 "ttl", fscandidate->ttl, NULL); |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1015 return candidate; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1016 } |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1017 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1018 static GList * |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1019 purple_media_candidate_list_from_fs(GList *candidates) |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1020 { |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1021 GList *new_list = NULL; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1022 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1023 for (; candidates; candidates = g_list_next(candidates)) { |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1024 new_list = g_list_prepend(new_list, |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1025 purple_media_candidate_from_fs( |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1026 candidates->data)); |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1027 } |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1028 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1029 new_list = g_list_reverse(new_list); |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1030 return new_list; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1031 } |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1032 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1033 static GList * |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1034 purple_media_candidate_list_to_fs(GList *candidates) |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1035 { |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1036 GList *new_list = NULL; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1037 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1038 for (; candidates; candidates = g_list_next(candidates)) { |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1039 new_list = g_list_prepend(new_list, |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1040 purple_media_candidate_to_fs( |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1041 candidates->data)); |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1042 } |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1043 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1044 new_list = g_list_reverse(new_list); |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1045 return new_list; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1046 } |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1047 #endif |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1048 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1049 GList * |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1050 purple_media_candidate_list_copy(GList *candidates) |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1051 { |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1052 GList *new_list = NULL; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1053 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1054 for (; candidates; candidates = g_list_next(candidates)) { |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1055 new_list = g_list_prepend(new_list, |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1056 purple_media_candidate_copy(candidates->data)); |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1057 } |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1058 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1059 new_list = g_list_reverse(new_list); |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1060 return new_list; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1061 } |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1062 |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1063 void |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1064 purple_media_candidate_list_free(GList *candidates) |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1065 { |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1066 for (; candidates; candidates = |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1067 g_list_delete_link(candidates, candidates)) { |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1068 g_object_unref(candidates->data); |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1069 } |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1070 } |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1071 |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1072 gchar * |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1073 purple_media_candidate_get_foundation(PurpleMediaCandidate *candidate) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1074 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1075 gchar *foundation; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1076 g_return_val_if_fail(PURPLE_IS_MEDIA_CANDIDATE(candidate), NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1077 g_object_get(candidate, "foundation", &foundation, NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1078 return foundation; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1079 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1080 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1081 guint |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1082 purple_media_candidate_get_component_id(PurpleMediaCandidate *candidate) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1083 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1084 guint component_id; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1085 g_return_val_if_fail(PURPLE_IS_MEDIA_CANDIDATE(candidate), 0); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1086 g_object_get(candidate, "component-id", &component_id, NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1087 return component_id; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1088 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1089 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1090 gchar * |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1091 purple_media_candidate_get_ip(PurpleMediaCandidate *candidate) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1092 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1093 gchar *ip; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1094 g_return_val_if_fail(PURPLE_IS_MEDIA_CANDIDATE(candidate), NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1095 g_object_get(candidate, "ip", &ip, NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1096 return ip; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1097 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1098 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1099 guint16 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1100 purple_media_candidate_get_port(PurpleMediaCandidate *candidate) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1101 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1102 guint port; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1103 g_return_val_if_fail(PURPLE_IS_MEDIA_CANDIDATE(candidate), 0); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1104 g_object_get(candidate, "port", &port, NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1105 return port; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1106 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1107 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1108 gchar * |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1109 purple_media_candidate_get_base_ip(PurpleMediaCandidate *candidate) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1110 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1111 gchar *base_ip; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1112 g_return_val_if_fail(PURPLE_IS_MEDIA_CANDIDATE(candidate), NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1113 g_object_get(candidate, "base-ip", &base_ip, NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1114 return base_ip; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1115 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1116 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1117 guint16 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1118 purple_media_candidate_get_base_port(PurpleMediaCandidate *candidate) |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1119 { |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1120 guint base_port; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1121 g_return_val_if_fail(PURPLE_IS_MEDIA_CANDIDATE(candidate), 0); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1122 g_object_get(candidate, "base_port", &base_port, NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1123 return base_port; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1124 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1125 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1126 PurpleMediaNetworkProtocol |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1127 purple_media_candidate_get_protocol(PurpleMediaCandidate *candidate) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1128 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1129 PurpleMediaNetworkProtocol protocol; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1130 g_return_val_if_fail(PURPLE_IS_MEDIA_CANDIDATE(candidate), |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1131 PURPLE_MEDIA_NETWORK_PROTOCOL_UDP); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1132 g_object_get(candidate, "protocol", &protocol, NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1133 return protocol; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1134 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1135 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1136 guint32 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1137 purple_media_candidate_get_priority(PurpleMediaCandidate *candidate) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1138 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1139 guint priority; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1140 g_return_val_if_fail(PURPLE_IS_MEDIA_CANDIDATE(candidate), 0); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1141 g_object_get(candidate, "priority", &priority, NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1142 return priority; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1143 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1144 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1145 PurpleMediaCandidateType |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1146 purple_media_candidate_get_candidate_type(PurpleMediaCandidate *candidate) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1147 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1148 PurpleMediaCandidateType type; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1149 g_return_val_if_fail(PURPLE_IS_MEDIA_CANDIDATE(candidate), |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1150 PURPLE_MEDIA_CANDIDATE_TYPE_HOST); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1151 g_object_get(candidate, "type", &type, NULL); |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1152 return type; |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1153 } |
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
1154 |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1155 gchar * |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1156 purple_media_candidate_get_username(PurpleMediaCandidate *candidate) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1157 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1158 gchar *username; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1159 g_return_val_if_fail(PURPLE_IS_MEDIA_CANDIDATE(candidate), NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1160 g_object_get(candidate, "username", &username, NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1161 return username; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1162 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1163 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1164 gchar * |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1165 purple_media_candidate_get_password(PurpleMediaCandidate *candidate) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1166 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1167 gchar *password; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1168 g_return_val_if_fail(PURPLE_IS_MEDIA_CANDIDATE(candidate), NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1169 g_object_get(candidate, "password", &password, NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1170 return password; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1171 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1172 |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1173 guint |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1174 purple_media_candidate_get_ttl(PurpleMediaCandidate *candidate) |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1175 { |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1176 guint ttl; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1177 g_return_val_if_fail(PURPLE_IS_MEDIA_CANDIDATE(candidate), 0); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1178 g_object_get(candidate, "ttl", &ttl, NULL); |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1179 return ttl; |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1180 } |
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
1181 |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1182 #ifdef USE_VV |
26017
b6457b2a8e14
Make FsStreamDirection and FsMediaType conversion functions static.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26015
diff
changeset
|
1183 static FsMediaType |
23869
551a462b346a
Changed PurpleMediaStreamType to PurpleMediaSessionType.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23865
diff
changeset
|
1184 purple_media_to_fs_media_type(PurpleMediaSessionType type) |
23824
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1185 { |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1186 if (type & PURPLE_MEDIA_AUDIO) |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1187 return FS_MEDIA_TYPE_AUDIO; |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1188 else if (type & PURPLE_MEDIA_VIDEO) |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1189 return FS_MEDIA_TYPE_VIDEO; |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1190 else |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1191 return 0; |
23824
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1192 } |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1193 |
26017
b6457b2a8e14
Make FsStreamDirection and FsMediaType conversion functions static.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26015
diff
changeset
|
1194 static FsStreamDirection |
23869
551a462b346a
Changed PurpleMediaStreamType to PurpleMediaSessionType.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23865
diff
changeset
|
1195 purple_media_to_fs_stream_direction(PurpleMediaSessionType type) |
23824
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1196 { |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1197 if ((type & PURPLE_MEDIA_AUDIO) == PURPLE_MEDIA_AUDIO || |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1198 (type & PURPLE_MEDIA_VIDEO) == PURPLE_MEDIA_VIDEO) |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1199 return FS_DIRECTION_BOTH; |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1200 else if ((type & PURPLE_MEDIA_SEND_AUDIO) || |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1201 (type & PURPLE_MEDIA_SEND_VIDEO)) |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1202 return FS_DIRECTION_SEND; |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1203 else if ((type & PURPLE_MEDIA_RECV_AUDIO) || |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1204 (type & PURPLE_MEDIA_RECV_VIDEO)) |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1205 return FS_DIRECTION_RECV; |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1206 else |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1207 return FS_DIRECTION_NONE; |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1208 } |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1209 |
26017
b6457b2a8e14
Make FsStreamDirection and FsMediaType conversion functions static.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26015
diff
changeset
|
1210 static PurpleMediaSessionType |
23824
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1211 purple_media_from_fs(FsMediaType type, FsStreamDirection direction) |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1212 { |
23869
551a462b346a
Changed PurpleMediaStreamType to PurpleMediaSessionType.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23865
diff
changeset
|
1213 PurpleMediaSessionType result = PURPLE_MEDIA_NONE; |
23824
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1214 if (type == FS_MEDIA_TYPE_AUDIO) { |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1215 if (direction & FS_DIRECTION_SEND) |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1216 result |= PURPLE_MEDIA_SEND_AUDIO; |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1217 if (direction & FS_DIRECTION_RECV) |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1218 result |= PURPLE_MEDIA_RECV_AUDIO; |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1219 } else if (type == FS_MEDIA_TYPE_VIDEO) { |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1220 if (direction & FS_DIRECTION_SEND) |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1221 result |= PURPLE_MEDIA_SEND_VIDEO; |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1222 if (direction & FS_DIRECTION_RECV) |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1223 result |= PURPLE_MEDIA_RECV_VIDEO; |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1224 } |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1225 return result; |
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1226 } |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1227 #endif |
23824
bfaad8393463
Added some utility functions to convert PurpleMediaStreamType
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23821
diff
changeset
|
1228 |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1229 /* |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1230 * PurpleMediaCodec |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1231 */ |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1232 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1233 struct _PurpleMediaCodecClass |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1234 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1235 GObjectClass parent_class; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1236 }; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1237 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1238 struct _PurpleMediaCodec |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1239 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1240 GObject parent; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1241 }; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1242 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1243 struct _PurpleMediaCodecPrivate |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1244 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1245 gint id; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1246 char *encoding_name; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1247 PurpleMediaSessionType media_type; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1248 guint clock_rate; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1249 guint channels; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1250 GList *optional_params; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1251 }; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1252 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1253 enum { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1254 PROP_CODEC_0, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1255 PROP_ID, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1256 PROP_ENCODING_NAME, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1257 PROP_MEDIA_TYPE, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1258 PROP_CLOCK_RATE, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1259 PROP_CHANNELS, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1260 PROP_OPTIONAL_PARAMS, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1261 }; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1262 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1263 static void |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1264 purple_media_codec_init(PurpleMediaCodec *info) |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1265 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1266 PurpleMediaCodecPrivate *priv = |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1267 PURPLE_MEDIA_CODEC_GET_PRIVATE(info); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1268 priv->encoding_name = NULL; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1269 priv->optional_params = NULL; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1270 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1271 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1272 static void |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1273 purple_media_codec_finalize(GObject *info) |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1274 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1275 PurpleMediaCodecPrivate *priv = |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1276 PURPLE_MEDIA_CODEC_GET_PRIVATE(info); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1277 g_free(priv->encoding_name); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1278 for (; priv->optional_params; priv->optional_params = |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1279 g_list_delete_link(priv->optional_params, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1280 priv->optional_params)) { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1281 g_free(priv->optional_params->data); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1282 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1283 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1284 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1285 static void |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1286 purple_media_codec_set_property (GObject *object, guint prop_id, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1287 const GValue *value, GParamSpec *pspec) |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1288 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1289 PurpleMediaCodecPrivate *priv; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1290 g_return_if_fail(PURPLE_IS_MEDIA_CODEC(object)); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1291 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1292 priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(object); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1293 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1294 switch (prop_id) { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1295 case PROP_ID: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1296 priv->id = g_value_get_uint(value); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1297 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1298 case PROP_ENCODING_NAME: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1299 g_free(priv->encoding_name); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1300 priv->encoding_name = g_value_dup_string(value); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1301 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1302 case PROP_MEDIA_TYPE: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1303 priv->media_type = g_value_get_flags(value); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1304 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1305 case PROP_CLOCK_RATE: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1306 priv->clock_rate = g_value_get_uint(value); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1307 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1308 case PROP_CHANNELS: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1309 priv->channels = g_value_get_uint(value); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1310 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1311 case PROP_OPTIONAL_PARAMS: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1312 priv->optional_params = g_value_get_pointer(value); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1313 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1314 default: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1315 G_OBJECT_WARN_INVALID_PROPERTY_ID( |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1316 object, prop_id, pspec); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1317 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1318 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1319 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1320 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1321 static void |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1322 purple_media_codec_get_property (GObject *object, guint prop_id, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1323 GValue *value, GParamSpec *pspec) |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1324 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1325 PurpleMediaCodecPrivate *priv; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1326 g_return_if_fail(PURPLE_IS_MEDIA_CODEC(object)); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1327 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1328 priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(object); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1329 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1330 switch (prop_id) { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1331 case PROP_ID: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1332 g_value_set_uint(value, priv->id); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1333 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1334 case PROP_ENCODING_NAME: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1335 g_value_set_string(value, priv->encoding_name); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1336 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1337 case PROP_MEDIA_TYPE: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1338 g_value_set_flags(value, priv->media_type); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1339 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1340 case PROP_CLOCK_RATE: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1341 g_value_set_uint(value, priv->clock_rate); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1342 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1343 case PROP_CHANNELS: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1344 g_value_set_uint(value, priv->channels); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1345 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1346 case PROP_OPTIONAL_PARAMS: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1347 g_value_set_pointer(value, priv->optional_params); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1348 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1349 default: |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1350 G_OBJECT_WARN_INVALID_PROPERTY_ID( |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1351 object, prop_id, pspec); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1352 break; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1353 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1354 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1355 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1356 static void |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1357 purple_media_codec_class_init(PurpleMediaCodecClass *klass) |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1358 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1359 GObjectClass *gobject_class = (GObjectClass*)klass; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1360 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1361 gobject_class->finalize = purple_media_codec_finalize; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1362 gobject_class->set_property = purple_media_codec_set_property; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1363 gobject_class->get_property = purple_media_codec_get_property; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1364 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1365 g_object_class_install_property(gobject_class, PROP_ID, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1366 g_param_spec_uint("id", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1367 "ID", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1368 "The numeric identifier of the codec.", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1369 0, G_MAXUINT, 0, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1370 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE)); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1371 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1372 g_object_class_install_property(gobject_class, PROP_ENCODING_NAME, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1373 g_param_spec_string("encoding-name", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1374 "Encoding Name", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1375 "The name of the codec.", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1376 NULL, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1377 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE)); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1378 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1379 g_object_class_install_property(gobject_class, PROP_MEDIA_TYPE, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1380 g_param_spec_flags("media-type", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1381 "Media Type", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1382 "Whether this is an audio of video codec.", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1383 PURPLE_TYPE_MEDIA_SESSION_TYPE, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1384 PURPLE_MEDIA_NONE, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1385 G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE)); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1386 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1387 g_object_class_install_property(gobject_class, PROP_CLOCK_RATE, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1388 g_param_spec_uint("clock-rate", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1389 "Create Callback", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1390 "The function called to create this element.", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1391 0, G_MAXUINT, 0, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1392 G_PARAM_READWRITE)); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1393 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1394 g_object_class_install_property(gobject_class, PROP_CHANNELS, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1395 g_param_spec_uint("channels", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1396 "Channels", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1397 "The number of channels in this codec.", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1398 0, G_MAXUINT, 0, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1399 G_PARAM_READWRITE)); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1400 g_object_class_install_property(gobject_class, PROP_OPTIONAL_PARAMS, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1401 g_param_spec_pointer("optional-params", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1402 "Optional Params", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1403 "A list of optional parameters for the codec.", |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1404 G_PARAM_READWRITE)); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1405 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1406 g_type_class_add_private(klass, sizeof(PurpleMediaCodecPrivate)); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1407 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1408 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1409 G_DEFINE_TYPE(PurpleMediaCodec, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1410 purple_media_codec, G_TYPE_OBJECT); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1411 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1412 guint |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1413 purple_media_codec_get_id(PurpleMediaCodec *codec) |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1414 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1415 guint id; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1416 g_return_val_if_fail(PURPLE_IS_MEDIA_CODEC(codec), 0); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1417 g_object_get(codec, "id", &id, NULL); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1418 return id; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1419 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1420 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1421 gchar * |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1422 purple_media_codec_get_encoding_name(PurpleMediaCodec *codec) |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1423 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1424 gchar *name; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1425 g_return_val_if_fail(PURPLE_IS_MEDIA_CODEC(codec), NULL); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1426 g_object_get(codec, "encoding-name", &name, NULL); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1427 return name; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1428 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1429 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1430 guint |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1431 purple_media_codec_get_clock_rate(PurpleMediaCodec *codec) |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1432 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1433 guint clock_rate; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1434 g_return_val_if_fail(PURPLE_IS_MEDIA_CODEC(codec), 0); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1435 g_object_get(codec, "clock-rate", &clock_rate, NULL); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1436 return clock_rate; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1437 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1438 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1439 guint |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1440 purple_media_codec_get_channels(PurpleMediaCodec *codec) |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1441 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1442 guint channels; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1443 g_return_val_if_fail(PURPLE_IS_MEDIA_CODEC(codec), 0); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1444 g_object_get(codec, "channels", &channels, NULL); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1445 return channels; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1446 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1447 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1448 GList * |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1449 purple_media_codec_get_optional_parameters(PurpleMediaCodec *codec) |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1450 { |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1451 GList *optional_params; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1452 g_return_val_if_fail(PURPLE_IS_MEDIA_CODEC(codec), NULL); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1453 g_object_get(codec, "optional-params", &optional_params, NULL); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1454 return optional_params; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1455 } |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1456 |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1457 void |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1458 purple_media_codec_add_optional_parameter(PurpleMediaCodec *codec, |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1459 const gchar *name, const gchar *value) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1460 { |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1461 PurpleMediaCodecPrivate *priv; |
26403
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1462 PurpleKeyValuePair *new_param; |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1463 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1464 g_return_if_fail(codec != NULL); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1465 g_return_if_fail(name != NULL && value != NULL); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1466 |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1467 priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(codec); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1468 |
26403
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1469 new_param = g_new0(PurpleKeyValuePair, 1); |
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1470 new_param->key = g_strdup(name); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1471 new_param->value = g_strdup(value); |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1472 priv->optional_params = g_list_append( |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1473 priv->optional_params, new_param); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1474 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1475 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1476 void |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1477 purple_media_codec_remove_optional_parameter(PurpleMediaCodec *codec, |
26403
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1478 PurpleKeyValuePair *param) |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1479 { |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1480 PurpleMediaCodecPrivate *priv; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1481 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1482 g_return_if_fail(codec != NULL && param != NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1483 |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1484 priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(codec); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1485 |
26403
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1486 g_free(param->key); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1487 g_free(param->value); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1488 g_free(param); |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1489 |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1490 priv->optional_params = |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1491 g_list_remove(priv->optional_params, param); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1492 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1493 |
26403
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1494 PurpleKeyValuePair * |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1495 purple_media_codec_get_optional_parameter(PurpleMediaCodec *codec, |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1496 const gchar *name, const gchar *value) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1497 { |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1498 PurpleMediaCodecPrivate *priv; |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1499 GList *iter; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1500 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1501 g_return_val_if_fail(codec != NULL, NULL); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1502 g_return_val_if_fail(name != NULL, NULL); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1503 |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1504 priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(codec); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1505 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1506 for (iter = priv->optional_params; iter; iter = g_list_next(iter)) { |
26403
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1507 PurpleKeyValuePair *param = iter->data; |
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1508 if (!g_ascii_strcasecmp(param->key, name) && |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1509 (value == NULL || |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1510 !g_ascii_strcasecmp(param->value, value))) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1511 return param; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1512 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1513 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1514 return NULL; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1515 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1516 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1517 PurpleMediaCodec * |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1518 purple_media_codec_new(int id, const char *encoding_name, |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1519 PurpleMediaSessionType media_type, guint clock_rate) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1520 { |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1521 PurpleMediaCodec *codec = |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1522 g_object_new(PURPLE_TYPE_MEDIA_CODEC, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1523 "id", id, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1524 "encoding_name", encoding_name, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1525 "media_type", media_type, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1526 "clock-rate", clock_rate, NULL); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1527 return codec; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1528 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1529 |
26315
c0499eb4dd4d
Disapprove part of the revision that shouldn't be there.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26314
diff
changeset
|
1530 static PurpleMediaCodec * |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1531 purple_media_codec_copy(PurpleMediaCodec *codec) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1532 { |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1533 PurpleMediaCodecPrivate *priv; |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1534 PurpleMediaCodec *new_codec; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1535 GList *iter; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1536 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1537 if (codec == NULL) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1538 return NULL; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1539 |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1540 priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(codec); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1541 |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1542 new_codec = purple_media_codec_new(priv->id, priv->encoding_name, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1543 priv->media_type, priv->clock_rate); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1544 g_object_set(codec, "channels", priv->channels, NULL); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1545 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1546 for (iter = priv->optional_params; iter; iter = g_list_next(iter)) { |
26403
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1547 PurpleKeyValuePair *param = |
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1548 (PurpleKeyValuePair*)iter->data; |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1549 purple_media_codec_add_optional_parameter(new_codec, |
26403
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1550 param->key, param->value); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1551 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1552 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1553 return new_codec; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1554 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1555 |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1556 #ifdef USE_VV |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1557 static FsCodec * |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1558 purple_media_codec_to_fs(const PurpleMediaCodec *codec) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1559 { |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1560 PurpleMediaCodecPrivate *priv; |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1561 FsCodec *new_codec; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1562 GList *iter; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1563 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1564 if (codec == NULL) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1565 return NULL; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1566 |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1567 priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(codec); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1568 |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1569 new_codec = fs_codec_new(priv->id, priv->encoding_name, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1570 purple_media_to_fs_media_type(priv->media_type), |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1571 priv->clock_rate); |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1572 new_codec->channels = priv->channels; |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1573 |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1574 for (iter = priv->optional_params; iter; iter = g_list_next(iter)) { |
26403
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1575 PurpleKeyValuePair *param = (PurpleKeyValuePair*)iter->data; |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1576 fs_codec_add_optional_parameter(new_codec, |
26403
f0de2405c2f1
Use PurpleMediaKeyPair. Remove PurpleMediaCodecParameter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26399
diff
changeset
|
1577 param->key, param->value); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1578 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1579 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1580 return new_codec; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1581 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1582 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1583 static PurpleMediaCodec * |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1584 purple_media_codec_from_fs(const FsCodec *codec) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1585 { |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1586 PurpleMediaCodec *new_codec; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1587 GList *iter; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1588 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1589 if (codec == NULL) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1590 return NULL; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1591 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1592 new_codec = purple_media_codec_new(codec->id, codec->encoding_name, |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1593 purple_media_from_fs(codec->media_type, |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1594 FS_DIRECTION_BOTH), codec->clock_rate); |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1595 g_object_set(new_codec, "channels", codec->channels, NULL); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1596 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1597 for (iter = codec->optional_params; iter; iter = g_list_next(iter)) { |
26027
5275c7ef9edf
Manipulate optional parameters properly.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26026
diff
changeset
|
1598 FsCodecParameter *param = (FsCodecParameter*)iter->data; |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1599 purple_media_codec_add_optional_parameter(new_codec, |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1600 param->name, param->value); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1601 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1602 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1603 return new_codec; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1604 } |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1605 #endif |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1606 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1607 gchar * |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1608 purple_media_codec_to_string(const PurpleMediaCodec *codec) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1609 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1610 #ifdef USE_VV |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1611 FsCodec *fscodec = purple_media_codec_to_fs(codec); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1612 gchar *str = fs_codec_to_string(fscodec); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1613 fs_codec_destroy(fscodec); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1614 return str; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1615 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1616 return g_strdup(""); |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1617 #endif |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1618 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1619 |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1620 #ifdef USE_VV |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1621 static GList * |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1622 purple_media_codec_list_from_fs(GList *codecs) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1623 { |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1624 GList *new_list = NULL; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1625 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1626 for (; codecs; codecs = g_list_next(codecs)) { |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1627 new_list = g_list_prepend(new_list, |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1628 purple_media_codec_from_fs( |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1629 codecs->data)); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1630 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1631 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1632 new_list = g_list_reverse(new_list); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1633 return new_list; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1634 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1635 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1636 static GList * |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1637 purple_media_codec_list_to_fs(GList *codecs) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1638 { |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1639 GList *new_list = NULL; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1640 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1641 for (; codecs; codecs = g_list_next(codecs)) { |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1642 new_list = g_list_prepend(new_list, |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1643 purple_media_codec_to_fs( |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1644 codecs->data)); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1645 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1646 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1647 new_list = g_list_reverse(new_list); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1648 return new_list; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1649 } |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1650 #endif |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1651 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1652 GList * |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1653 purple_media_codec_list_copy(GList *codecs) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1654 { |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1655 GList *new_list = NULL; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1656 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1657 for (; codecs; codecs = g_list_next(codecs)) { |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1658 new_list = g_list_prepend(new_list, |
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1659 purple_media_codec_copy(codecs->data)); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1660 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1661 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1662 new_list = g_list_reverse(new_list); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1663 return new_list; |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1664 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1665 |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1666 void |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1667 purple_media_codec_list_free(GList *codecs) |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1668 { |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1669 for (; codecs; codecs = |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1670 g_list_delete_link(codecs, codecs)) { |
26404
217574ec2a34
Hide and gobjectify PurpleMediaCodec.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26403
diff
changeset
|
1671 g_object_unref(codecs->data); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1672 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1673 } |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
1674 |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1675 #ifdef USE_VV |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1676 static PurpleMediaSession* |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1677 purple_media_get_session(PurpleMedia *media, const gchar *sess_id) |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1678 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1679 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1680 return (PurpleMediaSession*) (media->priv->sessions) ? |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1681 g_hash_table_lookup(media->priv->sessions, sess_id) : NULL; |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1682 } |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1683 |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1684 static FsParticipant* |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1685 purple_media_get_participant(PurpleMedia *media, const gchar *name) |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1686 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1687 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1688 return (FsParticipant*) (media->priv->participants) ? |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1689 g_hash_table_lookup(media->priv->participants, name) : NULL; |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1690 } |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1691 |
24963
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
1692 static PurpleMediaStream* |
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
1693 purple_media_get_stream(PurpleMedia *media, const gchar *session, const gchar *participant) |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1694 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1695 GList *streams; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1696 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1697 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1698 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1699 streams = media->priv->streams; |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
1700 |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
1701 for (; streams; streams = g_list_next(streams)) { |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
1702 PurpleMediaStream *stream = streams->data; |
24963
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
1703 if (!strcmp(stream->session->id, session) && |
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
1704 !strcmp(stream->participant, participant)) |
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
1705 return stream; |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
1706 } |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
1707 |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
1708 return NULL; |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1709 } |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1710 |
24971
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1711 static GList * |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1712 purple_media_get_streams(PurpleMedia *media, const gchar *session, |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1713 const gchar *participant) |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1714 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1715 GList *streams; |
24971
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1716 GList *ret = NULL; |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1717 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1718 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1719 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1720 streams = media->priv->streams; |
24971
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1721 |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1722 for (; streams; streams = g_list_next(streams)) { |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1723 PurpleMediaStream *stream = streams->data; |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1724 if ((session == NULL || |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1725 !strcmp(stream->session->id, session)) && |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1726 (participant == NULL || |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1727 !strcmp(stream->participant, participant))) |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1728 ret = g_list_append(ret, stream); |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1729 } |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1730 |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1731 return ret; |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1732 } |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
1733 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1734 static void |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1735 purple_media_add_session(PurpleMedia *media, PurpleMediaSession *session) |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1736 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1737 g_return_if_fail(PURPLE_IS_MEDIA(media)); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1738 g_return_if_fail(session != NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1739 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1740 if (!media->priv->sessions) { |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1741 purple_debug_info("media", "Creating hash table for sessions\n"); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1742 media->priv->sessions = g_hash_table_new(g_str_hash, g_str_equal); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1743 } |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1744 g_hash_table_insert(media->priv->sessions, g_strdup(session->id), session); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1745 } |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1746 |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1747 static gboolean |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1748 purple_media_remove_session(PurpleMedia *media, PurpleMediaSession *session) |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1749 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1750 g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE); |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1751 return g_hash_table_remove(media->priv->sessions, session->id); |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1752 } |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1753 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1754 static FsParticipant * |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1755 purple_media_add_participant(PurpleMedia *media, const gchar *name) |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1756 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1757 FsParticipant *participant; |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1758 GError *err = NULL; |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1759 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1760 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1761 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1762 participant = purple_media_get_participant(media, name); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1763 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1764 if (participant) |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1765 return participant; |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1766 |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1767 participant = fs_conference_new_participant(media->priv->conference, |
23877
c48f5c9600c3
Fixed a ton of memory leaks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23876
diff
changeset
|
1768 (gchar*)name, &err); |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1769 |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1770 if (err) { |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1771 purple_debug_error("media", "Error creating participant: %s\n", |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1772 err->message); |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1773 g_error_free(err); |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1774 return NULL; |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
1775 } |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1776 |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1777 if (!media->priv->participants) { |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1778 purple_debug_info("media", "Creating hash table for participants\n"); |
23877
c48f5c9600c3
Fixed a ton of memory leaks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23876
diff
changeset
|
1779 media->priv->participants = g_hash_table_new_full(g_str_hash, |
c48f5c9600c3
Fixed a ton of memory leaks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23876
diff
changeset
|
1780 g_str_equal, g_free, NULL); |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1781 } |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1782 |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1783 g_hash_table_insert(media->priv->participants, g_strdup(name), participant); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1784 |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1785 return participant; |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1786 } |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1787 |
24976
01df0829f054
Move sink from PurpleMediaSession to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24974
diff
changeset
|
1788 static PurpleMediaStream * |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1789 purple_media_insert_stream(PurpleMediaSession *session, const gchar *name, FsStream *stream) |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1790 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1791 PurpleMediaStream *media_stream; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1792 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1793 g_return_val_if_fail(session != NULL, NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1794 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1795 media_stream = g_new0(PurpleMediaStream, 1); |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
1796 media_stream->stream = stream; |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
1797 media_stream->participant = g_strdup(name); |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
1798 media_stream->session = session; |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1799 |
24962
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
1800 session->media->priv->streams = |
aa50b1f05145
Added PurpleMediaStream to wrap FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24960
diff
changeset
|
1801 g_list_append(session->media->priv->streams, media_stream); |
24976
01df0829f054
Move sink from PurpleMediaSession to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24974
diff
changeset
|
1802 |
01df0829f054
Move sink from PurpleMediaSession to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24974
diff
changeset
|
1803 return media_stream; |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1804 } |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1805 |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1806 static void |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1807 purple_media_insert_local_candidate(PurpleMediaSession *session, const gchar *name, |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1808 FsCandidate *candidate) |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1809 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1810 PurpleMediaStream *stream; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1811 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1812 g_return_if_fail(session != NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1813 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1814 stream = purple_media_get_stream(session->media, session->id, name); |
24963
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
1815 stream->local_candidates = g_list_append(stream->local_candidates, candidate); |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1816 } |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1817 #endif |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1818 |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1819 GList * |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1820 purple_media_get_session_names(PurpleMedia *media) |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1821 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1822 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1823 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
26126 | 1824 return media->priv->sessions != NULL ? |
1825 g_hash_table_get_keys(media->priv->sessions) : NULL; | |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1826 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1827 return NULL; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1828 #endif |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1829 } |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1830 |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1831 #ifdef USE_VV |
26332
89002b47a0df
Remove purple_media_set_src/sink from the public API.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26331
diff
changeset
|
1832 static void |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1833 purple_media_set_src(PurpleMedia *media, const gchar *sess_id, GstElement *src) |
23762
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
1834 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1835 PurpleMediaSession *session; |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1836 GstPad *sinkpad; |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1837 GstPad *srcpad; |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1838 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1839 g_return_if_fail(PURPLE_IS_MEDIA(media)); |
26389
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
1840 g_return_if_fail(GST_IS_ELEMENT(src)); |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1841 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1842 session = purple_media_get_session(media, sess_id); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1843 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1844 if (session == NULL) { |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1845 purple_debug_warning("media", "purple_media_set_src: trying" |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1846 " to set src on non-existent session\n"); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1847 return; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1848 } |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1849 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1850 if (session->src) |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1851 gst_object_unref(session->src); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1852 session->src = src; |
26306
5906409c4b69
Fix some GStreamer timing issues.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26305
diff
changeset
|
1853 gst_element_set_locked_state(session->src, TRUE); |
23762
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
1854 |
26115
9b0761b77218
Handle the session tee in the session rather than the src bin.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26114
diff
changeset
|
1855 session->tee = gst_element_factory_make("tee", NULL); |
9b0761b77218
Handle the session tee in the session rather than the src bin.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26114
diff
changeset
|
1856 gst_bin_add(GST_BIN(session->media->priv->confbin), session->tee); |
26381
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1857 |
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1858 /* This supposedly isn't necessary, but it silences some warnings */ |
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1859 if (GST_ELEMENT_PARENT(session->media->priv->confbin) |
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1860 == GST_ELEMENT_PARENT(session->src)) { |
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1861 GstPad *pad = gst_element_get_static_pad(session->tee, "sink"); |
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1862 GstPad *ghost = gst_ghost_pad_new(NULL, pad); |
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1863 gst_object_unref(pad); |
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1864 gst_pad_set_active(ghost, TRUE); |
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1865 gst_element_add_pad(session->media->priv->confbin, ghost); |
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1866 } |
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1867 |
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1868 gst_element_link(session->src, session->media->priv->confbin); |
26115
9b0761b77218
Handle the session tee in the session rather than the src bin.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26114
diff
changeset
|
1869 gst_element_set_state(session->tee, GST_STATE_PLAYING); |
9b0761b77218
Handle the session tee in the session rather than the src bin.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26114
diff
changeset
|
1870 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1871 g_object_get(session->session, "sink-pad", &sinkpad, NULL); |
26115
9b0761b77218
Handle the session tee in the session rather than the src bin.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26114
diff
changeset
|
1872 srcpad = gst_element_get_request_pad(session->tee, "src%d"); |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1873 purple_debug_info("media", "connecting pad: %s\n", |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1874 gst_pad_link(srcpad, sinkpad) == GST_PAD_LINK_OK |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1875 ? "success" : "failure"); |
26306
5906409c4b69
Fix some GStreamer timing issues.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26305
diff
changeset
|
1876 gst_element_set_locked_state(session->src, FALSE); |
26381
6bcf5ad967ea
Make sharing sources between media sessions work.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26372
diff
changeset
|
1877 gst_object_unref(session->src); |
23762
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
1878 } |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1879 #endif |
23762
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
1880 |
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
1881 GstElement * |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
1882 purple_media_get_src(PurpleMedia *media, const gchar *sess_id) |
23762
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
1883 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1884 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1885 PurpleMediaSession *session; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1886 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1887 session = purple_media_get_session(media, sess_id); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1888 return (session != NULL) ? session->src : NULL; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1889 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1890 return NULL; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1891 #endif |
23762
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
1892 } |
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
1893 |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
1894 #ifdef USE_VV |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1895 static PurpleMediaSession * |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1896 purple_media_session_from_fs_stream(PurpleMedia *media, FsStream *stream) |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1897 { |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1898 FsSession *fssession; |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1899 GList *values; |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1900 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1901 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1902 g_return_val_if_fail(FS_IS_STREAM(stream), NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
1903 |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1904 g_object_get(stream, "session", &fssession, NULL); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1905 |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1906 values = g_hash_table_get_values(media->priv->sessions); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1907 |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1908 for (; values; values = g_list_delete_link(values, values)) { |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1909 PurpleMediaSession *session = values->data; |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1910 |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1911 if (session->session == fssession) { |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1912 g_list_free(values); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1913 g_object_unref(fssession); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1914 return session; |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1915 } |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1916 } |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1917 |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1918 g_object_unref(fssession); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1919 return NULL; |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1920 } |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1921 |
23842
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
1922 static gboolean |
26114
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
1923 media_bus_call(GstBus *bus, GstMessage *msg, PurpleMedia *media) |
23842
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
1924 { |
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
1925 switch(GST_MESSAGE_TYPE(msg)) { |
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
1926 case GST_MESSAGE_ELEMENT: { |
26114
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
1927 if (!FS_IS_CONFERENCE(GST_MESSAGE_SRC(msg)) || |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
1928 !PURPLE_IS_MEDIA(media) || |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
1929 media->priv->conference != |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
1930 FS_CONFERENCE(GST_MESSAGE_SRC(msg))) |
730e760ca39f
Move pipeline creation into the media manager.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26109
diff
changeset
|
1931 break; |
26070
7be8c88d630c
Have all media sessions use a single pipeline.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26064
diff
changeset
|
1932 |
23842
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
1933 if (gst_structure_has_name(msg->structure, "farsight-error")) { |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1934 FsError error_no; |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1935 gst_structure_get_enum(msg->structure, "error-no", |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1936 FS_TYPE_ERROR, (gint*)&error_no); |
24932
5606408fff59
Silence FS_ERROR_UNKNOWN_CNAME error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24931
diff
changeset
|
1937 /* |
5606408fff59
Silence FS_ERROR_UNKNOWN_CNAME error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24931
diff
changeset
|
1938 * Unknown CName is only a problem for the |
5606408fff59
Silence FS_ERROR_UNKNOWN_CNAME error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24931
diff
changeset
|
1939 * multicast transmitter which isn't used. |
5606408fff59
Silence FS_ERROR_UNKNOWN_CNAME error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24931
diff
changeset
|
1940 */ |
5606408fff59
Silence FS_ERROR_UNKNOWN_CNAME error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24931
diff
changeset
|
1941 if (error_no != FS_ERROR_UNKNOWN_CNAME) |
5606408fff59
Silence FS_ERROR_UNKNOWN_CNAME error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24931
diff
changeset
|
1942 purple_debug_error("media", "farsight-error: %i: %s\n", error_no, |
5606408fff59
Silence FS_ERROR_UNKNOWN_CNAME error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24931
diff
changeset
|
1943 gst_structure_get_string(msg->structure, "error-msg")); |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1944 } else if (gst_structure_has_name(msg->structure, |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1945 "farsight-new-local-candidate")) { |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1946 FsStream *stream = g_value_get_object(gst_structure_get_value(msg->structure, "stream")); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1947 FsCandidate *local_candidate = g_value_get_boxed(gst_structure_get_value(msg->structure, "candidate")); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1948 PurpleMediaSession *session = purple_media_session_from_fs_stream(media, stream); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1949 purple_media_new_local_candidate_cb(stream, local_candidate, session); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1950 } else if (gst_structure_has_name(msg->structure, |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1951 "farsight-local-candidates-prepared")) { |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1952 FsStream *stream = g_value_get_object(gst_structure_get_value(msg->structure, "stream")); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1953 PurpleMediaSession *session = purple_media_session_from_fs_stream(media, stream); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1954 purple_media_candidates_prepared_cb(stream, session); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1955 } else if (gst_structure_has_name(msg->structure, |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1956 "farsight-new-active-candidate-pair")) { |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1957 FsStream *stream = g_value_get_object(gst_structure_get_value(msg->structure, "stream")); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1958 FsCandidate *local_candidate = g_value_get_boxed(gst_structure_get_value(msg->structure, "local-candidate")); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1959 FsCandidate *remote_candidate = g_value_get_boxed(gst_structure_get_value(msg->structure, "remote-candidate")); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1960 PurpleMediaSession *session = purple_media_session_from_fs_stream(media, stream); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1961 purple_media_candidate_pair_established_cb(stream, local_candidate, remote_candidate, session); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1962 } else if (gst_structure_has_name(msg->structure, |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1963 "farsight-recv-codecs-changed")) { |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1964 GList *codecs = g_value_get_boxed(gst_structure_get_value(msg->structure, "codecs")); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1965 FsCodec *codec = codecs->data; |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1966 purple_debug_info("media", "farsight-recv-codecs-changed: %s\n", codec->encoding_name); |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1967 |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1968 } else if (gst_structure_has_name(msg->structure, |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1969 "farsight-component-state-changed")) { |
26091
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1970 FsStreamState fsstate = g_value_get_enum(gst_structure_get_value(msg->structure, "state")); |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1971 guint component = g_value_get_uint(gst_structure_get_value(msg->structure, "component")); |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1972 const gchar *state; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1973 switch (fsstate) { |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1974 case FS_STREAM_STATE_FAILED: |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1975 state = "FAILED"; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1976 break; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1977 case FS_STREAM_STATE_DISCONNECTED: |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1978 state = "DISCONNECTED"; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1979 break; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1980 case FS_STREAM_STATE_GATHERING: |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1981 state = "GATHERING"; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1982 break; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1983 case FS_STREAM_STATE_CONNECTING: |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1984 state = "CONNECTING"; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1985 break; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1986 case FS_STREAM_STATE_CONNECTED: |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1987 state = "CONNECTED"; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1988 break; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1989 case FS_STREAM_STATE_READY: |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1990 state = "READY"; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1991 break; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1992 default: |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1993 state = "UNKNOWN"; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1994 break; |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1995 } |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1996 purple_debug_info("media", "farsight-component-state-changed: component: %u state: %s\n", component, state); |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1997 } else if (gst_structure_has_name(msg->structure, |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
1998 "farsight-send-codec-changed")) { |
26091
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
1999 FsCodec *codec = g_value_get_boxed(gst_structure_get_value(msg->structure, "codec")); |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
2000 gchar *codec_str = fs_codec_to_string(codec); |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
2001 purple_debug_info("media", "farsight-send-codec-changed: codec: %s\n", codec_str); |
58071d9f10b1
Add some debug messages for the remaining Farsight signals.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26090
diff
changeset
|
2002 g_free(codec_str); |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
2003 } else if (gst_structure_has_name(msg->structure, |
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
2004 "farsight-codecs-changed")) { |
24937
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2005 GList *sessions = g_hash_table_get_values(PURPLE_MEDIA(media)->priv->sessions); |
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2006 FsSession *fssession = g_value_get_object(gst_structure_get_value(msg->structure, "session")); |
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2007 for (; sessions; sessions = g_list_delete_link(sessions, sessions)) { |
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2008 PurpleMediaSession *session = sessions->data; |
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2009 if (session->session == fssession) { |
26316
bd9fa96c47dc
Remove the ready-new signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26314
diff
changeset
|
2010 gchar *session_id = g_strdup(session->id); |
26059
1ff5304f6e9d
Added codecs-changed signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26058
diff
changeset
|
2011 g_signal_emit(media, purple_media_signals[CODECS_CHANGED], 0, session_id); |
1ff5304f6e9d
Added codecs-changed signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26058
diff
changeset
|
2012 g_free(session_id); |
24937
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2013 g_list_free(sessions); |
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2014 break; |
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2015 } |
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2016 } |
23842
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
2017 } |
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
2018 break; |
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
2019 } |
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
2020 default: |
23914
d6bda7b63eac
Remove a bunch of extraneous GstBus messages from the debug output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23913
diff
changeset
|
2021 break; |
23842
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
2022 } |
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
2023 |
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
2024 return TRUE; |
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
2025 } |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2026 #endif |
23842
19e077a4cb62
Move the main voice and video pipeline into media.c and display more debug info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23837
diff
changeset
|
2027 |
26121
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
2028 PurpleConnection * |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
2029 purple_media_get_connection(PurpleMedia *media) |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
2030 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2031 #ifdef USE_VV |
26121
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
2032 PurpleConnection *pc; |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
2033 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
2034 g_object_get(G_OBJECT(media), "connection", &pc, NULL); |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
2035 return pc; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2036 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2037 return NULL; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2038 #endif |
26121
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
2039 } |
7738f530a967
Added the connection property back to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26118
diff
changeset
|
2040 |
26122
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2041 gpointer |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2042 purple_media_get_prpl_data(PurpleMedia *media) |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2043 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2044 #ifdef USE_VV |
26122
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2045 gpointer prpl_data; |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2046 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2047 g_object_get(G_OBJECT(media), "prpl-data", &prpl_data, NULL); |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2048 return prpl_data; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2049 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2050 return NULL; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2051 #endif |
26122
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2052 } |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2053 |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2054 void |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2055 purple_media_set_prpl_data(PurpleMedia *media, gpointer prpl_data) |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2056 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2057 #ifdef USE_VV |
26122
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2058 g_return_if_fail(PURPLE_IS_MEDIA(media)); |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2059 g_object_set(G_OBJECT(media), "prpl-data", prpl_data, NULL); |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2060 #endif |
26122
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2061 } |
e411aad4346b
Add a prpl-data property to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26121
diff
changeset
|
2062 |
23762
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
2063 void |
24982
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2064 purple_media_error(PurpleMedia *media, const gchar *error, ...) |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2065 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2066 #ifdef USE_VV |
24982
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2067 va_list args; |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2068 gchar *message; |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2069 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2070 g_return_if_fail(PURPLE_IS_MEDIA(media)); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2071 |
24982
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2072 va_start(args, error); |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2073 message = g_strdup_vprintf(error, args); |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2074 va_end(args); |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2075 |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2076 purple_debug_error("media", "%s\n", message); |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2077 g_signal_emit(media, purple_media_signals[ERROR], 0, message); |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2078 |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2079 g_free(message); |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2080 #endif |
24982
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2081 } |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2082 |
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2083 void |
26058
ac56e5707a72
Added purple_media_end and removed the purple_media_got_hangup.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26057
diff
changeset
|
2084 purple_media_end(PurpleMedia *media, |
ac56e5707a72
Added purple_media_end and removed the purple_media_got_hangup.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26057
diff
changeset
|
2085 const gchar *session_id, const gchar *participant) |
23762
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
2086 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2087 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2088 g_return_if_fail(PURPLE_IS_MEDIA(media)); |
26063
685c8f5f85c7
Separate PidginMedia from PidginConversation.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26061
diff
changeset
|
2089 if (session_id == NULL && participant == NULL) { |
26058
ac56e5707a72
Added purple_media_end and removed the purple_media_got_hangup.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26057
diff
changeset
|
2090 g_signal_emit(media, purple_media_signals[STATE_CHANGED], |
26329
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
2091 0, PURPLE_MEDIA_STATE_END, |
26058
ac56e5707a72
Added purple_media_end and removed the purple_media_got_hangup.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26057
diff
changeset
|
2092 NULL, NULL); |
26063
685c8f5f85c7
Separate PidginMedia from PidginConversation.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26061
diff
changeset
|
2093 g_object_unref(media); |
685c8f5f85c7
Separate PidginMedia from PidginConversation.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26061
diff
changeset
|
2094 } |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2095 #endif |
23762
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
2096 } |
70cdff43ec76
You can actually receive Google Talk voice calls with crappy UI now
Sean Egan <seanegan@gmail.com>
parents:
23760
diff
changeset
|
2097 |
26366
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2098 void |
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2099 purple_media_stream_info(PurpleMedia *media, PurpleMediaInfoType type, |
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2100 const gchar *session_id, const gchar *participant, |
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2101 gboolean local) |
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2102 { |
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2103 #ifdef USE_VV |
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2104 g_return_if_fail(PURPLE_IS_MEDIA(media)); |
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2105 |
26368
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2106 if (type == PURPLE_MEDIA_INFO_ACCEPT) { |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2107 GList *streams; |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2108 |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2109 g_return_if_fail(PURPLE_IS_MEDIA(media)); |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2110 |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2111 streams = purple_media_get_streams(media, |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2112 session_id, participant); |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2113 |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2114 for (; streams; streams = |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2115 g_list_delete_link(streams, streams)) { |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2116 PurpleMediaStream *stream = streams->data; |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2117 g_object_set(G_OBJECT(stream->stream), "direction", |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2118 purple_media_to_fs_stream_direction( |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2119 stream->session->type), NULL); |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2120 stream->accepted = TRUE; |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2121 } |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2122 |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2123 g_signal_emit(media, purple_media_signals[ACCEPTED], |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2124 0, NULL, NULL); |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2125 } else if (local == TRUE && (type == PURPLE_MEDIA_INFO_MUTE || |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2126 type == PURPLE_MEDIA_INFO_UNMUTE)) { |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2127 GList *sessions; |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2128 gboolean active = (type == PURPLE_MEDIA_INFO_MUTE); |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2129 |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2130 g_return_if_fail(PURPLE_IS_MEDIA(media)); |
26366
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2131 |
26368
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2132 if (session_id == NULL) |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2133 sessions = g_hash_table_get_values( |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2134 media->priv->sessions); |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2135 else |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2136 sessions = g_list_prepend(NULL, |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2137 purple_media_get_session( |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2138 media, session_id)); |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2139 |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2140 purple_debug_info("media", "Turning mute %s\n", |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2141 active ? "on" : "off"); |
26366
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2142 |
26368
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2143 for (; sessions; sessions = g_list_delete_link( |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2144 sessions, sessions)) { |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2145 PurpleMediaSession *session = sessions->data; |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2146 if (session->type & PURPLE_MEDIA_SEND_AUDIO) { |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2147 GstElement *volume = gst_bin_get_by_name( |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2148 GST_BIN(session->src), |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2149 "purpleaudioinputvolume"); |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2150 g_object_set(volume, "mute", active, NULL); |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2151 } |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2152 } |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2153 } |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2154 |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2155 g_signal_emit(media, purple_media_signals[STREAM_INFO], |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2156 0, type, session_id, participant, local); |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2157 |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2158 if (type == PURPLE_MEDIA_INFO_HANGUP || |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2159 type == PURPLE_MEDIA_INFO_REJECT) { |
aab0195f997d
Move functionality into purple_media_stream_info.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26367
diff
changeset
|
2160 purple_media_end(media, session_id, participant); |
26366
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2161 } |
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2162 #endif |
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2163 } |
4e1286e76f1f
Create purple_media_stream_info. Add local parameter to stream-info signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26360
diff
changeset
|
2164 |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2165 #ifdef USE_VV |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2166 static void |
23830
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2167 purple_media_new_local_candidate_cb(FsStream *stream, |
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2168 FsCandidate *local_candidate, |
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2169 PurpleMediaSession *session) |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2170 { |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2171 gchar *name; |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2172 FsParticipant *participant; |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
2173 PurpleMediaCandidate *candidate; |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2174 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2175 g_return_if_fail(FS_IS_STREAM(stream)); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2176 g_return_if_fail(session != NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2177 |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
2178 purple_debug_info("media", "got new local candidate: %s\n", local_candidate->foundation); |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2179 g_object_get(stream, "participant", &participant, NULL); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2180 g_object_get(participant, "cname", &name, NULL); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2181 g_object_unref(participant); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2182 |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2183 purple_media_insert_local_candidate(session, name, fs_candidate_copy(local_candidate)); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2184 |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
2185 candidate = purple_media_candidate_from_fs(local_candidate); |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2186 g_signal_emit(session->media, purple_media_signals[NEW_CANDIDATE], |
23877
c48f5c9600c3
Fixed a ton of memory leaks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23876
diff
changeset
|
2187 0, session->id, name, candidate); |
26406
2d332d327a0e
Hide and GObjectify PurpleMediaCandidate.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26404
diff
changeset
|
2188 g_object_unref(candidate); |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2189 |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2190 g_free(name); |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2191 } |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2192 |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2193 static void |
23830
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2194 purple_media_candidates_prepared_cb(FsStream *stream, PurpleMediaSession *session) |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2195 { |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2196 gchar *name; |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2197 FsParticipant *participant; |
24989
7caa7e2ce870
Implement a new ready signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24987
diff
changeset
|
2198 PurpleMediaStream *stream_data; |
7caa7e2ce870
Implement a new ready signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24987
diff
changeset
|
2199 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2200 g_return_if_fail(FS_IS_STREAM(stream)); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2201 g_return_if_fail(session != NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2202 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2203 g_object_get(stream, "participant", &participant, NULL); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2204 g_object_get(participant, "cname", &name, NULL); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2205 g_object_unref(participant); |
24989
7caa7e2ce870
Implement a new ready signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24987
diff
changeset
|
2206 |
7caa7e2ce870
Implement a new ready signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24987
diff
changeset
|
2207 stream_data = purple_media_get_stream(session->media, session->id, name); |
7caa7e2ce870
Implement a new ready signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24987
diff
changeset
|
2208 stream_data->candidates_prepared = TRUE; |
7caa7e2ce870
Implement a new ready signal.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24987
diff
changeset
|
2209 |
26298
b892b3cb9dbc
Add candidates-prepared signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26292
diff
changeset
|
2210 g_signal_emit(session->media, |
b892b3cb9dbc
Add candidates-prepared signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26292
diff
changeset
|
2211 purple_media_signals[CANDIDATES_PREPARED], |
b892b3cb9dbc
Add candidates-prepared signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26292
diff
changeset
|
2212 0, session->id, name); |
b892b3cb9dbc
Add candidates-prepared signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26292
diff
changeset
|
2213 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2214 g_free(name); |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2215 } |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2216 |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2217 /* callback called when a pair of transport candidates (local and remote) |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2218 * has been established */ |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2219 static void |
24963
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2220 purple_media_candidate_pair_established_cb(FsStream *fsstream, |
23830
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2221 FsCandidate *native_candidate, |
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2222 FsCandidate *remote_candidate, |
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2223 PurpleMediaSession *session) |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2224 { |
24963
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2225 gchar *name; |
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2226 FsParticipant *participant; |
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2227 PurpleMediaStream *stream; |
26099
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2228 GList *iter; |
23877
c48f5c9600c3
Fixed a ton of memory leaks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23876
diff
changeset
|
2229 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2230 g_return_if_fail(FS_IS_STREAM(fsstream)); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2231 g_return_if_fail(session != NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2232 |
24963
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2233 g_object_get(fsstream, "participant", &participant, NULL); |
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2234 g_object_get(participant, "cname", &name, NULL); |
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2235 g_object_unref(participant); |
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2236 |
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2237 stream = purple_media_get_stream(session->media, session->id, name); |
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2238 |
26099
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2239 iter = stream->active_local_candidates; |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2240 for(; iter; iter = g_list_next(iter)) { |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2241 FsCandidate *c = iter->data; |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2242 if (native_candidate->component_id == c->component_id) { |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2243 fs_candidate_destroy(c); |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2244 stream->active_local_candidates = |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2245 g_list_delete_link(iter, iter); |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2246 stream->active_local_candidates = g_list_prepend( |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2247 stream->active_local_candidates, |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2248 fs_candidate_copy(native_candidate)); |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2249 break; |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2250 } |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2251 } |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2252 if (iter == NULL) |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2253 stream->active_local_candidates = g_list_prepend( |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2254 stream->active_local_candidates, |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2255 fs_candidate_copy(native_candidate)); |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2256 |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2257 iter = stream->active_remote_candidates; |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2258 for(; iter; iter = g_list_next(iter)) { |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2259 FsCandidate *c = iter->data; |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2260 if (native_candidate->component_id == c->component_id) { |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2261 fs_candidate_destroy(c); |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2262 stream->active_remote_candidates = |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2263 g_list_delete_link(iter, iter); |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2264 stream->active_remote_candidates = g_list_prepend( |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2265 stream->active_remote_candidates, |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2266 fs_candidate_copy(remote_candidate)); |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2267 break; |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2268 } |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2269 } |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2270 if (iter == NULL) |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2271 stream->active_remote_candidates = g_list_prepend( |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2272 stream->active_remote_candidates, |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2273 fs_candidate_copy(remote_candidate)); |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2274 |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2275 purple_debug_info("media", "candidate pair established\n"); |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2276 } |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2277 |
26026
71eee5468b9d
Fix some crashes from printing debug messages on a separate thread.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26024
diff
changeset
|
2278 static gboolean |
71eee5468b9d
Fix some crashes from printing debug messages on a separate thread.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26024
diff
changeset
|
2279 purple_media_connected_cb(PurpleMediaStream *stream) |
71eee5468b9d
Fix some crashes from printing debug messages on a separate thread.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26024
diff
changeset
|
2280 { |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2281 g_return_val_if_fail(stream != NULL, FALSE); |
26117
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2282 |
26118
0a6f1f796d21
Use purple_timeout_* instead of g_timeout_*.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26117
diff
changeset
|
2283 stream->connected_cb_id = 0; |
0a6f1f796d21
Use purple_timeout_* instead of g_timeout_*.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26117
diff
changeset
|
2284 |
26117
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2285 purple_media_manager_create_output_window( |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2286 stream->session->media->priv->manager, |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2287 stream->session->media, |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2288 stream->session->id, stream->participant); |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2289 |
26026
71eee5468b9d
Fix some crashes from printing debug messages on a separate thread.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26024
diff
changeset
|
2290 g_signal_emit(stream->session->media, |
71eee5468b9d
Fix some crashes from printing debug messages on a separate thread.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26024
diff
changeset
|
2291 purple_media_signals[STATE_CHANGED], |
26329
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
2292 0, PURPLE_MEDIA_STATE_CONNECTED, |
26026
71eee5468b9d
Fix some crashes from printing debug messages on a separate thread.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26024
diff
changeset
|
2293 stream->session->id, stream->participant); |
71eee5468b9d
Fix some crashes from printing debug messages on a separate thread.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26024
diff
changeset
|
2294 return FALSE; |
71eee5468b9d
Fix some crashes from printing debug messages on a separate thread.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26024
diff
changeset
|
2295 } |
71eee5468b9d
Fix some crashes from printing debug messages on a separate thread.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26024
diff
changeset
|
2296 |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2297 static void |
24976
01df0829f054
Move sink from PurpleMediaSession to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24974
diff
changeset
|
2298 purple_media_src_pad_added_cb(FsStream *fsstream, GstPad *srcpad, |
01df0829f054
Move sink from PurpleMediaSession to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24974
diff
changeset
|
2299 FsCodec *codec, PurpleMediaStream *stream) |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2300 { |
26109
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2301 PurpleMediaPrivate *priv; |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2302 GstPad *sinkpad; |
24976
01df0829f054
Move sink from PurpleMediaSession to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24974
diff
changeset
|
2303 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2304 g_return_if_fail(FS_IS_STREAM(fsstream)); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2305 g_return_if_fail(stream != NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2306 |
26109
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2307 priv = stream->session->media->priv; |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2308 |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2309 if (stream->src == NULL) { |
26134 | 2310 GstElement *sink = NULL; |
26109
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2311 |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2312 if (codec->media_type == FS_MEDIA_TYPE_AUDIO) { |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2313 /* |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2314 * Should this instead be: |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2315 * audioconvert ! audioresample ! liveadder ! |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2316 * audioresample ! audioconvert ! realsink |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2317 */ |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2318 stream->src = gst_element_factory_make( |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2319 "liveadder", NULL); |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2320 sink = purple_media_manager_get_element(priv->manager, |
26392
9c671fc1b351
Give more information to element creation functions.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26389
diff
changeset
|
2321 PURPLE_MEDIA_RECV_AUDIO, |
9c671fc1b351
Give more information to element creation functions.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26389
diff
changeset
|
2322 stream->session->media, |
9c671fc1b351
Give more information to element creation functions.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26389
diff
changeset
|
2323 stream->session->id, |
9c671fc1b351
Give more information to element creation functions.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26389
diff
changeset
|
2324 stream->participant); |
26109
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2325 } else if (codec->media_type == FS_MEDIA_TYPE_VIDEO) { |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2326 stream->src = gst_element_factory_make( |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2327 "fsfunnel", NULL); |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2328 sink = gst_element_factory_make( |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2329 "fakesink", NULL); |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2330 g_object_set(G_OBJECT(sink), "async", FALSE, NULL); |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2331 } |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2332 stream->tee = gst_element_factory_make("tee", NULL); |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2333 gst_bin_add_many(GST_BIN(priv->confbin), |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2334 stream->src, stream->tee, sink, NULL); |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2335 gst_element_sync_state_with_parent(sink); |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2336 gst_element_sync_state_with_parent(stream->tee); |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2337 gst_element_sync_state_with_parent(stream->src); |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2338 gst_element_link_many(stream->src, stream->tee, sink, NULL); |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2339 } |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2340 |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2341 sinkpad = gst_element_get_request_pad(stream->src, "sink%d"); |
26026
71eee5468b9d
Fix some crashes from printing debug messages on a separate thread.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26024
diff
changeset
|
2342 gst_pad_link(srcpad, sinkpad); |
26109
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2343 gst_object_unref(sinkpad); |
fcfb7571515c
Have all src_pads for a stream be funneled into the same stream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26107
diff
changeset
|
2344 |
26118
0a6f1f796d21
Use purple_timeout_* instead of g_timeout_*.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26117
diff
changeset
|
2345 stream->connected_cb_id = purple_timeout_add(0, |
0a6f1f796d21
Use purple_timeout_* instead of g_timeout_*.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26117
diff
changeset
|
2346 (GSourceFunc)purple_media_connected_cb, stream); |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2347 } |
26385
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2348 #endif /* USE_VV */ |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2349 |
26385
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2350 gboolean |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2351 purple_media_add_stream(PurpleMedia *media, const gchar *sess_id, |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2352 const gchar *who, PurpleMediaSessionType type, |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2353 gboolean initiator, const gchar *transmitter, |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2354 guint num_params, GParameter *params) |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2355 { |
26385
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2356 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2357 PurpleMediaSession *session; |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2358 FsParticipant *participant = NULL; |
24963
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2359 PurpleMediaStream *stream = NULL; |
26385
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2360 FsMediaType media_type = purple_media_to_fs_media_type(type); |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2361 FsStreamDirection type_direction = |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2362 purple_media_to_fs_stream_direction(type); |
26305
189ac8d13103
Fix assertion stating FsRawUdpTransmitter doesn't have a relay-info
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26298
diff
changeset
|
2363 gboolean is_nice = !strcmp(transmitter, "nice"); |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2364 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2365 g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2366 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2367 session = purple_media_get_session(media, sess_id); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2368 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2369 if (!session) { |
23801
43b3b9ff6028
Added better Farsight error handling. Fixes several crash bugs related
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23799
diff
changeset
|
2370 GError *err = NULL; |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
2371 GList *codec_conf = NULL; |
24948
78c3e991782a
Use a key file for Farsight 2 codec configuration.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24938
diff
changeset
|
2372 gchar *filename = NULL; |
26385
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2373 PurpleMediaSessionType session_type; |
26389
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2374 GstElement *src = NULL; |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2375 |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2376 session = g_new0(PurpleMediaSession, 1); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2377 |
26385
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2378 session->session = fs_conference_new_session( |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2379 media->priv->conference, media_type, &err); |
23801
43b3b9ff6028
Added better Farsight error handling. Fixes several crash bugs related
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23799
diff
changeset
|
2380 |
43b3b9ff6028
Added better Farsight error handling. Fixes several crash bugs related
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23799
diff
changeset
|
2381 if (err != NULL) { |
24982
0ad1b8e950d7
Add purple_media_error.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24981
diff
changeset
|
2382 purple_media_error(media, "Error creating session: %s\n", err->message); |
23801
43b3b9ff6028
Added better Farsight error handling. Fixes several crash bugs related
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23799
diff
changeset
|
2383 g_error_free(err); |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2384 g_free(session); |
23801
43b3b9ff6028
Added better Farsight error handling. Fixes several crash bugs related
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23799
diff
changeset
|
2385 return FALSE; |
43b3b9ff6028
Added better Farsight error handling. Fixes several crash bugs related
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23799
diff
changeset
|
2386 } |
43b3b9ff6028
Added better Farsight error handling. Fixes several crash bugs related
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23799
diff
changeset
|
2387 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2388 /* XXX: SPEEX has a latency of 5 or 6 seconds for me */ |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2389 #if 0 |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2390 /* SPEEX is added through the configuration */ |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2391 codec_conf = g_list_prepend(codec_conf, fs_codec_new(FS_CODEC_ID_ANY, |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2392 "SPEEX", FS_MEDIA_TYPE_AUDIO, 8000)); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2393 codec_conf = g_list_prepend(codec_conf, fs_codec_new(FS_CODEC_ID_ANY, |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2394 "SPEEX", FS_MEDIA_TYPE_AUDIO, 16000)); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2395 #endif |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2396 |
24948
78c3e991782a
Use a key file for Farsight 2 codec configuration.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24938
diff
changeset
|
2397 filename = g_build_filename(purple_user_dir(), "fs-codec.conf", NULL); |
78c3e991782a
Use a key file for Farsight 2 codec configuration.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24938
diff
changeset
|
2398 codec_conf = fs_codec_list_from_keyfile(filename, &err); |
78c3e991782a
Use a key file for Farsight 2 codec configuration.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24938
diff
changeset
|
2399 g_free(filename); |
78c3e991782a
Use a key file for Farsight 2 codec configuration.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24938
diff
changeset
|
2400 |
78c3e991782a
Use a key file for Farsight 2 codec configuration.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24938
diff
changeset
|
2401 if (err != NULL) { |
26090
8a402c91fe6f
Don't output an error if fs-codec.conf doesn't exist.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26084
diff
changeset
|
2402 if (err->code == 4) |
8a402c91fe6f
Don't output an error if fs-codec.conf doesn't exist.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26084
diff
changeset
|
2403 purple_debug_info("media", "Couldn't read " |
8a402c91fe6f
Don't output an error if fs-codec.conf doesn't exist.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26084
diff
changeset
|
2404 "fs-codec.conf: %s\n", |
8a402c91fe6f
Don't output an error if fs-codec.conf doesn't exist.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26084
diff
changeset
|
2405 err->message); |
8a402c91fe6f
Don't output an error if fs-codec.conf doesn't exist.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26084
diff
changeset
|
2406 else |
8a402c91fe6f
Don't output an error if fs-codec.conf doesn't exist.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26084
diff
changeset
|
2407 purple_debug_error("media", "Error reading " |
8a402c91fe6f
Don't output an error if fs-codec.conf doesn't exist.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26084
diff
changeset
|
2408 "fs-codec.conf: %s\n", |
8a402c91fe6f
Don't output an error if fs-codec.conf doesn't exist.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26084
diff
changeset
|
2409 err->message); |
24948
78c3e991782a
Use a key file for Farsight 2 codec configuration.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24938
diff
changeset
|
2410 g_error_free(err); |
78c3e991782a
Use a key file for Farsight 2 codec configuration.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24938
diff
changeset
|
2411 } |
78c3e991782a
Use a key file for Farsight 2 codec configuration.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24938
diff
changeset
|
2412 |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
2413 fs_session_set_codec_preferences(session->session, codec_conf, NULL); |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2414 |
24980
bcbc62bb2496
Set no-rtcp-timeout to 0 only for nice and rawudp transmitters.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24979
diff
changeset
|
2415 /* |
bcbc62bb2496
Set no-rtcp-timeout to 0 only for nice and rawudp transmitters.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24979
diff
changeset
|
2416 * Removes a 5-7 second delay before |
bcbc62bb2496
Set no-rtcp-timeout to 0 only for nice and rawudp transmitters.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24979
diff
changeset
|
2417 * receiving the src-pad-added signal. |
bcbc62bb2496
Set no-rtcp-timeout to 0 only for nice and rawudp transmitters.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24979
diff
changeset
|
2418 * Only works for non-multicast FsRtpSessions. |
bcbc62bb2496
Set no-rtcp-timeout to 0 only for nice and rawudp transmitters.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24979
diff
changeset
|
2419 */ |
26305
189ac8d13103
Fix assertion stating FsRawUdpTransmitter doesn't have a relay-info
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26298
diff
changeset
|
2420 if (is_nice || !strcmp(transmitter, "rawudp")) |
24980
bcbc62bb2496
Set no-rtcp-timeout to 0 only for nice and rawudp transmitters.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24979
diff
changeset
|
2421 g_object_set(G_OBJECT(session->session), |
bcbc62bb2496
Set no-rtcp-timeout to 0 only for nice and rawudp transmitters.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24979
diff
changeset
|
2422 "no-rtcp-timeout", 0, NULL); |
23826
157b30b530f4
Temporary fix to remove a 5-7 second delay when initiating a media session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23824
diff
changeset
|
2423 |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2424 fs_codec_list_destroy(codec_conf); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2425 |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2426 session->id = g_strdup(sess_id); |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2427 session->media = media; |
26385
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2428 session->type = type; |
26384
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2429 session->initiator = initiator; |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2430 |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2431 purple_media_add_session(media, session); |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
2432 g_signal_emit(media, purple_media_signals[STATE_CHANGED], |
26329
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
2433 0, PURPLE_MEDIA_STATE_NEW, |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
2434 session->id, NULL); |
26064
4f013819e4e3
Create the media srcs inside PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26063
diff
changeset
|
2435 |
26385
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2436 session_type = purple_media_from_fs(media_type, |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2437 FS_DIRECTION_SEND); |
26389
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2438 src = purple_media_manager_get_element( |
26392
9c671fc1b351
Give more information to element creation functions.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26389
diff
changeset
|
2439 media->priv->manager, session_type, |
9c671fc1b351
Give more information to element creation functions.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26389
diff
changeset
|
2440 media, session->id, who); |
26389
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2441 if (!GST_IS_ELEMENT(src)) { |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2442 purple_debug_error("media", |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2443 "Error creating src for session %s\n", |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2444 session->id); |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2445 purple_media_end(media, session->id, NULL); |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2446 return FALSE; |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2447 } |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2448 |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2449 purple_media_set_src(media, session->id, src); |
26064
4f013819e4e3
Create the media srcs inside PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26063
diff
changeset
|
2450 gst_element_set_state(session->src, GST_STATE_PLAYING); |
26117
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2451 |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2452 purple_media_manager_create_output_window( |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2453 media->priv->manager, |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2454 session->media, |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2455 session->id, NULL); |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2456 } |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2457 |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2458 if (!(participant = purple_media_add_participant(media, who))) { |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2459 purple_media_remove_session(media, session); |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2460 g_free(session); |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2461 return FALSE; |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
2462 } else { |
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
2463 g_signal_emit(media, purple_media_signals[STATE_CHANGED], |
26329
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
2464 0, PURPLE_MEDIA_STATE_NEW, |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
2465 NULL, who); |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2466 } |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2467 |
24963
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2468 stream = purple_media_get_stream(media, sess_id, who); |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2469 |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2470 if (!stream) { |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2471 GError *err = NULL; |
24963
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2472 FsStream *fsstream = NULL; |
26050
ae3d25465d0f
Run an asynchronous DNS lookup for the STUN server IP (to set as a property
Marcus Lundblad <ml@update.uu.se>
parents:
26047
diff
changeset
|
2473 const gchar *stun_ip = purple_network_get_stun_ip(); |
26055
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2474 const gchar *turn_ip = purple_network_get_turn_ip(); |
26056
4f0aec6d4ad7
Removed some extra tabs on blank lines
Marcus Lundblad <ml@update.uu.se>
parents:
26055
diff
changeset
|
2475 |
26055
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2476 if (stun_ip || turn_ip) { |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2477 guint new_num_params = |
26305
189ac8d13103
Fix assertion stating FsRawUdpTransmitter doesn't have a relay-info
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26298
diff
changeset
|
2478 (stun_ip && is_nice) && turn_ip ? |
189ac8d13103
Fix assertion stating FsRawUdpTransmitter doesn't have a relay-info
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26298
diff
changeset
|
2479 num_params + 2 : num_params + 1; |
26055
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2480 guint next_param_index = num_params; |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2481 GParameter *param = g_new0(GParameter, new_num_params); |
24933
6ab96d5d8ac6
Add params to purple_media_add_stream to allow for different libNice
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24932
diff
changeset
|
2482 memcpy(param, params, sizeof(GParameter) * num_params); |
23857
001064185ad4
Use the purple STUN server preference with the rawudp Farsight transmitter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23856
diff
changeset
|
2483 |
26055
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2484 if (stun_ip) { |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2485 purple_debug_info("media", |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2486 "setting property stun-ip on new stream: %s\n", stun_ip); |
26056
4f0aec6d4ad7
Removed some extra tabs on blank lines
Marcus Lundblad <ml@update.uu.se>
parents:
26055
diff
changeset
|
2487 |
26055
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2488 param[next_param_index].name = "stun-ip"; |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2489 g_value_init(¶m[next_param_index].value, G_TYPE_STRING); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2490 g_value_set_string(¶m[next_param_index].value, stun_ip); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2491 next_param_index++; |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2492 } |
26056
4f0aec6d4ad7
Removed some extra tabs on blank lines
Marcus Lundblad <ml@update.uu.se>
parents:
26055
diff
changeset
|
2493 |
26305
189ac8d13103
Fix assertion stating FsRawUdpTransmitter doesn't have a relay-info
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26298
diff
changeset
|
2494 if (turn_ip && is_nice) { |
26055
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2495 GValueArray *relay_info = g_value_array_new(0); |
26057
128a3175668e
Removed a couple of warnings
Marcus Lundblad <ml@update.uu.se>
parents:
26056
diff
changeset
|
2496 GValue value; |
26055
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2497 gint turn_port = |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2498 purple_prefs_get_int("/purple/network/turn_port"); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2499 const gchar *username = |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2500 purple_prefs_get_string("/purple/network/turn_username"); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2501 const gchar *password = |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2502 purple_prefs_get_string("/purple/network/turn_password"); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2503 GstStructure *turn_setup = gst_structure_new("relay-info", |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2504 "ip", G_TYPE_STRING, turn_ip, |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2505 "port", G_TYPE_UINT, turn_port, |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2506 "username", G_TYPE_STRING, username, |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2507 "password", G_TYPE_STRING, password, |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2508 NULL); |
23857
001064185ad4
Use the purple STUN server preference with the rawudp Farsight transmitter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23856
diff
changeset
|
2509 |
26055
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2510 if (turn_setup) { |
26057
128a3175668e
Removed a couple of warnings
Marcus Lundblad <ml@update.uu.se>
parents:
26056
diff
changeset
|
2511 memset(&value, 0, sizeof(GValue)); |
26055
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2512 g_value_init(&value, GST_TYPE_STRUCTURE); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2513 gst_value_set_structure(&value, turn_setup); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2514 relay_info = g_value_array_append(relay_info, &value); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2515 gst_structure_free(turn_setup); |
26056
4f0aec6d4ad7
Removed some extra tabs on blank lines
Marcus Lundblad <ml@update.uu.se>
parents:
26055
diff
changeset
|
2516 |
26055
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2517 purple_debug_info("media", |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2518 "setting property relay-info on new stream\n"); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2519 param[next_param_index].name = "relay-info"; |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2520 g_value_init(¶m[next_param_index].value, |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2521 G_TYPE_VALUE_ARRAY); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2522 g_value_set_boxed(¶m[next_param_index].value, |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2523 relay_info); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2524 g_value_array_free(relay_info); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2525 } else { |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2526 purple_debug_error("media", "Error relay info"); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2527 g_object_unref(participant); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2528 g_hash_table_remove(media->priv->participants, who); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2529 purple_media_remove_session(media, session); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2530 g_free(session); |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2531 return FALSE; |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2532 } |
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2533 } |
26056
4f0aec6d4ad7
Removed some extra tabs on blank lines
Marcus Lundblad <ml@update.uu.se>
parents:
26055
diff
changeset
|
2534 |
24963
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2535 fsstream = fs_session_new_stream(session->session, |
26051
b68a88fb7458
Use the stream's direction to wait to send media.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26050
diff
changeset
|
2536 participant, type_direction & |
b68a88fb7458
Use the stream's direction to wait to send media.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26050
diff
changeset
|
2537 FS_DIRECTION_RECV, transmitter, |
26055
c56e8826fed0
Added support to generate relayed candidates (TURN).
Marcus Lundblad <ml@update.uu.se>
parents:
26053
diff
changeset
|
2538 new_num_params, param, &err); |
24933
6ab96d5d8ac6
Add params to purple_media_add_stream to allow for different libNice
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24932
diff
changeset
|
2539 g_free(param); |
23857
001064185ad4
Use the purple STUN server preference with the rawudp Farsight transmitter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23856
diff
changeset
|
2540 } else { |
24963
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2541 fsstream = fs_session_new_stream(session->session, |
26051
b68a88fb7458
Use the stream's direction to wait to send media.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26050
diff
changeset
|
2542 participant, type_direction & |
b68a88fb7458
Use the stream's direction to wait to send media.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26050
diff
changeset
|
2543 FS_DIRECTION_RECV, transmitter, |
b68a88fb7458
Use the stream's direction to wait to send media.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26050
diff
changeset
|
2544 num_params, params, &err); |
23857
001064185ad4
Use the purple STUN server preference with the rawudp Farsight transmitter.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23856
diff
changeset
|
2545 } |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2546 |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2547 if (err) { |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2548 purple_debug_error("media", "Error creating stream: %s\n", |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2549 err->message); |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2550 g_error_free(err); |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2551 g_object_unref(participant); |
24929
5c30047f960e
Properly free PurpleMedia when there's an error creating an FsStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23919
diff
changeset
|
2552 g_hash_table_remove(media->priv->participants, who); |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2553 purple_media_remove_session(media, session); |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2554 g_free(session); |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2555 return FALSE; |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2556 } |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2557 |
24976
01df0829f054
Move sink from PurpleMediaSession to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24974
diff
changeset
|
2558 stream = purple_media_insert_stream(session, who, fsstream); |
26384
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2559 stream->initiator = initiator; |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
2560 |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2561 /* callback for source pad added (new stream source ready) */ |
24963
33fa549f2399
Move variables to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24962
diff
changeset
|
2562 g_signal_connect(G_OBJECT(fsstream), |
24976
01df0829f054
Move sink from PurpleMediaSession to PurpleMediaStream.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24974
diff
changeset
|
2563 "src-pad-added", G_CALLBACK(purple_media_src_pad_added_cb), stream); |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
2564 |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
2565 g_signal_emit(media, purple_media_signals[STATE_CHANGED], |
26329
86bc2d34f689
Rename state-changed enum and values.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26327
diff
changeset
|
2566 0, PURPLE_MEDIA_STATE_NEW, |
24993
7d2e06b29f88
Add state-changed signal to PurpleMedia.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24991
diff
changeset
|
2567 session->id, who); |
26385
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2568 } else { |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2569 if (purple_media_to_fs_stream_direction(stream->session->type) |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2570 != type_direction) { |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2571 /* change direction */ |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2572 g_object_set(stream->stream, "direction", |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2573 type_direction, NULL); |
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2574 } |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2575 } |
23801
43b3b9ff6028
Added better Farsight error handling. Fixes several crash bugs related
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23799
diff
changeset
|
2576 |
43b3b9ff6028
Added better Farsight error handling. Fixes several crash bugs related
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23799
diff
changeset
|
2577 return TRUE; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2578 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2579 return FALSE; |
26385
8bc4b9094913
Get rid of the purple_media_add_stream wrapper as it isn't useful.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26384
diff
changeset
|
2580 #endif /* USE_VV */ |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2581 } |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2582 |
26393
462e5c27dbd7
Use purple_media_manager_get_pipeline instead.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26392
diff
changeset
|
2583 PurpleMediaManager * |
462e5c27dbd7
Use purple_media_manager_get_pipeline instead.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26392
diff
changeset
|
2584 purple_media_get_manager(PurpleMedia *media) |
462e5c27dbd7
Use purple_media_manager_get_pipeline instead.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26392
diff
changeset
|
2585 { |
462e5c27dbd7
Use purple_media_manager_get_pipeline instead.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26392
diff
changeset
|
2586 PurpleMediaManager *ret; |
462e5c27dbd7
Use purple_media_manager_get_pipeline instead.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26392
diff
changeset
|
2587 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
462e5c27dbd7
Use purple_media_manager_get_pipeline instead.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26392
diff
changeset
|
2588 g_object_get(media, "manager", &ret, NULL); |
462e5c27dbd7
Use purple_media_manager_get_pipeline instead.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26392
diff
changeset
|
2589 return ret; |
462e5c27dbd7
Use purple_media_manager_get_pipeline instead.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26392
diff
changeset
|
2590 } |
462e5c27dbd7
Use purple_media_manager_get_pipeline instead.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26392
diff
changeset
|
2591 |
23869
551a462b346a
Changed PurpleMediaStreamType to PurpleMediaSessionType.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23865
diff
changeset
|
2592 PurpleMediaSessionType |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2593 purple_media_get_session_type(PurpleMedia *media, const gchar *sess_id) |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2594 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2595 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2596 PurpleMediaSession *session; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2597 g_return_val_if_fail(PURPLE_IS_MEDIA(media), PURPLE_MEDIA_NONE); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2598 session = purple_media_get_session(media, sess_id); |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2599 return session->type; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2600 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2601 return PURPLE_MEDIA_NONE; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2602 #endif |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2603 } |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
2604 /* XXX: Should wait until codecs-ready is TRUE before using this function */ |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2605 GList * |
24960
a5f1804fcb4b
Combine get_*_codecs functions to mirror Farsight 2.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24951
diff
changeset
|
2606 purple_media_get_codecs(PurpleMedia *media, const gchar *sess_id) |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2607 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2608 #ifdef USE_VV |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
2609 GList *fscodecs; |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2610 GList *codecs; |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2611 PurpleMediaSession *session; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2612 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2613 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2614 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2615 session = purple_media_get_session(media, sess_id); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2616 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2617 if (session == NULL) |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2618 return NULL; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2619 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2620 g_object_get(G_OBJECT(session->session), |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
2621 "codecs", &fscodecs, NULL); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
2622 codecs = purple_media_codec_list_from_fs(fscodecs); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
2623 fs_codec_list_destroy(fscodecs); |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2624 return codecs; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2625 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2626 return NULL; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2627 #endif |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2628 } |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2629 |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2630 GList * |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2631 purple_media_get_local_candidates(PurpleMedia *media, const gchar *sess_id, const gchar *name) |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2632 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2633 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2634 PurpleMediaStream *stream; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2635 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2636 stream = purple_media_get_stream(media, sess_id, name); |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
2637 return purple_media_candidate_list_from_fs(stream->local_candidates); |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2638 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2639 return NULL; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2640 #endif |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2641 } |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2642 |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2643 void |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2644 purple_media_add_remote_candidates(PurpleMedia *media, const gchar *sess_id, |
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2645 const gchar *name, GList *remote_candidates) |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2646 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2647 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2648 PurpleMediaStream *stream; |
26052
997bbae7b80f
Set remote candidates as soon as they are received.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26051
diff
changeset
|
2649 GError *err = NULL; |
997bbae7b80f
Set remote candidates as soon as they are received.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26051
diff
changeset
|
2650 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2651 g_return_if_fail(PURPLE_IS_MEDIA(media)); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2652 stream = purple_media_get_stream(media, sess_id, name); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2653 |
26389
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2654 if (stream == NULL) { |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2655 purple_debug_error("media", |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2656 "purple_media_add_remote_candidates: " |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2657 "couldn't find stream %s %s.\n", |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2658 sess_id, name); |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2659 return; |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2660 } |
5a7fa2093d1e
Make Finch not crash if someone requests a session with video with you.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26388
diff
changeset
|
2661 |
25000
2cf44cc855fe
Add candidates instead of replacing them.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24995
diff
changeset
|
2662 stream->remote_candidates = g_list_concat(stream->remote_candidates, |
26021
f7cf50180e1d
Duplicate FsCandidate to remove it from the public interface.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26020
diff
changeset
|
2663 purple_media_candidate_list_to_fs(remote_candidates)); |
23915
9632027d3b50
Update to Farsight2 0.0.3.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23914
diff
changeset
|
2664 |
26052
997bbae7b80f
Set remote candidates as soon as they are received.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26051
diff
changeset
|
2665 fs_stream_set_remote_candidates(stream->stream, |
997bbae7b80f
Set remote candidates as soon as they are received.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26051
diff
changeset
|
2666 stream->remote_candidates, &err); |
997bbae7b80f
Set remote candidates as soon as they are received.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26051
diff
changeset
|
2667 |
997bbae7b80f
Set remote candidates as soon as they are received.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26051
diff
changeset
|
2668 if (err) { |
997bbae7b80f
Set remote candidates as soon as they are received.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26051
diff
changeset
|
2669 purple_debug_error("media", "Error adding remote" |
997bbae7b80f
Set remote candidates as soon as they are received.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26051
diff
changeset
|
2670 " candidates: %s\n", err->message); |
997bbae7b80f
Set remote candidates as soon as they are received.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26051
diff
changeset
|
2671 g_error_free(err); |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2672 } |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2673 #endif |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2674 } |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2675 |
26386
6d9f4ca72828
Comment out purple_media_get_active_{local,remote}_candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26385
diff
changeset
|
2676 #if 0 |
6d9f4ca72828
Comment out purple_media_get_active_{local,remote}_candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26385
diff
changeset
|
2677 /* |
6d9f4ca72828
Comment out purple_media_get_active_{local,remote}_candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26385
diff
changeset
|
2678 * These two functions aren't being used and I'd rather not lock in the API |
6d9f4ca72828
Comment out purple_media_get_active_{local,remote}_candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26385
diff
changeset
|
2679 * until they are needed. If they ever are. |
6d9f4ca72828
Comment out purple_media_get_active_{local,remote}_candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26385
diff
changeset
|
2680 */ |
6d9f4ca72828
Comment out purple_media_get_active_{local,remote}_candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26385
diff
changeset
|
2681 |
26099
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2682 GList * |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2683 purple_media_get_active_local_candidates(PurpleMedia *media, |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2684 const gchar *sess_id, const gchar *name) |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2685 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2686 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2687 PurpleMediaStream *stream; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2688 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2689 stream = purple_media_get_stream(media, sess_id, name); |
26099
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2690 return purple_media_candidate_list_from_fs( |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2691 stream->active_local_candidates); |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2692 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2693 return NULL; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2694 #endif |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2695 } |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2696 |
26099
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2697 GList * |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2698 purple_media_get_active_remote_candidates(PurpleMedia *media, |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2699 const gchar *sess_id, const gchar *name) |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2700 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2701 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2702 PurpleMediaStream *stream; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2703 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2704 stream = purple_media_get_stream(media, sess_id, name); |
26099
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2705 return purple_media_candidate_list_from_fs( |
dcff28a0415c
Handle having multiple active candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26091
diff
changeset
|
2706 stream->active_remote_candidates); |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2707 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2708 return NULL; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2709 #endif |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2710 } |
26386
6d9f4ca72828
Comment out purple_media_get_active_{local,remote}_candidates.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26385
diff
changeset
|
2711 #endif |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2712 |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2713 gboolean |
23821
12a16471f94e
Refactored PurpleMedia to make creating audio or video sessions virtually identical. Audio, video, and audio/video sessions now work. Also added videotestsrc to the video plugin preference.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23811
diff
changeset
|
2714 purple_media_set_remote_codecs(PurpleMedia *media, const gchar *sess_id, const gchar *name, GList *codecs) |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2715 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2716 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2717 PurpleMediaStream *stream; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2718 FsStream *fsstream; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2719 GList *fscodecs; |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2720 GError *err = NULL; |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2721 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2722 g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2723 stream = purple_media_get_stream(media, sess_id, name); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2724 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2725 if (stream == NULL) |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2726 return FALSE; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2727 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2728 fsstream = stream->stream; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2729 fscodecs = purple_media_codec_list_to_fs(codecs); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2730 fs_stream_set_remote_codecs(fsstream, fscodecs, &err); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
2731 fs_codec_list_destroy(fscodecs); |
23845
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2732 |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2733 if (err) { |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2734 purple_debug_error("media", "Error setting remote codecs: %s\n", |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2735 err->message); |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2736 g_error_free(err); |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2737 return FALSE; |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2738 } |
13936e4405b7
Added better Farsight error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23844
diff
changeset
|
2739 return TRUE; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2740 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2741 return FALSE; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2742 #endif |
23797
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2743 } |
e1c8ec1259de
Updates voice and video to use Farsight 2, gets XMPP voice conferences
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23793
diff
changeset
|
2744 |
23830
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2745 gboolean |
26310
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2746 purple_media_candidates_prepared(PurpleMedia *media, |
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2747 const gchar *session_id, const gchar *participant) |
23830
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2748 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2749 #ifdef USE_VV |
26310
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2750 GList *streams; |
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2751 gboolean prepared = TRUE; |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2752 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2753 g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2754 |
26310
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2755 streams = purple_media_get_streams(media, session_id, participant); |
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2756 |
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2757 for (; streams; streams = g_list_delete_link(streams, streams)) { |
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2758 PurpleMediaStream *stream = streams->data; |
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2759 if (stream->candidates_prepared == FALSE) { |
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2760 g_list_free(streams); |
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2761 prepared = FALSE; |
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2762 break; |
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2763 } |
23830
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2764 } |
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2765 |
26310
17929a84c1fb
Change purple_media_candidates_prepared to use wildcards.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26309
diff
changeset
|
2766 return prepared; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2767 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2768 return FALSE; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2769 #endif |
23830
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2770 } |
b5a00ddb7077
Jingle sessions now keep track of their transaction state to a degree.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23826
diff
changeset
|
2771 |
23862
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2772 gboolean |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
2773 purple_media_set_send_codec(PurpleMedia *media, const gchar *sess_id, PurpleMediaCodec *codec) |
23862
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2774 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2775 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2776 PurpleMediaSession *session; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2777 FsCodec *fscodec; |
23862
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2778 GError *err = NULL; |
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2779 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2780 g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2781 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2782 session = purple_media_get_session(media, sess_id); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2783 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2784 if (session != NULL) |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2785 return FALSE; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2786 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2787 fscodec = purple_media_codec_to_fs(codec); |
26024
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
2788 fs_session_set_send_codec(session->session, fscodec, &err); |
ac4d7695dbc7
Wrap FsCodec and remove the Farsight2 include from media.h.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26023
diff
changeset
|
2789 fs_codec_destroy(fscodec); |
23862
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2790 |
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2791 if (err) { |
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2792 purple_debug_error("media", "Error setting send codec\n"); |
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2793 g_error_free(err); |
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2794 return FALSE; |
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2795 } |
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2796 return TRUE; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2797 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2798 return FALSE; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2799 #endif |
23862
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2800 } |
3ffe166a355e
Set the proper send codec in Farsight.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
23857
diff
changeset
|
2801 |
24937
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2802 gboolean |
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2803 purple_media_codecs_ready(PurpleMedia *media, const gchar *sess_id) |
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2804 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2805 #ifdef USE_VV |
24937
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2806 gboolean ret; |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2807 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2808 g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2809 |
26127
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2810 if (sess_id != NULL) { |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2811 PurpleMediaSession *session; |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2812 session = purple_media_get_session(media, sess_id); |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2813 |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2814 if (session == NULL) |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2815 return FALSE; |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2816 |
26127
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2817 g_object_get(session->session, "codecs-ready", &ret, NULL); |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2818 } else { |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2819 GList *values = g_hash_table_get_values(media->priv->sessions); |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2820 for (; values; values = g_list_delete_link(values, values)) { |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2821 PurpleMediaSession *session = values->data; |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2822 g_object_get(session->session, |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2823 "codecs-ready", &ret, NULL); |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2824 if (ret == FALSE) |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2825 break; |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2826 } |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2827 if (values != NULL) |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2828 g_list_free(values); |
df133a5df391
Have purple_media_codecs_ready handle a session wildcard.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26126
diff
changeset
|
2829 } |
24937
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2830 return ret; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2831 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2832 return FALSE; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2833 #endif |
24937
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2834 } |
5a774d0817d8
Wait for Farsight 2's codecs-ready property to be TRUE before using codecs.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24935
diff
changeset
|
2835 |
26061
f6a98b2b8d92
Add the accepted signal and make the accept button go away immediately.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26060
diff
changeset
|
2836 gboolean |
26384
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2837 purple_media_is_initiator(PurpleMedia *media, |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2838 const gchar *sess_id, const gchar *participant) |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2839 { |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2840 #ifdef USE_VV |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2841 g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE); |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2842 |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2843 if (sess_id == NULL && participant == NULL) |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2844 return media->priv->initiator; |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2845 else if (sess_id != NULL && participant == NULL) { |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2846 PurpleMediaSession *session = |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2847 purple_media_get_session(media, sess_id); |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2848 return session != NULL ? session->initiator : FALSE; |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2849 } else if (sess_id != NULL && participant != NULL) { |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2850 PurpleMediaStream *stream = purple_media_get_stream( |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2851 media, sess_id, participant); |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2852 return stream != NULL ? stream->initiator : FALSE; |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2853 } |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2854 #endif |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2855 return FALSE; |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2856 } |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2857 |
bea334b214fa
Add purple_media_is_initiator.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26383
diff
changeset
|
2858 gboolean |
26061
f6a98b2b8d92
Add the accepted signal and make the accept button go away immediately.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26060
diff
changeset
|
2859 purple_media_accepted(PurpleMedia *media, const gchar *sess_id, |
f6a98b2b8d92
Add the accepted signal and make the accept button go away immediately.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26060
diff
changeset
|
2860 const gchar *participant) |
f6a98b2b8d92
Add the accepted signal and make the accept button go away immediately.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26060
diff
changeset
|
2861 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2862 #ifdef USE_VV |
26309
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2863 gboolean accepted = TRUE; |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2864 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2865 g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2866 |
26309
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2867 if (sess_id == NULL && participant == NULL) { |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2868 GList *streams = media->priv->streams; |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2869 |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2870 for (; streams; streams = g_list_next(streams)) { |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2871 PurpleMediaStream *stream = streams->data; |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2872 if (stream->accepted == FALSE) { |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2873 accepted = FALSE; |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2874 break; |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2875 } |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2876 } |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2877 } else if (sess_id != NULL && participant == NULL) { |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2878 GList *streams = purple_media_get_streams( |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2879 media, sess_id, NULL); |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2880 for (; streams; streams = |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2881 g_list_delete_link(streams, streams)) { |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2882 PurpleMediaStream *stream = streams->data; |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2883 if (stream->accepted == FALSE) { |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2884 g_list_free(streams); |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2885 accepted = FALSE; |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2886 break; |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2887 } |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2888 } |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2889 } else if (sess_id != NULL && participant != NULL) { |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2890 PurpleMediaStream *stream = purple_media_get_stream( |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2891 media, sess_id, participant); |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2892 if (stream == NULL || stream->accepted == FALSE) |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2893 accepted = FALSE; |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2894 } |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2895 |
b7b0513604e6
Make acceptance be per stream rather than per session.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26306
diff
changeset
|
2896 return accepted; |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2897 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2898 return FALSE; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2899 #endif |
26061
f6a98b2b8d92
Add the accepted signal and make the accept button go away immediately.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26060
diff
changeset
|
2900 } |
f6a98b2b8d92
Add the accepted signal and make the accept button go away immediately.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26060
diff
changeset
|
2901 |
24971
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2902 void purple_media_set_input_volume(PurpleMedia *media, |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2903 const gchar *session_id, double level) |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2904 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2905 #ifdef USE_VV |
24971
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2906 GList *sessions; |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2907 |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2908 g_return_if_fail(PURPLE_IS_MEDIA(media)); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2909 |
24971
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2910 if (session_id == NULL) |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2911 sessions = g_hash_table_get_values(media->priv->sessions); |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2912 else |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2913 sessions = g_list_append(NULL, |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2914 purple_media_get_session(media, session_id)); |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2915 |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2916 for (; sessions; sessions = g_list_delete_link(sessions, sessions)) { |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2917 PurpleMediaSession *session = sessions->data; |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2918 |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2919 if (session->type & PURPLE_MEDIA_SEND_AUDIO) { |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2920 GstElement *volume = gst_bin_get_by_name( |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2921 GST_BIN(session->src), |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2922 "purpleaudioinputvolume"); |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2923 g_object_set(volume, "volume", level, NULL); |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2924 } |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2925 } |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2926 #endif |
24971
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2927 } |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2928 |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2929 void purple_media_set_output_volume(PurpleMedia *media, |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2930 const gchar *session_id, const gchar *participant, |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2931 double level) |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2932 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2933 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2934 GList *streams; |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2935 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2936 g_return_if_fail(PURPLE_IS_MEDIA(media)); |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2937 |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2938 streams = purple_media_get_streams(media, |
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2939 session_id, participant); |
24971
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2940 |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2941 for (; streams; streams = g_list_delete_link(streams, streams)) { |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2942 PurpleMediaStream *stream = streams->data; |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2943 |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2944 if (stream->session->type & PURPLE_MEDIA_RECV_AUDIO) { |
26338
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2945 GstElement *tee = stream->tee; |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2946 GstIterator *iter = gst_element_iterate_src_pads(tee); |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2947 GstPad *sinkpad; |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2948 while (gst_iterator_next(iter, (gpointer)&sinkpad) |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2949 == GST_ITERATOR_OK) { |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2950 GstPad *peer = gst_pad_get_peer(sinkpad); |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2951 GstElement *volume; |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2952 |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2953 if (peer == NULL) { |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2954 gst_object_unref(sinkpad); |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2955 continue; |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2956 } |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2957 |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2958 volume = gst_bin_get_by_name(GST_BIN( |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2959 GST_OBJECT_PARENT(peer)), |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2960 "purpleaudiooutputvolume"); |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2961 g_object_set(volume, "volume", level, NULL); |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2962 gst_object_unref(peer); |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2963 gst_object_unref(sinkpad); |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2964 } |
754be87047dc
Have purple_media_set_output_volume handle all sinks.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26336
diff
changeset
|
2965 gst_iterator_free(iter); |
24971
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2966 } |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2967 } |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2968 #endif |
24971
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2969 } |
1ce297c8923b
Added media functions to set input and output volume.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
24968
diff
changeset
|
2970 |
26117
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2971 gulong |
26053
c334a9e17426
Wait to create the sinks until the frames are ready.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26052
diff
changeset
|
2972 purple_media_set_output_window(PurpleMedia *media, const gchar *session_id, |
c334a9e17426
Wait to create the sinks until the frames are ready.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26052
diff
changeset
|
2973 const gchar *participant, gulong window_id) |
c334a9e17426
Wait to create the sinks until the frames are ready.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26052
diff
changeset
|
2974 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2975 #ifdef USE_VV |
26072
4cbf594b2f17
Added a lot of assertions and error handling.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26070
diff
changeset
|
2976 g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE); |
26053
c334a9e17426
Wait to create the sinks until the frames are ready.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26052
diff
changeset
|
2977 |
26117
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2978 return purple_media_manager_set_output_window(media->priv->manager, |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2979 media, session_id, participant, window_id); |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2980 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2981 return 0; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2982 #endif |
26075
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2983 } |
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2984 |
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2985 void |
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2986 purple_media_remove_output_windows(PurpleMedia *media) |
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2987 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
2988 #ifdef USE_VV |
26075
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2989 GList *iter = media->priv->streams; |
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2990 for (; iter; iter = g_list_next(iter)) { |
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2991 PurpleMediaStream *stream = iter->data; |
26117
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2992 purple_media_manager_remove_output_windows( |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
2993 media->priv->manager, media, |
26075
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2994 stream->session->id, stream->participant); |
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2995 } |
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2996 |
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2997 iter = purple_media_get_session_names(media); |
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2998 for (; iter; iter = g_list_delete_link(iter, iter)) { |
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
2999 gchar *session_name = iter->data; |
26117
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3000 purple_media_manager_remove_output_windows( |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3001 media->priv->manager, media, |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3002 session_name, NULL); |
26075
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
3003 } |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
3004 #endif |
26075
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
3005 } |
1aed9a92b657
Implement *_remove_output_window and *_remove_output_windows.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26074
diff
changeset
|
3006 |
26117
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3007 GstElement * |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3008 purple_media_get_tee(PurpleMedia *media, |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3009 const gchar *session_id, const gchar *participant) |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3010 { |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
3011 #ifdef USE_VV |
26117
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3012 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3013 |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3014 if (session_id != NULL && participant == NULL) { |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3015 PurpleMediaSession *session = |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3016 purple_media_get_session(media, session_id); |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3017 return (session != NULL) ? session->tee : NULL; |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3018 } else if (session_id != NULL && participant != NULL) { |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3019 PurpleMediaStream *stream = |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3020 purple_media_get_stream(media, |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3021 session_id, participant); |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3022 return (stream != NULL) ? stream->tee : NULL; |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3023 } |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3024 g_return_val_if_reached(NULL); |
26350
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
3025 #else |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
3026 return NULL; |
064657db29c4
Properly wrap media functions so the API doesn't disappear when USE_VV
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26349
diff
changeset
|
3027 #endif |
26117
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3028 } |
6cf36f68033c
Only create output windows once there's data to be output.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26115
diff
changeset
|
3029 |