00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _PURPLE_MEDIA_H_
00028 #define _PURPLE_MEDIA_H_
00029
00030 #include "media/candidate.h"
00031 #include "media/codec.h"
00032 #include "media/enum-types.h"
00033
00034 #include <glib.h>
00035 #include <glib-object.h>
00036
00037 G_BEGIN_DECLS
00038
00039 #define PURPLE_TYPE_MEDIA (purple_media_get_type())
00040 #define PURPLE_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA, PurpleMedia))
00041 #define PURPLE_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA, PurpleMediaClass))
00042 #define PURPLE_IS_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA))
00043 #define PURPLE_IS_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA))
00044 #define PURPLE_MEDIA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA, PurpleMediaClass))
00045
00047 typedef struct _PurpleMedia PurpleMedia;
00048
00049 #include "signals.h"
00050 #include "util.h"
00051
00052 #ifdef __cplusplus
00053 extern "C" {
00054 #endif
00055
00063 GType purple_media_get_type(void);
00064
00074 GList *purple_media_get_session_ids(PurpleMedia *media);
00075
00085 PurpleAccount *purple_media_get_account(PurpleMedia *media);
00086
00096 gpointer purple_media_get_prpl_data(PurpleMedia *media);
00097
00106 void purple_media_set_prpl_data(PurpleMedia *media, gpointer prpl_data);
00107
00117 void purple_media_error(PurpleMedia *media, const gchar *error, ...);
00118
00128 void purple_media_end(PurpleMedia *media, const gchar *session_id,
00129 const gchar *participant);
00130
00142 void purple_media_stream_info(PurpleMedia *media, PurpleMediaInfoType type,
00143 const gchar *session_id, const gchar *participant,
00144 gboolean local);
00145
00164 void purple_media_set_params(PurpleMedia *media,
00165 guint num_params, GParameter *params);
00166
00178 const gchar **purple_media_get_available_params(PurpleMedia *media);
00179
00190 gboolean purple_media_param_is_supported(PurpleMedia *media, const gchar *param);
00191
00211 gboolean purple_media_add_stream(PurpleMedia *media, const gchar *sess_id,
00212 const gchar *who, PurpleMediaSessionType type,
00213 gboolean initiator, const gchar *transmitter,
00214 guint num_params, GParameter *params);
00215
00226 PurpleMediaSessionType purple_media_get_session_type(PurpleMedia *media, const gchar *sess_id);
00227
00237 struct _PurpleMediaManager *purple_media_get_manager(PurpleMedia *media);
00238
00249 GList *purple_media_get_codecs(PurpleMedia *media, const gchar *sess_id);
00250
00261 void purple_media_add_remote_candidates(PurpleMedia *media,
00262 const gchar *sess_id,
00263 const gchar *participant,
00264 GList *remote_candidates);
00265
00275 GList *purple_media_get_local_candidates(PurpleMedia *media,
00276 const gchar *sess_id,
00277 const gchar *participant);
00278
00291 GList *purple_media_get_active_local_candidates(PurpleMedia *media,
00292 const gchar *sess_id, const gchar *participant);
00293
00306 GList *purple_media_get_active_remote_candidates(PurpleMedia *media,
00307 const gchar *sess_id, const gchar *participant);
00308
00321 gboolean purple_media_set_remote_codecs(PurpleMedia *media, const gchar *sess_id,
00322 const gchar *participant, GList *codecs);
00323
00335 gboolean purple_media_candidates_prepared(PurpleMedia *media,
00336 const gchar *session_id, const gchar *participant);
00337
00349 gboolean purple_media_set_send_codec(PurpleMedia *media, const gchar *sess_id, PurpleMediaCodec *codec);
00350
00361 gboolean purple_media_codecs_ready(PurpleMedia *media, const gchar *sess_id);
00362
00374 gboolean purple_media_is_initiator(PurpleMedia *media,
00375 const gchar *sess_id, const gchar *participant);
00376
00388 gboolean purple_media_accepted(PurpleMedia *media, const gchar *sess_id,
00389 const gchar *participant);
00390
00400 void purple_media_set_input_volume(PurpleMedia *media, const gchar *session_id, double level);
00401
00412 void purple_media_set_output_volume(PurpleMedia *media, const gchar *session_id,
00413 const gchar *participant, double level);
00414
00427 gulong purple_media_set_output_window(PurpleMedia *media,
00428 const gchar *session_id, const gchar *participant,
00429 gulong window_id);
00430
00438 void purple_media_remove_output_windows(PurpleMedia *media);
00439
00440 #ifdef __cplusplus
00441 }
00442 #endif
00443
00444 G_END_DECLS
00445
00446 #endif