## MirageLanguage MirageLanguage — Object representing a language for session or track. |

## Functions

gint | mirage_language_get_code ()
gboolean | mirage_language_get_pack_data ()
void | mirage_language_set_code ()
gboolean | mirage_language_set_pack_data ()

## Types and Values

| MirageLanguage
struct | MirageLanguageClass
enum | MirageLanguagePackType

## Object Hierarchy

        GObject
        ╰── MirageObject
            ╰── MirageLanguage

## Implemented Interfaces

MirageLanguage implements MirageContextual.

## Includes

    #include <mirage-language.h>

## Description

MirageLanguage object represents a CD-TEXT language for session or track. It is a container object that stores language code and CD-TEXT pack data for different pack types.

## Functions

### mirage_language_get_code ()

    gint
    mirage_language_get_code (MirageLanguage *self);

Retrieves language's language code.

#### Parameters

self | a MirageLanguage |

#### Returns

language code

### mirage_language_get_pack_data ()

    gboolean
    mirage_language_get_pack_data (MirageLanguage *self,
                                   MirageLanguagePackType pack_type,
                                   const guint8 **pack_data,
                                   gint *length,
                                   GError **error);

Retrieves pack data of type `pack_type` . A pointer to buffer containing pack data is stored in `pack` data; the buffer belongs to the object and therefore should not be modified.

#### Parameters

self | a MirageLanguage |
pack_type | pack type. | [in]
pack_data | location to store buffer containing pack data, or `NULL`. | [out][transfer none][allow-none][array length=length]
length | location to store length of pack data, or `NULL`. | [out][allow-none]
error | location to store error, or `NULL`. | [out][allow-none]

#### Returns

`TRUE` on success, `FALSE` on failure

### mirage_language_set_code ()

    void
    mirage_language_set_code (MirageLanguage *self,
                              gint code);

Sets language's language code.

#### Parameters

self | a MirageLanguage |
code | language code. | [in]

### mirage_language_set_pack_data ()

    gboolean
    mirage_language_set_pack_data (MirageLanguage *self,
                                   MirageLanguagePackType pack_type,
                                   const guint8 *pack_data,
                                   gint length,
                                   GError **error);

Sets pack data of type `pack_type` to data in `pack_data` . `length` is length of data in `pack_data` . `pack_type` must be one of MirageLanguagePackType.

#### Parameters

self | a MirageLanguage |
pack_type | pack type. | [in]
pack_data | pack data. | [in][array length=length]
length | length of pack data. | [in]
error | location to store error, or `NULL`. | [out][allow-none]

#### Returns

`TRUE` on success, `FALSE` on failure

## Types and Values

### MirageLanguage

    typedef struct _MirageLanguage MirageLanguage;

All the fields in the MirageLanguage structure are private to the MirageLanguage implementation and should never be accessed directly.

### struct MirageLanguageClass

    struct MirageLanguageClass {
        MirageObjectClass parent_class;
    };

The class structure for the MirageLanguage type.

#### Members

MirageObjectClass `parent_class`; | the parent class |

### enum MirageLanguagePackType

CD-TEXT pack types.

#### Members

MIRAGE_LANGUAGE_PACK_TITLE | Album name and Track titles |
MIRAGE_LANGUAGE_PACK_PERFORMER | Singer/player/conductor/orchestra |
MIRAGE_LANGUAGE_PACK_SONGWRITER | Name of the songwriter |
MIRAGE_LANGUAGE_PACK_COMPOSER | Name of the composer |
MIRAGE_LANGUAGE_PACK_ARRANGER | Name of the arranger |
MIRAGE_LANGUAGE_PACK_MESSAGE | Message from content provider or artist |
MIRAGE_LANGUAGE_PACK_DISC_ID | Disc identification information |
MIRAGE_LANGUAGE_PACK_GENRE | Genre identification / information |
MIRAGE_LANGUAGE_PACK_TOC | TOC information |
MIRAGE_LANGUAGE_PACK_TOC2 | Second TOC |
MIRAGE_LANGUAGE_PACK_RES_8A | Reserved 8A |
MIRAGE_LANGUAGE_PACK_RES_8B | Reserved 8B |
MIRAGE_LANGUAGE_PACK_RES_8C | Reserved 8C |
MIRAGE_LANGUAGE_PACK_CLOSED_INFO | For internal use by content provider |
MIRAGE_LANGUAGE_PACK_UPC_ISRC | UPC/EAN code of album and ISRC for tracks |
MIRAGE_LANGUAGE_PACK_SIZE | Size information of the block |

## See Also

MirageSession, MirageTrack, MirageCdTextCoder