1 /* -*- Mode: C ; c-basic-offset: 2 -*- */
2 /*****************************************************************************
4 * Copyright (C) 2006,2007,2008,2009 Nedko Arnaudov <nedko@arnaudov.name>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *****************************************************************************/
27 #include "lfo_parameters.h"
28 #include "filter_parameters.h"
29 #include "envelope_parameters.h"
30 #include "resonance.h"
32 #include "oscillator.h"
33 #include "portamento.h"
34 #include "addsynth_internal.h"
37 #define zyn_addsynth_ptr ((struct zyn_addsynth *)context)
40 zyn_component_filter_globals_get_float(
42 unsigned int parameter
)
46 case ZYNADD_PARAMETER_FLOAT_VELOCITY_SENSING_AMOUNT
:
47 return zyn_addsynth_ptr
->m_filter_velocity_sensing_amount
;
48 case ZYNADD_PARAMETER_FLOAT_VELOCITY_SENSING_FUNCTION
:
49 return zyn_addsynth_ptr
->m_filter_velocity_scale_function
;
52 LOG_ERROR("Unknown filter global float parameter %u", parameter
);
58 zyn_component_filter_globals_set_float(
60 unsigned int parameter
,
65 case ZYNADD_PARAMETER_FLOAT_VELOCITY_SENSING_AMOUNT
:
66 zyn_addsynth_ptr
->m_filter_velocity_sensing_amount
= value
;
68 case ZYNADD_PARAMETER_FLOAT_VELOCITY_SENSING_FUNCTION
:
69 zyn_addsynth_ptr
->m_filter_velocity_scale_function
= -value
;
73 LOG_ERROR("Unknown filter global float parameter %u", parameter
);
78 zyn_component_filter_globals_get_int(
80 unsigned int parameter
)
84 case ZYNADD_PARAMETER_ENUM_FILTER_CATEGORY
:
85 return zyn_addsynth_ptr
->filter_type
;
88 LOG_ERROR("Unknown filter global int/enum parameter %u", parameter
);
95 zyn_component_filter_globals_set_int(
97 unsigned int parameter
,
102 case ZYNADD_PARAMETER_ENUM_FILTER_CATEGORY
:
103 assert(value
>= 0 && value
< ZYN_FILTER_TYPES_COUNT
);
104 zyn_addsynth_ptr
->filter_type
= value
;
105 zyn_addsynth_ptr
->m_filter_params
.m_category
= ZYN_FILTER_TYPE_ANALOG
; /* XXX */
109 LOG_ERROR("Unknown filter global int/enum parameter %u", parameter
);
114 zyn_component_filter_globals_get_bool(
116 unsigned int parameter
)
118 LOG_ERROR("Unknown filter global bool parameter %u", parameter
);
125 zyn_component_filter_globals_set_bool(
127 unsigned int parameter
,
130 LOG_ERROR("Unknown filter global bool parameter %u", parameter
);
134 #undef zyn_addsynth_ptr
137 zyn_addsynth_component_init_filter_globals(
138 struct zyn_component_descriptor
* component_ptr
,
139 struct zyn_addsynth
* zyn_addsynth_ptr
)
141 ZYN_INIT_COMPONENT(component_ptr
, zyn_addsynth_ptr
, zyn_component_filter_globals_
);