From 665f68a863b4ac2e21b0a994dce7e2720c03aa9d Mon Sep 17 00:00:00 2001
|
From: Fabio Berton <fabio.berton@ossystems.com.br>
|
Date: Wed, 5 Oct 2016 11:02:18 -0300
|
Subject: [PATCH 3/3] Fix mixer
|
Organization: O.S. Systems Software LTDA.
|
|
Patch from:
|
https://git.backbone.ws/portage/overlay/commit/7a069112054fbb5dc94a857e9c020a38cb1c6fde
|
|
Upstream-Status: Pending
|
|
Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
|
---
|
ctl_equal.c | 9 ++++++---
|
ladspa_utils.c | 6 ++++--
|
pcm_equal.c | 6 ++++--
|
3 files changed, 14 insertions(+), 7 deletions(-)
|
|
diff --git a/ctl_equal.c b/ctl_equal.c
|
index afba793..dd90e88 100644
|
--- a/ctl_equal.c
|
+++ b/ctl_equal.c
|
@@ -263,7 +263,8 @@ SND_CTL_PLUGIN_DEFINE_FUNC(equal)
|
for(i = 0; i < equal->num_input_controls; i++) {
|
if(equal->control_data->control[i].type == LADSPA_CNTRL_INPUT) {
|
index = equal->control_data->control[i].index;
|
- if(equal->klass->PortDescriptors[index] !=
|
+ if((equal->klass->PortDescriptors[index] &
|
+ (LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL)) !=
|
(LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL)) {
|
SNDERR("Problem with control file %s, %d.", controls, index);
|
return -1;
|
@@ -284,12 +285,14 @@ SND_CTL_PLUGIN_DEFINE_FUNC(equal)
|
}
|
|
/* Make sure that the control file makes sense */
|
- if(equal->klass->PortDescriptors[equal->control_data->input_index] !=
|
+ if((equal->klass->PortDescriptors[equal->control_data->input_index] &
|
+ (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO))!=
|
(LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) {
|
SNDERR("Problem with control file %s.", controls);
|
return -1;
|
}
|
- if(equal->klass->PortDescriptors[equal->control_data->output_index] !=
|
+ if((equal->klass->PortDescriptors[equal->control_data->output_index] &
|
+ (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO))!=
|
(LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) {
|
SNDERR("Problem with control file %s.", controls);
|
return -1;
|
diff --git a/ladspa_utils.c b/ladspa_utils.c
|
index 7b596da..0c00800 100644
|
--- a/ladspa_utils.c
|
+++ b/ladspa_utils.c
|
@@ -354,10 +354,12 @@ LADSPA_Control * LADSPAcontrolMMAP(const LADSPA_Descriptor *psDescriptor,
|
default_controls->control[index].type = LADSPA_CNTRL_OUTPUT;
|
}
|
index++;
|
- } else if(psDescriptor->PortDescriptors[i] ==
|
+ } else if((psDescriptor->PortDescriptors[i] &
|
+ (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) ==
|
(LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) {
|
default_controls->input_index = i;
|
- } else if(psDescriptor->PortDescriptors[i] ==
|
+ } else if((psDescriptor->PortDescriptors[i] &
|
+ (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) ==
|
(LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) {
|
default_controls->output_index = i;
|
}
|
diff --git a/pcm_equal.c b/pcm_equal.c
|
index b0b4265..8d98371 100644
|
--- a/pcm_equal.c
|
+++ b/pcm_equal.c
|
@@ -231,12 +231,14 @@ SND_PCM_PLUGIN_DEFINE_FUNC(equal)
|
}
|
|
/* Make sure that the control file makes sense */
|
- if(equal->klass->PortDescriptors[equal->control_data->input_index] !=
|
+ if((equal->klass->PortDescriptors[equal->control_data->input_index] &
|
+ (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) !=
|
(LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) {
|
SNDERR("Problem with control file %s.", controls);
|
return -1;
|
}
|
- if(equal->klass->PortDescriptors[equal->control_data->output_index] !=
|
+ if((equal->klass->PortDescriptors[equal->control_data->output_index] &
|
+ (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) !=
|
(LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) {
|
SNDERR("Problem with control file %s.", controls);
|
return -1;
|
--
|
2.1.4
|