diff --git a/resources/ui/carla_edit.ui b/resources/ui/carla_edit.ui
index e65660572..08059ed7e 100644
--- a/resources/ui/carla_edit.ui
+++ b/resources/ui/carla_edit.ui
@@ -7,7 +7,7 @@
0
0
672
- 520
+ 541
@@ -302,28 +302,35 @@ Plugin Name
-
- Force Stereo
+ Force stereo
-
-
+
- Self-automation
+ Map Program changes
-
- Use chunks
+ Use Chunks
-
-
+
- Send All Sound/Notes Off
+ Send Control Changes
+
+
+
+ -
+
+
+ Send Channel Pressure
@@ -341,6 +348,13 @@ Plugin Name
+ -
+
+
+ Send All Sound/Notes Off
+
+
+
-
@@ -349,203 +363,201 @@ Plugin Name
QFrame::Raised
-
-
- 2
-
-
- 0
-
-
-
-
-
-
- 34
- 34
-
-
-
-
- 34
- 34
-
-
-
- Qt::CustomContextMenu
-
-
- Output volume (100%)
-
-
- 1270
-
-
- 1000
-
-
-
- -
-
-
-
- 34
- 34
-
-
-
-
- 34
- 34
-
-
-
- Qt::CustomContextMenu
-
-
- Output dry/wet (100%)
-
-
- 1000
-
-
- 1000
-
-
-
+
-
-
-
-
- 26
- 26
-
-
-
-
- 26
- 26
-
-
-
- Qt::CustomContextMenu
-
-
- Balance Left (0%)
-
-
- -1000
-
-
- 1000
-
-
- -1000
-
-
-
- -
-
-
-
- 26
- 26
-
-
-
-
- 26
- 26
-
-
-
- Qt::CustomContextMenu
-
-
- Balance Right (0%)
-
-
- -1000
-
-
- 1000
-
-
- 1000
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- -
-
-
- MIDI Control Channel:
-
-
+
+
-
+
+
+
+ 34
+ 34
+
+
+
+
+ 34
+ 34
+
+
+
+ Qt::CustomContextMenu
+
+
+ Output volume (100%)
+
+
+ 1270
+
+
+ 1000
+
+
+
+ -
+
+
+
+ 34
+ 34
+
+
+
+
+ 34
+ 34
+
+
+
+ Qt::CustomContextMenu
+
+
+ Output dry/wet (100%)
+
+
+ 1000
+
+
+ 1000
+
+
+
+ -
+
+
+
+ 26
+ 26
+
+
+
+
+ 26
+ 26
+
+
+
+ Qt::CustomContextMenu
+
+
+ Balance Left (0%)
+
+
+ -1000
+
+
+ 1000
+
+
+ -1000
+
+
+
+ -
+
+
+
+ 26
+ 26
+
+
+
+
+ 26
+ 26
+
+
+
+ Qt::CustomContextMenu
+
+
+ Balance Right (0%)
+
+
+ -1000
+
+
+ 1000
+
+
+ 1000
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ -
+
+
+ MIDI Control Channel:
+
+
+
+ -
+
+
+ Qt::AlignCenter
+
+
+ N
+
+
+ 0
+
+
+ 16
+
+
+ 0
+
+
+
+
-
-
-
- Qt::AlignCenter
-
-
- N
-
-
- 0
+
+
+
+ 0
+ 0
+
-
- 16
+
+ QTabWidget::South
-
+
0
+
+
+ Programs
+
+
+
-
+
+
+
+
+
+
+ MIDI Programs
+
+
+ -
+
+
+
+
- -
-
-
-
- 0
- 0
-
-
-
- QTabWidget::South
-
-
- 0
-
-
-
- Programs
-
-
-
-
-
-
-
-
-
-
- MIDI Programs
-
-
- -
-
-
-
-
-
-
-
diff --git a/source/carla_shared.py b/source/carla_shared.py
index 2e2099da2..88adead9f 100644
--- a/source/carla_shared.py
+++ b/source/carla_shared.py
@@ -1462,6 +1462,17 @@ class PluginEdit(QDialog):
self.ui.b_load_state.setEnabled(False)
self.ui.b_save_state.setEnabled(False)
+ # Set options
+ self.connect(self.ui.ch_fixed_buffer, SIGNAL("clicked(bool)"), SLOT("slot_optionChanged(bool)"))
+ self.connect(self.ui.ch_force_stereo, SIGNAL("clicked(bool)"), SLOT("slot_optionChanged(bool)"))
+ self.connect(self.ui.ch_map_program_changes, SIGNAL("clicked(bool)"), SLOT("slot_optionChanged(bool)"))
+ self.connect(self.ui.ch_use_chunks, SIGNAL("clicked(bool)"), SLOT("slot_optionChanged(bool)"))
+ self.connect(self.ui.ch_send_control_changes, SIGNAL("clicked(bool)"), SLOT("slot_optionChanged(bool)"))
+ self.connect(self.ui.ch_send_channel_pressure, SIGNAL("clicked(bool)"), SLOT("slot_optionChanged(bool)"))
+ self.connect(self.ui.ch_send_note_aftertouch, SIGNAL("clicked(bool)"), SLOT("slot_optionChanged(bool)"))
+ self.connect(self.ui.ch_send_pitchbend, SIGNAL("clicked(bool)"), SLOT("slot_optionChanged(bool)"))
+ self.connect(self.ui.ch_send_all_sound_off, SIGNAL("clicked(bool)"), SLOT("slot_optionChanged(bool)"))
+
self.connect(self.ui.dial_drywet, SIGNAL("valueChanged(int)"), SLOT("slot_dryWetChanged(int)"))
self.connect(self.ui.dial_vol, SIGNAL("valueChanged(int)"), SLOT("slot_volumeChanged(int)"))
self.connect(self.ui.dial_b_left, SIGNAL("valueChanged(int)"), SLOT("slot_balanceLeftChanged(int)"))
@@ -1555,20 +1566,24 @@ class PluginEdit(QDialog):
self.ui.dial_b_right.setEnabled(pluginHints & PLUGIN_CAN_BALANCE)
# Set options
- #self.ui.ch_fixed_buffer.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_FIXED_BUFFER)
- #self.ui.ch_fixed_buffer.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_FIXED_BUFFER)
- #self.ui.ch_force_stereo.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_FORCE_STEREO)
- #self.ui.ch_force_stereo.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_FORCE_STEREO)
- #self.ui.ch_self_automation.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_SELF_AUTOMATION)
- #self.ui.ch_self_automation.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_SELF_AUTOMATION)
- #self.ui.ch_use_chunks.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_USE_CHUNKS)
- #self.ui.ch_use_chunks.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_USE_CHUNKS)
- #self.ui.ch_send_all_sound_off.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_SEND_ALL_SOUND_OFF)
- #self.ui.ch_send_all_sound_off.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_SEND_ALL_SOUND_OFF)
- #self.ui.ch_send_note_aftertouch.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_SEND_NOTE_AFTERTOUCH)
- #self.ui.ch_send_note_aftertouch.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_SEND_NOTE_AFTERTOUCH)
- #self.ui.ch_send_pitchbend.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_SEND_PITCHBEND)
- #self.ui.ch_send_pitchbend.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_SEND_PITCHBEND)
+ self.ui.ch_fixed_buffer.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_FIXED_BUFFER)
+ self.ui.ch_fixed_buffer.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_FIXED_BUFFER)
+ self.ui.ch_force_stereo.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_FORCE_STEREO)
+ self.ui.ch_force_stereo.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_FORCE_STEREO)
+ self.ui.ch_map_program_changes.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_MAP_PROGRAM_CHANGES)
+ self.ui.ch_map_program_changes.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_MAP_PROGRAM_CHANGES)
+ self.ui.ch_use_chunks.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_USE_CHUNKS)
+ self.ui.ch_use_chunks.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_USE_CHUNKS)
+ self.ui.ch_send_control_changes.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_SEND_CONTROL_CHANGES)
+ self.ui.ch_send_control_changes.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_SEND_CONTROL_CHANGES)
+ self.ui.ch_send_channel_pressure.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_SEND_CHANNEL_PRESSURE)
+ self.ui.ch_send_channel_pressure.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_SEND_CHANNEL_PRESSURE)
+ self.ui.ch_send_note_aftertouch.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_SEND_NOTE_AFTERTOUCH)
+ self.ui.ch_send_note_aftertouch.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_SEND_NOTE_AFTERTOUCH)
+ self.ui.ch_send_pitchbend.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_SEND_PITCHBEND)
+ self.ui.ch_send_pitchbend.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_SEND_PITCHBEND)
+ self.ui.ch_send_all_sound_off.setEnabled(self.fPluginInfo['optionsAvailable'] & PLUGIN_OPTION_SEND_ALL_SOUND_OFF)
+ self.ui.ch_send_all_sound_off.setChecked(self.fPluginInfo['optionsEnabled'] & PLUGIN_OPTION_SEND_ALL_SOUND_OFF)
# Show/hide keyboard
showKeyboard = (pluginHints & PLUGIN_IS_SYNTH) != 0 or (midiCountInfo['ins'] > 0 < midiCountInfo['outs'])
@@ -1938,6 +1953,33 @@ class PluginEdit(QDialog):
self.fCurrentStateFilename = filenameTry
#self.loadState()
+ @pyqtSlot(bool)
+ def slot_optionChanged(self, clicked):
+ sender = self.sender()
+
+ if sender == self.ui.ch_fixed_buffer:
+ option = PLUGIN_OPTION_FIXED_BUFFER
+ elif sender == self.ui.ch_force_stereo:
+ option = PLUGIN_OPTION_FORCE_STEREO
+ elif sender == self.ui.ch_map_program_changes:
+ option = PLUGIN_OPTION_MAP_PROGRAM_CHANGES
+ elif sender == self.ui.ch_use_chunks:
+ option = PLUGIN_OPTION_USE_CHUNKS
+ elif sender == self.ui.ch_send_control_changes:
+ option = PLUGIN_OPTION_SEND_CONTROL_CHANGES
+ elif sender == self.ui.ch_send_channel_pressure:
+ option = PLUGIN_OPTION_SEND_CHANNEL_PRESSURE
+ elif sender == self.ui.ch_send_note_aftertouch:
+ option = PLUGIN_OPTION_SEND_NOTE_AFTERTOUCH
+ elif sender == self.ui.ch_send_pitchbend:
+ option = PLUGIN_OPTION_SEND_PITCHBEND
+ elif sender == self.ui.ch_send_all_sound_off:
+ option = PLUGIN_OPTION_SEND_ALL_SOUND_OFF
+ else:
+ return
+
+ Carla.host.set_option(self.fPluginId, option, clicked)
+
@pyqtSlot(int)
def slot_dryWetChanged(self, value):
Carla.host.set_drywet(self.fPluginId, float(value)/1000)