Initial commit
This commit is contained in:
commit
56f7cd1875
105 changed files with 22109 additions and 0 deletions
108
tests/clap/ext/draft/project-location.h
Normal file
108
tests/clap/ext/draft/project-location.h
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
#pragma once
|
||||
|
||||
#include "../../color.h"
|
||||
#include "../../plugin.h"
|
||||
#include "../../string-sizes.h"
|
||||
|
||||
// This extension allows a host to tell the plugin more about its position
|
||||
// within a project or session.
|
||||
|
||||
static CLAP_CONSTEXPR const char CLAP_EXT_PROJECT_LOCATION[] = "clap.project-location/2";
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum clap_project_location_kind {
|
||||
// Represents a document/project/session.
|
||||
CLAP_PROJECT_LOCATION_PROJECT = 1,
|
||||
|
||||
// Represents a group of tracks.
|
||||
// It can contain track groups, tracks, and devices (post processing).
|
||||
// The first device within a track group has the index of
|
||||
// the last track or track group within this group + 1.
|
||||
CLAP_PROJECT_LOCATION_TRACK_GROUP = 2,
|
||||
|
||||
// Represents a single track.
|
||||
// It contains devices (serial).
|
||||
CLAP_PROJECT_LOCATION_TRACK = 3,
|
||||
|
||||
// Represents a single device.
|
||||
// It can contain other nested device chains.
|
||||
CLAP_PROJECT_LOCATION_DEVICE = 4,
|
||||
|
||||
// Represents a nested device chain (serial).
|
||||
// Its parent must be a device.
|
||||
// It contains other devices.
|
||||
CLAP_PROJECT_LOCATION_NESTED_DEVICE_CHAIN = 5,
|
||||
};
|
||||
|
||||
enum clap_project_location_track_kind {
|
||||
// This track is an instrument track.
|
||||
CLAP_PROJECT_LOCATION_INSTUMENT_TRACK = 1,
|
||||
|
||||
// This track is an audio track.
|
||||
CLAP_PROJECT_LOCATION_AUDIO_TRACK = 2,
|
||||
|
||||
// This track is both an instrument and audio track.
|
||||
CLAP_PROJECT_LOCATION_HYBRID_TRACK = 3,
|
||||
|
||||
// This track is a return track.
|
||||
CLAP_PROJECT_LOCATION_RETURN_TRACK = 4,
|
||||
|
||||
// This track is a master track.
|
||||
// Each group have a master track for processing the sum of all its children tracks.
|
||||
CLAP_PROJECT_LOCATION_MASTER_TRACK = 5,
|
||||
};
|
||||
|
||||
enum clap_project_location_flags {
|
||||
CLAP_PROJECT_LOCATION_HAS_INDEX = 1 << 0,
|
||||
CLAP_PROJECT_LOCATION_HAS_COLOR = 1 << 1,
|
||||
};
|
||||
|
||||
typedef struct clap_project_location_element {
|
||||
// A bit-mask, see clap_project_location_flags.
|
||||
uint64_t flags;
|
||||
|
||||
// Kind of the element, must be one of the CLAP_PROJECT_LOCATION_* values.
|
||||
uint32_t kind;
|
||||
|
||||
// Only relevant if kind is CLAP_PLUGIN_LOCATION_TRACK.
|
||||
// see enum CLAP_PROJECT_LOCATION_track_kind.
|
||||
uint32_t track_kind;
|
||||
|
||||
// Index within the parent element.
|
||||
// Only usable if CLAP_PROJECT_LOCATION_HAS_INDEX is set in flags.
|
||||
uint32_t index;
|
||||
|
||||
// Internal ID of the element.
|
||||
// This is not intended for display to the user,
|
||||
// but rather to give the host a potential quick way for lookups.
|
||||
char id[CLAP_PATH_SIZE];
|
||||
|
||||
// User friendly name of the element.
|
||||
char name[CLAP_NAME_SIZE];
|
||||
|
||||
// Color for this element.
|
||||
// Only usable if CLAP_PROJECT_LOCATION_HAS_COLOR is set in flags.
|
||||
clap_color_t color;
|
||||
} clap_project_location_element_t;
|
||||
|
||||
typedef struct clap_plugin_project_location {
|
||||
// Called by the host when the location of the plugin instance changes.
|
||||
//
|
||||
// The last item in this array always refers to the device itself, and as
|
||||
// such is expected to be of kind CLAP_PLUGIN_LOCATION_DEVICE.
|
||||
// The first item in this array always refers to the project this device is in and must be of
|
||||
// kind CLAP_PROJECT_LOCATION_PROJECT. The path is expected to be something like: PROJECT >
|
||||
// TRACK_GROUP+ > TRACK > (DEVICE > NESTED_DEVICE_CHAIN)* > DEVICE
|
||||
//
|
||||
// [main-thread]
|
||||
void(CLAP_ABI *set)(const clap_plugin_t *plugin,
|
||||
const clap_project_location_element_t *path,
|
||||
uint32_t num_elements);
|
||||
} clap_plugin_project_location_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue