13#ifndef __AUDIO_REGION_IDENTIFIER_H__
14#define __AUDIO_REGION_IDENTIFIER_H__
18#include "gtk_wrapper.h"
34 REGION_TYPE_MIDI = 1 << 0,
35 REGION_TYPE_AUDIO = 1 << 1,
36 REGION_TYPE_AUTOMATION = 1 << 2,
37 REGION_TYPE_CHORD = 1 << 3,
40static const char * region_type_bitvals[] = {
59 unsigned int track_name_hash;
74region_identifier_is_equal (
78 return a->
idx == b->
idx && a->track_name_hash == b->track_name_hash
83NONNULL
static inline void
87 dest->track_name_hash = src->track_name_hash;
88 dest->lane_pos = src->lane_pos;
90 dest->type = src->type;
97static inline const char *
98region_identifier_get_region_type_name (
RegionType type)
100 g_return_val_if_fail (
101 type >= RegionType::REGION_TYPE_MIDI && type <= RegionType::REGION_TYPE_CHORD,
105 static_cast<unsigned int> (type))];
112 "Region identifier: "
113 "type: %s, track name hash %u, lane pos %d, "
114 "at index %d, index %d, link_group: %d",
115 region_identifier_get_region_type_name (self->type), self->track_name_hash,
RegionType
Type of Region.
unsigned int utils_get_uint_from_bitfield_val(unsigned int bitfield)
From https://graphics.stanford.edu/~seander/bithacks.html#ZerosOnRightLinear.
Index/identifier for a Region, so we can get Region objects quickly with it without searching by name...
int link_group
Link group index, if any, or -1.
int at_idx
Automation track index in the automation tracklist, if automation region.
int idx
Index inside lane or automation track.