Anklang 0.3.0-460-gc4ef46ba
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#ifndef __ASE_API_HH__
3#define __ASE_API_HH__
4
5#include <ase/member.hh>
6#include <ase/value.hh>
7
9namespace Ase {
10
11// == Property hint constants ==
12constexpr const char GUIONLY[] = ":G:r:w:";
13constexpr const char STORAGE[] = ":S:r:w:";
14constexpr const char STANDARD[] = ":S:G:r:w:";
15
17class SharedBase : public virtual VirtualBase,
18 public virtual std::enable_shared_from_this<SharedBase>
19{};
20
22enum class Error : int32_t {
23 NONE = 0,
24 PERMS = EPERM,
25 IO = EIO,
26 // resource exhaustion
27 NO_MEMORY = ENOMEM,
28 NO_SPACE = ENOSPC,
29 NO_FILES = ENFILE,
30 MANY_FILES = EMFILE,
31 RETRY = EINTR,
32 // file errors
33 NOT_DIRECTORY = ENOTDIR,
34 FILE_NOT_FOUND = ENOENT,
35 FILE_IS_DIR = EISDIR,
36 FILE_EXISTS = EEXIST,
37 FILE_BUSY = EBUSY,
38 // Ase specific errors
39 INTERNAL = 0x30000000,
40 UNIMPLEMENTED,
41 // File related errors
42 FILE_EOF = 0x30001000,
43 FILE_OPEN_FAILED,
44 FILE_SEEK_FAILED,
45 FILE_READ_FAILED,
46 FILE_WRITE_FAILED,
47 // content errors
48 PARSE_ERROR = 0x30002000,
49 NO_HEADER,
50 NO_SEEK_INFO,
51 NO_DATA_AVAILABLE,
52 DATA_CORRUPT,
53 WRONG_N_CHANNELS,
54 FORMAT_INVALID,
55 FORMAT_UNKNOWN,
56 DATA_UNMATCHED,
57 CODEC_FAILURE,
58 BROKEN_ARCHIVE,
59 BAD_PROJECT,
60 NO_PROJECT_DIR,
61 // Device errors
62 DEVICE_NOT_AVAILABLE = 0x30003000,
63 DEVICE_ASYNC,
64 DEVICE_BUSY,
65 DEVICE_FORMAT,
66 DEVICE_BUFFER,
67 DEVICE_LATENCY,
68 DEVICE_CHANNELS,
69 DEVICE_FREQUENCY,
70 DEVICES_MISMATCH,
71 // miscellaneous errors
72 WAVE_NOT_FOUND = 0x30004000,
73 INVALID_PROPERTY,
74 INVALID_MIDI_CONTROL,
75 OPERATION_BUSY,
76};
77ASE_DEFINE_ENUM_EQUALITY (Error);
78constexpr bool operator! (Error error) { return !std::underlying_type_t<Error> (error); }
79const char* ase_error_blurb (Error error);
80Error ase_error_from_errno (int sys_errno, Error fallback = Error::IO);
81
83enum class MusicalTuning : uint8 {
84 // Equal Temperament: http://en.wikipedia.org/wiki/Equal_temperament
85 OD_12_TET, OD_7_TET, OD_5_TET,
86 // Rational Intonation: http://en.wikipedia.org/wiki/Just_intonation
87 DIATONIC_SCALE, INDIAN_SCALE, PYTHAGOREAN_TUNING, PENTATONIC_5_LIMIT, PENTATONIC_BLUES, PENTATONIC_GOGO,
88 // Meantone Temperament: http://en.wikipedia.org/wiki/Meantone_temperament
89 QUARTER_COMMA_MEANTONE, SILBERMANN_SORGE,
90 // Well Temperament: http://en.wikipedia.org/wiki/Well_temperament
91 WERCKMEISTER_3, WERCKMEISTER_4, WERCKMEISTER_5, WERCKMEISTER_6, KIRNBERGER_3, YOUNG,
92};
93ASE_DEFINE_ENUM_EQUALITY (MusicalTuning);
94
108
110ChoiceS& operator+= (ChoiceS &choices, Choice &&newchoice);
111
119
121class Emittable : public virtual SharedBase {
122public:
124 bool connected () const;
125 void disconnect () const;
126 };
127 virtual void emit_event (const String &type, const String &detail, const ValueR fields = {}) = 0;
128 ASE_USE_RESULT
129 virtual Connection on_event (const String &eventselector, const EventHandler &eventhandler) = 0;
130 virtual void emit_notify (const String &detail) = 0;
131 void js_trigger (const String &eventselector, JsTrigger callback);
132};
133
135class Property : public virtual Emittable {
136protected:
137 explicit Property ();
138 virtual ~Property () = 0;
139public:
140 virtual String get_name () const;
141 virtual void set_name (const String &n);
142 virtual StringS get_metadata () const = 0;
143 virtual void set_metadata (const StringS &md);
144 virtual String ident () const = 0;
145 virtual String label () const = 0;
146 virtual String nick () const = 0;
147 virtual String unit () const = 0;
148 virtual double get_min () const = 0;
149 virtual double get_max () const = 0;
150 virtual double get_step () const = 0;
151 virtual void reset () = 0;
152 virtual Value get_value () const = 0;
153 virtual bool set_value (const Value &v) = 0;
154 virtual double get_normalized () const = 0;
155 virtual bool set_normalized (double v) = 0;
156 virtual String get_text () const = 0;
157 virtual bool set_text (String v) = 0;
158 virtual bool is_numeric () const = 0;
159 virtual ChoiceS choices () const = 0;
160 String hints () const;
161 String blurb () const;
162 String descr () const;
163 String group () const;
164 Member<&Property::get_name,&Property::set_name> name [[no_unique_address]];
165 Member<&Property::get_value,&Property::set_value> value [[no_unique_address]];
166 Member<&Property::get_metadata,&Property::set_metadata> metadata [[no_unique_address]];
167};
168
170class Object : public virtual Emittable {
171protected:
172 virtual ~Object () = 0;
173public:
174};
175
177class Gadget : public virtual Object {
178protected:
179 explicit Gadget ();
180public:
181 // Hierarchical parenting.
182 virtual GadgetImpl* _parent () const = 0;
183 virtual void _set_parent (GadgetImpl *parent) = 0;
184 ProjectImpl* _project () const;
185 // Naming
186 virtual String get_name () const = 0;
187 virtual void set_name (const std::string &n) = 0;
188 virtual String type_nick () const = 0;
189 // Properties
190 virtual StringS list_properties ();
191 virtual PropertyP access_property (String ident);
192 virtual PropertyS access_properties () = 0;
193 Value get_value (String ident);
194 bool set_value (String ident, const Value &v);
196 virtual bool set_data (const String &key, const Value &v) = 0;
198 virtual Value get_data (const String &key) const = 0;
199 Member<&Gadget::get_name,&Gadget::set_name> name [[no_unique_address]];
200};
201
212
214class Device : public virtual Gadget {
215protected:
216 explicit Device ();
217public:
218 // internal
219 Track* _track () const;
220 virtual AudioProcessorP _audio_processor () const = 0;
221 virtual void _set_event_source (AudioProcessorP esource) = 0;
222 virtual void _activate () = 0;
223 virtual void _deactivate () = 0;
224 virtual void _disconnect_remove () = 0;
225 // exported
226 virtual bool is_active () = 0;
227 virtual DeviceInfo device_info () = 0;
228 virtual DeviceS get_devices () const = 0;
229 virtual void set_devices (const DeviceS &devices) = 0;
230 void remove_self ();
231 // GUI handling
232 virtual void gui_toggle () = 0;
233 virtual bool gui_supported () = 0;
234 virtual bool gui_visible () = 0;
235 Member<&Device::get_devices,&Device::set_devices> devices [[no_unique_address]];
236};
237
239class NativeDevice : public virtual Device {
240public:
241 // subdevice handling
242 virtual bool is_combo_device () = 0;
243 DeviceInfoS list_device_types ();
244 virtual void remove_device (Device &sub) = 0;
245 virtual DeviceP append_device (const String &uri) = 0;
246 virtual DeviceP insert_device (const String &uri,
247 Device &beforesibling) = 0;
248};
249
251struct ClipNote {
252 int32 id = 0;
254 int8 key = 0;
255 bool selected = 0;
258 float velocity = 0;
259 float fine_tune = 0;
260 bool operator== (const ClipNote&) const;
261};
262
264class Clip : public virtual Gadget {
265protected:
266 explicit Clip ();
267public:
268 virtual ClipNoteS get_all_notes () const = 0;
269 virtual void set_all_notes (const ClipNoteS &notes) = 0;
270 virtual int64 get_end_tick () const = 0;
271 virtual void set_end_tick (int64 etick) = 0;
272 virtual int64 start_tick () const = 0;
273 virtual int64 stop_tick () const = 0;
274 virtual void assign_range (int64 starttick, int64 stoptick) = 0;
276 virtual int32 change_batch (const ClipNoteS &notes, const String &undogroup = "") = 0;
277 virtual ClipNoteS list_all_notes () = 0;
282};
283
285class Track : public virtual Device {
286public:
287 virtual int32 midi_channel () const = 0;
288 virtual void midi_channel (int32 midichannel) = 0;
289 virtual bool is_master () const = 0;
290 virtual ClipS launcher_clips () = 0;
291 virtual DeviceP access_device () = 0;
292 virtual MonitorP create_monitor (int32 ochannel) = 0;
293 virtual TelemetryFieldS telemetry () const = 0;
294};
295
303
305class Monitor : public virtual Gadget {
306public:
307 virtual DeviceP get_output () = 0;
308 virtual int32 get_ochannel () = 0;
309 virtual int64 get_mix_freq () = 0;
310 virtual int64 get_frame_duration () = 0;
311 //int64 get_shm_offset (MonitorField fld); ///< Offset into shared memory for MonitorField values of `ochannel`.
312 //void set_probe_features (ProbeFeatures pf); ///< Configure probe features.
313 //ProbeFeatures get_probe_features (); ///< Get configured probe features.
314};
315
317class Project : public virtual Device {
318protected:
319 explicit Project ();
320public:
321 virtual void set_bpm (double bpm) = 0;
322 virtual double get_bpm () const = 0;
323 virtual void set_numerator (double num) = 0;
324 virtual double get_numerator () const = 0;
325 virtual void set_denominator(double den) = 0;
326 virtual double get_denominator() const = 0;
327 virtual void discard () = 0;
328 virtual void start_playback () = 0;
329 virtual void stop_playback () = 0;
330 virtual bool is_playing () = 0;
331 virtual TrackP create_track () = 0;
332 virtual bool remove_track (Track&) = 0;
333 virtual TrackS all_tracks () = 0;
334 virtual TrackP master_track () = 0;
335 virtual Error save_project (const String &utf8filename, bool collect) = 0;
336 virtual String saved_filename () = 0;
337 virtual Error load_project (const String &utf8filename) = 0;
338 virtual TelemetryFieldS telemetry () const = 0;
339 virtual void group_undo (const String &undoname) = 0;
340 virtual void ungroup_undo () = 0;
341 virtual void undo () = 0;
342 virtual bool can_undo () = 0;
343 virtual void redo () = 0;
344 virtual bool can_redo () = 0;
345 virtual String match_serialized (const String &regex,
346 int group = 0) = 0;
347 Member<&Project::get_bpm,&Project::set_bpm> bpm [[no_unique_address]];
348 Member<&Project::get_numerator,&Project::set_numerator> numerator [[no_unique_address]];
349 Member<&Project::get_denominator,&Project::set_denominator> denominator [[no_unique_address]];
350 static ProjectP last_project ();
351};
352
353enum class ResourceType {
354 FOLDER = 1,
355 FILE,
356};
357
359struct Resource {
360 ResourceType type = {};
365};
366
368class ResourceCrawler : public virtual Object {
369protected:
370 explicit ResourceCrawler ();
371public:
372 virtual Resource get_folder () const = 0;
373 virtual void set_folder (const Resource &newfolder) = 0;
374 virtual ResourceS get_entries () const = 0;
375 virtual void set_entries (const ResourceS &newentries) = 0;
377 virtual String2 assign (const String &utf8path,
378 bool existingfile = false) = 0;
380 virtual Resource canonify (const String &utf8cwd, const String &utf8fragment, bool constraindir, bool constrainfile) = 0;
383};
384
386struct UserNote {
387 enum Flags { APPEND, CLEAR, TRANSIENT };
388 uint noteid = 0;
389 Flags flags = APPEND;
390 String channel, text, rest;
391};
392
398
400class Server : public virtual Gadget {
401public:
402 // singleton
404 static Server& instance ();
405 static ServerP instancep ();
406 virtual void shutdown () = 0;
407 virtual String get_version () = 0;
408 virtual String get_build_id () = 0;
409 virtual String get_opus_version () = 0;
410 virtual String get_flac_version () = 0;
411 virtual String get_clap_version () = 0;
413 virtual String error_blurb (Error error) const = 0;
414 virtual String musical_tuning_label (MusicalTuning musicaltuning) const = 0;
415 virtual String musical_tuning_blurb (MusicalTuning musicaltuning) const = 0;
416 virtual uint64 user_note (const String &text, const String &channel = "misc", UserNote::Flags flags = UserNote::TRANSIENT, const String &rest = "") = 0;
417 virtual bool user_reply (uint64 noteid, uint r) = 0;
418 virtual bool broadcast_telemetry (const TelemetrySegmentS &segments,
419 int32 interval_ms) = 0;
420 virtual StringS list_preferences () = 0;
421 virtual PropertyP access_preference (const String &ident) = 0;
423 void exit_program (int status = 0);
424 // projects
425 virtual ProjectP last_project () = 0;
426 virtual ProjectP create_project (String projectname) = 0;
427 // Browsing
429 ResourceCrawlerP dir_crawler (const String &cwd);
431 ResourceCrawlerP url_crawler (const String &url);
432};
433#define ASE_SERVER (::Ase::Server::instance())
434
435} // Ase
436
437#endif // __ASE_API_HH__
#define EPERM
Container for MIDI note and control events.
Definition api.hh:264
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 void assign_range(int64 starttick, int64 stoptick)=0
virtual int64 start_tick() const =0
Get the first tick intended for playback (this is >= 0), changes on notify:start_tick.
Member<&Clip::get_all_notes,&Clip::set_all_notes > all_notes
Access all notes of this clip, changes on notify:all_notes.
Definition api.hh:279
virtual int64 stop_tick() const =0
Get the tick to stop playback, not events should be played after this, changes on notify:stop_tick.
Member<&Clip::get_end_tick,&Clip::set_end_tick > end_tick
The end tick is past any event ticks, changes on notify:end_tick.
Definition api.hh:281
virtual ClipNoteS list_all_notes()=0
Interface to access Device instances.
Definition api.hh:214
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.
void remove_self()
Remove device from its container.
Definition device.cc:78
Track * _track() const
Find Track in parent ancestry.
Definition device.cc:87
virtual void _deactivate()=0
Stop processing the corresponding AudioProcessor.
virtual bool gui_supported()=0
Has GUI display facilities.
virtual AudioProcessorP _audio_processor() const =0
Retrieve the corresponding AudioProcessor.
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:121
Base type for classes that have a Property.
Definition gadget.hh:12
Base type for classes that have a Property.
Definition api.hh:177
virtual StringS list_properties()
List all property identifiers.
Definition gadget.cc:177
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:188
virtual PropertyS access_properties()=0
Retrieve handles for all properties.
ProjectImpl * _project() const
Find Project in parent ancestry.
Definition gadget.cc:168
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:197
bool set_value(String ident, const Value &v)
Definition gadget.cc:204
Callback mechanism for Jsonapi/Jsonipc.
Definition value.hh:123
Implement C++ member field API with a 0-sized class from setter and getter, maybe combined with [[no_...
Definition member.hh:86
Interface for monitoring output signals.
Definition api.hh:305
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.
Interface to access NativeDevice instances.
Definition api.hh:239
virtual bool is_combo_device()=0
Retrieve wether this NativeDevice handles sub devices.
DeviceInfoS list_device_types()
List registered Device types with their unique uri.
virtual DeviceP insert_device(const String &uri, Device &beforesibling)=0
Insert a new device, before beforesibling.
virtual void remove_device(Device &sub)=0
Remove a directly contained device.
virtual DeviceP append_device(const String &uri)=0
Append a new device, see list_device_types().
Base type for classes with Property interfaces.
Definition api.hh:170
Projects support loading, saving, playback and act as containers for all other sound objects.
Definition api.hh:317
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 bool is_playing()=0
Check whether a project is currently playing (song sequencing).
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 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 bool remove_track(Track &)=0
Remove a track owned by this Project.
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:135
virtual bool set_value(const Value &v)=0
Set the native property value.
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.
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 get_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:368
virtual String2 assign(const String &utf8path, bool existingfile=false)=0
Member<&ResourceCrawler::get_entries,&ResourceCrawler::set_entries > entries
The entries in the current folder, UTF-8 encoded.
Definition api.hh:382
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.
virtual ResourceS get_entries() const =0
List entries of a folder.
Member<&ResourceCrawler::get_folder,&ResourceCrawler::set_folder > folder
The folder currently being browsed, UTF-8 encoded.
Definition api.hh:381
virtual Resource get_folder() const =0
Describe current folder.
Central singleton, serves as API entry point.
Definition api.hh:400
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:155
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:161
virtual String get_opus_version()=0
Retrieve Opus handler version.
virtual String get_build_id()=0
Retrieve ASE build id.
virtual String get_flac_version()=0
Retrieve FLAC handler version.
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:174
ResourceCrawlerP dir_crawler(const String &cwd)
Create crawler to navigate directories.
Definition server.cc:168
virtual StringS list_preferences()=0
Retrieve a list of all preference identifiers.
virtual String get_clap_version()=0
Retrieve CLAP support version.
String engine_stats()
Print engine state.
Definition server.cc:185
void exit_program(int status=0)
End program (without saving).
Definition server.cc:193
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:19
Container for Clip objects and sequencing information.
Definition api.hh:285
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 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 TelemetryFieldS telemetry() const =0
Create signal monitor for an output channel.
The Anklang C++ API namespace.
Definition api.hh:9
ResourceType type
Resource classification.
Definition api.hh:360
String creator_name
Name of the creator.
Definition api.hh:209
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:300
int32_t int32
A 32-bit signed integer.
Definition cxxaux.hh:28
bool probe_range
Provide sample range probes.
Definition api.hh:298
String type
Types like "i32", "f32", "f64".
Definition api.hh:115
String name
Preferred user interface name.
Definition api.hh:205
String name
Names like "bpm", etc.
Definition api.hh:114
String creator_url
Internet contact of the creator.
Definition api.hh:210
uint8_t uint8
An 8-bit unsigned integer.
Definition cxxaux.hh:22
String uri
Unique identifier for de-/serialization.
Definition api.hh:204
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:22
int64 size
Resource size.
Definition api.hh:363
int32 offset
Position in bytes.
Definition api.hh:395
constexpr const char GUIONLY[]
GUI READABLE WRITABLE.
Definition api.hh:12
const char * ase_error_blurb(Error error)
Describe Error condition.
Definition server.cc:227
String description
Elaborate description for help dialogs.
Definition api.hh:207
int32 length
Length in bytes.
Definition api.hh:396
constexpr const char STORAGE[]
STORAGE READABLE WRITABLE.
Definition api.hh:13
int32 length
Length in bytes.
Definition api.hh:117
String uri
Unique resource identifier.
Definition api.hh:362
ChoiceS & operator+=(ChoiceS &choices, Choice &&newchoice)
Convenience ChoiceS construction helper.
Definition server.cc:218
bool probe_energy
Provide sample energy measurement.
Definition api.hh:299
int32 offset
Position in bytes.
Definition api.hh:116
bool probe_fft
Provide FFT analysis probe.
Definition api.hh:301
constexpr const char STANDARD[]
STORAGE GUI READABLE WRITABLE.
Definition api.hh:14
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:206
String website_url
Website of/about this Processor.
Definition api.hh:208
int64 mtime
Modification time in milliseconds.
Definition api.hh:364
MusicalTuning
Musical tunings, see: http://en.wikipedia.org/wiki/Musical_tuning.
Definition api.hh:83
String label
UI display name.
Definition api.hh:361
Info for device types.
Definition api.hh:203
Bits representing a selection of probe sample data features.
Definition api.hh:297
Description of a resource, possibly nested.
Definition api.hh:359
Telemetry segment location.
Definition api.hh:113
Telemetry segment location.
Definition api.hh:394
typedef int32_t
Representation of one possible choice for selection properties.
Definition api.hh:96
String warning
Potential problem indicator.
Definition api.hh:102
String ident
Identifier used for serialization (may be derived from untranslated label).
Definition api.hh:97
String icon
Icon (64x64 pixels) or unicode symbol (possibly wide).
Definition api.hh:98
String notice
Additional information of interest.
Definition api.hh:101
String blurb
Short description for overviews.
Definition api.hh:100
String label
Preferred user interface name.
Definition api.hh:99
Part specific note event representation.
Definition api.hh:251
int64 tick
UI selection flag.
Definition api.hh:256
bool selected
Musical note as MIDI key, 0 .. 127.
Definition api.hh:255
float velocity
Duration in number of ticks.
Definition api.hh:258
bool operator==(const ClipNote &) const
Fine Tune, -100 .. +100.
Definition clip.cc:26
int64 duration
Position in ticks.
Definition api.hh:257
int8 channel
ID, > 0.
Definition api.hh:253
int8 key
MIDI Channel.
Definition api.hh:254
float fine_tune
Velocity, 0 .. +1.
Definition api.hh:259
Contents of user interface notifications.
Definition api.hh:386
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:214