/usr/include/libpurple/mediamanager.h is in libpurple-dev 1:2.10.3-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 | /**
* @file mediamanager.h Media Manager API
* @ingroup core
*/
/* purple
*
* Purple is the legal property of its developers, whose names are too numerous
* to list here. Please refer to the COPYRIGHT file distributed with this
* source distribution.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
*/
#ifndef _PURPLE_MEDIA_MANAGER_H_
#define _PURPLE_MEDIA_MANAGER_H_
#include <glib.h>
#include <glib-object.h>
/** An opaque structure representing a group of (usually all) media calls. */
typedef struct _PurpleMediaManager PurpleMediaManager;
/** The GObject class structure of the PurpleMediaManager object. */
typedef struct _PurpleMediaManagerClass PurpleMediaManagerClass;
#include "account.h"
#include "media.h"
G_BEGIN_DECLS
#define PURPLE_TYPE_MEDIA_MANAGER (purple_media_manager_get_type())
#define PURPLE_MEDIA_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA_MANAGER, PurpleMediaManager))
#define PURPLE_MEDIA_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA_MANAGER, PurpleMediaManagerClass))
#define PURPLE_IS_MEDIA_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA_MANAGER))
#define PURPLE_IS_MEDIA_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA_MANAGER))
#define PURPLE_MEDIA_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA_MANAGER, PurpleMediaManagerClass))
#ifdef __cplusplus
extern "C" {
#endif
/**************************************************************************/
/** @name Media Manager API */
/**************************************************************************/
/*@{*/
/**
* Gets the media manager's GType.
*
* @return The media manager's GType.
*
* @since 2.6.0
*/
GType purple_media_manager_get_type(void);
/**
* Gets the "global" media manager object. It's created if it doesn't already exist.
*
* @return The "global" instance of the media manager object.
*
* @since 2.6.0
*/
PurpleMediaManager *purple_media_manager_get(void);
/**
* Creates a media session.
*
* @param manager The media manager to create the session under.
* @param account The account to create the session on.
* @param conference_type The conference type to feed into Farsight2.
* @param remote_user The remote user to initiate the session with.
* @param initiator TRUE if the local user is the initiator of this media call, FALSE otherwise.
*
* @return A newly created media session.
*
* @since 2.6.0
*/
PurpleMedia *purple_media_manager_create_media(PurpleMediaManager *manager,
PurpleAccount *account,
const char *conference_type,
const char *remote_user,
gboolean initiator);
/**
* Gets all of the media sessions.
*
* @param manager The media manager to get all of the sessions from.
*
* @return A list of all the media sessions.
*
* @since 2.6.0
*/
GList *purple_media_manager_get_media(PurpleMediaManager *manager);
/**
* Gets all of the media sessions for a given account.
*
* @param manager The media manager to get the sessions from.
* @param account The account the sessions are on.
*
* @return A list of the media sessions on the given account.
*
* @since 2.6.0
*/
GList *purple_media_manager_get_media_by_account(
PurpleMediaManager *manager, PurpleAccount *account);
/**
* Removes a media session from the media manager.
*
* @param manager The media manager to remove the media session from.
* @param media The media session to remove.
*
* @since 2.6.0
*/
void
purple_media_manager_remove_media(PurpleMediaManager *manager,
PurpleMedia *media);
/**
* Signals that output windows should be created for the chosen stream.
*
* This shouldn't be called outside of mediamanager.c and media.c
*
* @param manager Manager the output windows are registered with.
* @param media Media session the output windows are registered for.
* @param session_id The session the output windows are registered with.
* @param participant The participant the output windows are registered with.
*
* @return TRUE if it succeeded, FALSE if it failed.
*
* @since 2.6.0
*/
gboolean purple_media_manager_create_output_window(
PurpleMediaManager *manager, PurpleMedia *media,
const gchar *session_id, const gchar *participant);
/**
* Registers a video output window to be created for a given stream.
*
* @param manager The manager to register the output window with.
* @param media The media instance to find the stream in.
* @param session_id The session the stream is associated with.
* @param participant The participant the stream is associated with.
* @param window_id The window ID to embed the video in.
*
* @return A unique ID to the registered output window, 0 if it failed.
*
* @since 2.6.0
*/
gulong purple_media_manager_set_output_window(PurpleMediaManager *manager,
PurpleMedia *media, const gchar *session_id,
const gchar *participant, gulong window_id);
/**
* Remove a previously registerd output window.
*
* @param manager The manager the output window was registered with.
* @param output_window_id The ID of the output window.
*
* @return TRUE if it found the output window and was successful, else FALSE.
*
* @since 2.6.0
*/
gboolean purple_media_manager_remove_output_window(
PurpleMediaManager *manager, gulong output_window_id);
/**
* Remove all output windows for a given conference/session/participant/stream.
*
* @param manager The manager the output windows were registered with.
* @param media The media instance the output windows were registered for.
* @param session_id The session the output windows were registered for.
* @param participant The participant the output windows were registered for.
*
* @since 2.6.0
*/
void purple_media_manager_remove_output_windows(
PurpleMediaManager *manager, PurpleMedia *media,
const gchar *session_id, const gchar *participant);
/**
* Sets which media caps the UI supports.
*
* @param manager The manager to set the caps on.
* @param caps The caps to set.
*
* @since 2.6.0
*/
void purple_media_manager_set_ui_caps(PurpleMediaManager *manager,
PurpleMediaCaps caps);
/**
* Gets which media caps the UI supports.
*
* @param manager The manager to get caps from.
*
* @return caps The caps retrieved.
*
* @since 2.6.0
*/
PurpleMediaCaps purple_media_manager_get_ui_caps(PurpleMediaManager *manager);
/**
* Sets which media backend type media objects will use.
*
* @param manager The manager to set the caps on.
* @param backend_type The media backend type to use.
*
* @since 2.7.0
*/
void purple_media_manager_set_backend_type(PurpleMediaManager *manager,
GType backend_type);
/**
* Gets which media backend type media objects will use.
*
* @param manager The manager to get the media backend type from.
*
* @return The type of media backend type media objects will use.
*
* @since 2.7.0
*/
GType purple_media_manager_get_backend_type(PurpleMediaManager *manager);
/*}@*/
#ifdef __cplusplus
}
#endif
G_END_DECLS
#endif /* _PURPLE_MEDIA_MANAGER_H_ */
|