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"
36 typedef void * jack_mixer_t;
37 typedef void * jack_mixer_channel_t;
38 typedef void * jack_mixer_output_channel_t;
39 typedef void * jack_mixer_scale_t;
40 typedef void * jack_mixer_threshold_t;
44 const char * jack_client_name_ptr,
60 get_last_midi_channel(
66 const char * channel_name,
71 jack_mixer_channel_t channel);
73 /* returned values are in dBFS */
75 channel_stereo_meter_read(
76 jack_mixer_channel_t channel,
80 /* returned value is in dBFS */
82 channel_mono_meter_read(
83 jack_mixer_channel_t channel,
88 jack_mixer_channel_t channel);
91 channel_set_midi_change_callback(
92 jack_mixer_channel_t channel,
93 void (*midi_change_callback) (void*),
96 /* volume is in dBFS */
99 jack_mixer_channel_t channel,
104 jack_mixer_channel_t channel);
106 /* balance is from -1.0 (full left) to +1.0 (full right) */
108 channel_balance_write(
109 jack_mixer_channel_t channel,
113 channel_balance_read(
114 jack_mixer_channel_t channel);
117 channel_get_balance_midi_cc(
118 jack_mixer_channel_t channel);
121 channel_set_balance_midi_cc(
122 jack_mixer_channel_t channel,
123 unsigned int new_cc);
126 channel_get_volume_midi_cc(
127 jack_mixer_channel_t channel);
130 channel_set_volume_midi_cc(
131 jack_mixer_channel_t channel,
132 unsigned int new_cc);
135 channel_get_mute_midi_cc(
136 jack_mixer_channel_t channel);
139 channel_set_mute_midi_cc(
140 jack_mixer_channel_t channel,
141 unsigned int new_cc);
144 channel_autoset_midi_cc(
145 jack_mixer_channel_t channel);
149 jack_mixer_channel_t channel);
151 /* returned value is in dBFS */
153 channel_abspeak_read(
154 jack_mixer_channel_t channel);
157 channel_abspeak_reset(
158 jack_mixer_channel_t channel);
162 jack_mixer_channel_t channel);
166 jack_mixer_channel_t channel);
169 channel_is_out_muted(
170 jack_mixer_channel_t channel);
174 jack_mixer_channel_t channel,
178 channel_set_midi_scale(
179 jack_mixer_channel_t channel,
180 jack_mixer_scale_t scale);
183 channel_get_midi_in_got_events(
184 jack_mixer_channel_t channel);
191 jack_mixer_scale_t scale,
196 scale_calculate_coefficients(
197 jack_mixer_scale_t scale);
201 jack_mixer_scale_t scale,
206 jack_mixer_scale_t scale,
211 jack_mixer_scale_t scale);
213 jack_mixer_output_channel_t
216 const char * channel_name,
221 remove_output_channel(
222 jack_mixer_output_channel_t output_channel);
225 output_channel_set_solo(
226 jack_mixer_output_channel_t output_channel,
227 jack_mixer_channel_t channel,
231 output_channel_set_muted(
232 jack_mixer_output_channel_t output_channel,
233 jack_mixer_channel_t channel,
237 output_channel_is_muted(
238 jack_mixer_output_channel_t output_channel,
239 jack_mixer_channel_t channel);
242 output_channel_is_solo(
243 jack_mixer_output_channel_t output_channel,
244 jack_mixer_channel_t channel);
247 output_channel_set_prefader(
248 jack_mixer_output_channel_t output_channel,
252 output_channel_is_prefader(
253 jack_mixer_output_channel_t output_channel);
255 #endif /* #ifndef JACK_MIXER_H__DAEB51D8_5861_40F2_92E4_24CA495A384D__INCLUDED */