## BtSongInfo

BtSongInfo — class that keeps the meta-data for a BtSong instance

## Synopsis

    #include <libbtcore/core.h>

                        BtSongInfo;
    BtSongInfo *        bt_song_info_new                    (const BtSong * const song);

## Object Hierarchy

      GObject
       +----BtSongInfo

## Implemented Interfaces

BtSongInfo implements

## Properties

      "author"                   gchar*                : Read / Write
      "bars"                     gulong                : Read / Write
      "bpm"                      gulong                : Read / Write
      "change-dts"               gchar*                : Read / Write
      "create-dts"               gchar*                : Read / Write
      "file-name"                gchar*                : Read / Write
      "genre"                    gchar*                : Read / Write
      "info"                     gchar*                : Read / Write
      "name"                     gchar*                : Read / Write
      "song"                     BtSong*               : Read / Write / Construct Only
      "taglist"                  gpointer              : Read
      "tpb"                      gulong                : Read / Write

## Description

Exposes the meta-data of a song as GObject properties. These are for one pure data fields such as author and song name. These fields get used when recording a song to a file (rendering) in the form of meta-tags.

Further there are fields that determine rythm and song-speed. The speed is determined by BtSongInfo::bpm. The rythm is determined by BtSongInfo::bars and BtSongInfo::tpb. If 'bars' is 16, than on can have 1/16 notes. And if 'ticks per beat' is 4 one will have 4 beats - a classic 4/4 meassure. For a 3/4 meassure, 'bars' would be 12. Thus bars = beats * tpb.

## Details

### BtSongInfo

    typedef struct _BtSongInfo BtSongInfo;

holds song metadata

### bt_song_info_new ()

    BtSongInfo *        bt_song_info_new                    (const BtSong * const song);

Create a new instance

`song` : | the song the new instance belongs to
Returns : | the new instance or `NULL` in case of an error

## Property Details

### The `"author"` property

      "author"                   gchar*                : Read / Write

songs author.

Default value: NULL

### The `"bars"` property

      "bars"                     gulong                : Read / Write

how many bars per meassure.

Allowed values: [1,64]

### The `"bpm"` property

      "bpm"                      gulong                : Read / Write

how many beats should be played in a minute.

Allowed values: [1,1000]

### The `"change-dts"` property

      "change-dts"               gchar*                : Read / Write

song changed date time stamp (iso 8601 format).

Default value: NULL

### The `"create-dts"` property

      "create-dts"               gchar*                : Read / Write

song creation date time stamp (iso 8601 format).

Default value: NULL

### The `"file-name"` property

      "file-name"                gchar*                : Read / Write

songs file name.

Default value: NULL

### The `"genre"` property

      "genre"                    gchar*                : Read / Write

songs genre.

Default value: NULL

### The `"info"` property

      "info"                     gchar*                : Read / Write

songs freeform info.

Default value: "comment me!"

### The `"name"` property

      "name"                     gchar*                : Read / Write

songs name.

Default value: "untitled song"

### The `"song"` property

      "song"                     BtSong*               : Read / Write / Construct Only

song object, the song-info belongs to.

### The `"taglist"` property

      "taglist"                  gpointer              : Read

songs meta data as a taglist.

### The `"tpb"` property

      "tpb"                      gulong                : Read / Write

how many event fire in one fraction of a beat.

Allowed values: [1,128]