WockyJingleContent

## WockyJingleContent WockyJingleContent |

## Synopsis

    enum                WockyJingleMediaType;
    enum                WockyJingleContentState;
                        WockyJingleCandidate;
    struct              WockyJingleContentClass;
    void                wocky_jingle_content_parse_add      (WockyJingleContent *c,
                                                             WockyNode *content_node,
                                                             gboolean google_mode,
                                                             GError **error);
    void                wocky_jingle_content_update_senders (WockyJingleContent *c,
                                                             WockyNode *content_node,
                                                             GError **error);
    void                wocky_jingle_content_produce_node   (WockyJingleContent *c,
                                                             WockyNode *parent,
                                                             gboolean include_description,
                                                             gboolean include_transport,
                                                             WockyNode **trans_node_out);
    void                wocky_jingle_content_parse_accept   (WockyJingleContent *c,
                                                             WockyNode *content_node,
                                                             gboolean google_mode,
                                                             GError **error);
    void                wocky_jingle_content_parse_info     (WockyJingleContent *c,
                                                             WockyNode *content_node,
                                                             GError **error);
    void                wocky_jingle_content_parse_transport_info
                                                            (WockyJingleContent *self,
                                                             WockyNode *trans_node,
                                                             GError **error);
    void                wocky_jingle_content_parse_description_info
                                                            (WockyJingleContent *self,
                                                             WockyNode *trans_node,
                                                             GError **error);
    guint               wocky_jingle_content_create_share_channel
                                                            (WockyJingleContent *self,
                                                             const gchar *name);
    void                wocky_jingle_content_add_candidates (WockyJingleContent *self,
                                                             GList *li);
    gboolean            wocky_jingle_content_is_ready       (WockyJingleContent *self);
    void                wocky_jingle_content_set_transport_state
                                                            (WockyJingleContent *content,
                                                             WockyJingleTransportState state);
    void                wocky_jingle_content_remove         (WockyJingleContent *c,
                                                             gboolean signal_peer);
    void                wocky_jingle_content_reject         (WockyJingleContent *c,
                                                             WockyJingleReason reason);
    GList *             wocky_jingle_content_get_remote_candidates
                                                            (WockyJingleContent *c);
    GList *             wocky_jingle_content_get_local_candidates
                                                            (WockyJingleContent *c);
    gboolean            wocky_jingle_content_get_credentials
                                                            (WockyJingleContent *c,
                                                             gchar **ufrag,
                                                             gchar **pwd);
    gboolean            wocky_jingle_content_change_direction
                                                            (WockyJingleContent *c,
                                                             WockyJingleContentSenders senders);
    void                wocky_jingle_content_retransmit_candidates
                                                            (WockyJingleContent *self,
                                                             gboolean all);
    void                wocky_jingle_content_inject_candidates
                                                            (WockyJingleContent *self,
                                                             WockyNode *transport_node);
    gboolean            wocky_jingle_content_is_created_by_us
                                                            (WockyJingleContent *c);
    gboolean            wocky_jingle_content_creator_is_initiator
                                                            (WockyJingleContent *c);
    const gchar *       wocky_jingle_content_get_name       (WockyJingleContent *self);
    const gchar *       wocky_jingle_content_get_ns         (WockyJingleContent *self);
    const gchar *       wocky_jingle_content_get_disposition
                                                            (WockyJingleContent *self);
    WockyJingleTransportType wocky_jingle_content_get_transport_type
                                                            (WockyJingleContent *c);
    const gchar *       wocky_jingle_content_get_transport_ns
                                                            (WockyJingleContent *self);
    void                wocky_jingle_content_maybe_send_description
                                                            (WockyJingleContent *self);
    gboolean            wocky_jingle_content_sending        (WockyJingleContent *self);
    gboolean            wocky_jingle_content_receiving      (WockyJingleContent *self);
    void                wocky_jingle_content_set_sending    (WockyJingleContent *self,
                                                             gboolean send);
    void                wocky_jingle_content_request_receiving
                                                            (WockyJingleContent *self,
                                                             gboolean receive);
    void                wocky_jingle_content_send_complete  (WockyJingleContent *self);

