Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
marker.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2019-2021 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
10#ifndef __AUDIO_MARKER_H__
11#define __AUDIO_MARKER_H__
12
13#include <cstdint>
14
15#include "dsp/position.h"
17#include "utils/yaml.h"
18
25#define MARKER_WIDGET_TRIANGLE_W 10
26
27#define marker_is_selected(r) arranger_object_is_selected ((ArrangerObject *) r)
28
29#define marker_is_deletable(m) \
30 ((m)->type != MarkerType::MARKER_TYPE_START \
31 && (m)->type != MarkerType::MARKER_TYPE_END)
32
45
49typedef struct Marker
50{
53
56
58 char * name;
59
62
65 unsigned int track_name_hash;
66
68 int index;
69
71 PangoLayout * layout;
72} Marker;
73
77Marker *
78marker_new (const char * name);
79
83int
85
86void
87marker_set_index (Marker * self, int index);
88
92void
93marker_set_track_name_hash (Marker * marker, unsigned int track_name_hash);
94
95Marker *
96marker_find_by_name (const char * name);
97
102#endif
Macros for arranger object backends.
void marker_set_track_name_hash(Marker *marker, unsigned int track_name_hash)
Sets the Track of the Marker.
Marker * marker_new(const char *name)
Creates a Marker.
MarkerType
Marker type.
Definition marker.h:37
int marker_is_equal(Marker *a, Marker *b)
Returns if the two Marker's are equal.
@ MARKER_TYPE_CUSTOM
Custom Marker.
@ MARKER_TYPE_START
Song start Marker that cannot be deleted.
@ MARKER_TYPE_END
Song end Marker that cannot be deleted.
Position struct and API.
Base struct for arranger objects.
Marker for the MarkerTrack.
Definition marker.h:50
ArrangerObject base
Base struct.
Definition marker.h:52
unsigned int track_name_hash
Position of the marker track this marker is in.
Definition marker.h:65
MarkerType type
Marker type.
Definition marker.h:55
PangoLayout * layout
Cache layout for drawing the name.
Definition marker.h:71
char * name
Name of Marker to be displayed in the UI.
Definition marker.h:58
char * escaped_name
Escaped name for drawing.
Definition marker.h:61
int index
Index in the track.
Definition marker.h:68
YAML utils.