Added an lv2 port for freewheeling
Corrected
This commit is contained in:
parent
eb0b84a7a6
commit
6a40d0e778
2 changed files with 19 additions and 1 deletions
10
lv2/sfizz.c
10
lv2/sfizz.c
|
|
@ -82,6 +82,7 @@ typedef struct
|
||||||
const float *polyphony_port;
|
const float *polyphony_port;
|
||||||
const float *oversampling_port;
|
const float *oversampling_port;
|
||||||
const float *preload_port;
|
const float *preload_port;
|
||||||
|
const float *freewheel_port;
|
||||||
|
|
||||||
// Atom forge
|
// Atom forge
|
||||||
LV2_Atom_Forge forge; ///< Forge for writing atoms in run thread
|
LV2_Atom_Forge forge; ///< Forge for writing atoms in run thread
|
||||||
|
|
@ -135,7 +136,8 @@ enum
|
||||||
SFIZZ_VOLUME = 4,
|
SFIZZ_VOLUME = 4,
|
||||||
SFIZZ_POLYPHONY = 5,
|
SFIZZ_POLYPHONY = 5,
|
||||||
SFIZZ_OVERSAMPLING = 6,
|
SFIZZ_OVERSAMPLING = 6,
|
||||||
SFIZZ_PRELOAD = 7
|
SFIZZ_PRELOAD = 7,
|
||||||
|
SFIZZ_FREEWHEELING = 8
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
@ -196,6 +198,9 @@ connect_port(LV2_Handle instance,
|
||||||
case SFIZZ_PRELOAD:
|
case SFIZZ_PRELOAD:
|
||||||
self->preload_port = (const float *)data;
|
self->preload_port = (const float *)data;
|
||||||
break;
|
break;
|
||||||
|
case SFIZZ_FREEWHEELING:
|
||||||
|
self->freewheel_port = (const float *)data;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -483,6 +488,9 @@ run(LV2_Handle instance, uint32_t sample_count)
|
||||||
if (!self->control_port || !self->notify_port)
|
if (!self->control_port || !self->notify_port)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (*(self->freewheel_port) > 0)
|
||||||
|
lv2_log_note(&self->logger, "[run] Freewheeling set!");
|
||||||
|
|
||||||
// Set up forge to write directly to notify output port.
|
// Set up forge to write directly to notify output port.
|
||||||
const size_t notify_capacity = self->notify_port->atom.size;
|
const size_t notify_capacity = self->notify_port->atom.size;
|
||||||
lv2_atom_forge_set_buffer(&self->forge, (uint8_t *)self->notify_port, notify_capacity);
|
lv2_atom_forge_set_buffer(&self->forge, (uint8_t *)self->notify_port, notify_capacity);
|
||||||
|
|
|
||||||
|
|
@ -152,4 +152,14 @@
|
||||||
lv2:scalePoint [ rdfs:label "64 Ko"; rdf:value 16384 ] ;
|
lv2:scalePoint [ rdfs:label "64 Ko"; rdf:value 16384 ] ;
|
||||||
lv2:scalePoint [ rdfs:label "128 Ko"; rdf:value 32768 ] ;
|
lv2:scalePoint [ rdfs:label "128 Ko"; rdf:value 32768 ] ;
|
||||||
lv2:scalePoint [ rdfs:label "256 Ko"; rdf:value 65536 ] ;
|
lv2:scalePoint [ rdfs:label "256 Ko"; rdf:value 65536 ] ;
|
||||||
|
], [
|
||||||
|
a lv2:InputPort, lv2:ControlPort ;
|
||||||
|
lv2:index 8 ;
|
||||||
|
lv2:symbol "freewheeling" ;
|
||||||
|
lv2:name "Freewheeling" ;
|
||||||
|
lv2:designation lv2:freeWheeling ;
|
||||||
|
lv2:portProperty lv2:toggled ;
|
||||||
|
lv2:default 0 ;
|
||||||
|
lv2:minimum 0 ;
|
||||||
|
lv2:maximum 1 ;
|
||||||
].
|
].
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue