Mercurial > hg > pub > prymula > com
comparison DPF-Prymula-audioplugins/dpf/distrho/src/clap/process.h @ 3:84e66ea83026
DPF-Prymula-audioplugins-0.231015-2
author | prymula <prymula76@outlook.com> |
---|---|
date | Mon, 16 Oct 2023 21:53:34 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
2:cf2cb71d31dd | 3:84e66ea83026 |
---|---|
1 #pragma once | |
2 | |
3 #include "events.h" | |
4 #include "audio-buffer.h" | |
5 | |
6 #ifdef __cplusplus | |
7 extern "C" { | |
8 #endif | |
9 | |
10 enum { | |
11 // Processing failed. The output buffer must be discarded. | |
12 CLAP_PROCESS_ERROR = 0, | |
13 | |
14 // Processing succeeded, keep processing. | |
15 CLAP_PROCESS_CONTINUE = 1, | |
16 | |
17 // Processing succeeded, keep processing if the output is not quiet. | |
18 CLAP_PROCESS_CONTINUE_IF_NOT_QUIET = 2, | |
19 | |
20 // Rely upon the plugin's tail to determine if the plugin should continue to process. | |
21 // see clap_plugin_tail | |
22 CLAP_PROCESS_TAIL = 3, | |
23 | |
24 // Processing succeeded, but no more processing is required, | |
25 // until the next event or variation in audio input. | |
26 CLAP_PROCESS_SLEEP = 4, | |
27 }; | |
28 typedef int32_t clap_process_status; | |
29 | |
30 typedef struct clap_process { | |
31 // A steady sample time counter. | |
32 // This field can be used to calculate the sleep duration between two process calls. | |
33 // This value may be specific to this plugin instance and have no relation to what | |
34 // other plugin instances may receive. | |
35 // | |
36 // Set to -1 if not available, otherwise the value must be greater or equal to 0, | |
37 // and must be increased by at least `frames_count` for the next call to process. | |
38 int64_t steady_time; | |
39 | |
40 // Number of frames to process | |
41 uint32_t frames_count; | |
42 | |
43 // time info at sample 0 | |
44 // If null, then this is a free running host, no transport events will be provided | |
45 const clap_event_transport_t *transport; | |
46 | |
47 // Audio buffers, they must have the same count as specified | |
48 // by clap_plugin_audio_ports->count(). | |
49 // The index maps to clap_plugin_audio_ports->get(). | |
50 // Input buffer and its contents are read-only. | |
51 const clap_audio_buffer_t *audio_inputs; | |
52 clap_audio_buffer_t *audio_outputs; | |
53 uint32_t audio_inputs_count; | |
54 uint32_t audio_outputs_count; | |
55 | |
56 // Input and output events. | |
57 // | |
58 // Events must be sorted by time. | |
59 // The input event list can't be modified. | |
60 const clap_input_events_t *in_events; | |
61 const clap_output_events_t *out_events; | |
62 } clap_process_t; | |
63 | |
64 #ifdef __cplusplus | |
65 } | |
66 #endif |