mediamanager.h File Reference

Media Manager API. More...

#include <glib.h>
#include <glib-object.h>
#include "account.h"
#include "media.h"

Go to the source code of this file.

Data Structures

struct  PurpleMediaAppDataCallbacks
 PurpleMediaAppDataCallbacks: : Called when the stream has received data and is readable. More...

Defines

#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:
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.
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:
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.
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:
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.
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:
manager The 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:
manager The 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:
manager The media manager to get the sessions from.
account The 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:
manager The 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:
manager The media manager to get the sessions from.
account The 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:
manager The 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:
manager The media manager to remove the media session from.
media The 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:
manager The manager the output window was registered with.
output_window_id The 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:
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.
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:
manager The manager to set the caps on.
backend_type The 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:
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.
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:
manager The manager to set the caps on.
caps The caps to set.
Since:
2.6.0