Mercurial > pidgin.yaz
comparison libpurple/media.h @ 25671: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.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Fri, 06 Jun 2008 07:43:03 +0000 |
parents | cbe97caec684 |
children | bfaad8393463 |
comparison
equal
deleted
inserted
replaced
25670:42e17cc5b6d2 | 25671:12a16471f94e |
---|---|
46 #define PURPLE_MEDIA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA, PurpleMediaClass)) | 46 #define PURPLE_MEDIA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA, PurpleMediaClass)) |
47 | 47 |
48 typedef struct _PurpleMedia PurpleMedia; | 48 typedef struct _PurpleMedia PurpleMedia; |
49 typedef struct _PurpleMediaClass PurpleMediaClass; | 49 typedef struct _PurpleMediaClass PurpleMediaClass; |
50 typedef struct _PurpleMediaPrivate PurpleMediaPrivate; | 50 typedef struct _PurpleMediaPrivate PurpleMediaPrivate; |
51 typedef struct _PurpleMediaSession PurpleMediaSession; | |
51 | 52 |
52 typedef enum { | 53 typedef enum { |
53 PURPLE_MEDIA_RECV_AUDIO = 1 << 0, | 54 PURPLE_MEDIA_RECV_AUDIO = 1 << 0, |
54 PURPLE_MEDIA_SEND_AUDIO = 1 << 1, | 55 PURPLE_MEDIA_SEND_AUDIO = 1 << 1, |
55 PURPLE_MEDIA_RECV_VIDEO = 1 << 2, | 56 PURPLE_MEDIA_RECV_VIDEO = 1 << 2, |
69 PurpleMediaPrivate *priv; | 70 PurpleMediaPrivate *priv; |
70 }; | 71 }; |
71 | 72 |
72 GType purple_media_get_type(void); | 73 GType purple_media_get_type(void); |
73 | 74 |
75 GList *purple_media_get_session_names(PurpleMedia *media); | |
76 | |
74 void purple_media_get_elements(PurpleMedia *media, GstElement **audio_src, GstElement **audio_sink, | 77 void purple_media_get_elements(PurpleMedia *media, GstElement **audio_src, GstElement **audio_sink, |
75 GstElement **video_src, GstElement **video_sink); | 78 GstElement **video_src, GstElement **video_sink); |
76 | 79 |
77 void purple_media_set_audio_src(PurpleMedia *media, GstElement *video_src); | 80 void purple_media_set_src(PurpleMedia *media, const gchar *sess_id, GstElement *src); |
78 void purple_media_set_audio_sink(PurpleMedia *media, GstElement *video_src); | 81 void purple_media_set_sink(PurpleMedia *media, const gchar *sess_id, GstElement *src); |
79 void purple_media_set_video_src(PurpleMedia *media, GstElement *video_src); | |
80 void purple_media_set_video_sink(PurpleMedia *media, GstElement *video_src); | |
81 | 82 |
82 GstElement *purple_media_get_audio_src(PurpleMedia *media); | 83 GstElement *purple_media_get_src(PurpleMedia *media, const gchar *sess_id); |
83 GstElement *purple_media_get_audio_sink(PurpleMedia *media); | 84 GstElement *purple_media_get_sink(PurpleMedia *media, const gchar *sess_id); |
84 GstElement *purple_media_get_video_src(PurpleMedia *media); | |
85 GstElement *purple_media_get_video_sink(PurpleMedia *media); | |
86 | 85 |
87 GstElement *purple_media_get_audio_pipeline(PurpleMedia *media); | 86 GstElement *purple_media_get_pipeline(PurpleMedia *media); |
88 | 87 |
89 PurpleConnection *purple_media_get_connection(PurpleMedia *media); | 88 PurpleConnection *purple_media_get_connection(PurpleMedia *media); |
90 const char *purple_media_get_screenname(PurpleMedia *media); | 89 const char *purple_media_get_screenname(PurpleMedia *media); |
91 void purple_media_ready(PurpleMedia *media); | 90 void purple_media_ready(PurpleMedia *media); |
92 void purple_media_wait(PurpleMedia *media); | 91 void purple_media_wait(PurpleMedia *media); |
109 void purple_media_audio_init_src(GstElement **sendbin, | 108 void purple_media_audio_init_src(GstElement **sendbin, |
110 GstElement **sendlevel); | 109 GstElement **sendlevel); |
111 void purple_media_video_init_src(GstElement **sendbin); | 110 void purple_media_video_init_src(GstElement **sendbin); |
112 | 111 |
113 void purple_media_audio_init_recv(GstElement **recvbin, GstElement **recvlevel); | 112 void purple_media_audio_init_recv(GstElement **recvbin, GstElement **recvlevel); |
113 void purple_media_video_init_recv(GstElement **sendbin); | |
114 | 114 |
115 gboolean purple_media_add_stream(PurpleMedia *media, const gchar *who, | 115 gboolean purple_media_add_stream(PurpleMedia *media, const gchar *sess_id, const gchar *who, |
116 PurpleMediaStreamType type, const gchar *transmitter); | 116 PurpleMediaStreamType type, const gchar *transmitter); |
117 void purple_media_remove_stream(PurpleMedia *media, const gchar *who, PurpleMediaStreamType type); | 117 void purple_media_remove_stream(PurpleMedia *media, const gchar *sess_id, const gchar *who); |
118 | 118 |
119 GList *purple_media_get_local_audio_candidates(PurpleMedia *media); | 119 PurpleMediaStreamType purple_media_get_session_type(PurpleMedia *media, const gchar *sess_id); |
120 GList *purple_media_get_negotiated_audio_codecs(PurpleMedia *media); | |
121 | 120 |
122 GList *purple_media_get_local_audio_codecs(PurpleMedia *media); | 121 GList *purple_media_get_negotiated_codecs(PurpleMedia *media, const gchar *sess_id); |
123 void purple_media_add_remote_audio_candidates(PurpleMedia *media, const gchar *name, | 122 |
124 GList *remote_candidates); | 123 GList *purple_media_get_local_codecs(PurpleMedia *media, const gchar *sess_id); |
125 FsCandidate *purple_media_get_local_candidate(PurpleMedia *media); | 124 void purple_media_add_remote_candidates(PurpleMedia *media, const gchar *sess_id, |
126 FsCandidate *purple_media_get_remote_candidate(PurpleMedia *media); | 125 const gchar *name, GList *remote_candidates); |
127 void purple_media_set_remote_audio_codecs(PurpleMedia *media, const gchar *name, GList *codecs); | 126 GList *purple_media_get_local_candidates(PurpleMedia *media, const gchar *sess_id, const gchar *name); |
127 FsCandidate *purple_media_get_local_candidate(PurpleMedia *media, const gchar *sess_id, const gchar *name); | |
128 FsCandidate *purple_media_get_remote_candidate(PurpleMedia *media, const gchar *sess_id, const gchar *name); | |
129 void purple_media_set_remote_codecs(PurpleMedia *media, const gchar *sess_id, const gchar *name, GList *codecs); | |
128 | 130 |
129 G_END_DECLS | 131 G_END_DECLS |
130 | 132 |
131 #endif /* USE_VV */ | 133 #endif /* USE_VV */ |
132 | 134 |