pidgin 2.14.14dev
|
Media Manager API. More...
Go to the source code of this file.
Data Structures | |
struct | PurpleMediaAppDataCallbacks |
PurpleMediaAppDataCallbacks: @readable: Called when the stream has received data and is readable. More... | |
Macros | |
#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)) |
Typedefs | |
typedef struct _PurpleMediaManager | PurpleMediaManager |
An opaque structure representing a group of (usually all) media calls. | |
typedef struct _PurpleMediaManagerClass | PurpleMediaManagerClass |
The GObject class structure of the PurpleMediaManager object. | |
Functions | |
Media Manager API <br> | |
GType | purple_media_manager_get_type (void) |
Gets the media manager's GType. | |
PurpleMediaManager * | purple_media_manager_get (void) |
Gets the "global" media manager object. | |
PurpleMedia * | purple_media_manager_create_media (PurpleMediaManager *manager, PurpleAccount *account, const char *conference_type, const char *remote_user, gboolean initiator) |
Creates a media session. | |
GList * | purple_media_manager_get_media (PurpleMediaManager *manager) |
Gets all of the media sessions. | |
GList * | purple_media_manager_get_media_by_account (PurpleMediaManager *manager, PurpleAccount *account) |
Gets all of the media sessions for a given account. | |
void | purple_media_manager_remove_media (PurpleMediaManager *manager, PurpleMedia *media) |
Removes a media session from the media manager. | |
PurpleMedia * | purple_media_manager_create_private_media (PurpleMediaManager *manager, PurpleAccount *account, const char *conference_type, const char *remote_user, gboolean initiator) |
Creates a private media session. | |
GList * | purple_media_manager_get_private_media (PurpleMediaManager *manager) |
Gets all of the private media sessions. | |
GList * | purple_media_manager_get_private_media_by_account (PurpleMediaManager *manager, PurpleAccount *account) |
Gets all of the private media sessions for a given account. | |
gboolean | purple_media_manager_create_output_window (PurpleMediaManager *manager, PurpleMedia *media, const gchar *session_id, const gchar *participant) |
Signals that output windows should be created for the chosen stream. | |
gulong | purple_media_manager_set_output_window (PurpleMediaManager *manager, PurpleMedia *media, const gchar *session_id, const gchar *participant, gulong window_id) |
Registers a video output window to be created for a given stream. | |
gboolean | purple_media_manager_remove_output_window (PurpleMediaManager *manager, gulong output_window_id) |
Remove a previously registerd output window. | |
void | purple_media_manager_remove_output_windows (PurpleMediaManager *manager, PurpleMedia *media, const gchar *session_id, const gchar *participant) |
Remove all output windows for a given conference/session/participant/stream. | |
void | purple_media_manager_set_ui_caps (PurpleMediaManager *manager, PurpleMediaCaps caps) |
Sets which media caps the UI supports. | |
PurpleMediaCaps | purple_media_manager_get_ui_caps (PurpleMediaManager *manager) |
Gets which media caps the UI supports. | |
void | purple_media_manager_set_backend_type (PurpleMediaManager *manager, GType backend_type) |
Sets which media backend type media objects will use. | |
GType | purple_media_manager_get_backend_type (PurpleMediaManager *manager) |
Gets which media backend type media objects will use. | |
void | purple_media_manager_set_application_data_callbacks (PurpleMediaManager *manager, PurpleMedia *media, const gchar *session_id, const gchar *participant, PurpleMediaAppDataCallbacks *callbacks, gpointer user_data, GDestroyNotify notify) |
purple_media_manager_set_application_data_callbacks: @manager: The manager to register the callbacks with. | |
gint | purple_media_manager_send_application_data (PurpleMediaManager *manager, PurpleMedia *media, const gchar *session_id, const gchar *participant, gpointer buffer, guint size, gboolean blocking) |
purple_media_manager_send_application_data: @manager: The manager to send data with. | |
gint | purple_media_manager_receive_application_data (PurpleMediaManager *manager, PurpleMedia *media, const gchar *session_id, const gchar *participant, gpointer buffer, guint max_size, gboolean blocking) |
purple_media_manager_receive_application_data: @manager: The manager to receive data with. | |
Media Manager API.
Definition in file mediamanager.h.
#define PURPLE_IS_MEDIA_MANAGER | ( | obj | ) | (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA_MANAGER)) |
Definition at line 70 of file mediamanager.h.
#define PURPLE_IS_MEDIA_MANAGER_CLASS | ( | klass | ) | (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA_MANAGER)) |
Definition at line 71 of file mediamanager.h.
#define PURPLE_MEDIA_MANAGER | ( | obj | ) | (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA_MANAGER, PurpleMediaManager)) |
Definition at line 68 of file mediamanager.h.
#define PURPLE_MEDIA_MANAGER_CLASS | ( | klass | ) | (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA_MANAGER, PurpleMediaManagerClass)) |
Definition at line 69 of file mediamanager.h.
#define PURPLE_MEDIA_MANAGER_GET_CLASS | ( | obj | ) | (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA_MANAGER, PurpleMediaManagerClass)) |
Definition at line 72 of file mediamanager.h.
#define PURPLE_TYPE_MEDIA_MANAGER (purple_media_manager_get_type()) |
Definition at line 67 of file mediamanager.h.
typedef struct _PurpleMediaManager PurpleMediaManager |
An opaque structure representing a group of (usually all) media calls.
Definition at line 34 of file mediamanager.h.
typedef struct _PurpleMediaManagerClass PurpleMediaManagerClass |
The GObject class structure of the PurpleMediaManager object.
Definition at line 36 of file mediamanager.h.
PurpleMedia * purple_media_manager_create_media | ( | PurpleMediaManager * | manager, |
PurpleAccount * | account, | ||
const char * | conference_type, | ||
const char * | remote_user, | ||
gboolean | initiator | ||
) |
Creates a media session.
manager | The media manager to create the session under. |
account | The account to create the session on. |
conference_type | The conference type to feed into Farsight2. |
remote_user | The remote user to initiate the session with. |
initiator | TRUE if the local user is the initiator of this media call, FALSE otherwise. |
gboolean purple_media_manager_create_output_window | ( | PurpleMediaManager * | manager, |
PurpleMedia * | media, | ||
const gchar * | session_id, | ||
const gchar * | participant | ||
) |
Signals that output windows should be created for the chosen stream.
This shouldn't be called outside of mediamanager.c and media.c
manager | Manager the output windows are registered with. |
media | Media session the output windows are registered for. |
session_id | The session the output windows are registered with. |
participant | The participant the output windows are registered with. |
PurpleMedia * purple_media_manager_create_private_media | ( | PurpleMediaManager * | manager, |
PurpleAccount * | account, | ||
const char * | conference_type, | ||
const char * | remote_user, | ||
gboolean | initiator | ||
) |
Creates a private media session.
A private media session is a media session which is private to the caller. It is meant to be used by plugins to create a media session that the front-end does not get notified about. It is useful especially for sessions with a type of PURPLE_MEDIA_APPLICATION which the front-end wouldn't know how to handle.
manager | The media manager to create the session under. |
account | The account to create the session on. |
conference_type | The conference type to feed into Farsight2. |
remote_user | The remote user to initiate the session with. |
initiator | TRUE if the local user is the initiator of this media call, FALSE otherwise. |
PurpleMediaManager * purple_media_manager_get | ( | void | ) |
Gets the "global" media manager object.
It's created if it doesn't already exist.
GType purple_media_manager_get_backend_type | ( | PurpleMediaManager * | manager | ) |
Gets which media backend type media objects will use.
manager | The manager to get the media backend type from. |
GList * purple_media_manager_get_media | ( | PurpleMediaManager * | manager | ) |
Gets all of the media sessions.
manager | The media manager to get all of the sessions from. |
GList * purple_media_manager_get_media_by_account | ( | PurpleMediaManager * | manager, |
PurpleAccount * | account | ||
) |
Gets all of the media sessions for a given account.
manager | The media manager to get the sessions from. |
account | The account the sessions are on. |
GList * purple_media_manager_get_private_media | ( | PurpleMediaManager * | manager | ) |
Gets all of the private media sessions.
manager | The media manager to get all of the sessions from. |
GList * purple_media_manager_get_private_media_by_account | ( | PurpleMediaManager * | manager, |
PurpleAccount * | account | ||
) |
Gets all of the private media sessions for a given account.
manager | The media manager to get the sessions from. |
account | The account the sessions are on. |
GType purple_media_manager_get_type | ( | void | ) |
Gets the media manager's GType.
PurpleMediaCaps purple_media_manager_get_ui_caps | ( | PurpleMediaManager * | manager | ) |
Gets which media caps the UI supports.
manager | The manager to get caps from. |
gint purple_media_manager_receive_application_data | ( | PurpleMediaManager * | manager, |
PurpleMedia * | media, | ||
const gchar * | session_id, | ||
const gchar * | participant, | ||
gpointer | buffer, | ||
guint | max_size, | ||
gboolean | blocking | ||
) |
purple_media_manager_receive_application_data: @manager: The manager to receive data with.
@media: The media instance to which the session belongs. @session_id: The session to receive data from. @participant: The participant to receive data from. @buffer: The buffer to receive data into. @max_size: The max_size of @buffer @blocking: Whether to block until the buffer is entirely filled or return with currently available data.
Receive a buffer of data from a #PURPLE_MEDIA_APPLICATION session. If @blocking is set, unless an error occured, the function will not return until @max_size bytes are read.
Returns: Number of bytes received or -1 in case of error.
void purple_media_manager_remove_media | ( | PurpleMediaManager * | manager, |
PurpleMedia * | media | ||
) |
Removes a media session from the media manager.
manager | The media manager to remove the media session from. |
media | The media session to remove. |
gboolean purple_media_manager_remove_output_window | ( | PurpleMediaManager * | manager, |
gulong | output_window_id | ||
) |
Remove a previously registerd output window.
manager | The manager the output window was registered with. |
output_window_id | The ID of the output window. |
void purple_media_manager_remove_output_windows | ( | PurpleMediaManager * | manager, |
PurpleMedia * | media, | ||
const gchar * | session_id, | ||
const gchar * | participant | ||
) |
Remove all output windows for a given conference/session/participant/stream.
manager | The manager the output windows were registered with. |
media | The media instance the output windows were registered for. |
session_id | The session the output windows were registered for. |
participant | The participant the output windows were registered for. |
gint purple_media_manager_send_application_data | ( | PurpleMediaManager * | manager, |
PurpleMedia * | media, | ||
const gchar * | session_id, | ||
const gchar * | participant, | ||
gpointer | buffer, | ||
guint | size, | ||
gboolean | blocking | ||
) |
purple_media_manager_send_application_data: @manager: The manager to send data with.
@media: The media instance to which the session belongs. @session_id: The session to send data to. @participant: The participant to send data to. @buffer: The buffer of data to send. @size: The size of @buffer @blocking: Whether to block until the data was send or not.
Sends a buffer of data to a #PURPLE_MEDIA_APPLICATION session. If @blocking is set, unless an error occured, the function will not return until the data has been flushed into the network. If the stream is not writable, the data will be queued. It is the responsability of the user to stop sending data when the stream isn't writable anymore. It is also the responsability of the user to only start sending data after the stream has been configured correctly (encryption parameters for example).
Returns: Number of bytes sent or -1 in case of error.
void purple_media_manager_set_application_data_callbacks | ( | PurpleMediaManager * | manager, |
PurpleMedia * | media, | ||
const gchar * | session_id, | ||
const gchar * | participant, | ||
PurpleMediaAppDataCallbacks * | callbacks, | ||
gpointer | user_data, | ||
GDestroyNotify | notify | ||
) |
purple_media_manager_set_application_data_callbacks: @manager: The manager to register the callbacks with.
@media: The media instance to register the callbacks with. @session_id: The session to register the callbacks with. @participant: The participant to register the callbacks with. @callbacks: The callbacks to be set on the session. @user_data: a user_data argument for the callbacks. @notify: a destroy notify function.
Set callbacks on a session to be called when the stream becomes writable or readable for media sessions of type #PURPLE_MEDIA_APPLICATION
void purple_media_manager_set_backend_type | ( | PurpleMediaManager * | manager, |
GType | backend_type | ||
) |
Sets which media backend type media objects will use.
manager | The manager to set the caps on. |
backend_type | The media backend type to use. |
gulong purple_media_manager_set_output_window | ( | PurpleMediaManager * | manager, |
PurpleMedia * | media, | ||
const gchar * | session_id, | ||
const gchar * | participant, | ||
gulong | window_id | ||
) |
Registers a video output window to be created for a given stream.
manager | The manager to register the output window with. |
media | The media instance to find the stream in. |
session_id | The session the stream is associated with. |
participant | The participant the stream is associated with. |
window_id | The window ID to embed the video in. |
void purple_media_manager_set_ui_caps | ( | PurpleMediaManager * | manager, |
PurpleMediaCaps | caps | ||
) |
Sets which media caps the UI supports.
manager | The manager to set the caps on. |
caps | The caps to set. |