## AgsTrack

AgsTrack — Track class.

## Stability Level

Stable, unless otherwise indicated

## Functions

#define | AGS_TRACK_GET_OBJ_MUTEX()
GRecMutex * | ags_track_get_obj_mutex ()
void | ags_track_lock ()
void | ags_track_unlock ()
gboolean | ags_track_test_flags ()
void | ags_track_set_flags ()
void | ags_track_unset_flags ()
gint | ags_track_sort_func ()
guint64 | ags_track_get_x ()
void | ags_track_set_x ()
gpointer | ags_track_get_smf_buffer ()
gpointer | ags_track_alloc_smf_buffer ()
gpointer | ags_track_realloc_smf_buffer ()
AgsTrack * | ags_track_duplicate ()
AgsTrack * | ags_track_new ()

## Properties

gpointer | smf-buffer | Read / Write
guint64 | x | Read / Write

## Types and Values

enum | AgsTrackFlags

## Object Hierarchy

        GFlags
        ╰── AgsTrackFlags
        GObject
        ╰── AgsTrack

## Includes

    #include <ags/audio/ags_track.h>

## Description

AgsTrack represents a tone.

## Functions

### AGS_TRACK_GET_OBJ_MUTEX()

    #define AGS_TRACK_GET_OBJ_MUTEX(obj) (&(((AgsTrack *) obj)->obj_mutex))

### ags_track_get_obj_mutex ()

    GRecMutex *
    ags_track_get_obj_mutex (AgsTrack *track);

Get object mutex.

#### Parameters

track | the AgsTrack |

#### Returns

the GRecMutex to lock `track`

Since: 3.1.0

### ags_track_lock ()

    void
    ags_track_lock (AgsTrack *track);

Lock object mutex.

#### Parameters

track | the AgsTrack |

Since: 3.1.0

### ags_track_unlock ()

    void
    ags_track_unlock (AgsTrack *track);

Unlock object mutex.

#### Parameters

track | the AgsTrack |

Since: 3.1.0

### ags_track_test_flags ()

    gboolean
    ags_track_test_flags (AgsTrack *track,
                          AgsTrackFlags flags);

Test `flags` to be set on `track` .

#### Parameters

track | the AgsTrack |
flags | the flags |

#### Returns

`TRUE` if flags are set, else `FALSE`

Since: 3.0.0

### ags_track_set_flags ()

    void
    ags_track_set_flags (AgsTrack *track,
                         AgsTrackFlags flags);

Set `flags` on `track` .

#### Parameters

track | the AgsTrack |
flags | the flags |

Since: 3.0.0

### ags_track_unset_flags ()

    void
    ags_track_unset_flags (AgsTrack *track,
                           AgsTrackFlags flags);

Unset `flags` on `track` .

#### Parameters

track | the AgsTrack |
flags | the flags |

Since: 3.0.0

### ags_track_sort_func ()

    gint
    ags_track_sort_func (gconstpointer a,
                         gconstpointer b);

Sort tracks.

#### Parameters

a | an AgsTrack |
b | an AgsTrack |

#### Returns

0 if equal, -1 if smaller and 1 if bigger offset

Since: 3.0.0

### ags_track_get_x ()

    guint64
    ags_track_get_x (AgsTrack *track);

Gets x.

#### Parameters

track | the AgsTrack |

#### Returns

the x

Since: 3.1.0

### ags_track_set_x ()

    void
    ags_track_set_x (AgsTrack *track,
                     guint64 x);

Sets x.

#### Parameters

track | the AgsTrack |
x | the x |

Since: 3.1.0

### ags_track_get_smf_buffer ()

    gpointer
    ags_track_get_smf_buffer (AgsTrack *track,
                              guint *smf_buffer_length);

### ags_track_alloc_smf_buffer ()

    gpointer
    ags_track_alloc_smf_buffer (AgsTrack *track,
                                guint smf_buffer_length);

Allocate SMF buffer of `track` .

#### Parameters

track | the AgsTrack |
smf_buffer_length | SMF buffer length |

#### Returns

the newly allocated SMF buffer

Since: 3.6.17

### ags_track_realloc_smf_buffer ()

    gpointer
    ags_track_realloc_smf_buffer (AgsTrack *track,
                                  guint smf_buffer_length);

Reallocate SMF buffer of `track` .

#### Parameters

track | the AgsTrack |
smf_buffer_length | SMF buffer length |

#### Returns

the reallocated SMF buffer

Since: 3.6.17

### ags_track_duplicate ()

    AgsTrack *
    ags_track_duplicate (AgsTrack *track);

Duplicate a track.

#### Parameters

track | an AgsTrack |

#### Returns

the duplicated AgsTrack.

[transfer full]

Since: 3.0.0

### ags_track_new ()

    AgsTrack *
    ags_track_new ();

Creates a new instance of AgsTrack.

#### Returns

the new AgsTrack

Since: 3.0.0

## Types and Values

### enum AgsTrackFlags

Enum values to control the behavior or indicate internal state of AgsTrack by enable/disable as flags.

#### Members

AGS_TRACK_IS_SELECTED | is selected |

## Property Details

### The `“smf-buffer”` property

      “smf-buffer”               gpointer

Track's SMF buffer.

Owner: AgsTrack

Flags: Read / Write

Since: 3.0.0

### The `“x”` property

      “x”                        guint64

Track's x offset.

Owner: AgsTrack

Flags: Read / Write

Default value: 0

Since: 3.0.0