Wed, 13 May 2009 20:29:03 +0000
Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1 | /** |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2 | * @file gntmedia.c GNT Media API |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
3 | * @ingroup finch |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
4 | */ |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
5 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
6 | /* finch |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
7 | * |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
8 | * Finch is the legal property of its developers, whose names are too numerous |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
9 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
10 | * source distribution. |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
11 | * |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
12 | * This program is free software; you can redistribute it and/or modify |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
13 | * it under the terms of the GNU General Public License as published by |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
14 | * the Free Software Foundation; either version 2 of the License, or |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
15 | * (at your option) any later version. |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
16 | * |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
17 | * This program is distributed in the hope that it will be useful, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
20 | * GNU General Public License for more details. |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
21 | * |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
22 | * You should have received a copy of the GNU General Public License |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
23 | * along with this program; if not, write to the Free Software |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
25 | */ |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
26 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
27 | #include "finch.h" |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
28 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
29 | #include "gntconv.h" |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
30 | #include "gntmedia.h" |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
31 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
32 | #include "gnt.h" |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
33 | #include "gntbutton.h" |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
34 | #include "gntbox.h" |
|
22683
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
35 | #include "gntlabel.h" |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
36 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
37 | #include "cmds.h" |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
38 | #include "conversation.h" |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
39 | #include "debug.h" |
|
26479
47511dae9f81
Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
26464
diff
changeset
|
40 | #include "mediamanager.h" |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
41 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
42 | /* An incredibly large part of the following is from gtkmedia.c */ |
|
23704
9b88c9b23aed
Use USE_VV instead of USE_FARSIGHT.
Michael Ruprecht <maiku@pidgin.im>
parents:
23700
diff
changeset
|
43 | #ifdef USE_VV |
|
26760
251146cb6d09
Fix build with --disable-gstreamer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26746
diff
changeset
|
44 | #include "media-gst.h" |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
45 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
46 | #undef hangup |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
47 | |
|
26505
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
48 | #define FINCH_TYPE_MEDIA (finch_media_get_type()) |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
49 | #define FINCH_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), FINCH_TYPE_MEDIA, FinchMedia)) |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
50 | #define FINCH_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), FINCH_TYPE_MEDIA, FinchMediaClass)) |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
51 | #define FINCH_IS_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), FINCH_TYPE_MEDIA)) |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
52 | #define FINCH_IS_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), FINCH_TYPE_MEDIA)) |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
53 | #define FINCH_MEDIA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FINCH_TYPE_MEDIA, FinchMediaClass)) |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
54 | |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
55 | typedef struct _FinchMedia FinchMedia; |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
56 | typedef struct _FinchMediaClass FinchMediaClass; |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
57 | typedef struct _FinchMediaPrivate FinchMediaPrivate; |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
58 | typedef enum _FinchMediaState FinchMediaState; |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
59 | |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
60 | struct _FinchMediaClass |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
61 | { |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
62 | GntBoxClass parent_class; |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
63 | }; |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
64 | |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
65 | struct _FinchMedia |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
66 | { |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
67 | GntBox parent; |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
68 | FinchMediaPrivate *priv; |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
69 | }; |
|
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
70 | |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
71 | struct _FinchMediaPrivate |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
72 | { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
73 | PurpleMedia *media; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
74 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
75 | GntWidget *accept; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
76 | GntWidget *reject; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
77 | GntWidget *hangup; |
|
22683
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
78 | GntWidget *calling; |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
79 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
80 | PurpleConversation *conv; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
81 | }; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
82 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
83 | #define FINCH_MEDIA_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), FINCH_TYPE_MEDIA, FinchMediaPrivate)) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
84 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
85 | static void finch_media_class_init (FinchMediaClass *klass); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
86 | static void finch_media_init (FinchMedia *media); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
87 | static void finch_media_finalize (GObject *object); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
88 | static void finch_media_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
89 | static void finch_media_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
90 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
91 | static GntBoxClass *parent_class = NULL; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
92 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
93 | enum { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
94 | MESSAGE, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
95 | LAST_SIGNAL |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
96 | }; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
97 | static guint finch_media_signals[LAST_SIGNAL] = {0}; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
98 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
99 | enum { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
100 | PROP_0, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
101 | PROP_MEDIA, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
102 | }; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
103 | |
|
26506
5f8ab0b75892
Silence two more warnings.
Michael Ruprecht <maiku@pidgin.im>
parents:
26505
diff
changeset
|
104 | static GType |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
105 | finch_media_get_type(void) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
106 | { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
107 | static GType type = 0; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
108 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
109 | if (type == 0) { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
110 | static const GTypeInfo info = { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
111 | sizeof(FinchMediaClass), |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
112 | NULL, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
113 | NULL, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
114 | (GClassInitFunc) finch_media_class_init, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
115 | NULL, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
116 | NULL, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
117 | sizeof(FinchMedia), |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
118 | 0, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
119 | (GInstanceInitFunc) finch_media_init, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
120 | NULL |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
121 | }; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
122 | type = g_type_register_static(GNT_TYPE_BOX, "FinchMedia", &info, 0); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
123 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
124 | return type; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
125 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
126 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
127 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
128 | static void |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
129 | finch_media_class_init (FinchMediaClass *klass) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
130 | { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
131 | GObjectClass *gobject_class = (GObjectClass*)klass; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
132 | parent_class = g_type_class_peek_parent(klass); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
133 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
134 | gobject_class->finalize = finch_media_finalize; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
135 | gobject_class->set_property = finch_media_set_property; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
136 | gobject_class->get_property = finch_media_get_property; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
137 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
138 | g_object_class_install_property(gobject_class, PROP_MEDIA, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
139 | g_param_spec_object("media", |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
140 | "PurpleMedia", |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
141 | "The PurpleMedia associated with this media.", |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
142 | PURPLE_TYPE_MEDIA, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
143 | G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE)); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
144 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
145 | finch_media_signals[MESSAGE] = g_signal_new("message", G_TYPE_FROM_CLASS(klass), |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
146 | G_SIGNAL_RUN_LAST, 0, NULL, NULL, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
147 | g_cclosure_marshal_VOID__STRING, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
148 | G_TYPE_NONE, 1, G_TYPE_STRING); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
149 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
150 | g_type_class_add_private(klass, sizeof(FinchMediaPrivate)); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
151 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
152 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
153 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
154 | static void |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
155 | finch_media_init (FinchMedia *media) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
156 | { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
157 | media->priv = FINCH_MEDIA_GET_PRIVATE(media); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
158 | |
|
22683
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
159 | media->priv->calling = gnt_label_new(_("Calling ... ")); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
160 | media->priv->hangup = gnt_button_new(_("Hangup")); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
161 | media->priv->accept = gnt_button_new(_("Accept")); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
162 | media->priv->reject = gnt_button_new(_("Reject")); |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
163 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
164 | gnt_box_set_alignment(GNT_BOX(media), GNT_ALIGN_MID); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
165 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
166 | gnt_box_add_widget(GNT_BOX(media), media->priv->accept); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
167 | gnt_box_add_widget(GNT_BOX(media), media->priv->reject); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
168 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
169 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
170 | static void |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
171 | finch_media_finalize (GObject *media) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
172 | { |
|
26123
4948b40fdbec
Make voice calls work with Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26111
diff
changeset
|
173 | FinchMedia *gntmedia = FINCH_MEDIA(media); |
|
4948b40fdbec
Make voice calls work with Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26111
diff
changeset
|
174 | purple_debug_info("gntmedia", "finch_media_finalize\n"); |
|
4948b40fdbec
Make voice calls work with Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26111
diff
changeset
|
175 | if (gntmedia->priv->media) |
|
4948b40fdbec
Make voice calls work with Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26111
diff
changeset
|
176 | g_object_unref(gntmedia->priv->media); |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
177 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
178 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
179 | static void |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
180 | finch_media_emit_message(FinchMedia *gntmedia, const char *msg) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
181 | { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
182 | g_signal_emit(gntmedia, finch_media_signals[MESSAGE], 0, msg); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
183 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
184 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
185 | static void |
|
26501
c186275f46aa
Remove purple_media_accept.
Michael Ruprecht <maiku@pidgin.im>
parents:
26500
diff
changeset
|
186 | finch_media_connected_cb(PurpleMedia *media, FinchMedia *gntmedia) |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
187 | { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
188 | GntWidget *parent; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
189 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
190 | finch_media_emit_message(gntmedia, _("Call in progress.")); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
191 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
192 | gnt_box_remove(GNT_BOX(gntmedia), gntmedia->priv->accept); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
193 | gnt_box_remove(GNT_BOX(gntmedia), gntmedia->priv->reject); |
|
22683
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
194 | gnt_box_remove(GNT_BOX(gntmedia), gntmedia->priv->hangup); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
195 | gnt_box_remove(GNT_BOX(gntmedia), gntmedia->priv->calling); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
196 | |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
197 | gnt_box_add_widget(GNT_BOX(gntmedia), gntmedia->priv->hangup); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
198 | |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
199 | gnt_widget_destroy(gntmedia->priv->accept); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
200 | gnt_widget_destroy(gntmedia->priv->reject); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
201 | gnt_widget_destroy(gntmedia->priv->calling); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
202 | gntmedia->priv->accept = NULL; |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
203 | gntmedia->priv->reject = NULL; |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
204 | gntmedia->priv->calling = NULL; |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
205 | |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
206 | parent = GNT_WIDGET(gntmedia); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
207 | while (parent->parent) |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
208 | parent = parent->parent; |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
209 | gnt_box_readjust(GNT_BOX(parent)); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
210 | gnt_widget_draw(parent); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
211 | } |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
212 | |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
213 | static void |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
214 | finch_media_wait_cb(PurpleMedia *media, FinchMedia *gntmedia) |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
215 | { |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
216 | GntWidget *parent; |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
217 | |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
218 | gnt_box_remove(GNT_BOX(gntmedia), gntmedia->priv->accept); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
219 | gnt_box_remove(GNT_BOX(gntmedia), gntmedia->priv->reject); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
220 | gnt_box_remove(GNT_BOX(gntmedia), gntmedia->priv->hangup); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
221 | gnt_box_remove(GNT_BOX(gntmedia), gntmedia->priv->calling); |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
222 | |
|
bd514cc037cf
Fine tune the media (audio) widget in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22682
diff
changeset
|
223 | gnt_box_add_widget(GNT_BOX(gntmedia), gntmedia->priv->calling); |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
224 | gnt_box_add_widget(GNT_BOX(gntmedia), gntmedia->priv->hangup); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
225 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
226 | parent = GNT_WIDGET(gntmedia); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
227 | while (parent->parent) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
228 | parent = parent->parent; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
229 | gnt_box_readjust(GNT_BOX(parent)); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
230 | gnt_widget_draw(parent); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
231 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
232 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
233 | static void |
|
26449
9e381dc6ed24
Rename state-changed enum and values.
Michael Ruprecht <maiku@pidgin.im>
parents:
26445
diff
changeset
|
234 | finch_media_state_changed_cb(PurpleMedia *media, PurpleMediaState state, |
|
26244
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
235 | gchar *sid, gchar *name, FinchMedia *gntmedia) |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
236 | { |
|
26449
9e381dc6ed24
Rename state-changed enum and values.
Michael Ruprecht <maiku@pidgin.im>
parents:
26445
diff
changeset
|
237 | purple_debug_info("gntmedia", "state: %d sid: %s name: %s\n", |
|
9e381dc6ed24
Rename state-changed enum and values.
Michael Ruprecht <maiku@pidgin.im>
parents:
26445
diff
changeset
|
238 | state, sid, name); |
|
26244
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
239 | if (sid == NULL && name == NULL) { |
|
26449
9e381dc6ed24
Rename state-changed enum and values.
Michael Ruprecht <maiku@pidgin.im>
parents:
26445
diff
changeset
|
240 | if (state == PURPLE_MEDIA_STATE_END) { |
|
26244
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
241 | finch_media_emit_message(gntmedia, |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
242 | _("The call has been terminated.")); |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
243 | finch_conversation_set_info_widget( |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
244 | gntmedia->priv->conv, NULL); |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
245 | gnt_widget_destroy(GNT_WIDGET(gntmedia)); |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
246 | /* |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
247 | * XXX: This shouldn't have to be here |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
248 | * to free the FinchMedia widget. |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
249 | */ |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
250 | g_object_unref(gntmedia); |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
251 | } |
|
26449
9e381dc6ed24
Rename state-changed enum and values.
Michael Ruprecht <maiku@pidgin.im>
parents:
26445
diff
changeset
|
252 | } else if (state == PURPLE_MEDIA_STATE_CONNECTED) { |
|
26501
c186275f46aa
Remove purple_media_accept.
Michael Ruprecht <maiku@pidgin.im>
parents:
26500
diff
changeset
|
253 | finch_media_connected_cb(media, gntmedia); |
|
26524
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
254 | } else if (state == PURPLE_MEDIA_STATE_NEW && |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
255 | sid != NULL && name != NULL && |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
256 | purple_media_is_initiator(media, sid, name) == FALSE) { |
|
26746
2a2d45ac9774
Switch media to store accounts rather than connections.
Michael Ruprecht <maiku@pidgin.im>
parents:
26647
diff
changeset
|
257 | PurpleAccount *account; |
|
26524
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
258 | PurpleBuddy *buddy; |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
259 | const gchar *alias; |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
260 | PurpleMediaSessionType type = |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
261 | purple_media_get_session_type(media, sid); |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
262 | gchar *message = NULL; |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
263 | |
|
26746
2a2d45ac9774
Switch media to store accounts rather than connections.
Michael Ruprecht <maiku@pidgin.im>
parents:
26647
diff
changeset
|
264 | account = purple_media_get_account(gntmedia->priv->media); |
|
2a2d45ac9774
Switch media to store accounts rather than connections.
Michael Ruprecht <maiku@pidgin.im>
parents:
26647
diff
changeset
|
265 | buddy = purple_find_buddy(account, name); |
|
26524
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
266 | alias = buddy ? purple_buddy_get_contact_alias(buddy) : name; |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
267 | |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
268 | if (type & PURPLE_MEDIA_AUDIO) { |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
269 | message = g_strdup_printf( |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
270 | _("%s wishes to start an audio session with you."), |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
271 | alias); |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
272 | } else { |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
273 | message = g_strdup_printf( |
|
26647
89bcc7bce53e
Minor grammatical message fixes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26631
diff
changeset
|
274 | _("%s is trying to start an unsupported media session type with you."), |
|
26524
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
275 | alias); |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
276 | } |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
277 | finch_media_emit_message(gntmedia, message); |
|
265d852c96bb
Say which media type is being requested in Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26522
diff
changeset
|
278 | g_free(message); |
|
26244
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
279 | } |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
280 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
281 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
282 | static void |
|
26445
6da3853c89c2
Use stream-info instead of state-changed for reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26248
diff
changeset
|
283 | finch_media_stream_info_cb(PurpleMedia *media, PurpleMediaInfoType type, |
|
26496
11e1e5221460
Create purple_media_stream_info. Add local parameter to stream-info signal.
Michael Ruprecht <maiku@pidgin.im>
parents:
26495
diff
changeset
|
284 | gchar *sid, gchar *name, gboolean local, FinchMedia *gntmedia) |
|
26445
6da3853c89c2
Use stream-info instead of state-changed for reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26248
diff
changeset
|
285 | { |
|
6da3853c89c2
Use stream-info instead of state-changed for reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26248
diff
changeset
|
286 | if (type == PURPLE_MEDIA_INFO_REJECT) { |
|
6da3853c89c2
Use stream-info instead of state-changed for reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26248
diff
changeset
|
287 | finch_media_emit_message(gntmedia, |
|
6da3853c89c2
Use stream-info instead of state-changed for reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26248
diff
changeset
|
288 | _("You have rejected the call.")); |
|
6da3853c89c2
Use stream-info instead of state-changed for reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26248
diff
changeset
|
289 | } |
|
6da3853c89c2
Use stream-info instead of state-changed for reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26248
diff
changeset
|
290 | } |
|
6da3853c89c2
Use stream-info instead of state-changed for reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26248
diff
changeset
|
291 | |
|
6da3853c89c2
Use stream-info instead of state-changed for reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26248
diff
changeset
|
292 | static void |
|
26501
c186275f46aa
Remove purple_media_accept.
Michael Ruprecht <maiku@pidgin.im>
parents:
26500
diff
changeset
|
293 | finch_media_accept_cb(PurpleMedia *media, GntWidget *widget) |
|
c186275f46aa
Remove purple_media_accept.
Michael Ruprecht <maiku@pidgin.im>
parents:
26500
diff
changeset
|
294 | { |
|
c186275f46aa
Remove purple_media_accept.
Michael Ruprecht <maiku@pidgin.im>
parents:
26500
diff
changeset
|
295 | purple_media_stream_info(media, PURPLE_MEDIA_INFO_ACCEPT, |
|
c186275f46aa
Remove purple_media_accept.
Michael Ruprecht <maiku@pidgin.im>
parents:
26500
diff
changeset
|
296 | NULL, NULL, TRUE); |
|
c186275f46aa
Remove purple_media_accept.
Michael Ruprecht <maiku@pidgin.im>
parents:
26500
diff
changeset
|
297 | } |
|
c186275f46aa
Remove purple_media_accept.
Michael Ruprecht <maiku@pidgin.im>
parents:
26500
diff
changeset
|
298 | |
|
c186275f46aa
Remove purple_media_accept.
Michael Ruprecht <maiku@pidgin.im>
parents:
26500
diff
changeset
|
299 | static void |
|
26499
759bf410db86
Remove purple_media_hangup.
Michael Ruprecht <maiku@pidgin.im>
parents:
26496
diff
changeset
|
300 | finch_media_hangup_cb(PurpleMedia *media, GntWidget *widget) |
|
759bf410db86
Remove purple_media_hangup.
Michael Ruprecht <maiku@pidgin.im>
parents:
26496
diff
changeset
|
301 | { |
|
759bf410db86
Remove purple_media_hangup.
Michael Ruprecht <maiku@pidgin.im>
parents:
26496
diff
changeset
|
302 | purple_media_stream_info(media, PURPLE_MEDIA_INFO_HANGUP, |
|
759bf410db86
Remove purple_media_hangup.
Michael Ruprecht <maiku@pidgin.im>
parents:
26496
diff
changeset
|
303 | NULL, NULL, TRUE); |
|
759bf410db86
Remove purple_media_hangup.
Michael Ruprecht <maiku@pidgin.im>
parents:
26496
diff
changeset
|
304 | } |
|
759bf410db86
Remove purple_media_hangup.
Michael Ruprecht <maiku@pidgin.im>
parents:
26496
diff
changeset
|
305 | |
|
759bf410db86
Remove purple_media_hangup.
Michael Ruprecht <maiku@pidgin.im>
parents:
26496
diff
changeset
|
306 | static void |
|
26500
8fc1146ee03c
Remove purple_media_reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26499
diff
changeset
|
307 | finch_media_reject_cb(PurpleMedia *media, GntWidget *widget) |
|
8fc1146ee03c
Remove purple_media_reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26499
diff
changeset
|
308 | { |
|
8fc1146ee03c
Remove purple_media_reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26499
diff
changeset
|
309 | purple_media_stream_info(media, PURPLE_MEDIA_INFO_REJECT, |
|
8fc1146ee03c
Remove purple_media_reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26499
diff
changeset
|
310 | NULL, NULL, TRUE); |
|
8fc1146ee03c
Remove purple_media_reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26499
diff
changeset
|
311 | } |
|
8fc1146ee03c
Remove purple_media_reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26499
diff
changeset
|
312 | |
|
8fc1146ee03c
Remove purple_media_reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26499
diff
changeset
|
313 | static void |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
314 | finch_media_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
315 | { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
316 | FinchMedia *media; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
317 | g_return_if_fail(FINCH_IS_MEDIA(object)); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
318 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
319 | media = FINCH_MEDIA(object); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
320 | switch (prop_id) { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
321 | case PROP_MEDIA: |
|
26244
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
322 | { |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
323 | if (media->priv->media) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
324 | g_object_unref(media->priv->media); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
325 | media->priv->media = g_value_get_object(value); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
326 | g_object_ref(media->priv->media); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
327 | g_signal_connect_swapped(G_OBJECT(media->priv->accept), "activate", |
|
26501
c186275f46aa
Remove purple_media_accept.
Michael Ruprecht <maiku@pidgin.im>
parents:
26500
diff
changeset
|
328 | G_CALLBACK(finch_media_accept_cb), media->priv->media); |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
329 | g_signal_connect_swapped(G_OBJECT(media->priv->reject), "activate", |
|
26500
8fc1146ee03c
Remove purple_media_reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26499
diff
changeset
|
330 | G_CALLBACK(finch_media_reject_cb), media->priv->media); |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
331 | g_signal_connect_swapped(G_OBJECT(media->priv->hangup), "activate", |
|
26499
759bf410db86
Remove purple_media_hangup.
Michael Ruprecht <maiku@pidgin.im>
parents:
26496
diff
changeset
|
332 | G_CALLBACK(finch_media_hangup_cb), media->priv->media); |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
333 | |
|
26514
058053cffc0e
Add purple_media_is_initiator.
Michael Ruprecht <maiku@pidgin.im>
parents:
26508
diff
changeset
|
334 | if (purple_media_is_initiator(media->priv->media, |
|
058053cffc0e
Add purple_media_is_initiator.
Michael Ruprecht <maiku@pidgin.im>
parents:
26508
diff
changeset
|
335 | NULL, NULL) == TRUE) { |
|
26244
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
336 | finch_media_wait_cb(media->priv->media, media); |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
337 | } |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
338 | g_signal_connect(G_OBJECT(media->priv->media), "state-changed", |
|
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
339 | G_CALLBACK(finch_media_state_changed_cb), media); |
|
26445
6da3853c89c2
Use stream-info instead of state-changed for reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26248
diff
changeset
|
340 | g_signal_connect(G_OBJECT(media->priv->media), "stream-info", |
|
6da3853c89c2
Use stream-info instead of state-changed for reject.
Michael Ruprecht <maiku@pidgin.im>
parents:
26248
diff
changeset
|
341 | G_CALLBACK(finch_media_stream_info_cb), media); |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
342 | break; |
|
26244
5b2642b82431
Update Finch to new media API.
Michael Ruprecht <maiku@pidgin.im>
parents:
26183
diff
changeset
|
343 | } |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
344 | default: |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
345 | G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
346 | break; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
347 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
348 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
349 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
350 | static void |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
351 | finch_media_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
352 | { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
353 | FinchMedia *media; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
354 | g_return_if_fail(FINCH_IS_MEDIA(object)); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
355 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
356 | media = FINCH_MEDIA(object); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
357 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
358 | switch (prop_id) { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
359 | case PROP_MEDIA: |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
360 | g_value_set_object(value, media->priv->media); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
361 | break; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
362 | default: |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
363 | G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
364 | break; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
365 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
366 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
367 | |
|
26506
5f8ab0b75892
Silence two more warnings.
Michael Ruprecht <maiku@pidgin.im>
parents:
26505
diff
changeset
|
368 | static GntWidget * |
|
23721
15285d082f6c
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.
Michael Ruprecht <maiku@pidgin.im>
parents:
23704
diff
changeset
|
369 | finch_media_new(PurpleMedia *media) |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
370 | { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
371 | return GNT_WIDGET(g_object_new(finch_media_get_type(), |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
372 | "media", media, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
373 | "vertical", FALSE, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
374 | "homogeneous", FALSE, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
375 | NULL)); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
376 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
377 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
378 | static void |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
379 | gntmedia_message_cb(FinchMedia *gntmedia, const char *msg, PurpleConversation *conv) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
380 | { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
381 | if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
382 | purple_conv_im_write(PURPLE_CONV_IM(conv), NULL, msg, PURPLE_MESSAGE_SYSTEM, time(NULL)); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
383 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
384 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
385 | |
|
26111
d25772351a75
Stop additional media sessions within a single conversation for grouped contacts.
Michael Ruprecht <maiku@pidgin.im>
parents:
26099
diff
changeset
|
386 | static gboolean |
|
26183
d78798f480da
Remove connection attribute from PurpleMedia.
Michael Ruprecht <maiku@pidgin.im>
parents:
26176
diff
changeset
|
387 | finch_new_media(PurpleMediaManager *manager, PurpleMedia *media, |
|
26746
2a2d45ac9774
Switch media to store accounts rather than connections.
Michael Ruprecht <maiku@pidgin.im>
parents:
26647
diff
changeset
|
388 | PurpleAccount *account, gchar *name, gpointer null) |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
389 | { |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
390 | GntWidget *gntmedia; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
391 | PurpleConversation *conv; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
392 | |
|
26746
2a2d45ac9774
Switch media to store accounts rather than connections.
Michael Ruprecht <maiku@pidgin.im>
parents:
26647
diff
changeset
|
393 | conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, name); |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
394 | |
|
23721
15285d082f6c
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.
Michael Ruprecht <maiku@pidgin.im>
parents:
23704
diff
changeset
|
395 | gntmedia = finch_media_new(media); |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
396 | g_signal_connect(G_OBJECT(gntmedia), "message", G_CALLBACK(gntmedia_message_cb), conv); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
397 | FINCH_MEDIA(gntmedia)->priv->conv = conv; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
398 | finch_conversation_set_info_widget(conv, gntmedia); |
|
26111
d25772351a75
Stop additional media sessions within a single conversation for grouped contacts.
Michael Ruprecht <maiku@pidgin.im>
parents:
26099
diff
changeset
|
399 | return TRUE; |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
400 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
401 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
402 | static PurpleCmdRet |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
403 | call_cmd_cb(PurpleConversation *conv, const char *cmd, char **args, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
404 | char **eror, gpointer data) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
405 | { |
|
26099
2ba28e840a95
Convert serv_* media functions to purple_prpl_* functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
23721
diff
changeset
|
406 | PurpleAccount *account = purple_conversation_get_account(conv); |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
407 | |
|
26495
52846ebe1c7d
Don't assume a PurpleMedia instance will be created immediately.
Michael Ruprecht <maiku@pidgin.im>
parents:
26488
diff
changeset
|
408 | if (!purple_prpl_initiate_media(account, |
|
26123
4948b40fdbec
Make voice calls work with Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26111
diff
changeset
|
409 | purple_conversation_get_name(conv), |
|
26495
52846ebe1c7d
Don't assume a PurpleMedia instance will be created immediately.
Michael Ruprecht <maiku@pidgin.im>
parents:
26488
diff
changeset
|
410 | PURPLE_MEDIA_AUDIO)) |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
411 | return PURPLE_CMD_STATUS_FAILED; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
412 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
413 | return PURPLE_CMD_STATUS_OK; |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
414 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
415 | |
|
26450
99c5f4c41446
Make voice calls in Finch work again.
Michael Ruprecht <maiku@pidgin.im>
parents:
26449
diff
changeset
|
416 | static GstElement * |
|
26522
44401eba59a5
Give more information to element creation functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
26521
diff
changeset
|
417 | create_default_audio_src(PurpleMedia *media, |
|
44401eba59a5
Give more information to element creation functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
26521
diff
changeset
|
418 | const gchar *session_id, const gchar *participant) |
|
26450
99c5f4c41446
Make voice calls in Finch work again.
Michael Ruprecht <maiku@pidgin.im>
parents:
26449
diff
changeset
|
419 | { |
|
26464
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
420 | GstElement *bin, *src, *volume; |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
421 | GstPad *pad, *ghost; |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
422 | double input_volume = purple_prefs_get_int( |
|
26630
4f664673a5b0
Change media volume preference to be specific to Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26616
diff
changeset
|
423 | "/finch/media/audio/volume/input")/10.0; |
|
26464
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
424 | |
|
26631
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
425 | src = gst_element_factory_make("gconfaudiosrc", NULL); |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
426 | if (src == NULL) |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
427 | src = gst_element_factory_make("autoaudiosrc", NULL); |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
428 | if (src == NULL) |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
429 | src = gst_element_factory_make("alsasrc", NULL); |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
430 | if (src == NULL) |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
431 | src = gst_element_factory_make("osssrc", NULL); |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
432 | if (src == NULL) |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
433 | src = gst_element_factory_make("dshowaudiosrc", NULL); |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
434 | if (src == NULL) { |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
435 | purple_debug_error("gntmedia", "Unable to find a suitable " |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
436 | "element for the default audio source.\n"); |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
437 | return NULL; |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
438 | } |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
439 | |
|
26507
629bdcfe9516
Unique elements ought to be named the same as their id.
Michael Ruprecht <maiku@pidgin.im>
parents:
26505
diff
changeset
|
440 | bin = gst_bin_new("finchdefaultaudiosrc"); |
|
26464
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
441 | volume = gst_element_factory_make("volume", "purpleaudioinputvolume"); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
442 | g_object_set(volume, "volume", input_volume, NULL); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
443 | gst_bin_add_many(GST_BIN(bin), src, volume, NULL); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
444 | gst_element_link(src, volume); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
445 | pad = gst_element_get_pad(volume, "src"); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
446 | ghost = gst_ghost_pad_new("ghostsrc", pad); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
447 | gst_element_add_pad(bin, ghost); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
448 | |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
449 | return bin; |
|
26450
99c5f4c41446
Make voice calls in Finch work again.
Michael Ruprecht <maiku@pidgin.im>
parents:
26449
diff
changeset
|
450 | } |
|
99c5f4c41446
Make voice calls in Finch work again.
Michael Ruprecht <maiku@pidgin.im>
parents:
26449
diff
changeset
|
451 | |
|
99c5f4c41446
Make voice calls in Finch work again.
Michael Ruprecht <maiku@pidgin.im>
parents:
26449
diff
changeset
|
452 | static GstElement * |
|
26522
44401eba59a5
Give more information to element creation functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
26521
diff
changeset
|
453 | create_default_audio_sink(PurpleMedia *media, |
|
44401eba59a5
Give more information to element creation functions.
Michael Ruprecht <maiku@pidgin.im>
parents:
26521
diff
changeset
|
454 | const gchar *session_id, const gchar *participant) |
|
26450
99c5f4c41446
Make voice calls in Finch work again.
Michael Ruprecht <maiku@pidgin.im>
parents:
26449
diff
changeset
|
455 | { |
|
26464
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
456 | GstElement *bin, *sink, *volume, *queue; |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
457 | GstPad *pad, *ghost; |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
458 | double output_volume = purple_prefs_get_int( |
|
26630
4f664673a5b0
Change media volume preference to be specific to Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26616
diff
changeset
|
459 | "/finch/media/audio/volume/output")/10.0; |
|
26464
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
460 | |
|
26631
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
461 | sink = gst_element_factory_make("gconfaudiosink", NULL); |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
462 | if (sink == NULL) |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
463 | sink = gst_element_factory_make("autoaudiosink",NULL); |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
464 | if (sink == NULL) { |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
465 | purple_debug_error("gntmedia", "Unable to find a suitable " |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
466 | "element for the default audio sink.\n"); |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
467 | return NULL; |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
468 | } |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
469 | |
|
06e0ebeffbf5
Pick better devices in Finch too and have fallbacks.
Michael Ruprecht <maiku@pidgin.im>
parents:
26630
diff
changeset
|
470 | bin = gst_bin_new("finchdefaultaudiosink"); |
|
26464
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
471 | volume = gst_element_factory_make("volume", "purpleaudiooutputvolume"); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
472 | g_object_set(volume, "volume", output_volume, NULL); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
473 | queue = gst_element_factory_make("queue", NULL); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
474 | gst_bin_add_many(GST_BIN(bin), sink, volume, queue, NULL); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
475 | gst_element_link(volume, sink); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
476 | gst_element_link(queue, volume); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
477 | pad = gst_element_get_pad(queue, "sink"); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
478 | ghost = gst_ghost_pad_new("ghostsink", pad); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
479 | gst_element_add_pad(bin, ghost); |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
480 | |
|
a5ec570b876a
Implement create_default_audio_* functions in gntmedia.c.
Michael Ruprecht <maiku@pidgin.im>
parents:
26450
diff
changeset
|
481 | return bin; |
|
26450
99c5f4c41446
Make voice calls in Finch work again.
Michael Ruprecht <maiku@pidgin.im>
parents:
26449
diff
changeset
|
482 | } |
|
26505
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
483 | #endif /* USE_VV */ |
|
26450
99c5f4c41446
Make voice calls in Finch work again.
Michael Ruprecht <maiku@pidgin.im>
parents:
26449
diff
changeset
|
484 | |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
485 | void finch_media_manager_init(void) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
486 | { |
|
26505
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
487 | #ifdef USE_VV |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
488 | PurpleMediaManager *manager = purple_media_manager_get(); |
|
26616
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
489 | PurpleMediaElementInfo *default_audio_src = |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
490 | g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO, |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
491 | "id", "finchdefaultaudiosrc", |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
492 | "name", "Finch Default Audio Source", |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
493 | "type", PURPLE_MEDIA_ELEMENT_AUDIO |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
494 | | PURPLE_MEDIA_ELEMENT_SRC |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
495 | | PURPLE_MEDIA_ELEMENT_ONE_SRC |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
496 | | PURPLE_MEDIA_ELEMENT_UNIQUE, |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
497 | "create-cb", create_default_audio_src, NULL); |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
498 | PurpleMediaElementInfo *default_audio_sink = |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
499 | g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO, |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
500 | "id", "finchdefaultaudiosink", |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
501 | "name", "Finch Default Audio Sink", |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
502 | "type", PURPLE_MEDIA_ELEMENT_AUDIO |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
503 | | PURPLE_MEDIA_ELEMENT_SINK |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
504 | | PURPLE_MEDIA_ELEMENT_ONE_SINK, |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
505 | "create-cb", create_default_audio_sink, NULL); |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
506 | |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
507 | g_signal_connect(G_OBJECT(manager), "init-media", G_CALLBACK(finch_new_media), NULL); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
508 | purple_cmd_register("call", "", PURPLE_CMD_P_DEFAULT, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
509 | PURPLE_CMD_FLAG_IM, NULL, |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
510 | call_cmd_cb, _("call: Make an audio call."), NULL); |
|
26450
99c5f4c41446
Make voice calls in Finch work again.
Michael Ruprecht <maiku@pidgin.im>
parents:
26449
diff
changeset
|
511 | |
|
26521
f7f083e8cd31
Declare which media caps Pidgin and Finch handle.
Michael Ruprecht <maiku@pidgin.im>
parents:
26514
diff
changeset
|
512 | purple_media_manager_set_ui_caps(manager, |
|
f7f083e8cd31
Declare which media caps Pidgin and Finch handle.
Michael Ruprecht <maiku@pidgin.im>
parents:
26514
diff
changeset
|
513 | PURPLE_MEDIA_CAPS_AUDIO | |
|
f7f083e8cd31
Declare which media caps Pidgin and Finch handle.
Michael Ruprecht <maiku@pidgin.im>
parents:
26514
diff
changeset
|
514 | PURPLE_MEDIA_CAPS_AUDIO_SINGLE_DIRECTION); |
|
f7f083e8cd31
Declare which media caps Pidgin and Finch handle.
Michael Ruprecht <maiku@pidgin.im>
parents:
26514
diff
changeset
|
515 | |
|
26450
99c5f4c41446
Make voice calls in Finch work again.
Michael Ruprecht <maiku@pidgin.im>
parents:
26449
diff
changeset
|
516 | purple_debug_info("gntmedia", "Registering media element types\n"); |
|
26616
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
517 | purple_media_manager_set_active_element(manager, default_audio_src); |
|
4f58db29d346
Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents:
26524
diff
changeset
|
518 | purple_media_manager_set_active_element(manager, default_audio_sink); |
|
26630
4f664673a5b0
Change media volume preference to be specific to Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26616
diff
changeset
|
519 | |
|
4f664673a5b0
Change media volume preference to be specific to Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26616
diff
changeset
|
520 | purple_prefs_add_none("/finch/media"); |
|
4f664673a5b0
Change media volume preference to be specific to Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26616
diff
changeset
|
521 | purple_prefs_add_none("/finch/media/audio"); |
|
4f664673a5b0
Change media volume preference to be specific to Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26616
diff
changeset
|
522 | purple_prefs_add_none("/finch/media/audio/volume"); |
|
4f664673a5b0
Change media volume preference to be specific to Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26616
diff
changeset
|
523 | purple_prefs_add_int("/finch/media/audio/volume/input", 10); |
|
4f664673a5b0
Change media volume preference to be specific to Finch.
Michael Ruprecht <maiku@pidgin.im>
parents:
26616
diff
changeset
|
524 | purple_prefs_add_int("/finch/media/audio/volume/output", 10); |
|
26505
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
525 | #endif |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
526 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
527 | |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
528 | void finch_media_manager_uninit(void) |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
529 | { |
|
26505
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
530 | #ifdef USE_VV |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
531 | PurpleMediaManager *manager = purple_media_manager_get(); |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
532 | g_signal_handlers_disconnect_by_func(G_OBJECT(manager), |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
533 | G_CALLBACK(finch_new_media), NULL); |
|
26505
1b8e849bbc4d
Hide FinchMedia and related structures.
Michael Ruprecht <maiku@pidgin.im>
parents:
26501
diff
changeset
|
534 | #endif |
|
22650
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
535 | } |
|
3ed9cc16bf2a
Some media support in finch. This needs to be updated for the got-accept signal.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
536 | |
|
23700
e47be56bdd2b
Fix compiling with the --disable-vv switch.
Michael Ruprecht <maiku@pidgin.im>
parents:
23697
diff
changeset
|
537 |