1 /* -*- Mode: C ; c-basic-offset: 2 -*- */
2 /*****************************************************************************
4 * This file is part of jack_mixer
6 * Copyright (C) 2006 Nedko Arnaudov <nedko@arnaudov.name>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; version 2 of the License
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
21 *****************************************************************************/
23 #ifndef JACK_MIXER_H__DAEB51D8_5861_40F2_92E4_24CA495A384D__INCLUDED
24 #define JACK_MIXER_H__DAEB51D8_5861_40F2_92E4_24CA495A384D__INCLUDED
29 %apply double *OUTPUT { double * left_ptr, double * right_ptr, double * mono_ptr };
32 #include "jack_mixer.h"
38 typedef void * jack_mixer_t;
39 typedef void * jack_mixer_channel_t;
40 typedef void * jack_mixer_output_channel_t;
41 typedef void * jack_mixer_threshold_t;
43 enum midi_behavior_mode { Jump_To_Value, Pick_Up };
47 const char * jack_client_name_ptr,
63 get_last_midi_channel(
67 set_last_midi_channel(
73 get_midi_behavior_mode(
77 set_midi_behavior_mode(
79 enum midi_behavior_mode mode);
84 const char * channel_name,
89 jack_mixer_channel_t channel);
91 /* returned values are in dBFS */
93 channel_stereo_meter_read(
94 jack_mixer_channel_t channel,
98 /* returned value is in dBFS */
100 channel_mono_meter_read(
101 jack_mixer_channel_t channel,
106 jack_mixer_channel_t channel);
109 channel_set_midi_change_callback(
110 jack_mixer_channel_t channel,
111 void (*midi_change_callback) (void*),
114 /* volume is in dBFS */
116 channel_volume_write(
117 jack_mixer_channel_t channel,
122 jack_mixer_channel_t channel);
125 channels_volumes_read(jack_mixer_t mixer_ptr);
127 /* balance is from -1.0 (full left) to +1.0 (full right) */
129 channel_balance_write(
130 jack_mixer_channel_t channel,
134 channel_balance_read(
135 jack_mixer_channel_t channel);
138 channel_get_balance_midi_cc(
139 jack_mixer_channel_t channel);
142 channel_set_balance_midi_cc(
143 jack_mixer_channel_t channel,
147 channel_get_volume_midi_cc(
148 jack_mixer_channel_t channel);
151 channel_set_volume_midi_cc(
152 jack_mixer_channel_t channel,
156 channel_get_mute_midi_cc(
157 jack_mixer_channel_t channel);
160 channel_set_mute_midi_cc(
161 jack_mixer_channel_t channel,
165 channel_get_solo_midi_cc(
166 jack_mixer_channel_t channel);
169 channel_set_solo_midi_cc(
170 jack_mixer_channel_t channel,
173 void channel_set_midi_cc_volume_picked_up(jack_mixer_channel_t channel,
176 void channel_set_midi_cc_balance_picked_up(jack_mixer_channel_t channel,
180 channel_autoset_volume_midi_cc(
181 jack_mixer_channel_t channel);
184 channel_autoset_balance_midi_cc(
185 jack_mixer_channel_t channel);
188 channel_autoset_mute_midi_cc(
189 jack_mixer_channel_t channel);
192 channel_autoset_solo_midi_cc(
193 jack_mixer_channel_t channel);
197 jack_mixer_channel_t channel);
203 /* returned value is in dBFS */
205 channel_abspeak_read(
206 jack_mixer_channel_t channel);
209 channel_abspeak_reset(
210 jack_mixer_channel_t channel);
214 jack_mixer_channel_t channel);
218 jack_mixer_channel_t channel);
221 channel_is_out_muted(
222 jack_mixer_channel_t channel);
226 jack_mixer_channel_t channel);
230 jack_mixer_channel_t channel);
234 jack_mixer_channel_t channel);
238 jack_mixer_channel_t channel,
242 channel_set_midi_scale(
243 jack_mixer_channel_t channel,
244 jack_mixer_scale_t scale);
247 channel_get_midi_in_got_events(
248 jack_mixer_channel_t channel);
250 jack_mixer_output_channel_t
253 const char * channel_name,
258 remove_output_channel(
259 jack_mixer_output_channel_t output_channel);
262 output_channel_set_solo(
263 jack_mixer_output_channel_t output_channel,
264 jack_mixer_channel_t channel,
268 output_channel_set_muted(
269 jack_mixer_output_channel_t output_channel,
270 jack_mixer_channel_t channel,
274 output_channel_is_muted(
275 jack_mixer_output_channel_t output_channel,
276 jack_mixer_channel_t channel);
279 output_channel_is_solo(
280 jack_mixer_output_channel_t output_channel,
281 jack_mixer_channel_t channel);
284 output_channel_set_prefader(
285 jack_mixer_output_channel_t output_channel,
289 output_channel_is_prefader(
290 jack_mixer_output_channel_t output_channel);
292 #endif /* #ifndef JACK_MIXER_H__DAEB51D8_5861_40F2_92E4_24CA495A384D__INCLUDED */