gobject.TYPE_NONE, ())
class InputChannel(Channel):
+ post_fader_output_channel = None
+
def __init__(self, app, name, stereo):
Channel.__init__(self, app, name, stereo)
def unrealize(self):
Channel.unrealize(self)
+ if self.post_fader_output_channel:
+ self.post_fader_output_channel.remove()
+ self.post_fader_output_channel = None
self.channel.remove()
self.channel = None
void *midi_change_callback_data;
jack_mixer_scale_t midi_scale;
-
- jack_mixer_output_channel_t output;
};
struct output_channel {
assert(channel_ptr->mixer_ptr->midi_cc_map[channel_ptr->midi_cc_balance_index] == channel_ptr);
channel_ptr->mixer_ptr->midi_cc_map[channel_ptr->midi_cc_balance_index] = NULL;
}
- remove_output_channel(channel_ptr->output);
free(channel_ptr);
}
struct channel * channel_ptr;
char * port_name;
size_t channel_name_size;
- char * output_channel_name;
channel_ptr = malloc(sizeof(struct channel));
if (channel_ptr == NULL)
calc_channel_volumes(channel_ptr);
- // for monitoring etc.
- output_channel_name = malloc(channel_name_size + 5);
- sprintf(output_channel_name, "%s Out", channel_name);
- channel_ptr->output = add_output_channel(mixer, output_channel_name, stereo, true);
- free(output_channel_name);
-
channel_ptr->mixer_ptr->input_channels_list = g_slist_prepend(
channel_ptr->mixer_ptr->input_channels_list, channel_ptr);
channel.channel.balance_midi_cc = int(balance_cc)
if not (volume_cc or balance_cc):
channel.channel.autoset_midi_cc()
+
return channel
def add_channel_precreated(self, channel):
for outputchannel in self.output_channels:
channel.add_control_group(outputchannel)
+ # create post fader output channel matching the input channel
+ channel.post_fader_output_channel = self.mixer.add_output_channel(
+ channel.channel.name + ' Out', channel.channel.is_stereo, True)
+ channel.post_fader_output_channel.volume = 0
+ channel.post_fader_output_channel.set_solo(channel.channel, True)
+
def read_meters(self):
for channel in self.channels:
channel.read_meter()