src/media.c

Thu, 10 Nov 2005 14:30:28 +0000

author
Stu Tomlinson <nosnilmot@pidgin.im>
date
Thu, 10 Nov 2005 14:30:28 +0000
changeset 12034
e40d6191f530
parent 12024
5a87b77fcc3c
child 12050
a7d5a2430722
permissions
-rw-r--r--

[gaim-migrate @ 14327]
whitespace cleanup in configure.ac, make sure HAVE_VV is #define'd if it's
enabled and fix up some compile warnings in media.c now that #ifdef HAVE_VV
actually has a chance of succeeding.

/me thinks Sean must have been adding -DHAVE_VV to his CFLAGS to make this
build at all before

12024
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
1 /**
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
2 * @file media.h Voice and Video API
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
3 * @ingroup core
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
4 *
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
5 * gaim
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
6 *
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
9 * source distribution.
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
10 *
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
14 * (at your option) any later version.
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
15 *
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
19 * GNU General Public License for more details.
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
20 *
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
24 */
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
25
12034
e40d6191f530 [gaim-migrate @ 14327]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12024
diff changeset
26 #include "internal.h"
e40d6191f530 [gaim-migrate @ 14327]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12024
diff changeset
27
12024
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
28 #ifdef HAVE_VV
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
29
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
30 #include "media.h"
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
31 #include "mediastream.h"
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
32 #include "msilbcdec.h"
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
33
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
34
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
35 /* msrtpsend.o and msrtprecv.o aren't used within the core, so
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
36 * the linker chooses not to link them. I want plugins to be able
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
37 * to depend on them, so I reference symbols from them here. */
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
38 static void * dummy1 = ms_rtp_send_new;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
39 static void * dummy2 = ms_rtp_recv_new;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
40
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
41 struct _GaimVoiceChat {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
42 GaimConnection *gc;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
43 char *name;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
44
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
45 GaimMediaState state;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
46
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
47 void *proto_data;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
48 void *ui_data;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
49
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
50 MSFilter *speaker;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
51 MSFilter *microphone;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
52 MSSync *timer;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
53 };
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
54
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
55 static GaimMediaUiOps *media_ui_ops = NULL;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
56
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
57 void gaim_media_init()
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
58 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
59 ms_init();
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
60 ms_ilbc_codec_init();
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
61 ms_speex_codec_init();
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
62 ortp_init();
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
63 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
64
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
65 GaimVoiceChat *gaim_voice_chat_new(GaimConnection *gc, const char *name)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
66 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
67 GaimVoiceChat *vc = g_new0(GaimVoiceChat, 1);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
68 SndCard *card;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
69
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
70 vc->gc = gc;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
71 vc->name = g_strdup(name);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
72
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
73 card = snd_card_manager_get_card(snd_card_manager,0);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
74 vc->speaker = snd_card_create_write_filter(card);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
75 vc->microphone = snd_card_create_read_filter(card);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
76 vc->timer = ms_timer_new();
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
77 ms_sync_attach(vc->timer, vc->microphone);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
78 if (media_ui_ops)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
79 media_ui_ops->new_voice_chat(vc);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
80 return vc;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
81 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
82
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
83
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
84
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
85 void gaim_voice_chat_destroy(GaimVoiceChat *vc)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
86 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
87 if (media_ui_ops)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
88 media_ui_ops->destroy(vc);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
89 g_free(vc);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
90 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
91
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
92 const char *gaim_voice_chat_get_name(GaimVoiceChat *vc)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
93 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
94 return vc->name;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
95 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
96
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
97 void gaim_voice_chat_set_name(GaimVoiceChat *vc, const char *name)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
98 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
99 g_free(vc->name);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
100 vc->name = g_strdup(name);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
101 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
102
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
103 GaimConnection *gaim_voice_chat_get_connection(GaimVoiceChat *vc)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
104 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
105 return vc->gc;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
106 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
107
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
108 void *gaim_voice_chat_get_ui_data(GaimVoiceChat *vc)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
109 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
110 return vc->ui_data;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
111 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
112
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
113 void gaim_voice_chat_set_ui_data(GaimVoiceChat *vc, void *data)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
114 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
115 vc->ui_data = data;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
116 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
117
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
118 void *gaim_voice_chat_get_proto_data(GaimVoiceChat *vc)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
119 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
120 return vc->proto_data;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
121 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
122
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
123 void gaim_voice_chat_set_proto_data(GaimVoiceChat *vc, void *data)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
124 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
125 vc->proto_data = data;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
126 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
127
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
128 void gaim_media_set_ui_ops(GaimMediaUiOps *ops)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
129 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
130 media_ui_ops = ops;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
131 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
132
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
133 GaimMediaUiOps *gaim_media_get_ui_ops(void)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
134 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
135 return media_ui_ops;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
136 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
137
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
138
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
139 GaimMediaState gaim_voice_chat_get_state(GaimVoiceChat *vc)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
140 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
141 return vc->state;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
142 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
143
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
144 void gaim_voice_chat_accept(GaimVoiceChat *vc)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
145 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
146 GaimConnection *gc = gaim_voice_chat_get_connection(vc);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
147 GaimPluginProtocolInfo *prpl_info = NULL;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
148
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
149 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
150
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
151 if (!prpl_info->media_prpl_ops || !prpl_info->media_prpl_ops->accept)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
152 return;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
153 prpl_info->media_prpl_ops->accept(vc);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
154 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
155
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
156 void gaim_voice_chat_reject(GaimVoiceChat *vc)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
157 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
158 GaimConnection *gc = gaim_voice_chat_get_connection(vc);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
159 GaimPluginProtocolInfo *prpl_info = NULL;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
160
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
161 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
162
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
163 if (!prpl_info->media_prpl_ops || !prpl_info->media_prpl_ops->reject)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
164 return;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
165 prpl_info->media_prpl_ops->reject(vc);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
166 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
167
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
168
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
169 void gaim_voice_chat_terminate(GaimVoiceChat *vc)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
170 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
171 GaimConnection *gc = gaim_voice_chat_get_connection(vc);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
172 GaimPluginProtocolInfo *prpl_info = NULL;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
173
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
174 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
175
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
176 if (!prpl_info->media_prpl_ops || !prpl_info->media_prpl_ops->terminate)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
177 return;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
178 prpl_info->media_prpl_ops->terminate(vc);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
179 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
180
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
181
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
182 void gaim_voice_chat_set_state(GaimVoiceChat *vc, GaimMediaState state)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
183 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
184 vc->state = state;
12034
e40d6191f530 [gaim-migrate @ 14327]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12024
diff changeset
185 printf("State: %d\n",state);
12024
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
186 if (media_ui_ops)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
187 media_ui_ops->state_change(vc, state);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
188 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
189
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
190 void gaim_voice_chat_get_filters(GaimVoiceChat *vc, MSFilter **microphone, MSFilter **speaker)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
191 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
192 if (microphone) *microphone = vc->microphone;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
193 if (speaker) *speaker = vc->speaker;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
194 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
195
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
196 MSSync *gaim_voice_chat_get_timer(GaimVoiceChat *vc)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
197 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
198 return vc->timer;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
199 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
200
12034
e40d6191f530 [gaim-migrate @ 14327]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 12024
diff changeset
201 void gaim_voice_chat_start_streams(GaimVoiceChat *vc)
12024
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
202 {
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
203 GaimConnection *gc = gaim_voice_chat_get_connection(vc);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
204 GaimPluginProtocolInfo *prpl_info = NULL;
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
205
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
206 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
207
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
208 if (prpl_info->media_prpl_ops && prpl_info->media_prpl_ops->init_filters)
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
209 prpl_info->media_prpl_ops->init_filters(vc);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
210
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
211 ms_start(vc->timer);
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
212 }
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
213
5a87b77fcc3c [gaim-migrate @ 14317]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
214 #endif /* HAVE_VV */

mercurial