mediamanager.h File Reference

Media Manager API. More...

#include <glib.h>
#include <glib-object.h>
#include "account.h"
#include "media.h"
Include dependency graph for mediamanager.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  PurpleMediaAppDataCallbacks
 PurpleMediaAppDataCallbacks: : 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
GType purple_media_manager_get_type (void)
 Gets the media manager's GType.
PurpleMediaManagerpurple_media_manager_get (void)
 Gets the "global" media manager object.
PurpleMediapurple_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.
PurpleMediapurple_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: : 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: : 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: : The manager to receive data with.

Detailed Description

Media Manager API.

Definition in file mediamanager.h.

Typedef Documentation

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.

Function Documentation

PurpleMedia* purple_media_manager_create_media ( PurpleMediaManager manager,
PurpleAccount account,
const char *  conference_type,
const char *  remote_user,
gboolean  initiator 
)

Creates a media session.

Parameters
managerThe media manager to create the session under.
accountThe account to create the session on.
conference_typeThe conference type to feed into Farsight2.
remote_userThe remote user to initiate the session with.
initiatorTRUE if the local user is the initiator of this media call, FALSE otherwise.
Returns
A newly created media session.
Since
2.6.0
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

Parameters
managerManager the output windows are registered with.
mediaMedia session the output windows are registered for.
session_idThe session the output windows are registered with.
participantThe participant the output windows are registered with.
Returns
TRUE if it succeeded, FALSE if it failed.
Since
2.6.0
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.

Parameters
managerThe media manager to create the session under.
accountThe account to create the session on.
conference_typeThe conference type to feed into Farsight2.
remote_userThe remote user to initiate the session with.
initiatorTRUE if the local user is the initiator of this media call, FALSE otherwise.
Returns
A newly created media session.
Since
2.11.0
PurpleMediaManager* purple_media_manager_get ( void  )

Gets the "global" media manager object.

It's created if it doesn't already exist.

Returns
The "global" instance of the media manager object.
Since
2.6.0
GType purple_media_manager_get_backend_type ( PurpleMediaManager manager)

Gets which media backend type media objects will use.

Parameters
managerThe manager to get the media backend type from.
Returns
The type of media backend type media objects will use.
Since
2.7.0
GList* purple_media_manager_get_media ( PurpleMediaManager manager)

Gets all of the media sessions.

Parameters
managerThe media manager to get all of the sessions from.
Returns
A list of all the media sessions.
Since
2.6.0
GList* purple_media_manager_get_media_by_account ( PurpleMediaManager manager,
PurpleAccount account 
)

Gets all of the media sessions for a given account.

Parameters
managerThe media manager to get the sessions from.
accountThe account the sessions are on.
Returns
A list of the media sessions on the given account.
Since
2.6.0
GList* purple_media_manager_get_private_media ( PurpleMediaManager manager)

Gets all of the private media sessions.

Parameters
managerThe media manager to get all of the sessions from.
Returns
A list of all the private media sessions.
Since
2.11.0
GList* purple_media_manager_get_private_media_by_account ( PurpleMediaManager manager,
PurpleAccount account 
)

Gets all of the private media sessions for a given account.

Parameters
managerThe media manager to get the sessions from.
accountThe account the sessions are on.
Returns
A list of the private media sessions on the given account.
Since
2.11.0
GType purple_media_manager_get_type ( void  )

Gets the media manager's GType.

Returns
The media manager's GType.
Since
2.6.0
PurpleMediaCaps purple_media_manager_get_ui_caps ( PurpleMediaManager manager)

Gets which media caps the UI supports.

Parameters
managerThe manager to get caps from.
Returns
caps The caps retrieved.
Since
2.6.0
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: : The manager to receive data with.

: The media instance to which the session belongs. : The session to receive data from. : The participant to receive data from. : The buffer to receive data into. : The max_size of : 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 is set, unless an error occured, the function will not return until 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.

Parameters
managerThe media manager to remove the media session from.
mediaThe media session to remove.
Since
2.6.0
gboolean purple_media_manager_remove_output_window ( PurpleMediaManager manager,
gulong  output_window_id 
)

Remove a previously registerd output window.

Parameters
managerThe manager the output window was registered with.
output_window_idThe ID of the output window.
Returns
TRUE if it found the output window and was successful, else FALSE.
Since
2.6.0
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.

Parameters
managerThe manager the output windows were registered with.
mediaThe media instance the output windows were registered for.
session_idThe session the output windows were registered for.
participantThe participant the output windows were registered for.
Since
2.6.0
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: : The manager to send data with.

: The media instance to which the session belongs. : The session to send data to. : The participant to send data to. : The buffer of data to send. : The size of : Whether to block until the data was send or not.

Sends a buffer of data to a #PURPLE_MEDIA_APPLICATION session. If 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: : The manager to register the callbacks with.

: The media instance to register the callbacks with. : The session to register the callbacks with. : The participant to register the callbacks with. : The callbacks to be set on the session. : a user_data argument for the callbacks. : 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.

Parameters
managerThe manager to set the caps on.
backend_typeThe media backend type to use.
Since
2.7.0
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.

Parameters
managerThe manager to register the output window with.
mediaThe media instance to find the stream in.
session_idThe session the stream is associated with.
participantThe participant the stream is associated with.
window_idThe window ID to embed the video in.
Returns
A unique ID to the registered output window, 0 if it failed.
Since
2.6.0
void purple_media_manager_set_ui_caps ( PurpleMediaManager manager,
PurpleMediaCaps  caps 
)

Sets which media caps the UI supports.

Parameters
managerThe manager to set the caps on.
capsThe caps to set.
Since
2.6.0
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!