comparison libpurple/media.h @ 29538:e18c1d347e37

Break PurpleMediaCodec out into its own file.
author maiku@pidgin.im
date Thu, 22 Oct 2009 00:22:59 +0000
parents f585e10f156b
children dcd52d2b1b97
comparison
equal deleted inserted replaced
29537:b8235e92ede7 29538:e18c1d347e37
26 26
27 #ifndef _PURPLE_MEDIA_H_ 27 #ifndef _PURPLE_MEDIA_H_
28 #define _PURPLE_MEDIA_H_ 28 #define _PURPLE_MEDIA_H_
29 29
30 #include "media/candidate.h" 30 #include "media/candidate.h"
31 #include "media/codec.h"
31 #include "media/enum-types.h" 32 #include "media/enum-types.h"
32 33
33 #include <glib.h> 34 #include <glib.h>
34 #include <glib-object.h> 35 #include <glib-object.h>
35 36
36 G_BEGIN_DECLS 37 G_BEGIN_DECLS
37
38 #define PURPLE_TYPE_MEDIA_CODEC (purple_media_codec_get_type())
39 #define PURPLE_MEDIA_CODEC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA_CODEC, PurpleMediaCodec))
40 #define PURPLE_MEDIA_CODEC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA_CODEC, PurpleMediaCodec))
41 #define PURPLE_IS_MEDIA_CODEC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA_CODEC))
42 #define PURPLE_IS_MEDIA_CODEC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA_CODEC))
43 #define PURPLE_MEDIA_CODEC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA_CODEC, PurpleMediaCodec))
44 38
45 #define PURPLE_TYPE_MEDIA (purple_media_get_type()) 39 #define PURPLE_TYPE_MEDIA (purple_media_get_type())
46 #define PURPLE_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA, PurpleMedia)) 40 #define PURPLE_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA, PurpleMedia))
47 #define PURPLE_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA, PurpleMediaClass)) 41 #define PURPLE_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA, PurpleMediaClass))
48 #define PURPLE_IS_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA)) 42 #define PURPLE_IS_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA))
49 #define PURPLE_IS_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA)) 43 #define PURPLE_IS_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA))
50 #define PURPLE_MEDIA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA, PurpleMediaClass)) 44 #define PURPLE_MEDIA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA, PurpleMediaClass))
51 45
52 /** An opaque structure representing a media call. */ 46 /** An opaque structure representing a media call. */
53 typedef struct _PurpleMedia PurpleMedia; 47 typedef struct _PurpleMedia PurpleMedia;
54 /** An opaque structure representing an audio or video codec. */
55 typedef struct _PurpleMediaCodec PurpleMediaCodec;
56 48
57 #include "signals.h" 49 #include "signals.h"
58 #include "util.h" 50 #include "util.h"
59 51
60 #ifdef __cplusplus 52 #ifdef __cplusplus
67 * @return The media class's GType. 59 * @return The media class's GType.
68 * 60 *
69 * @since 2.6.0 61 * @since 2.6.0
70 */ 62 */
71 GType purple_media_get_type(void); 63 GType purple_media_get_type(void);
72
73 /**
74 * Gets the type of the media codec structure.
75 *
76 * @return The media codec's GType
77 *
78 * @since 2.6.0
79 */
80 GType purple_media_codec_get_type(void);
81
82 /**
83 * Creates a new PurpleMediaCodec instance.
84 *
85 * @param id Codec identifier.
86 * @param encoding_name Name of the media type this encodes.
87 * @param media_type PurpleMediaSessionType of this codec.
88 * @param clock_rate The clock rate this codec encodes at, if applicable.
89 *
90 * @return The newly created PurpleMediaCodec.
91 *
92 * @since 2.6.0
93 */
94 PurpleMediaCodec *purple_media_codec_new(int id, const char *encoding_name,
95 PurpleMediaSessionType media_type, guint clock_rate);
96
97 guint purple_media_codec_get_id(PurpleMediaCodec *codec);
98 gchar *purple_media_codec_get_encoding_name(PurpleMediaCodec *codec);
99 guint purple_media_codec_get_clock_rate(PurpleMediaCodec *codec);
100 guint purple_media_codec_get_channels(PurpleMediaCodec *codec);
101 GList *purple_media_codec_get_optional_parameters(PurpleMediaCodec *codec);
102
103 /**
104 * Creates a string representation of the codec.
105 *
106 * @param codec The codec to create the string of.
107 *
108 * @return The new string representation.
109 *
110 * @since 2.6.0
111 */
112 gchar *purple_media_codec_to_string(const PurpleMediaCodec *codec);
113
114 /**
115 * Adds an optional parameter to the codec.
116 *
117 * @param codec The codec to add the parameter to.
118 * @param name The name of the parameter to add.
119 * @param value The value of the parameter to add.
120 *
121 * @since 2.6.0
122 */
123 void purple_media_codec_add_optional_parameter(PurpleMediaCodec *codec,
124 const gchar *name, const gchar *value);
125
126 /**
127 * Removes an optional parameter from the codec.
128 *
129 * @param codec The codec to remove the parameter from.
130 * @param param A pointer to the parameter to remove.
131 *
132 * @since 2.6.0
133 */
134 void purple_media_codec_remove_optional_parameter(PurpleMediaCodec *codec,
135 PurpleKeyValuePair *param);
136
137 /**
138 * Gets an optional parameter based on the values given.
139 *
140 * @param codec The codec to find the parameter in.
141 * @param name The name of the parameter to search for.
142 * @param value The value to search for or NULL.
143 *
144 * @return The value found or NULL.
145 *
146 * @since 2.6.0
147 */
148 PurpleKeyValuePair *purple_media_codec_get_optional_parameter(
149 PurpleMediaCodec *codec, const gchar *name,
150 const gchar *value);
151
152 /**
153 * Copies a GList of PurpleMediaCodec and its contents.
154 *
155 * @param codecs The list of codecs to be copied.
156 *
157 * @return The copy of the GList.
158 *
159 * @since 2.6.0
160 */
161 GList *purple_media_codec_list_copy(GList *codecs);
162
163 /**
164 * Frees a GList of PurpleMediaCodec and its contents.
165 *
166 * @param codecs The list of codecs to be freed.
167 *
168 * @since 2.6.0
169 */
170 void purple_media_codec_list_free(GList *codecs);
171 64
172 /** 65 /**
173 * Gets a list of session IDs. 66 * Gets a list of session IDs.
174 * 67 *
175 * @param media The media session from which to retrieve session IDs. 68 * @param media The media session from which to retrieve session IDs.