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

## Synopsis

    #include <mirage-language.h>

                        MirageLanguage;
    struct              MirageLanguageClass;
    enum                MirageLanguagePackTypes;
    gint                mirage_language_get_code            (MirageLanguage *self);
    gboolean            mirage_language_get_pack_data       (MirageLanguage *self,
                                                             MirageLanguagePackTypes pack_type,
                                                             const gchar **pack_data,
                                                             gint *length,
                                                             GError **error);
    void                mirage_language_set_code            (MirageLanguage *self,
                                                             gint code);
    gboolean            mirage_language_set_pack_data       (MirageLanguage *self,
                                                             MirageLanguagePackTypes pack_type,
                                                             const gchar *pack_data,
                                                             gint length,
                                                             GError **error);

## Object Hierarchy

      GObject
       +----MirageObject
             +----MirageLanguage

## Implemented Interfaces

MirageLanguage implements MirageContextual.

## 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.

## Details

### 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.

MirageObjectClass `parent_class`; | the parent class

### enum MirageLanguagePackTypes

    typedef enum {
        MIRAGE_LANGUAGE_PACK_TITLE       = 0x80,
        MIRAGE_LANGUAGE_PACK_PERFORMER   = 0x81,
        MIRAGE_LANGUAGE_PACK_SONGWRITER  = 0x82,
        MIRAGE_LANGUAGE_PACK_COMPOSER    = 0x83,
        MIRAGE_LANGUAGE_PACK_ARRANGER    = 0x84,
        MIRAGE_LANGUAGE_PACK_MESSAGE     = 0x85,
        MIRAGE_LANGUAGE_PACK_DISC_ID     = 0x86,
        MIRAGE_LANGUAGE_PACK_GENRE       = 0x87,
        MIRAGE_LANGUAGE_PACK_TOC         = 0x88,
        MIRAGE_LANGUAGE_PACK_TOC2        = 0x89,
        MIRAGE_LANGUAGE_PACK_RES_8A      = 0x8A,
        MIRAGE_LANGUAGE_PACK_RES_8B      = 0x8B,
        MIRAGE_LANGUAGE_PACK_RES_8C      = 0x8C,
        MIRAGE_LANGUAGE_PACK_CLOSED_INFO = 0x8D,
        MIRAGE_LANGUAGE_PACK_UPC_ISRC    = 0x8E,
        MIRAGE_LANGUAGE_PACK_SIZE        = 0x8F,
    } MirageLanguagePackTypes;

CD-TEXT pack types

`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

### mirage_language_get_code ()

    gint                mirage_language_get_code            (MirageLanguage *self);

Retrieves language's language code.

`self` : | a MirageLanguage
Returns : | language code

### mirage_language_get_pack_data ()

    gboolean            mirage_language_get_pack_data       (MirageLanguage *self,
                                                             MirageLanguagePackTypes pack_type,
                                                             const gchar **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.

`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.

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

### mirage_language_set_pack_data ()

    gboolean            mirage_language_set_pack_data       (MirageLanguage *self,
                                                             MirageLanguagePackTypes pack_type,
                                                             const gchar *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 MirageLanguagePackTypes.

`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

## See Also

MirageSession, MirageTrack, MirageCdTextCoder