## GUPnPDLNAProfileGuesser GUPnPDLNAProfileGuesser — Utility API for discovering DLNA profile for given media. |

## Functions

GUPnPDLNAProfileGuesser * | gupnp_dlna_profile_guesser_new ()
gboolean | gupnp_dlna_profile_guesser_guess_profile_async ()
GUPnPDLNAProfile * | gupnp_dlna_profile_guesser_guess_profile_sync ()
GUPnPDLNAProfile * | gupnp_dlna_profile_guesser_guess_profile_from_info ()
GUPnPDLNAProfile * | gupnp_dlna_profile_guesser_get_profile ()
GList * | gupnp_dlna_profile_guesser_list_profiles ()
gboolean | gupnp_dlna_profile_guesser_get_relaxed_mode ()
gboolean | gupnp_dlna_profile_guesser_get_extended_mode ()
void | gupnp_dlna_profile_guesser_cleanup ()

## Types and Values

struct | GUPnPDLNAProfileGuesserClass

## Description

The API provides synchronous and asynchronous guessing of DLNA profile. The asynchronous mode requires a running GMainLoop in the default GMainContext.

## Functions

### gupnp_dlna_profile_guesser_new ()

    GUPnPDLNAProfileGuesser *
    gupnp_dlna_profile_guesser_new (gboolean relaxed_mode,
                                    gboolean extended_mode);

Creates a new guesser that will use specific DLNA profiles for matching - i.e. which profiles will be used depends on `relaxed_mode` and `extended_mode` .

#### Parameters

relaxed_mode | `TRUE` to enable relaxed mode support. `FALSE` otherwise. |
extended_mode | `TRUE` to enable extended mode support. `FALSE` otherwise. |

#### Returns

A new GUPnPDLNAProfileGuesser object.

### gupnp_dlna_profile_guesser_guess_profile_async ()

    gboolean
    gupnp_dlna_profile_guesser_guess_profile_async
                                   (GUPnPDLNAProfileGuesser *guesser,
                                    const gchar *uri,
                                    guint timeout_in_ms,
                                    GError **error);

Asynchronously guesses DLNA profile for given `uri` . When guessing is done, ::done signal is emitted on `guesser` .

#### Parameters

guesser | GUPnPDLNAProfileGuesser object to use for guessing. |
uri | URI of media. |
timeout_in_ms | Timeout of guessing in miliseconds. |
error | GError object or `NULL`. |

#### Returns

`TRUE` if `uri` was successfully queued, `FALSE` otherwise.

### gupnp_dlna_profile_guesser_guess_profile_sync ()

    GUPnPDLNAProfile *
    gupnp_dlna_profile_guesser_guess_profile_sync
                                   (GUPnPDLNAProfileGuesser *guesser,
                                    const gchar *uri,
                                    guint timeout_in_ms,
                                    GUPnPDLNAInformation **dlna_info,
                                    GError **error);

Synchronously guesses DLNA profile for given `uri` .

#### Parameters

guesser | GUPnPDLNAProfileGuesser object to use for guessing. |
uri | URI of media. |
timeout_in_ms | Timeout of guessing in miliseconds. |
dlna_info | A place where to store DLNA information or `NULL`. | [allow-none][transfer full][out]
error | GError object or `NULL`. | [allow-none]

#### Returns

DLNA profile if any had matched, `NULL` otherwise.

[transfer none]

### gupnp_dlna_profile_guesser_guess_profile_from_info ()

    GUPnPDLNAProfile *
    gupnp_dlna_profile_guesser_guess_profile_from_info
                                   (GUPnPDLNAProfileGuesser *guesser,
                                    GUPnPDLNAInformation *info);

Guesses the profile which fits to passed `info` .

#### Parameters

guesser | The GUPnPDLNAProfileGuesser object. |
info | The GUPnPDLNAInformation object. |

#### Returns

A GUPnPDLNAProfile object on success, `NULL` otherwise.

[transfer none]

### gupnp_dlna_profile_guesser_get_profile ()

    GUPnPDLNAProfile *
    gupnp_dlna_profile_guesser_get_profile
                                   (GUPnPDLNAProfileGuesser *guesser,
                                    const gchar *name);

Lookups for GUPnPDLNAProfile with given `name` .

#### Parameters

guesser | The GUPnPDLNAProfileGuesser object. |
name | The name of the DLNA profile to be retrieved. |

#### Returns

A GUPnPDLNAProfile object on success, `NULL` otherwise.

[transfer none]

### gupnp_dlna_profile_guesser_list_profiles ()

    GList *
    gupnp_dlna_profile_guesser_list_profiles
                                   (GUPnPDLNAProfileGuesser *guesser);

Gets a list of the all DLNA profiles supported by `guesser` .

#### Parameters

guesser | The GUPnPDLNAProfileGuesser whose profile list is required. |

#### Returns

A GList of GUPnPDLNAProfile on success, `NULL` otherwise.

[transfer none][element-type GUPnPDLNAProfile]

### gupnp_dlna_profile_guesser_get_relaxed_mode ()

    gboolean
    gupnp_dlna_profile_guesser_get_relaxed_mode
                                   (GUPnPDLNAProfileGuesser *guesser);

#### Parameters

guesser | The GUPnPDLNAProfileGuesser object. |

#### Returns

`TRUE` if `guesser` is in relaxed mode, `FALSE` otherwise.

### gupnp_dlna_profile_guesser_get_extended_mode ()

    gboolean
    gupnp_dlna_profile_guesser_get_extended_mode
                                   (GUPnPDLNAProfileGuesser *guesser);

#### Parameters

guesser | The GUPnPDLNAProfileGuesser object. |

#### Returns

`TRUE` if `guesser` is in extended mode, `FALSE` otherwise.

### gupnp_dlna_profile_guesser_cleanup ()

    void
    gupnp_dlna_profile_guesser_cleanup (void);

Cleans up the DLNA profiles. Provided to remove Valgrind noise. Not thread-safe. Do not call it if there is even a slightest chance that profile guessing will be performed during process lifetime. The profiles are not reloaded after cleanup.

## Types and Values

### struct GUPnPDLNAProfileGuesserClass

    struct GUPnPDLNAProfileGuesserClass {
            GObjectClass parent_class;
    };

#### Members