GUPnPProtocolInfo: GUPnP A/V Reference Manual

## GUPnPProtocolInfo GUPnPProtocolInfo — UPnP AV ProtocolInfo |

## Functions

GUPnPProtocolInfo * | gupnp_protocol_info_new ()
GUPnPProtocolInfo * | gupnp_protocol_info_new_from_string ()
char * | gupnp_protocol_info_to_string ()
gboolean | gupnp_protocol_info_is_compatible ()
void | gupnp_protocol_info_set_protocol ()
void | gupnp_protocol_info_set_network ()
void | gupnp_protocol_info_set_mime_type ()
void | gupnp_protocol_info_set_dlna_profile ()
void | gupnp_protocol_info_set_play_speeds ()
void | gupnp_protocol_info_set_dlna_conversion ()
void | gupnp_protocol_info_set_dlna_operation ()
void | gupnp_protocol_info_set_dlna_flags ()
const char * | gupnp_protocol_info_get_protocol ()
const char * | gupnp_protocol_info_get_network ()
const char * | gupnp_protocol_info_get_mime_type ()
const char * | gupnp_protocol_info_get_dlna_profile ()
const char ** | gupnp_protocol_info_get_play_speeds ()
GUPnPDLNAConversion | gupnp_protocol_info_get_dlna_conversion ()
GUPnPDLNAOperation | gupnp_protocol_info_get_dlna_operation ()
GUPnPDLNAFlags | gupnp_protocol_info_get_dlna_flags ()

## Types and Values

| GUPnPProtocolInfo
enum | GUPnPDLNAConversion
enum | GUPnPDLNAFlags
enum | GUPnPDLNAOperation

## Description

GUPnPProtocolInfo provides a convenient API to deal with ProtocolInfo strings used in UPnP AV specifications.

## Functions

### gupnp_protocol_info_new ()

    GUPnPProtocolInfo *
    gupnp_protocol_info_new (void);

#### Returns

A new GUPnPProtocolInfo object. Unref after usage.

### gupnp_protocol_info_new_from_string ()

    GUPnPProtocolInfo *
    gupnp_protocol_info_new_from_string (const char *protocol_info,
                                         GError **error);

Parses the `protocol_info` string and creates a new GUPnPProtocolInfo object as a result.

#### Parameters

protocol_info | The protocol info string |
error | The location where to store any error, or NULL |

#### Returns

A new GUPnPProtocolInfo object. Unref after usage.

### gupnp_protocol_info_to_string ()

    char *
    gupnp_protocol_info_to_string (GUPnPProtocolInfo *info);

Provides the string representation of `info` .

#### Parameters

info | The GUPnPProtocolInfo |

#### Returns

String representation of `info` . g_free after usage.

### gupnp_protocol_info_is_compatible ()

    gboolean
    gupnp_protocol_info_is_compatible (GUPnPProtocolInfo *info1,
                                       GUPnPProtocolInfo *info2);

Checks if the given protocolInfo string is compatible with `info` .

#### Parameters

info1 | The first GUPnPProtocolInfo |
info2 | The second GUPnPProtocolInfo |

#### Returns

TRUE if `protocol_info` is compatible with `info` , otherwise FALSE.

### gupnp_protocol_info_set_protocol ()

    void
    gupnp_protocol_info_set_protocol (GUPnPProtocolInfo *info,
                                      const char *protocol);

Set the protocol of this info.

#### Parameters

info | A GUPnPProtocolInfo |
protocol | The protocol string |

### gupnp_protocol_info_set_network ()

    void
    gupnp_protocol_info_set_network (GUPnPProtocolInfo *info,
                                     const char *network);

Set the network this info is associated with.

#### Parameters

info | A GUPnPProtocolInfo |
network | The network string |

### gupnp_protocol_info_set_mime_type ()

    void
    gupnp_protocol_info_set_mime_type (GUPnPProtocolInfo *info,
                                       const char *mime_type);

Set the MIME-type of this info.

#### Parameters

info | A GUPnPProtocolInfo |
mime_type | The MIME-type string |

### gupnp_protocol_info_set_dlna_profile ()

    void
    gupnp_protocol_info_set_dlna_profile (GUPnPProtocolInfo *info,
                                          const char *profile);

Set the DLNA profile of this info.

#### Parameters

info | A GUPnPProtocolInfo |
profile | The DLNA profile string |

### gupnp_protocol_info_set_play_speeds ()

    void
    gupnp_protocol_info_set_play_speeds (GUPnPProtocolInfo *info,
                                         const char **speeds);

Set the allowed play speeds on this info in the form of array of strings.

#### Parameters

info | A GUPnPProtocolInfo |
speeds | The allowed play speeds |

### gupnp_protocol_info_set_dlna_conversion ()

    void
    gupnp_protocol_info_set_dlna_conversion
                                   (GUPnPProtocolInfo *info,
                                    GUPnPDLNAConversion conversion);

Set the DLNA conversion flags.

#### Parameters

info | A GUPnPProtocolInfo |
conversion | The bitwise OR of one or more DLNA conversion flags |

### gupnp_protocol_info_set_dlna_operation ()

    void
    gupnp_protocol_info_set_dlna_operation
                                   (GUPnPProtocolInfo *info,
                                    GUPnPDLNAOperation operation);

Set the DLNA operation flags.

#### Parameters

info | A GUPnPProtocolInfo |
operation | The bitwise OR of one or more DLNA operation flags |

### gupnp_protocol_info_set_dlna_flags ()

    void
    gupnp_protocol_info_set_dlna_flags (GUPnPProtocolInfo *info,
                                        GUPnPDLNAFlags flags);

Set the gereric DLNA flags.

