BtSongInfo

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

Functions

Properties

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

Types and Values

struct BtSongInfo

Object Hierarchy

    GObject
    ╰── BtSongInfo

Implemented Interfaces

BtSongInfo implements BtPersistence.

Includes

#include <libbtcore/core.h>

Description

This class 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 “bpm”. The rythm is determined by “bars” and “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.

Finally, the class offers a couple of timing related conversion functions.

Functions

bt_song_info_new ()

BtSongInfo *
bt_song_info_new (const BtSong * const song);

Create a new instance

Parameters

song

the song the new instance belongs to

 

Returns

the new instance or NULL in case of an error


bt_song_info_get_change_dts_in_local_tz ()

const gchar *
bt_song_info_get_change_dts_in_local_tz
                               (const BtSongInfo * const self);

Convert the BtSongInfo::change-dts to local time zone.

Return: the time stamp in iso 8601 format

Parameters

self

the song_info

 

bt_song_info_get_seconds_since_last_saved ()

gint
bt_song_info_get_seconds_since_last_saved
                               (const BtSongInfo * const self);

Calculate the seconds since last save time or the creation time if the song is new.

Return: the seconds

Parameters

self

the song_info

 

bt_song_info_tick_to_time ()

GstClockTime
bt_song_info_tick_to_time (const BtSongInfo * const self,
                           const gulong tick);

Convert a given tick position to the time in µs.

Parameters

self

the song_info

 

tick

the tick position

 

Returns

the time in µs


bt_song_info_time_to_tick ()

gulong
bt_song_info_time_to_tick (const BtSongInfo * const self,
                           const GstClockTime ts);

Convert a given time in µs to the tick position.

Parameters

self

the song_info

 

ts

the time in µs

 

Returns

the integer tick position


bt_song_info_time_to_m_s_ms ()

void
bt_song_info_time_to_m_s_ms (const BtSongInfo * const self,
                             gulong ts,
                             gulong *m,
                             gulong *s,
                             gulong *ms);

Convert a given time in µs to minutes, seconds and milliseconds.

Parameters

self

the song_info

 

ts

the time in µs

 

m

location for the minutes

 

s

location for the seconds

 

ms

location for the milliseconds

 

bt_song_info_tick_to_m_s_ms ()

void
bt_song_info_tick_to_m_s_ms (const BtSongInfo * const self,
                             const gulong tick,
                             gulong *m,
                             gulong *s,
                             gulong *ms);

Convert a given tick position to minutes, seconds and milliseconds.

Parameters

self

the song_info

 

tick

the tick position

 

m

location for the minutes

 

s

location for the seconds

 

ms

location for the milliseconds

 

Types and Values

struct BtSongInfo

struct BtSongInfo;

holds song metadata

Property Details

The “author” property

  “author”                   gchar *

songs author.

Flags: Read / Write

Default value: NULL


The “bars” property

  “bars”                     gulong

how many bars per meassure.

Flags: Read / Write

Allowed values: [1,64]


The “bpm” property

  “bpm”                      gulong

how many beats should be played in a minute.

Flags: Read / Write

Allowed values: [1,1000]


The “change-dts” property

  “change-dts”               gchar *

song changed date time stamp (iso 8601 format).

Flags: Read / Write

Default value: NULL


The “create-dts” property

  “create-dts”               gchar *

song creation date time stamp (iso 8601 format).

Flags: Read / Write

Default value: NULL


The “file-name” property

  “file-name”                gchar *

songs file name.

Flags: Read / Write

Default value: NULL


The “genre” property

  “genre”                    gchar *

songs genre.

Flags: Read / Write

Default value: NULL


The “info” property

  “info”                     gchar *

songs freeform info.

Flags: Read / Write

Default value: "comment me!"


The “name” property

  “name”                     gchar *

songs name.

Flags: Read / Write

Default value: "untitled song"


The “song” property

  “song”                     BtSong *

song object, the song-info belongs to.

Flags: Read / Write / Construct Only


The “taglist” property

  “taglist”                  gpointer

songs meta data as a taglist.

Flags: Read


The “tick-duration” property

  “tick-duration”            guint64

the duration for a tick in µs calculated form the song tempo.

Flags: Read

Allowed values: >= 1

Default value: 1


The “tpb” property

  “tpb”                      gulong

event granularity in one beat.

Flags: Read / Write

Allowed values: [1,128]