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 <stdint.h>
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 != MARKER_TYPE_START && (m)->type != MARKER_TYPE_END)
31
44
48typedef struct Marker
49{
52
55
57 char * name;
58
61
64 unsigned int track_name_hash;
65
67 int index;
68
70 PangoLayout * layout;
71} Marker;
72
76Marker *
77marker_new (const char * name);
78
82int
84
85void
86marker_set_index (Marker * self, int index);
87
91void
92marker_set_track_name_hash (Marker * marker, unsigned int track_name_hash);
93
94Marker *
95marker_find_by_name (const char * name);
96
101#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:36
int marker_is_equal(Marker *a, Marker *b)
Returns if the two Marker's are equal.
@ MARKER_TYPE_CUSTOM
Custom Marker.
Definition marker.h:42
@ MARKER_TYPE_END
Song end Marker that cannot be deleted.
Definition marker.h:40
@ MARKER_TYPE_START
Song start Marker that cannot be deleted.
Definition marker.h:38
Position struct and API.
Base struct for arranger objects.
Marker for the MarkerTrack.
Definition marker.h:49
ArrangerObject base
Base struct.
Definition marker.h:51
unsigned int track_name_hash
Position of the marker track this marker is in.
Definition marker.h:64
MarkerType type
Marker type.
Definition marker.h:54
PangoLayout * layout
Cache layout for drawing the name.
Definition marker.h:70
char * name
Name of Marker to be displayed in the UI.
Definition marker.h:57
char * escaped_name
Escaped name for drawing.
Definition marker.h:60
int index
Index in the track.
Definition marker.h:67
YAML utils.