TfContent

TfContent — Represent the Content of a channel handled by TfChannel

Synopsis

                    TfContent;
                    TfContentClass;
GstIterator *       tf_content_iterate_src_pads         (TfContent *content,
                                                         guint *handles,
                                                         guint handle_count);
void                tf_content_error                    (TfContent *content,
                                                         guint reason,
                                                         const gchar *detailed_reason,
                                                         const gchar *message_format,
                                                         ...);
void                tf_content_error_literal            (TfContent *content,
                                                         guint reason,
                                                         const gchar *detailed_reason,
                                                         const gchar *message);

Object Hierarchy

  GObject
   +----TfContent

Properties

  "fs-conference"            FsConference*         : Read
  "fs-session"               FsSession*            : Read
  "media-type"               FsMediaType           : Read
  "object-path"              gchar*                : Read
  "sink-pad"                 GstPad*               : Read
  "tf-channel"               TfChannel*            : Read

Signals

  "src-pad-added"                                  : Run Last
  "start-receiving"                                : Run Last
  "start-sending"                                  : Run Last
  "stop-receiving"                                 : Run Last
  "stop-sending"                                   : Run Last

Description

Objects of this class allow the user to handle the media side of a Telepathy channel handled by TfChannel.

This object is created by the TfChannel and the user is notified of its creation by the "content-added" signal. In the callback for this signal, the user should call tf_content_set_codec_preferences() and connect to the "src-pad-added" signal.

Details

TfContent

typedef struct _TfContent TfContent;

This structure is private, this class is not subclassable.


TfContentClass

typedef struct _TfContentClass TfContentClass;

This structure is private, this class is not subclassable.


tf_content_iterate_src_pads ()

GstIterator *       tf_content_iterate_src_pads         (TfContent *content,
                                                         guint *handles,
                                                         guint handle_count);

Provides a iterator that can be used to iterate through all of the src pads that are are used to receive from a group of Telepathy handles.

content :

a TfContent

handles :

a 0 terminated array of guint representing Telepathy handles

handle_count :

the numner of handles in handles

Returns :

a GstIterator

tf_content_error ()

void                tf_content_error                    (TfContent *content,
                                                         guint reason,
                                                         const gchar *detailed_reason,
                                                         const gchar *message_format,
                                                         ...);

Send an error to the Content to the CM, the effect is most likely that the content will be removed.

content :

a TfContent

reason :

the reason (a TfContentRemovalReason)

detailed_reason :

The detailled error (as a DBus name)

message_format :

error Message with printf style formatting

... :

Parameters to insert into the message_format string

tf_content_error_literal ()

void                tf_content_error_literal            (TfContent *content,
                                                         guint reason,
                                                         const gchar *detailed_reason,
                                                         const gchar *message);

Send an error to the Content to the CM, the effect is most likely that the content will be removed.

content :

a TfContent

reason :

the reason (a TfContentRemovalReason)

detailed_reason :

The detailled error (as a DBus name)

message :

error Message

Property Details

The "fs-conference" property

  "fs-conference"            FsConference*         : Read

The Farsight2 conference for this content (could be the same as other contents).


The "fs-session" property

  "fs-session"               FsSession*            : Read

The Farsight2 session for this content.


The "media-type" property

  "media-type"               FsMediaType           : Read

The FsMediaType for this content.

Default value: FS_MEDIA_TYPE_AUDIO


The "object-path" property

  "object-path"              gchar*                : Read

D-Bus object path of the Telepathy content which this content operates on.

Default value: NULL


The "sink-pad" property

  "sink-pad"                 GstPad*               : Read

Sink GstPad for this content.


The "tf-channel" property

  "tf-channel"               TfChannel*            : Read

The Telepathy-Farsight Channel for this object.

Signal Details

The "src-pad-added" signal

void                user_function                      (TfContent *content,
                                                        guint      handle,
                                                        FsStream  *stream,
                                                        GstPad    *pad,
                                                        FsCodec   *codec,
                                                        gpointer   user_data)      : Run Last

This signal is emitted when a data is coming on a new pad. This signal is not emitted on the main thread, so special care must be made to lock the relevant data. When the callback returns from this signal, data will start flowing through the pad, so the application MUST connect a sink.

content :

the TfContent

handle :

the handle of the remote party producing the content on this pad or 0 if unknown

stream :

the FsStream for this pad

pad :

a GstPad

codec :

the FsCodec for this pad

user_data :

user data set when the signal handler was connected.

The "start-receiving" signal

gboolean            user_function                      (TfContent *content,
                                                        gpointer   handles,
                                                        guint      handle_count,
                                                        gpointer   user_data)         : Run Last

This signal is emitted when the connection managers requests that the application prepares itself to start receiving data again from certain handles.

This signal will only be emitted after the "stop-receiving" signal has succeeded. It will not be emitted right after "src-pad-added".

content :

the TfContent

handles :

a 0-terminated array of guint containing the handles

handle_count :

The number of handles in the handles array

user_data :

user data set when the signal handler was connected.

Returns :

TRUE if the application can start receiving data or FALSE otherwise

The "start-sending" signal

gboolean            user_function                      (TfContent *content,
                                                        gpointer   user_data)      : Run Last

This signal is emitted when the connection manager ask to send media. For example, this can be used to open a camera, start recording from a microphone or play back a file. The application should start sending data on the "sink-pad"

content :

the TfContent

user_data :

user data set when the signal handler was connected.

Returns :

TRUE if the application can start providing data or FALSE otherwise

The "stop-receiving" signal

void                user_function                      (TfContent *content,
                                                        gpointer   handles,
                                                        guint      handle_count,
                                                        gpointer   user_data)         : Run Last

This signal is emitted when the connection manager wants to tell the application that it is now allowed to stop receiving.

content :

the TfContent

handles :

a 0-terminated array of guint containing the handles

handle_count :

The number of handles in the handles array

user_data :

user data set when the signal handler was connected.

The "stop-sending" signal

void                user_function                      (TfContent *content,
                                                        gpointer   user_data)      : Run Last

This signal is emitted when the connection manager ask to stop sending media

content :

the TfContent

user_data :

user data set when the signal handler was connected.