#### Parameters

info | A GUPnPProtocolInfo |
flags | The bitwise OR of one or more generic DLNA flags |

### gupnp_protocol_info_get_protocol ()

    const char *
    gupnp_protocol_info_get_protocol (GUPnPProtocolInfo *info);

Get the protocol of this info.

#### Parameters

info | A GUPnPProtocolInfo |

#### Returns

The protocol of this info or `NULL`. This string should not be freed.

### gupnp_protocol_info_get_network ()

    const char *
    gupnp_protocol_info_get_network (GUPnPProtocolInfo *info);

Get the network this info is associated with.

#### Parameters

info | A GUPnPProtocolInfo |

#### Returns

The network string or `NULL`. This string should not be freed.

### gupnp_protocol_info_get_mime_type ()

    const char *
    gupnp_protocol_info_get_mime_type (GUPnPProtocolInfo *info);

Get the MIME-type of this info.

#### Parameters

info | A GUPnPProtocolInfo |

#### Returns

The MIME-type of this info or `NULL`. This string should not be freed.

### gupnp_protocol_info_get_dlna_profile ()

    const char *
    gupnp_protocol_info_get_dlna_profile (GUPnPProtocolInfo *info);

Get the DLNA profile of this info.

#### Parameters

info | A GUPnPProtocolInfo |

#### Returns

The DLNA profile of this info or `NULL`. This string should not be freed.

### gupnp_protocol_info_get_play_speeds ()

    const char **
    gupnp_protocol_info_get_play_speeds (GUPnPProtocolInfo *info);

Get the allowed play speeds on this info in the form of array of strings.

#### Parameters

info | A GUPnPProtocolInfo |

#### Returns

The allowed play speeds as array of strings or `NULL`. This return array and it's content must not be modified or freed.

[transfer none]

### gupnp_protocol_info_get_dlna_conversion ()

    GUPnPDLNAConversion
    gupnp_protocol_info_get_dlna_conversion
                                   (GUPnPProtocolInfo *info);

Get the DLNA conversion flags.

#### Parameters

info | A GUPnPProtocolInfo |

#### Returns

The DLNA conversion flags.

### gupnp_protocol_info_get_dlna_operation ()

    GUPnPDLNAOperation
    gupnp_protocol_info_get_dlna_operation
                                   (GUPnPProtocolInfo *info);

Get the DLNA operation flags.

#### Parameters

info | A GUPnPProtocolInfo |

#### Returns

The DLNA operation flags.

### gupnp_protocol_info_get_dlna_flags ()

    GUPnPDLNAFlags
    gupnp_protocol_info_get_dlna_flags (GUPnPProtocolInfo *info);

Get the gereric DLNA flags.

#### Parameters

info | A GUPnPProtocolInfo |

#### Returns

The generic DLNA flags.

## Types and Values

### GUPnPProtocolInfo

    typedef struct {
            GObject parent;

            GUPnPProtocolInfoPrivate *priv;
    } GUPnPProtocolInfo;

### enum GUPnPDLNAConversion

The DLNA conversion flags for a resource.

#### Members

GUPNP_DLNA_CONVERSION_NONE | Content is in original source format |
GUPNP_DLNA_CONVERSION_TRANSCODED | Content is transcoded |

### enum GUPnPDLNAFlags

The miscellaneous operations supported by a resource. For details on these flags please refer to section 7.3.37.2 of DLNA Networked Device Interoperability Guidelines Volume 1, October 2006.

Updated DTCP Flags based on 2011 Guidelines, section 7.4.1.3.23.2

#### Members

GUPNP_DLNA_FLAGS_NONE | No flags |
GUPNP_DLNA_FLAGS_SENDER_PACED | Content source is the clock source during transport |
GUPNP_DLNA_FLAGS_TIME_BASED_SEEK | Limited Operation: time-seek supported |
GUPNP_DLNA_FLAGS_BYTE_BASED_SEEK | Limited Operation: byte-seek supported |
GUPNP_DLNA_FLAGS_PLAY_CONTAINER | Resource supports 'Container Playback' |
GUPNP_DLNA_FLAGS_S0_INCREASE | Content does not have a fixed beginning |
GUPNP_DLNA_FLAGS_SN_INCREASE | Content does not have a fixed end |
GUPNP_DLNA_FLAGS_RTSP_PAUSE | RTSP resource supports pausing of media transfer |
GUPNP_DLNA_FLAGS_STREAMING_TRANSFER_MODE | Streaming transfer mode supported |
GUPNP_DLNA_FLAGS_INTERACTIVE_TRANSFER_MODE | Interactive transfer mode supported |
GUPNP_DLNA_FLAGS_BACKGROUND_TRANSFER_MODE | Background transfer mode supported |
GUPNP_DLNA_FLAGS_CONNECTION_STALL | No content transfer when paused. |
GUPNP_DLNA_FLAGS_DLNA_V15 | DLNAv1.5 version flag |
GUPNP_DLNA_FLAGS_LINK_PROTECTED_CONTENT | The content is protected. |
GUPNP_DLNA_FLAGS_CLEAR_TEXT_BYTE_SEEK_FULL | Full byte seek on cleartext domain is supported. |
GUPNP_DLNA_FLAGS_LOP_CLEAR_TEXT_BYTE_SEEK | Limited operations on byte seek in cleartext domain. |

### enum GUPnPDLNAOperation

The seek operations supported by a resource.

#### Members

GUPNP_DLNA_OPERATION_NONE | Resource does not support seeking of any type |
GUPNP_DLNA_OPERATION_RANGE | Resource supports byte-seek |
GUPNP_DLNA_OPERATION_TIMESEEK | Resource supports time-seek |