## Description

## Details

### enum WockyJingleMediaType

    typedef enum {
      WOCKY_JINGLE_MEDIA_TYPE_NONE = 0,
      WOCKY_JINGLE_MEDIA_TYPE_AUDIO,
      WOCKY_JINGLE_MEDIA_TYPE_VIDEO,
    } WockyJingleMediaType;

`WOCKY_JINGLE_MEDIA_TYPE_NONE` |
`WOCKY_JINGLE_MEDIA_TYPE_AUDIO` |
`WOCKY_JINGLE_MEDIA_TYPE_VIDEO` |

### enum WockyJingleContentState

    typedef enum {
      WOCKY_JINGLE_CONTENT_STATE_EMPTY = 0,
      WOCKY_JINGLE_CONTENT_STATE_NEW,
      WOCKY_JINGLE_CONTENT_STATE_SENT,
      WOCKY_JINGLE_CONTENT_STATE_ACKNOWLEDGED,
      WOCKY_JINGLE_CONTENT_STATE_REMOVING
    } WockyJingleContentState;

`WOCKY_JINGLE_CONTENT_STATE_EMPTY` |
`WOCKY_JINGLE_CONTENT_STATE_NEW` |
`WOCKY_JINGLE_CONTENT_STATE_SENT` |
`WOCKY_JINGLE_CONTENT_STATE_ACKNOWLEDGED` |
`WOCKY_JINGLE_CONTENT_STATE_REMOVING` |

### WockyJingleCandidate

    typedef struct {
      WockyJingleTransportProtocol protocol;
      WockyJingleCandidateType type;

      gchar *id;
      gchar *address;
      int port;
      int component;
      int generation;

      int preference;
      gchar *username;
      gchar *password;
      int network;
    } WockyJingleCandidate;

### struct WockyJingleContentClass

    struct WockyJingleContentClass {
        GObjectClass parent_class;

        void  (*parse_description) (WockyJingleContent *, WockyNode *,
            GError **);
        void  (*produce_description) (WockyJingleContent *, WockyNode *);
        void  (*transport_created) (WockyJingleContent *,
            WockyJingleTransportIface *);
        WockyJingleContentSenders (*get_default_senders) (WockyJingleContent *);
    };

### wocky_jingle_content_parse_add ()

    void                wocky_jingle_content_parse_add      (WockyJingleContent *c,
                                                             WockyNode *content_node,
                                                             gboolean google_mode,
                                                             GError **error);

### wocky_jingle_content_update_senders ()

    void                wocky_jingle_content_update_senders (WockyJingleContent *c,
                                                             WockyNode *content_node,
                                                             GError **error);

### wocky_jingle_content_produce_node ()

    void                wocky_jingle_content_produce_node   (WockyJingleContent *c,
                                                             WockyNode *parent,
                                                             gboolean include_description,
                                                             gboolean include_transport,
                                                             WockyNode **trans_node_out);

### wocky_jingle_content_parse_accept ()

    void                wocky_jingle_content_parse_accept   (WockyJingleContent *c,
                                                             WockyNode *content_node,
                                                             gboolean google_mode,
                                                             GError **error);

### wocky_jingle_content_parse_info ()

    void                wocky_jingle_content_parse_info     (WockyJingleContent *c,
                                                             WockyNode *content_node,
                                                             GError **error);

### wocky_jingle_content_parse_transport_info ()

    void                wocky_jingle_content_parse_transport_info
                                                            (WockyJingleContent *self,
                                                             WockyNode *trans_node,
                                                             GError **error);

### wocky_jingle_content_parse_description_info ()

    void                wocky_jingle_content_parse_description_info
                                                            (WockyJingleContent *self,
                                                             WockyNode *trans_node,
                                                             GError **error);

### wocky_jingle_content_create_share_channel ()

    guint               wocky_jingle_content_create_share_channel
                                                            (WockyJingleContent *self,
                                                             const gchar *name);

### wocky_jingle_content_add_candidates ()

    void                wocky_jingle_content_add_candidates (WockyJingleContent *self,
                                                             GList *li);

Adds the candidates listed in `li` to the content, communicating them to the peer if appropriate.

`self` : | the content
`li` : | a list of WockyJingleCandidate structs, allocated with `wocky_jingle_candidate_new()`. [element-type WockyJingleCandidate][transfer full]

### wocky_jingle_content_is_ready ()

    gboolean            wocky_jingle_content_is_ready       (WockyJingleContent *self);

### wocky_jingle_content_set_transport_state ()

    void                wocky_jingle_content_set_transport_state
                                                            (WockyJingleContent *content,
                                                             WockyJingleTransportState state);

### wocky_jingle_content_remove ()

    void                wocky_jingle_content_remove         (WockyJingleContent *c,
                                                             gboolean signal_peer);

### wocky_jingle_content_reject ()

    void                wocky_jingle_content_reject         (WockyJingleContent *c,
                                                             WockyJingleReason reason);

### wocky_jingle_content_get_remote_candidates ()

    GList *             wocky_jingle_content_get_remote_candidates
                                                            (WockyJingleContent *c);

### wocky_jingle_content_get_local_candidates ()

    GList *             wocky_jingle_content_get_local_candidates
                                                            (WockyJingleContent *c);

### wocky_jingle_content_get_credentials ()

    gboolean            wocky_jingle_content_get_credentials
                                                            (WockyJingleContent *c,
                                                             gchar **ufrag,
                                                             gchar **pwd);

### wocky_jingle_content_change_direction ()

    gboolean            wocky_jingle_content_change_direction
                                                            (WockyJingleContent *c,
                                                             WockyJingleContentSenders senders);

### wocky_jingle_content_retransmit_candidates ()

    void                wocky_jingle_content_retransmit_candidates
                                                            (WockyJingleContent *self,
                                                             gboolean all);

### wocky_jingle_content_inject_candidates ()

    void                wocky_jingle_content_inject_candidates
                                                            (WockyJingleContent *self,
                                                             WockyNode *transport_node);

### wocky_jingle_content_is_created_by_us ()

    gboolean            wocky_jingle_content_is_created_by_us
                                                            (WockyJingleContent *c);

### wocky_jingle_content_creator_is_initiator ()

    gboolean            wocky_jingle_content_creator_is_initiator
                                                            (WockyJingleContent *c);

### wocky_jingle_content_get_name ()

    const gchar *       wocky_jingle_content_get_name       (WockyJingleContent *self);

### wocky_jingle_content_get_ns ()

    const gchar *       wocky_jingle_content_get_ns         (WockyJingleContent *self);

### wocky_jingle_content_get_disposition ()

    const gchar *       wocky_jingle_content_get_disposition
                                                            (WockyJingleContent *self);

### wocky_jingle_content_get_transport_type ()

    WockyJingleTransportType wocky_jingle_content_get_transport_type
                                                            (WockyJingleContent *c);

### wocky_jingle_content_get_transport_ns ()

    const gchar *       wocky_jingle_content_get_transport_ns
                                                            (WockyJingleContent *self);

### wocky_jingle_content_maybe_send_description ()

    void                wocky_jingle_content_maybe_send_description
                                                            (WockyJingleContent *self);

### wocky_jingle_content_sending ()

    gboolean            wocky_jingle_content_sending        (WockyJingleContent *self);

### wocky_jingle_content_receiving ()

    gboolean            wocky_jingle_content_receiving      (WockyJingleContent *self);

### wocky_jingle_content_set_sending ()

    void                wocky_jingle_content_set_sending    (WockyJingleContent *self,
                                                             gboolean send);

### wocky_jingle_content_request_receiving ()

    void                wocky_jingle_content_request_receiving
                                                            (WockyJingleContent *self,
                                                             gboolean receive);

### wocky_jingle_content_send_complete ()

    void                wocky_jingle_content_send_complete  (WockyJingleContent *self);