Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
group_target_track.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2020-2022 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
10#ifndef __AUDIO_GROUP_TARGET_TRACK_H__
11#define __AUDIO_GROUP_TARGET_TRACK_H__
12
13#include <stdbool.h>
14
15typedef struct Track Track;
16
17#define TRACK_CAN_BE_GROUP_TARGET(tr) \
18 (IS_TRACK (tr) \
19 && (tr->type == TRACK_TYPE_AUDIO_GROUP || tr->type == TRACK_TYPE_MIDI_GROUP || tr->type == TRACK_TYPE_INSTRUMENT || tr->type == TRACK_TYPE_MASTER))
20
21void
22group_target_track_init_loaded (Track * self);
23
24void
25group_target_track_init (Track * track);
26
30void
32 Track * self,
33 unsigned int child_name_hash,
34 bool disconnect,
35 bool recalc_graph,
36 bool pub_events);
37
43void
45 Track * self,
46 bool disconnect,
47 bool recalc_graph,
48 bool pub_events);
49
55void
57 Track * self,
58 unsigned int child_name_hash,
59 bool connect,
60 bool recalc_graph,
61 bool pub_events);
62
63bool
64group_target_track_validate (Track * self);
65
66void
67group_target_track_add_children (
68 Track * self,
69 unsigned int * children,
70 int num_children,
71 bool connect,
72 bool recalc_graph,
73 bool pub_events);
74
79NONNULL PURE int
80group_target_track_find_child (Track * self, unsigned int track_name_hash);
81
82#endif /* __AUDIO_GROUP_TARGET_TRACK_H__ */
void group_target_track_remove_child(Track *self, unsigned int child_name_hash, bool disconnect, bool recalc_graph, bool pub_events)
Removes a child track from the list of children.
void group_target_track_remove_all_children(Track *self, bool disconnect, bool recalc_graph, bool pub_events)
Remove all known children.
NONNULL PURE int group_target_track_find_child(Track *self, unsigned int track_name_hash)
Returns the index of the child matching the given hash.
void group_target_track_add_child(Track *self, unsigned int child_name_hash, bool connect, bool recalc_graph, bool pub_events)
Adds a child track to the list of children.
Track to be inserted into the Project's Tracklist.
Definition track.h:186
unsigned int * children
Name hashes of tracks that are routed to this track, if group track.
Definition track.h:490