Add a control port to a-comp select which mode to display inline
This commit is contained in:
parent
f647ac7dae
commit
a0a4db47a7
@ -139,36 +139,46 @@ unit:db-display
|
||||
lv2:maximum 1 ;
|
||||
lv2:portProperty lv2:integer, lv2:toggled ;
|
||||
lv2:designation lv2:enabled;
|
||||
] ,
|
||||
[
|
||||
a lv2:InputPort, lv2:ControlPort ;
|
||||
lv2:index 11 ;
|
||||
lv2:name "Full inline display" ;
|
||||
lv2:symbol "full_inline_display" ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
lv2:maximum 1 ;
|
||||
lv2:portProperty lv2:integer, lv2:toggled ;
|
||||
];
|
||||
|
||||
lv2:port [
|
||||
a lv2:InputPort, lv2:AudioPort ;
|
||||
lv2:index 11 ;
|
||||
lv2:index 12 ;
|
||||
lv2:symbol "in_1" ;
|
||||
lv2:name "Audio Input 1" ;
|
||||
] ,
|
||||
[
|
||||
a lv2:InputPort, lv2:AudioPort ;
|
||||
lv2:index 12 ;
|
||||
lv2:index 13 ;
|
||||
lv2:symbol "in_2" ;
|
||||
lv2:name "Audio Input 2" ;
|
||||
] ,
|
||||
[
|
||||
a lv2:InputPort, lv2:AudioPort ;
|
||||
lv2:index 13 ;
|
||||
lv2:index 14 ;
|
||||
lv2:symbol "sidechain_in" ;
|
||||
lv2:name "Sidechain Input" ;
|
||||
lv2:portProperty lv2:isSideChain ;
|
||||
] ,
|
||||
[
|
||||
a lv2:OutputPort, lv2:AudioPort ;
|
||||
lv2:index 14 ;
|
||||
lv2:index 15 ;
|
||||
lv2:symbol "out_1" ;
|
||||
lv2:name "Audio Output 1" ;
|
||||
],
|
||||
[
|
||||
a lv2:OutputPort, lv2:AudioPort ;
|
||||
lv2:index 15 ;
|
||||
lv2:index 16 ;
|
||||
lv2:symbol "out_2" ;
|
||||
lv2:name "Audio Output 2" ;
|
||||
] ;
|
||||
|
@ -51,8 +51,10 @@ typedef enum {
|
||||
ACOMP_GAINR,
|
||||
ACOMP_INLEVEL,
|
||||
ACOMP_OUTLEVEL,
|
||||
|
||||
ACOMP_SIDECHAIN,
|
||||
ACOMP_ENABLE,
|
||||
ACOMP_FULL_INLINEDISP,
|
||||
|
||||
ACOMP_A0,
|
||||
ACOMP_A1,
|
||||
@ -72,8 +74,10 @@ typedef struct {
|
||||
float* gainr;
|
||||
float* outlevel;
|
||||
float* inlevel;
|
||||
|
||||
float* sidechain;
|
||||
float* enable;
|
||||
float* full_inline_display;
|
||||
|
||||
float* input0;
|
||||
float* input1;
|
||||
@ -105,6 +109,8 @@ typedef struct {
|
||||
float v_lvl_out;
|
||||
float v_state_x;
|
||||
|
||||
bool v_full_inline_display;
|
||||
|
||||
float v_peakdb;
|
||||
uint32_t peakdb_samples;
|
||||
#endif
|
||||
@ -177,6 +183,9 @@ connect_port(LV2_Handle instance,
|
||||
case ACOMP_ENABLE:
|
||||
acomp->enable = (float*)data;
|
||||
break;
|
||||
case ACOMP_FULL_INLINEDISP:
|
||||
acomp->full_inline_display = (float*)data;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -330,6 +339,12 @@ run_mono(LV2_Handle instance, uint32_t n_samples)
|
||||
acomp->v_makeup = makeup;
|
||||
acomp->need_expose = true;
|
||||
}
|
||||
|
||||
bool full_inline = *acomp->full_inline_display > 0.5;
|
||||
if (full_inline != acomp->v_full_inline_display) {
|
||||
acomp->v_full_inline_display = full_inline;
|
||||
acomp->need_expose = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
float in_peak_db = -160.f;
|
||||
@ -503,6 +518,12 @@ run_stereo(LV2_Handle instance, uint32_t n_samples)
|
||||
acomp->v_makeup = makeup;
|
||||
acomp->need_expose = true;
|
||||
}
|
||||
|
||||
bool full_inline = *acomp->full_inline_display > 0.5;
|
||||
if (full_inline != acomp->v_full_inline_display) {
|
||||
acomp->v_full_inline_display = full_inline;
|
||||
acomp->need_expose = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
float in_peak_db = -160.f;
|
||||
@ -908,8 +929,8 @@ render_inline (LV2_Handle instance, uint32_t w, uint32_t max_h)
|
||||
AComp* self = (AComp*)instance;
|
||||
|
||||
uint32_t h = MIN (w, max_h);
|
||||
if (w < 200) {
|
||||
h = 40;
|
||||
if (w < 200 && !self->v_full_inline_display) {
|
||||
h = MIN (40, max_h);
|
||||
}
|
||||
|
||||
if (!self->display || self->w != w || self->h != h) {
|
||||
@ -921,7 +942,7 @@ render_inline (LV2_Handle instance, uint32_t w, uint32_t max_h)
|
||||
|
||||
cairo_t* cr = cairo_create (self->display);
|
||||
|
||||
if (w >= 200) {
|
||||
if (w >= 200 || self->v_full_inline_display) {
|
||||
render_inline_full (cr, self);
|
||||
} else {
|
||||
render_inline_only_bars (cr, self);
|
||||
|
@ -139,24 +139,34 @@ unit:db-display
|
||||
lv2:maximum 1 ;
|
||||
lv2:portProperty lv2:integer, lv2:toggled ;
|
||||
lv2:designation lv2:enabled;
|
||||
] ,
|
||||
[
|
||||
a lv2:InputPort, lv2:ControlPort ;
|
||||
lv2:index 11 ;
|
||||
lv2:name "Full inline display" ;
|
||||
lv2:symbol "full_inline_display" ;
|
||||
lv2:default 0 ;
|
||||
lv2:minimum 0 ;
|
||||
lv2:maximum 1 ;
|
||||
lv2:portProperty lv2:integer, lv2:toggled ;
|
||||
];
|
||||
|
||||
lv2:port [
|
||||
a lv2:InputPort, lv2:AudioPort ;
|
||||
lv2:index 11 ;
|
||||
lv2:index 12 ;
|
||||
lv2:symbol "lv2_audio_in_1" ;
|
||||
lv2:name "Audio Input 1" ;
|
||||
] ,
|
||||
[
|
||||
a lv2:InputPort, lv2:AudioPort ;
|
||||
lv2:index 12 ;
|
||||
lv2:index 13 ;
|
||||
lv2:symbol "lv2_sidechain_in" ;
|
||||
lv2:name "Sidechain Input" ;
|
||||
lv2:portProperty lv2:isSideChain ;
|
||||
],
|
||||
[
|
||||
a lv2:OutputPort, lv2:AudioPort ;
|
||||
lv2:index 13 ;
|
||||
lv2:index 14 ;
|
||||
lv2:symbol "lv2_audio_out_1" ;
|
||||
lv2:name "Audio Output 1" ;
|
||||
] ;
|
||||
|
Loading…
Reference in New Issue
Block a user