Anklang-0.3.0-1416-gfa8ce8d2 anklang-0.3.0-1416-gfa8ce8d2
ASE — Anklang Sound Engine (C++)

« « « Anklang Documentation
Loading...
Searching...
No Matches
api.hh
Go to the documentation of this file.
1 // This Source Code Form is licensed MPL-2.0: http://mozilla.org/MPL/2.0
2#pragma once
3
4#include <ase/member.hh>
5#include <ase/value.hh>
6
8namespace Ase {
9
10// == Property hint constants ==
11constexpr const char GUIONLY[] = ":G:r:w:";
12constexpr const char STORAGE[] = ":S:r:w:";
13constexpr const char STANDARD[] = ":S:G:r:w:";
14
16class SharedBase : public virtual VirtualBase,
17 public virtual std::enable_shared_from_this<SharedBase>
18{};
19
21enum class Error : int32_t {
22 NONE = 0,
23 PERMS = EPERM,
24 IO = EIO,
25 // resource exhaustion
26 NO_MEMORY = ENOMEM,
27 NO_SPACE = ENOSPC,
28 NO_FILES = ENFILE,
29 MANY_FILES = EMFILE,
30 RETRY = EINTR,
31 // file errors
32 NOT_DIRECTORY = ENOTDIR,
33 FILE_NOT_FOUND = ENOENT,
34 FILE_IS_DIR = EISDIR,
35 FILE_EXISTS = EEXIST,
36 FILE_BUSY = EBUSY,
37 // Ase specific errors
38 INTERNAL = 0x30000000,
39 UNIMPLEMENTED,
40 // File related errors
41 FILE_EOF = 0x30001000,
42 FILE_OPEN_FAILED,
43 FILE_SEEK_FAILED,
44 FILE_READ_FAILED,
45 FILE_WRITE_FAILED,
46 // content errors
47 PARSE_ERROR = 0x30002000,
48 NO_HEADER,
49 NO_SEEK_INFO,
50 NO_DATA_AVAILABLE,
51 DATA_CORRUPT,
52 WRONG_N_CHANNELS,
53 FORMAT_INVALID,
54 FORMAT_UNKNOWN,
55 DATA_UNMATCHED,
56 CODEC_FAILURE,
57 BROKEN_ARCHIVE,
58 BAD_PROJECT,
59 NO_PROJECT_DIR,
60 // Device errors
61 DEVICE_NOT_AVAILABLE = 0x30003000,
62 DEVICE_ASYNC,
63 DEVICE_BUSY,
64 DEVICE_FORMAT,
65 DEVICE_BUFFER,
66 DEVICE_LATENCY,
67 DEVICE_CHANNELS,
68 DEVICE_FREQUENCY,
69 DEVICES_MISMATCH,
70 // miscellaneous errors
71 WAVE_NOT_FOUND = 0x30004000,
72 INVALID_PROPERTY,
73 INVALID_MIDI_CONTROL,
74 OPERATION_BUSY,
75};
76ASE_DEFINE_ENUM_EQUALITY (Error);
77constexpr bool operator! (Error error) { return !std::underlying_type_t<Error> (error); }
78const char* ase_error_blurb (Error error);
79Error ase_error_from_errno (int sys_errno, Error fallback = Error::IO);
80
82enum class MusicalTuning : uint8 {
83 // Equal Temperament: http://en.wikipedia.org/wiki/Equal_temperament
84 OD_12_TET, OD_7_TET, OD_5_TET,
85 // Rational Intonation: http://en.wikipedia.org/wiki/Just_intonation
86 DIATONIC_SCALE, INDIAN_SCALE, PYTHAGOREAN_TUNING, PENTATONIC_5_LIMIT, PENTATONIC_BLUES, PENTATONIC_GOGO,
87 // Meantone Temperament: http://en.wikipedia.org/wiki/Meantone_temperament
88 QUARTER_COMMA_MEANTONE, SILBERMANN_SORGE,
89 // Well Temperament: http://en.wikipedia.org/wiki/Well_temperament
90 WERCKMEISTER_3, WERCKMEISTER_4, WERCKMEISTER_5, WERCKMEISTER_6, KIRNBERGER_3, YOUNG,
91};
92ASE_DEFINE_ENUM_EQUALITY (MusicalTuning);
93
107
109ChoiceS& operator+= (ChoiceS &choices, Choice &&newchoice);
110
118
120class Emittable : public virtual SharedBase {
121public:
123 bool connected () const;
124 void disconnect () const;
125 };
126 virtual void emit_event (const String &type, const String &detail, const ValueR fields = {}) = 0;
127 ASE_USE_RESULT
128 virtual Connection on_event (const String &eventselector, const EventHandler &eventhandler) = 0;
129 virtual void emit_notify (const String &detail) = 0;
130 void js_trigger (const String &eventselector, JsTrigger callback);
131};
132
134class Property : public virtual Emittable {
135protected:
136 explicit Property ();
137 virtual ~Property () = 0;
138public:
139 virtual String name () const;
140 virtual void name (const String &n);
141 virtual StringS metadata () const = 0;
142 virtual void metadata (const StringS &md);
143 virtual String ident () const = 0;
144 virtual String label () const = 0;
145 virtual String nick () const = 0;
146 virtual String unit () const = 0;
147 virtual double get_min () const = 0;
148 virtual double get_max () const = 0;
149 virtual double get_step () const = 0;
150 virtual void reset () = 0;
151 virtual Value value () const = 0;
152 virtual bool value (const Value &v) = 0;
153 virtual double get_normalized () const = 0;
154 virtual bool set_normalized (double v) = 0;
155 virtual String get_text () const = 0;
156 virtual bool set_text (String v) = 0;
157 virtual bool is_numeric () const = 0;
158 virtual ChoiceS choices () const = 0;
159 String hints () const;
160 String blurb () const;
161 String descr () const;
162 String group () const;
163};
164
166class Object : public virtual Emittable {
167protected:
168 virtual ~Object () = 0;
169public:
170};
171
173class Gadget : public virtual Object {
174protected:
175 explicit Gadget ();
176public:
177 // Hierarchical parenting.
178 virtual GadgetImpl* _parent () const = 0;
179 virtual void _set_parent (GadgetImpl *parent) = 0;
180 ProjectImpl* _project () const;
181 // Naming
182 virtual String name () const = 0;
183 virtual void name (const std::string &n) = 0;
184 virtual String type_nick () const = 0;
185 // Properties
186 virtual StringS list_properties ();
187 virtual PropertyP access_property (String ident);
188 virtual PropertyS access_properties () = 0;
189 Value get_value (String ident);
190 bool set_value (String ident, const Value &v);
192 virtual StringS read_only_properties () const;
194 virtual bool set_data (const String &key, const Value &v) = 0;
196 virtual Value get_data (const String &key) const = 0;
198 virtual void remove_self () = 0;
199};
200
211
213class Device : public virtual Gadget {
214public:
215 virtual DeviceInfo device_info () = 0;
216};
217
219class Plugin : public virtual Device {
220public:
221 virtual String plugin_type () const = 0;
222 virtual bool enabled () const = 0;
223 virtual void enabled (bool enabled) = 0;
224 virtual bool frozen () const = 0;
225 virtual void frozen (bool frozen) = 0;
226};
227
229struct ClipNote {
230 int32 id = 0;
231 int note_number = 0;
232 double start_beat = 0;
233 double length_beats = 0;
234 int velocity = 0;
235 int colour = 0;
236 bool mute = false;
237 bool operator== (const ClipNote&) const = default;
238};
239
241struct TimeRange {
242 double start = 0;
243 double end = 0;
244 bool operator== (const TimeRange&) const = default;
245};
246
249 TimeRange time;
250 double offset = 0;
251 bool operator== (const ClipPosition&) const = default;
252};
253
255class Clip : public virtual Gadget {
256public:
257 virtual bool muted () const = 0;
258 virtual void muted (bool muted) = 0;
259 virtual float volume () const = 0;
260 virtual void volume (float db) = 0;
261 virtual float pan () const = 0;
262 virtual void pan (float pan) = 0;
263 virtual ClipNoteS all_notes () const = 0;
264 virtual void all_notes (const ClipNoteS &notes) = 0;
265 virtual ClipPosition position () const = 0;
266 virtual void position (const ClipPosition &position) = 0;
267 virtual double start_beat () const = 0;
268 virtual void start_beat (double) = 0;
269 virtual double end_beat () const = 0;
270 virtual void end_beat (double) = 0;
272 virtual ClipNoteS change_batch (const ClipNoteS &notes, const String &undogroup = "") = 0;
273 virtual ClipNoteS list_all_notes () = 0;
274 virtual TelemetryFieldS telemetry () const = 0;
275};
276
278class Track : public virtual Device {
279public:
280 virtual bool is_master () const = 0;
281 virtual bool is_control_track () const = 0;
282 virtual bool muted () const = 0;
283 virtual void muted (bool muted) = 0;
284 virtual bool hidden () const = 0;
285 virtual void hidden (bool hidden) = 0;
286 virtual bool solo () const = 0;
287 virtual void solo (bool solo) = 0;
288 virtual float volume_db () const = 0;
289 virtual void volume_db (float db) = 0;
290 virtual float slider_pos () const = 0;
291 virtual void slider_pos (float pos) = 0;
292 virtual float pan () const = 0;
293 virtual void pan (float pan) = 0;
294 virtual ClipS launcher_clips () const = 0;
295 virtual void launcher_clips (const ClipS &) = 0;
296 virtual ClipP create_midi_clip (const String &name, double start, double length) = 0;
297 virtual ClipP create_audio_clip (const String &name, double start, double length) = 0;
298 virtual PluginP create_plugin (const String &type) = 0;
299 virtual PluginS list_plugins () = 0;
300 virtual DeviceP access_device () = 0;
301 virtual MonitorP create_monitor (int32 ochannel) = 0;
302 virtual TelemetryFieldS telemetry () const = 0;
303};
304
312
314class Monitor : public virtual Gadget {
315public:
316 virtual DeviceP get_output () = 0;
317 virtual int32 get_ochannel () = 0;
318 virtual int64 get_mix_freq () = 0;
319 virtual int64 get_frame_duration () = 0;
320 //int64 get_shm_offset (MonitorField fld); ///< Offset into shared memory for MonitorField values of `ochannel`.
321 //void set_probe_features (ProbeFeatures pf); ///< Configure probe features.
322 //ProbeFeatures get_probe_features (); ///< Get configured probe features.
323};
324
326class Project : public virtual Device {
327public:
328 virtual void bpm (double bpm) = 0;
329 virtual double bpm () const = 0;
330 virtual void numerator (int num) = 0;
331 virtual int numerator () const = 0;
332 virtual void denominator (int den) = 0;
333 virtual int denominator () const = 0;
334 virtual void discard () = 0;
335 virtual void start_playback () = 0;
336 virtual void pause_playback () = 0;
337 virtual void stop_playback () = 0;
338 virtual bool is_playing () const = 0;
339 virtual void is_playing (bool) = 0;
340 virtual TrackP create_track () = 0;
341 virtual TrackS all_tracks () const = 0;
342 virtual void all_tracks (const TrackS &) = 0;
343 virtual TrackP master_track () = 0;
344 virtual Error save_project (const String &utf8filename, bool collect) = 0;
345 virtual String saved_filename () = 0;
346 virtual Error load_project (const String &utf8filename) = 0;
347 virtual TelemetryFieldS telemetry () const = 0;
348 virtual void group_undo (const String &undoname) = 0;
349 virtual void ungroup_undo () = 0;
350 virtual void undo () = 0;
351 virtual bool can_undo () = 0;
352 virtual void redo () = 0;
353 virtual bool can_redo () = 0;
354 virtual double length () const = 0;
355 virtual void length (double) = 0;
356 virtual String match_serialized (const String &regex,
357 int group = 0) = 0;
358 static ProjectP last_project ();
359};
360
361enum class ResourceType {
362 FOLDER = 1,
363 FILE,
364};
365
367struct Resource {
368 ResourceType type = {};
373};
374
376class ResourceCrawler : public virtual Object {
377protected:
378 explicit ResourceCrawler ();
379public:
380 virtual Resource folder () const = 0;
381 virtual void folder (const Resource &newfolder) = 0;
382 virtual ResourceS entries () const = 0;
383 virtual void entries (const ResourceS &newentries) = 0;
385 virtual String2 assign (const String &utf8path,
386 bool existingfile = false) = 0;
388 virtual Resource canonify (const String &utf8cwd, const String &utf8fragment, bool constraindir, bool constrainfile) = 0;
389};
390
392struct UserNote {
393 enum Flags { APPEND, CLEAR, TRANSIENT };
394 uint noteid = 0;
395 Flags flags = APPEND;
396 String channel, text, rest;
397};
398
404
406struct UiConfig {
407 bool has_ui_tests = false;
408 bool auto_exit = false;
409};
410
412class Server : public virtual Gadget {
413public:
414 // singleton
416 static Server& instance ();
417 static ServerP instancep ();
418 virtual void shutdown () = 0;
419 virtual String get_version () = 0;
420 virtual String get_build_id () = 0;
421 virtual String get_opus_version () = 0;
422 virtual String get_flac_version () = 0;
424 virtual String error_blurb (Error error) const = 0;
425 virtual String musical_tuning_label (MusicalTuning musicaltuning) const = 0;
426 virtual String musical_tuning_blurb (MusicalTuning musicaltuning) const = 0;
427 virtual uint64 user_note (const String &text, const String &channel = "misc", UserNote::Flags flags = UserNote::TRANSIENT, const String &rest = "") = 0;
428 virtual bool user_reply (uint64 noteid, uint r) = 0;
429 virtual bool broadcast_telemetry (const TelemetrySegmentS &segments,
430 int32 interval_ms) = 0;
431 virtual StringS list_preferences () = 0;
432 virtual PropertyP access_preference (const String &ident) = 0;
433 virtual UiConfig ui_config () = 0;
434 virtual String ui_test_fetch () = 0;
435 virtual void ui_test_report (const String &testname, bool success) = 0;
436 virtual String ui_js_fetch () = 0;
438 void exit_program (int status = 0);
439 // projects
440 virtual ProjectP last_project () = 0;
441 virtual ProjectP create_project (String projectname) = 0;
442 // Browsing
444 ResourceCrawlerP dir_crawler (const String &cwd);
446 ResourceCrawlerP url_crawler (const String &url);
447};
448#define ASE_SERVER (::Ase::Server::instance())
449
450} // Ase
#define EPERM
Container for MIDI note and control events.
Definition api.hh:255
virtual double end_beat() const =0
Clip end in Tracktion beats, changes on notify:end_beat.
virtual float pan() const =0
Get audio clip pan (-1.0 to 1.0), 0 for other clips.
virtual void start_beat(double)=0
Read-only, assignments warn.
virtual void pan(float pan)=0
Set audio clip pan (-1.0 to 1.0), emits notify:pan, does nothing for other clips.
virtual void muted(bool muted)=0
Set clip muted state, emits notify:muted.
virtual void volume(float db)=0
Set clip volume in dB, emits notify:volume.
virtual void end_beat(double)=0
Read-only, assignments warn.
virtual ClipNoteS change_batch(const ClipNoteS &notes, const String &undogroup="")=0
Insert id <= 0, delete length_beats == 0; emits notify:notes and notify:all_notes.
virtual float volume() const =0
Get clip volume in dB.
virtual double start_beat() const =0
Clip start in Tracktion beats, changes on notify:start_beat.
virtual bool muted() const =0
Check if clip is muted.
virtual ClipNoteS list_all_notes()=0
List all notes of this Clip, changes on notify:notes.
virtual TelemetryFieldS telemetry() const =0
Retrieve clip telemetry locations.
Interface to access Device instances.
Definition api.hh:213
virtual DeviceInfo device_info()=0
Describe this Device type.
Base type for classes with Event subscription.
Definition api.hh:120
Base type for classes that have a Property.
Definition gadget.hh:11
Base type for classes that have a Property.
Definition api.hh:173
virtual StringS list_properties()
List all property identifiers.
Definition gadget.cc:109
virtual Value get_data(const String &key) const =0
Retrieve session data.
virtual PropertyP access_property(String ident)
Retrieve handle for a Property.
Definition gadget.cc:120
virtual PropertyS access_properties()=0
Retrieve handles for all properties.
ProjectImpl * _project() const
Find Project in parent ancestry.
Definition gadget.cc:94
virtual void remove_self()=0
Remove self from parent container.
virtual void _set_parent(GadgetImpl *parent)=0
Assign parent container.
virtual GadgetImpl * _parent() const =0
Retrieve parent container.
virtual StringS read_only_properties() const
List x()/x (v) properties that this object can't change, their setters ignore the value or warn.
Definition gadget.cc:103
virtual bool set_data(const String &key, const Value &v)=0
Assign session data, prefix ephemerals with '_'.
Value get_value(String ident)
Get native property value.
Definition gadget.cc:129
bool set_value(String ident, const Value &v)
Set native property value.
Definition gadget.cc:136
Callback mechanism for Jsonapi/Jsonipc.
Definition value.hh:122
Interface for monitoring output signals.
Definition api.hh:314
virtual int64 get_mix_freq()=0
Mix frequency at which monitor values are calculated.
virtual int64 get_frame_duration()=0
Frame duration in µseconds for the calculation of monitor values.
virtual int32 get_ochannel()=0
Retrieve output channel the Monitor is connected to.
virtual DeviceP get_output()=0
Retrieve output device the Monitor is connected to.
Base type for classes with Property interfaces.
Definition api.hh:166
Plugin wrapper for tracktion_engine plugins on tracks.
Definition api.hh:219
virtual void enabled(bool enabled)=0
Enable or disable the plugin.
virtual void frozen(bool frozen)=0
Freeze or unfreeze the plugin.
virtual bool frozen() const =0
Check if plugin is frozen.
virtual bool enabled() const =0
Check if plugin is enabled.
virtual String plugin_type() const =0
Plugin type identifier.
Projects support loading, saving, playback and act as containers for all other sound objects.
Definition api.hh:326
virtual void undo()=0
Undo the last project modification.
virtual Error save_project(const String &utf8filename, bool collect)=0
Store Project and collect external files.
virtual TrackP create_track()=0
Create and append a new Track.
virtual TelemetryFieldS telemetry() const =0
Retrieve project telemetry locations.
virtual void length(double)=0
Read-only, assignments warn.
virtual TrackP master_track()=0
Retrieve the master track.
virtual void ungroup_undo()=0
Stop merging undo steps.
virtual void start_playback()=0
Start playback of a project, requires active sound engine.
virtual void group_undo(const String &undoname)=0
Merge upcoming undo steps.
virtual void stop_playback()=0
Stop project playback.
virtual bool can_undo()=0
Check if any undo steps have been recorded.
virtual void pause_playback()=0
Pause playback at the current position.
virtual void is_playing(bool)=0
Set whether a project is currently playing (song sequencing).
virtual bool is_playing() const =0
Check whether a project is currently playing (song sequencing).
virtual void redo()=0
Redo the last undo modification.
virtual void all_tracks(const TrackS &)=0
Read-only, assignments warn.
virtual TrackS all_tracks() const =0
List all tracks, changes on notify:all_tracks.
virtual void discard()=0
Discard project and associated resources.
virtual String match_serialized(const String &regex, int group=0)=0
Match regex against the serialized project state.
virtual Error load_project(const String &utf8filename)=0
Load project from file filename.
virtual double length() const =0
End time of the last clip in seconds, changes on notify:length.
virtual String saved_filename()=0
Retrieve UTF-8 filename for save or from load.
virtual bool can_redo()=0
Check if any redo steps have been recorded.
A Property allows querying, setting and monitoring of an object property.
Definition api.hh:134
virtual double get_normalized() const =0
Get the normalized property value, converted to double.
String descr() const
Elaborate description, e.g. for help dialogs (metadata).
Definition parameter.cc:467
virtual String get_text() const =0
Get the current property value, converted to a text String.
String blurb() const
Short description for user interface tooltips (metadata).
Definition parameter.cc:461
virtual ChoiceS choices() const =0
Enumerate choices for choosable properties.
virtual double get_max() const =0
Get the maximum property value, converted to double.
virtual double get_step() const =0
Get the property value stepping, converted to double.
virtual bool set_normalized(double v)=0
Set the normalized property value as double.
virtual String label() const =0
Preferred user interface name.
virtual bool is_numeric() const =0
Whether the property settings can be represented as a floating point number.
virtual String nick() const =0
Abbreviated user interface name, usually not more than 6 characters.
virtual bool value(const Value &v)=0
Set the native property value.
String hints() const
Hints for parameter handling (metadata).
Definition parameter.cc:455
virtual String ident() const =0
Unique name (per owner) of this Property.
virtual Value value() const =0
Get the native property value.
String group() const
Group name for parameters of similar function (metadata).
Definition parameter.cc:473
virtual bool set_text(String v)=0
Set the current property value as a text String.
virtual double get_min() const =0
Get the minimum property value, converted to double.
virtual String unit() const =0
Units of the values within range.
virtual void reset()=0
Assign default as normalized property value.
Helper to crawl hierarchical resources.
Definition api.hh:376
virtual String2 assign(const String &utf8path, bool existingfile=false)=0
Move to a different path.
virtual Resource folder() const =0
Describe current folder.
virtual ResourceS entries() const =0
List entries of a folder.
virtual Resource canonify(const String &utf8cwd, const String &utf8fragment, bool constraindir, bool constrainfile)=0
Return absolute path, slash-terminated if directory, constrain to existing paths.
Central singleton, serves as API entry point.
Definition api.hh:412
virtual ProjectP create_project(String projectname)=0
Create a new project (name is modified to be unique if necessary.
virtual ProjectP last_project()=0
Retrieve the last created project.
virtual String get_version()=0
Retrieve ASE version.
static ServerP instancep()
Retrieve global Server instance as std::shared_ptr.
Definition server.cc:204
virtual void shutdown()=0
Shutdown ASE.
virtual PropertyP access_preference(const String &ident)=0
Retrieve property handle for a Preference identifier.
static Server & instance()
Retrieve global Server instance.
Definition server.cc:210
virtual String get_opus_version()=0
Retrieve Opus handler version.
virtual String ui_test_fetch()=0
Fetch next UI test name to run (empty if none).
virtual String get_build_id()=0
Retrieve ASE build id.
virtual String get_flac_version()=0
Retrieve FLAC handler version.
virtual void ui_test_report(const String &testname, bool success)=0
Report UI test result.
virtual String get_sndfile_version()=0
Retrieve libsndfile support version.
ResourceCrawlerP url_crawler(const String &url)
Create crawler to navigate URL contents.
Definition server.cc:223
ResourceCrawlerP dir_crawler(const String &cwd)
Create crawler to navigate directories.
Definition server.cc:217
virtual StringS list_preferences()=0
Retrieve a list of all preference identifiers.
virtual String ui_js_fetch()=0
Fetch UI JS script to run (empty if none).
String engine_stats()
Print engine state.
Definition server.cc:234
void exit_program(int status=0)
End program (without saving).
Definition server.cc:242
virtual UiConfig ui_config()=0
Retrieve UI configuration values.
virtual bool broadcast_telemetry(const TelemetrySegmentS &segments, int32 interval_ms)=0
Broadcast telemetry memory segments to the current Jsonipc connection.
Common base type for polymorphic classes managed by std::shared_ptr<>.
Definition api.hh:18
Container for Clip objects and sequencing information.
Definition api.hh:278
virtual bool solo() const =0
Check if track is soloed.
virtual bool muted() const =0
Check if track is muted.
virtual bool is_master() const =0
Flag set on the main output track.
virtual float volume_db() const =0
Get track volume in dB.
virtual void pan(float pan)=0
Set track pan (-1.0 to 1.0).
virtual void hidden(bool hidden)=0
Set track hidden state.
virtual float pan() const =0
Get track pan (-1.0 to 1.0).
virtual PluginS list_plugins()=0
List plugins on this track.
virtual bool hidden() const =0
Check if track is hidden from view.
virtual ClipP create_audio_clip(const String &name, double start, double length)=0
Create a new audio clip on this track.
virtual void launcher_clips(const ClipS &)=0
NOP setter, assignments are ignored.
virtual void solo(bool solo)=0
Set track solo state.
virtual ClipP create_midi_clip(const String &name, double start, double length)=0
Create a new MIDI clip on this track.
virtual float slider_pos() const =0
Get track volume fader position.
virtual void muted(bool muted)=0
Set track muted state.
virtual ClipS launcher_clips() const =0
Retrieve the list of clips that can be directly played; changes on notify:launcher_clips.
virtual void slider_pos(float pos)=0
Set track volume fader position.
virtual DeviceP access_device()=0
Retrieve Device handle for this track.
virtual PluginP create_plugin(const String &type)=0
Create a new plugin on this track by type identifier.
virtual bool is_control_track() const =0
Flag set on tempo/marker/chord/arranger/master tracks.
virtual TelemetryFieldS telemetry() const =0
Create signal monitor for an output channel.
virtual void volume_db(float db)=0
Set track volume in dB.
The Anklang C++ API namespace.
Definition api.hh:8
ResourceType type
Resource classification.
Definition api.hh:368
bool has_ui_tests
Whether any UI tests are pending.
Definition api.hh:407
String creator_name
Name of the creator.
Definition api.hh:208
uint64_t uint64
A 64-bit unsigned integer, use PRI*64 in format strings.
Definition cxxaux.hh:24
bool probe_samples
Provide probe with bare sample values.
Definition api.hh:309
int32_t int32
A 32-bit signed integer.
Definition cxxaux.hh:27
bool probe_range
Provide sample range probes.
Definition api.hh:307
String type
Types like "i32", "f32", "f64".
Definition api.hh:114
String name
Preferred user interface name.
Definition api.hh:204
int64_t offset
Position in bytes.
Definition api.hh:115
String name
Names like "bpm", etc.
Definition api.hh:113
String creator_url
Internet contact of the creator.
Definition api.hh:209
uint8_t uint8
An 8-bit unsigned integer.
Definition cxxaux.hh:21
String uri
Unique identifier for de-/serialization.
Definition api.hh:203
int64_t int64
A 64-bit unsigned integer, use PRI*64 in format strings.
Definition cxxaux.hh:28
Error
Enum representing Error states.
Definition api.hh:21
int64 size
Resource size.
Definition api.hh:371
int32 offset
Position in bytes.
Definition api.hh:401
bool auto_exit
Whether to auto-exit after tests complete.
Definition api.hh:408
constexpr const char GUIONLY[]
GUI READABLE WRITABLE.
Definition api.hh:11
const char * ase_error_blurb(Error error)
Describe Error condition.
Definition server.cc:276
String description
Elaborate description for help dialogs.
Definition api.hh:206
int32 length
Length in bytes.
Definition api.hh:402
constexpr const char STORAGE[]
STORAGE READABLE WRITABLE.
Definition api.hh:12
int32 length
Length in bytes.
Definition api.hh:116
String uri
Unique resource identifier.
Definition api.hh:370
ChoiceS & operator+=(ChoiceS &choices, Choice &&newchoice)
Convenience ChoiceS construction helper.
Definition server.cc:267
bool probe_energy
Provide sample energy measurement.
Definition api.hh:308
bool probe_fft
Provide FFT analysis probe.
Definition api.hh:310
constexpr const char STANDARD[]
STORAGE GUI READABLE WRITABLE.
Definition api.hh:13
uint32_t uint
Provide 'uint' as convenience type.
Definition cxxaux.hh:17
String category
Category to allow grouping for processors of similar function.
Definition api.hh:205
String website_url
Website of/about this Processor.
Definition api.hh:207
int64 mtime
Modification time in milliseconds.
Definition api.hh:372
MusicalTuning
Musical tunings, see: http://en.wikipedia.org/wiki/Musical_tuning.
Definition api.hh:82
String label
UI display name.
Definition api.hh:369
Info for device types.
Definition api.hh:202
Bits representing a selection of probe sample data features.
Definition api.hh:306
Description of a resource, possibly nested.
Definition api.hh:367
Telemetry segment location.
Definition api.hh:112
Telemetry segment location.
Definition api.hh:400
Configuration values for the UI.
Definition api.hh:406
typedef int32_t
Representation of one possible choice for selection properties.
Definition api.hh:95
String warning
Potential problem indicator.
Definition api.hh:101
String ident
Identifier used for serialization (may be derived from untranslated label).
Definition api.hh:96
String icon
Icon (64x64 pixels) or unicode symbol (possibly wide).
Definition api.hh:97
String notice
Additional information of interest.
Definition api.hh:100
String blurb
Short description for overviews.
Definition api.hh:99
String label
Preferred user interface name.
Definition api.hh:98
A Tracktion MIDI note with a session handle for edits.
Definition api.hh:229
bool mute
Tracktion note colour index.
Definition api.hh:236
int colour
Velocity, 0 .. 127.
Definition api.hh:235
double start_beat
Musical note as MIDI key, 0 .. 127.
Definition api.hh:232
bool operator==(const ClipNote &) const =default
Mute flag.
int velocity
Duration in Tracktion beats.
Definition api.hh:234
int note_number
Session handle, > 0 for existing notes.
Definition api.hh:231
double length_beats
Position in Tracktion beats from the start of the clip.
Definition api.hh:233
Tracktion clip position in seconds.
Definition api.hh:248
Tracktion time range in seconds.
Definition api.hh:241
Contents of user interface notifications.
Definition api.hh:392
Value type used to interface with various property types.
Definition value.hh:53
Common base type to allow casting between polymorphic classes.
Definition cxxaux.hh:220