Anklang-0.3.0.dev886+g785567a1 anklang-0.3.0.dev886+g785567a1
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 bool set_data (const String &key, const Value &v) = 0;
194 virtual Value get_data (const String &key) const = 0;
196 virtual void remove_self () = 0;
197};
198
209
211class Device : public virtual Gadget {
212protected:
213 explicit Device ();
214public:
215 // internal
216 Track* _track () const;
217 virtual void _activate () = 0;
218 virtual void _deactivate () = 0;
219 virtual void _disconnect_remove () = 0;
220 // exported
221 virtual bool is_active () = 0;
222 virtual DeviceInfo device_info () = 0;
223 virtual DeviceS get_devices () const = 0;
224 virtual void set_devices (const DeviceS &devices) = 0;
225 // GUI handling
226 virtual void gui_toggle () = 0;
227 virtual bool gui_supported () = 0;
228 virtual bool gui_visible () = 0;
229};
230
232struct ClipNote {
233 int32 id = 0;
235 int8 key = 0;
236 bool selected = 0;
239 float velocity = 0;
240 float fine_tune = 0;
241 bool operator== (const ClipNote&) const;
242};
243
245class Clip : public virtual Gadget {
246protected:
247 explicit Clip ();
248public:
249 virtual bool is_muted () const = 0;
250 virtual void set_muted (bool muted) = 0;
251 virtual double volume () const = 0;
252 virtual void volume (double db) = 0;
253 virtual double pan () const = 0;
254 virtual void pan (double pan) = 0;
255 virtual ClipNoteS all_notes () const = 0;
256 virtual void all_notes (const ClipNoteS &notes) = 0;
257 virtual int64 end_tick () const = 0;
258 virtual void end_tick (int64 etick) = 0;
259 virtual int64 start_tick () const = 0;
260 virtual int64 stop_tick () const = 0;
261 virtual void assign_range (int64 starttick, int64 stoptick) = 0;
263 virtual int32 change_batch (const ClipNoteS &notes, const String &undogroup = "") = 0;
264 virtual ClipNoteS list_all_notes () = 0;
265 virtual TelemetryFieldS telemetry () const = 0;
266};
267
269class Track : public virtual Device {
270public:
271 virtual int32 midi_channel () const = 0;
272 virtual void midi_channel (int32 midichannel) = 0;
273 virtual bool is_master () const = 0;
274 virtual bool is_muted () const = 0;
275 virtual void set_muted (bool muted) = 0;
276 virtual bool is_solo () const = 0;
277 virtual void set_solo (bool solo) = 0;
278 virtual double volume () const = 0;
279 virtual void volume (double db) = 0;
280 virtual double pan () const = 0;
281 virtual void pan (double pan) = 0;
282 virtual ClipS launcher_clips () = 0;
283 virtual ClipP create_midi_clip (const String &name, double start, double length) = 0;
284 virtual ClipP create_audio_clip (const String &name, double start, double length) = 0;
285 virtual DeviceP access_device () = 0;
286 virtual MonitorP create_monitor (int32 ochannel) = 0;
287 virtual TelemetryFieldS telemetry () const = 0;
288};
289
297
299class Monitor : public virtual Gadget {
300public:
301 virtual DeviceP get_output () = 0;
302 virtual int32 get_ochannel () = 0;
303 virtual int64 get_mix_freq () = 0;
304 virtual int64 get_frame_duration () = 0;
305 //int64 get_shm_offset (MonitorField fld); ///< Offset into shared memory for MonitorField values of `ochannel`.
306 //void set_probe_features (ProbeFeatures pf); ///< Configure probe features.
307 //ProbeFeatures get_probe_features (); ///< Get configured probe features.
308};
309
311class Project : public virtual Device {
312protected:
313 explicit Project ();
314public:
315 virtual void bpm (double bpm) = 0;
316 virtual double bpm () const = 0;
317 virtual void numerator (double num) = 0;
318 virtual double numerator () const = 0;
319 virtual void denominator (double den) = 0;
320 virtual double denominator () const = 0;
321 virtual void discard () = 0;
322 virtual void start_playback () = 0;
323 virtual void pause_playback () = 0;
324 virtual void stop_playback () = 0;
325 virtual bool is_playing () const = 0;
326 virtual void is_playing (bool) = 0;
327 virtual TrackP create_track () = 0;
328 virtual TrackS all_tracks () = 0;
329 virtual TrackP master_track () = 0;
330 virtual Error save_project (const String &utf8filename, bool collect) = 0;
331 virtual String saved_filename () = 0;
332 virtual Error load_project (const String &utf8filename) = 0;
333 virtual TelemetryFieldS telemetry () const = 0;
334 virtual void group_undo (const String &undoname) = 0;
335 virtual void ungroup_undo () = 0;
336 virtual void undo () = 0;
337 virtual bool can_undo () = 0;
338 virtual void redo () = 0;
339 virtual bool can_redo () = 0;
340 virtual double length () const = 0;
341 virtual double master_volume () const = 0;
342 virtual void master_volume (double db) = 0;
343 virtual String match_serialized (const String &regex,
344 int group = 0) = 0;
345 static ProjectP last_project ();
346};
347
348enum class ResourceType {
349 FOLDER = 1,
350 FILE,
351};
352
354struct Resource {
355 ResourceType type = {};
360};
361
363class ResourceCrawler : public virtual Object {
364protected:
365 explicit ResourceCrawler ();
366public:
367 virtual Resource folder () const = 0;
368 virtual void folder (const Resource &newfolder) = 0;
369 virtual ResourceS entries () const = 0;
370 virtual void entries (const ResourceS &newentries) = 0;
372 virtual String2 assign (const String &utf8path,
373 bool existingfile = false) = 0;
375 virtual Resource canonify (const String &utf8cwd, const String &utf8fragment, bool constraindir, bool constrainfile) = 0;
376};
377
379struct UserNote {
380 enum Flags { APPEND, CLEAR, TRANSIENT };
381 uint noteid = 0;
382 Flags flags = APPEND;
383 String channel, text, rest;
384};
385
391
393struct UiConfig {
394 bool has_ui_tests = false;
395 bool auto_exit = false;
396};
397
399class Server : public virtual Gadget {
400public:
401 // singleton
403 static Server& instance ();
404 static ServerP instancep ();
405 virtual void shutdown () = 0;
406 virtual String get_version () = 0;
407 virtual String get_build_id () = 0;
408 virtual String get_opus_version () = 0;
409 virtual String get_flac_version () = 0;
411 virtual String error_blurb (Error error) const = 0;
412 virtual String musical_tuning_label (MusicalTuning musicaltuning) const = 0;
413 virtual String musical_tuning_blurb (MusicalTuning musicaltuning) const = 0;
414 virtual uint64 user_note (const String &text, const String &channel = "misc", UserNote::Flags flags = UserNote::TRANSIENT, const String &rest = "") = 0;
415 virtual bool user_reply (uint64 noteid, uint r) = 0;
416 virtual bool broadcast_telemetry (const TelemetrySegmentS &segments,
417 int32 interval_ms) = 0;
418 virtual StringS list_preferences () = 0;
419 virtual PropertyP access_preference (const String &ident) = 0;
420 virtual UiConfig ui_config () = 0;
421 virtual String ui_test_fetch () = 0;
422 virtual void ui_test_report (const String &testname, bool success) = 0;
424 void exit_program (int status = 0);
425 // projects
426 virtual ProjectP last_project () = 0;
427 virtual ProjectP create_project (String projectname) = 0;
428 // Browsing
430 ResourceCrawlerP dir_crawler (const String &cwd);
432 ResourceCrawlerP url_crawler (const String &url);
433};
434#define ASE_SERVER (::Ase::Server::instance())
435
436} // Ase
#define EPERM
Container for MIDI note and control events.
Definition api.hh:245
virtual int32 change_batch(const ClipNoteS &notes, const String &undogroup="")=0
Change note id according to the arguments or add a new note if id < 0; emits notify:notes.
virtual bool is_muted() const =0
Check if clip is muted.
virtual void set_muted(bool muted)=0
Set clip muted state, emits notify:muted.
virtual void volume(double db)=0
Set clip volume in dB, emits notify:volume.
virtual void pan(double pan)=0
Set clip pan (-1.0 to 1.0), emits notify:pan.
virtual void assign_range(int64 starttick, int64 stoptick)=0
Change start_tick() and stop_tick(); emits notify:start_tick, notify:stop_tick.
virtual int64 start_tick() const =0
Get the first tick intended for playback (this is >= 0), changes on notify:start_tick.
virtual double volume() const =0
Get clip volume in dB.
virtual int64 stop_tick() const =0
Get the tick to stop playback, not events should be played after this, changes on notify:stop_tick.
virtual double pan() const =0
Get clip pan (-1.0 to 1.0).
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:211
virtual bool gui_visible()=0
Is GUI currently visible.
virtual bool is_active()=0
Check whether this is the active synthesis engine project.
virtual void gui_toggle()=0
Toggle GUI display.
virtual void _disconnect_remove()=0
Disconnect the device and remove all object references.
Track * _track() const
Find Track in parent ancestry.
Definition device.cc:59
virtual void _deactivate()=0
Stop processing the corresponding AudioProcessor.
virtual bool gui_supported()=0
Has GUI display facilities.
virtual void _activate()=0
Add AudioProcessor to the Engine and start processing.
virtual void set_devices(const DeviceS &devices)=0
Set the list of devices.
virtual DeviceS get_devices() const =0
List devices in order of processing, notified via "devs".
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:12
Base type for classes that have a Property.
Definition api.hh:173
virtual StringS list_properties()
List all property identifiers.
Definition gadget.cc:184
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:195
virtual PropertyS access_properties()=0
Retrieve handles for all properties.
ProjectImpl * _project() const
Find Project in parent ancestry.
Definition gadget.cc:175
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 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:204
bool set_value(String ident, const Value &v)
Set native property value.
Definition gadget.cc:211
Callback mechanism for Jsonapi/Jsonipc.
Definition value.hh:123
Interface for monitoring output signals.
Definition api.hh:299
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
Projects support loading, saving, playback and act as containers for all other sound objects.
Definition api.hh:311
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 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 double master_volume() const =0
Get master volume in dB.
virtual void master_volume(double db)=0
Set master volume in dB.
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 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
Get the end time of the last clip in seconds.
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.
virtual TrackS all_tracks()=0
List all tracks of the project.
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:363
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:399
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:198
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:204
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:217
ResourceCrawlerP dir_crawler(const String &cwd)
Create crawler to navigate directories.
Definition server.cc:211
virtual StringS list_preferences()=0
Retrieve a list of all preference identifiers.
String engine_stats()
Print engine state.
Definition server.cc:228
void exit_program(int status=0)
End program (without saving).
Definition server.cc:236
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:269
virtual bool is_muted() const =0
Check if track is muted.
virtual bool is_master() const =0
Flag set on the main output track.
virtual ClipS launcher_clips()=0
Retrieve the list of clips that can be directly played.
virtual void pan(double pan)=0
Set track pan (-1.0 to 1.0).
virtual void set_muted(bool muted)=0
Set track muted state.
virtual bool is_solo() const =0
Check if track is soloed.
virtual ClipP create_audio_clip(const String &name, double start, double length)=0
Create a new audio clip on this track.
virtual void set_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 double pan() const =0
Get track pan (-1.0 to 1.0).
virtual int32 midi_channel() const =0
Midi channel assigned to this track, 0 uses internal per-track channel.
virtual DeviceP access_device()=0
Retrieve Device handle for this track.
virtual double volume() const =0
Get track volume in dB.
virtual void volume(double db)=0
Set track volume in dB.
virtual TelemetryFieldS telemetry() const =0
Create signal monitor for an output channel.
The Anklang C++ API namespace.
Definition api.hh:8
ResourceType type
Resource classification.
Definition api.hh:355
bool has_ui_tests
Whether any UI tests are pending.
Definition api.hh:394
String creator_name
Name of the creator.
Definition api.hh:206
uint64_t uint64
A 64-bit unsigned integer, use PRI*64 in format strings.
Definition cxxaux.hh:25
bool probe_samples
Provide probe with bare sample values.
Definition api.hh:294
int32_t int32
A 32-bit signed integer.
Definition cxxaux.hh:28
bool probe_range
Provide sample range probes.
Definition api.hh:292
String type
Types like "i32", "f32", "f64".
Definition api.hh:114
String name
Preferred user interface name.
Definition api.hh:202
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:207
uint8_t uint8
An 8-bit unsigned integer.
Definition cxxaux.hh:22
String uri
Unique identifier for de-/serialization.
Definition api.hh:201
int8_t int8
An 8-bit signed integer.
Definition cxxaux.hh:26
int64_t int64
A 64-bit unsigned integer, use PRI*64 in format strings.
Definition cxxaux.hh:29
Error
Enum representing Error states.
Definition api.hh:21
int64 size
Resource size.
Definition api.hh:358
int32 offset
Position in bytes.
Definition api.hh:388
bool auto_exit
Whether to auto-exit after tests complete.
Definition api.hh:395
constexpr const char GUIONLY[]
GUI READABLE WRITABLE.
Definition api.hh:11
const char * ase_error_blurb(Error error)
Describe Error condition.
Definition server.cc:270
String description
Elaborate description for help dialogs.
Definition api.hh:204
int32 length
Length in bytes.
Definition api.hh:389
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:357
ChoiceS & operator+=(ChoiceS &choices, Choice &&newchoice)
Convenience ChoiceS construction helper.
Definition server.cc:261
bool probe_energy
Provide sample energy measurement.
Definition api.hh:293
bool probe_fft
Provide FFT analysis probe.
Definition api.hh:295
constexpr const char STANDARD[]
STORAGE GUI READABLE WRITABLE.
Definition api.hh:13
uint32_t uint
Provide 'uint' as convenience type.
Definition cxxaux.hh:18
String category
Category to allow grouping for processors of similar function.
Definition api.hh:203
String website_url
Website of/about this Processor.
Definition api.hh:205
int64 mtime
Modification time in milliseconds.
Definition api.hh:359
MusicalTuning
Musical tunings, see: http://en.wikipedia.org/wiki/Musical_tuning.
Definition api.hh:82
String label
UI display name.
Definition api.hh:356
Info for device types.
Definition api.hh:200
Bits representing a selection of probe sample data features.
Definition api.hh:291
Description of a resource, possibly nested.
Definition api.hh:354
Telemetry segment location.
Definition api.hh:112
Telemetry segment location.
Definition api.hh:387
Configuration values for the UI.
Definition api.hh:393
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
Part specific note event representation.
Definition api.hh:232
int64 tick
UI selection flag.
Definition api.hh:237
bool selected
Musical note as MIDI key, 0 .. 127.
Definition api.hh:236
float velocity
Duration in number of ticks.
Definition api.hh:239
bool operator==(const ClipNote &) const
Fine Tune, -100 .. +100.
Definition clip.cc:20
int64 duration
Position in ticks.
Definition api.hh:238
int8 channel
ID, > 0.
Definition api.hh:234
int8 key
MIDI Channel.
Definition api.hh:235
float fine_tune
Velocity, 0 .. +1.
Definition api.hh:240
Contents of user interface notifications.
Definition api.hh:379
Value type used to interface with various property types.
Definition value.hh:54
Common base type to allow casting between polymorphic classes.
Definition cxxaux.hh:221