Browse Source

More PyQt5 work

tags/1.9.4
falkTX 11 years ago
parent
commit
40c7f69259
36 changed files with 613 additions and 24536 deletions
  1. +467
    -539
      resources/ui/carla_edit.ui
  2. +16
    -10
      source/backend/CarlaBackend.hpp
  3. +31
    -30
      source/carla_backend.py
  4. +99
    -61
      source/carla_shared.py
  5. +0
    -2201
      source/modules/carla_native/zynaddsubfx/UI/ADnoteUI.cpp
  6. +0
    -387
      source/modules/carla_native/zynaddsubfx/UI/ADnoteUI.h
  7. +0
    -420
      source/modules/carla_native/zynaddsubfx/UI/BankUI.cpp
  8. +0
    -103
      source/modules/carla_native/zynaddsubfx/UI/BankUI.h
  9. +0
    -573
      source/modules/carla_native/zynaddsubfx/UI/ConfigUI.cpp
  10. +0
    -122
      source/modules/carla_native/zynaddsubfx/UI/ConfigUI.h
  11. +0
    -3993
      source/modules/carla_native/zynaddsubfx/UI/EffUI.cpp
  12. +0
    -820
      source/modules/carla_native/zynaddsubfx/UI/EffUI.h
  13. +0
    -1529
      source/modules/carla_native/zynaddsubfx/UI/EnvelopeUI.cpp
  14. +0
    -281
      source/modules/carla_native/zynaddsubfx/UI/EnvelopeUI.h
  15. +0
    -994
      source/modules/carla_native/zynaddsubfx/UI/FilterUI.cpp
  16. +0
    -197
      source/modules/carla_native/zynaddsubfx/UI/FilterUI.h
  17. +0
    -290
      source/modules/carla_native/zynaddsubfx/UI/LFOUI.cpp
  18. +0
    -84
      source/modules/carla_native/zynaddsubfx/UI/LFOUI.h
  19. +0
    -2558
      source/modules/carla_native/zynaddsubfx/UI/MasterUI.cpp
  20. +0
    -460
      source/modules/carla_native/zynaddsubfx/UI/MasterUI.h
  21. +0
    -463
      source/modules/carla_native/zynaddsubfx/UI/MicrotonalUI.cpp
  22. +0
    -112
      source/modules/carla_native/zynaddsubfx/UI/MicrotonalUI.h
  23. +0
    -1412
      source/modules/carla_native/zynaddsubfx/UI/OscilGenUI.cpp
  24. +0
    -282
      source/modules/carla_native/zynaddsubfx/UI/OscilGenUI.h
  25. +0
    -1518
      source/modules/carla_native/zynaddsubfx/UI/PADnoteUI.cpp
  26. +0
    -305
      source/modules/carla_native/zynaddsubfx/UI/PADnoteUI.h
  27. +0
    -1872
      source/modules/carla_native/zynaddsubfx/UI/PartUI.cpp
  28. +0
    -333
      source/modules/carla_native/zynaddsubfx/UI/PartUI.h
  29. +0
    -274
      source/modules/carla_native/zynaddsubfx/UI/PresetsUI.cpp
  30. +0
    -84
      source/modules/carla_native/zynaddsubfx/UI/PresetsUI.h
  31. +0
    -556
      source/modules/carla_native/zynaddsubfx/UI/ResonanceUI.cpp
  32. +0
    -120
      source/modules/carla_native/zynaddsubfx/UI/ResonanceUI.h
  33. +0
    -735
      source/modules/carla_native/zynaddsubfx/UI/SUBnoteUI.cpp
  34. +0
    -179
      source/modules/carla_native/zynaddsubfx/UI/SUBnoteUI.h
  35. +0
    -545
      source/modules/carla_native/zynaddsubfx/UI/VirKeyboard.cpp
  36. +0
    -94
      source/modules/carla_native/zynaddsubfx/UI/VirKeyboard.h

+ 467
- 539
resources/ui/carla_edit.ui
File diff suppressed because it is too large
View File


+ 16
- 10
source/backend/CarlaBackend.hpp View File

@@ -352,47 +352,53 @@ enum OptionsType {
#endif

#ifdef WANT_LV2
/*!
* Set path to the LV2 External UI bridge executable.\n
* Default unset.
*/
OPTION_PATH_BRIDGE_LV2_EXTERNAL = 20,

/*!
* Set path to the LV2 Gtk2 UI bridge executable.\n
* Default unset.
*/
OPTION_PATH_BRIDGE_LV2_GTK2 = 20,
OPTION_PATH_BRIDGE_LV2_GTK2 = 21,

/*!
* Set path to the LV2 Gtk3 UI bridge executable.\n
* Default unset.
*/
OPTION_PATH_BRIDGE_LV2_GTK3 = 21,
OPTION_PATH_BRIDGE_LV2_GTK3 = 22,

/*!
* Set path to the LV2 Qt4 UI bridge executable.\n
* Default unset.
*/
OPTION_PATH_BRIDGE_LV2_QT4 = 22,
OPTION_PATH_BRIDGE_LV2_QT4 = 23,

/*!
* Set path to the LV2 Qt5 UI bridge executable.\n
* Default unset.
*/
OPTION_PATH_BRIDGE_LV2_QT5 = 23,
OPTION_PATH_BRIDGE_LV2_QT5 = 24,

/*!
* Set path to the LV2 Cocoa UI bridge executable.\n
* Default unset.
*/
OPTION_PATH_BRIDGE_LV2_COCOA = 24,
OPTION_PATH_BRIDGE_LV2_COCOA = 25,

/*!
* Set path to the LV2 Windows UI bridge executable.\n
* Default unset.
*/
OPTION_PATH_BRIDGE_LV2_WINDOWS = 25,
OPTION_PATH_BRIDGE_LV2_WINDOWS = 26,

/*!
* Set path to the LV2 X11 UI bridge executable.\n
* Default unset.
*/
OPTION_PATH_BRIDGE_LV2_X11 = 26,
OPTION_PATH_BRIDGE_LV2_X11 = 27,
#endif

#ifdef WANT_VST
@@ -400,19 +406,19 @@ enum OptionsType {
* Set path to the VST Cocoa UI bridge executable.\n
* Default unset.
*/
OPTION_PATH_BRIDGE_VST_COCOA = 27,
OPTION_PATH_BRIDGE_VST_COCOA = 28,

/*!
* Set path to the VST HWND UI bridge executable.\n
* Default unset.
*/
OPTION_PATH_BRIDGE_VST_HWND = 28,
OPTION_PATH_BRIDGE_VST_HWND = 29,

/*!
* Set path to the VST X11 UI bridge executable.\n
* Default unset.
*/
OPTION_PATH_BRIDGE_VST_X11 = 29
OPTION_PATH_BRIDGE_VST_X11 = 30
#endif
};



+ 31
- 30
source/carla_backend.py View File

@@ -199,36 +199,37 @@ PATCHBAY_ICON_FILE = 4
PATCHBAY_ICON_PLUGIN = 5

# Options Type
OPTION_PROCESS_NAME = 0
OPTION_PROCESS_MODE = 1
OPTION_TRANSPORT_MODE = 2
OPTION_FORCE_STEREO = 3
OPTION_PREFER_PLUGIN_BRIDGES = 4
OPTION_PREFER_UI_BRIDGES = 5
OPTION_UIS_ALWAYS_ON_TOP = 6
OPTION_USE_DSSI_VST_CHUNKS = 7
OPTION_MAX_PARAMETERS = 8
OPTION_UI_BRIDGES_TIMEOUT = 9
OPTION_RTAUDIO_NUMBER_PERIODS = 10
OPTION_RTAUDIO_BUFFER_SIZE = 11
OPTION_RTAUDIO_SAMPLE_RATE = 12
OPTION_RTAUDIO_DEVICE = 13
OPTION_PATH_RESOURCES = 14
OPTION_PATH_BRIDGE_NATIVE = 15
OPTION_PATH_BRIDGE_POSIX32 = 16
OPTION_PATH_BRIDGE_POSIX64 = 17
OPTION_PATH_BRIDGE_WIN32 = 18
OPTION_PATH_BRIDGE_WIN64 = 19
OPTION_PATH_BRIDGE_LV2_GTK2 = 20
OPTION_PATH_BRIDGE_LV2_GTK3 = 21
OPTION_PATH_BRIDGE_LV2_QT4 = 22
OPTION_PATH_BRIDGE_LV2_QT5 = 23
OPTION_PATH_BRIDGE_LV2_COCOA = 24
OPTION_PATH_BRIDGE_LV2_WINDOWS = 25
OPTION_PATH_BRIDGE_LV2_X11 = 26
OPTION_PATH_BRIDGE_VST_COCOA = 27
OPTION_PATH_BRIDGE_VST_HWND = 28
OPTION_PATH_BRIDGE_VST_X11 = 29
OPTION_PROCESS_NAME = 0
OPTION_PROCESS_MODE = 1
OPTION_TRANSPORT_MODE = 2
OPTION_FORCE_STEREO = 3
OPTION_PREFER_PLUGIN_BRIDGES = 4
OPTION_PREFER_UI_BRIDGES = 5
OPTION_UIS_ALWAYS_ON_TOP = 6
OPTION_USE_DSSI_VST_CHUNKS = 7
OPTION_MAX_PARAMETERS = 8
OPTION_UI_BRIDGES_TIMEOUT = 9
OPTION_RTAUDIO_NUMBER_PERIODS = 10
OPTION_RTAUDIO_BUFFER_SIZE = 11
OPTION_RTAUDIO_SAMPLE_RATE = 12
OPTION_RTAUDIO_DEVICE = 13
OPTION_PATH_RESOURCES = 14
OPTION_PATH_BRIDGE_NATIVE = 15
OPTION_PATH_BRIDGE_POSIX32 = 16
OPTION_PATH_BRIDGE_POSIX64 = 17
OPTION_PATH_BRIDGE_WIN32 = 18
OPTION_PATH_BRIDGE_WIN64 = 19
OPTION_PATH_BRIDGE_LV2_EXTERNAL = 20
OPTION_PATH_BRIDGE_LV2_GTK2 = 21
OPTION_PATH_BRIDGE_LV2_GTK3 = 22
OPTION_PATH_BRIDGE_LV2_QT4 = 23
OPTION_PATH_BRIDGE_LV2_QT5 = 24
OPTION_PATH_BRIDGE_LV2_COCOA = 25
OPTION_PATH_BRIDGE_LV2_WINDOWS = 26
OPTION_PATH_BRIDGE_LV2_X11 = 27
OPTION_PATH_BRIDGE_VST_COCOA = 28
OPTION_PATH_BRIDGE_VST_HWND = 29
OPTION_PATH_BRIDGE_VST_X11 = 30

# Callback Type
CALLBACK_DEBUG = 0


+ 99
- 61
source/carla_shared.py View File

@@ -23,14 +23,11 @@ import os
import sys
from copy import deepcopy
from subprocess import Popen, PIPE
from PyQt5.QtCore import qCritical, qFatal, qWarning, Qt, QByteArray, QThread, QSettings
from PyQt5.QtCore import pyqtSignal, pyqtSlot, qCritical, qFatal, qWarning, Qt, QByteArray, QThread, QSettings
from PyQt5.QtGui import QColor, QCursor, QFontMetrics, QIcon, QPainter, QPainterPath
from PyQt5.QtWidgets import QDialog, QFileDialog, QFrame, QInputDialog, QLineEdit, QMenu, QMessageBox
from PyQt5.QtWidgets import QTableWidgetItem, QVBoxLayout, QWidget

# remove?
from PyQt5.QtCore import pyqtSlot

# ------------------------------------------------------------------------------------------------------------
# Imports (Custom)

@@ -68,7 +65,7 @@ except:
# Platform specific stuff

if MACOS:
from PyQt4.QtGui import qt_mac_set_menubar_icons
from PyQt5.QtGui import qt_mac_set_menubar_icons
qt_mac_set_menubar_icons(False)
elif WINDOWS:
WINDIR = os.getenv("WINDIR")
@@ -418,12 +415,14 @@ carla_bridge_vst_mac = ""
carla_bridge_vst_hwnd = ""
carla_bridge_vst_x11 = ""

carla_libname = "libcarla_%s" % "control" if Carla.isControl else "standalone"

if WINDOWS:
carla_libname = "libcarla_standalone.dll"
carla_libname += ".dll"
elif MACOS:
carla_libname = "libcarla_standalone.dylib"
carla_libname += ".dylib"
else:
carla_libname = "libcarla_standalone.so"
carla_libname += ".so"

CWD = sys.path[0]

@@ -544,9 +543,9 @@ def signalHandler(sig, frame):
return

if sig in (SIGINT, SIGTERM):
Carla.gui.emit(SIGNAL("SIGTERM()"))
Carla.gui.SIGTERM.emit()
elif haveSIGUSR1 and sig == SIGUSR1:
Carla.gui.emit(SIGNAL("SIGUSR1()"))
Carla.gui.SIGUSR1.emit()

def setUpSignals():
signal(SIGINT, signalHandler)
@@ -620,7 +619,7 @@ def findFilenames(filePath, stype):
filenames = []

if stype == "csound":
extensions = (".csnd",)
extensions = (".csd",)
elif stype == "gig":
extensions = (".gig",)
elif stype == "sf2":
@@ -803,6 +802,7 @@ def runCarlaDiscovery(itype, stype, filename, tool, isWine=False):
if findDSSIGUI(pinfo['binary'], pinfo['name'], pinfo['label']):
pinfo['hints'] |= PLUGIN_HAS_GUI

# FIXME?
tmp = discoveryProcess
discoveryProcess = None
del discoveryProcess, tmp
@@ -933,22 +933,24 @@ class CarlaAboutW(QDialog):
"<li>http://lv2plug.in/ns/ext/atom</li>"
"<li>http://lv2plug.in/ns/ext/buf-size</li>"
"<li>http://lv2plug.in/ns/ext/data-access</li>"
#"<li>http://lv2plug.in/ns/ext/dynmanifest</li>"
#"<li>http://lv2plug.in/ns/ext/dynmanifest</li>"
"<li>http://lv2plug.in/ns/ext/event</li>"
"<li>http://lv2plug.in/ns/ext/instance-access</li>"
"<li>http://lv2plug.in/ns/ext/log</li>"
"<li>http://lv2plug.in/ns/ext/midi</li>"
#"<li>http://lv2plug.in/ns/ext/morph</li>"
"<li>http://lv2plug.in/ns/ext/options</li>"
"<li>http://lv2plug.in/ns/ext/parameters</li>"
#"<li>http://lv2plug.in/ns/ext/patch</li>"
#"<li>http://lv2plug.in/ns/ext/port-groups</li>"
#"<li>http://lv2plug.in/ns/ext/port-props</li>"
#"<li>http://lv2plug.in/ns/ext/patch</li>"
#"<li>http://lv2plug.in/ns/ext/port-groups</li>"
#"<li>http://lv2plug.in/ns/ext/port-props</li>"
"<li>http://lv2plug.in/ns/ext/presets</li>"
#"<li>http://lv2plug.in/ns/ext/resize-port</li>"
"<li>http://lv2plug.in/ns/ext/state</li>"
"<li>http://lv2plug.in/ns/ext/time</li>"
"<li>http://lv2plug.in/ns/ext/uri-map</li>"
"<li>http://lv2plug.in/ns/ext/urid</li>"
#"<li>http://lv2plug.in/ns/ext/worker</li>"
#"<li>http://lv2plug.in/ns/ext/worker</li>"
"<li>http://lv2plug.in/ns/extensions/ui</li>"
"<li>http://lv2plug.in/ns/extensions/units</li>"
"<li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li>"
@@ -967,6 +969,10 @@ class CarlaAboutW(QDialog):
# Plugin Parameter

class PluginParameter(QWidget):
midiControlChanged = pyqtSignal(int, int)
midiChannelChanged = pyqtSignal(int, int)
valueChanged = pyqtSignal(int, float)

def __init__(self, parent, pInfo, pluginId, tabIndex):
QWidget.__init__(self, parent)
self.ui = ui_carla_parameter.Ui_PluginParameter()
@@ -1042,11 +1048,11 @@ class PluginParameter(QWidget):
# -------------------------------------------------------------
# Set-up connections

self.connect(self.ui.sb_control, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_controlSpinboxCustomMenu()"))
self.connect(self.ui.sb_channel, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_channelSpinboxCustomMenu()"))
self.connect(self.ui.sb_control, SIGNAL("valueChanged(int)"), SLOT("slot_controlSpinboxChanged(int)"))
self.connect(self.ui.sb_channel, SIGNAL("valueChanged(int)"), SLOT("slot_channelSpinboxChanged(int)"))
self.connect(self.ui.widget, SIGNAL("valueChanged(double)"), SLOT("slot_widgetValueChanged(double)"))
self.ui.sb_control.customContextMenuRequested.connect(self.slot_controlSpinboxCustomMenu)
self.ui.sb_channel.customContextMenuRequested.connect(self.slot_channelSpinboxCustomMenu)
self.ui.sb_control.valueChanged.connect(self.slot_controlSpinboxChanged)
self.ui.sb_channel.valueChanged.connect(self.slot_channelSpinboxChanged)
self.ui.widget.valueChanged.connect(self.slot_widgetValueChanged)

# -------------------------------------------------------------

@@ -1126,18 +1132,18 @@ class PluginParameter(QWidget):
@pyqtSlot(int)
def slot_controlSpinboxChanged(self, control):
if self.fMidiControl != control:
self.emit(SIGNAL("midiControlChanged(int, int)"), self.fParameterId, control)
self.midiControlChanged.emit(self.fParameterId, control)
self.fMidiControl = control

@pyqtSlot(int)
def slot_channelSpinboxChanged(self, channel):
if self.fMidiChannel != channel:
self.emit(SIGNAL("midiChannelChanged(int, int)"), self.fParameterId, channel)
self.midiChannelChanged.emit(self.fParameterId, channel)
self.fMidiChannel = channel

@pyqtSlot(float)
def slot_widgetValueChanged(self, value):
self.emit(SIGNAL("valueChanged(int, double)"), self.fParameterId, value)
self.valueChanged.emit(self.fParameterId, value)

def _textCallBack(self):
return cString(Carla.host.get_parameter_text(self.fPluginId, self.fParameterId))
@@ -1204,47 +1210,47 @@ class PluginEdit(QDialog):
self.ui.scrollArea.setEnabled(False)
self.ui.scrollArea.setVisible(False)

self.reloadAll()
#self.reloadAll()

# -------------------------------------------------------------
# Set-up connections

self.connect(self, SIGNAL("finished(int)"), SLOT("slot_finished()"))
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)"))
self.connect(self.ui.dial_b_right, SIGNAL("valueChanged(int)"), SLOT("slot_balanceRightChanged(int)"))
self.connect(self.ui.sb_ctrl_channel, SIGNAL("valueChanged(int)"), SLOT("slot_ctrlChannelChanged(int)"))
self.connect(self.ui.dial_drywet, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_knobCustomMenu()"))
self.connect(self.ui.dial_vol, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_knobCustomMenu()"))
self.connect(self.ui.dial_b_left, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_knobCustomMenu()"))
self.connect(self.ui.dial_b_right, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_knobCustomMenu()"))
self.connect(self.ui.sb_ctrl_channel, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_channelCustomMenu()"))
self.connect(self.ui.keyboard, SIGNAL("noteOn(int)"), SLOT("slot_noteOn(int)"))
self.connect(self.ui.keyboard, SIGNAL("noteOff(int)"), SLOT("slot_noteOff(int)"))
self.connect(self.ui.cb_programs, SIGNAL("currentIndexChanged(int)"), SLOT("slot_programIndexChanged(int)"))
self.connect(self.ui.cb_midi_programs, SIGNAL("currentIndexChanged(int)"), SLOT("slot_midiProgramIndexChanged(int)"))
if Carla.isLocal:
self.connect(self.ui.b_save_state, SIGNAL("clicked()"), SLOT("slot_stateSave()"))
self.connect(self.ui.b_load_state, SIGNAL("clicked()"), SLOT("slot_stateLoad()"))
else:
self.ui.b_load_state.setEnabled(False)
self.ui.b_save_state.setEnabled(False)
#self.connect(self, SIGNAL("finished(int)"), SLOT("slot_finished()"))
#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)"))
#self.connect(self.ui.dial_b_right, SIGNAL("valueChanged(int)"), SLOT("slot_balanceRightChanged(int)"))
#self.connect(self.ui.sb_ctrl_channel, SIGNAL("valueChanged(int)"), SLOT("slot_ctrlChannelChanged(int)"))
#self.connect(self.ui.dial_drywet, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_knobCustomMenu()"))
#self.connect(self.ui.dial_vol, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_knobCustomMenu()"))
#self.connect(self.ui.dial_b_left, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_knobCustomMenu()"))
#self.connect(self.ui.dial_b_right, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_knobCustomMenu()"))
#self.connect(self.ui.sb_ctrl_channel, SIGNAL("customContextMenuRequested(QPoint)"), SLOT("slot_channelCustomMenu()"))
#self.connect(self.ui.keyboard, SIGNAL("noteOn(int)"), SLOT("slot_noteOn(int)"))
#self.connect(self.ui.keyboard, SIGNAL("noteOff(int)"), SLOT("slot_noteOff(int)"))
#self.connect(self.ui.cb_programs, SIGNAL("currentIndexChanged(int)"), SLOT("slot_programIndexChanged(int)"))
#self.connect(self.ui.cb_midi_programs, SIGNAL("currentIndexChanged(int)"), SLOT("slot_midiProgramIndexChanged(int)"))
#if Carla.isLocal:
#self.connect(self.ui.b_save_state, SIGNAL("clicked()"), SLOT("slot_stateSave()"))
#self.connect(self.ui.b_load_state, SIGNAL("clicked()"), SLOT("slot_stateLoad()"))
#else:
#self.ui.b_load_state.setEnabled(False)
#self.ui.b_save_state.setEnabled(False)

# -------------------------------------------------------------

@@ -3416,3 +3422,35 @@ class PluginDatabaseW(QDialog):
def done(self, r):
QDialog.done(self, r)
self.close()

# ------------------------------------------------------------------------------------------------------------
# TESTING

Carla.isControl = True

pInfo = {
'type': PARAMETER_INPUT,
'hints': PARAMETER_IS_ENABLED|PARAMETER_IS_AUTOMABLE,
'name': "Parameter Name",
'unit': "",
'scalePoints': [],

'index': 0,
'default': 0.0,
'minimum': 0.0,
'maximum': 1.0,
'step': 0.01,
'stepSmall': 0.01,
'stepLarge': 0.01,
'midiCC': -1,
'midiChannel': 1,

'current': 0.0
}

from PyQt5.QtWidgets import QApplication
app = QApplication(sys.argv)
#gui = PluginParameter(None, pInfo, 0, 0)
gui = PluginEdit(None, 0)
gui.show()
app.exec_()

+ 0
- 2201
source/modules/carla_native/zynaddsubfx/UI/ADnoteUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 387
source/modules/carla_native/zynaddsubfx/UI/ADnoteUI.h View File

@@ -1,387 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef ADnoteUI_h
#define ADnoteUI_h
#include <FL/Fl.H>
#include "../Params/ADnoteParameters.h"
#include "../Misc/Util.h"
#include "../Misc/Master.h"
#include "ResonanceUI.h"
#include <FL/Fl_Box.H>
#include <FL/Fl_Group.H>
#include "WidgetPDial.h"
#include "EnvelopeUI.h"
#include "LFOUI.h"
#include "FilterUI.h"
#include "OscilGenUI.h"
#include "PresetsUI.h"
#include <FL/Fl_Group.H>
#include <FL/Fl_Value_Slider.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Value_Output.H>
#include <FL/Fl_Slider.H>
#include <FL/Fl_Box.H>

class ADvoicelistitem : public Fl_Group {
Fl_Group* make_window();
Fl_Group *ADnoteVoiceListItem;
Fl_Group *voicelistitemgroup;
public:
Fl_Value_Slider *voicevolume;
private:
void cb_voicevolume_i(Fl_Value_Slider*, void*);
static void cb_voicevolume(Fl_Value_Slider*, void*);
public:
Fl_Check_Button *voiceresonanceenabled;
private:
void cb_voiceresonanceenabled_i(Fl_Check_Button*, void*);
static void cb_voiceresonanceenabled(Fl_Check_Button*, void*);
public:
Fl_Value_Slider *voicelfofreq;
private:
void cb_voicelfofreq_i(Fl_Value_Slider*, void*);
static void cb_voicelfofreq(Fl_Value_Slider*, void*);
public:
WidgetPDial *voicepanning;
private:
void cb_voicepanning_i(WidgetPDial*, void*);
static void cb_voicepanning(WidgetPDial*, void*);
public:
Fl_Group *voiceoscil;
Fl_Value_Output *detunevalueoutput;
private:
void cb_detunevalueoutput_i(Fl_Value_Output*, void*);
static void cb_detunevalueoutput(Fl_Value_Output*, void*);
public:
Fl_Slider *voicedetune;
private:
void cb_voicedetune_i(Fl_Slider*, void*);
static void cb_voicedetune(Fl_Slider*, void*);
public:
Fl_Box *noiselabel;
private:
void cb_noiselabel_i(Fl_Box*, void*);
static void cb_noiselabel(Fl_Box*, void*);
Fl_Check_Button *voiceenabled;
void cb_voiceenabled_i(Fl_Check_Button*, void*);
static void cb_voiceenabled(Fl_Check_Button*, void*);
public:
ADvoicelistitem(int x,int y, int w, int h, const char *label=0);
void init(ADnoteParameters *parameters,int nvoice_,Master *master_);
void refreshlist();
~ADvoicelistitem();
private:
ADnoteParameters *pars;
int nvoice;
Oscilloscope *osc;
Master *master;
};
#include <FL/Fl_Counter.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Button.H>

class ADvoiceUI : public Fl_Group {
public:
Fl_Group* make_window();
Fl_Group *ADnoteVoiceParameters;
Fl_Group *voiceparametersgroup;
Fl_Group *voicemodegroup;
Fl_Group *voiceFMparametersgroup;
Fl_Group *modfrequency;
EnvelopeUI *voiceFMfreqenvgroup;
private:
void cb_On_i(Fl_Check_Button*, void*);
static void cb_On(Fl_Check_Button*, void*);
void cb_Coarse_i(Fl_Counter*, void*);
static void cb_Coarse(Fl_Counter*, void*);
void cb_Octave_i(Fl_Counter*, void*);
static void cb_Octave(Fl_Counter*, void*);
void cb__i(Fl_Slider*, void*);
static void cb_(Fl_Slider*, void*);
public:
Fl_Value_Output *fmdetunevalueoutput;
private:
void cb_fmdetunevalueoutput_i(Fl_Value_Output*, void*);
static void cb_fmdetunevalueoutput(Fl_Value_Output*, void*);
void cb_Detune_i(Fl_Choice*, void*);
static void cb_Detune(Fl_Choice*, void*);
void cb_Vol_i(Fl_Value_Slider*, void*);
static void cb_Vol(Fl_Value_Slider*, void*);
void cb_V_i(Fl_Value_Slider*, void*);
static void cb_V(Fl_Value_Slider*, void*);
public:
EnvelopeUI *voiceFMampenvgroup;
private:
void cb_On1_i(Fl_Check_Button*, void*);
static void cb_On1(Fl_Check_Button*, void*);
void cb_F_i(Fl_Value_Slider*, void*);
static void cb_F(Fl_Value_Slider*, void*);
public:
Fl_Group *modoscil;
Fl_Group *fmoscil;
Fl_Button *changeFMoscilbutton;
private:
void cb_changeFMoscilbutton_i(Fl_Button*, void*);
static void cb_changeFMoscilbutton(Fl_Button*, void*);
void cb_Phase_i(Fl_Slider*, void*);
static void cb_Phase(Fl_Slider*, void*);
void cb_Use_i(Fl_Choice*, void*);
static void cb_Use(Fl_Choice*, void*);
void cb_External_i(Fl_Choice*, void*);
static void cb_External(Fl_Choice*, void*);
void cb_Type_i(Fl_Choice*, void*);
static void cb_Type(Fl_Choice*, void*);
static Fl_Menu_Item menu_Type[];
public:
EnvelopeUI *voicefreqenvgroup;
private:
void cb_On2_i(Fl_Check_Button*, void*);
static void cb_On2(Fl_Check_Button*, void*);
public:
LFOUI *voicefreqlfogroup;
private:
void cb_On3_i(Fl_Check_Button*, void*);
static void cb_On3(Fl_Check_Button*, void*);
void cb_Octave1_i(Fl_Counter*, void*);
static void cb_Octave1(Fl_Counter*, void*);
void cb_Coarse1_i(Fl_Counter*, void*);
static void cb_Coarse1(Fl_Counter*, void*);
void cb_1_i(Fl_Slider*, void*);
static void cb_1(Fl_Slider*, void*);
public:
Fl_Value_Output *detunevalueoutput;
private:
void cb_detunevalueoutput1_i(Fl_Value_Output*, void*);
static void cb_detunevalueoutput1(Fl_Value_Output*, void*);
void cb_440Hz_i(Fl_Check_Button*, void*);
static void cb_440Hz(Fl_Check_Button*, void*);
public:
WidgetPDial *fixedfreqetdial;
private:
void cb_fixedfreqetdial_i(WidgetPDial*, void*);
static void cb_fixedfreqetdial(WidgetPDial*, void*);
void cb_Detune1_i(Fl_Choice*, void*);
static void cb_Detune1(Fl_Choice*, void*);
public:
Fl_Group *voiceoscil;
Fl_Button *changevoiceoscilbutton;
private:
void cb_changevoiceoscilbutton_i(Fl_Button*, void*);
static void cb_changevoiceoscilbutton(Fl_Button*, void*);
void cb_Phase1_i(Fl_Slider*, void*);
static void cb_Phase1(Fl_Slider*, void*);
void cb_R_i(Fl_Check_Button*, void*);
static void cb_R(Fl_Check_Button*, void*);
void cb_Use1_i(Fl_Choice*, void*);
static void cb_Use1(Fl_Choice*, void*);
void cb_Stereo_i(WidgetPDial*, void*);
static void cb_Stereo(WidgetPDial*, void*);
void cb_Unison_i(Fl_Choice*, void*);
static void cb_Unison(Fl_Choice*, void*);
void cb_Vibratto_i(WidgetPDial*, void*);
static void cb_Vibratto(WidgetPDial*, void*);
void cb_Invert_i(Fl_Choice*, void*);
static void cb_Invert(Fl_Choice*, void*);
void cb_Frequency_i(Fl_Slider*, void*);
static void cb_Frequency(Fl_Slider*, void*);
public:
Fl_Value_Output *unisonspreadoutput;
private:
void cb_unisonspreadoutput_i(Fl_Value_Output*, void*);
static void cb_unisonspreadoutput(Fl_Value_Output*, void*);
void cb_Vib_i(WidgetPDial*, void*);
static void cb_Vib(WidgetPDial*, void*);
void cb_Vol1_i(Fl_Value_Slider*, void*);
static void cb_Vol1(Fl_Value_Slider*, void*);
void cb_V1_i(Fl_Value_Slider*, void*);
static void cb_V1(Fl_Value_Slider*, void*);
public:
EnvelopeUI *voiceampenvgroup;
private:
void cb_Pan_i(WidgetPDial*, void*);
static void cb_Pan(WidgetPDial*, void*);
void cb_On4_i(Fl_Check_Button*, void*);
static void cb_On4(Fl_Check_Button*, void*);
public:
LFOUI *voiceamplfogroup;
private:
void cb_On5_i(Fl_Check_Button*, void*);
static void cb_On5(Fl_Check_Button*, void*);
void cb_Minus_i(Fl_Check_Button*, void*);
static void cb_Minus(Fl_Check_Button*, void*);
public:
Fl_Group *voicefiltergroup;
EnvelopeUI *voicefilterenvgroup;
private:
void cb_On6_i(Fl_Check_Button*, void*);
static void cb_On6(Fl_Check_Button*, void*);
public:
LFOUI *voicefilterlfogroup;
private:
void cb_On7_i(Fl_Check_Button*, void*);
static void cb_On7(Fl_Check_Button*, void*);
void cb_2_i(Fl_Choice*, void*);
static void cb_2(Fl_Choice*, void*);
static Fl_Menu_Item menu_[];
public:
Fl_Check_Button *bypassfiltercheckbutton;
private:
void cb_bypassfiltercheckbutton_i(Fl_Check_Button*, void*);
static void cb_bypassfiltercheckbutton(Fl_Check_Button*, void*);
void cb_Delay_i(Fl_Value_Slider*, void*);
static void cb_Delay(Fl_Value_Slider*, void*);
void cb_On8_i(Fl_Check_Button*, void*);
static void cb_On8(Fl_Check_Button*, void*);
public:
Fl_Box *noiselabel;
private:
void cb_noiselabel1_i(Fl_Box*, void*);
static void cb_noiselabel1(Fl_Box*, void*);
public:
Fl_Check_Button *voiceonbutton;
private:
void cb_voiceonbutton_i(Fl_Check_Button*, void*);
static void cb_voiceonbutton(Fl_Check_Button*, void*);
public:
ADvoiceUI(int x,int y, int w, int h, const char *label=0);
void init(ADnoteParameters *parameters,int nvoice_,Master *master_);
~ADvoiceUI();
private:
int nvoice;
ADnoteParameters *pars;
OscilEditor *oscedit;
Oscilloscope *osc;
Oscilloscope *oscFM;
Master *master;
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Text_Display.H>
#include <FL/Fl_Scroll.H>
#include <FL/Fl_Pack.H>

class ADnoteUI : public PresetsUI_ {
Fl_Double_Window* make_window();
public:
Fl_Double_Window *ADnoteGlobalParameters;
EnvelopeUI *freqenv;
Fl_Counter *octave;
private:
void cb_octave_i(Fl_Counter*, void*);
static void cb_octave(Fl_Counter*, void*);
public:
Fl_Counter *coarsedet;
private:
void cb_coarsedet_i(Fl_Counter*, void*);
static void cb_coarsedet(Fl_Counter*, void*);
public:
LFOUI *freqlfo;
Fl_Slider *freq;
private:
void cb_freq_i(Fl_Slider*, void*);
static void cb_freq(Fl_Slider*, void*);
public:
Fl_Value_Output *detunevalueoutput;
private:
void cb_detunevalueoutput2_i(Fl_Value_Output*, void*);
static void cb_detunevalueoutput2(Fl_Value_Output*, void*);
public:
Fl_Choice *detunetype;
private:
void cb_detunetype_i(Fl_Choice*, void*);
static void cb_detunetype(Fl_Choice*, void*);
void cb_relBW_i(WidgetPDial*, void*);
static void cb_relBW(WidgetPDial*, void*);
public:
Fl_Value_Slider *volume;
private:
void cb_volume_i(Fl_Value_Slider*, void*);
static void cb_volume(Fl_Value_Slider*, void*);
public:
Fl_Value_Slider *vsns;
private:
void cb_vsns_i(Fl_Value_Slider*, void*);
static void cb_vsns(Fl_Value_Slider*, void*);
public:
WidgetPDial *pan;
private:
void cb_pan_i(WidgetPDial*, void*);
static void cb_pan(WidgetPDial*, void*);
public:
WidgetPDial *pstr;
private:
void cb_pstr_i(WidgetPDial*, void*);
static void cb_pstr(WidgetPDial*, void*);
public:
WidgetPDial *pt;
private:
void cb_pt_i(WidgetPDial*, void*);
static void cb_pt(WidgetPDial*, void*);
public:
WidgetPDial *pstc;
private:
void cb_pstc_i(WidgetPDial*, void*);
static void cb_pstc(WidgetPDial*, void*);
public:
WidgetPDial *pvel;
private:
void cb_pvel_i(WidgetPDial*, void*);
static void cb_pvel(WidgetPDial*, void*);
public:
EnvelopeUI *ampenv;
LFOUI *amplfo;
Fl_Check_Button *rndgrp;
private:
void cb_rndgrp_i(Fl_Check_Button*, void*);
static void cb_rndgrp(Fl_Check_Button*, void*);
public:
EnvelopeUI *filterenv;
LFOUI *filterlfo;
FilterUI *filterui;
Fl_Check_Button *stereo;
private:
void cb_stereo_i(Fl_Check_Button*, void*);
static void cb_stereo(Fl_Check_Button*, void*);
void cb_Show_i(Fl_Button*, void*);
static void cb_Show(Fl_Button*, void*);
void cb_Show1_i(Fl_Button*, void*);
static void cb_Show1(Fl_Button*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_Resonance_i(Fl_Button*, void*);
static void cb_Resonance(Fl_Button*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Double_Window *ADnoteVoice;
ADvoiceUI *advoice;
private:
void cb_Close1_i(Fl_Button*, void*);
static void cb_Close1(Fl_Button*, void*);
public:
Fl_Counter *currentvoicecounter;
private:
void cb_currentvoicecounter_i(Fl_Counter*, void*);
static void cb_currentvoicecounter(Fl_Counter*, void*);
void cb_C1_i(Fl_Button*, void*);
static void cb_C1(Fl_Button*, void*);
void cb_P1_i(Fl_Button*, void*);
static void cb_P1(Fl_Button*, void*);
public:
Fl_Double_Window *ADnoteVoiceList;
private:
void cb_Hide_i(Fl_Button*, void*);
static void cb_Hide(Fl_Button*, void*);
public:
ADnoteUI(ADnoteParameters *parameters,Master *master_);
~ADnoteUI();
void refresh();
private:
ADnoteParameters *pars;
ResonanceUI *resui;
Master *master;
int nvoice;
ADvoicelistitem *voicelistitem[NUM_VOICES];
};
#endif

+ 0
- 420
source/modules/carla_native/zynaddsubfx/UI/BankUI.cpp View File

@@ -1,420 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "zynaddsubfx/UI/BankUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later

void BankProcess_::process() {
;
}

BankSlot::BankSlot(int x,int y, int w, int h, const char *label):Fl_Button(x,y,w,h,label) {
what=NULL;
whatslot=NULL;
nslot=0;
nselected=NULL;
}

int BankSlot::handle(int event) {
if (what==NULL) return(0);
if (Fl::event_inside(this)){
*what=0;*whatslot=nslot;
if ((event==FL_RELEASE)&&(Fl::event_button()==1))*what=1;
if ((event==FL_RELEASE)&&(Fl::event_button()==3))*what=2;
if (event==FL_PUSH) highlight=1;
}else highlight=0;
int tmp=Fl_Button::handle(event);
if ((*what!=0) && Fl::event_inside(this)) (bp->*fnc)();
return(tmp);
}

void BankSlot::init(int nslot_, int *what_, int *whatslot_,void (BankProcess_:: *fnc_)(void),BankProcess_ *bp_,Bank *bank_,int *nselected_) {
nslot=nslot_;
what=what_;
whatslot=whatslot_;
fnc=fnc_;
bp=bp_;
bank=bank_;
nselected=nselected_;
box(FL_THIN_UP_BOX);
labelfont(0);
labelsize(13);
align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_CLIP);
highlight=0;
refresh();
}

void BankSlot::refresh() {
if (bank->emptyslot(nslot))
color(46);
else if (bank->isPADsynth_used(nslot))
color(26);
else
color(51);
if (*nselected==nslot)
color(6);
copy_label(bank->getnamenumbered(nslot).c_str());
}

void BankUI::cb_Close_i(Fl_Button*, void*) {
bankuiwindow->hide();
}
void BankUI::cb_Close(Fl_Button* o, void* v) {
((BankUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

void BankUI::cb_writebutton_i(Fl_Light_Button* o, void*) {
if (o->value()>0.5) mode=2;
removeselection();
}
void BankUI::cb_writebutton(Fl_Light_Button* o, void* v) {
((BankUI*)(o->parent()->parent()->user_data()))->cb_writebutton_i(o,v);
}

void BankUI::cb_readbutton_i(Fl_Light_Button* o, void*) {
if (o->value()>0.5) mode=1;
removeselection();
}
void BankUI::cb_readbutton(Fl_Light_Button* o, void* v) {
((BankUI*)(o->parent()->parent()->user_data()))->cb_readbutton_i(o,v);
}

void BankUI::cb_clearbutton_i(Fl_Light_Button* o, void*) {
if (o->value()>0.5) mode=3;
removeselection();
}
void BankUI::cb_clearbutton(Fl_Light_Button* o, void* v) {
((BankUI*)(o->parent()->parent()->user_data()))->cb_clearbutton_i(o,v);
}

void BankUI::cb_swapbutton_i(Fl_Light_Button* o, void*) {
if (o->value()>0.5) mode=4;
removeselection();
}
void BankUI::cb_swapbutton(Fl_Light_Button* o, void* v) {
((BankUI*)(o->parent()->parent()->user_data()))->cb_swapbutton_i(o,v);
}

void BankUI::cb_New_i(Fl_Button*, void*) {
const char *dirname;

dirname=fl_input("New empty Bank:");
if (dirname==NULL) return;


int result=bank->newbank(dirname);

if (result!=0) fl_alert("Error: Could not make a new bank (directory)..");

refreshmainwindow();
}
void BankUI::cb_New(Fl_Button* o, void* v) {
((BankUI*)(o->parent()->user_data()))->cb_New_i(o,v);
}

void BankUI::cb_auto_i(Fl_Check_Button* o, void*) {
config.cfg.BankUIAutoClose=(int) o->value();
}
void BankUI::cb_auto(Fl_Check_Button* o, void* v) {
((BankUI*)(o->parent()->user_data()))->cb_auto_i(o,v);
}

void BankUI::cb_banklist_i(Fl_Choice* o, void*) {
int n=o->value();
std::string dirname=bank->banks[n].dir;
if (dirname.empty()) return;

if (bank->loadbank(dirname)==2)
fl_alert("Error: Could not load the bank from the directory\n%s.",dirname.c_str());
for (int i=0;i<BANK_SIZE;i++) bs[i]->refresh();
refreshmainwindow();
}
void BankUI::cb_banklist(Fl_Choice* o, void* v) {
((BankUI*)(o->parent()->user_data()))->cb_banklist_i(o,v);
}

void BankUI::cb_Refresh_i(Fl_Button*, void*) {
rescan_for_banks();
banklist->value(0);
}
void BankUI::cb_Refresh(Fl_Button* o, void* v) {
((BankUI*)(o->parent()->user_data()))->cb_Refresh_i(o,v);
}

void BankUI::cb_Show_i(Fl_Check_Button* o, void*) {
config.cfg.CheckPADsynth=(int) o->value();
refreshmainwindow();
}
void BankUI::cb_Show(Fl_Check_Button* o, void* v) {
((BankUI*)(o->parent()->user_data()))->cb_Show_i(o,v);
}

Fl_Double_Window* BankUI::make_window() {
{ Fl_Double_Window* o = bankuiwindow = new Fl_Double_Window(785, 575, "Bank");
bankuiwindow->user_data((void*)(this));
{ Fl_Button* o = new Fl_Button(705, 546, 70, 24, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
{ Fl_Group* o = new Fl_Group(5, 34, 772, 491);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Pack* o = new Fl_Pack(10, 39, 150, 481);
o->box(FL_BORDER_FRAME);
o->box(FL_NO_BOX);
for (int i=0;i<32;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};
o->end();
} // Fl_Pack* o
{ Fl_Pack* o = new Fl_Pack(163, 39, 150, 481);
o->box(FL_BORDER_FRAME);
o->box(FL_NO_BOX);
for (int i=32;i<64;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};
o->end();
} // Fl_Pack* o
{ Fl_Pack* o = new Fl_Pack(316, 39, 150, 481);
o->box(FL_BORDER_FRAME);
o->box(FL_NO_BOX);
for (int i=64;i<96;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};
o->end();
} // Fl_Pack* o
{ Fl_Pack* o = new Fl_Pack(469, 39, 150, 481);
o->box(FL_BORDER_FRAME);
o->box(FL_NO_BOX);
for (int i=96;i<128;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};
o->end();
} // Fl_Pack* o
{ Fl_Pack* o = new Fl_Pack(622, 39, 150, 481);
o->box(FL_BORDER_FRAME);
o->box(FL_NO_BOX);
for (int i=128;i<160;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};
o->end();
} // Fl_Pack* o
o->end();
} // Fl_Group* o
{ modeselect = new Fl_Group(5, 528, 425, 42);
modeselect->box(FL_ENGRAVED_BOX);
{ Fl_Light_Button* o = writebutton = new Fl_Light_Button(116, 534, 99, 30, "WRITE");
writebutton->type(102);
writebutton->down_box(FL_THIN_DOWN_BOX);
writebutton->selection_color((Fl_Color)1);
writebutton->labeltype(FL_ENGRAVED_LABEL);
writebutton->labelfont(1);
writebutton->labelsize(13);
writebutton->callback((Fl_Callback*)cb_writebutton);
if (bank->locked()) o->deactivate();
} // Fl_Light_Button* writebutton
{ Fl_Light_Button* o = readbutton = new Fl_Light_Button(11, 534, 99, 30, "READ");
readbutton->type(102);
readbutton->down_box(FL_THIN_DOWN_BOX);
readbutton->selection_color((Fl_Color)101);
readbutton->labeltype(FL_ENGRAVED_LABEL);
readbutton->labelfont(1);
readbutton->labelsize(13);
readbutton->callback((Fl_Callback*)cb_readbutton);
o->value(1);
} // Fl_Light_Button* readbutton
{ Fl_Light_Button* o = clearbutton = new Fl_Light_Button(221, 534, 99, 30, "CLEAR");
clearbutton->type(102);
clearbutton->down_box(FL_THIN_DOWN_BOX);
clearbutton->selection_color(FL_FOREGROUND_COLOR);
clearbutton->labeltype(FL_ENGRAVED_LABEL);
clearbutton->labelfont(1);
clearbutton->labelsize(13);
clearbutton->callback((Fl_Callback*)cb_clearbutton);
if (bank->locked()) o->deactivate();
} // Fl_Light_Button* clearbutton
{ Fl_Light_Button* o = swapbutton = new Fl_Light_Button(325, 534, 99, 30, "SWAP");
swapbutton->type(102);
swapbutton->down_box(FL_THIN_DOWN_BOX);
swapbutton->selection_color((Fl_Color)227);
swapbutton->labeltype(FL_ENGRAVED_LABEL);
swapbutton->labelfont(1);
swapbutton->labelsize(13);
swapbutton->callback((Fl_Callback*)cb_swapbutton);
if (bank->locked()) o->deactivate();
} // Fl_Light_Button* swapbutton
modeselect->end();
} // Fl_Group* modeselect
{ Fl_Button* o = new Fl_Button(685, 5, 93, 25, "New Bank...");
o->labelfont(1);
o->labelsize(11);
o->callback((Fl_Callback*)cb_New);
o->align(Fl_Align(FL_ALIGN_WRAP));
} // Fl_Button* o
{ Fl_Check_Button* o = new Fl_Check_Button(705, 529, 60, 15, "auto close");
o->tooltip("automatically close the bank window if the instrument is loaded");
o->down_box(FL_DOWN_BOX);
o->labelsize(10);
o->callback((Fl_Callback*)cb_auto);
o->value(config.cfg.BankUIAutoClose);
} // Fl_Check_Button* o
{ banklist = new Fl_Choice(5, 8, 220, 20);
banklist->down_box(FL_BORDER_BOX);
banklist->labelfont(1);
banklist->textfont(1);
banklist->textsize(11);
banklist->callback((Fl_Callback*)cb_banklist);
banklist->align(Fl_Align(FL_ALIGN_CENTER));
} // Fl_Choice* banklist
{ Fl_Button* o = new Fl_Button(230, 8, 105, 20, "Refresh bank list");
o->tooltip("Refresh the bank list (rescan)");
o->box(FL_THIN_UP_BOX);
o->color(FL_LIGHT1);
o->labelsize(11);
o->callback((Fl_Callback*)cb_Refresh);
} // Fl_Button* o
{ Fl_Check_Button* o = new Fl_Check_Button(435, 530, 150, 15, "Show PADsynth status");
o->down_box(FL_DOWN_BOX);
o->labelsize(11);
o->callback((Fl_Callback*)cb_Show);
o->value(config.cfg.CheckPADsynth);
} // Fl_Check_Button* o
o->label(bank->bankfiletitle.c_str());
if (bank->bankfiletitle.empty()) o->label ("Choose a bank from the bank list on the left (or go to settings if to configure the bank location) or choose 'New Bank...' to make a new bank.");
bankuiwindow->end();
} // Fl_Double_Window* bankuiwindow
return bankuiwindow;
}

BankUI::BankUI(Master *master_,int *npart_) {
fnc=&BankProcess_::process;
master=master_;
npart=npart_;
bank=&master_->bank;
what=0;
nselected=-1;
make_window();
mode=1;
}

BankUI::~BankUI() {
bankuiwindow->hide();
delete(bankuiwindow);
}

void BankUI::show() {
bankuiwindow->show();
simplesetmode(config.cfg.UserInterfaceMode==2);
}

void BankUI::hide() {
bankuiwindow->hide();
}

void BankUI::init(Fl_Valuator *cbwig_) {
cbwig=cbwig_;
rescan_for_banks();
}

void BankUI::process() {
int slot=this->slot;
if ((what==2)&&(bank->emptyslot(slot)==0)&&(mode!=4)) {//Rename slot
const char *tmp=fl_input("Slot (instrument) name:",bank->getname(slot).c_str());
if (tmp!=NULL) bank->setname(slot,tmp,-1);
bs[slot]->refresh();
};
if ((what==1)&&(mode==1)&&(!bank->emptyslot(slot))){//Reads from slot
pthread_mutex_lock(&master->part[*npart]->load_mutex);
bank->loadfromslot(slot,master->part[*npart]);
pthread_mutex_unlock(&master->part[*npart]->load_mutex);
master->part[*npart]->applyparameters();
snprintf((char *)master->part[*npart]->Pname,PART_MAX_NAME_LEN,"%s",bank->getname(slot).c_str());
cbwig->do_callback();
if (config.cfg.BankUIAutoClose!=0)
bankuiwindow->hide();
};
if ((what==1)&&(mode==2)){//save(write) to slot
if (!bank->emptyslot(slot)){
if (!fl_choice("Overwrite the slot no. %d ?","No","Yes",NULL,slot+1)) goto nooverwriteslot;
};
pthread_mutex_lock(&master->part[*npart]->load_mutex);
bank->savetoslot(slot,master->part[*npart]);
pthread_mutex_unlock(&master->part[*npart]->load_mutex);
bs[slot]->refresh();
mode=1;readbutton->value(1);writebutton->value(0);
nooverwriteslot:;
};
if ((what==1)&&(mode==3)&&(!bank->emptyslot(slot))){//Clears the slot
if (fl_choice("Clear the slot no. %d ?","No","Yes",NULL,slot+1)){
bank->clearslot(slot);
bs[slot]->refresh();
};
};
if (mode==4){//swap
bool done=false;
if ((what==1)&&(nselected>=0)){
bank->swapslot(nselected,slot);
int ns=nselected;
nselected=-1;
bs[slot]->refresh();
bs[ns]->refresh();
done=true;
};
if (((nselected<0)||(what==2))&&(!done)){
int ns=nselected;
nselected=slot;
if (ns>0) bs[ns]->refresh();
bs[slot]->refresh();
};
};
if (mode!=4) refreshmainwindow();
}

void BankUI::refreshmainwindow() {
bankuiwindow->label(bank->bankfiletitle.c_str());
mode=1;readbutton->value(1);writebutton->value(0);clearbutton->value(0);swapbutton->value(0);
nselected=-1;
if (bank->locked()){
writebutton->deactivate();
clearbutton->deactivate();
swapbutton->deactivate();
} else {
writebutton->activate();
clearbutton->activate();
swapbutton->activate();
};
for (int i=0;i<BANK_SIZE;i++)
bs[i]->refresh();
}

void BankUI::removeselection() {
if (nselected>=0) {
int ns=nselected;
nselected=-1;
bs[ns]->refresh();
};
}

void BankUI::rescan_for_banks() {
banklist->clear();
bank->rescanforbanks();
for (unsigned int i=0;i<bank->banks.size();i++) {
banklist->add(bank->banks[i].name.c_str());
}
if (banklist->size() == 0)
banklist->add(" ");
}

void BankUI::simplesetmode(bool beginnerui) {
readbutton->value(1);
mode=1;
removeselection();
if (beginnerui) modeselect->hide();
else modeselect->show();
}

+ 0
- 103
source/modules/carla_native/zynaddsubfx/UI/BankUI.h View File

@@ -1,103 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef BankUI_h
#define BankUI_h
#include <FL/Fl.H>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <FL/Fl_Button.H>
#include <FL/Fl_File_Chooser.H>
#include "../Misc/Master.h"
#include "../Misc/Part.h"
#include "../Misc/Bank.h"
#include "../Misc/Config.h"
#include "../Misc/Util.h"

class BankProcess_ {
public:
virtual void process();
Bank *bank;
};

class BankSlot : public Fl_Button,BankProcess_ {
public:
BankSlot(int x,int y, int w, int h, const char *label=0);
int handle(int event);
void init(int nslot_, int *what_, int *whatslot_,void (BankProcess_:: *fnc_)(void),BankProcess_ *bp_,Bank *bank_,int *nselected_);
void refresh();
private:
int *what,*whatslot,nslot,highlight, *nselected;
void (BankProcess_:: *fnc)(void);
BankProcess_ *bp;
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Pack.H>
#include <FL/Fl_Light_Button.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Choice.H>

class BankUI : public BankProcess_ {
public:
Fl_Double_Window* make_window();
Fl_Double_Window *bankuiwindow;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
public:
Fl_Group *modeselect;
Fl_Light_Button *writebutton;
private:
void cb_writebutton_i(Fl_Light_Button*, void*);
static void cb_writebutton(Fl_Light_Button*, void*);
public:
Fl_Light_Button *readbutton;
private:
void cb_readbutton_i(Fl_Light_Button*, void*);
static void cb_readbutton(Fl_Light_Button*, void*);
public:
Fl_Light_Button *clearbutton;
private:
void cb_clearbutton_i(Fl_Light_Button*, void*);
static void cb_clearbutton(Fl_Light_Button*, void*);
public:
Fl_Light_Button *swapbutton;
private:
void cb_swapbutton_i(Fl_Light_Button*, void*);
static void cb_swapbutton(Fl_Light_Button*, void*);
void cb_New_i(Fl_Button*, void*);
static void cb_New(Fl_Button*, void*);
void cb_auto_i(Fl_Check_Button*, void*);
static void cb_auto(Fl_Check_Button*, void*);
public:
Fl_Choice *banklist;
private:
void cb_banklist_i(Fl_Choice*, void*);
static void cb_banklist(Fl_Choice*, void*);
void cb_Refresh_i(Fl_Button*, void*);
static void cb_Refresh(Fl_Button*, void*);
void cb_Show_i(Fl_Check_Button*, void*);
static void cb_Show(Fl_Check_Button*, void*);
public:
BankUI(Master *master_,int *npart_);
virtual ~BankUI();
void show();
void hide();
void init(Fl_Valuator *cbwig_);
void process();
void refreshmainwindow();
void removeselection();
void rescan_for_banks();
void simplesetmode(bool beginnerui);
private:
BankSlot *bs[BANK_SIZE];
int slot,what; //"what"=what button is pressed
int mode,*npart,nselected;
Master *master;
void (BankProcess_::* fnc)(void);
public:
Fl_Valuator *cbwig;
};
#endif

+ 0
- 573
source/modules/carla_native/zynaddsubfx/UI/ConfigUI.cpp View File

@@ -1,573 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "zynaddsubfx/UI/ConfigUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later

void ConfigUI::cb_configwindow_i(Fl_Double_Window* o, void*) {
writebankcfg();
o->hide();
}
void ConfigUI::cb_configwindow(Fl_Double_Window* o, void* v) {
((ConfigUI*)(o->user_data()))->cb_configwindow_i(o,v);
}

void ConfigUI::cb__i(Fl_Choice* o, void*) {
if ((int)o->value()==0) samplerateinput->activate();
else samplerateinput->deactivate();

int samplerates[8]={44100,16000,22050,32000,44100,48000,88200,96000};
config.cfg.SampleRate=samplerates[(int)o->value()];

setsamplerateinput();
}
void ConfigUI::cb_(Fl_Choice* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb__i(o,v);
}

Fl_Menu_Item ConfigUI::menu_[] = {
{"Custom", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"16000Hz", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"22050Hz", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"32000Hz", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"44100Hz", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"48000Hz", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"88200Hz", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"96000Hz", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{0,0,0,0,0,0,0,0,0}
};

void ConfigUI::cb_samplerateinput_i(Fl_Int_Input* o, void*) {
char *tmp;
config.cfg.SampleRate=strtoul(o->value(),&tmp,10);
}
void ConfigUI::cb_samplerateinput(Fl_Int_Input* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_samplerateinput_i(o,v);
}

void ConfigUI::cb_Buffer_i(Fl_Int_Input* o, void*) {
char *tmp;
config.cfg.SoundBufferSize=strtoul(o->value(),&tmp,10);
}
void ConfigUI::cb_Buffer(Fl_Int_Input* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_Buffer_i(o,v);
}

void ConfigUI::cb_Swap_i(Fl_Light_Button* o, void*) {
config.cfg.SwapStereo=(int) o->value();
}
void ConfigUI::cb_Swap(Fl_Light_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_Swap_i(o,v);
}

void ConfigUI::cb_OscilSize_i(Fl_Choice* o, void*) {
config.cfg.OscilSize=128<<o->value();
}
void ConfigUI::cb_OscilSize(Fl_Choice* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_OscilSize_i(o,v);
}

Fl_Menu_Item ConfigUI::menu_OscilSize[] = {
{"128", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"256", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"512", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"1024", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"2048", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"4096", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"8192", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{"16384", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 14, 0},
{0,0,0,0,0,0,0,0,0}
};

void ConfigUI::cb_Dump_i(Fl_File_Input* o, void*) {
config.cfg.DumpFile = o->value();
}
void ConfigUI::cb_Dump(Fl_File_Input* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Dump_i(o,v);
}

void ConfigUI::cb_Dump1_i(Fl_Check_Button* o, void*) {
config.cfg.DumpNotesToFile=(int) o->value();
dump.startnow();//this has effect only if this option was disabled;
}
void ConfigUI::cb_Dump1(Fl_Check_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Dump1_i(o,v);
}

void ConfigUI::cb_Append_i(Fl_Check_Button* o, void*) {
config.cfg.DumpAppend=(int) o->value();
}
void ConfigUI::cb_Append(Fl_Check_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Append_i(o,v);
}

void ConfigUI::cb_OSS_i(Fl_File_Input* o, void*) {
snprintf(config.cfg.LinuxOSSSeqInDev,config.maxstringsize,"%s",o->value());
}
void ConfigUI::cb_OSS(Fl_File_Input* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->parent()->parent()->user_data()))->cb_OSS_i(o,v);
}

void ConfigUI::cb_OSS1_i(Fl_File_Input* o, void*) {
snprintf(config.cfg.LinuxOSSWaveOutDev,config.maxstringsize,"%s",o->value());
}
void ConfigUI::cb_OSS1(Fl_File_Input* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->parent()->parent()->user_data()))->cb_OSS1_i(o,v);
}

void ConfigUI::cb_Midi_i(Fl_Counter* o, void*) {
config.cfg.WindowsMidiInId=(int) o->value();
midiinputnamebox->label(config.winmididevices[config.cfg.WindowsMidiInId].name);
}
void ConfigUI::cb_Midi(Fl_Counter* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->parent()->parent()->user_data()))->cb_Midi_i(o,v);
}

void ConfigUI::cb_XML_i(Fl_Counter* o, void*) {
config.cfg.GzipCompression=(int) o->value();
}
void ConfigUI::cb_XML(Fl_Counter* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_XML_i(o,v);
}

void ConfigUI::cb_PADsynth_i(Fl_Choice* o, void*) {
config.cfg.Interpolation=(int) o->value();
}
void ConfigUI::cb_PADsynth(Fl_Choice* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_PADsynth_i(o,v);
}

Fl_Menu_Item ConfigUI::menu_PADsynth[] = {
{"Linear(fast)", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"Cubic(slow)", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{0,0,0,0,0,0,0,0,0}
};

void ConfigUI::cb_Virtual_i(Fl_Choice* o, void*) {
config.cfg.VirKeybLayout=(int) o->value();;
}
void ConfigUI::cb_Virtual(Fl_Choice* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_Virtual_i(o,v);
}

Fl_Menu_Item ConfigUI::menu_Virtual[] = {
{" ", 0, 0, 0, 1, FL_NORMAL_LABEL, 1, 11, 0},
{"QWERTY", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"Dvorak", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"QWERTZ", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"AZERTY", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{0,0,0,0,0,0,0,0,0}
};

void ConfigUI::cb_Ignore_i(Fl_Check_Button* o, void*) {
config.cfg.IgnoreProgramChange=(int) o->value();
}
void ConfigUI::cb_Ignore(Fl_Check_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_Ignore_i(o,v);
}

void ConfigUI::cb_rootsbrowse_i(Fl_Browser* o, void*) {
activatebutton_rootdir(o->value()!=0);
}
void ConfigUI::cb_rootsbrowse(Fl_Browser* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_rootsbrowse_i(o,v);
}

void ConfigUI::cb_Add_i(Fl_Button*, void*) {
const char *dirname;
dirname=fl_dir_chooser("Add a root directory for banks:",NULL,0);
if (dirname==NULL) return;

rootsbrowse->add(dirname);
}
void ConfigUI::cb_Add(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_Add_i(o,v);
}

void ConfigUI::cb_removerootdirbutton_i(Fl_Button*, void*) {
if (rootsbrowse->value()!=0) {
rootsbrowse->remove(rootsbrowse->value());
};
activatebutton_rootdir(false);
}
void ConfigUI::cb_removerootdirbutton(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_removerootdirbutton_i(o,v);
}

void ConfigUI::cb_makedefaultrootdirbutton_i(Fl_Button*, void*) {
int n=rootsbrowse->value();

if (n!=0) {
rootsbrowse->move(1,n);
rootsbrowse->value(1);
rootsbrowse->redraw();
};
activatebutton_rootdir(true);
}
void ConfigUI::cb_makedefaultrootdirbutton(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_makedefaultrootdirbutton_i(o,v);
}

void ConfigUI::cb_presetbrowse_i(Fl_Browser* o, void*) {
activatebutton_presetdir(o->value()!=0);
}
void ConfigUI::cb_presetbrowse(Fl_Browser* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_presetbrowse_i(o,v);
}

void ConfigUI::cb_Add1_i(Fl_Button*, void*) {
const char *dirname;
dirname=fl_dir_chooser("Add a preset directory :",NULL,0);
if (dirname==NULL) return;

presetbrowse->add(dirname);
}
void ConfigUI::cb_Add1(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_Add1_i(o,v);
}

void ConfigUI::cb_removepresetbutton_i(Fl_Button*, void*) {
if (presetbrowse->value()!=0) {
presetbrowse->remove(presetbrowse->value());
};
activatebutton_presetdir(false);
}
void ConfigUI::cb_removepresetbutton(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_removepresetbutton_i(o,v);
}

void ConfigUI::cb_makedefaultpresetbutton_i(Fl_Button*, void*) {
int n=presetbrowse->value();

if (n!=0) {
presetbrowse->move(1,n);
presetbrowse->value(1);
presetbrowse->redraw();
};
activatebutton_presetdir(true);
}
void ConfigUI::cb_makedefaultpresetbutton(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->parent()->parent()->user_data()))->cb_makedefaultpresetbutton_i(o,v);
}

void ConfigUI::cb_Close_i(Fl_Button*, void*) {
configwindow->hide();
writebankcfg();
writepresetcfg();
}
void ConfigUI::cb_Close(Fl_Button* o, void* v) {
((ConfigUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

Fl_Double_Window* ConfigUI::make_window() {
{ configwindow = new Fl_Double_Window(510, 370, "ZynAddSubFX Settings");
configwindow->callback((Fl_Callback*)cb_configwindow, (void*)(this));
{ Fl_Tabs* o = new Fl_Tabs(5, 5, 500, 330);
{ Fl_Group* o = new Fl_Group(5, 25, 500, 310, "Main settings");
{ Fl_Group* o = new Fl_Group(15, 45, 165, 30, "Sample Rate");
o->box(FL_ENGRAVED_FRAME);
{ Fl_Choice* o = new Fl_Choice(20, 50, 85, 20);
o->down_box(FL_BORDER_BOX);
o->textsize(10);
o->callback((Fl_Callback*)cb_);
o->menu(menu_);
o->value(getsamplerateorder());
} // Fl_Choice* o
{ Fl_Int_Input* o = samplerateinput = new Fl_Int_Input(115, 50, 60, 20);
samplerateinput->type(2);
samplerateinput->textfont(1);
samplerateinput->callback((Fl_Callback*)cb_samplerateinput);
setsamplerateinput();
if (getsamplerateorder()!=0) o->deactivate();
} // Fl_Int_Input* samplerateinput
o->end();
} // Fl_Group* o
{ Fl_Int_Input* o = new Fl_Int_Input(190, 45, 60, 20, "Buffer Size");
o->tooltip("Internal Sound Buffer Size (samples)");
o->type(2);
o->labelsize(11);
o->textfont(1);
o->callback((Fl_Callback*)cb_Buffer);
o->align(Fl_Align(129));
char *tmpbuf=new char[100];o->cut(0,o->maximum_size());
snprintf(tmpbuf,100,"%d",config.cfg.SoundBufferSize);o->insert(tmpbuf);
delete []tmpbuf;
} // Fl_Int_Input* o
{ Fl_Light_Button* o = new Fl_Light_Button(20, 80, 85, 20, "Swap Stereo ");
o->box(FL_THIN_UP_BOX);
o->labelsize(10);
o->callback((Fl_Callback*)cb_Swap);
o->value(config.cfg.SwapStereo);
} // Fl_Light_Button* o
{ Fl_Choice* o = new Fl_Choice(175, 80, 75, 20, "OscilSize");
o->tooltip("ADSynth Oscillator Size (samples)");
o->down_box(FL_BORDER_BOX);
o->labelfont(1);
o->labelsize(11);
o->textsize(10);
o->callback((Fl_Callback*)cb_OscilSize);
o->menu(menu_OscilSize);
o->value( (int) (log(config.cfg.OscilSize/128.0-1.0)/log(2)) +1);
} // Fl_Choice* o
{ Fl_Box* o = new Fl_Box(10, 300, 235, 30, "Most settings has effect only after ZynAddSubFX is restarted.");
o->labelfont(1);
o->labelsize(11);
o->align(Fl_Align(FL_ALIGN_WRAP));
} // Fl_Box* o
{ Fl_Box* o = new Fl_Box(10, 280, 240, 15, "Read the Readme.txt for other settings");
o->labelfont(1);
o->labelsize(11);
o->align(Fl_Align(FL_ALIGN_WRAP));
} // Fl_Box* o
{ Fl_Group* o = new Fl_Group(15, 125, 230, 85);
o->box(FL_ENGRAVED_BOX);
{ Fl_File_Input* o = new Fl_File_Input(20, 170, 220, 35, "Dump File");
o->callback((Fl_Callback*)cb_Dump);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->insert(config.cfg.DumpFile.c_str());
} // Fl_File_Input* o
{ Fl_Check_Button* o = new Fl_Check_Button(20, 130, 100, 20, "Dump notes");
o->down_box(FL_DOWN_BOX);
o->callback((Fl_Callback*)cb_Dump1);
o->value(config.cfg.DumpNotesToFile);
} // Fl_Check_Button* o
{ Fl_Check_Button* o = new Fl_Check_Button(160, 130, 80, 20, "Append");
o->down_box(FL_DOWN_BOX);
o->callback((Fl_Callback*)cb_Append);
o->value(config.cfg.DumpAppend);
} // Fl_Check_Button* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(255, 45, 245, 260);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Box* o = new Fl_Box(260, 50, 235, 45, "Note: Not all the following settings are used (this depends on the operating \
system, etc..)");
o->labelfont(1);
o->labelsize(11);
o->align(Fl_Align(FL_ALIGN_WRAP));
} // Fl_Box* o
{ Fl_Group* o = new Fl_Group(260, 110, 235, 115, "Linux");
o->box(FL_ENGRAVED_BOX);
o->labelfont(1);
o->labelsize(13);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
{ Fl_File_Input* o = new Fl_File_Input(265, 180, 225, 35, "OSS Sequencer Device (/dev/...)");
o->callback((Fl_Callback*)cb_OSS);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->insert(config.cfg.LinuxOSSSeqInDev);
} // Fl_File_Input* o
{ Fl_File_Input* o = new Fl_File_Input(265, 130, 225, 35, "OSS Wave Out Device (/dev/...)");
o->callback((Fl_Callback*)cb_OSS1);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->insert(config.cfg.LinuxOSSWaveOutDev);
} // Fl_File_Input* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(260, 250, 235, 50, "Windows");
o->box(FL_ENGRAVED_BOX);
o->labelfont(1);
o->labelsize(13);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
{ Fl_Counter* o = new Fl_Counter(270, 270, 65, 20, "Midi In Dev");
o->type(1);
o->labelsize(11);
o->minimum(0);
o->maximum(100);
o->step(1);
o->callback((Fl_Callback*)cb_Midi);
o->align(Fl_Align(FL_ALIGN_TOP));
o->maximum(config.winmidimax-1);
o->value(config.cfg.WindowsMidiInId);
} // Fl_Counter* o
{ Fl_Box* o = midiinputnamebox = new Fl_Box(340, 260, 150, 35, "Midi input device name");
midiinputnamebox->labelfont(1);
midiinputnamebox->labelsize(11);
midiinputnamebox->align(Fl_Align(196|FL_ALIGN_INSIDE));
o->label(config.winmididevices[config.cfg.WindowsMidiInId].name);
} // Fl_Box* midiinputnamebox
o->end();
} // Fl_Group* o
o->end();
} // Fl_Group* o
{ Fl_Counter* o = new Fl_Counter(20, 215, 65, 15, "XML compression level");
o->tooltip("gzip compression level (0 - uncompressed)");
o->type(1);
o->labelsize(11);
o->minimum(0);
o->maximum(9);
o->step(1);
o->callback((Fl_Callback*)cb_XML);
o->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(config.cfg.GzipCompression);
} // Fl_Counter* o
{ Fl_Choice* o = new Fl_Choice(175, 105, 75, 15, "PADsynth Interpolation");
o->down_box(FL_BORDER_BOX);
o->labelsize(10);
o->textsize(11);
o->callback((Fl_Callback*)cb_PADsynth);
o->menu(menu_PADsynth);
o->value(config.cfg.Interpolation);
} // Fl_Choice* o
{ Fl_Choice* o = new Fl_Choice(155, 235, 85, 20, "Virtual Keyboard Layout");
o->down_box(FL_BORDER_BOX);
o->labelsize(12);
o->textfont(1);
o->textsize(11);
o->callback((Fl_Callback*)cb_Virtual);
o->menu(menu_Virtual);
o->value(config.cfg.VirKeybLayout);
} // Fl_Choice* o
{ Fl_Check_Button* o = new Fl_Check_Button(10, 255, 230, 20, "Ignore MIDI Program Change");
o->down_box(FL_DOWN_BOX);
o->callback((Fl_Callback*)cb_Ignore);
o->value(config.cfg.IgnoreProgramChange);
} // Fl_Check_Button* o
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(5, 25, 500, 285, "Bank root dirs");
o->hide();
{ rootsbrowse = new Fl_Browser(15, 35, 485, 220);
rootsbrowse->type(2);
rootsbrowse->callback((Fl_Callback*)cb_rootsbrowse);
} // Fl_Browser* rootsbrowse
{ Fl_Button* o = new Fl_Button(15, 265, 80, 35, "Add root directory...");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Add);
o->align(Fl_Align(FL_ALIGN_WRAP));
} // Fl_Button* o
{ Fl_Button* o = removerootdirbutton = new Fl_Button(105, 265, 80, 35, "Remove root dir...");
removerootdirbutton->box(FL_THIN_UP_BOX);
removerootdirbutton->callback((Fl_Callback*)cb_removerootdirbutton);
removerootdirbutton->align(Fl_Align(FL_ALIGN_WRAP));
o->deactivate();
} // Fl_Button* removerootdirbutton
{ Fl_Button* o = makedefaultrootdirbutton = new Fl_Button(190, 265, 80, 35, "Make default");
makedefaultrootdirbutton->box(FL_THIN_UP_BOX);
makedefaultrootdirbutton->callback((Fl_Callback*)cb_makedefaultrootdirbutton);
makedefaultrootdirbutton->align(Fl_Align(FL_ALIGN_WRAP));
o->deactivate();
} // Fl_Button* makedefaultrootdirbutton
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(5, 25, 500, 285, "Presets dirs");
o->hide();
{ presetbrowse = new Fl_Browser(15, 35, 485, 220);
presetbrowse->type(2);
presetbrowse->callback((Fl_Callback*)cb_presetbrowse);
} // Fl_Browser* presetbrowse
{ Fl_Button* o = new Fl_Button(15, 265, 80, 35, "Add preset directory...");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Add1);
o->align(Fl_Align(FL_ALIGN_WRAP));
} // Fl_Button* o
{ Fl_Button* o = removepresetbutton = new Fl_Button(105, 265, 80, 35, "Remove preset dir...");
removepresetbutton->box(FL_THIN_UP_BOX);
removepresetbutton->callback((Fl_Callback*)cb_removepresetbutton);
removepresetbutton->align(Fl_Align(FL_ALIGN_WRAP));
o->deactivate();
} // Fl_Button* removepresetbutton
{ Fl_Button* o = makedefaultpresetbutton = new Fl_Button(190, 265, 80, 35, "Make default");
makedefaultpresetbutton->box(FL_THIN_UP_BOX);
makedefaultpresetbutton->callback((Fl_Callback*)cb_makedefaultpresetbutton);
makedefaultpresetbutton->align(Fl_Align(FL_ALIGN_WRAP));
o->deactivate();
} // Fl_Button* makedefaultpresetbutton
o->end();
} // Fl_Group* o
o->end();
} // Fl_Tabs* o
{ Fl_Button* o = new Fl_Button(200, 345, 105, 20, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
configwindow->end();
} // Fl_Double_Window* configwindow
return configwindow;
}

ConfigUI::ConfigUI() {
make_window();
readbankcfg();
readpresetcfg();
}

void ConfigUI::activatebutton_rootdir(bool active) {
if (active) {
removerootdirbutton->activate();
makedefaultrootdirbutton->activate();
}else{
removerootdirbutton->deactivate();
makedefaultrootdirbutton->deactivate();
};
}

void ConfigUI::activatebutton_presetdir(bool active) {
if (active) {
removepresetbutton->activate();
makedefaultpresetbutton->activate();
}else{
removepresetbutton->deactivate();
makedefaultpresetbutton->deactivate();
};
}

void ConfigUI::readbankcfg() {
rootsbrowse->clear();
for (int i=0;i<MAX_BANK_ROOT_DIRS;i++){
if (!config.cfg.bankRootDirList[i].empty())
rootsbrowse->add(config.cfg.bankRootDirList[i].c_str());
};
}

void ConfigUI::writebankcfg() {
config.clearbankrootdirlist();
for (int n=0;n<rootsbrowse->size();n++){
config.cfg.bankRootDirList[n] = rootsbrowse->text(n+1);
};
}

void ConfigUI::readpresetcfg() {
presetbrowse->clear();
for(int i=0;i<MAX_BANK_ROOT_DIRS;i++){
if(!config.cfg.presetsDirList[i].empty())
presetbrowse->add(config.cfg.presetsDirList[i].c_str());
};
}

void ConfigUI::writepresetcfg() {
config.clearpresetsdirlist();
for (int n=0;n<presetbrowse->size();n++)
config.cfg.presetsDirList[n] = presetbrowse->text(n+1);
}

int ConfigUI::getsamplerateorder() {
int smpr=config.cfg.SampleRate;
int order=0;
switch(smpr){
case 16000:order=1;break;
case 22050:order=2;break;
case 32000:order=3;break;
case 44100:order=4;break;
case 48000:order=5;break;
case 88200:order=6;break;
case 96000:order=7;break;
default:order=0;break;
};
return(order);
}

void ConfigUI::setsamplerateinput() {
char *tmpbuf=new char[100];
samplerateinput->cut(0,samplerateinput->maximum_size());
snprintf(tmpbuf,100,"%d",config.cfg.SampleRate);
samplerateinput->insert(tmpbuf);
delete []tmpbuf;
}

void ConfigUI::show() {
configwindow->show();
}

+ 0
- 122
source/modules/carla_native/zynaddsubfx/UI/ConfigUI.h View File

@@ -1,122 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef ConfigUI_h
#define ConfigUI_h
#include <FL/Fl.H>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <FL/Fl_File_Chooser.H>
#include "../globals.h"
#include "../Misc/Util.h"
#include "../Misc/Dump.h"
extern Dump dump;
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Tabs.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Int_Input.H>
#include <FL/Fl_Light_Button.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_File_Input.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Browser.H>
#include <FL/Fl_Button.H>

class ConfigUI {
public:
Fl_Double_Window* make_window();
Fl_Double_Window *configwindow;
private:
void cb_configwindow_i(Fl_Double_Window*, void*);
static void cb_configwindow(Fl_Double_Window*, void*);
void cb__i(Fl_Choice*, void*);
static void cb_(Fl_Choice*, void*);
static Fl_Menu_Item menu_[];
public:
Fl_Int_Input *samplerateinput;
private:
void cb_samplerateinput_i(Fl_Int_Input*, void*);
static void cb_samplerateinput(Fl_Int_Input*, void*);
void cb_Buffer_i(Fl_Int_Input*, void*);
static void cb_Buffer(Fl_Int_Input*, void*);
void cb_Swap_i(Fl_Light_Button*, void*);
static void cb_Swap(Fl_Light_Button*, void*);
void cb_OscilSize_i(Fl_Choice*, void*);
static void cb_OscilSize(Fl_Choice*, void*);
static Fl_Menu_Item menu_OscilSize[];
void cb_Dump_i(Fl_File_Input*, void*);
static void cb_Dump(Fl_File_Input*, void*);
void cb_Dump1_i(Fl_Check_Button*, void*);
static void cb_Dump1(Fl_Check_Button*, void*);
void cb_Append_i(Fl_Check_Button*, void*);
static void cb_Append(Fl_Check_Button*, void*);
void cb_OSS_i(Fl_File_Input*, void*);
static void cb_OSS(Fl_File_Input*, void*);
void cb_OSS1_i(Fl_File_Input*, void*);
static void cb_OSS1(Fl_File_Input*, void*);
void cb_Midi_i(Fl_Counter*, void*);
static void cb_Midi(Fl_Counter*, void*);
public:
Fl_Box *midiinputnamebox;
private:
void cb_XML_i(Fl_Counter*, void*);
static void cb_XML(Fl_Counter*, void*);
void cb_PADsynth_i(Fl_Choice*, void*);
static void cb_PADsynth(Fl_Choice*, void*);
static Fl_Menu_Item menu_PADsynth[];
void cb_Virtual_i(Fl_Choice*, void*);
static void cb_Virtual(Fl_Choice*, void*);
static Fl_Menu_Item menu_Virtual[];
void cb_Ignore_i(Fl_Check_Button*, void*);
static void cb_Ignore(Fl_Check_Button*, void*);
public:
Fl_Browser *rootsbrowse;
private:
void cb_rootsbrowse_i(Fl_Browser*, void*);
static void cb_rootsbrowse(Fl_Browser*, void*);
void cb_Add_i(Fl_Button*, void*);
static void cb_Add(Fl_Button*, void*);
public:
Fl_Button *removerootdirbutton;
private:
void cb_removerootdirbutton_i(Fl_Button*, void*);
static void cb_removerootdirbutton(Fl_Button*, void*);
public:
Fl_Button *makedefaultrootdirbutton;
private:
void cb_makedefaultrootdirbutton_i(Fl_Button*, void*);
static void cb_makedefaultrootdirbutton(Fl_Button*, void*);
public:
Fl_Browser *presetbrowse;
private:
void cb_presetbrowse_i(Fl_Browser*, void*);
static void cb_presetbrowse(Fl_Browser*, void*);
void cb_Add1_i(Fl_Button*, void*);
static void cb_Add1(Fl_Button*, void*);
public:
Fl_Button *removepresetbutton;
private:
void cb_removepresetbutton_i(Fl_Button*, void*);
static void cb_removepresetbutton(Fl_Button*, void*);
public:
Fl_Button *makedefaultpresetbutton;
private:
void cb_makedefaultpresetbutton_i(Fl_Button*, void*);
static void cb_makedefaultpresetbutton(Fl_Button*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
public:
ConfigUI();
void activatebutton_rootdir(bool active);
void activatebutton_presetdir(bool active);
void readbankcfg();
void writebankcfg();
void readpresetcfg();
void writepresetcfg();
int getsamplerateorder();
void setsamplerateinput();
void show();
};
#endif

+ 0
- 3993
source/modules/carla_native/zynaddsubfx/UI/EffUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 820
source/modules/carla_native/zynaddsubfx/UI/EffUI.h View File

@@ -1,820 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef EffUI_h
#define EffUI_h
#include <FL/Fl.H>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "../globals.h"
#include "WidgetPDial.h"
#include "EnvelopeUI.h"
#include "FilterUI.h"
#include "../Misc/Util.h"
#include "../Effects/EffectMgr.h"
#include "PresetsUI.h"
#include "common.H"

class EQGraph : public Fl_Box {
public:
EQGraph(int x,int y, int w, int h, const char *label=0);
void init(EffectMgr *eff_);
void draw_freq_line(float freq,int type);
void draw();
double getresponse(int maxy,float freq);
float getfreqx(float x);
float getfreqpos(float freq);
private:
int oldx,oldy;
public:
float khzval;
private:
EffectMgr *eff;
int maxdB;
};
#include <FL/Fl_Choice.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Double_Window.H>

class EffUI : public Fl_Group,public PresetsUI_ {
public:
EffUI(int x,int y, int w, int h, const char *label=0);
~EffUI();
Fl_Group* make_null_window();
Fl_Group *effnullwindow;
Fl_Group* make_reverb_window();
Fl_Group *effreverbwindow;
Fl_Choice *revp;
private:
void cb_revp_i(Fl_Choice*, void*);
static void cb_revp(Fl_Choice*, void*);
static Fl_Menu_Item menu_revp[];
public:
Fl_Choice *revp10;
private:
void cb_revp10_i(Fl_Choice*, void*);
static void cb_revp10(Fl_Choice*, void*);
static Fl_Menu_Item menu_revp10[];
public:
WidgetPDial *revp0;
private:
void cb_revp0_i(WidgetPDial*, void*);
static void cb_revp0(WidgetPDial*, void*);
public:
WidgetPDial *revp1;
private:
void cb_revp1_i(WidgetPDial*, void*);
static void cb_revp1(WidgetPDial*, void*);
public:
WidgetPDial *revp2;
private:
void cb_revp2_i(WidgetPDial*, void*);
static void cb_revp2(WidgetPDial*, void*);
public:
WidgetPDial *revp3;
private:
void cb_revp3_i(WidgetPDial*, void*);
static void cb_revp3(WidgetPDial*, void*);
public:
WidgetPDial *revp4;
private:
void cb_revp4_i(WidgetPDial*, void*);
static void cb_revp4(WidgetPDial*, void*);
public:
WidgetPDial *revp12;
private:
void cb_revp12_i(WidgetPDial*, void*);
static void cb_revp12(WidgetPDial*, void*);
public:
WidgetPDial *revp6;
private:
void cb_revp6_i(WidgetPDial*, void*);
static void cb_revp6(WidgetPDial*, void*);
public:
WidgetPDial *revp7;
private:
void cb_revp7_i(WidgetPDial*, void*);
static void cb_revp7(WidgetPDial*, void*);
public:
WidgetPDial *revp8;
private:
void cb_revp8_i(WidgetPDial*, void*);
static void cb_revp8(WidgetPDial*, void*);
public:
WidgetPDial *revp9;
private:
void cb_revp9_i(WidgetPDial*, void*);
static void cb_revp9(WidgetPDial*, void*);
public:
WidgetPDial *revp11;
private:
void cb_revp11_i(WidgetPDial*, void*);
static void cb_revp11(WidgetPDial*, void*);
public:
Fl_Group* make_echo_window();
Fl_Group *effechowindow;
Fl_Choice *echop;
private:
void cb_echop_i(Fl_Choice*, void*);
static void cb_echop(Fl_Choice*, void*);
static Fl_Menu_Item menu_echop[];
public:
WidgetPDial *echop0;
private:
void cb_echop0_i(WidgetPDial*, void*);
static void cb_echop0(WidgetPDial*, void*);
public:
WidgetPDial *echop1;
private:
void cb_echop1_i(WidgetPDial*, void*);
static void cb_echop1(WidgetPDial*, void*);
public:
WidgetPDial *echop2;
private:
void cb_echop2_i(WidgetPDial*, void*);
static void cb_echop2(WidgetPDial*, void*);
public:
WidgetPDial *echop3;
private:
void cb_echop3_i(WidgetPDial*, void*);
static void cb_echop3(WidgetPDial*, void*);
public:
WidgetPDial *echop4;
private:
void cb_echop4_i(WidgetPDial*, void*);
static void cb_echop4(WidgetPDial*, void*);
public:
WidgetPDial *echop5;
private:
void cb_echop5_i(WidgetPDial*, void*);
static void cb_echop5(WidgetPDial*, void*);
public:
WidgetPDial *echop6;
private:
void cb_echop6_i(WidgetPDial*, void*);
static void cb_echop6(WidgetPDial*, void*);
public:
Fl_Group* make_chorus_window();
Fl_Group *effchoruswindow;
Fl_Choice *chorusp;
private:
void cb_chorusp_i(Fl_Choice*, void*);
static void cb_chorusp(Fl_Choice*, void*);
static Fl_Menu_Item menu_chorusp[];
public:
WidgetPDial *chorusp0;
private:
void cb_chorusp0_i(WidgetPDial*, void*);
static void cb_chorusp0(WidgetPDial*, void*);
public:
WidgetPDial *chorusp1;
private:
void cb_chorusp1_i(WidgetPDial*, void*);
static void cb_chorusp1(WidgetPDial*, void*);
public:
WidgetPDial *chorusp2;
private:
void cb_chorusp2_i(WidgetPDial*, void*);
static void cb_chorusp2(WidgetPDial*, void*);
public:
WidgetPDial *chorusp3;
private:
void cb_chorusp3_i(WidgetPDial*, void*);
static void cb_chorusp3(WidgetPDial*, void*);
public:
WidgetPDial *chorusp5;
private:
void cb_chorusp5_i(WidgetPDial*, void*);
static void cb_chorusp5(WidgetPDial*, void*);
public:
WidgetPDial *chorusp6;
private:
void cb_chorusp6_i(WidgetPDial*, void*);
static void cb_chorusp6(WidgetPDial*, void*);
public:
WidgetPDial *chorusp7;
private:
void cb_chorusp7_i(WidgetPDial*, void*);
static void cb_chorusp7(WidgetPDial*, void*);
public:
WidgetPDial *chorusp8;
private:
void cb_chorusp8_i(WidgetPDial*, void*);
static void cb_chorusp8(WidgetPDial*, void*);
public:
WidgetPDial *chorusp9;
private:
void cb_chorusp9_i(WidgetPDial*, void*);
static void cb_chorusp9(WidgetPDial*, void*);
void cb_Flange_i(Fl_Check_Button*, void*);
static void cb_Flange(Fl_Check_Button*, void*);
public:
Fl_Check_Button *chorusp11;
private:
void cb_chorusp11_i(Fl_Check_Button*, void*);
static void cb_chorusp11(Fl_Check_Button*, void*);
public:
Fl_Choice *chorusp4;
private:
void cb_chorusp4_i(Fl_Choice*, void*);
static void cb_chorusp4(Fl_Choice*, void*);
static Fl_Menu_Item menu_chorusp4[];
public:
Fl_Group* make_phaser_window();
Fl_Group *effphaserwindow;
Fl_Choice *phaserp;
private:
void cb_phaserp_i(Fl_Choice*, void*);
static void cb_phaserp(Fl_Choice*, void*);
static Fl_Menu_Item menu_phaserp[];
public:
WidgetPDial *phaserp0;
private:
void cb_phaserp0_i(WidgetPDial*, void*);
static void cb_phaserp0(WidgetPDial*, void*);
public:
WidgetPDial *phaserp1;
private:
void cb_phaserp1_i(WidgetPDial*, void*);
static void cb_phaserp1(WidgetPDial*, void*);
public:
WidgetPDial *phaserp2;
private:
void cb_phaserp2_i(WidgetPDial*, void*);
static void cb_phaserp2(WidgetPDial*, void*);
public:
WidgetPDial *phaserp3;
private:
void cb_phaserp3_i(WidgetPDial*, void*);
static void cb_phaserp3(WidgetPDial*, void*);
public:
Fl_Choice *phaserp4;
private:
void cb_phaserp4_i(Fl_Choice*, void*);
static void cb_phaserp4(Fl_Choice*, void*);
static Fl_Menu_Item menu_phaserp4[];
public:
WidgetPDial *phaserp5;
private:
void cb_phaserp5_i(WidgetPDial*, void*);
static void cb_phaserp5(WidgetPDial*, void*);
public:
WidgetPDial *phaserp6;
private:
void cb_phaserp6_i(WidgetPDial*, void*);
static void cb_phaserp6(WidgetPDial*, void*);
public:
WidgetPDial *phaserp7;
private:
void cb_phaserp7_i(WidgetPDial*, void*);
static void cb_phaserp7(WidgetPDial*, void*);
public:
Fl_Counter *phaserp8;
private:
void cb_phaserp8_i(Fl_Counter*, void*);
static void cb_phaserp8(Fl_Counter*, void*);
public:
WidgetPDial *phaserp9;
private:
void cb_phaserp9_i(WidgetPDial*, void*);
static void cb_phaserp9(WidgetPDial*, void*);
public:
Fl_Check_Button *phaserp10;
private:
void cb_phaserp10_i(Fl_Check_Button*, void*);
static void cb_phaserp10(Fl_Check_Button*, void*);
public:
WidgetPDial *phaserp11;
private:
void cb_phaserp11_i(WidgetPDial*, void*);
static void cb_phaserp11(WidgetPDial*, void*);
public:
Fl_Check_Button *phaserp12;
private:
void cb_phaserp12_i(Fl_Check_Button*, void*);
static void cb_phaserp12(Fl_Check_Button*, void*);
public:
WidgetPDial *phaserp13;
private:
void cb_phaserp13_i(WidgetPDial*, void*);
static void cb_phaserp13(WidgetPDial*, void*);
public:
Fl_Check_Button *phaserp14;
private:
void cb_phaserp14_i(Fl_Check_Button*, void*);
static void cb_phaserp14(Fl_Check_Button*, void*);
public:
Fl_Group* make_alienwah_window();
Fl_Group *effalienwahwindow;
Fl_Choice *awp;
private:
void cb_awp_i(Fl_Choice*, void*);
static void cb_awp(Fl_Choice*, void*);
static Fl_Menu_Item menu_awp[];
public:
WidgetPDial *awp0;
private:
void cb_awp0_i(WidgetPDial*, void*);
static void cb_awp0(WidgetPDial*, void*);
public:
WidgetPDial *awp1;
private:
void cb_awp1_i(WidgetPDial*, void*);
static void cb_awp1(WidgetPDial*, void*);
public:
WidgetPDial *awp2;
private:
void cb_awp2_i(WidgetPDial*, void*);
static void cb_awp2(WidgetPDial*, void*);
public:
WidgetPDial *awp3;
private:
void cb_awp3_i(WidgetPDial*, void*);
static void cb_awp3(WidgetPDial*, void*);
public:
WidgetPDial *awp5;
private:
void cb_awp5_i(WidgetPDial*, void*);
static void cb_awp5(WidgetPDial*, void*);
public:
WidgetPDial *awp6;
private:
void cb_awp6_i(WidgetPDial*, void*);
static void cb_awp6(WidgetPDial*, void*);
public:
WidgetPDial *awp7;
private:
void cb_awp7_i(WidgetPDial*, void*);
static void cb_awp7(WidgetPDial*, void*);
public:
WidgetPDial *awp9;
private:
void cb_awp9_i(WidgetPDial*, void*);
static void cb_awp9(WidgetPDial*, void*);
public:
Fl_Choice *awp4;
private:
void cb_awp4_i(Fl_Choice*, void*);
static void cb_awp4(Fl_Choice*, void*);
static Fl_Menu_Item menu_awp4[];
public:
WidgetPDial *awp10;
private:
void cb_awp10_i(WidgetPDial*, void*);
static void cb_awp10(WidgetPDial*, void*);
public:
Fl_Counter *awp8;
private:
void cb_awp8_i(Fl_Counter*, void*);
static void cb_awp8(Fl_Counter*, void*);
public:
Fl_Group* make_distorsion_window();
Fl_Group *effdistorsionwindow;
Fl_Choice *distp;
private:
void cb_distp_i(Fl_Choice*, void*);
static void cb_distp(Fl_Choice*, void*);
static Fl_Menu_Item menu_distp[];
public:
WidgetPDial *distp0;
private:
void cb_distp0_i(WidgetPDial*, void*);
static void cb_distp0(WidgetPDial*, void*);
public:
WidgetPDial *distp1;
private:
void cb_distp1_i(WidgetPDial*, void*);
static void cb_distp1(WidgetPDial*, void*);
public:
WidgetPDial *distp2;
private:
void cb_distp2_i(WidgetPDial*, void*);
static void cb_distp2(WidgetPDial*, void*);
public:
WidgetPDial *distp3;
private:
void cb_distp3_i(WidgetPDial*, void*);
static void cb_distp3(WidgetPDial*, void*);
public:
WidgetPDial *distp4;
private:
void cb_distp4_i(WidgetPDial*, void*);
static void cb_distp4(WidgetPDial*, void*);
public:
WidgetPDial *distp7;
private:
void cb_distp7_i(WidgetPDial*, void*);
static void cb_distp7(WidgetPDial*, void*);
public:
WidgetPDial *distp8;
private:
void cb_distp8_i(WidgetPDial*, void*);
static void cb_distp8(WidgetPDial*, void*);
public:
Fl_Choice *distp5;
private:
void cb_distp5_i(Fl_Choice*, void*);
static void cb_distp5(Fl_Choice*, void*);
static Fl_Menu_Item menu_distp5[];
public:
Fl_Check_Button *distp6;
private:
void cb_distp6_i(Fl_Check_Button*, void*);
static void cb_distp6(Fl_Check_Button*, void*);
public:
Fl_Check_Button *distp9;
private:
void cb_distp9_i(Fl_Check_Button*, void*);
static void cb_distp9(Fl_Check_Button*, void*);
public:
Fl_Check_Button *distp10;
private:
void cb_distp10_i(Fl_Check_Button*, void*);
static void cb_distp10(Fl_Check_Button*, void*);
public:
Fl_Group* make_eq_window();
Fl_Group *effeqwindow;
WidgetPDial *eqp0;
private:
void cb_eqp0_i(WidgetPDial*, void*);
static void cb_eqp0(WidgetPDial*, void*);
public:
Fl_Counter *bandcounter;
private:
void cb_bandcounter_i(Fl_Counter*, void*);
static void cb_bandcounter(Fl_Counter*, void*);
public:
Fl_Group *bandgroup;
WidgetPDial *freqdial;
private:
void cb_freqdial_i(WidgetPDial*, void*);
static void cb_freqdial(WidgetPDial*, void*);
public:
WidgetPDial *gaindial;
private:
void cb_gaindial_i(WidgetPDial*, void*);
static void cb_gaindial(WidgetPDial*, void*);
public:
WidgetPDial *qdial;
private:
void cb_qdial_i(WidgetPDial*, void*);
static void cb_qdial(WidgetPDial*, void*);
public:
Fl_Counter *stagescounter;
private:
void cb_stagescounter_i(Fl_Counter*, void*);
static void cb_stagescounter(Fl_Counter*, void*);
public:
Fl_Choice *typechoice;
private:
void cb_typechoice_i(Fl_Choice*, void*);
static void cb_typechoice(Fl_Choice*, void*);
static Fl_Menu_Item menu_typechoice[];
public:
EQGraph *eqgraph;
Fl_Group* make_dynamicfilter_window();
Fl_Group *effdynamicfilterwindow;
Fl_Choice *dfp;
private:
void cb_dfp_i(Fl_Choice*, void*);
static void cb_dfp(Fl_Choice*, void*);
static Fl_Menu_Item menu_dfp[];
public:
WidgetPDial *dfp0;
private:
void cb_dfp0_i(WidgetPDial*, void*);
static void cb_dfp0(WidgetPDial*, void*);
public:
WidgetPDial *dfp1;
private:
void cb_dfp1_i(WidgetPDial*, void*);
static void cb_dfp1(WidgetPDial*, void*);
public:
WidgetPDial *dfp2;
private:
void cb_dfp2_i(WidgetPDial*, void*);
static void cb_dfp2(WidgetPDial*, void*);
public:
WidgetPDial *dfp3;
private:
void cb_dfp3_i(WidgetPDial*, void*);
static void cb_dfp3(WidgetPDial*, void*);
public:
WidgetPDial *dfp5;
private:
void cb_dfp5_i(WidgetPDial*, void*);
static void cb_dfp5(WidgetPDial*, void*);
public:
WidgetPDial *dfp6;
private:
void cb_dfp6_i(WidgetPDial*, void*);
static void cb_dfp6(WidgetPDial*, void*);
public:
Fl_Choice *dfp4;
private:
void cb_dfp4_i(Fl_Choice*, void*);
static void cb_dfp4(Fl_Choice*, void*);
static Fl_Menu_Item menu_dfp4[];
void cb_Filter_i(Fl_Button*, void*);
static void cb_Filter(Fl_Button*, void*);
public:
WidgetPDial *dfp7;
private:
void cb_dfp7_i(WidgetPDial*, void*);
static void cb_dfp7(WidgetPDial*, void*);
public:
WidgetPDial *dfp9;
private:
void cb_dfp9_i(WidgetPDial*, void*);
static void cb_dfp9(WidgetPDial*, void*);
public:
Fl_Check_Button *dfp8;
private:
void cb_dfp8_i(Fl_Check_Button*, void*);
static void cb_dfp8(Fl_Check_Button*, void*);
public:
Fl_Double_Window* make_filter_window();
Fl_Double_Window *filterwindow;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
public:
void init(EffectMgr *eff_);
void refresh(EffectMgr *eff_);
void refresh();
private:
EffectMgr *eff;
int eqband;
};

class SimpleEffUI : public Fl_Group,public PresetsUI_ {
public:
SimpleEffUI(int x,int y, int w, int h, const char *label=0);
~SimpleEffUI();
Fl_Group* make_null_window();
Fl_Group *effnullwindow;
Fl_Group* make_reverb_window();
Fl_Group *effreverbwindow;
Fl_Choice *revp;
private:
void cb_revp5_i(Fl_Choice*, void*);
static void cb_revp5(Fl_Choice*, void*);
static Fl_Menu_Item menu_revp1[];
public:
WidgetPDial *revp0;
private:
void cb_revp01_i(WidgetPDial*, void*);
static void cb_revp01(WidgetPDial*, void*);
public:
WidgetPDial *revp2;
private:
void cb_revp21_i(WidgetPDial*, void*);
static void cb_revp21(WidgetPDial*, void*);
public:
WidgetPDial *revp3;
private:
void cb_revp31_i(WidgetPDial*, void*);
static void cb_revp31(WidgetPDial*, void*);
public:
WidgetPDial *revp9;
private:
void cb_revp91_i(WidgetPDial*, void*);
static void cb_revp91(WidgetPDial*, void*);
public:
Fl_Group* make_echo_window();
Fl_Group *effechowindow;
Fl_Choice *echop;
private:
void cb_echop7_i(Fl_Choice*, void*);
static void cb_echop7(Fl_Choice*, void*);
static Fl_Menu_Item menu_echop1[];
public:
WidgetPDial *echop0;
private:
void cb_echop01_i(WidgetPDial*, void*);
static void cb_echop01(WidgetPDial*, void*);
public:
WidgetPDial *echop2;
private:
void cb_echop21_i(WidgetPDial*, void*);
static void cb_echop21(WidgetPDial*, void*);
public:
WidgetPDial *echop5;
private:
void cb_echop51_i(WidgetPDial*, void*);
static void cb_echop51(WidgetPDial*, void*);
public:
Fl_Group* make_chorus_window();
Fl_Group *effchoruswindow;
Fl_Choice *chorusp;
private:
void cb_choruspa_i(Fl_Choice*, void*);
static void cb_choruspa(Fl_Choice*, void*);
static Fl_Menu_Item menu_chorusp1[];
public:
WidgetPDial *chorusp0;
private:
void cb_chorusp01_i(WidgetPDial*, void*);
static void cb_chorusp01(WidgetPDial*, void*);
public:
WidgetPDial *chorusp2;
private:
void cb_chorusp21_i(WidgetPDial*, void*);
static void cb_chorusp21(WidgetPDial*, void*);
public:
WidgetPDial *chorusp6;
private:
void cb_chorusp61_i(WidgetPDial*, void*);
static void cb_chorusp61(WidgetPDial*, void*);
public:
WidgetPDial *chorusp7;
private:
void cb_chorusp71_i(WidgetPDial*, void*);
static void cb_chorusp71(WidgetPDial*, void*);
public:
WidgetPDial *chorusp8;
private:
void cb_chorusp81_i(WidgetPDial*, void*);
static void cb_chorusp81(WidgetPDial*, void*);
void cb_Flange1_i(Fl_Check_Button*, void*);
static void cb_Flange1(Fl_Check_Button*, void*);
public:
Fl_Group* make_phaser_window();
Fl_Group *effphaserwindow;
Fl_Choice *phaserp;
private:
void cb_phaserpa_i(Fl_Choice*, void*);
static void cb_phaserpa(Fl_Choice*, void*);
static Fl_Menu_Item menu_phaserp1[];
public:
WidgetPDial *phaserp0;
private:
void cb_phaserp01_i(WidgetPDial*, void*);
static void cb_phaserp01(WidgetPDial*, void*);
public:
WidgetPDial *phaserp2;
private:
void cb_phaserp21_i(WidgetPDial*, void*);
static void cb_phaserp21(WidgetPDial*, void*);
public:
WidgetPDial *phaserp5;
private:
void cb_phaserp51_i(WidgetPDial*, void*);
static void cb_phaserp51(WidgetPDial*, void*);
public:
WidgetPDial *phaserp6;
private:
void cb_phaserp61_i(WidgetPDial*, void*);
static void cb_phaserp61(WidgetPDial*, void*);
public:
WidgetPDial *phaserp7;
private:
void cb_phaserp71_i(WidgetPDial*, void*);
static void cb_phaserp71(WidgetPDial*, void*);
public:
Fl_Counter *phaserp8;
private:
void cb_phaserp81_i(Fl_Counter*, void*);
static void cb_phaserp81(Fl_Counter*, void*);
public:
Fl_Group* make_alienwah_window();
Fl_Group *effalienwahwindow;
Fl_Choice *awp;
private:
void cb_awpa_i(Fl_Choice*, void*);
static void cb_awpa(Fl_Choice*, void*);
static Fl_Menu_Item menu_awp1[];
public:
WidgetPDial *awp0;
private:
void cb_awp01_i(WidgetPDial*, void*);
static void cb_awp01(WidgetPDial*, void*);
public:
WidgetPDial *awp2;
private:
void cb_awp21_i(WidgetPDial*, void*);
static void cb_awp21(WidgetPDial*, void*);
public:
WidgetPDial *awp6;
private:
void cb_awp61_i(WidgetPDial*, void*);
static void cb_awp61(WidgetPDial*, void*);
public:
Fl_Counter *awp8;
private:
void cb_awp81_i(Fl_Counter*, void*);
static void cb_awp81(Fl_Counter*, void*);
public:
Fl_Group* make_distorsion_window();
Fl_Group *effdistorsionwindow;
Fl_Choice *distp;
private:
void cb_distpa_i(Fl_Choice*, void*);
static void cb_distpa(Fl_Choice*, void*);
static Fl_Menu_Item menu_distp1[];
public:
WidgetPDial *distp0;
private:
void cb_distp01_i(WidgetPDial*, void*);
static void cb_distp01(WidgetPDial*, void*);
public:
WidgetPDial *distp3;
private:
void cb_distp31_i(WidgetPDial*, void*);
static void cb_distp31(WidgetPDial*, void*);
public:
WidgetPDial *distp4;
private:
void cb_distp41_i(WidgetPDial*, void*);
static void cb_distp41(WidgetPDial*, void*);
public:
WidgetPDial *distp7;
private:
void cb_distp71_i(WidgetPDial*, void*);
static void cb_distp71(WidgetPDial*, void*);
public:
Fl_Choice *distp5;
private:
void cb_distp51_i(Fl_Choice*, void*);
static void cb_distp51(Fl_Choice*, void*);
static Fl_Menu_Item menu_distp51[];
public:
Fl_Group* make_eq_window();
Fl_Group *effeqwindow;
Fl_Counter *bandcounter;
private:
void cb_bandcounter1_i(Fl_Counter*, void*);
static void cb_bandcounter1(Fl_Counter*, void*);
public:
Fl_Group *bandgroup;
WidgetPDial *freqdial;
private:
void cb_freqdial1_i(WidgetPDial*, void*);
static void cb_freqdial1(WidgetPDial*, void*);
public:
WidgetPDial *gaindial;
private:
void cb_gaindial1_i(WidgetPDial*, void*);
static void cb_gaindial1(WidgetPDial*, void*);
public:
WidgetPDial *qdial;
private:
void cb_qdial1_i(WidgetPDial*, void*);
static void cb_qdial1(WidgetPDial*, void*);
public:
Fl_Counter *stagescounter;
private:
void cb_stagescounter1_i(Fl_Counter*, void*);
static void cb_stagescounter1(Fl_Counter*, void*);
public:
Fl_Choice *typechoice;
private:
void cb_typechoice1_i(Fl_Choice*, void*);
static void cb_typechoice1(Fl_Choice*, void*);
static Fl_Menu_Item menu_typechoice1[];
public:
EQGraph *eqgraph;
Fl_Group* make_dynamicfilter_window();
Fl_Group *effdynamicfilterwindow;
Fl_Choice *dfp;
private:
void cb_dfpa_i(Fl_Choice*, void*);
static void cb_dfpa(Fl_Choice*, void*);
static Fl_Menu_Item menu_dfp1[];
public:
WidgetPDial *dfp0;
private:
void cb_dfp01_i(WidgetPDial*, void*);
static void cb_dfp01(WidgetPDial*, void*);
public:
WidgetPDial *dfp2;
private:
void cb_dfp21_i(WidgetPDial*, void*);
static void cb_dfp21(WidgetPDial*, void*);
public:
WidgetPDial *dfp6;
private:
void cb_dfp61_i(WidgetPDial*, void*);
static void cb_dfp61(WidgetPDial*, void*);
public:
WidgetPDial *dfp7;
private:
void cb_dfp71_i(WidgetPDial*, void*);
static void cb_dfp71(WidgetPDial*, void*);
public:
WidgetPDial *dfp9;
private:
void cb_dfp91_i(WidgetPDial*, void*);
static void cb_dfp91(WidgetPDial*, void*);
public:
void init(EffectMgr *eff_);
void refresh(EffectMgr *eff_);
void refresh();
private:
EffectMgr *eff;
int eqband;
};
#endif

+ 0
- 1529
source/modules/carla_native/zynaddsubfx/UI/EnvelopeUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 281
source/modules/carla_native/zynaddsubfx/UI/EnvelopeUI.h View File

@@ -1,281 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef EnvelopeUI_h
#define EnvelopeUI_h
#include <FL/Fl.H>
#include "WidgetPDial.h"
#include <stdio.h>
#include <stdlib.h>
#include "../globals.h"
#include <FL/Fl_Group.H>
#include "../Params/EnvelopeParams.h"
#include <FL/Fl_Box.H>
#include <FL/fl_draw.H>
#include <FL/fl_ask.H>
#include "PresetsUI.h"
#include "common.H"

class EnvelopeFreeEdit : public Fl_Box {
public:
EnvelopeFreeEdit(int x,int y, int w, int h, const char *label=0);
void init(EnvelopeParams *env_);
void setpair(Fl_Box *pair_);
int getpointx(int n);
int getpointy(int n);
int getnearest(int x,int y);
private:
void draw();
public:
int handle(int event);
private:
Fl_Box *pair;
EnvelopeParams *env;
int oldx,oldy;
int currentpoint,cpx,cpdt;
public:
int lastpoint;
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Light_Button.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Group.H>

class EnvelopeUI : public Fl_Group,PresetsUI_ {
public:
EnvelopeUI(int x,int y, int w, int h, const char *label=0);
~EnvelopeUI();
Fl_Double_Window* make_freemode_edit_window();
Fl_Double_Window *freemodeeditwindow;
EnvelopeFreeEdit *freeedit;
Fl_Button *addpoint;
private:
void cb_addpoint_i(Fl_Button*, void*);
static void cb_addpoint(Fl_Button*, void*);
public:
Fl_Button *deletepoint;
private:
void cb_deletepoint_i(Fl_Button*, void*);
static void cb_deletepoint(Fl_Button*, void*);
public:
Fl_Light_Button *freemodebutton;
private:
void cb_freemodebutton_i(Fl_Light_Button*, void*);
static void cb_freemodebutton(Fl_Light_Button*, void*);
public:
Fl_Check_Button *forcedreleasecheck;
private:
void cb_forcedreleasecheck_i(Fl_Check_Button*, void*);
static void cb_forcedreleasecheck(Fl_Check_Button*, void*);
public:
WidgetPDial *envstretchdial;
private:
void cb_envstretchdial_i(WidgetPDial*, void*);
static void cb_envstretchdial(WidgetPDial*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
public:
Fl_Check_Button *linearenvelopecheck;
private:
void cb_linearenvelopecheck_i(Fl_Check_Button*, void*);
static void cb_linearenvelopecheck(Fl_Check_Button*, void*);
public:
Fl_Counter *sustaincounter;
private:
void cb_sustaincounter_i(Fl_Counter*, void*);
static void cb_sustaincounter(Fl_Counter*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Group* make_ADSR_window();
Fl_Group *envADSR;
WidgetPDial *e1adt;
private:
void cb_e1adt_i(WidgetPDial*, void*);
static void cb_e1adt(WidgetPDial*, void*);
public:
WidgetPDial *e1ddt;
private:
void cb_e1ddt_i(WidgetPDial*, void*);
static void cb_e1ddt(WidgetPDial*, void*);
public:
WidgetPDial *e1rdt;
private:
void cb_e1rdt_i(WidgetPDial*, void*);
static void cb_e1rdt(WidgetPDial*, void*);
public:
WidgetPDial *e1sval;
private:
void cb_e1sval_i(WidgetPDial*, void*);
static void cb_e1sval(WidgetPDial*, void*);
public:
Fl_Check_Button *e1forcedrelease;
private:
void cb_e1forcedrelease_i(Fl_Check_Button*, void*);
static void cb_e1forcedrelease(Fl_Check_Button*, void*);
public:
WidgetPDial *e1envstretch;
private:
void cb_e1envstretch_i(WidgetPDial*, void*);
static void cb_e1envstretch(WidgetPDial*, void*);
void cb_E_i(Fl_Button*, void*);
static void cb_E(Fl_Button*, void*);
public:
Fl_Check_Button *e1linearenvelope;
private:
void cb_e1linearenvelope_i(Fl_Check_Button*, void*);
static void cb_e1linearenvelope(Fl_Check_Button*, void*);
void cb_C1_i(Fl_Button*, void*);
static void cb_C1(Fl_Button*, void*);
void cb_P1_i(Fl_Button*, void*);
static void cb_P1(Fl_Button*, void*);
public:
Fl_Group* make_ASR_window();
Fl_Group *envASR;
WidgetPDial *e2aval;
private:
void cb_e2aval_i(WidgetPDial*, void*);
static void cb_e2aval(WidgetPDial*, void*);
public:
WidgetPDial *e2adt;
private:
void cb_e2adt_i(WidgetPDial*, void*);
static void cb_e2adt(WidgetPDial*, void*);
public:
WidgetPDial *e2rval;
private:
void cb_e2rval_i(WidgetPDial*, void*);
static void cb_e2rval(WidgetPDial*, void*);
public:
WidgetPDial *e2rdt;
private:
void cb_e2rdt_i(WidgetPDial*, void*);
static void cb_e2rdt(WidgetPDial*, void*);
public:
WidgetPDial *e2envstretch;
private:
void cb_e2envstretch_i(WidgetPDial*, void*);
static void cb_e2envstretch(WidgetPDial*, void*);
public:
Fl_Check_Button *e2forcedrelease;
private:
void cb_e2forcedrelease_i(Fl_Check_Button*, void*);
static void cb_e2forcedrelease(Fl_Check_Button*, void*);
void cb_C2_i(Fl_Button*, void*);
static void cb_C2(Fl_Button*, void*);
void cb_P2_i(Fl_Button*, void*);
static void cb_P2(Fl_Button*, void*);
void cb_E1_i(Fl_Button*, void*);
static void cb_E1(Fl_Button*, void*);
public:
Fl_Group* make_ADSRfilter_window();
Fl_Group *envADSRfilter;
WidgetPDial *e3aval;
private:
void cb_e3aval_i(WidgetPDial*, void*);
static void cb_e3aval(WidgetPDial*, void*);
public:
WidgetPDial *e3adt;
private:
void cb_e3adt_i(WidgetPDial*, void*);
static void cb_e3adt(WidgetPDial*, void*);
public:
WidgetPDial *e3dval;
private:
void cb_e3dval_i(WidgetPDial*, void*);
static void cb_e3dval(WidgetPDial*, void*);
public:
WidgetPDial *e3ddt;
private:
void cb_e3ddt_i(WidgetPDial*, void*);
static void cb_e3ddt(WidgetPDial*, void*);
public:
WidgetPDial *e3rdt;
private:
void cb_e3rdt_i(WidgetPDial*, void*);
static void cb_e3rdt(WidgetPDial*, void*);
public:
WidgetPDial *e3rval;
private:
void cb_e3rval_i(WidgetPDial*, void*);
static void cb_e3rval(WidgetPDial*, void*);
public:
WidgetPDial *e3envstretch;
private:
void cb_e3envstretch_i(WidgetPDial*, void*);
static void cb_e3envstretch(WidgetPDial*, void*);
public:
Fl_Check_Button *e3forcedrelease;
private:
void cb_e3forcedrelease_i(Fl_Check_Button*, void*);
static void cb_e3forcedrelease(Fl_Check_Button*, void*);
void cb_E2_i(Fl_Button*, void*);
static void cb_E2(Fl_Button*, void*);
void cb_C3_i(Fl_Button*, void*);
static void cb_C3(Fl_Button*, void*);
void cb_P3_i(Fl_Button*, void*);
static void cb_P3(Fl_Button*, void*);
public:
Fl_Group* make_ASRbw_window();
Fl_Group *envASRbw;
WidgetPDial *e4aval;
private:
void cb_e4aval_i(WidgetPDial*, void*);
static void cb_e4aval(WidgetPDial*, void*);
public:
WidgetPDial *e4adt;
private:
void cb_e4adt_i(WidgetPDial*, void*);
static void cb_e4adt(WidgetPDial*, void*);
public:
WidgetPDial *e4rval;
private:
void cb_e4rval_i(WidgetPDial*, void*);
static void cb_e4rval(WidgetPDial*, void*);
public:
WidgetPDial *e4rdt;
private:
void cb_e4rdt_i(WidgetPDial*, void*);
static void cb_e4rdt(WidgetPDial*, void*);
public:
WidgetPDial *e4envstretch;
private:
void cb_e4envstretch_i(WidgetPDial*, void*);
static void cb_e4envstretch(WidgetPDial*, void*);
public:
Fl_Check_Button *e4forcedrelease;
private:
void cb_e4forcedrelease_i(Fl_Check_Button*, void*);
static void cb_e4forcedrelease(Fl_Check_Button*, void*);
void cb_C4_i(Fl_Button*, void*);
static void cb_C4(Fl_Button*, void*);
void cb_P4_i(Fl_Button*, void*);
static void cb_P4(Fl_Button*, void*);
void cb_E3_i(Fl_Button*, void*);
static void cb_E3(Fl_Button*, void*);
public:
Fl_Group* make_free_window();
Fl_Group *envfree;
Fl_Group *envfreegroup;
EnvelopeFreeEdit *freeeditsmall;
private:
void cb_freeeditsmall_i(EnvelopeFreeEdit*, void*);
static void cb_freeeditsmall(EnvelopeFreeEdit*, void*);
void cb_E4_i(Fl_Button*, void*);
static void cb_E4(Fl_Button*, void*);
void cb_C5_i(Fl_Button*, void*);
static void cb_C5(Fl_Button*, void*);
void cb_P5_i(Fl_Button*, void*);
static void cb_P5(Fl_Button*, void*);
public:
void init(EnvelopeParams *env_);
void reinit();
void refresh();
private:
EnvelopeParams *env;
Fl_Group *envwindow;
};
#endif

+ 0
- 994
source/modules/carla_native/zynaddsubfx/UI/FilterUI.cpp View File

@@ -1,994 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "zynaddsubfx/UI/FilterUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later
#include <cmath>
#include <stdio.h>
#include <stdlib.h>

FormantFilterGraph::FormantFilterGraph(int x,int y, int w, int h, const char *label):Fl_Box(x,y,w,h,label) {
pars=NULL;
nvowel=NULL;
nformant=NULL;
graphpoints=NULL;
}

void FormantFilterGraph::init(FilterParams *pars_,int *nvowel_,int *nformant_) {
pars=pars_;
nvowel=nvowel_;
nformant=nformant_;
oldx=-1;
graphpoints=new float [w()];
}

void FormantFilterGraph::draw_freq_line(float freq,int type) {
float freqx=pars->getfreqpos(freq);
switch(type){
case 0:fl_line_style(FL_SOLID);break;
case 1:fl_line_style(FL_DOT);break;
case 2:fl_line_style(FL_DASH);break;
};
if ((freqx>0.0)&&(freqx<1.0))
fl_line(x()+(int) (freqx*w()),y(),
x()+(int) (freqx*w()),y()+h());
}

void FormantFilterGraph::draw() {
int maxdB=30;
int ox=x(),oy=y(),lx=w(),ly=h(),i,oiy;
float freqx;
fl_color(FL_BLACK);
fl_rectf(ox,oy,lx,ly);
//draw the lines
fl_color(FL_GRAY);
fl_line_style(FL_SOLID);
//fl_line(ox+2,oy+ly/2,ox+lx-2,oy+ly/2);
freqx=pars->getfreqpos(1000.0);
if ((freqx>0.0)&&(freqx<1.0))
fl_line(ox+(int) (freqx*lx),oy,
ox+(int) (freqx*lx),oy+ly);
for (i=1;i<10;i++){
if(i==1){
draw_freq_line(i*100.0,0);
draw_freq_line(i*1000.0,0);
}else
if (i==5){
draw_freq_line(i*100.0,2);
draw_freq_line(i*1000.0,2);
}else{
draw_freq_line(i*100.0,1);
draw_freq_line(i*1000.0,1);
};
};
draw_freq_line(10000.0,0);
draw_freq_line(20000.0,1);
fl_line_style(FL_DOT);
int GY=10;if (ly<GY*3) GY=-1;
for (i=1;i<GY;i++){
int tmp=(int)(ly/(float)GY*i);
fl_line(ox+2,oy+tmp,ox+lx-2,oy+tmp);
};
fl_color(FL_YELLOW);
fl_font(FL_HELVETICA,10);
if (*nformant<pars->Pnumformants){
draw_freq_line(pars->getformantfreq(pars->Pvowels[*nvowel].formants[*nformant].freq),2);
//show some information (like current formant frequency,amplitude)
char tmpstr[20];
snprintf(tmpstr,20,"%.2f kHz",pars->getformantfreq(pars->Pvowels[*nvowel].formants[*nformant].freq)*0.001);
fl_draw(tmpstr,ox+1,oy+1,40,12,FL_ALIGN_LEFT,NULL,0);
snprintf(tmpstr,20,"%d dB",(int)( rap2dB(1e-9 + pars->getformantamp(pars->Pvowels[*nvowel].formants[*nformant].amp)) + pars->getgain() ));
fl_draw(tmpstr,ox+1,oy+15,40,12,FL_ALIGN_LEFT,NULL,0);
};
//draw the data
fl_color(FL_RED);
fl_line_style(FL_SOLID);
pars->formantfilterH(*nvowel,lx,graphpoints);
fl_line_style( FL_SOLID, 2 );
fl_begin_line();
oiy=(int) ((graphpoints[0]/maxdB+1.0)*ly/2.0);
for (i=1;i<lx;i++){
double iy= ((graphpoints[i]/maxdB+1.0)*ly/2.0);
if ((iy>=0)&&(oiy>=0)&&(iy<ly)&&(oiy<lx))
fl_vertex(ox+i,oy+ly-iy);
oiy=iy;
};
fl_end_line();
fl_line_style(FL_SOLID,0);
}

FormantFilterGraph::~FormantFilterGraph() {
delete [] graphpoints;
}

void FilterUI::cb_analogfiltertypechoice_i(Fl_Choice* o, void*) {
pars->Ptype=(int)o->value();
pars->changed=true;
}
void FilterUI::cb_analogfiltertypechoice(Fl_Choice* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_analogfiltertypechoice_i(o,v);
}

Fl_Menu_Item FilterUI::menu_analogfiltertypechoice[] = {
{"LPF1", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"HPF1", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"LPF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"HPF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"BPF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"NF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"PkF2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"LSh2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"HSh2", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{0,0,0,0,0,0,0,0,0}
};

void FilterUI::cb_svfiltertypechoice_i(Fl_Choice* o, void*) {
pars->Ptype=(int)o->value();
pars->changed=true;
}
void FilterUI::cb_svfiltertypechoice(Fl_Choice* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_svfiltertypechoice_i(o,v);
}

Fl_Menu_Item FilterUI::menu_svfiltertypechoice[] = {
{"1LPF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"1HPF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"1BPF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"1NF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{0,0,0,0,0,0,0,0,0}
};

void FilterUI::cb_filtertype_i(Fl_Choice* o, void*) {
switchcategory((int)o->value());
pars->changed=true;
}
void FilterUI::cb_filtertype(Fl_Choice* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_filtertype_i(o,v);
}

Fl_Menu_Item FilterUI::menu_filtertype[] = {
{"Analog", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"Formant", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"StVarF", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{0,0,0,0,0,0,0,0,0}
};

void FilterUI::cb_cfreqdial_i(WidgetPDial* o, void*) {
pars->Pfreq=(int)o->value();
}
void FilterUI::cb_cfreqdial(WidgetPDial* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_cfreqdial_i(o,v);
}

void FilterUI::cb_qdial_i(WidgetPDial* o, void*) {
pars->Pq=(int)o->value();
formantfiltergraph->redraw();
}
void FilterUI::cb_qdial(WidgetPDial* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_qdial_i(o,v);
}

void FilterUI::cb_freqtrdial_i(WidgetPDial* o, void*) {
pars->Pfreqtrack=(int) o->value();
}
void FilterUI::cb_freqtrdial(WidgetPDial* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_freqtrdial_i(o,v);
}

void FilterUI::cb_vsnsadial_i(WidgetPDial* o, void*) {
if (velsnsamp!=NULL) *velsnsamp=(int)o->value();
}
void FilterUI::cb_vsnsadial(WidgetPDial* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_vsnsadial_i(o,v);
}

void FilterUI::cb_vsnsdial_i(WidgetPDial* o, void*) {
if (velsns!=NULL) *velsns=(int)o->value();
}
void FilterUI::cb_vsnsdial(WidgetPDial* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_vsnsdial_i(o,v);
}

void FilterUI::cb_gaindial_i(WidgetPDial* o, void*) {
pars->Pgain=(int)o->value();
formantfiltergraph->redraw();
pars->changed=true;
}
void FilterUI::cb_gaindial(WidgetPDial* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_gaindial_i(o,v);
}

void FilterUI::cb_stcounter_i(Fl_Choice* o, void*) {
pars->Pstages=(int)o->value();
formantfiltergraph->redraw();
pars->changed=true;
}
void FilterUI::cb_stcounter(Fl_Choice* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_stcounter_i(o,v);
}

void FilterUI::cb_editbutton_i(Fl_Button*, void*) {
formantparswindow->show();
}
void FilterUI::cb_editbutton(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_editbutton_i(o,v);
}

void FilterUI::cb_C_i(Fl_Button*, void*) {
presetsui->copy(pars);
}
void FilterUI::cb_C(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_C_i(o,v);
}

void FilterUI::cb_P_i(Fl_Button*, void*) {
presetsui->paste(pars,this);
}
void FilterUI::cb_P(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_P_i(o,v);
}

void FilterUI::cb_Formant_i(Fl_Counter* o, void*) {
nformant=(int) o->value();
update_formant_window();
formantfiltergraph->redraw();
}
void FilterUI::cb_Formant(Fl_Counter* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_Formant_i(o,v);
}

void FilterUI::cb_Vowel_i(Fl_Counter* o, void*) {
nvowel=(int) o->value();
update_formant_window();
formantfiltergraph->redraw();
}
void FilterUI::cb_Vowel(Fl_Counter* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_Vowel_i(o,v);
}

void FilterUI::cb_formant_freq_dial_i(WidgetPDial* o, void*) {
pars->Pvowels[nvowel].formants[nformant].freq=(int) o->value();
formantfiltergraph->redraw();
pars->changed=true;
}
void FilterUI::cb_formant_freq_dial(WidgetPDial* o, void* v) {
((FilterUI*)(o->parent()->parent()->parent()->user_data()))->cb_formant_freq_dial_i(o,v);
}

void FilterUI::cb_formant_q_dial_i(WidgetPDial* o, void*) {
pars->Pvowels[nvowel].formants[nformant].q=(int) o->value();
formantfiltergraph->redraw();
pars->changed=true;
}
void FilterUI::cb_formant_q_dial(WidgetPDial* o, void* v) {
((FilterUI*)(o->parent()->parent()->parent()->user_data()))->cb_formant_q_dial_i(o,v);
}

void FilterUI::cb_formant_amp_dial_i(WidgetPDial* o, void*) {
pars->Pvowels[nvowel].formants[nformant].amp=(int) o->value();
formantfiltergraph->redraw();
pars->changed=true;
}
void FilterUI::cb_formant_amp_dial(WidgetPDial* o, void* v) {
((FilterUI*)(o->parent()->parent()->parent()->user_data()))->cb_formant_amp_dial_i(o,v);
}

void FilterUI::cb_Seq_i(Fl_Counter* o, void*) {
pars->Psequencesize=(int) o->value();
update_formant_window();
pars->changed=true;
}
void FilterUI::cb_Seq(Fl_Counter* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_Seq_i(o,v);
}

void FilterUI::cb_S_i(Fl_Counter* o, void*) {
nseqpos=(int) o->value();
update_formant_window();
pars->changed=true;
}
void FilterUI::cb_S(Fl_Counter* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_S_i(o,v);
}

void FilterUI::cb_vowel_counter_i(Fl_Counter* o, void*) {
pars->Psequence[nseqpos].nvowel=(int) o->value();
pars->changed=true;
}
void FilterUI::cb_vowel_counter(Fl_Counter* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_vowel_counter_i(o,v);
}

void FilterUI::cb_Neg_i(Fl_Check_Button* o, void*) {
pars->Psequencereversed=(int) o->value();
pars->changed=true;
}
void FilterUI::cb_Neg(Fl_Check_Button* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_Neg_i(o,v);
}

void FilterUI::cb_strchdial_i(WidgetPDial* o, void*) {
pars->Psequencestretch=(int) o->value();
pars->changed=true;
}
void FilterUI::cb_strchdial(WidgetPDial* o, void* v) {
((FilterUI*)(o->parent()->parent()->user_data()))->cb_strchdial_i(o,v);
}

void FilterUI::cb_Num_i(Fl_Counter* o, void*) {
pars->Pnumformants=(int) o->value();
update_formant_window();
pars->changed=true;
formantfiltergraph->redraw();
}
void FilterUI::cb_Num(Fl_Counter* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_Num_i(o,v);
}

void FilterUI::cb_frsldial_i(WidgetPDial* o, void*) {
pars->Pformantslowness=(int) o->value();
pars->changed=true;
}
void FilterUI::cb_frsldial(WidgetPDial* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_frsldial_i(o,v);
}

void FilterUI::cb_centerfreqvo_i(Fl_Value_Output* o, void*) {
o->value(pars->getcenterfreq()/1000.0);
}
void FilterUI::cb_centerfreqvo(Fl_Value_Output* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_centerfreqvo_i(o,v);
}

void FilterUI::cb_octavesfreqvo_i(Fl_Value_Output* o, void*) {
o->value(pars->getoctavesfreq());
}
void FilterUI::cb_octavesfreqvo(Fl_Value_Output* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_octavesfreqvo_i(o,v);
}

void FilterUI::cb_cfknob_i(Fl_Slider* o, void*) {
pars->Pcenterfreq=(int)o->value();
centerfreqvo->do_callback();
formantfiltergraph->redraw();
pars->changed=true;
}
void FilterUI::cb_cfknob(Fl_Slider* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_cfknob_i(o,v);
}

void FilterUI::cb_octknob_i(Fl_Slider* o, void*) {
pars->Poctavesfreq=(int)o->value();
octavesfreqvo->do_callback();
formantfiltergraph->redraw();
}
void FilterUI::cb_octknob(Fl_Slider* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_octknob_i(o,v);
}

void FilterUI::cb_wvknob_i(WidgetPDial* o, void*) {
pars->Pvowelclearness=(int) o->value();
pars->changed=true;
}
void FilterUI::cb_wvknob(WidgetPDial* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_wvknob_i(o,v);
}

void FilterUI::cb_Close_i(Fl_Button*, void*) {
formantparswindow->hide();
}
void FilterUI::cb_Close(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

void FilterUI::cb_C1_i(Fl_Button*, void*) {
presetsui->copy(pars,nvowel);
}
void FilterUI::cb_C1(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_C1_i(o,v);
}

void FilterUI::cb_P1_i(Fl_Button*, void*) {
presetsui->paste(pars,this,nvowel);
}
void FilterUI::cb_P1(Fl_Button* o, void* v) {
((FilterUI*)(o->parent()->user_data()))->cb_P1_i(o,v);
}

FilterUI::FilterUI(int x,int y, int w, int h, const char *label):Fl_Group(x,y,w,h,label) {
pars=NULL;
velsnsamp=NULL;
velsns=NULL;
nvowel=0;nformant=0;nseqpos=0;
}

FilterUI::~FilterUI() {
filterui->hide();
formantparswindow->hide();
hide();
//delete (filterui);
delete (formantparswindow);
}

Fl_Group* FilterUI::make_window() {
{ filterui = new Fl_Group(0, 0, 275, 70);
filterui->box(FL_FLAT_BOX);
filterui->color(FL_LIGHT1);
filterui->selection_color(FL_BACKGROUND_COLOR);
filterui->labeltype(FL_NO_LABEL);
filterui->labelfont(1);
filterui->labelsize(14);
filterui->labelcolor(FL_FOREGROUND_COLOR);
filterui->user_data((void*)(this));
filterui->align(Fl_Align(FL_ALIGN_TOP));
filterui->when(FL_WHEN_RELEASE);
{ Fl_Group* o = filterparamswindow = new Fl_Group(0, 0, 275, 75, "Filter Parameters");
filterparamswindow->box(FL_UP_FRAME);
filterparamswindow->color((Fl_Color)183);
filterparamswindow->labeltype(FL_ENGRAVED_LABEL);
filterparamswindow->labelsize(10);
filterparamswindow->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ Fl_Choice* o = analogfiltertypechoice = new Fl_Choice(10, 50, 50, 15, "FilterType");
analogfiltertypechoice->tooltip("The Filter type");
analogfiltertypechoice->down_box(FL_BORDER_BOX);
analogfiltertypechoice->labelsize(10);
analogfiltertypechoice->textsize(10);
analogfiltertypechoice->callback((Fl_Callback*)cb_analogfiltertypechoice);
analogfiltertypechoice->align(Fl_Align(FL_ALIGN_TOP_LEFT));
analogfiltertypechoice->menu(menu_analogfiltertypechoice);
o->value(pars->Ptype);
} // Fl_Choice* analogfiltertypechoice
{ Fl_Choice* o = svfiltertypechoice = new Fl_Choice(10, 50, 50, 15, "FilterType");
svfiltertypechoice->tooltip("The Filter type");
svfiltertypechoice->down_box(FL_BORDER_BOX);
svfiltertypechoice->labelsize(10);
svfiltertypechoice->textsize(10);
svfiltertypechoice->callback((Fl_Callback*)cb_svfiltertypechoice);
svfiltertypechoice->align(Fl_Align(FL_ALIGN_TOP_LEFT));
svfiltertypechoice->menu(menu_svfiltertypechoice);
o->value(pars->Ptype);
} // Fl_Choice* svfiltertypechoice
{ Fl_Choice* o = filtertype = new Fl_Choice(10, 20, 60, 15, "Category");
filtertype->tooltip("The Category of the Filter (Analog/Formantic/etc.)");
filtertype->down_box(FL_BORDER_BOX);
filtertype->labelsize(10);
filtertype->textsize(10);
filtertype->callback((Fl_Callback*)cb_filtertype);
filtertype->align(Fl_Align(FL_ALIGN_TOP_LEFT));
filtertype->menu(menu_filtertype);
o->value(pars->Pcategory);
} // Fl_Choice* filtertype
{ WidgetPDial* o = cfreqdial = new WidgetPDial(75, 25, 30, 30, "C.Freq");
cfreqdial->tooltip("Center Frequency of the Filter or the base position in the vowel\'s sequence");
cfreqdial->box(FL_ROUND_UP_BOX);
cfreqdial->color(FL_BACKGROUND_COLOR);
cfreqdial->selection_color(FL_INACTIVE_COLOR);
cfreqdial->labeltype(FL_NORMAL_LABEL);
cfreqdial->labelfont(0);
cfreqdial->labelsize(10);
cfreqdial->labelcolor(FL_FOREGROUND_COLOR);
cfreqdial->maximum(127);
cfreqdial->step(1);
cfreqdial->callback((Fl_Callback*)cb_cfreqdial);
cfreqdial->align(Fl_Align(FL_ALIGN_BOTTOM));
cfreqdial->when(FL_WHEN_CHANGED);
o->value(pars->Pfreq);
} // WidgetPDial* cfreqdial
{ WidgetPDial* o = qdial = new WidgetPDial(110, 25, 30, 30, "Q");
qdial->tooltip("Filter resonance or bandwidth");
qdial->box(FL_ROUND_UP_BOX);
qdial->color(FL_BACKGROUND_COLOR);
qdial->selection_color(FL_INACTIVE_COLOR);
qdial->labeltype(FL_NORMAL_LABEL);
qdial->labelfont(0);
qdial->labelsize(10);
qdial->labelcolor(FL_FOREGROUND_COLOR);
qdial->maximum(127);
qdial->step(1);
qdial->callback((Fl_Callback*)cb_qdial);
qdial->align(Fl_Align(FL_ALIGN_BOTTOM));
qdial->when(FL_WHEN_CHANGED);
o->value(pars->Pq);
} // WidgetPDial* qdial
{ WidgetPDial* o = freqtrdial = new WidgetPDial(215, 25, 30, 30, "freq.tr.");
freqtrdial->tooltip("Filter frequency tracking (left is negative, middle is 0, and right is positi\
ve)");
freqtrdial->box(FL_ROUND_UP_BOX);
freqtrdial->color(FL_BACKGROUND_COLOR);
freqtrdial->selection_color(FL_INACTIVE_COLOR);
freqtrdial->labeltype(FL_NORMAL_LABEL);
freqtrdial->labelfont(0);
freqtrdial->labelsize(10);
freqtrdial->labelcolor(FL_FOREGROUND_COLOR);
freqtrdial->maximum(127);
freqtrdial->step(1);
freqtrdial->callback((Fl_Callback*)cb_freqtrdial);
freqtrdial->align(Fl_Align(FL_ALIGN_BOTTOM));
freqtrdial->when(FL_WHEN_CHANGED);
o->value(pars->Pfreqtrack);
} // WidgetPDial* freqtrdial
{ vsnsadial = new WidgetPDial(145, 25, 30, 30, "V.SnsA.");
vsnsadial->tooltip("Velocity sensing amount of the Filter");
vsnsadial->box(FL_ROUND_UP_BOX);
vsnsadial->color(FL_BACKGROUND_COLOR);
vsnsadial->selection_color(FL_INACTIVE_COLOR);
vsnsadial->labeltype(FL_NORMAL_LABEL);
vsnsadial->labelfont(0);
vsnsadial->labelsize(10);
vsnsadial->labelcolor(FL_FOREGROUND_COLOR);
vsnsadial->maximum(127);
vsnsadial->step(1);
vsnsadial->callback((Fl_Callback*)cb_vsnsadial);
vsnsadial->align(Fl_Align(FL_ALIGN_BOTTOM));
vsnsadial->when(FL_WHEN_CHANGED);
} // WidgetPDial* vsnsadial
{ vsnsdial = new WidgetPDial(180, 25, 30, 30, "V.Sns.");
vsnsdial->tooltip("Velocity Sensing Function of the Filter");
vsnsdial->box(FL_ROUND_UP_BOX);
vsnsdial->color(FL_BACKGROUND_COLOR);
vsnsdial->selection_color(FL_INACTIVE_COLOR);
vsnsdial->labeltype(FL_NORMAL_LABEL);
vsnsdial->labelfont(0);
vsnsdial->labelsize(10);
vsnsdial->labelcolor(FL_FOREGROUND_COLOR);
vsnsdial->maximum(127);
vsnsdial->step(1);
vsnsdial->callback((Fl_Callback*)cb_vsnsdial);
vsnsdial->align(Fl_Align(FL_ALIGN_BOTTOM));
vsnsdial->when(FL_WHEN_CHANGED);
} // WidgetPDial* vsnsdial
{ WidgetPDial* o = gaindial = new WidgetPDial(250, 35, 20, 20, "gain");
gaindial->tooltip("Filter output gain/damp");
gaindial->box(FL_ROUND_UP_BOX);
gaindial->color(FL_BACKGROUND_COLOR);
gaindial->selection_color(FL_INACTIVE_COLOR);
gaindial->labeltype(FL_NORMAL_LABEL);
gaindial->labelfont(0);
gaindial->labelsize(10);
gaindial->labelcolor(FL_FOREGROUND_COLOR);
gaindial->maximum(127);
gaindial->step(1);
gaindial->callback((Fl_Callback*)cb_gaindial);
gaindial->align(Fl_Align(FL_ALIGN_BOTTOM));
gaindial->when(FL_WHEN_CHANGED);
o->value(pars->Pgain);
} // WidgetPDial* gaindial
{ Fl_Choice* o = stcounter = new Fl_Choice(235, 5, 35, 15, "St");
stcounter->tooltip("Filter stages (in order to increase dB/oct. value and the order of the filter\
)");
stcounter->down_box(FL_BORDER_BOX);
stcounter->labelsize(10);
stcounter->textfont(1);
stcounter->textsize(10);
stcounter->callback((Fl_Callback*)cb_stcounter);
for (int i=0;i<MAX_FILTER_STAGES;i++) {char tmp[10];snprintf(tmp,10,"%dx",i+1);o->add(tmp);};
o->value(pars->Pstages);
} // Fl_Choice* stcounter
set_module_parameters( o );
filterparamswindow->end();
} // Fl_Group* filterparamswindow
{ editbutton = new Fl_Button(15, 40, 50, 25, "Edit");
editbutton->labelfont(1);
editbutton->labelsize(11);
editbutton->callback((Fl_Callback*)cb_editbutton);
} // Fl_Button* editbutton
{ Fl_Button* o = new Fl_Button(186, 5, 15, 15, "C");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(10);
o->labelcolor(FL_BACKGROUND2_COLOR);
o->callback((Fl_Callback*)cb_C);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(203, 5, 15, 15, "P");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(10);
o->labelcolor(FL_BACKGROUND2_COLOR);
o->callback((Fl_Callback*)cb_P);
} // Fl_Button* o
filterui->end();
} // Fl_Group* filterui
return filterui;
}

Fl_Double_Window* FilterUI::make_formant_window() {
{ formantparswindow = new Fl_Double_Window(700, 205, "Formant Filter Parameters");
formantparswindow->user_data((void*)(this));
{ Fl_Group* o = new Fl_Group(485, 47, 105, 113);
o->box(FL_THIN_UP_BOX);
{ Fl_Counter* o = new Fl_Counter(545, 80, 40, 15, "Formant ");
o->type(1);
o->labelfont(1);
o->labelsize(10);
o->minimum(0);
o->maximum(127);
o->step(1);
o->textsize(10);
o->callback((Fl_Callback*)cb_Formant);
o->align(Fl_Align(FL_ALIGN_LEFT));
o->bounds(0,FF_MAX_FORMANTS-1);
o->value(nformant);
} // Fl_Counter* o
{ Fl_Counter* o = new Fl_Counter(545, 55, 40, 20, "Vowel no.");
o->type(1);
o->labelfont(1);
o->labelsize(10);
o->minimum(0);
o->maximum(127);
o->step(1);
o->textfont(1);
o->textsize(11);
o->callback((Fl_Callback*)cb_Vowel);
o->align(Fl_Align(FL_ALIGN_LEFT));
o->bounds(0,FF_MAX_VOWELS-1);
o->value(nvowel);
} // Fl_Counter* o
{ formantparsgroup = new Fl_Group(490, 105, 95, 50);
formantparsgroup->box(FL_ENGRAVED_FRAME);
{ formant_freq_dial = new WidgetPDial(495, 115, 25, 25, "freq");
formant_freq_dial->tooltip("Formant frequency");
formant_freq_dial->box(FL_ROUND_UP_BOX);
formant_freq_dial->color(FL_BACKGROUND_COLOR);
formant_freq_dial->selection_color(FL_INACTIVE_COLOR);
formant_freq_dial->labeltype(FL_NORMAL_LABEL);
formant_freq_dial->labelfont(0);
formant_freq_dial->labelsize(10);
formant_freq_dial->labelcolor(FL_FOREGROUND_COLOR);
formant_freq_dial->maximum(127);
formant_freq_dial->step(1);
formant_freq_dial->callback((Fl_Callback*)cb_formant_freq_dial);
formant_freq_dial->align(Fl_Align(FL_ALIGN_BOTTOM));
formant_freq_dial->when(FL_WHEN_CHANGED);
} // WidgetPDial* formant_freq_dial
{ formant_q_dial = new WidgetPDial(525, 115, 24, 25, "Q");
formant_q_dial->tooltip("Formant\'s Q");
formant_q_dial->box(FL_ROUND_UP_BOX);
formant_q_dial->color(FL_BACKGROUND_COLOR);
formant_q_dial->selection_color(FL_INACTIVE_COLOR);
formant_q_dial->labeltype(FL_NORMAL_LABEL);
formant_q_dial->labelfont(0);
formant_q_dial->labelsize(10);
formant_q_dial->labelcolor(FL_FOREGROUND_COLOR);
formant_q_dial->maximum(127);
formant_q_dial->step(1);
formant_q_dial->callback((Fl_Callback*)cb_formant_q_dial);
formant_q_dial->align(Fl_Align(FL_ALIGN_BOTTOM));
formant_q_dial->when(FL_WHEN_CHANGED);
} // WidgetPDial* formant_q_dial
{ formant_amp_dial = new WidgetPDial(555, 115, 24, 25, "amp");
formant_amp_dial->tooltip("Formant amplitude");
formant_amp_dial->box(FL_ROUND_UP_BOX);
formant_amp_dial->color(FL_BACKGROUND_COLOR);
formant_amp_dial->selection_color(FL_INACTIVE_COLOR);
formant_amp_dial->labeltype(FL_NORMAL_LABEL);
formant_amp_dial->labelfont(0);
formant_amp_dial->labelsize(10);
formant_amp_dial->labelcolor(FL_FOREGROUND_COLOR);
formant_amp_dial->maximum(127);
formant_amp_dial->step(1);
formant_amp_dial->callback((Fl_Callback*)cb_formant_amp_dial);
formant_amp_dial->align(Fl_Align(FL_ALIGN_BOTTOM));
formant_amp_dial->when(FL_WHEN_CHANGED);
} // WidgetPDial* formant_amp_dial
formantparsgroup->end();
} // Fl_Group* formantparsgroup
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(590, 47, 100, 113);
o->box(FL_THIN_UP_BOX);
{ Fl_Counter* o = new Fl_Counter(595, 62, 55, 20, "Seq.Size");
o->type(1);
o->labelfont(1);
o->labelsize(10);
o->minimum(0);
o->maximum(127);
o->step(1);
o->textfont(1);
o->textsize(11);
o->callback((Fl_Callback*)cb_Seq);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->bounds(1,FF_MAX_SEQUENCE-1);
o->value(pars->Psequencesize);
} // Fl_Counter* o
{ Fl_Counter* o = new Fl_Counter(595, 97, 40, 15, "S.Pos.");
o->tooltip("Current position from the sequence");
o->type(1);
o->labelfont(1);
o->labelsize(10);
o->minimum(0);
o->maximum(127);
o->step(1);
o->textsize(10);
o->callback((Fl_Callback*)cb_S);
o->align(Fl_Align(FL_ALIGN_TOP_RIGHT));
o->bounds(0,FF_MAX_SEQUENCE-2);
o->value(nseqpos);
} // Fl_Counter* o
{ Fl_Counter* o = vowel_counter = new Fl_Counter(640, 97, 40, 15, "Vowel");
vowel_counter->type(1);
vowel_counter->labelsize(10);
vowel_counter->minimum(0);
vowel_counter->maximum(127);
vowel_counter->step(1);
vowel_counter->textsize(10);
vowel_counter->callback((Fl_Callback*)cb_vowel_counter);
vowel_counter->align(Fl_Align(FL_ALIGN_TOP));
o->bounds(0,FF_MAX_VOWELS-1);
} // Fl_Counter* vowel_counter
{ Fl_Check_Button* o = new Fl_Check_Button(625, 132, 60, 20, "Neg.Input");
o->tooltip("Negate the input from LFO/envelopes/etc.");
o->down_box(FL_DOWN_BOX);
o->labelsize(10);
o->callback((Fl_Callback*)cb_Neg);
o->value(pars->Psequencereversed);
} // Fl_Check_Button* o
{ WidgetPDial* o = strchdial = new WidgetPDial(595, 130, 25, 25, "Strch");
strchdial->tooltip("Sequence Stretch");
strchdial->box(FL_ROUND_UP_BOX);
strchdial->color(FL_BACKGROUND_COLOR);
strchdial->selection_color(FL_INACTIVE_COLOR);
strchdial->labeltype(FL_NORMAL_LABEL);
strchdial->labelfont(0);
strchdial->labelsize(10);
strchdial->labelcolor(FL_FOREGROUND_COLOR);
strchdial->maximum(127);
strchdial->step(1);
strchdial->callback((Fl_Callback*)cb_strchdial);
strchdial->align(Fl_Align(FL_ALIGN_TOP));
strchdial->when(FL_WHEN_CHANGED);
o->value(pars->Psequencestretch);
} // WidgetPDial* strchdial
o->end();
} // Fl_Group* o
{ Fl_Counter* o = new Fl_Counter(485, 15, 65, 20, "Num.Formants");
o->type(1);
o->labelfont(1);
o->labelsize(10);
o->minimum(0);
o->maximum(127);
o->step(1);
o->callback((Fl_Callback*)cb_Num);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->bounds(1,FF_MAX_FORMANTS);
o->value(pars->Pnumformants);
} // Fl_Counter* o
{ WidgetPDial* o = frsldial = new WidgetPDial(565, 15, 25, 25, "Fr.Sl.");
frsldial->tooltip("Formant\'s Slowness (Morphing)");
frsldial->box(FL_ROUND_UP_BOX);
frsldial->color(FL_BACKGROUND_COLOR);
frsldial->selection_color(FL_INACTIVE_COLOR);
frsldial->labeltype(FL_NORMAL_LABEL);
frsldial->labelfont(1);
frsldial->labelsize(10);
frsldial->labelcolor(FL_FOREGROUND_COLOR);
frsldial->maximum(127);
frsldial->step(1);
frsldial->callback((Fl_Callback*)cb_frsldial);
frsldial->align(Fl_Align(FL_ALIGN_TOP));
frsldial->when(FL_WHEN_CHANGED);
o->value(pars->Pformantslowness);
} // WidgetPDial* frsldial
{ Fl_Value_Output* o = centerfreqvo = new Fl_Value_Output(515, 164, 33, 18, "C.f.");
centerfreqvo->tooltip("Center Frequency (kHz)");
centerfreqvo->minimum(1);
centerfreqvo->maximum(10);
centerfreqvo->step(0.01);
centerfreqvo->value(1);
centerfreqvo->textfont(1);
centerfreqvo->callback((Fl_Callback*)cb_centerfreqvo);
centerfreqvo->when(3);
o->value(pars->getcenterfreq()/1000.0);
} // Fl_Value_Output* centerfreqvo
{ Fl_Value_Output* o = octavesfreqvo = new Fl_Value_Output(515, 182, 33, 18, "Oct.");
octavesfreqvo->tooltip("No. of octaves");
octavesfreqvo->minimum(1);
octavesfreqvo->maximum(127);
octavesfreqvo->step(1);
octavesfreqvo->value(5);
octavesfreqvo->textfont(1);
octavesfreqvo->callback((Fl_Callback*)cb_octavesfreqvo);
octavesfreqvo->when(3);
o->value(pars->getoctavesfreq());
} // Fl_Value_Output* octavesfreqvo
{ Fl_Slider* o = cfknob = new Fl_Slider(551, 167, 84, 15);
cfknob->type(5);
cfknob->box(FL_FLAT_BOX);
cfknob->maximum(127);
cfknob->callback((Fl_Callback*)cb_cfknob);
o->value(pars->Pcenterfreq);
} // Fl_Slider* cfknob
{ Fl_Slider* o = octknob = new Fl_Slider(551, 185, 84, 15);
octknob->type(5);
octknob->box(FL_FLAT_BOX);
octknob->maximum(127);
octknob->callback((Fl_Callback*)cb_octknob);
o->value(pars->Poctavesfreq);
} // Fl_Slider* octknob
{ FormantFilterGraph* o = formantfiltergraph = new FormantFilterGraph(5, 5, 475, 195);
formantfiltergraph->box(FL_BORDER_BOX);
formantfiltergraph->color(FL_BACKGROUND_COLOR);
formantfiltergraph->selection_color(FL_BACKGROUND_COLOR);
formantfiltergraph->labeltype(FL_NORMAL_LABEL);
formantfiltergraph->labelfont(0);
formantfiltergraph->labelsize(14);
formantfiltergraph->labelcolor(FL_FOREGROUND_COLOR);
formantfiltergraph->align(Fl_Align(FL_ALIGN_CENTER));
formantfiltergraph->when(FL_WHEN_RELEASE);
o->init(pars,&nvowel,&nformant);
} // FormantFilterGraph* formantfiltergraph
{ WidgetPDial* o = wvknob = new WidgetPDial(600, 15, 25, 25, "Vw.Cl.");
wvknob->tooltip("Vowel \"clearness\" (how the mixed vowels are avoided)");
wvknob->box(FL_ROUND_UP_BOX);
wvknob->color(FL_BACKGROUND_COLOR);
wvknob->selection_color(FL_INACTIVE_COLOR);
wvknob->labeltype(FL_NORMAL_LABEL);
wvknob->labelfont(1);
wvknob->labelsize(10);
wvknob->labelcolor(FL_FOREGROUND_COLOR);
wvknob->maximum(127);
wvknob->step(1);
wvknob->callback((Fl_Callback*)cb_wvknob);
wvknob->align(Fl_Align(FL_ALIGN_TOP));
wvknob->when(FL_WHEN_CHANGED);
o->value(pars->Pvowelclearness);
} // WidgetPDial* wvknob
{ Fl_Button* o = new Fl_Button(645, 180, 50, 25, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(635, 25, 25, 15, "C");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(11);
o->labelcolor(FL_BACKGROUND2_COLOR);
o->callback((Fl_Callback*)cb_C1);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(665, 25, 25, 15, "P");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(11);
o->labelcolor(FL_BACKGROUND2_COLOR);
o->callback((Fl_Callback*)cb_P1);
} // Fl_Button* o
{ new Fl_Box(635, 10, 55, 15, "Vowel");
} // Fl_Box* o
formantparswindow->end();
} // Fl_Double_Window* formantparswindow
return formantparswindow;
}

void FilterUI::update_formant_window() {
formant_freq_dial->value(pars->Pvowels[nvowel].formants[nformant].freq);
formant_q_dial->value(pars->Pvowels[nvowel].formants[nformant].q);
formant_amp_dial->value(pars->Pvowels[nvowel].formants[nformant].amp);
if (nformant<pars->Pnumformants) formantparsgroup->activate();
else formantparsgroup->deactivate();
if (nseqpos<pars->Psequencesize) vowel_counter->activate();
else vowel_counter->deactivate();
vowel_counter->value(pars->Psequence[nseqpos].nvowel);
}

void FilterUI::refresh() {
update_formant_window();
formantfiltergraph->redraw();
if (pars->Pcategory==0) svfiltertypechoice->value(pars->Ptype);
if (pars->Pcategory==2) analogfiltertypechoice->value(pars->Ptype);
filtertype->value(pars->Pcategory);
cfreqdial->value(pars->Pfreq);
qdial->value(pars->Pq);
freqtrdial->value(pars->Pfreqtrack);
gaindial->value(pars->Pgain);
stcounter->value(pars->Pstages);
int categ=pars->Pcategory;
if ((categ==0)||(categ==2)) {
if (categ==0) {
analogfiltertypechoice->show();
svfiltertypechoice->hide();
} else {
svfiltertypechoice->show();
analogfiltertypechoice->hide();
};
editbutton->hide();
formantparswindow->hide();
cfreqdial->label("C.freq");
} else {
analogfiltertypechoice->hide();
svfiltertypechoice->hide();
editbutton->show();
cfreqdial->label("BS.pos");
};
filterparamswindow->redraw();
}

void FilterUI::init(FilterParams *filterpars_,unsigned char *velsnsamp_,unsigned char *velsns_) {
pars=filterpars_;
velsnsamp=velsnsamp_;
velsns=velsns_;
make_window();
end();
make_formant_window();
filterui->resize(this->x(),this->y(),this->w(),this->h());
if (velsnsamp==NULL){
vsnsadial->deactivate();
vsnsadial->value(127);
} else vsnsadial->value(*velsnsamp);
if (velsns==NULL){
vsnsdial->deactivate();
vsnsdial->value(127);
} else vsnsdial->value(*velsns);
switchcategory(pars->Pcategory);
formantparswindow->label(this->label());
update_formant_window();
}

void FilterUI::switchcategory(int newcat) {
if (pars->Pcategory!=newcat){
pars->Pgain=64;
gaindial->value(64);
analogfiltertypechoice->value(0);
analogfiltertypechoice->do_callback();
svfiltertypechoice->value(0);
svfiltertypechoice->do_callback();
};
pars->Pcategory=newcat;
refresh();
}

void FilterUI::use_for_dynamic_filter() {
freqtrdial->deactivate();
gaindial->when(0);
cfknob->when(FL_WHEN_RELEASE);
octknob->when(FL_WHEN_RELEASE);
frsldial->when(0);
wvknob->when(0);
formant_freq_dial->when(0);
formant_q_dial->when(0);
formant_amp_dial->when(0);
strchdial->when(0);
}

+ 0
- 197
source/modules/carla_native/zynaddsubfx/UI/FilterUI.h View File

@@ -1,197 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef FilterUI_h
#define FilterUI_h
#include <FL/Fl.H>
#include "WidgetPDial.h"
#include "../globals.h"
#include <FL/Fl_Group.H>
#include "../Params/FilterParams.h"
#include <FL/Fl_Box.H>
#include <FL/fl_draw.H>
#include <FL/fl_ask.H>
#include "PresetsUI.h"
#include "common.H"

class FormantFilterGraph : public Fl_Box {
public:
FormantFilterGraph(int x,int y, int w, int h, const char *label=0);
void init(FilterParams *pars_,int *nvowel_,int *nformant_);
void draw_freq_line(float freq,int type);
void draw();
~FormantFilterGraph();
private:
FilterParams *pars;
int oldx,oldy;
int *nvowel,*nformant;
float *graphpoints;
};
#include <FL/Fl_Group.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Value_Output.H>
#include <FL/Fl_Slider.H>
#include <FL/Fl_Box.H>

class FilterUI : public Fl_Group,PresetsUI_ {
public:
FilterUI(int x,int y, int w, int h, const char *label=0);
~FilterUI();
Fl_Group* make_window();
Fl_Group *filterui;
Fl_Group *filterparamswindow;
Fl_Choice *analogfiltertypechoice;
private:
void cb_analogfiltertypechoice_i(Fl_Choice*, void*);
static void cb_analogfiltertypechoice(Fl_Choice*, void*);
static Fl_Menu_Item menu_analogfiltertypechoice[];
public:
Fl_Choice *svfiltertypechoice;
private:
void cb_svfiltertypechoice_i(Fl_Choice*, void*);
static void cb_svfiltertypechoice(Fl_Choice*, void*);
static Fl_Menu_Item menu_svfiltertypechoice[];
public:
Fl_Choice *filtertype;
private:
void cb_filtertype_i(Fl_Choice*, void*);
static void cb_filtertype(Fl_Choice*, void*);
static Fl_Menu_Item menu_filtertype[];
public:
WidgetPDial *cfreqdial;
private:
void cb_cfreqdial_i(WidgetPDial*, void*);
static void cb_cfreqdial(WidgetPDial*, void*);
public:
WidgetPDial *qdial;
private:
void cb_qdial_i(WidgetPDial*, void*);
static void cb_qdial(WidgetPDial*, void*);
public:
WidgetPDial *freqtrdial;
private:
void cb_freqtrdial_i(WidgetPDial*, void*);
static void cb_freqtrdial(WidgetPDial*, void*);
public:
WidgetPDial *vsnsadial;
private:
void cb_vsnsadial_i(WidgetPDial*, void*);
static void cb_vsnsadial(WidgetPDial*, void*);
public:
WidgetPDial *vsnsdial;
private:
void cb_vsnsdial_i(WidgetPDial*, void*);
static void cb_vsnsdial(WidgetPDial*, void*);
public:
WidgetPDial *gaindial;
private:
void cb_gaindial_i(WidgetPDial*, void*);
static void cb_gaindial(WidgetPDial*, void*);
public:
Fl_Choice *stcounter;
private:
void cb_stcounter_i(Fl_Choice*, void*);
static void cb_stcounter(Fl_Choice*, void*);
public:
Fl_Button *editbutton;
private:
void cb_editbutton_i(Fl_Button*, void*);
static void cb_editbutton(Fl_Button*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Double_Window* make_formant_window();
Fl_Double_Window *formantparswindow;
private:
void cb_Formant_i(Fl_Counter*, void*);
static void cb_Formant(Fl_Counter*, void*);
void cb_Vowel_i(Fl_Counter*, void*);
static void cb_Vowel(Fl_Counter*, void*);
public:
Fl_Group *formantparsgroup;
WidgetPDial *formant_freq_dial;
private:
void cb_formant_freq_dial_i(WidgetPDial*, void*);
static void cb_formant_freq_dial(WidgetPDial*, void*);
public:
WidgetPDial *formant_q_dial;
private:
void cb_formant_q_dial_i(WidgetPDial*, void*);
static void cb_formant_q_dial(WidgetPDial*, void*);
public:
WidgetPDial *formant_amp_dial;
private:
void cb_formant_amp_dial_i(WidgetPDial*, void*);
static void cb_formant_amp_dial(WidgetPDial*, void*);
void cb_Seq_i(Fl_Counter*, void*);
static void cb_Seq(Fl_Counter*, void*);
void cb_S_i(Fl_Counter*, void*);
static void cb_S(Fl_Counter*, void*);
public:
Fl_Counter *vowel_counter;
private:
void cb_vowel_counter_i(Fl_Counter*, void*);
static void cb_vowel_counter(Fl_Counter*, void*);
void cb_Neg_i(Fl_Check_Button*, void*);
static void cb_Neg(Fl_Check_Button*, void*);
public:
WidgetPDial *strchdial;
private:
void cb_strchdial_i(WidgetPDial*, void*);
static void cb_strchdial(WidgetPDial*, void*);
void cb_Num_i(Fl_Counter*, void*);
static void cb_Num(Fl_Counter*, void*);
public:
WidgetPDial *frsldial;
private:
void cb_frsldial_i(WidgetPDial*, void*);
static void cb_frsldial(WidgetPDial*, void*);
public:
Fl_Value_Output *centerfreqvo;
private:
void cb_centerfreqvo_i(Fl_Value_Output*, void*);
static void cb_centerfreqvo(Fl_Value_Output*, void*);
public:
Fl_Value_Output *octavesfreqvo;
private:
void cb_octavesfreqvo_i(Fl_Value_Output*, void*);
static void cb_octavesfreqvo(Fl_Value_Output*, void*);
public:
Fl_Slider *cfknob;
private:
void cb_cfknob_i(Fl_Slider*, void*);
static void cb_cfknob(Fl_Slider*, void*);
public:
Fl_Slider *octknob;
private:
void cb_octknob_i(Fl_Slider*, void*);
static void cb_octknob(Fl_Slider*, void*);
public:
FormantFilterGraph *formantfiltergraph;
WidgetPDial *wvknob;
private:
void cb_wvknob_i(WidgetPDial*, void*);
static void cb_wvknob(WidgetPDial*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_C1_i(Fl_Button*, void*);
static void cb_C1(Fl_Button*, void*);
void cb_P1_i(Fl_Button*, void*);
static void cb_P1(Fl_Button*, void*);
public:
void update_formant_window();
void refresh();
void init(FilterParams *filterpars_,unsigned char *velsnsamp_,unsigned char *velsns_);
void switchcategory(int newcat);
void use_for_dynamic_filter();
private:
FilterParams *pars;
unsigned char *velsnsamp,*velsns;
int nvowel,nformant,nseqpos;
};
#endif

+ 0
- 290
source/modules/carla_native/zynaddsubfx/UI/LFOUI.cpp View File

@@ -1,290 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "zynaddsubfx/UI/LFOUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later

void LFOUI::cb_freq_i(WidgetPDial* o, void*) {
pars->Pfreq=o->value();
}
void LFOUI::cb_freq(WidgetPDial* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_freq_i(o,v);
}

void LFOUI::cb_intensity_i(WidgetPDial* o, void*) {
pars->Pintensity=(int)o->value();
}
void LFOUI::cb_intensity(WidgetPDial* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_intensity_i(o,v);
}

void LFOUI::cb_delay_i(WidgetPDial* o, void*) {
pars->Pdelay=(int)o->value();
}
void LFOUI::cb_delay(WidgetPDial* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_delay_i(o,v);
}

void LFOUI::cb_startphase_i(WidgetPDial* o, void*) {
pars->Pstartphase=(int)o->value();
}
void LFOUI::cb_startphase(WidgetPDial* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_startphase_i(o,v);
}

void LFOUI::cb_randomness_i(WidgetPDial* o, void*) {
pars->Prandomness=(int)o->value();
}
void LFOUI::cb_randomness(WidgetPDial* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_randomness_i(o,v);
}

void LFOUI::cb_LFOtype_i(Fl_Choice* o, void*) {
pars->PLFOtype=(int)o->value();
}
void LFOUI::cb_LFOtype(Fl_Choice* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_LFOtype_i(o,v);
}

Fl_Menu_Item LFOUI::menu_LFOtype[] = {
{"SINE", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"TRI", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"SQR", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"R.up", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"R.dn", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"E1dn", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"E2dn", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{0,0,0,0,0,0,0,0,0}
};

void LFOUI::cb_continous_i(Fl_Check_Button* o, void*) {
pars->Pcontinous=(int)o->value();
}
void LFOUI::cb_continous(Fl_Check_Button* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_continous_i(o,v);
}

void LFOUI::cb_freqrand_i(WidgetPDial* o, void*) {
pars->Pfreqrand=(int)o->value();
}
void LFOUI::cb_freqrand(WidgetPDial* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_freqrand_i(o,v);
}

void LFOUI::cb_stretch_i(WidgetPDial* o, void*) {
pars->Pstretch=(int)o->value();
}
void LFOUI::cb_stretch(WidgetPDial* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_stretch_i(o,v);
}

void LFOUI::cb_C_i(Fl_Button*, void*) {
presetsui->copy(pars);
}
void LFOUI::cb_C(Fl_Button* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_C_i(o,v);
}

void LFOUI::cb_P_i(Fl_Button*, void*) {
presetsui->paste(pars,this);
}
void LFOUI::cb_P(Fl_Button* o, void* v) {
((LFOUI*)(o->parent()->parent()->user_data()))->cb_P_i(o,v);
}

LFOUI::LFOUI(int x,int y, int w, int h, const char *label):Fl_Group(x,y,w,h,label) {
pars=NULL;
}

LFOUI::~LFOUI() {
lfoui->hide();
hide();
//delete (lfoui);
}

Fl_Group* LFOUI::make_window() {
{ lfoui = new Fl_Group(0, 0, 230, 70);
lfoui->box(FL_FLAT_BOX);
lfoui->color(FL_LIGHT1);
lfoui->selection_color(FL_BACKGROUND_COLOR);
lfoui->labeltype(FL_NO_LABEL);
lfoui->labelfont(1);
lfoui->labelsize(14);
lfoui->labelcolor(FL_FOREGROUND_COLOR);
lfoui->user_data((void*)(this));
lfoui->align(Fl_Align(FL_ALIGN_TOP));
lfoui->when(FL_WHEN_RELEASE);
{ Fl_Group* o = lfoparamswindow = new Fl_Group(0, 0, 230, 70, "LFO");
lfoparamswindow->box(FL_UP_BOX);
lfoparamswindow->color(FL_CYAN);
lfoparamswindow->labeltype(FL_ENGRAVED_LABEL);
lfoparamswindow->labelsize(10);
lfoparamswindow->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ freq = new WidgetPDial(5, 20, 30, 30, "Freq.");
freq->tooltip("LFO Frequency");
freq->box(FL_ROUND_UP_BOX);
freq->color(FL_BACKGROUND_COLOR);
freq->selection_color(FL_INACTIVE_COLOR);
freq->labeltype(FL_NORMAL_LABEL);
freq->labelfont(0);
freq->labelsize(10);
freq->labelcolor(FL_FOREGROUND_COLOR);
freq->step(1e-05);
freq->callback((Fl_Callback*)cb_freq);
freq->align(Fl_Align(FL_ALIGN_BOTTOM));
freq->when(FL_WHEN_CHANGED);
} // WidgetPDial* freq
{ intensity = new WidgetPDial(40, 20, 30, 30, "Depth");
intensity->tooltip("LFO Amount");
intensity->box(FL_ROUND_UP_BOX);
intensity->color(FL_BACKGROUND_COLOR);
intensity->selection_color(FL_INACTIVE_COLOR);
intensity->labeltype(FL_NORMAL_LABEL);
intensity->labelfont(0);
intensity->labelsize(10);
intensity->labelcolor(FL_FOREGROUND_COLOR);
intensity->maximum(127);
intensity->step(1);
intensity->callback((Fl_Callback*)cb_intensity);
intensity->align(Fl_Align(FL_ALIGN_BOTTOM));
intensity->when(FL_WHEN_CHANGED);
} // WidgetPDial* intensity
{ delay = new WidgetPDial(110, 20, 30, 30, "Delay");
delay->tooltip("LFO delay");
delay->box(FL_ROUND_UP_BOX);
delay->color(FL_BACKGROUND_COLOR);
delay->selection_color(FL_INACTIVE_COLOR);
delay->labeltype(FL_NORMAL_LABEL);
delay->labelfont(0);
delay->labelsize(10);
delay->labelcolor(FL_FOREGROUND_COLOR);
delay->maximum(127);
delay->step(1);
delay->callback((Fl_Callback*)cb_delay);
delay->align(Fl_Align(FL_ALIGN_BOTTOM));
delay->when(FL_WHEN_CHANGED);
} // WidgetPDial* delay
{ startphase = new WidgetPDial(75, 20, 30, 30, "Start");
startphase->tooltip("LFO Startphase (leftmost is Random)");
startphase->box(FL_ROUND_UP_BOX);
startphase->color(FL_BACKGROUND_COLOR);
startphase->selection_color(FL_INACTIVE_COLOR);
startphase->labeltype(FL_NORMAL_LABEL);
startphase->labelfont(0);
startphase->labelsize(10);
startphase->labelcolor(FL_FOREGROUND_COLOR);
startphase->maximum(127);
startphase->step(1);
startphase->callback((Fl_Callback*)cb_startphase);
startphase->align(Fl_Align(FL_ALIGN_BOTTOM));
startphase->when(FL_WHEN_CHANGED);
} // WidgetPDial* startphase
{ randomness = new WidgetPDial(180, 7, 20, 20, "A.R.");
randomness->tooltip("LFO Amplitude Randomness");
randomness->box(FL_ROUND_UP_BOX);
randomness->color(FL_BACKGROUND_COLOR);
randomness->selection_color(FL_INACTIVE_COLOR);
randomness->labeltype(FL_NORMAL_LABEL);
randomness->labelfont(0);
randomness->labelsize(10);
randomness->labelcolor(FL_FOREGROUND_COLOR);
randomness->maximum(127);
randomness->step(1);
randomness->callback((Fl_Callback*)cb_randomness);
randomness->align(Fl_Align(FL_ALIGN_BOTTOM));
randomness->when(FL_WHEN_CHANGED);
} // WidgetPDial* randomness
{ LFOtype = new Fl_Choice(180, 40, 45, 15, "Type");
LFOtype->tooltip("LFO function");
LFOtype->down_box(FL_BORDER_BOX);
LFOtype->labelsize(10);
LFOtype->textsize(8);
LFOtype->callback((Fl_Callback*)cb_LFOtype);
LFOtype->align(Fl_Align(FL_ALIGN_BOTTOM));
LFOtype->menu(menu_LFOtype);
} // Fl_Choice* LFOtype
{ continous = new Fl_Check_Button(165, 35, 15, 15, "C.");
continous->tooltip("Continous LFO");
continous->down_box(FL_DOWN_BOX);
continous->labelsize(10);
continous->callback((Fl_Callback*)cb_continous);
continous->align(Fl_Align(FL_ALIGN_BOTTOM));
} // Fl_Check_Button* continous
{ freqrand = new WidgetPDial(205, 7, 20, 20, "F.R.");
freqrand->tooltip("LFO Frequency Randomness");
freqrand->box(FL_ROUND_UP_BOX);
freqrand->color(FL_BACKGROUND_COLOR);
freqrand->selection_color(FL_INACTIVE_COLOR);
freqrand->labeltype(FL_NORMAL_LABEL);
freqrand->labelfont(0);
freqrand->labelsize(10);
freqrand->labelcolor(FL_FOREGROUND_COLOR);
freqrand->maximum(127);
freqrand->step(1);
freqrand->callback((Fl_Callback*)cb_freqrand);
freqrand->align(Fl_Align(FL_ALIGN_BOTTOM));
freqrand->when(FL_WHEN_CHANGED);
} // WidgetPDial* freqrand
{ stretch = new WidgetPDial(144, 30, 20, 20, "Str.");
stretch->tooltip("LFO stretch");
stretch->box(FL_ROUND_UP_BOX);
stretch->color(FL_BACKGROUND_COLOR);
stretch->selection_color(FL_INACTIVE_COLOR);
stretch->labeltype(FL_NORMAL_LABEL);
stretch->labelfont(0);
stretch->labelsize(10);
stretch->labelcolor(FL_FOREGROUND_COLOR);
stretch->maximum(127);
stretch->step(1);
stretch->callback((Fl_Callback*)cb_stretch);
stretch->align(Fl_Align(FL_ALIGN_BOTTOM));
stretch->when(FL_WHEN_CHANGED);
} // WidgetPDial* stretch
{ Fl_Button* o = new Fl_Button(145, 10, 15, 15, "C");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(10);
o->labelcolor(FL_BACKGROUND2_COLOR);
o->callback((Fl_Callback*)cb_C);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(162, 10, 15, 15, "P");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(10);
o->labelcolor(FL_BACKGROUND2_COLOR);
o->callback((Fl_Callback*)cb_P);
} // Fl_Button* o
set_module_parameters(o);
lfoparamswindow->end();
} // Fl_Group* lfoparamswindow
lfoui->end();
} // Fl_Group* lfoui
return lfoui;
}

void LFOUI::refresh() {
freq->value(pars->Pfreq);
intensity->value(pars->Pintensity);
startphase->value(pars->Pstartphase);
delay->value(pars->Pdelay);
continous->value(pars->Pcontinous);
stretch->value(pars->Pstretch);
randomness->value(pars->Prandomness);
freqrand->value(pars->Pfreqrand);
LFOtype->value(pars->PLFOtype);
}

void LFOUI::init(LFOParams *lfopars_) {
pars=lfopars_;
make_window();
end();
refresh();
lfoui->resize(this->x(),this->y(),this->w(),this->h());
lfoparamswindow->label(this->label());
}

+ 0
- 84
source/modules/carla_native/zynaddsubfx/UI/LFOUI.h View File

@@ -1,84 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef LFOUI_h
#define LFOUI_h
#include <FL/Fl.H>
#include "WidgetPDial.h"
#include <stdio.h>
#include <stdlib.h>
#include "../globals.h"
#include <FL/Fl_Group.H>
#include "../Params/LFOParams.h"
#include <FL/Fl_Box.H>
#include <FL/fl_draw.H>
#include <FL/fl_ask.H>
#include "PresetsUI.h"
#include "common.H"
#include <FL/Fl_Group.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Button.H>

class LFOUI : public Fl_Group, PresetsUI_ {
public:
LFOUI(int x,int y, int w, int h, const char *label=0);
~LFOUI();
Fl_Group* make_window();
Fl_Group *lfoui;
Fl_Group *lfoparamswindow;
WidgetPDial *freq;
private:
void cb_freq_i(WidgetPDial*, void*);
static void cb_freq(WidgetPDial*, void*);
public:
WidgetPDial *intensity;
private:
void cb_intensity_i(WidgetPDial*, void*);
static void cb_intensity(WidgetPDial*, void*);
public:
WidgetPDial *delay;
private:
void cb_delay_i(WidgetPDial*, void*);
static void cb_delay(WidgetPDial*, void*);
public:
WidgetPDial *startphase;
private:
void cb_startphase_i(WidgetPDial*, void*);
static void cb_startphase(WidgetPDial*, void*);
public:
WidgetPDial *randomness;
private:
void cb_randomness_i(WidgetPDial*, void*);
static void cb_randomness(WidgetPDial*, void*);
public:
Fl_Choice *LFOtype;
private:
void cb_LFOtype_i(Fl_Choice*, void*);
static void cb_LFOtype(Fl_Choice*, void*);
static Fl_Menu_Item menu_LFOtype[];
public:
Fl_Check_Button *continous;
private:
void cb_continous_i(Fl_Check_Button*, void*);
static void cb_continous(Fl_Check_Button*, void*);
public:
WidgetPDial *freqrand;
private:
void cb_freqrand_i(WidgetPDial*, void*);
static void cb_freqrand(WidgetPDial*, void*);
public:
WidgetPDial *stretch;
private:
void cb_stretch_i(WidgetPDial*, void*);
static void cb_stretch(WidgetPDial*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
void refresh();
void init(LFOParams *lfopars_);
private:
LFOParams *pars;
};
#endif

+ 0
- 2558
source/modules/carla_native/zynaddsubfx/UI/MasterUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 460
source/modules/carla_native/zynaddsubfx/UI/MasterUI.h View File

@@ -1,460 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef MasterUI_h
#define MasterUI_h
#include <FL/Fl.H>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "WidgetPDial.h"
#include "ADnoteUI.h"
#include "SUBnoteUI.h"
#include "EffUI.h"
#include "VirKeyboard.h"
#include "ConfigUI.h"
#include "BankUI.h"
#include "PartUI.h"
#include "MicrotonalUI.h"
#include "PresetsUI.h"
#include "NioUI.h"
#include "../Misc/Master.h"
#include "../Misc/Part.h"
#include "../Misc/Util.h"
#include "common.H"
#if USE_NSM
#include "NSM.H"
extern NSM_Client *nsm;
#endif
#include "../globals.h"

class VUMeter : public Fl_Box {
public:
VUMeter(int x,int y, int w, int h, const char *label=0);
void init(Master *master_,int part_);
void draw_master();
void draw_part();
void draw();
static void tickdraw(VUMeter *o);
static void tick(void *v);
int handle(int event);
private:
Master *master;
int npart;
float olddbl,olddbr;
float oldrmsdbl,oldrmsdbr;
};

class SysEffSend : public WidgetPDial {
public:
SysEffSend(int x,int y, int w, int h, const char *label=0);
void init(Master *master_,int neff1_,int neff2_);
~SysEffSend();
int handle(int event);
private:
Master *master;
int neff1;
int neff2;
};
#include <FL/Fl_Group.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Slider.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Check_Button.H>

class Panellistitem : public Fl_Group {
Fl_Group* make_window();
Fl_Group *panellistitem;
Fl_Group *panellistitemgroup;
public:
Fl_Button *partname;
private:
void cb_partname_i(Fl_Button*, void*);
static void cb_partname(Fl_Button*, void*);
public:
Fl_Slider *partvolume;
private:
void cb_partvolume_i(Fl_Slider*, void*);
static void cb_partvolume(Fl_Slider*, void*);
public:
WidgetPDial *partpanning;
private:
void cb_partpanning_i(WidgetPDial*, void*);
static void cb_partpanning(WidgetPDial*, void*);
void cb_edit_i(Fl_Button*, void*);
static void cb_edit(Fl_Button*, void*);
public:
Fl_Choice *partrcv;
private:
void cb_partrcv_i(Fl_Choice*, void*);
static void cb_partrcv(Fl_Choice*, void*);
Fl_Check_Button *partenabled;
void cb_partenabled_i(Fl_Check_Button*, void*);
static void cb_partenabled(Fl_Check_Button*, void*);
public:
Panellistitem(int x,int y, int w, int h, const char *label=0);
void init(Master *master_, int npart_,BankUI *bankui_);
void refresh();
~Panellistitem();
private:
int npart;
Master *master;
BankUI *bankui;
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Menu_Bar.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Tabs.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Scroll.H>
#include <FL/Fl_Pack.H>

class MasterUI {
public:
Fl_Double_Window* make_window();
Fl_Double_Window *masterwindow;
private:
void cb_masterwindow_i(Fl_Double_Window*, void*);
static void cb_masterwindow(Fl_Double_Window*, void*);
public:
Fl_Menu_Bar *mastermenu;
static Fl_Menu_Item menu_mastermenu[];
private:
void cb_New_i(Fl_Menu_*, void*);
static void cb_New(Fl_Menu_*, void*);
void cb_Open_i(Fl_Menu_*, void*);
static void cb_Open(Fl_Menu_*, void*);
void cb_Save_i(Fl_Menu_*, void*);
static void cb_Save(Fl_Menu_*, void*);
void cb_Load_i(Fl_Menu_*, void*);
static void cb_Load(Fl_Menu_*, void*);
void cb_Save1_i(Fl_Menu_*, void*);
static void cb_Save1(Fl_Menu_*, void*);
void cb_Show_i(Fl_Menu_*, void*);
static void cb_Show(Fl_Menu_*, void*);
void cb_Settings_i(Fl_Menu_*, void*);
static void cb_Settings(Fl_Menu_*, void*);
void cb_N_i(Fl_Menu_*, void*);
static void cb_N(Fl_Menu_*, void*);
void cb_Copyright_i(Fl_Menu_*, void*);
static void cb_Copyright(Fl_Menu_*, void*);
void cb_E_i(Fl_Menu_*, void*);
static void cb_E(Fl_Menu_*, void*);
void cb_Clear_i(Fl_Menu_*, void*);
static void cb_Clear(Fl_Menu_*, void*);
void cb_Open1_i(Fl_Menu_*, void*);
static void cb_Open1(Fl_Menu_*, void*);
void cb_Save2_i(Fl_Menu_*, void*);
static void cb_Save2(Fl_Menu_*, void*);
void cb_Show1_i(Fl_Menu_*, void*);
static void cb_Show1(Fl_Menu_*, void*);
void cb_Virtual_i(Fl_Menu_*, void*);
static void cb_Virtual(Fl_Menu_*, void*);
public:
static Fl_Menu_Item *recordmenu;
private:
void cb_Choose_i(Fl_Menu_*, void*);
static void cb_Choose(Fl_Menu_*, void*);
void cb_Switch_i(Fl_Menu_*, void*);
static void cb_Switch(Fl_Menu_*, void*);
public:
WidgetPDial *mastervolumedial;
private:
void cb_mastervolumedial_i(WidgetPDial*, void*);
static void cb_mastervolumedial(WidgetPDial*, void*);
public:
Fl_Counter *masterkeyshiftcounter;
private:
void cb_masterkeyshiftcounter_i(Fl_Counter*, void*);
static void cb_masterkeyshiftcounter(Fl_Counter*, void*);
void cb_Panic_i(Fl_Button*, void*);
static void cb_Panic(Fl_Button*, void*);
public:
Fl_Group *partuigroup;
PartUI *partui;
Fl_Counter *syseffnocounter;
private:
void cb_syseffnocounter_i(Fl_Counter*, void*);
static void cb_syseffnocounter(Fl_Counter*, void*);
public:
Fl_Choice *sysefftype;
private:
void cb_sysefftype_i(Fl_Choice*, void*);
static void cb_sysefftype(Fl_Choice*, void*);
static Fl_Menu_Item menu_sysefftype[];
public:
Fl_Group *syseffectuigroup;
EffUI *syseffectui;
private:
void cb_Send_i(Fl_Button*, void*);
static void cb_Send(Fl_Button*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Counter *inseffnocounter;
private:
void cb_inseffnocounter_i(Fl_Counter*, void*);
static void cb_inseffnocounter(Fl_Counter*, void*);
public:
Fl_Choice *insefftype;
private:
void cb_insefftype_i(Fl_Choice*, void*);
static void cb_insefftype(Fl_Choice*, void*);
static Fl_Menu_Item menu_insefftype[];
public:
Fl_Group *inseffectuigroup;
EffUI *inseffectui;
Fl_Choice *inseffpart;
private:
void cb_inseffpart_i(Fl_Choice*, void*);
static void cb_inseffpart(Fl_Choice*, void*);
void cb_C1_i(Fl_Button*, void*);
static void cb_C1(Fl_Button*, void*);
void cb_P1_i(Fl_Button*, void*);
static void cb_P1(Fl_Button*, void*);
void cb_Scales_i(Fl_Button*, void*);
static void cb_Scales(Fl_Button*, void*);
public:
Fl_Button *recordbutton;
private:
void cb_recordbutton_i(Fl_Button*, void*);
static void cb_recordbutton(Fl_Button*, void*);
public:
Fl_Button *stopbutton;
private:
void cb_stopbutton_i(Fl_Button*, void*);
static void cb_stopbutton(Fl_Button*, void*);
public:
Fl_Button *pausebutton;
private:
void cb_pausebutton_i(Fl_Button*, void*);
static void cb_pausebutton(Fl_Button*, void*);
public:
Fl_Box *pauselabel;
Fl_Check_Button *nrpnbutton;
private:
void cb_nrpnbutton_i(Fl_Check_Button*, void*);
static void cb_nrpnbutton(Fl_Check_Button*, void*);
public:
Fl_Counter *npartcounter;
private:
void cb_npartcounter_i(Fl_Counter*, void*);
static void cb_npartcounter(Fl_Counter*, void*);
void cb_vK_i(Fl_Button*, void*);
static void cb_vK(Fl_Button*, void*);
void cb_Reset_i(Fl_Button*, void*);
static void cb_Reset(Fl_Button*, void*);
public:
WidgetPDial *globalfinedetuneslider;
private:
void cb_globalfinedetuneslider_i(WidgetPDial*, void*);
static void cb_globalfinedetuneslider(WidgetPDial*, void*);
void cb_Panel_i(Fl_Button*, void*);
static void cb_Panel(Fl_Button*, void*);
public:
Fl_Button *sm_indicator1;
Fl_Double_Window *aboutwindow;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
public:
Fl_Double_Window *syseffsendwindow;
private:
void cb_Close1_i(Fl_Button*, void*);
static void cb_Close1(Fl_Button*, void*);
public:
Fl_Double_Window *panelwindow;
private:
void cb_Close2_i(Fl_Button*, void*);
static void cb_Close2(Fl_Button*, void*);
void cb_Refresh_i(Fl_Button*, void*);
static void cb_Refresh(Fl_Button*, void*);
public:
Fl_Double_Window *simplemasterwindow;
private:
void cb_simplemasterwindow_i(Fl_Double_Window*, void*);
static void cb_simplemasterwindow(Fl_Double_Window*, void*);
public:
Fl_Menu_Bar *simplemastermenu;
static Fl_Menu_Item menu_simplemastermenu[];
private:
void cb_New1_i(Fl_Menu_*, void*);
static void cb_New1(Fl_Menu_*, void*);
void cb_Open2_i(Fl_Menu_*, void*);
static void cb_Open2(Fl_Menu_*, void*);
void cb_Save3_i(Fl_Menu_*, void*);
static void cb_Save3(Fl_Menu_*, void*);
void cb_Settings1_i(Fl_Menu_*, void*);
static void cb_Settings1(Fl_Menu_*, void*);
void cb_Copyright1_i(Fl_Menu_*, void*);
static void cb_Copyright1(Fl_Menu_*, void*);
void cb_E1_i(Fl_Menu_*, void*);
static void cb_E1(Fl_Menu_*, void*);
void cb_Open3_i(Fl_Menu_*, void*);
static void cb_Open3(Fl_Menu_*, void*);
void cb_Show2_i(Fl_Menu_*, void*);
static void cb_Show2(Fl_Menu_*, void*);
void cb_Switch1_i(Fl_Menu_*, void*);
static void cb_Switch1(Fl_Menu_*, void*);
Fl_Group *simplelistitemgroup;
public:
Fl_Button *partname;
private:
void cb_partname1_i(Fl_Button*, void*);
static void cb_partname1(Fl_Button*, void*);
public:
Fl_Slider *partpanning;
private:
void cb_partpanning1_i(Fl_Slider*, void*);
static void cb_partpanning1(Fl_Slider*, void*);
public:
Fl_Choice *partrcv;
private:
void cb_partrcv1_i(Fl_Choice*, void*);
static void cb_partrcv1(Fl_Choice*, void*);
public:
WidgetPDial *partvolume;
private:
void cb_partvolume1_i(WidgetPDial*, void*);
static void cb_partvolume1(WidgetPDial*, void*);
public:
Fl_Check_Button *simplepartportamento;
private:
void cb_simplepartportamento_i(Fl_Check_Button*, void*);
static void cb_simplepartportamento(Fl_Check_Button*, void*);
public:
Fl_Counter *simpleminkcounter;
private:
void cb_simpleminkcounter_i(Fl_Counter*, void*);
static void cb_simpleminkcounter(Fl_Counter*, void*);
public:
Fl_Counter *simplemaxkcounter;
private:
void cb_simplemaxkcounter_i(Fl_Counter*, void*);
static void cb_simplemaxkcounter(Fl_Counter*, void*);
void cb_m_i(Fl_Button*, void*);
static void cb_m(Fl_Button*, void*);
void cb_M_i(Fl_Button*, void*);
static void cb_M(Fl_Button*, void*);
void cb_R_i(Fl_Button*, void*);
static void cb_R(Fl_Button*, void*);
public:
Fl_Counter *simplepartkeyshiftcounter;
private:
void cb_simplepartkeyshiftcounter_i(Fl_Counter*, void*);
static void cb_simplepartkeyshiftcounter(Fl_Counter*, void*);
public:
WidgetPDial *simplesyseffsend;
private:
void cb_simplesyseffsend_i(WidgetPDial*, void*);
static void cb_simplesyseffsend(WidgetPDial*, void*);
Fl_Check_Button *partenabled;
void cb_partenabled1_i(Fl_Check_Button*, void*);
static void cb_partenabled1(Fl_Check_Button*, void*);
public:
VirKeys *virkeys;
Fl_Counter *simplesyseffnocounter;
private:
void cb_simplesyseffnocounter_i(Fl_Counter*, void*);
static void cb_simplesyseffnocounter(Fl_Counter*, void*);
public:
Fl_Choice *simplesysefftype;
private:
void cb_simplesysefftype_i(Fl_Choice*, void*);
static void cb_simplesysefftype(Fl_Choice*, void*);
static Fl_Menu_Item menu_simplesysefftype[];
public:
Fl_Group *simplesyseffectuigroup;
SimpleEffUI *simplesyseffectui;
private:
void cb_Send1_i(Fl_Button*, void*);
static void cb_Send1(Fl_Button*, void*);
void cb_P2_i(Fl_Button*, void*);
static void cb_P2(Fl_Button*, void*);
public:
Fl_Counter *simpleinseffnocounter;
private:
void cb_simpleinseffnocounter_i(Fl_Counter*, void*);
static void cb_simpleinseffnocounter(Fl_Counter*, void*);
public:
Fl_Choice *simpleinsefftype;
private:
void cb_simpleinsefftype_i(Fl_Choice*, void*);
static void cb_simpleinsefftype(Fl_Choice*, void*);
static Fl_Menu_Item menu_simpleinsefftype[];
public:
Fl_Group *simpleinseffectuigroup;
SimpleEffUI *simpleinseffectui;
Fl_Choice *simpleinseffpart;
private:
void cb_simpleinseffpart_i(Fl_Choice*, void*);
static void cb_simpleinseffpart(Fl_Choice*, void*);
void cb_P3_i(Fl_Button*, void*);
static void cb_P3(Fl_Button*, void*);
public:
WidgetPDial *simplemastervolumedial;
private:
void cb_simplemastervolumedial_i(WidgetPDial*, void*);
static void cb_simplemastervolumedial(WidgetPDial*, void*);
public:
Fl_Counter *simplemasterkeyshiftcounter;
private:
void cb_simplemasterkeyshiftcounter_i(Fl_Counter*, void*);
static void cb_simplemasterkeyshiftcounter(Fl_Counter*, void*);
void cb_Stop_i(Fl_Button*, void*);
static void cb_Stop(Fl_Button*, void*);
void cb_Reset1_i(Fl_Button*, void*);
static void cb_Reset1(Fl_Button*, void*);
public:
WidgetPDial *simpleglobalfinedetuneslider;
private:
void cb_simpleglobalfinedetuneslider_i(WidgetPDial*, void*);
static void cb_simpleglobalfinedetuneslider(WidgetPDial*, void*);
public:
Fl_Counter *simplenpartcounter;
private:
void cb_simplenpartcounter_i(Fl_Counter*, void*);
static void cb_simplenpartcounter(Fl_Counter*, void*);
void cb_Keyb_i(Fl_Counter*, void*);
static void cb_Keyb(Fl_Counter*, void*);
public:
Fl_Button *sm_indicator2;
Fl_Double_Window *selectuiwindow;
private:
void cb_selectuiwindow_i(Fl_Double_Window*, void*);
static void cb_selectuiwindow(Fl_Double_Window*, void*);
void cb_Advanced_i(Fl_Button*, void*);
static void cb_Advanced(Fl_Button*, void*);
void cb_Beginner_i(Fl_Button*, void*);
static void cb_Beginner(Fl_Button*, void*);
public:
void updatesendwindow();
void updatepanel();
void setfilelabel(const char *filename);
MasterUI(Master *master_,int *exitprogram_);
~MasterUI();
void showUI();
void simplerefresh();
void do_new_master_unconditional();
void do_new_master();
int do_load_master_unconditional(const char *filename, const char *display_name);
void do_load_master(const char* file = NULL);
void do_save_master(const char* file = NULL);
void refresh_master_ui();
private:
Master *master;
MicrotonalUI *microtonalui;
BankUI *bankui;
int ninseff,npart;
int nsyseff;
int *exitprogram;
SysEffSend *syseffsend[NUM_SYS_EFX][NUM_SYS_EFX];
VirKeyboard *virkeyboard;
ConfigUI *configui;
int swapefftype;
char masterwindowlabel[100];
Panellistitem *panellistitem[NUM_MIDI_PARTS];
NioUI nioui;
};
#endif

+ 0
- 463
source/modules/carla_native/zynaddsubfx/UI/MicrotonalUI.cpp View File

@@ -1,463 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "zynaddsubfx/UI/MicrotonalUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later

void MicrotonalUI::cb_Invert_i(Fl_Check_Button* o, void*) {
microtonal->Pinvertupdown=(int) o->value();
if (microtonal->Pinvertupdown==0) centerinvertcounter->deactivate();
else centerinvertcounter->activate();
}
void MicrotonalUI::cb_Invert(Fl_Check_Button* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Invert_i(o,v);
}

void MicrotonalUI::cb_centerinvertcounter_i(Fl_Counter* o, void*) {
microtonal->Pinvertupdowncenter=(int) o->value();
}
void MicrotonalUI::cb_centerinvertcounter(Fl_Counter* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_centerinvertcounter_i(o,v);
}

void MicrotonalUI::cb_applybutton_i(Fl_Button*, void*) {
apply();
}
void MicrotonalUI::cb_applybutton(Fl_Button* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_applybutton_i(o,v);
}

void MicrotonalUI::cb_octavesizeoutput_i(Fl_Value_Output* o, void*) {
o->value(microtonal->getoctavesize());
}
void MicrotonalUI::cb_octavesizeoutput(Fl_Value_Output* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_octavesizeoutput_i(o,v);
}

void MicrotonalUI::cb_nameinput_i(Fl_Input* o, void*) {
snprintf((char *)microtonal->Pname,MICROTONAL_MAX_NAME_LEN,"%s",o->value());
}
void MicrotonalUI::cb_nameinput(Fl_Input* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_nameinput_i(o,v);
}

void MicrotonalUI::cb_commentinput_i(Fl_Input* o, void*) {
snprintf((char *)microtonal->Pcomment,MICROTONAL_MAX_NAME_LEN,"%s",o->value());
}
void MicrotonalUI::cb_commentinput(Fl_Input* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_commentinput_i(o,v);
}

void MicrotonalUI::cb_Shift_i(Fl_Counter* o, void*) {
microtonal->Pscaleshift=(int) o->value()+64;
}
void MicrotonalUI::cb_Shift(Fl_Counter* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Shift_i(o,v);
}

void MicrotonalUI::cb_Import_i(Fl_Button*, void*) {
const char *filename;
filename=fl_file_chooser("Open:","(*.scl)",NULL,0);
if (filename==NULL) return;
int result=microtonal->loadscl(filename);
if (result==0) {
updateTuningsInput();
nameinput->cut(0,nameinput->maximum_size());
nameinput->insert((char *)microtonal->Pname);
nameinput->position(0);
commentinput->cut(0,commentinput->maximum_size());
commentinput->insert((char *)microtonal->Pname);
commentinput->position(0);
tuningsinput->position(0);
octavesizeoutput->do_callback();
} else {
fl_alert("Error: Could not load the file.");
};
}
void MicrotonalUI::cb_Import(Fl_Button* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Import_i(o,v);
}

void MicrotonalUI::cb_firstnotecounter_i(Fl_Counter* o, void*) {
microtonal->Pfirstkey=(int) o->value();
}
void MicrotonalUI::cb_firstnotecounter(Fl_Counter* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->parent()->user_data()))->cb_firstnotecounter_i(o,v);
}

void MicrotonalUI::cb_lastnotecounter_i(Fl_Counter* o, void*) {
microtonal->Plastkey=(int) o->value();
}
void MicrotonalUI::cb_lastnotecounter(Fl_Counter* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->parent()->user_data()))->cb_lastnotecounter_i(o,v);
}

void MicrotonalUI::cb_middlenotecounter_i(Fl_Counter* o, void*) {
microtonal->Pmiddlenote=(int) o->value();
}
void MicrotonalUI::cb_middlenotecounter(Fl_Counter* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->parent()->user_data()))->cb_middlenotecounter_i(o,v);
}

void MicrotonalUI::cb_mapsizeoutput_i(Fl_Value_Output* o, void*) {
o->value(microtonal->Pmapsize);
}
void MicrotonalUI::cb_mapsizeoutput(Fl_Value_Output* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->parent()->user_data()))->cb_mapsizeoutput_i(o,v);
}

void MicrotonalUI::cb_mappingenabledbutton_i(Fl_Check_Button* o, void*) {
int x=(int) o->value();
microtonal->Pmappingenabled=x;
if (x==0) keymappinggroup->deactivate();
else keymappinggroup->activate();
o->show();
}
void MicrotonalUI::cb_mappingenabledbutton(Fl_Check_Button* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_mappingenabledbutton_i(o,v);
}

void MicrotonalUI::cb_Import1_i(Fl_Button*, void*) {
const char *filename;
filename=fl_file_chooser("Open:","(*.kbm)",NULL,0);
if (filename==NULL) return;
int result=microtonal->loadkbm(filename);
if (result==0) {
updateMappingInput();
mappinginput->position(0);
mapsizeoutput->do_callback();
firstnotecounter->value(microtonal->Pfirstkey);
lastnotecounter->value(microtonal->Plastkey);
middlenotecounter->value(microtonal->Pmiddlenote);
mapsizeoutput->do_callback();
mappingenabledbutton->value(microtonal->Pmappingenabled);
mappingenabledbutton->do_callback();
afreqinput->value(microtonal->PAfreq);
anotecounter->value(microtonal->PAnote);
anotecounter->do_callback();
} else {
fl_alert("Error: Could not load the file.");
};
}
void MicrotonalUI::cb_Import1(Fl_Button* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_Import1_i(o,v);
}

void MicrotonalUI::cb_anotecounter_i(Fl_Counter* o, void*) {
microtonal->PAnote=(int) o->value();
if (microtonal->getnotefreq(microtonal->PAnote,0)<0.0) o->textcolor(FL_RED);
else o->textcolor(FL_BLACK);

o->redraw();
}
void MicrotonalUI::cb_anotecounter(Fl_Counter* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_anotecounter_i(o,v);
}

void MicrotonalUI::cb_afreqinput_i(Fl_Value_Input* o, void*) {
microtonal->PAfreq=o->value();
}
void MicrotonalUI::cb_afreqinput(Fl_Value_Input* o, void* v) {
((MicrotonalUI*)(o->parent()->parent()->user_data()))->cb_afreqinput_i(o,v);
}

void MicrotonalUI::cb_Close_i(Fl_Button*, void*) {
microtonaluiwindow->hide();
}
void MicrotonalUI::cb_Close(Fl_Button* o, void* v) {
((MicrotonalUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

void MicrotonalUI::cb_Enable_i(Fl_Check_Button* o, void*) {
microtonal->Penabled=(int) o->value();
if (microtonal->Penabled==0) microtonalgroup->deactivate();
else microtonalgroup->activate();
}
void MicrotonalUI::cb_Enable(Fl_Check_Button* o, void* v) {
((MicrotonalUI*)(o->parent()->user_data()))->cb_Enable_i(o,v);
}

Fl_Double_Window* MicrotonalUI::make_window() {
{ microtonaluiwindow = new Fl_Double_Window(405, 450, "Scales");
microtonaluiwindow->user_data((void*)(this));
{ Fl_Group* o = new Fl_Group(249, 2, 155, 45);
o->tooltip("Center where the note\'s freqs. are turned upside-down");
o->box(FL_ENGRAVED_FRAME);
{ Fl_Check_Button* o = new Fl_Check_Button(254, 13, 55, 30, "Invert keys");
o->tooltip("Turn upside-down the note frequencies");
o->down_box(FL_DOWN_BOX);
o->labelfont(1);
o->labelsize(11);
o->callback((Fl_Callback*)cb_Invert);
o->align(Fl_Align(132|FL_ALIGN_INSIDE));
o->value(microtonal->Pinvertupdown);
} // Fl_Check_Button* o
{ Fl_Counter* o = centerinvertcounter = new Fl_Counter(319, 13, 80, 20, "Center");
centerinvertcounter->labelfont(1);
centerinvertcounter->labelsize(11);
centerinvertcounter->minimum(0);
centerinvertcounter->maximum(127);
centerinvertcounter->step(1);
centerinvertcounter->textfont(1);
centerinvertcounter->callback((Fl_Callback*)cb_centerinvertcounter);
centerinvertcounter->align(Fl_Align(130));
o->lstep(microtonal->getoctavesize());
o->value(microtonal->Pinvertupdowncenter);
if (microtonal->Pinvertupdown==0) o->deactivate();
} // Fl_Counter* centerinvertcounter
o->end();
} // Fl_Group* o
{ Fl_Group* o = microtonalgroup = new Fl_Group(3, 49, 402, 398);
microtonalgroup->box(FL_ENGRAVED_FRAME);
{ applybutton = new Fl_Button(8, 413, 107, 28, "Retune");
applybutton->tooltip("Retune the synth accorging to the inputs from \"Tunnings\" and \"Keyboard Map\
pings\"");
applybutton->box(FL_THIN_UP_BOX);
applybutton->labeltype(FL_EMBOSSED_LABEL);
applybutton->labelfont(1);
applybutton->labelsize(13);
applybutton->callback((Fl_Callback*)cb_applybutton);
} // Fl_Button* applybutton
{ Fl_Value_Output* o = octavesizeoutput = new Fl_Value_Output(150, 423, 35, 17, "nts./oct.");
octavesizeoutput->tooltip("Notes/Octave");
octavesizeoutput->labelsize(10);
octavesizeoutput->maximum(500);
octavesizeoutput->step(1);
octavesizeoutput->value(12);
octavesizeoutput->textfont(1);
octavesizeoutput->callback((Fl_Callback*)cb_octavesizeoutput);
octavesizeoutput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->value(microtonal->getoctavesize());
} // Fl_Value_Output* octavesizeoutput
{ Fl_Input* o = nameinput = new Fl_Input(8, 64, 285, 25, "Name:");
nameinput->labelfont(1);
nameinput->labelsize(11);
nameinput->callback((Fl_Callback*)cb_nameinput);
nameinput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->insert((char *)microtonal->Pname);
} // Fl_Input* nameinput
{ tuningsinput = new Fl_Input(8, 144, 182, 264, "Tunings:");
tuningsinput->type(4);
tuningsinput->labelfont(1);
tuningsinput->labelsize(11);
tuningsinput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
tuningsinput->when(FL_WHEN_NEVER);
updateTuningsInput();
} // Fl_Input* tuningsinput
{ Fl_Input* o = commentinput = new Fl_Input(8, 104, 391, 25, "Comment:");
commentinput->labelfont(1);
commentinput->labelsize(11);
commentinput->callback((Fl_Callback*)cb_commentinput);
commentinput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->insert((char *)microtonal->Pcomment);
} // Fl_Input* commentinput
{ Fl_Counter* o = new Fl_Counter(313, 69, 70, 20, "Shift");
o->type(1);
o->labelsize(11);
o->minimum(-63);
o->maximum(64);
o->step(1);
o->textfont(1);
o->callback((Fl_Callback*)cb_Shift);
o->align(Fl_Align(FL_ALIGN_TOP));
o->value(microtonal->Pscaleshift-64);
} // Fl_Counter* o
{ Fl_Button* o = new Fl_Button(243, 411, 84, 15, "Import .SCL file");
o->tooltip("Inport Scala .scl file (tunnings)");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->labelsize(10);
o->callback((Fl_Callback*)cb_Import);
} // Fl_Button* o
{ keymappinggroup = new Fl_Group(193, 144, 206, 264, "Keyboard Mapping");
keymappinggroup->box(FL_ENGRAVED_BOX);
keymappinggroup->labelfont(1);
keymappinggroup->labelsize(11);
{ mappinginput = new Fl_Input(250, 147, 146, 258);
mappinginput->type(4);
mappinginput->labelfont(1);
mappinginput->labelsize(11);
mappinginput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
mappinginput->when(FL_WHEN_NEVER);
updateMappingInput();
} // Fl_Input* mappinginput
{ Fl_Counter* o = firstnotecounter = new Fl_Counter(199, 195, 42, 18, "First note");
firstnotecounter->tooltip("First MIDI note number");
firstnotecounter->type(1);
firstnotecounter->labelsize(10);
firstnotecounter->minimum(0);
firstnotecounter->maximum(127);
firstnotecounter->step(1);
firstnotecounter->textfont(1);
firstnotecounter->textsize(11);
firstnotecounter->callback((Fl_Callback*)cb_firstnotecounter);
firstnotecounter->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->value(microtonal->Pfirstkey);
} // Fl_Counter* firstnotecounter
{ Fl_Counter* o = lastnotecounter = new Fl_Counter(199, 225, 42, 18, "Last note");
lastnotecounter->tooltip("Last MIDI note number");
lastnotecounter->type(1);
lastnotecounter->labelsize(10);
lastnotecounter->minimum(0);
lastnotecounter->maximum(127);
lastnotecounter->step(1);
lastnotecounter->value(127);
lastnotecounter->textfont(1);
lastnotecounter->textsize(11);
lastnotecounter->callback((Fl_Callback*)cb_lastnotecounter);
lastnotecounter->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->value(microtonal->Plastkey);
} // Fl_Counter* lastnotecounter
{ Fl_Counter* o = middlenotecounter = new Fl_Counter(199, 267, 42, 18, "Midle note");
middlenotecounter->tooltip("Midle note (where scale degree 0 is mapped to)");
middlenotecounter->type(1);
middlenotecounter->labelsize(10);
middlenotecounter->minimum(0);
middlenotecounter->maximum(127);
middlenotecounter->step(1);
middlenotecounter->value(60);
middlenotecounter->textfont(1);
middlenotecounter->textsize(11);
middlenotecounter->callback((Fl_Callback*)cb_middlenotecounter);
middlenotecounter->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->value(microtonal->Pmiddlenote);
} // Fl_Counter* middlenotecounter
{ Fl_Value_Output* o = mapsizeoutput = new Fl_Value_Output(201, 382, 44, 20, "Map Size");
mapsizeoutput->labelsize(10);
mapsizeoutput->maximum(500);
mapsizeoutput->step(1);
mapsizeoutput->value(12);
mapsizeoutput->textfont(1);
mapsizeoutput->callback((Fl_Callback*)cb_mapsizeoutput);
mapsizeoutput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->value(microtonal->Pmapsize);
} // Fl_Value_Output* mapsizeoutput
keymappinggroup->end();
} // Fl_Group* keymappinggroup
{ Fl_Check_Button* o = mappingenabledbutton = new Fl_Check_Button(198, 150, 48, 21, "ON");
mappingenabledbutton->tooltip("Enable the Mapping (otherwise the mapping is linear)");
mappingenabledbutton->box(FL_FLAT_BOX);
mappingenabledbutton->down_box(FL_DOWN_BOX);
mappingenabledbutton->labelfont(1);
mappingenabledbutton->callback((Fl_Callback*)cb_mappingenabledbutton);
o->value(microtonal->Pmappingenabled);
if (microtonal->Pmappingenabled==0) keymappinggroup->deactivate();
} // Fl_Check_Button* mappingenabledbutton
{ Fl_Button* o = new Fl_Button(243, 428, 84, 16, "Import .kbm file");
o->tooltip("Inport Scala .kbm file (keyboard mapping)");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->labelsize(10);
o->callback((Fl_Callback*)cb_Import1);
} // Fl_Button* o
if (microtonal->Penabled==0) o->deactivate();
microtonalgroup->end();
} // Fl_Group* microtonalgroup
{ Fl_Group* o = new Fl_Group(108, 2, 140, 45);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Counter* o = anotecounter = new Fl_Counter(173, 17, 65, 20, "\"A\" Note");
anotecounter->tooltip("The \"A\" note (the reference note for which freq. (\"A\" freq) is given)");
anotecounter->labelfont(1);
anotecounter->labelsize(10);
anotecounter->minimum(0);
anotecounter->maximum(127);
anotecounter->step(1);
anotecounter->value(69);
anotecounter->textfont(1);
anotecounter->textsize(10);
anotecounter->callback((Fl_Callback*)cb_anotecounter);
anotecounter->align(Fl_Align(129));
o->lstep(12);
o->value(microtonal->PAnote);
} // Fl_Counter* anotecounter
{ Fl_Value_Input* o = afreqinput = new Fl_Value_Input(118, 17, 45, 20, "\"A\" Freq.");
afreqinput->tooltip("The freq. of \"A\" note (default=440.0)");
afreqinput->labelfont(1);
afreqinput->labelsize(10);
afreqinput->minimum(1);
afreqinput->maximum(20000);
afreqinput->step(0.001);
afreqinput->value(440);
afreqinput->textfont(1);
afreqinput->textsize(10);
afreqinput->callback((Fl_Callback*)cb_afreqinput);
afreqinput->align(Fl_Align(FL_ALIGN_TOP));
o->value(microtonal->PAfreq);
} // Fl_Value_Input* afreqinput
o->end();
} // Fl_Group* o
{ Fl_Button* o = new Fl_Button(333, 413, 67, 28, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
{ Fl_Check_Button* o = new Fl_Check_Button(3, 3, 102, 45, "Enable Microtonal");
o->box(FL_UP_BOX);
o->down_box(FL_DOWN_BOX);
o->labelfont(1);
o->labelsize(11);
o->callback((Fl_Callback*)cb_Enable);
o->align(Fl_Align(132|FL_ALIGN_INSIDE));
o->value(microtonal->Penabled);
} // Fl_Check_Button* o
microtonaluiwindow->end();
} // Fl_Double_Window* microtonaluiwindow
return microtonaluiwindow;
}

void MicrotonalUI::updateTuningsInput() {
char *tmpbuf=new char[100];
tuningsinput->cut(0,tuningsinput->maximum_size());
for (int i=0;i<microtonal->getoctavesize();i++){
if (i!=0) tuningsinput->insert("\n");
microtonal->tuningtoline(i,tmpbuf,100);
tuningsinput->insert(tmpbuf);
};
delete []tmpbuf;
}

void MicrotonalUI::updateMappingInput() {
char *tmpbuf=new char[100];
mappinginput->cut(0,tuningsinput->maximum_size());
for (int i=0;i<microtonal->Pmapsize;i++){
if (i!=0) mappinginput->insert("\n");
if ((microtonal->Pmapping[i])==-1)
snprintf(tmpbuf,100,"x");
else snprintf(tmpbuf,100,"%d",microtonal->Pmapping[i]);
mappinginput->insert(tmpbuf);
};
delete []tmpbuf;
}

MicrotonalUI::MicrotonalUI(Microtonal *microtonal_) {
microtonal=microtonal_;
make_window();
}

MicrotonalUI::~MicrotonalUI() {
microtonaluiwindow->hide();
delete(microtonaluiwindow);
}

void MicrotonalUI::show() {
microtonaluiwindow->show();
}

void MicrotonalUI::apply() {
int err=microtonal->texttotunings(tuningsinput->value());
if (err>=0) fl_alert("Parse Error: The input may contain only numbers (like 232.59)\n or divisions (like 121/64).");
if (err==-2) fl_alert("Parse Error: The input is empty.");
octavesizeoutput->do_callback();
microtonal->texttomapping(mappinginput->value());
mapsizeoutput->do_callback();
anotecounter->do_callback();
//applybutton->color(FL_GRAY);
}

+ 0
- 112
source/modules/carla_native/zynaddsubfx/UI/MicrotonalUI.h View File

@@ -1,112 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef MicrotonalUI_h
#define MicrotonalUI_h
#include <FL/Fl.H>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <FL/Fl_File_Chooser.H>
#include <FL/fl_ask.H>
#include "../Misc/Microtonal.h"
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Value_Output.H>
#include <FL/Fl_Input.H>
#include <FL/Fl_Value_Input.H>

class MicrotonalUI {
public:
Fl_Double_Window* make_window();
Fl_Double_Window *microtonaluiwindow;
private:
void cb_Invert_i(Fl_Check_Button*, void*);
static void cb_Invert(Fl_Check_Button*, void*);
public:
Fl_Counter *centerinvertcounter;
private:
void cb_centerinvertcounter_i(Fl_Counter*, void*);
static void cb_centerinvertcounter(Fl_Counter*, void*);
public:
Fl_Group *microtonalgroup;
Fl_Button *applybutton;
private:
void cb_applybutton_i(Fl_Button*, void*);
static void cb_applybutton(Fl_Button*, void*);
public:
Fl_Value_Output *octavesizeoutput;
private:
void cb_octavesizeoutput_i(Fl_Value_Output*, void*);
static void cb_octavesizeoutput(Fl_Value_Output*, void*);
public:
Fl_Input *nameinput;
private:
void cb_nameinput_i(Fl_Input*, void*);
static void cb_nameinput(Fl_Input*, void*);
public:
Fl_Input *tuningsinput;
Fl_Input *commentinput;
private:
void cb_commentinput_i(Fl_Input*, void*);
static void cb_commentinput(Fl_Input*, void*);
void cb_Shift_i(Fl_Counter*, void*);
static void cb_Shift(Fl_Counter*, void*);
void cb_Import_i(Fl_Button*, void*);
static void cb_Import(Fl_Button*, void*);
public:
Fl_Group *keymappinggroup;
Fl_Input *mappinginput;
Fl_Counter *firstnotecounter;
private:
void cb_firstnotecounter_i(Fl_Counter*, void*);
static void cb_firstnotecounter(Fl_Counter*, void*);
public:
Fl_Counter *lastnotecounter;
private:
void cb_lastnotecounter_i(Fl_Counter*, void*);
static void cb_lastnotecounter(Fl_Counter*, void*);
public:
Fl_Counter *middlenotecounter;
private:
void cb_middlenotecounter_i(Fl_Counter*, void*);
static void cb_middlenotecounter(Fl_Counter*, void*);
public:
Fl_Value_Output *mapsizeoutput;
private:
void cb_mapsizeoutput_i(Fl_Value_Output*, void*);
static void cb_mapsizeoutput(Fl_Value_Output*, void*);
public:
Fl_Check_Button *mappingenabledbutton;
private:
void cb_mappingenabledbutton_i(Fl_Check_Button*, void*);
static void cb_mappingenabledbutton(Fl_Check_Button*, void*);
void cb_Import1_i(Fl_Button*, void*);
static void cb_Import1(Fl_Button*, void*);
public:
Fl_Counter *anotecounter;
private:
void cb_anotecounter_i(Fl_Counter*, void*);
static void cb_anotecounter(Fl_Counter*, void*);
public:
Fl_Value_Input *afreqinput;
private:
void cb_afreqinput_i(Fl_Value_Input*, void*);
static void cb_afreqinput(Fl_Value_Input*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_Enable_i(Fl_Check_Button*, void*);
static void cb_Enable(Fl_Check_Button*, void*);
public:
void updateTuningsInput();
void updateMappingInput();
MicrotonalUI(Microtonal *microtonal_);
~MicrotonalUI();
void show();
void apply();
private:
Microtonal *microtonal;
};
#endif

+ 0
- 1412
source/modules/carla_native/zynaddsubfx/UI/OscilGenUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 282
source/modules/carla_native/zynaddsubfx/UI/OscilGenUI.h View File

@@ -1,282 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef OscilGenUI_h
#define OscilGenUI_h
#include <FL/Fl.H>
#include "../Synth/OscilGen.h"
#include "../Misc/Util.h"
#include "../Misc/Master.h"
#include "ResonanceUI.h"
#include <FL/Fl_Box.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Slider.H>
#include "WidgetPDial.h"
#include "EnvelopeUI.h"
#include "LFOUI.h"
#include "FilterUI.h"
#include "PresetsUI.h"
#include <FL/fl_draw.H>

class OscilSpectrum : public Fl_Box {
public:
OscilSpectrum(int x,int y, int w, int h, const char *label=0);
void init(OscilGen *oscil_,int oscbase_,Master *master_);
void draw();
private:
OscilGen *oscil;
int oscbase;
Master *master;
};

class PSlider : public Fl_Slider {
public:
PSlider(int x,int y, int w, int h, const char *label=0);
int handle(int event);
};

class Oscilloscope : public Fl_Box {
public:
Oscilloscope(int x,int y, int w, int h, const char *label=0);
void init(OscilGen *oscil_,Master *master_);
void init(OscilGen *oscil_,int oscbase_,Master *master_);
void init(OscilGen *oscil_,int oscbase_,int phase_,Master *master_);
void draw();
private:
OscilGen *oscil;
int oscbase;
public:
int phase;
private:
Master *master;
};
#include <FL/Fl_Box.H>

class Oscilharmonic : public Fl_Group {
Fl_Group* make_window();
Fl_Group *harmonic;
public:
PSlider *mag;
private:
void cb_mag_i(PSlider*, void*);
static void cb_mag(PSlider*, void*);
public:
PSlider *phase;
private:
void cb_phase_i(PSlider*, void*);
static void cb_phase(PSlider*, void*);
public:
Oscilharmonic(int x,int y, int w, int h, const char *label=0);
void init(OscilGen *oscil_,int n_,Fl_Group *display_,Fl_Widget *oldosc_,Fl_Widget *cbwidget_,Fl_Widget *applybutton_, Master *master_);
void refresh();
~Oscilharmonic();
private:
OscilGen *oscil;
Fl_Group *display;
int n;
Fl_Widget *oldosc,*cbwidget,*applybutton;
Master *master;
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Value_Slider.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Value_Output.H>
#include <FL/Fl_Light_Button.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Slider.H>
#include <FL/Fl_Scroll.H>
#include <FL/Fl_Pack.H>

class OscilEditor : public PresetsUI_ {
public:
Fl_Double_Window* make_window();
Fl_Double_Window *osceditUI;
Fl_Button *applybutton;
private:
void cb_applybutton_i(Fl_Button*, void*);
static void cb_applybutton(Fl_Button*, void*);
public:
Fl_Group *oscildisplaygroup;
Fl_Value_Slider *rndslider;
private:
void cb_rndslider_i(Fl_Value_Slider*, void*);
static void cb_rndslider(Fl_Value_Slider*, void*);
public:
Fl_Choice *hrndtype;
private:
void cb_hrndtype_i(Fl_Choice*, void*);
static void cb_hrndtype(Fl_Choice*, void*);
static Fl_Menu_Item menu_hrndtype[];
public:
WidgetPDial *hrnddial;
private:
void cb_hrnddial_i(WidgetPDial*, void*);
static void cb_hrnddial(WidgetPDial*, void*);
public:
Fl_Group *basefuncdisplaygroup;
WidgetPDial *bfslider;
private:
void cb_bfslider_i(WidgetPDial*, void*);
static void cb_bfslider(WidgetPDial*, void*);
public:
Fl_Choice *bftype;
private:
void cb_bftype_i(Fl_Choice*, void*);
static void cb_bftype(Fl_Choice*, void*);
static Fl_Menu_Item menu_bftype[];
public:
Fl_Value_Output *bfparval;
Fl_Group *basefuncmodulation;
Fl_Choice *bfmodtype;
private:
void cb_bfmodtype_i(Fl_Choice*, void*);
static void cb_bfmodtype(Fl_Choice*, void*);
static Fl_Menu_Item menu_bfmodtype[];
public:
WidgetPDial *bfmodpar1;
private:
void cb_bfmodpar1_i(WidgetPDial*, void*);
static void cb_bfmodpar1(WidgetPDial*, void*);
public:
WidgetPDial *bfmodpar2;
private:
void cb_bfmodpar2_i(WidgetPDial*, void*);
static void cb_bfmodpar2(WidgetPDial*, void*);
public:
WidgetPDial *bfmodpar3;
private:
void cb_bfmodpar3_i(WidgetPDial*, void*);
static void cb_bfmodpar3(WidgetPDial*, void*);
public:
Fl_Choice *magtype;
private:
void cb_magtype_i(Fl_Choice*, void*);
static void cb_magtype(Fl_Choice*, void*);
static Fl_Menu_Item menu_magtype[];
void cb_Use_i(Fl_Button*, void*);
static void cb_Use(Fl_Button*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_Clear_i(Fl_Button*, void*);
static void cb_Clear(Fl_Button*, void*);
public:
Fl_Choice *wshbutton;
private:
void cb_wshbutton_i(Fl_Choice*, void*);
static void cb_wshbutton(Fl_Choice*, void*);
static Fl_Menu_Item menu_wshbutton[];
public:
WidgetPDial *wshpar;
private:
void cb_wshpar_i(WidgetPDial*, void*);
static void cb_wshpar(WidgetPDial*, void*);
public:
Fl_Value_Output *wsparval;
Fl_Light_Button *autoclearbutton;
Fl_Choice *fltbutton;
private:
void cb_fltbutton_i(Fl_Choice*, void*);
static void cb_fltbutton(Fl_Choice*, void*);
static Fl_Menu_Item menu_fltbutton[];
public:
WidgetPDial *filtervalue1;
private:
void cb_filtervalue1_i(WidgetPDial*, void*);
static void cb_filtervalue1(WidgetPDial*, void*);
public:
Fl_Check_Button *filterpref;
private:
void cb_filterpref_i(Fl_Check_Button*, void*);
static void cb_filterpref(Fl_Check_Button*, void*);
public:
WidgetPDial *filtervalue2;
private:
void cb_filtervalue2_i(WidgetPDial*, void*);
static void cb_filtervalue2(WidgetPDial*, void*);
public:
Fl_Choice *sabutton;
private:
void cb_sabutton_i(Fl_Choice*, void*);
static void cb_sabutton(Fl_Choice*, void*);
static Fl_Menu_Item menu_sabutton[];
public:
WidgetPDial *sadjpar;
private:
void cb_sadjpar_i(WidgetPDial*, void*);
static void cb_sadjpar(WidgetPDial*, void*);
public:
Fl_Counter *harmonicshiftcounter;
private:
void cb_harmonicshiftcounter_i(Fl_Counter*, void*);
static void cb_harmonicshiftcounter(Fl_Counter*, void*);
public:
Fl_Check_Button *harmonicshiftpre;
private:
void cb_harmonicshiftpre_i(Fl_Check_Button*, void*);
static void cb_harmonicshiftpre(Fl_Check_Button*, void*);
void cb_R_i(Fl_Button*, void*);
static void cb_R(Fl_Button*, void*);
public:
Fl_Choice *adhrtype;
private:
void cb_adhrtype_i(Fl_Choice*, void*);
static void cb_adhrtype(Fl_Choice*, void*);
static Fl_Menu_Item menu_adhrtype[];
public:
WidgetPDial *adhrpow;
private:
void cb_adhrpow_i(WidgetPDial*, void*);
static void cb_adhrpow(WidgetPDial*, void*);
public:
WidgetPDial *adhrbf;
private:
void cb_adhrbf_i(WidgetPDial*, void*);
static void cb_adhrbf(WidgetPDial*, void*);
public:
Fl_Slider *adhrpar;
private:
void cb_adhrpar_i(Fl_Slider*, void*);
static void cb_adhrpar(Fl_Slider*, void*);
public:
Fl_Choice *modtype;
private:
void cb_modtype_i(Fl_Choice*, void*);
static void cb_modtype(Fl_Choice*, void*);
static Fl_Menu_Item menu_modtype[];
public:
WidgetPDial *modpar1;
private:
void cb_modpar1_i(WidgetPDial*, void*);
static void cb_modpar1(WidgetPDial*, void*);
public:
WidgetPDial *modpar2;
private:
void cb_modpar2_i(WidgetPDial*, void*);
static void cb_modpar2(WidgetPDial*, void*);
public:
WidgetPDial *modpar3;
private:
void cb_modpar3_i(WidgetPDial*, void*);
static void cb_modpar3(WidgetPDial*, void*);
void cb_Sine_i(Fl_Button*, void*);
static void cb_Sine(Fl_Button*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Scroll *_this_has_to_be_the_last;
Fl_Pack *harmonics;
OscilEditor(OscilGen *oscil_,Fl_Widget *oldosc_,Fl_Widget *cbwidget_,Fl_Widget *cbapplywidget_,Master *master_);
~OscilEditor();
void refresh();
void redrawoscil();
private:
OscilGen *oscil;
Fl_Widget *oldosc,*cbwidget,*cbapplywidget;
Oscilharmonic *h[MAX_AD_HARMONICS];
Master *master;
};
#endif

+ 0
- 1518
source/modules/carla_native/zynaddsubfx/UI/PADnoteUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 305
source/modules/carla_native/zynaddsubfx/UI/PADnoteUI.h View File

@@ -1,305 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef PADnoteUI_h
#define PADnoteUI_h
#include <FL/Fl.H>
#include "../Params/PADnoteParameters.h"
#include "../Misc/Util.h"
#include "../Misc/Master.h"
#include "ResonanceUI.h"
#include <FL/Fl_Box.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_File_Chooser.H>
#include "WidgetPDial.h"
#include "EnvelopeUI.h"
#include "LFOUI.h"
#include "FilterUI.h"
#include "OscilGenUI.h"
#include "PresetsUI.h"

class PADnoteHarmonicProfile : public Fl_Box {
public:
PADnoteHarmonicProfile(int x,int y, int w, int h, const char *label=0);
void init(PADnoteParameters *pars,Master *master_);
void draw();
private:
Master *master;
public:
PADnoteParameters *pars;
};

class PADnoteOvertonePosition : public Fl_Box {
public:
PADnoteOvertonePosition(int x,int y, int w, int h, const char *label=0);
void init(PADnoteParameters *pars,Master *master_);
void draw();
private:
Master *master;
public:
PADnoteParameters *pars;
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Tabs.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Value_Output.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Slider.H>
#include <FL/Fl_Value_Slider.H>

class PADnoteUI : public PresetsUI_ {
public:
PADnoteUI(PADnoteParameters *parameters,Master *master_);
Fl_Double_Window* make_window();
Fl_Double_Window *padnotewindow;
private:
void cb__i(Fl_Tabs*, void*);
static void cb_(Fl_Tabs*, void*);
public:
Fl_Group *harmonicstructuregroup;
Fl_Group *bwprofilegroup;
WidgetPDial *hpbasepar1;
private:
void cb_hpbasepar1_i(WidgetPDial*, void*);
static void cb_hpbasepar1(WidgetPDial*, void*);
public:
Fl_Choice *hpbasetype;
private:
void cb_hpbasetype_i(Fl_Choice*, void*);
static void cb_hpbasetype(Fl_Choice*, void*);
static Fl_Menu_Item menu_hpbasetype[];
public:
WidgetPDial *hpfreqmult;
private:
void cb_hpfreqmult_i(WidgetPDial*, void*);
static void cb_hpfreqmult(WidgetPDial*, void*);
public:
WidgetPDial *hpmpar1;
private:
void cb_hpmpar1_i(WidgetPDial*, void*);
static void cb_hpmpar1(WidgetPDial*, void*);
public:
WidgetPDial *hpmfreq;
private:
void cb_hpmfreq_i(WidgetPDial*, void*);
static void cb_hpmfreq(WidgetPDial*, void*);
public:
Fl_Choice *hpamptype;
private:
void cb_hpamptype_i(Fl_Choice*, void*);
static void cb_hpamptype(Fl_Choice*, void*);
static Fl_Menu_Item menu_hpamptype[];
public:
Fl_Choice *hpampmode;
private:
void cb_hpampmode_i(Fl_Choice*, void*);
static void cb_hpampmode(Fl_Choice*, void*);
static Fl_Menu_Item menu_hpampmode[];
public:
WidgetPDial *hpamppar1;
private:
void cb_hpamppar1_i(WidgetPDial*, void*);
static void cb_hpamppar1(WidgetPDial*, void*);
public:
WidgetPDial *hpamppar2;
private:
void cb_hpamppar2_i(WidgetPDial*, void*);
static void cb_hpamppar2(WidgetPDial*, void*);
public:
Fl_Check_Button *hpautoscale;
private:
void cb_hpautoscale_i(Fl_Check_Button*, void*);
static void cb_hpautoscale(Fl_Check_Button*, void*);
public:
Fl_Choice *hponehalf;
private:
void cb_hponehalf_i(Fl_Choice*, void*);
static void cb_hponehalf(Fl_Choice*, void*);
static Fl_Menu_Item menu_hponehalf[];
public:
WidgetPDial *hpwidth;
private:
void cb_hpwidth_i(WidgetPDial*, void*);
static void cb_hpwidth(WidgetPDial*, void*);
void cb_Change_i(Fl_Button*, void*);
static void cb_Change(Fl_Button*, void*);
public:
Fl_Box *cbwidget;
private:
void cb_cbwidget_i(Fl_Box*, void*);
static void cb_cbwidget(Fl_Box*, void*);
void cb_Resonance_i(Fl_Button*, void*);
static void cb_Resonance(Fl_Button*, void*);
public:
WidgetPDial *bwdial;
private:
void cb_bwdial_i(WidgetPDial*, void*);
static void cb_bwdial(WidgetPDial*, void*);
public:
Fl_Value_Output *bwcents;
Fl_Choice *hrpostype;
private:
void cb_hrpostype_i(Fl_Choice*, void*);
static void cb_hrpostype(Fl_Choice*, void*);
static Fl_Menu_Item menu_hrpostype[];
public:
WidgetPDial *hrpospar1;
private:
void cb_hrpospar1_i(WidgetPDial*, void*);
static void cb_hrpospar1(WidgetPDial*, void*);
public:
WidgetPDial *hrpospar2;
private:
void cb_hrpospar2_i(WidgetPDial*, void*);
static void cb_hrpospar2(WidgetPDial*, void*);
public:
WidgetPDial *hrpospar3;
private:
void cb_hrpospar3_i(WidgetPDial*, void*);
static void cb_hrpospar3(WidgetPDial*, void*);
public:
Fl_Choice *bwscale;
private:
void cb_bwscale_i(Fl_Choice*, void*);
static void cb_bwscale(Fl_Choice*, void*);
static Fl_Menu_Item menu_bwscale[];
public:
Fl_Group *overtonepos;
Fl_Choice *qsamplesize;
private:
void cb_qsamplesize_i(Fl_Choice*, void*);
static void cb_qsamplesize(Fl_Choice*, void*);
static Fl_Menu_Item menu_qsamplesize[];
public:
Fl_Choice *qsmpoct;
private:
void cb_qsmpoct_i(Fl_Choice*, void*);
static void cb_qsmpoct(Fl_Choice*, void*);
static Fl_Menu_Item menu_qsmpoct[];
public:
Fl_Choice *qoct;
private:
void cb_qoct_i(Fl_Choice*, void*);
static void cb_qoct(Fl_Choice*, void*);
static Fl_Menu_Item menu_qoct[];
public:
Fl_Choice *qbasenote;
private:
void cb_qbasenote_i(Fl_Choice*, void*);
static void cb_qbasenote(Fl_Choice*, void*);
static Fl_Menu_Item menu_qbasenote[];
public:
Fl_Group *hprofile;
Fl_Choice *spectrummode;
private:
void cb_spectrummode_i(Fl_Choice*, void*);
static void cb_spectrummode(Fl_Choice*, void*);
static Fl_Menu_Item menu_spectrummode[];
public:
EnvelopeUI *freqenv;
Fl_Counter *octave;
private:
void cb_octave_i(Fl_Counter*, void*);
static void cb_octave(Fl_Counter*, void*);
public:
Fl_Counter *coarsedet;
private:
void cb_coarsedet_i(Fl_Counter*, void*);
static void cb_coarsedet(Fl_Counter*, void*);
public:
LFOUI *freqlfo;
Fl_Slider *detune;
private:
void cb_detune_i(Fl_Slider*, void*);
static void cb_detune(Fl_Slider*, void*);
public:
Fl_Value_Output *detunevalueoutput;
private:
void cb_detunevalueoutput_i(Fl_Value_Output*, void*);
static void cb_detunevalueoutput(Fl_Value_Output*, void*);
public:
Fl_Choice *detunetype;
private:
void cb_detunetype_i(Fl_Choice*, void*);
static void cb_detunetype(Fl_Choice*, void*);
public:
Fl_Check_Button *hz440;
private:
void cb_hz440_i(Fl_Check_Button*, void*);
static void cb_hz440(Fl_Check_Button*, void*);
public:
WidgetPDial *fixedfreqetdial;
private:
void cb_fixedfreqetdial_i(WidgetPDial*, void*);
static void cb_fixedfreqetdial(WidgetPDial*, void*);
public:
Fl_Value_Slider *volume;
private:
void cb_volume_i(Fl_Value_Slider*, void*);
static void cb_volume(Fl_Value_Slider*, void*);
public:
Fl_Value_Slider *vsns;
private:
void cb_vsns_i(Fl_Value_Slider*, void*);
static void cb_vsns(Fl_Value_Slider*, void*);
public:
WidgetPDial *pan;
private:
void cb_pan_i(WidgetPDial*, void*);
static void cb_pan(WidgetPDial*, void*);
public:
WidgetPDial *pstr;
private:
void cb_pstr_i(WidgetPDial*, void*);
static void cb_pstr(WidgetPDial*, void*);
public:
WidgetPDial *pt;
private:
void cb_pt_i(WidgetPDial*, void*);
static void cb_pt(WidgetPDial*, void*);
public:
WidgetPDial *pstc;
private:
void cb_pstc_i(WidgetPDial*, void*);
static void cb_pstc(WidgetPDial*, void*);
public:
WidgetPDial *pvel;
private:
void cb_pvel_i(WidgetPDial*, void*);
static void cb_pvel(WidgetPDial*, void*);
public:
EnvelopeUI *ampenv;
LFOUI *amplfo;
Fl_Check_Button *stereo;
private:
void cb_stereo_i(Fl_Check_Button*, void*);
static void cb_stereo(Fl_Check_Button*, void*);
public:
EnvelopeUI *filterenv;
LFOUI *filterlfo;
FilterUI *filterui;
Fl_Button *applybutton;
private:
void cb_applybutton_i(Fl_Button*, void*);
static void cb_applybutton(Fl_Button*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
void cb_export_i(Fl_Button*, void*);
static void cb_export(Fl_Button*, void*);
public:
void refresh();
~PADnoteUI();
PADnoteParameters *pars;
Master *master;
OscilEditor *oscui;
Oscilloscope *osc;
ResonanceUI *resui;
};
#endif

+ 0
- 1872
source/modules/carla_native/zynaddsubfx/UI/PartUI.cpp
File diff suppressed because it is too large
View File


+ 0
- 333
source/modules/carla_native/zynaddsubfx/UI/PartUI.h View File

@@ -1,333 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef PartUI_h
#define PartUI_h
#include <FL/Fl.H>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "WidgetPDial.h"
#include "EffUI.h"
#include "BankUI.h"
#include "ADnoteUI.h"
#include "SUBnoteUI.h"
#include "PADnoteUI.h"
#include "../Misc/Config.h"
#include "../Misc/Master.h"
#include "../Misc/Part.h"

class PartSysEffSend : public Fl_Group {
Fl_Group* make_window();
Fl_Group *syseffsend;
void cb_01_i(WidgetPDial*, void*);
static void cb_01(WidgetPDial*, void*);
public:
PartSysEffSend(int x,int y, int w, int h, const char *label=0);
void init(Master *master_,int npart_,int neff_);
~PartSysEffSend();
private:
Master *master;
int neff;
int npart;
};
#include <FL/Fl_Group.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Choice.H>

class PartKitItem : public Fl_Group {
Fl_Group* make_window();
Fl_Group *partkititem;
Fl_Group *partkititemgroup;
public:
Fl_Counter *minkcounter;
private:
void cb_minkcounter_i(Fl_Counter*, void*);
static void cb_minkcounter(Fl_Counter*, void*);
void cb_m_i(Fl_Button*, void*);
static void cb_m(Fl_Button*, void*);
void cb_M_i(Fl_Button*, void*);
static void cb_M(Fl_Button*, void*);
void cb_R_i(Fl_Button*, void*);
static void cb_R(Fl_Button*, void*);
public:
Fl_Button *adeditbutton;
private:
void cb_adeditbutton_i(Fl_Button*, void*);
static void cb_adeditbutton(Fl_Button*, void*);
public:
Fl_Button *subeditbutton;
private:
void cb_subeditbutton_i(Fl_Button*, void*);
static void cb_subeditbutton(Fl_Button*, void*);
Fl_Check_Button *mutedcheck;
void cb_mutedcheck_i(Fl_Check_Button*, void*);
static void cb_mutedcheck(Fl_Check_Button*, void*);
public:
Fl_Counter *maxkcounter;
private:
void cb_maxkcounter_i(Fl_Counter*, void*);
static void cb_maxkcounter(Fl_Counter*, void*);
public:
Fl_Button *labelbutton;
private:
void cb_labelbutton_i(Fl_Button*, void*);
static void cb_labelbutton(Fl_Button*, void*);
Fl_Check_Button *adcheck;
void cb_adcheck_i(Fl_Check_Button*, void*);
static void cb_adcheck(Fl_Check_Button*, void*);
Fl_Check_Button *subcheck;
void cb_subcheck_i(Fl_Check_Button*, void*);
static void cb_subcheck(Fl_Check_Button*, void*);
public:
Fl_Choice *sendtoeffect;
private:
void cb_sendtoeffect_i(Fl_Choice*, void*);
static void cb_sendtoeffect(Fl_Choice*, void*);
public:
Fl_Button *padeditbutton;
private:
void cb_padeditbutton_i(Fl_Button*, void*);
static void cb_padeditbutton(Fl_Button*, void*);
Fl_Check_Button *padcheck;
void cb_padcheck_i(Fl_Check_Button*, void*);
static void cb_padcheck(Fl_Check_Button*, void*);
Fl_Check_Button *enabledcheck;
void cb_enabledcheck_i(Fl_Check_Button*, void*);
static void cb_enabledcheck(Fl_Check_Button*, void*);
public:
PartKitItem(int x,int y, int w, int h, const char *label=0);
void refresh();
void init(Part *part_,int n_,Master *master_,class PartUI *partui_);
~PartKitItem();
private:
Part *part;
int n;
Master *master;
char label[10];
class PartUI *partui;
};
#include <FL/Fl_Scroll.H>
#include <FL/Fl_Pack.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Input.H>

class PartUI : public Fl_Group {
Fl_Group* make_window();
Fl_Group *partgroup;
public:
Fl_Group *partgroupui;
private:
void cb_Pan_i(WidgetPDial*, void*);
static void cb_Pan(WidgetPDial*, void*);
void cb_KeyShift_i(Fl_Counter*, void*);
static void cb_KeyShift(Fl_Counter*, void*);
void cb_Grand_i(Fl_Button*, void*);
static void cb_Grand(Fl_Button*, void*);
void cb_NoteOn_i(Fl_Check_Button*, void*);
static void cb_NoteOn(Fl_Check_Button*, void*);
public:
Fl_Counter *minkcounter;
private:
void cb_minkcounter1_i(Fl_Counter*, void*);
static void cb_minkcounter1(Fl_Counter*, void*);
public:
Fl_Counter *maxkcounter;
private:
void cb_maxkcounter1_i(Fl_Counter*, void*);
static void cb_maxkcounter1(Fl_Counter*, void*);
void cb_Volume_i(WidgetPDial*, void*);
static void cb_Volume(WidgetPDial*, void*);
void cb_Vel_i(WidgetPDial*, void*);
static void cb_Vel(WidgetPDial*, void*);
void cb_Vel1_i(WidgetPDial*, void*);
static void cb_Vel1(WidgetPDial*, void*);
void cb_Controllers_i(Fl_Button*, void*);
static void cb_Controllers(Fl_Button*, void*);
void cb_Portamento_i(Fl_Check_Button*, void*);
static void cb_Portamento(Fl_Check_Button*, void*);
void cb_Edit_i(Fl_Button*, void*);
static void cb_Edit(Fl_Button*, void*);
void cb_m1_i(Fl_Button*, void*);
static void cb_m1(Fl_Button*, void*);
void cb_M1_i(Fl_Button*, void*);
static void cb_M1(Fl_Button*, void*);
void cb_R1_i(Fl_Button*, void*);
static void cb_R1(Fl_Button*, void*);
void cb_MIDI_i(Fl_Choice*, void*);
static void cb_MIDI(Fl_Choice*, void*);
public:
Fl_Choice *keylimitlist;
private:
void cb_keylimitlist_i(Fl_Choice*, void*);
static void cb_keylimitlist(Fl_Choice*, void*);
void cb_Mode_i(Fl_Choice*, void*);
static void cb_Mode(Fl_Choice*, void*);
void cb_Enabled_i(Fl_Check_Button*, void*);
static void cb_Enabled(Fl_Check_Button*, void*);
Fl_Double_Window *ctlwindow;
void cb_Expr_i(Fl_Check_Button*, void*);
static void cb_Expr(Fl_Check_Button*, void*);
void cb_PanDpth_i(WidgetPDial*, void*);
static void cb_PanDpth(WidgetPDial*, void*);
void cb_FltCut_i(WidgetPDial*, void*);
static void cb_FltCut(WidgetPDial*, void*);
void cb_FltQ_i(WidgetPDial*, void*);
static void cb_FltQ(WidgetPDial*, void*);
void cb_BwDpth_i(WidgetPDial*, void*);
static void cb_BwDpth(WidgetPDial*, void*);
void cb_ModWh_i(WidgetPDial*, void*);
static void cb_ModWh(WidgetPDial*, void*);
void cb_PWheelB_i(Fl_Counter*, void*);
static void cb_PWheelB(Fl_Counter*, void*);
void cb_FMamp_i(Fl_Check_Button*, void*);
static void cb_FMamp(Fl_Check_Button*, void*);
void cb_Vol_i(Fl_Check_Button*, void*);
static void cb_Vol(Fl_Check_Button*, void*);
void cb_Sustain_i(Fl_Check_Button*, void*);
static void cb_Sustain(Fl_Check_Button*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_Reset_i(Fl_Button*, void*);
static void cb_Reset(Fl_Button*, void*);
void cb_Rcv_i(Fl_Check_Button*, void*);
static void cb_Rcv(Fl_Check_Button*, void*);
void cb_time_i(WidgetPDial*, void*);
static void cb_time(WidgetPDial*, void*);
void cb_thresh_i(Fl_Counter*, void*);
static void cb_thresh(Fl_Counter*, void*);
void cb_th_i(Fl_Check_Button*, void*);
static void cb_th(Fl_Check_Button*, void*);
void cb_t_i(WidgetPDial*, void*);
static void cb_t(WidgetPDial*, void*);
public:
WidgetPDial *propta;
private:
void cb_propta_i(WidgetPDial*, void*);
static void cb_propta(WidgetPDial*, void*);
public:
WidgetPDial *proptb;
private:
void cb_proptb_i(WidgetPDial*, void*);
static void cb_proptb(WidgetPDial*, void*);
void cb_Proprt_i(Fl_Check_Button*, void*);
static void cb_Proprt(Fl_Check_Button*, void*);
void cb_BWdpth_i(WidgetPDial*, void*);
static void cb_BWdpth(WidgetPDial*, void*);
void cb_CFdpth_i(WidgetPDial*, void*);
static void cb_CFdpth(WidgetPDial*, void*);
void cb_Exp_i(Fl_Check_Button*, void*);
static void cb_Exp(Fl_Check_Button*, void*);
void cb_Exp1_i(Fl_Check_Button*, void*);
static void cb_Exp1(Fl_Check_Button*, void*);
Fl_Double_Window *partfx;
public:
Fl_Counter *inseffnocounter;
private:
void cb_inseffnocounter_i(Fl_Counter*, void*);
static void cb_inseffnocounter(Fl_Counter*, void*);
public:
Fl_Choice *insefftype;
private:
void cb_insefftype_i(Fl_Choice*, void*);
static void cb_insefftype(Fl_Choice*, void*);
static Fl_Menu_Item menu_insefftype[];
public:
Fl_Group *inseffectuigroup;
EffUI *inseffectui;
private:
void cb_Close1_i(Fl_Button*, void*);
static void cb_Close1(Fl_Button*, void*);
public:
Fl_Choice *sendtochoice;
private:
void cb_sendtochoice_i(Fl_Choice*, void*);
static void cb_sendtochoice(Fl_Choice*, void*);
static Fl_Menu_Item menu_sendtochoice[];
public:
Fl_Check_Button *bypasseff;
private:
void cb_bypasseff_i(Fl_Check_Button*, void*);
static void cb_bypasseff(Fl_Check_Button*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Double_Window *instrumentkitlist;
private:
void cb_Close2_i(Fl_Button*, void*);
static void cb_Close2(Fl_Button*, void*);
public:
Fl_Scroll *kitlist;
private:
void cb_Mode1_i(Fl_Choice*, void*);
static void cb_Mode1(Fl_Choice*, void*);
static Fl_Menu_Item menu_Mode[];
void cb_Drum_i(Fl_Check_Button*, void*);
static void cb_Drum(Fl_Check_Button*, void*);
public:
Fl_Double_Window *instrumenteditwindow;
Fl_Button *padeditbutton;
private:
void cb_padeditbutton1_i(Fl_Button*, void*);
static void cb_padeditbutton1(Fl_Button*, void*);
public:
Fl_Check_Button *padsynenabledcheck;
private:
void cb_padsynenabledcheck_i(Fl_Check_Button*, void*);
static void cb_padsynenabledcheck(Fl_Check_Button*, void*);
public:
Fl_Check_Button *adsynenabledcheck;
private:
void cb_adsynenabledcheck_i(Fl_Check_Button*, void*);
static void cb_adsynenabledcheck(Fl_Check_Button*, void*);
public:
Fl_Button *adeditbutton;
private:
void cb_adeditbutton1_i(Fl_Button*, void*);
static void cb_adeditbutton1(Fl_Button*, void*);
public:
Fl_Check_Button *subsynenabledcheck;
private:
void cb_subsynenabledcheck_i(Fl_Check_Button*, void*);
static void cb_subsynenabledcheck(Fl_Check_Button*, void*);
public:
Fl_Button *subeditbutton;
private:
void cb_subeditbutton1_i(Fl_Button*, void*);
static void cb_subeditbutton1(Fl_Button*, void*);
void cb_Kit_i(Fl_Button*, void*);
static void cb_Kit(Fl_Button*, void*);
void cb_Effects_i(Fl_Button*, void*);
static void cb_Effects(Fl_Button*, void*);
void cb_Author_i(Fl_Input*, void*);
static void cb_Author(Fl_Input*, void*);
void cb_Comments_i(Fl_Input*, void*);
static void cb_Comments(Fl_Input*, void*);
void cb_Type_i(Fl_Choice*, void*);
static void cb_Type(Fl_Choice*, void*);
static Fl_Menu_Item menu_Type[];
void cb_Close3_i(Fl_Button*, void*);
static void cb_Close3(Fl_Button*, void*);
public:
PartUI(int x,int y, int w, int h, const char *label=0);
void init(Part *part_,Master *master_,int npart_,BankUI *bankui_);
void showparameters(int kititem,int engine);
~PartUI();
private:
Part *part;
Master *master;
BankUI *bankui;
ADnoteUI *adnoteui;
SUBnoteUI *subnoteui;
PADnoteUI *padnoteui;
PartSysEffSend *psyef[NUM_SYS_EFX];
int npart;
int ninseff;
int lastkititem;
PartKitItem *partkititem[NUM_KIT_ITEMS];
};
#endif

+ 0
- 274
source/modules/carla_native/zynaddsubfx/UI/PresetsUI.cpp View File

@@ -1,274 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "zynaddsubfx/UI/PresetsUI.h"
#include "../Params/PresetsArray.h"

void PresetsUI_::refresh() {
;
}

PresetsUI_::~PresetsUI_() {
;
}

void PresetsUI::cb_copybrowse_i(Fl_Browser* o, void*) {
int val=o->value();
if (val!=0){
presetname->cut(0,presetname->maximum_size());
presetname->insert(o->text(val));
};
}
void PresetsUI::cb_copybrowse(Fl_Browser* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_copybrowse_i(o,v);
}

void PresetsUI::cb_copypbutton_i(Fl_Button*, void*) {
const char *tmp=presetname->value();
if (tmp!=NULL) {
if (strlen(tmp)>0){
p->copy(tmp);
copywin->hide();
};
};
}
void PresetsUI::cb_copypbutton(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_copypbutton_i(o,v);
}

void PresetsUI::cb_copybutton_i(Fl_Button*, void*) {
p->copy(NULL);
copywin->hide();
}
void PresetsUI::cb_copybutton(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_copybutton_i(o,v);
}

void PresetsUI::cb_Cancel_i(Fl_Button*, void*) {
copywin->hide();
}
void PresetsUI::cb_Cancel(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_Cancel_i(o,v);
}

void PresetsUI::cb_presetname_i(Fl_Input* o, void*) {
const char *tmp=o->value();
if (tmp==NULL) tmp="";
if (strlen(tmp)>0) {
copybutton->deactivate();
copypbutton->activate();
} else {
copybutton->activate();
copypbutton->deactivate();
};
}
void PresetsUI::cb_presetname(Fl_Input* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_presetname_i(o,v);
}

void PresetsUI::cb_pastebrowse_i(Fl_Browser* o, void*) {
if (o->value()==0) {
pastepbutton->deactivate();
deletepbutton->deactivate();
}else{
pastepbutton->activate();
deletepbutton->activate();
};
}
void PresetsUI::cb_pastebrowse(Fl_Browser* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_pastebrowse_i(o,v);
}

void PresetsUI::cb_pastepbutton_i(Fl_Button*, void*) {
int n=pastebrowse->value();
if (n!=0) p->paste(n);
pastewin->hide();
pui->refresh();
}
void PresetsUI::cb_pastepbutton(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_pastepbutton_i(o,v);
}

void PresetsUI::cb_pastebutton_i(Fl_Button*, void*) {
p->paste(0);
pastewin->hide();
pui->refresh();
}
void PresetsUI::cb_pastebutton(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_pastebutton_i(o,v);
}

void PresetsUI::cb_Cancel1_i(Fl_Button*, void*) {
pastewin->hide();
}
void PresetsUI::cb_Cancel1(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_Cancel1_i(o,v);
}

void PresetsUI::cb_deletepbutton_i(Fl_Button*, void*) {
int n=pastebrowse->value();
if (n!=0) p->deletepreset(n);
rescan();
}
void PresetsUI::cb_deletepbutton(Fl_Button* o, void* v) {
((PresetsUI*)(o->parent()->user_data()))->cb_deletepbutton_i(o,v);
}

PresetsUI::PresetsUI() {
p=NULL;
make_window();
}

PresetsUI::~PresetsUI() {
copywin->hide();delete(copywin);
pastewin->hide();delete(pastewin);
}

Fl_Double_Window* PresetsUI::make_window() {
{ copywin = new Fl_Double_Window(265, 430, "Copy to Clipboard/Preset");
copywin->box(FL_THIN_UP_BOX);
copywin->color((Fl_Color)238);
copywin->user_data((void*)(this));
{ copybrowse = new Fl_Browser(10, 25, 245, 320);
copybrowse->type(1);
copybrowse->callback((Fl_Callback*)cb_copybrowse);
} // Fl_Browser* copybrowse
{ copypbutton = new Fl_Button(145, 355, 110, 20, "Copy to Preset");
copypbutton->box(FL_THIN_UP_BOX);
copypbutton->callback((Fl_Callback*)cb_copypbutton);
} // Fl_Button* copypbutton
{ copybutton = new Fl_Button(25, 385, 90, 35, "Copy to Clipboard");
copybutton->box(FL_THIN_UP_BOX);
copybutton->callback((Fl_Callback*)cb_copybutton);
copybutton->align(Fl_Align(192));
} // Fl_Button* copybutton
{ Fl_Button* o = new Fl_Button(160, 385, 80, 35, "Cancel");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Cancel);
o->align(Fl_Align(192));
} // Fl_Button* o
{ Fl_Box* o = new Fl_Box(10, 5, 40, 15, "Type:");
o->labelsize(11);
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* o
{ copytypetext = new Fl_Box(50, 5, 205, 15);
copytypetext->box(FL_FLAT_BOX);
copytypetext->color((Fl_Color)238);
copytypetext->labelfont(1);
copytypetext->labelsize(11);
copytypetext->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* copytypetext
{ presetname = new Fl_Input(10, 355, 130, 20);
presetname->callback((Fl_Callback*)cb_presetname);
presetname->when(FL_WHEN_CHANGED);
} // Fl_Input* presetname
copywin->set_modal();
copywin->end();
} // Fl_Double_Window* copywin
{ pastewin = new Fl_Double_Window(265, 430, "Paste from Clipboard/Preset");
pastewin->box(FL_THIN_UP_BOX);
pastewin->color((Fl_Color)238);
pastewin->user_data((void*)(this));
{ pastebrowse = new Fl_Browser(10, 25, 245, 320);
pastebrowse->type(2);
pastebrowse->callback((Fl_Callback*)cb_pastebrowse);
} // Fl_Browser* pastebrowse
{ pastepbutton = new Fl_Button(10, 355, 160, 20, "Paste from Preset");
pastepbutton->box(FL_THIN_UP_BOX);
pastepbutton->callback((Fl_Callback*)cb_pastepbutton);
} // Fl_Button* pastepbutton
{ pastebutton = new Fl_Button(25, 385, 90, 35, "Paste from Clipboard");
pastebutton->box(FL_THIN_UP_BOX);
pastebutton->callback((Fl_Callback*)cb_pastebutton);
pastebutton->align(Fl_Align(192));
} // Fl_Button* pastebutton
{ Fl_Button* o = new Fl_Button(160, 385, 80, 35, "Cancel");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Cancel1);
o->align(Fl_Align(192));
} // Fl_Button* o
{ pastetypetext = new Fl_Box(55, 5, 200, 15);
pastetypetext->box(FL_FLAT_BOX);
pastetypetext->color((Fl_Color)238);
pastetypetext->labelfont(1);
pastetypetext->labelsize(11);
pastetypetext->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* pastetypetext
{ Fl_Box* o = new Fl_Box(15, 5, 40, 15, "Type:");
o->labelsize(11);
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
} // Fl_Box* o
{ deletepbutton = new Fl_Button(180, 355, 75, 20, "Delete");
deletepbutton->box(FL_THIN_UP_BOX);
deletepbutton->callback((Fl_Callback*)cb_deletepbutton);
} // Fl_Button* deletepbutton
pastewin->set_modal();
pastewin->end();
} // Fl_Double_Window* pastewin
return pastewin;
}

void PresetsUI::copy(Presets *p) {
copybutton->activate();
copypbutton->deactivate();
this->p=p;
this->pui=NULL;
bool but=(Fl::event_button()!=FL_LEFT_MOUSE);
presetname->cut(0,presetname->maximum_size());
if (but) p->copy(NULL);
else {
rescan();
copytypetext->label(&p->type[1]);
copywin->show();
};
}

void PresetsUI::paste(Presets *p,PresetsUI_ *pui) {
this->p=p;
this->pui=pui;
bool but=(Fl::event_button()!=FL_LEFT_MOUSE);
pastepbutton->deactivate();
deletepbutton->deactivate();
if (but) {
p->paste(0);
pui->refresh();
} else {
rescan();
pastetypetext->label(&p->type[1]);
if (p->checkclipboardtype()) pastebutton->activate();
else pastebutton->deactivate();
pastewin->show();
};
}

void PresetsUI::copy(Presets *p,int n) {
PresetsArray *pre = dynamic_cast<PresetsArray *>(p);
if(pre)
pre->setelement(n);
copy(p);
}

void PresetsUI::paste(Presets *p,PresetsUI_ *pui,int n) {
PresetsArray *pre = dynamic_cast<PresetsArray *>(p);
if(pre)
pre->setelement(n);
paste(p,pui);
}

void PresetsUI::rescan() {
copybrowse->clear();
pastebrowse->clear();
p->rescanforpresets();
for (unsigned int i=0;i<presetsstore.presets.size();i++){
std::string name=presetsstore.presets[i].name;
if(name.empty())
continue;
copybrowse->add(name.c_str());
pastebrowse->add(name.c_str());
};
}
PresetsUI *presetsui;

+ 0
- 84
source/modules/carla_native/zynaddsubfx/UI/PresetsUI.h View File

@@ -1,84 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef PresetsUI_h
#define PresetsUI_h
#include <FL/Fl.H>
#include <FL/fl_ask.H>
#include <stdio.h>
#include <stdlib.h>
#include "../Params/Presets.h"

class PresetsUI_ {
public:
virtual void refresh();
virtual ~PresetsUI_();
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Browser.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Input.H>

class PresetsUI {
public:
PresetsUI();
~PresetsUI();
Fl_Double_Window* make_window();
Fl_Double_Window *copywin;
Fl_Browser *copybrowse;
private:
void cb_copybrowse_i(Fl_Browser*, void*);
static void cb_copybrowse(Fl_Browser*, void*);
public:
Fl_Button *copypbutton;
private:
void cb_copypbutton_i(Fl_Button*, void*);
static void cb_copypbutton(Fl_Button*, void*);
public:
Fl_Button *copybutton;
private:
void cb_copybutton_i(Fl_Button*, void*);
static void cb_copybutton(Fl_Button*, void*);
void cb_Cancel_i(Fl_Button*, void*);
static void cb_Cancel(Fl_Button*, void*);
public:
Fl_Box *copytypetext;
Fl_Input *presetname;
private:
void cb_presetname_i(Fl_Input*, void*);
static void cb_presetname(Fl_Input*, void*);
public:
Fl_Double_Window *pastewin;
Fl_Browser *pastebrowse;
private:
void cb_pastebrowse_i(Fl_Browser*, void*);
static void cb_pastebrowse(Fl_Browser*, void*);
public:
Fl_Button *pastepbutton;
private:
void cb_pastepbutton_i(Fl_Button*, void*);
static void cb_pastepbutton(Fl_Button*, void*);
public:
Fl_Button *pastebutton;
private:
void cb_pastebutton_i(Fl_Button*, void*);
static void cb_pastebutton(Fl_Button*, void*);
void cb_Cancel1_i(Fl_Button*, void*);
static void cb_Cancel1(Fl_Button*, void*);
public:
Fl_Box *pastetypetext;
Fl_Button *deletepbutton;
private:
void cb_deletepbutton_i(Fl_Button*, void*);
static void cb_deletepbutton(Fl_Button*, void*);
public:
void copy(Presets *p);
void paste(Presets *p,PresetsUI_ *pui);
void copy(Presets *p,int n);
void paste(Presets *p,PresetsUI_ *pui,int n);
void rescan();
Presets *p;
PresetsUI_ *pui;
};
extern PresetsUI *presetsui;
#endif

+ 0
- 556
source/modules/carla_native/zynaddsubfx/UI/ResonanceUI.cpp View File

@@ -1,556 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "zynaddsubfx/UI/ResonanceUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

ResonanceGraph::ResonanceGraph(int x,int y, int w, int h, const char *label):Fl_Box(x,y,w,h,label) {
respar=NULL;
cbwidget=NULL;
applybutton=NULL;
}

void ResonanceGraph::init(Resonance *respar_,Fl_Value_Output *khzvalue_,Fl_Value_Output *dbvalue_) {
respar=respar_;
khzvalue=khzvalue_;
dbvalue=dbvalue_;
oldx=-1;
khzval=-1;
}

void ResonanceGraph::draw_freq_line(float freq,int type) {
float freqx=respar->getfreqpos(freq);
switch(type){
case 0:fl_line_style(FL_SOLID);break;
case 1:fl_line_style(FL_DOT);break;
case 2:fl_line_style(FL_DASH);break;
};
if ((freqx>0.0)&&(freqx<1.0))
fl_line(x()+(int) (freqx*w()),y(),
x()+(int) (freqx*w()),y()+h());
}

void ResonanceGraph::draw() {
int ox=x(),oy=y(),lx=w(),ly=h(),i,ix,iy,oiy;
float freqx;
fl_color(FL_DARK1);
fl_rectf(ox,oy,lx,ly);
//draw the lines
fl_color(FL_GRAY);
fl_line_style(FL_SOLID);
fl_line(ox+2,oy+ly/2,ox+lx-2,oy+ly/2);
freqx=respar->getfreqpos(1000.0);
if ((freqx>0.0)&&(freqx<1.0))
fl_line(ox+(int) (freqx*lx),oy,
ox+(int) (freqx*lx),oy+ly);
for (i=1;i<10;i++){
if(i==1){
draw_freq_line(i*100.0,0);
draw_freq_line(i*1000.0,0);
}else
if (i==5){
draw_freq_line(i*100.0,2);
draw_freq_line(i*1000.0,2);
}else{
draw_freq_line(i*100.0,1);
draw_freq_line(i*1000.0,1);
};
};
draw_freq_line(10000.0,0);
draw_freq_line(20000.0,1);
fl_line_style(FL_DOT);
int GY=10;if (ly<GY*3) GY=-1;
for (i=1;i<GY;i++){
int tmp=(int)(ly/(float)GY*i);
fl_line(ox+2,oy+tmp,ox+lx-2,oy+tmp);
};
//draw the data
fl_color(FL_RED);
fl_line_style(FL_SOLID,2);
fl_begin_line();
oiy=(int)(respar->Prespoints[0]/128.0*ly);
for (i=1;i<N_RES_POINTS;i++){
ix=(int)(i*1.0/N_RES_POINTS*lx);
iy=(respar->Prespoints[i]/128.0*ly);
fl_vertex(ox+ix,oy+ly-oiy);
oiy=iy;
};
fl_end_line();
fl_line_style(FL_SOLID,0);
}

int ResonanceGraph::handle(int event) {
int x_=Fl::event_x()-x();
int y_=Fl::event_y()-y();
if ( (x_>=0)&&(x_<w()) && (y_>=0)&&(y_<h())){
khzvalue->value(respar->getfreqx(x_*1.0/w())/1000.0);
dbvalue->value((1.0-y_*2.0/h())*respar->PmaxdB);
};
if ((event==FL_PUSH)||(event==FL_DRAG)){
int leftbutton=1;
if (Fl::event_button()==FL_RIGHT_MOUSE) leftbutton=0;
if (x_<0) x_=0;if (y_<0) y_=0;
if (x_>=w()) x_=w();if (y_>=h()-1) y_=h()-1;
if ((oldx<0)||(oldx==x_)){
int sn=(int)(x_*1.0/w()*N_RES_POINTS);
int sp=127-(int)(y_*1.0/h()*127);
if (leftbutton!=0) respar->setpoint(sn,sp);
else respar->setpoint(sn,64);
} else {
int x1=oldx;
int x2=x_;
int y1=oldy;
int y2=y_;
if (oldx>x_){
x1=x_;y1=y_;
x2=oldx;y2=oldy;
};
for (int i=0;i<x2-x1;i++){
int sn=(int)((i+x1)*1.0/w()*N_RES_POINTS);
float yy=(y2-y1)*1.0/(x2-x1)*i;
int sp=127-(int)((y1+yy)/h()*127);
if (leftbutton!=0) respar->setpoint(sn,sp);
else respar->setpoint(sn,64);
};
};
oldx=x_;oldy=y_;
redraw();
};
if (event==FL_RELEASE) {
oldx=-1;
if (cbwidget!=NULL) {
cbwidget->do_callback();
if (applybutton!=NULL) {
applybutton->color(FL_RED);
applybutton->redraw();
};
};
};
return(1);
}

void ResonanceGraph::setcbwidget(Fl_Widget *cbwidget,Fl_Widget *applybutton) {
this->cbwidget=cbwidget;
this->applybutton=applybutton;
}

void ResonanceUI::cb_Close_i(Fl_Button*, void*) {
resonancewindow->hide();
}
void ResonanceUI::cb_Close(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

void ResonanceUI::cb_Zero_i(Fl_Button*, void*) {
for (int i=0;i<N_RES_POINTS;i++)
respar->setpoint(i,64);
resonancewindow->redraw();
redrawPADnoteApply();
}
void ResonanceUI::cb_Zero(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_Zero_i(o,v);
}

void ResonanceUI::cb_Smooth_i(Fl_Button*, void*) {
respar->smooth();
resonancewindow->redraw();
redrawPADnoteApply();
}
void ResonanceUI::cb_Smooth(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_Smooth_i(o,v);
}

void ResonanceUI::cb_enabled_i(Fl_Check_Button* o, void*) {
respar->Penabled=(int) o->value();
redrawPADnoteApply();
}
void ResonanceUI::cb_enabled(Fl_Check_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_enabled_i(o,v);
}

void ResonanceUI::cb_maxdb_i(Fl_Roller* o, void*) {
maxdbvo->value(o->value());
respar->PmaxdB=(int) o->value();
redrawPADnoteApply();
}
void ResonanceUI::cb_maxdb(Fl_Roller* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_maxdb_i(o,v);
}

void ResonanceUI::cb_maxdbvo_i(Fl_Value_Output* o, void*) {
o->value(respar->PmaxdB);
}
void ResonanceUI::cb_maxdbvo(Fl_Value_Output* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_maxdbvo_i(o,v);
}

void ResonanceUI::cb_centerfreqvo_i(Fl_Value_Output* o, void*) {
o->value(respar->getcenterfreq()/1000.0);
}
void ResonanceUI::cb_centerfreqvo(Fl_Value_Output* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_centerfreqvo_i(o,v);
}

void ResonanceUI::cb_octavesfreqvo_i(Fl_Value_Output* o, void*) {
o->value(respar->getoctavesfreq());
}
void ResonanceUI::cb_octavesfreqvo(Fl_Value_Output* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_octavesfreqvo_i(o,v);
}

void ResonanceUI::cb_RND2_i(Fl_Button*, void*) {
respar->randomize(1);
resonancewindow->redraw();
redrawPADnoteApply();
}
void ResonanceUI::cb_RND2(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_RND2_i(o,v);
}

void ResonanceUI::cb_RND1_i(Fl_Button*, void*) {
respar->randomize(0);
resonancewindow->redraw();
redrawPADnoteApply();
}
void ResonanceUI::cb_RND1(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_RND1_i(o,v);
}

void ResonanceUI::cb_RND3_i(Fl_Button*, void*) {
respar->randomize(2);
resonancewindow->redraw();
redrawPADnoteApply();
}
void ResonanceUI::cb_RND3(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_RND3_i(o,v);
}

void ResonanceUI::cb_p1st_i(Fl_Check_Button* o, void*) {
respar->Pprotectthefundamental=(int) o->value();
redrawPADnoteApply();
}
void ResonanceUI::cb_p1st(Fl_Check_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_p1st_i(o,v);
}

void ResonanceUI::cb_InterpP_i(Fl_Button*, void*) {
int type;
if (Fl::event_button()==FL_LEFT_MOUSE) type=0;
else type=1;
respar->interpolatepeaks(type);
resonancewindow->redraw();
redrawPADnoteApply();
}
void ResonanceUI::cb_InterpP(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_InterpP_i(o,v);
}

void ResonanceUI::cb_centerfreq_i(WidgetPDial* o, void*) {
respar->Pcenterfreq=(int)o->value();
centerfreqvo->do_callback();
rg->redraw();
redrawPADnoteApply();
}
void ResonanceUI::cb_centerfreq(WidgetPDial* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_centerfreq_i(o,v);
}

void ResonanceUI::cb_octavesfreq_i(WidgetPDial* o, void*) {
respar->Poctavesfreq=(int)o->value();
octavesfreqvo->do_callback();
rg->redraw();
redrawPADnoteApply();
}
void ResonanceUI::cb_octavesfreq(WidgetPDial* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_octavesfreq_i(o,v);
}

void ResonanceUI::cb_C_i(Fl_Button*, void*) {
presetsui->copy(respar);
}
void ResonanceUI::cb_C(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_C_i(o,v);
}

void ResonanceUI::cb_P_i(Fl_Button*, void*) {
presetsui->paste(respar,this);
}
void ResonanceUI::cb_P(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_P_i(o,v);
}

void ResonanceUI::cb_applybutton_i(Fl_Button*, void*) {
applybutton->color(FL_GRAY);
applybutton->redraw();
if (cbapplywidget!=NULL) {
cbapplywidget->do_callback();
cbapplywidget->color(FL_GRAY);
cbapplywidget->redraw();
};
}
void ResonanceUI::cb_applybutton(Fl_Button* o, void* v) {
((ResonanceUI*)(o->parent()->user_data()))->cb_applybutton_i(o,v);
}

Fl_Double_Window* ResonanceUI::make_window() {
{ resonancewindow = new Fl_Double_Window(780, 305, "Resonance");
resonancewindow->user_data((void*)(this));
{ khzvalue = new Fl_Value_Output(415, 264, 45, 18, "kHz");
khzvalue->labelsize(12);
khzvalue->minimum(0.001);
khzvalue->maximum(48);
khzvalue->step(0.01);
khzvalue->textfont(1);
khzvalue->textsize(12);
khzvalue->align(Fl_Align(FL_ALIGN_RIGHT));
//this widget must be before the calling widgets
} // Fl_Value_Output* khzvalue
{ dbvalue = new Fl_Value_Output(415, 282, 45, 18, "dB");
dbvalue->labelsize(12);
dbvalue->minimum(-150);
dbvalue->maximum(150);
dbvalue->step(0.1);
dbvalue->textfont(1);
dbvalue->textsize(12);
dbvalue->align(Fl_Align(FL_ALIGN_RIGHT));
//this widget must be before the calling widgets
} // Fl_Value_Output* dbvalue
{ Fl_Group* o = new Fl_Group(6, 5, 768, 256);
o->box(FL_BORDER_BOX);
rg=new ResonanceGraph(o->x(),o->y(),o->w(),o->h(),"");
rg->init(respar,khzvalue,dbvalue);
rg->show();
o->end();
} // Fl_Group* o
{ Fl_Button* o = new Fl_Button(690, 283, 84, 17, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(491, 264, 66, 15, "Zero");
o->tooltip("Clear the resonance function");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->labelsize(12);
o->callback((Fl_Callback*)cb_Zero);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(491, 282, 66, 18, "Smooth");
o->tooltip("Smooth the resonance function");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->labelsize(12);
o->callback((Fl_Callback*)cb_Smooth);
} // Fl_Button* o
{ Fl_Check_Button* o = enabled = new Fl_Check_Button(6, 270, 78, 27, "Enable");
enabled->box(FL_THIN_UP_BOX);
enabled->down_box(FL_DOWN_BOX);
enabled->callback((Fl_Callback*)cb_enabled);
o->value(respar->Penabled);
} // Fl_Check_Button* enabled
{ maxdb = new Fl_Roller(90, 282, 84, 15);
maxdb->type(1);
maxdb->minimum(1);
maxdb->maximum(90);
maxdb->step(1);
maxdb->value(30);
maxdb->callback((Fl_Callback*)cb_maxdb);
} // Fl_Roller* maxdb
{ Fl_Value_Output* o = maxdbvo = new Fl_Value_Output(126, 264, 24, 18, "Max.");
maxdbvo->tooltip("The Maximum amplitude (dB)");
maxdbvo->labelsize(12);
maxdbvo->minimum(1);
maxdbvo->maximum(127);
maxdbvo->step(1);
maxdbvo->value(30);
maxdbvo->textfont(1);
maxdbvo->textsize(12);
maxdbvo->callback((Fl_Callback*)cb_maxdbvo);
o->value(respar->PmaxdB);
} // Fl_Value_Output* maxdbvo
{ new Fl_Box(150, 264, 24, 18, "dB");
} // Fl_Box* o
{ Fl_Value_Output* o = centerfreqvo = new Fl_Value_Output(210, 264, 33, 18, "C.f.");
centerfreqvo->tooltip("Center Frequency (kHz)");
centerfreqvo->labelsize(12);
centerfreqvo->minimum(1);
centerfreqvo->maximum(10);
centerfreqvo->step(0.01);
centerfreqvo->value(1);
centerfreqvo->textfont(1);
centerfreqvo->textsize(12);
centerfreqvo->callback((Fl_Callback*)cb_centerfreqvo);
centerfreqvo->when(3);
o->value(respar->getcenterfreq()/1000.0);
} // Fl_Value_Output* centerfreqvo
{ Fl_Value_Output* o = octavesfreqvo = new Fl_Value_Output(210, 282, 33, 18, "Oct.");
octavesfreqvo->tooltip("No. of octaves");
octavesfreqvo->labelsize(12);
octavesfreqvo->minimum(1);
octavesfreqvo->maximum(127);
octavesfreqvo->step(1);
octavesfreqvo->value(30);
octavesfreqvo->textfont(1);
octavesfreqvo->textsize(12);
octavesfreqvo->callback((Fl_Callback*)cb_octavesfreqvo);
octavesfreqvo->when(3);
o->value(respar->getoctavesfreq());
} // Fl_Value_Output* octavesfreqvo
{ Fl_Button* o = new Fl_Button(566, 276, 42, 12, "RND2");
o->tooltip("Randomize the resonance function");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->labelsize(10);
o->callback((Fl_Callback*)cb_RND2);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(566, 264, 42, 12, "RND1");
o->tooltip("Randomize the resonance function");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->labelsize(10);
o->callback((Fl_Callback*)cb_RND1);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(566, 288, 42, 12, "RND3");
o->tooltip("Randomize the resonance function");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->labelsize(10);
o->callback((Fl_Callback*)cb_RND3);
} // Fl_Button* o
{ Fl_Check_Button* o = p1st = new Fl_Check_Button(365, 285, 45, 15, "P.1st");
p1st->tooltip("Protect the fundamental frequency (do not damp the first harmonic)");
p1st->down_box(FL_DOWN_BOX);
p1st->labelsize(10);
p1st->callback((Fl_Callback*)cb_p1st);
o->value(respar->Pprotectthefundamental);
} // Fl_Check_Button* p1st
{ Fl_Button* o = new Fl_Button(365, 265, 46, 15, "InterpP");
o->tooltip("Interpolate the peaks");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->labelsize(10);
o->callback((Fl_Callback*)cb_InterpP);
} // Fl_Button* o
{ WidgetPDial* o = centerfreq = new WidgetPDial(245, 265, 30, 30, "C.f.");
centerfreq->box(FL_ROUND_UP_BOX);
centerfreq->color(FL_BACKGROUND_COLOR);
centerfreq->selection_color(FL_INACTIVE_COLOR);
centerfreq->labeltype(FL_NORMAL_LABEL);
centerfreq->labelfont(0);
centerfreq->labelsize(10);
centerfreq->labelcolor(FL_FOREGROUND_COLOR);
centerfreq->maximum(127);
centerfreq->step(1);
centerfreq->callback((Fl_Callback*)cb_centerfreq);
centerfreq->align(Fl_Align(FL_ALIGN_BOTTOM));
centerfreq->when(FL_WHEN_CHANGED);
o->value(respar->Pcenterfreq);
} // WidgetPDial* centerfreq
{ WidgetPDial* o = octavesfreq = new WidgetPDial(280, 265, 30, 30, "Oct.");
octavesfreq->box(FL_ROUND_UP_BOX);
octavesfreq->color(FL_BACKGROUND_COLOR);
octavesfreq->selection_color(FL_INACTIVE_COLOR);
octavesfreq->labeltype(FL_NORMAL_LABEL);
octavesfreq->labelfont(0);
octavesfreq->labelsize(10);
octavesfreq->labelcolor(FL_FOREGROUND_COLOR);
octavesfreq->maximum(127);
octavesfreq->step(1);
octavesfreq->callback((Fl_Callback*)cb_octavesfreq);
octavesfreq->align(Fl_Align(FL_ALIGN_BOTTOM));
octavesfreq->when(FL_WHEN_CHANGED);
o->value(respar->Poctavesfreq);
} // WidgetPDial* octavesfreq
{ Fl_Button* o = new Fl_Button(625, 275, 25, 15, "C");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(11);
o->labelcolor(FL_BACKGROUND2_COLOR);
o->callback((Fl_Callback*)cb_C);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(655, 275, 25, 15, "P");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(11);
o->labelcolor(FL_BACKGROUND2_COLOR);
o->callback((Fl_Callback*)cb_P);
} // Fl_Button* o
{ applybutton = new Fl_Button(690, 265, 85, 15, "Apply");
applybutton->box(FL_THIN_UP_BOX);
applybutton->labelfont(1);
applybutton->labelsize(11);
applybutton->callback((Fl_Callback*)cb_applybutton);
} // Fl_Button* applybutton
resonancewindow->end();
} // Fl_Double_Window* resonancewindow
return resonancewindow;
}

ResonanceUI::ResonanceUI(Resonance *respar_) {
respar=respar_;
cbwidget=NULL;
cbapplywidget=NULL;
make_window();
applybutton->hide();
}

ResonanceUI::~ResonanceUI() {
resonancewindow->hide();
}

void ResonanceUI::redrawPADnoteApply() {
if (cbwidget!=NULL) {
cbwidget->do_callback();
applybutton->color(FL_RED);
applybutton->redraw();
};
}

void ResonanceUI::setcbwidget(Fl_Widget *cbwidget,Fl_Widget *cbapplywidget) {
this->cbwidget=cbwidget;
this->cbapplywidget=cbapplywidget;
rg->setcbwidget(cbwidget,applybutton);
applybutton->show();
}

void ResonanceUI::refresh() {
redrawPADnoteApply();
enabled->value(respar->Penabled);
maxdb->value(respar->PmaxdB);
maxdbvo->value(respar->PmaxdB);
centerfreqvo->value(respar->getcenterfreq()/1000.0);
octavesfreqvo->value(respar->getoctavesfreq());
centerfreq->value(respar->Pcenterfreq);
octavesfreq->value(respar->Poctavesfreq);
p1st->value(respar->Pprotectthefundamental);
rg->redraw();
}

+ 0
- 120
source/modules/carla_native/zynaddsubfx/UI/ResonanceUI.h View File

@@ -1,120 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef ResonanceUI_h
#define ResonanceUI_h
#include <FL/Fl.H>
#include <FL/Fl_Box.H>
#include <FL/fl_draw.H>
#include <FL/Fl_Value_Output.H>
#include "../Synth/Resonance.h"
#include "WidgetPDial.h"
#include "PresetsUI.h"

class ResonanceGraph : public Fl_Box {
public:
ResonanceGraph(int x,int y, int w, int h, const char *label=0);
void init(Resonance *respar_,Fl_Value_Output *khzvalue_,Fl_Value_Output *dbvalue_);
void draw_freq_line(float freq,int type);
void draw();
int handle(int event);
void setcbwidget(Fl_Widget *cbwidget,Fl_Widget *applybutton);
private:
Fl_Value_Output *khzvalue;
Fl_Value_Output *dbvalue;
Resonance *respar;
int oldx,oldy;
public:
float khzval;
private:
Fl_Widget *cbwidget,*applybutton;
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Value_Output.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Roller.H>
#include <FL/Fl_Box.H>

class ResonanceUI : PresetsUI_ {
public:
Fl_Double_Window* make_window();
Fl_Double_Window *resonancewindow;
Fl_Value_Output *khzvalue;
Fl_Value_Output *dbvalue;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_Zero_i(Fl_Button*, void*);
static void cb_Zero(Fl_Button*, void*);
void cb_Smooth_i(Fl_Button*, void*);
static void cb_Smooth(Fl_Button*, void*);
public:
Fl_Check_Button *enabled;
private:
void cb_enabled_i(Fl_Check_Button*, void*);
static void cb_enabled(Fl_Check_Button*, void*);
public:
Fl_Roller *maxdb;
private:
void cb_maxdb_i(Fl_Roller*, void*);
static void cb_maxdb(Fl_Roller*, void*);
public:
Fl_Value_Output *maxdbvo;
private:
void cb_maxdbvo_i(Fl_Value_Output*, void*);
static void cb_maxdbvo(Fl_Value_Output*, void*);
public:
Fl_Value_Output *centerfreqvo;
private:
void cb_centerfreqvo_i(Fl_Value_Output*, void*);
static void cb_centerfreqvo(Fl_Value_Output*, void*);
public:
Fl_Value_Output *octavesfreqvo;
private:
void cb_octavesfreqvo_i(Fl_Value_Output*, void*);
static void cb_octavesfreqvo(Fl_Value_Output*, void*);
void cb_RND2_i(Fl_Button*, void*);
static void cb_RND2(Fl_Button*, void*);
void cb_RND1_i(Fl_Button*, void*);
static void cb_RND1(Fl_Button*, void*);
void cb_RND3_i(Fl_Button*, void*);
static void cb_RND3(Fl_Button*, void*);
public:
Fl_Check_Button *p1st;
private:
void cb_p1st_i(Fl_Check_Button*, void*);
static void cb_p1st(Fl_Check_Button*, void*);
void cb_InterpP_i(Fl_Button*, void*);
static void cb_InterpP(Fl_Button*, void*);
public:
WidgetPDial *centerfreq;
private:
void cb_centerfreq_i(WidgetPDial*, void*);
static void cb_centerfreq(WidgetPDial*, void*);
public:
WidgetPDial *octavesfreq;
private:
void cb_octavesfreq_i(WidgetPDial*, void*);
static void cb_octavesfreq(WidgetPDial*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
Fl_Button *applybutton;
private:
void cb_applybutton_i(Fl_Button*, void*);
static void cb_applybutton(Fl_Button*, void*);
public:
ResonanceUI(Resonance *respar_);
~ResonanceUI();
void redrawPADnoteApply();
void setcbwidget(Fl_Widget *cbwidget,Fl_Widget *cbapplywidget);
void refresh();
Resonance *respar;
private:
ResonanceGraph *rg;
Fl_Widget *cbwidget,*cbapplywidget;
};
#endif

+ 0
- 735
source/modules/carla_native/zynaddsubfx/UI/SUBnoteUI.cpp View File

@@ -1,735 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "zynaddsubfx/UI/SUBnoteUI.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later

void SUBnoteharmonic::cb_mag_i(Fl_Slider* o, void*) {
int x=0;
if (Fl::event_button1()) x=127-(int)o->value();
else o->value(127-x);
pars->Phmag[n]=x;
if (pars->Phmag[n]==0) o->selection_color(0);
else o->selection_color(222);
}
void SUBnoteharmonic::cb_mag(Fl_Slider* o, void* v) {
((SUBnoteharmonic*)(o->parent()->user_data()))->cb_mag_i(o,v);
}

void SUBnoteharmonic::cb_bw_i(Fl_Slider* o, void*) {
int x=64;
if (Fl::event_button1()) x=127-(int)o->value();
else o->value(x);
pars->Phrelbw[n]=x;
}
void SUBnoteharmonic::cb_bw(Fl_Slider* o, void* v) {
((SUBnoteharmonic*)(o->parent()->user_data()))->cb_bw_i(o,v);
}

Fl_Group* SUBnoteharmonic::make_window() {
{ harmonic = new Fl_Group(0, 0, 90, 225);
harmonic->box(FL_FLAT_BOX);
harmonic->color(FL_BACKGROUND_COLOR);
harmonic->selection_color(FL_BACKGROUND_COLOR);
harmonic->labeltype(FL_NO_LABEL);
harmonic->labelfont(0);
harmonic->labelsize(14);
harmonic->labelcolor(FL_FOREGROUND_COLOR);
harmonic->user_data((void*)(this));
harmonic->align(Fl_Align(FL_ALIGN_TOP));
harmonic->when(FL_WHEN_RELEASE);
{ Fl_Slider* o = mag = new Fl_Slider(0, 15, 10, 115);
mag->tooltip("harmonic\'s magnitude");
mag->type(4);
mag->box(FL_FLAT_BOX);
mag->selection_color((Fl_Color)222);
mag->maximum(127);
mag->step(1);
mag->value(127);
mag->callback((Fl_Callback*)cb_mag);
o->value(127-pars->Phmag[n]);
if (pars->Phmag[n]==0) o->selection_color(0);
} // Fl_Slider* mag
{ Fl_Slider* o = bw = new Fl_Slider(0, 135, 10, 75);
bw->tooltip("harmonic\'s bandwidth");
bw->type(4);
bw->box(FL_FLAT_BOX);
bw->selection_color((Fl_Color)222);
bw->maximum(127);
bw->step(1);
bw->value(64);
bw->callback((Fl_Callback*)cb_bw);
o->value(127-pars->Phrelbw[n]);
} // Fl_Slider* bw
{ Fl_Box* o = new Fl_Box(10, 170, 5, 5);
o->box(FL_FLAT_BOX);
o->color(FL_DARK2);
if (n+1==MAX_SUB_HARMONICS) o->hide();
} // Fl_Box* o
{ Fl_Box* o = new Fl_Box(0, 210, 10, 15, "01");
o->labelfont(1);
o->labelsize(9);
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
char tmp[10];snprintf(tmp,10,"%d",n+1);o->label(strdup(tmp));
} // Fl_Box* o
{ Fl_Box* o = new Fl_Box(0, 0, 10, 15, "01");
o->labelfont(1);
o->labelsize(9);
o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
char tmp[10];snprintf(tmp,10,"%d",n+1);o->label(strdup(tmp));
} // Fl_Box* o
harmonic->end();
} // Fl_Group* harmonic
return harmonic;
}

SUBnoteharmonic::SUBnoteharmonic(int x,int y, int w, int h, const char *label):Fl_Group(x,y,w,h,label) {
n=0;
}

void SUBnoteharmonic::init(SUBnoteParameters *pars_,int n_) {
pars=pars_;
n=n_;
make_window();
harmonic->show();
end();
}

void SUBnoteharmonic::refresh() {
mag->value(127-pars->Phmag[n]);
if (pars->Phmag[n]==0) mag->selection_color(0);
bw->value(127-pars->Phrelbw[n]);
}

SUBnoteharmonic::~SUBnoteharmonic() {
harmonic->hide();
hide();
//delete(harmonic);
}

void SUBnoteUI::cb_Close_i(Fl_Button*, void*) {
SUBparameters->hide();
}
void SUBnoteUI::cb_Close(Fl_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

void SUBnoteUI::cb_vol_i(Fl_Value_Slider* o, void*) {
pars->PVolume=(int)o->value();
}
void SUBnoteUI::cb_vol(Fl_Value_Slider* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_vol_i(o,v);
}

void SUBnoteUI::cb_vsns_i(Fl_Value_Slider* o, void*) {
pars->PAmpVelocityScaleFunction=(int) o->value();
}
void SUBnoteUI::cb_vsns(Fl_Value_Slider* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_vsns_i(o,v);
}

void SUBnoteUI::cb_pan_i(WidgetPDial* o, void*) {
pars->PPanning=(int) o->value();
}
void SUBnoteUI::cb_pan(WidgetPDial* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_pan_i(o,v);
}

void SUBnoteUI::cb_filterstages_i(Fl_Counter* o, void*) {
pars->Pnumstages=(int) o->value();
}
void SUBnoteUI::cb_filterstages(Fl_Counter* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_filterstages_i(o,v);
}

void SUBnoteUI::cb_magtype_i(Fl_Choice* o, void*) {
pars->Phmagtype=(int) o->value();
}
void SUBnoteUI::cb_magtype(Fl_Choice* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_magtype_i(o,v);
}

Fl_Menu_Item SUBnoteUI::menu_magtype[] = {
{"Linear", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"-40dB", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"-60dB", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"-80dB", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"-100dB", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{0,0,0,0,0,0,0,0,0}
};

void SUBnoteUI::cb_start_i(Fl_Choice* o, void*) {
pars->Pstart=(int) o->value();
}
void SUBnoteUI::cb_start(Fl_Choice* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_start_i(o,v);
}

Fl_Menu_Item SUBnoteUI::menu_start[] = {
{"Zero", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"RND", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{"Max.", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 11, 0},
{0,0,0,0,0,0,0,0,0}
};

void SUBnoteUI::cb_freqee_i(Fl_Check_Button* o, void*) {
pars->PFreqEnvelopeEnabled=o->value();
if (o->value()==0) freqenvelopegroup->deactivate();
else freqenvelopegroup->activate();
o->show();
freqsettingsui->redraw();
}
void SUBnoteUI::cb_freqee(Fl_Check_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_freqee_i(o,v);
}

void SUBnoteUI::cb_octave_i(Fl_Counter* o, void*) {
int k=(int) o->value();
if (k<0) k+=16;
pars->PCoarseDetune = k*1024+
pars->PCoarseDetune%1024;
}
void SUBnoteUI::cb_octave(Fl_Counter* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_octave_i(o,v);
}

void SUBnoteUI::cb_coarsedet_i(Fl_Counter* o, void*) {
int k=(int) o->value();
if (k<0) k+=1024;
pars->PCoarseDetune = k+
(pars->PCoarseDetune/1024)*1024;
}
void SUBnoteUI::cb_coarsedet(Fl_Counter* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_coarsedet_i(o,v);
}

void SUBnoteUI::cb_detune_i(Fl_Slider* o, void*) {
pars->PDetune=(int)o->value()+8192;
detunevalueoutput->do_callback();
}
void SUBnoteUI::cb_detune(Fl_Slider* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_detune_i(o,v);
}

void SUBnoteUI::cb_detunevalueoutput_i(Fl_Value_Output* o, void*) {
o->value(getdetune(pars->PDetuneType,0,pars->PDetune));
}
void SUBnoteUI::cb_detunevalueoutput(Fl_Value_Output* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_detunevalueoutput_i(o,v);
}

void SUBnoteUI::cb_hz440_i(Fl_Check_Button* o, void*) {
int x=(int) o->value();
pars->Pfixedfreq=x;
if (x==0) fixedfreqetdial->deactivate();
else fixedfreqetdial->activate();
}
void SUBnoteUI::cb_hz440(Fl_Check_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_hz440_i(o,v);
}

void SUBnoteUI::cb_fixedfreqetdial_i(WidgetPDial* o, void*) {
pars->PfixedfreqET=(int) o->value();
}
void SUBnoteUI::cb_fixedfreqetdial(WidgetPDial* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_fixedfreqetdial_i(o,v);
}

void SUBnoteUI::cb_detunetype_i(Fl_Choice* o, void*) {
pars->PDetuneType=(int) o->value()+1;
detunevalueoutput->do_callback();
}
void SUBnoteUI::cb_detunetype(Fl_Choice* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_detunetype_i(o,v);
}

void SUBnoteUI::cb_stereo_i(Fl_Check_Button* o, void*) {
pars->Pstereo=(int) o->value();
}
void SUBnoteUI::cb_stereo(Fl_Check_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->user_data()))->cb_stereo_i(o,v);
}

void SUBnoteUI::cb_Clear_i(Fl_Button*, void*) {
for (int i=0;i<MAX_SUB_HARMONICS;i++){
h[i]->mag->value(127);
pars->Phmag[i]=0;
h[i]->bw->value(64);
pars->Phrelbw[i]=64;
};
pars->Phmag[0]=127;
h[0]->mag->value(0);
SUBparameters->redraw();
}
void SUBnoteUI::cb_Clear(Fl_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->user_data()))->cb_Clear_i(o,v);
}

void SUBnoteUI::cb_bwee_i(Fl_Check_Button* o, void*) {
pars->PBandWidthEnvelopeEnabled=o->value();
if (o->value()==0) bandwidthenvelopegroup->deactivate();
else bandwidthenvelopegroup->activate();
o->show();
bandwidthsettingsui->redraw();
}
void SUBnoteUI::cb_bwee(Fl_Check_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_bwee_i(o,v);
}

void SUBnoteUI::cb_bandwidth_i(Fl_Value_Slider* o, void*) {
pars->Pbandwidth=(int) o->value();
}
void SUBnoteUI::cb_bandwidth(Fl_Value_Slider* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_bandwidth_i(o,v);
}

void SUBnoteUI::cb_bwidthscale_i(Fl_Value_Slider* o, void*) {
pars->Pbwscale=(int) o->value()+64;
}
void SUBnoteUI::cb_bwidthscale(Fl_Value_Slider* o, void* v) {
((SUBnoteUI*)(o->parent()->parent()->user_data()))->cb_bwidthscale_i(o,v);
}

void SUBnoteUI::cb_filtere_i(Fl_Check_Button* o, void*) {
pars->PGlobalFilterEnabled=o->value();
if (o->value()==0) globalfiltergroup->deactivate();
else globalfiltergroup->activate();
o->show();
globalfiltergroup->redraw();
}
void SUBnoteUI::cb_filtere(Fl_Check_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->user_data()))->cb_filtere_i(o,v);
}

void SUBnoteUI::cb_C_i(Fl_Button*, void*) {
presetsui->copy(pars);
}
void SUBnoteUI::cb_C(Fl_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->user_data()))->cb_C_i(o,v);
}

void SUBnoteUI::cb_P_i(Fl_Button*, void*) {
presetsui->paste(pars,this);
}
void SUBnoteUI::cb_P(Fl_Button* o, void* v) {
((SUBnoteUI*)(o->parent()->user_data()))->cb_P_i(o,v);
}

Fl_Double_Window* SUBnoteUI::make_window() {
{ SUBparameters = new Fl_Double_Window(735, 390, "SUBsynth Parameters");
SUBparameters->user_data((void*)(this));
{ Fl_Scroll* o = new Fl_Scroll(5, 140, 435, 245, "scroll");
o->type(1);
o->box(FL_FLAT_BOX);
o->labeltype(FL_NO_LABEL);
{ Fl_Pack* o = harmonics = new Fl_Pack(10, 145, 425, 235);
harmonics->type(1);
for (int i=0;i<MAX_SUB_HARMONICS;i++){h[i]=new SUBnoteharmonic(0,0,15,o->h(),"");h[i]->init(pars,i);}
harmonics->end();
} // Fl_Pack* harmonics
o->end();
} // Fl_Scroll* o
{ Fl_Button* o = new Fl_Button(625, 365, 105, 20, "Close");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->labelsize(11);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
{ Fl_Group* o = new Fl_Group(5, 5, 215, 135, "AMPLITUDE");
o->box(FL_UP_FRAME);
o->labeltype(FL_EMBOSSED_LABEL);
o->labelfont(1);
o->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ Fl_Value_Slider* o = vol = new Fl_Value_Slider(10, 25, 140, 15, "Vol");
vol->tooltip("Volume");
vol->type(5);
vol->box(FL_NO_BOX);
vol->labelsize(11);
vol->maximum(127);
vol->step(1);
vol->callback((Fl_Callback*)cb_vol);
vol->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(pars->PVolume);
} // Fl_Value_Slider* vol
{ Fl_Value_Slider* o = vsns = new Fl_Value_Slider(10, 45, 140, 15, "V.Sns");
vsns->tooltip("Velocity Sensing Function (rightmost to disable)");
vsns->type(5);
vsns->box(FL_NO_BOX);
vsns->labelsize(11);
vsns->maximum(127);
vsns->step(1);
vsns->callback((Fl_Callback*)cb_vsns);
vsns->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(pars->PAmpVelocityScaleFunction);
} // Fl_Value_Slider* vsns
{ WidgetPDial* o = pan = new WidgetPDial(185, 20, 30, 30, "Pan");
pan->tooltip("Panning (leftmost is Random)");
pan->box(FL_ROUND_UP_BOX);
pan->color(FL_BACKGROUND_COLOR);
pan->selection_color(FL_INACTIVE_COLOR);
pan->labeltype(FL_NORMAL_LABEL);
pan->labelfont(0);
pan->labelsize(10);
pan->labelcolor(FL_FOREGROUND_COLOR);
pan->maximum(127);
pan->step(1);
pan->callback((Fl_Callback*)cb_pan);
pan->align(Fl_Align(FL_ALIGN_BOTTOM));
pan->when(FL_WHEN_CHANGED);
o->value(pars->PPanning);
} // WidgetPDial* pan
{ EnvelopeUI* o = ampenv = new EnvelopeUI(10, 65, 205, 70, "SUBsynth - Amplitude Envelope");
ampenv->box(FL_FLAT_BOX);
ampenv->color((Fl_Color)51);
ampenv->selection_color(FL_BACKGROUND_COLOR);
ampenv->labeltype(FL_NORMAL_LABEL);
ampenv->labelfont(0);
ampenv->labelsize(14);
ampenv->labelcolor(FL_FOREGROUND_COLOR);
ampenv->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE));
ampenv->when(FL_WHEN_RELEASE);
o->init(pars->AmpEnvelope);
ampenv->end();
} // EnvelopeUI* ampenv
o->end();
} // Fl_Group* o
{ Fl_Group* o = new Fl_Group(495, 325, 235, 35);
o->box(FL_UP_FRAME);
{ Fl_Counter* o = filterstages = new Fl_Counter(515, 340, 45, 15, "Filter Stages");
filterstages->tooltip("How many times the noise is filtered");
filterstages->type(1);
filterstages->labelfont(1);
filterstages->labelsize(10);
filterstages->minimum(1);
filterstages->maximum(5);
filterstages->step(1);
filterstages->textsize(10);
filterstages->callback((Fl_Callback*)cb_filterstages);
filterstages->align(Fl_Align(FL_ALIGN_TOP));
o->value(pars->Pnumstages);
} // Fl_Counter* filterstages
{ Fl_Choice* o = magtype = new Fl_Choice(585, 340, 65, 15, "Mag.Type");
magtype->down_box(FL_BORDER_BOX);
magtype->labelfont(1);
magtype->labelsize(10);
magtype->textsize(11);
magtype->callback((Fl_Callback*)cb_magtype);
magtype->align(Fl_Align(FL_ALIGN_TOP));
magtype->menu(menu_magtype);
o->value(pars->Phmagtype);
} // Fl_Choice* magtype
{ Fl_Choice* o = start = new Fl_Choice(670, 340, 50, 15, "Start");
start->down_box(FL_BORDER_BOX);
start->labelfont(1);
start->labelsize(10);
start->textsize(11);
start->callback((Fl_Callback*)cb_start);
start->align(Fl_Align(FL_ALIGN_TOP));
start->menu(menu_start);
o->value(pars->Pstart);
} // Fl_Choice* start
o->end();
} // Fl_Group* o
{ freqsettingsui = new Fl_Group(440, 5, 290, 135, "FREQUENCY");
freqsettingsui->box(FL_UP_FRAME);
freqsettingsui->labeltype(FL_EMBOSSED_LABEL);
freqsettingsui->labelfont(1);
freqsettingsui->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ EnvelopeUI* o = freqenvelopegroup = new EnvelopeUI(445, 65, 205, 70, "SUBsynth - Frequency Envelope");
freqenvelopegroup->box(FL_FLAT_BOX);
freqenvelopegroup->color((Fl_Color)51);
freqenvelopegroup->selection_color(FL_BACKGROUND_COLOR);
freqenvelopegroup->labeltype(FL_NORMAL_LABEL);
freqenvelopegroup->labelfont(0);
freqenvelopegroup->labelsize(14);
freqenvelopegroup->labelcolor(FL_FOREGROUND_COLOR);
freqenvelopegroup->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE));
freqenvelopegroup->when(FL_WHEN_RELEASE);
o->init(pars->FreqEnvelope);
if (pars->PFreqEnvelopeEnabled==0) o->deactivate();
freqenvelopegroup->end();
} // EnvelopeUI* freqenvelopegroup
{ Fl_Check_Button* o = freqee = new Fl_Check_Button(445, 68, 55, 15, "Enabled");
freqee->down_box(FL_DOWN_BOX);
freqee->labelfont(1);
freqee->labelsize(10);
freqee->callback((Fl_Callback*)cb_freqee);
o->value(pars->PFreqEnvelopeEnabled);
} // Fl_Check_Button* freqee
{ Fl_Counter* o = octave = new Fl_Counter(670, 50, 45, 15, "Octave");
octave->tooltip("Octave");
octave->type(1);
octave->labelsize(10);
octave->minimum(-8);
octave->maximum(7);
octave->step(1);
octave->textfont(1);
octave->textsize(11);
octave->callback((Fl_Callback*)cb_octave);
octave->align(Fl_Align(FL_ALIGN_TOP));
int k=pars->PCoarseDetune/1024;if (k>=8) k-=16;
o->value(k);
} // Fl_Counter* octave
{ Fl_Counter* o = coarsedet = new Fl_Counter(655, 115, 60, 20, "Coarse Det.");
coarsedet->tooltip("Coarse Detune");
coarsedet->labelsize(10);
coarsedet->minimum(-64);
coarsedet->maximum(63);
coarsedet->step(1);
coarsedet->textfont(1);
coarsedet->textsize(11);
coarsedet->callback((Fl_Callback*)cb_coarsedet);
coarsedet->align(Fl_Align(FL_ALIGN_TOP));
int k=pars->PCoarseDetune%1024;if (k>=512) k-=1024;
o->value(k);
o->lstep(10);
} // Fl_Counter* coarsedet
{ Fl_Slider* o = detune = new Fl_Slider(495, 25, 230, 15);
detune->tooltip("Fine Detune (cents)");
detune->type(5);
detune->box(FL_NO_BOX);
detune->minimum(-8192);
detune->maximum(8191);
detune->step(1);
detune->callback((Fl_Callback*)cb_detune);
o->value(pars->PDetune-8192);
} // Fl_Slider* detune
{ Fl_Value_Output* o = detunevalueoutput = new Fl_Value_Output(448, 25, 45, 15, "Detune");
detunevalueoutput->labelsize(10);
detunevalueoutput->minimum(-5000);
detunevalueoutput->maximum(5000);
detunevalueoutput->step(0.01);
detunevalueoutput->textfont(1);
detunevalueoutput->textsize(10);
detunevalueoutput->callback((Fl_Callback*)cb_detunevalueoutput);
detunevalueoutput->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->value(getdetune(pars->PDetuneType,0,pars->PDetune));
} // Fl_Value_Output* detunevalueoutput
{ Fl_Check_Button* o = hz440 = new Fl_Check_Button(555, 45, 50, 15, "440Hz");
hz440->tooltip("set the base frequency to 440Hz");
hz440->down_box(FL_DOWN_BOX);
hz440->labelfont(1);
hz440->labelsize(10);
hz440->callback((Fl_Callback*)cb_hz440);
o->value(pars->Pfixedfreq);
} // Fl_Check_Button* hz440
{ WidgetPDial* o = fixedfreqetdial = new WidgetPDial(610, 45, 15, 15, "Eq.T.");
fixedfreqetdial->tooltip("How the frequency varies acording to the keyboard (leftmost for fixed frequen\
cy)");
fixedfreqetdial->box(FL_ROUND_UP_BOX);
fixedfreqetdial->color(FL_BACKGROUND_COLOR);
fixedfreqetdial->selection_color(FL_INACTIVE_COLOR);
fixedfreqetdial->labeltype(FL_NORMAL_LABEL);
fixedfreqetdial->labelfont(0);
fixedfreqetdial->labelsize(10);
fixedfreqetdial->labelcolor(FL_FOREGROUND_COLOR);
fixedfreqetdial->maximum(127);
fixedfreqetdial->step(1);
fixedfreqetdial->callback((Fl_Callback*)cb_fixedfreqetdial);
fixedfreqetdial->align(Fl_Align(FL_ALIGN_RIGHT));
fixedfreqetdial->when(FL_WHEN_CHANGED);
o->value(pars->PfixedfreqET);
if (pars->Pfixedfreq==0) o->deactivate();
} // WidgetPDial* fixedfreqetdial
{ Fl_Choice* o = detunetype = new Fl_Choice(655, 85, 70, 15, "Detune Type");
detunetype->down_box(FL_BORDER_BOX);
detunetype->labelsize(10);
detunetype->textfont(1);
detunetype->textsize(10);
detunetype->callback((Fl_Callback*)cb_detunetype);
detunetype->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->add("L35cents");o->add("L10cents");o->add("E100cents");o->add("E1200cents");
o->value(pars->PDetuneType-1);
} // Fl_Choice* detunetype
freqsettingsui->end();
} // Fl_Group* freqsettingsui
{ Fl_Check_Button* o = stereo = new Fl_Check_Button(440, 325, 55, 35, "Stereo");
stereo->box(FL_THIN_UP_BOX);
stereo->down_box(FL_DOWN_BOX);
stereo->labelsize(10);
stereo->callback((Fl_Callback*)cb_stereo);
o->value(pars->Pstereo);
} // Fl_Check_Button* stereo
{ Fl_Button* o = new Fl_Button(445, 365, 70, 20, "Clear");
o->tooltip("Clear the harmonics");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->labelsize(11);
o->callback((Fl_Callback*)cb_Clear);
} // Fl_Button* o
{ bandwidthsettingsui = new Fl_Group(220, 5, 220, 135, "BANDWIDTH");
bandwidthsettingsui->box(FL_UP_FRAME);
bandwidthsettingsui->labeltype(FL_EMBOSSED_LABEL);
bandwidthsettingsui->labelfont(1);
bandwidthsettingsui->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ EnvelopeUI* o = bandwidthenvelopegroup = new EnvelopeUI(225, 65, 205, 70, "SUBsynth - BandWidth Envelope");
bandwidthenvelopegroup->box(FL_FLAT_BOX);
bandwidthenvelopegroup->color((Fl_Color)51);
bandwidthenvelopegroup->selection_color(FL_BACKGROUND_COLOR);
bandwidthenvelopegroup->labeltype(FL_NORMAL_LABEL);
bandwidthenvelopegroup->labelfont(0);
bandwidthenvelopegroup->labelsize(14);
bandwidthenvelopegroup->labelcolor(FL_FOREGROUND_COLOR);
bandwidthenvelopegroup->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE));
bandwidthenvelopegroup->when(FL_WHEN_RELEASE);
o->init(pars->BandWidthEnvelope);
if (pars->PBandWidthEnvelopeEnabled==0) o->deactivate();
bandwidthenvelopegroup->end();
} // EnvelopeUI* bandwidthenvelopegroup
{ Fl_Check_Button* o = bwee = new Fl_Check_Button(225, 67, 55, 15, "Enabled");
bwee->down_box(FL_DOWN_BOX);
bwee->labelfont(1);
bwee->labelsize(10);
bwee->callback((Fl_Callback*)cb_bwee);
o->value(pars->PBandWidthEnvelopeEnabled);
} // Fl_Check_Button* bwee
{ Fl_Value_Slider* o = bandwidth = new Fl_Value_Slider(225, 40, 115, 15, "Band Width");
bandwidth->type(5);
bandwidth->box(FL_NO_BOX);
bandwidth->labelsize(10);
bandwidth->maximum(127);
bandwidth->step(1);
bandwidth->callback((Fl_Callback*)cb_bandwidth);
bandwidth->align(Fl_Align(FL_ALIGN_TOP));
o->value(pars->Pbandwidth);
} // Fl_Value_Slider* bandwidth
{ Fl_Value_Slider* o = bwidthscale = new Fl_Value_Slider(345, 40, 90, 15, "B.Width Scale");
bwidthscale->tooltip("How much I increase the BandWidth according to lower/higher harmonics");
bwidthscale->type(5);
bwidthscale->box(FL_NO_BOX);
bwidthscale->labelsize(10);
bwidthscale->minimum(-64);
bwidthscale->maximum(63);
bwidthscale->step(1);
bwidthscale->callback((Fl_Callback*)cb_bwidthscale);
bwidthscale->align(Fl_Align(FL_ALIGN_TOP));
o->value(pars->Pbwscale-64);
} // Fl_Value_Slider* bwidthscale
bandwidthsettingsui->end();
} // Fl_Group* bandwidthsettingsui
{ Fl_Group* o = globalfiltergroup = new Fl_Group(440, 140, 290, 185, "FILTER");
globalfiltergroup->box(FL_UP_FRAME);
globalfiltergroup->labeltype(FL_EMBOSSED_LABEL);
globalfiltergroup->labelfont(1);
globalfiltergroup->labelsize(13);
globalfiltergroup->align(Fl_Align(FL_ALIGN_TOP|FL_ALIGN_INSIDE));
{ EnvelopeUI* o = filterenv = new EnvelopeUI(445, 250, 275, 70, "SUBsynth - Filter Envelope");
filterenv->box(FL_FLAT_BOX);
filterenv->color((Fl_Color)51);
filterenv->selection_color(FL_BACKGROUND_COLOR);
filterenv->labeltype(FL_NORMAL_LABEL);
filterenv->labelfont(0);
filterenv->labelsize(14);
filterenv->labelcolor(FL_FOREGROUND_COLOR);
filterenv->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE));
filterenv->when(FL_WHEN_RELEASE);
o->init(pars->GlobalFilterEnvelope);
filterenv->end();
} // EnvelopeUI* filterenv
{ FilterUI* o = filterui = new FilterUI(445, 165, 275, 75, "SUBsynthl - Filter");
filterui->box(FL_FLAT_BOX);
filterui->color(FL_LIGHT1);
filterui->selection_color(FL_BACKGROUND_COLOR);
filterui->labeltype(FL_NORMAL_LABEL);
filterui->labelfont(0);
filterui->labelsize(14);
filterui->labelcolor(FL_FOREGROUND_COLOR);
filterui->align(Fl_Align(FL_ALIGN_WRAP|FL_ALIGN_INSIDE));
filterui->when(FL_WHEN_RELEASE);
o->init(pars->GlobalFilter,&pars->PGlobalFilterVelocityScale,&pars->PGlobalFilterVelocityScaleFunction);
filterui->end();
} // FilterUI* filterui
if (pars->PGlobalFilterEnabled==0) o->deactivate();
globalfiltergroup->end();
} // Fl_Group* globalfiltergroup
{ Fl_Check_Button* o = filtere = new Fl_Check_Button(445, 145, 85, 20, "Enabled");
filtere->down_box(FL_DOWN_BOX);
filtere->labelfont(1);
filtere->labelsize(11);
filtere->callback((Fl_Callback*)cb_filtere);
o->value(pars->PGlobalFilterEnabled);
} // Fl_Check_Button* filtere
{ Fl_Button* o = new Fl_Button(540, 370, 25, 15, "C");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(11);
o->labelcolor(FL_BACKGROUND2_COLOR);
o->callback((Fl_Callback*)cb_C);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(570, 370, 25, 15, "P");
o->box(FL_THIN_UP_BOX);
o->color((Fl_Color)179);
o->labelfont(1);
o->labelsize(11);
o->labelcolor(FL_BACKGROUND2_COLOR);
o->callback((Fl_Callback*)cb_P);
} // Fl_Button* o
SUBparameters->end();
} // Fl_Double_Window* SUBparameters
return SUBparameters;
}

void SUBnoteUI::refresh() {
for (int i=0;i<MAX_SUB_HARMONICS;i++) h[i]->refresh();
vol->value(pars->PVolume);
vsns->value(pars->PAmpVelocityScaleFunction);
pan->value(pars->PPanning);
bandwidth->value(pars->Pbandwidth);
bwidthscale->value(pars->Pbwscale-64);
bwee->value(pars->PBandWidthEnvelopeEnabled);
if (pars->PBandWidthEnvelopeEnabled==0) bandwidthenvelopegroup->deactivate();
else bandwidthenvelopegroup->activate();
bwee->show();
bandwidthsettingsui->redraw();
detunevalueoutput->value(getdetune(pars->PDetuneType,0,pars->PDetune));
freqee->value(pars->PFreqEnvelopeEnabled);
if (pars->PFreqEnvelopeEnabled==0) freqenvelopegroup->deactivate();
else freqenvelopegroup->activate();
freqee->show();
freqsettingsui->redraw();
detune->value(pars->PDetune-8192);
hz440->value(pars->Pfixedfreq);
fixedfreqetdial->value(pars->PfixedfreqET);
int k=pars->PCoarseDetune/1024;if (k>=8) k-=16;
octave->value(k);
detunetype->value(pars->PDetuneType-1);
k=pars->PCoarseDetune%1024;if (k>=512) k-=1024;
coarsedet->value(k);
filtere->value(pars->PGlobalFilterEnabled);
if (pars->PGlobalFilterEnabled==0) globalfiltergroup->deactivate();
else globalfiltergroup->activate();
filtere->show();
globalfiltergroup->redraw();
stereo->value(pars->Pstereo);
filterstages->value(pars->Pnumstages);
magtype->value(pars->Phmagtype);
start->value(pars->Pstart);
ampenv->refresh();
bandwidthenvelopegroup->refresh();
freqenvelopegroup->refresh();
filterui->refresh();
filterenv->refresh();
}

SUBnoteUI::SUBnoteUI(SUBnoteParameters *parameters) {
pars=parameters;
make_window();
}

SUBnoteUI::~SUBnoteUI() {
//for (int i=0;i<MAX_SUB_HARMONICS;i++) delete (h[i]);
SUBparameters->hide();
delete(SUBparameters);
}

+ 0
- 179
source/modules/carla_native/zynaddsubfx/UI/SUBnoteUI.h View File

@@ -1,179 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef SUBnoteUI_h
#define SUBnoteUI_h
#include <FL/Fl.H>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "../globals.h"
#include "WidgetPDial.h"
#include "EnvelopeUI.h"
#include "FilterUI.h"
#include "../Misc/Util.h"
#include "../Params/SUBnoteParameters.h"
#include "PresetsUI.h"
#include <FL/Fl_Slider.H>
#include <FL/Fl_Box.H>

class SUBnoteharmonic : public Fl_Group {
Fl_Group* make_window();
public:
Fl_Group *harmonic;
Fl_Slider *mag;
private:
void cb_mag_i(Fl_Slider*, void*);
static void cb_mag(Fl_Slider*, void*);
public:
Fl_Slider *bw;
private:
void cb_bw_i(Fl_Slider*, void*);
static void cb_bw(Fl_Slider*, void*);
public:
SUBnoteharmonic(int x,int y, int w, int h, const char *label=0);
void init(SUBnoteParameters *pars_,int n_);
void refresh();
~SUBnoteharmonic();
private:
SUBnoteParameters *pars;
int n;
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Scroll.H>
#include <FL/Fl_Pack.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Value_Slider.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Value_Output.H>

class SUBnoteUI : public PresetsUI_ {
public:
Fl_Double_Window* make_window();
Fl_Double_Window *SUBparameters;
Fl_Pack *harmonics;
private:
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
public:
Fl_Value_Slider *vol;
private:
void cb_vol_i(Fl_Value_Slider*, void*);
static void cb_vol(Fl_Value_Slider*, void*);
public:
Fl_Value_Slider *vsns;
private:
void cb_vsns_i(Fl_Value_Slider*, void*);
static void cb_vsns(Fl_Value_Slider*, void*);
public:
WidgetPDial *pan;
private:
void cb_pan_i(WidgetPDial*, void*);
static void cb_pan(WidgetPDial*, void*);
public:
EnvelopeUI *ampenv;
Fl_Counter *filterstages;
private:
void cb_filterstages_i(Fl_Counter*, void*);
static void cb_filterstages(Fl_Counter*, void*);
public:
Fl_Choice *magtype;
private:
void cb_magtype_i(Fl_Choice*, void*);
static void cb_magtype(Fl_Choice*, void*);
static Fl_Menu_Item menu_magtype[];
public:
Fl_Choice *start;
private:
void cb_start_i(Fl_Choice*, void*);
static void cb_start(Fl_Choice*, void*);
static Fl_Menu_Item menu_start[];
public:
Fl_Group *freqsettingsui;
EnvelopeUI *freqenvelopegroup;
Fl_Check_Button *freqee;
private:
void cb_freqee_i(Fl_Check_Button*, void*);
static void cb_freqee(Fl_Check_Button*, void*);
public:
Fl_Counter *octave;
private:
void cb_octave_i(Fl_Counter*, void*);
static void cb_octave(Fl_Counter*, void*);
public:
Fl_Counter *coarsedet;
private:
void cb_coarsedet_i(Fl_Counter*, void*);
static void cb_coarsedet(Fl_Counter*, void*);
public:
Fl_Slider *detune;
private:
void cb_detune_i(Fl_Slider*, void*);
static void cb_detune(Fl_Slider*, void*);
public:
Fl_Value_Output *detunevalueoutput;
private:
void cb_detunevalueoutput_i(Fl_Value_Output*, void*);
static void cb_detunevalueoutput(Fl_Value_Output*, void*);
public:
Fl_Check_Button *hz440;
private:
void cb_hz440_i(Fl_Check_Button*, void*);
static void cb_hz440(Fl_Check_Button*, void*);
public:
WidgetPDial *fixedfreqetdial;
private:
void cb_fixedfreqetdial_i(WidgetPDial*, void*);
static void cb_fixedfreqetdial(WidgetPDial*, void*);
public:
Fl_Choice *detunetype;
private:
void cb_detunetype_i(Fl_Choice*, void*);
static void cb_detunetype(Fl_Choice*, void*);
public:
Fl_Check_Button *stereo;
private:
void cb_stereo_i(Fl_Check_Button*, void*);
static void cb_stereo(Fl_Check_Button*, void*);
void cb_Clear_i(Fl_Button*, void*);
static void cb_Clear(Fl_Button*, void*);
public:
Fl_Group *bandwidthsettingsui;
EnvelopeUI *bandwidthenvelopegroup;
Fl_Check_Button *bwee;
private:
void cb_bwee_i(Fl_Check_Button*, void*);
static void cb_bwee(Fl_Check_Button*, void*);
public:
Fl_Value_Slider *bandwidth;
private:
void cb_bandwidth_i(Fl_Value_Slider*, void*);
static void cb_bandwidth(Fl_Value_Slider*, void*);
public:
Fl_Value_Slider *bwidthscale;
private:
void cb_bwidthscale_i(Fl_Value_Slider*, void*);
static void cb_bwidthscale(Fl_Value_Slider*, void*);
public:
Fl_Group *globalfiltergroup;
EnvelopeUI *filterenv;
FilterUI *filterui;
Fl_Check_Button *filtere;
private:
void cb_filtere_i(Fl_Check_Button*, void*);
static void cb_filtere(Fl_Check_Button*, void*);
void cb_C_i(Fl_Button*, void*);
static void cb_C(Fl_Button*, void*);
void cb_P_i(Fl_Button*, void*);
static void cb_P(Fl_Button*, void*);
public:
void refresh();
SUBnoteUI(SUBnoteParameters *parameters);
~SUBnoteUI();
private:
SUBnoteParameters *pars;
SUBnoteharmonic *h[MAX_SUB_HARMONICS];
};
#endif

+ 0
- 545
source/modules/carla_native/zynaddsubfx/UI/VirKeyboard.cpp View File

@@ -1,545 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#include "zynaddsubfx/UI/VirKeyboard.h"
//Copyright (c) 2002-2005 Nasca Octavian Paul
//License: GNU GPL version 2 or later
static const int keyspos[12]={0,-1,1,-2,2,3,-4,4,-5,5,-6,6};
static const int keysoct1qwerty[]={'q','2','w','3','e','r','5','t','6','y','7','u','i','9','o','0','p','[','=',']','\\',FL_Enter,0};
static const int keysoct2qwerty[]={'z','s','x','d','c','v','g','b','h','n','j','m',',','l','.',';','/',0};
static const int keysoct1dw[]={'\'','2',',','3','.','p','5','y','6','f','7','g','c','9','r','0','l','/',']','=','\\',FL_Enter,0};
static const int keysoct2dw[]={';','o','q','e','j','k','i','x','d','b','h','m','w','n','v','s','z',0};
static const int keysoct1qwertz[]={'q','2','w','3','e','r','5','t','6','z','7','u','i','9','o','0','p',252,'\'','+','\\',FL_Enter,0};
static const int keysoct2qwertz[]={'y','s','x','d','c','v','g','b','h','n','j','m',',','l','.',246,'-',0};
static const int keysoct1az[]={'a',233,'z','\"','e','r','(','t','-','y',232,'u','i',231,'o',224,'p',65106,'=','$',0};
static const int keysoct2az[]={'w','s','x','d','c','v','g','b','h','n','j',',',';','l',':','m','!',0};

VirKeys::VirKeys(int x,int y, int w, int h, const char *label):Fl_Box(x,y,w,h,label) {
master=NULL;
}

void VirKeys::init(Master *master_) {
master=master_;
for (int i=0;i<N_OCT*12+1;i++) pressed[i]=0;
midich=0;
midivel=100;
midioct=2;
keyoct1=3;
keyoct2=2;
rndvelocity=0;
}

void VirKeys::draw() {
int ox=x(),oy=y(),lx=w(),ly=h()-1,i;
#ifdef NTK_GUI
Fl_Image *white_up = Fl_Shared_Image::get( gUiPixmapPath + "white_key.png" );
Fl_Image *white_down = Fl_Shared_Image::get( gUiPixmapPath + "white_key_pressed.png" );
Fl_Image *black_up = Fl_Shared_Image::get( gUiPixmapPath + "black_key.png" );
Fl_Image *black_down = Fl_Shared_Image::get( gUiPixmapPath + "black_key_pressed.png" );
//On error fetch everything from source directory
if(!(white_up&&white_down&&black_up&&black_down)) {
white_up = Fl_Shared_Image::get(SOURCE_DIR "/../../pixmaps/white_key.png");
white_down = Fl_Shared_Image::get(SOURCE_DIR "/../../pixmaps/white_key_pressed.png");
black_up = Fl_Shared_Image::get(SOURCE_DIR "/../../pixmaps/black_key.png");
black_down = Fl_Shared_Image::get(SOURCE_DIR "/../../pixmaps/black_key_pressed.png");
}
Fl_Image *key;
for (i=0;i<N_OCT*12;i++) {
int noct=i/12;
int kv=keyspos[i%12];
if (kv>=0){//white keys
if (pressed[i]==0)
key = white_up;
else
key = white_down;
key->draw( ox + (kv + 7 * noct ) * white_up->w() + 3, oy );
}
}
for (i=0;i<N_OCT*12;i++){
int noct=i/12;
int kv=keyspos[i%12];
if ( kv < 0 ) {
kv=keyspos[(i+1)%12];
if (pressed[i]==0)
key = black_up;
else
key = black_down;
key->draw( ox + (kv + 7 * noct ) * white_up->w() - black_up->w() / 2 + 2, oy );
}
}
#else
if (damage()!=1){
fl_color(250,240,230);
fl_rectf(ox,oy,lx,ly);
fl_color(FL_BLACK);
fl_line(ox,oy,ox+lx,oy);
fl_line(ox,oy+ly,ox+lx,oy+ly);
for (i=0;i<N_OCT*7+1;i++){
fl_line(ox+i*SIZE_WHITE,oy,ox+i*SIZE_WHITE,oy+ly);
int ik=i%7;
if ((ik==1)||(ik==2)||(ik==4)||(ik==5)||(ik==6))
fl_rectf(ox+i*SIZE_WHITE-SIZE_BLACK/2,oy,
SIZE_BLACK+1,ly*3/5);
}
}
for (i=0;i<N_OCT*12;i++){
// if (pressed[i]==0) continue;
int noct=i/12;
int kv=keyspos[i%12];
if (kv>=0){//white keys
if (pressed[i]==0) fl_color(250,240,230);
else fl_color(FL_BLUE);
fl_rectf(ox+(kv+7*noct)*SIZE_WHITE+3,oy+ly*3/5+2,
SIZE_WHITE-4,ly*2/5-3);
} else {//black keys
kv=keyspos[(i+1)%12];
if (pressed[i]==0) fl_color(FL_BLACK);
else fl_color(FL_BLUE);
fl_rectf(ox+(kv+7*noct)*SIZE_WHITE-SIZE_BLACK/2+2,oy+2,
SIZE_BLACK-3,ly*3/5-5);
}
}
#endif
}

int VirKeys::handle(int event) {
int i;
int ly=h();
int x_=Fl::event_x()-x();
int y_=Fl::event_y()-y();
if ( (x_<0)&&(x_>w()) && (y_<0)&&(y_>h())){
return(0);
};
if ((event==FL_PUSH)||(event==FL_DRAG)||(event==FL_RELEASE)){
int kpos=-1;
if (y_>ly*3/5){//white keys
int pos=x_/SIZE_WHITE;
if (pos<0) return(1);
for (i=0;i<12;i++) {
if (pos%7==keyspos[i]) {
kpos=pos/7*12+i;
break;
};
};
} else {//black keys
int pos=(x_+SIZE_WHITE/2)/SIZE_WHITE;
if (pos<0) return(1);
for (i=1;i<12;i++) {
if (pos%7==-keyspos[i]) {
kpos=pos/7*12+i;
break;
};
};
};
if ((kpos!=-1)&&((event==FL_PUSH)||(event==FL_DRAG))&&
(Fl::event_shift()==0)) {
presskey(kpos,1,1);
};
if ((event==FL_PUSH)&&(Fl::event_shift()!=0)) {
if (pressed[kpos]==0) presskey(kpos,0,1);
else relasekey(kpos,1);
};
if ((event==FL_RELEASE)&&(Fl::event_shift()==0))
relaseallkeys(1);
take_focus();
};
const int *keysoct1=keysoct1qwerty;
const int *keysoct2=keysoct2qwerty;
if (config.cfg.VirKeybLayout==2) {
keysoct1=keysoct1dw;
keysoct2=keysoct2dw;
}else if (config.cfg.VirKeybLayout==3) {
keysoct1=keysoct1qwertz;
keysoct2=keysoct2qwertz;
}else if (config.cfg.VirKeybLayout==4) {
keysoct1=keysoct1az;
keysoct2=keysoct2az;
};
if ((event==FL_KEYDOWN)||(event==FL_KEYUP)){
int key=Fl::event_key();
int kpos=-1;
for (i=0;keysoct1[i]!=0;i++) if (key==keysoct1[i]) kpos=i+12*keyoct1;
for (i=0;keysoct2[i]!=0;i++) if (key==keysoct2[i]) kpos=i+12*keyoct2;
if (kpos==-1) return(0);
if ((event==FL_KEYUP) && (Fl::event_key(key)==0) && (Fl::get_key(key)!=0)) return(0);
if (event==FL_KEYDOWN) presskey(kpos,0,2);
else relasekey(kpos,2);
};
return(1);
}

void VirKeys::presskey(int nk,int exclusive,int type) {
//Exclusive means that multiple keys can be pressed at once
//when the user uses the shift key
if (nk>=N_OCT*12) return;
if ((nk<0)&&(exclusive==0)) {
relaseallkeys(type);
return;
};
if (nk<0) return;
if (pressed[nk]!=0) return;//the key is already pressed
if (exclusive!=0) relaseallkeys(type);
pressed[nk]=type;
damage(1);
float vel=midivel;
if (rndvelocity!=0){
vel=midivel*(127.0-rndvelocity)/127.0+RND*rndvelocity;
};
pthread_mutex_lock(&master->mutex);
master->noteOn(midich,nk+midioct*12,(int)vel);
pthread_mutex_unlock(&master->mutex);
}

void VirKeys::relasekey(int nk,int type) {
if ((nk<0)||(nk>=N_OCT*12)) return;
if (pressed[nk]==0) return;//the key is not pressed
if ((type!=0)&&(pressed[nk]!=type)) return;
pressed[nk]=0;
damage(1);
pthread_mutex_lock(&master->mutex);
master->noteOff(midich,nk+12*midioct);
pthread_mutex_unlock(&master->mutex);
}

void VirKeys::relaseallkeys(int type) {
for (int i=0;i<N_OCT*12;i++) relasekey(i,type);
}

void VirKeyboard::cb_virkeyboardwindow_i(Fl_Double_Window*, void*) {
relaseallkeys();
virkeyboardwindow->hide();
}
void VirKeyboard::cb_virkeyboardwindow(Fl_Double_Window* o, void* v) {
((VirKeyboard*)(o->user_data()))->cb_virkeyboardwindow_i(o,v);
}

void VirKeyboard::cb_qwer_i(Fl_Counter* o, void*) {
relaseallkeys();
virkeys->keyoct1=(int) o->value();
virkeys->take_focus();
}
void VirKeyboard::cb_qwer(Fl_Counter* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_qwer_i(o,v);
}

void VirKeyboard::cb_zxcv_i(Fl_Counter* o, void*) {
relaseallkeys();
virkeys->keyoct2=(int) o->value();
virkeys->take_focus();
}
void VirKeyboard::cb_zxcv(Fl_Counter* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_zxcv_i(o,v);
}

void VirKeyboard::cb_Vel_i(Fl_Value_Slider* o, void*) {
virkeys->midivel=(int) o->value();
virkeys->take_focus();
}
void VirKeyboard::cb_Vel(Fl_Value_Slider* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_Vel_i(o,v);
}

void VirKeyboard::cb_Oct_i(Fl_Counter* o, void*) {
relaseallkeys();
virkeys->midioct=(int) o->value();
virkeys->take_focus();
}
void VirKeyboard::cb_Oct(Fl_Counter* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_Oct_i(o,v);
}

void VirKeyboard::cb_Close_i(Fl_Button*, void*) {
relaseallkeys();
virkeyboardwindow->hide();
}
void VirKeyboard::cb_Close(Fl_Button* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_Close_i(o,v);
}

void VirKeyboard::cb_Cval_i(Fl_Value_Slider* o, void*) {
int ctl=midictl;

pthread_mutex_lock(&master->mutex);
master->setController(virkeys->midich,ctl,(int) o->value());
pthread_mutex_unlock(&master->mutex);
virkeys->take_focus();
}
void VirKeyboard::cb_Cval(Fl_Value_Slider* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_Cval_i(o,v);
}

void VirKeyboard::cb_Controller_i(Fl_Choice* o, void*) {
switch((int) o->value()+1){
case 1: midictl=C_modwheel; break;
case 2: midictl=C_volume; break;
case 3: midictl=C_panning; break;
case 4: midictl=C_expression; break;
case 5: midictl=C_sustain; break;
case 6: midictl=C_portamento; break;
case 7: midictl=C_filterq; break;
case 8: midictl=C_filtercutoff; break;
case 9: midictl=C_bandwidth; break;
case 10: midictl=C_fmamp; break;
case 11: midictl=C_resonance_center; break;
case 12: midictl=C_resonance_bandwidth; break;
default: midictl=C_NULL; break;

};



virkeys->take_focus();
}
void VirKeyboard::cb_Controller(Fl_Choice* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_Controller_i(o,v);
}

Fl_Menu_Item VirKeyboard::menu_Controller[] = {
{"01: Mod.Wheel", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"07: Volume", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"10: Panning", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"11: Expression", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"64: Sustain", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"65: Portamento", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"71: Filter Q", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"74: Filter Freq.", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"75: Bandwidth", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"76: FM Gain", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"77: Res. c. freq", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{"78: Res. bw.", 0, 0, 0, 0, FL_NORMAL_LABEL, 1, 10, 0},
{0,0,0,0,0,0,0,0,0}
};

void VirKeyboard::cb_pitchwheelroller_i(Fl_Roller* o, void*) {
pthread_mutex_lock(&master->mutex);
master->setController(virkeys->midich,C_pitchwheel,-(int) o->value());
pthread_mutex_unlock(&master->mutex);
virkeys->take_focus();
}
void VirKeyboard::cb_pitchwheelroller(Fl_Roller* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_pitchwheelroller_i(o,v);
}

void VirKeyboard::cb_R_i(Fl_Button*, void*) {
pitchwheelroller->value(0);
pitchwheelroller->do_callback();
}
void VirKeyboard::cb_R(Fl_Button* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_R_i(o,v);
}

void VirKeyboard::cb_Vrnd_i(WidgetPDial* o, void*) {
virkeys->rndvelocity=(int) o->value();
}
void VirKeyboard::cb_Vrnd(WidgetPDial* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_Vrnd_i(o,v);
}

void VirKeyboard::cb_partrcv_i(Fl_Choice* o, void*) {
relaseallkeys();
virkeys->midich=(int) o->value();
virkeys->take_focus();
}
void VirKeyboard::cb_partrcv(Fl_Choice* o, void* v) {
((VirKeyboard*)(o->parent()->user_data()))->cb_partrcv_i(o,v);
}

Fl_Double_Window* VirKeyboard::make_window() {
{ virkeyboardwindow = new Fl_Double_Window(650, 130, "Virtual Keyboard - ZynAddSubFX");
virkeyboardwindow->callback((Fl_Callback*)cb_virkeyboardwindow, (void*)(this));
{ VirKeys* o = virkeys = new VirKeys(10, 10, 590, 80, "Keyboard");
virkeys->box(FL_FLAT_BOX);
virkeys->color((Fl_Color)17);
virkeys->selection_color(FL_BACKGROUND_COLOR);
virkeys->labeltype(FL_NORMAL_LABEL);
virkeys->labelfont(0);
virkeys->labelsize(14);
virkeys->labelcolor(FL_FOREGROUND_COLOR);
virkeys->align(Fl_Align(FL_ALIGN_CENTER));
virkeys->when(FL_WHEN_RELEASE);
o->init(master);
} // VirKeys* virkeys
{ Fl_Counter* o = new Fl_Counter(380, 95, 45, 15, "\"qwer..\" Oct");
o->tooltip("keys \"q2w3er5t6y...\" octave");
o->type(1);
o->labelsize(10);
o->minimum(0);
o->maximum(5);
o->step(1);
o->textfont(1);
o->textsize(10);
o->callback((Fl_Callback*)cb_qwer);
o->align(Fl_Align(FL_ALIGN_LEFT));
o->when(FL_WHEN_RELEASE_ALWAYS);
o->value(virkeys->keyoct1);
} // Fl_Counter* o
{ Fl_Counter* o = new Fl_Counter(380, 110, 45, 15, "\"zxcv..\" Oct");
o->tooltip("keys \"zsxdcvgbh...\" octave");
o->type(1);
o->labelsize(10);
o->minimum(0);
o->maximum(5);
o->step(1);
o->textfont(1);
o->textsize(10);
o->callback((Fl_Callback*)cb_zxcv);
o->align(Fl_Align(FL_ALIGN_LEFT));
o->when(FL_WHEN_RELEASE_ALWAYS);
o->value(virkeys->keyoct2);
} // Fl_Counter* o
{ Fl_Value_Slider* o = new Fl_Value_Slider(95, 105, 100, 15, "Vel");
o->tooltip("Velocity");
o->type(5);
o->box(FL_NO_BOX);
o->labelsize(10);
o->minimum(1);
o->maximum(127);
o->step(1);
o->callback((Fl_Callback*)cb_Vel);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->value(virkeys->midivel);
} // Fl_Value_Slider* o
{ Fl_Counter* o = new Fl_Counter(255, 100, 55, 20, "Oct.");
o->tooltip("Midi Octave");
o->type(1);
o->labelsize(11);
o->minimum(0);
o->maximum(5);
o->step(1);
o->textfont(1);
o->textsize(11);
o->callback((Fl_Callback*)cb_Oct);
o->align(Fl_Align(FL_ALIGN_LEFT));
o->when(FL_WHEN_RELEASE_ALWAYS);
o->value(virkeys->midioct);
} // Fl_Counter* o
{ Fl_Button* o = new Fl_Button(545, 105, 55, 20, "Close");
o->box(FL_THIN_UP_BOX);
o->callback((Fl_Callback*)cb_Close);
} // Fl_Button* o
{ Fl_Value_Slider* o = new Fl_Value_Slider(605, 10, 15, 115, "Cval");
o->tooltip("Controller value");
o->type(2);
o->box(FL_ENGRAVED_BOX);
o->selection_color((Fl_Color)229);
o->labelsize(8);
o->minimum(127);
o->maximum(0);
o->step(1);
o->value(64);
o->textsize(7);
o->callback((Fl_Callback*)cb_Cval);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
} // Fl_Value_Slider* o
{ Fl_Choice* o = new Fl_Choice(435, 105, 100, 15, "Controller");
o->down_box(FL_BORDER_BOX);
o->labelsize(10);
o->textfont(1);
o->textsize(10);
o->callback((Fl_Callback*)cb_Controller);
o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
o->when(FL_WHEN_RELEASE_ALWAYS);
o->menu(menu_Controller);
midictl=C_filtercutoff;o->value(7);
} // Fl_Choice* o
{ pitchwheelroller = new Fl_Roller(625, 10, 20, 95, "Pwh");
pitchwheelroller->tooltip("Pitch Wheel");
pitchwheelroller->labelsize(8);
pitchwheelroller->minimum(-8192);
pitchwheelroller->maximum(8192);
pitchwheelroller->step(64);
pitchwheelroller->callback((Fl_Callback*)cb_pitchwheelroller);
pitchwheelroller->align(Fl_Align(FL_ALIGN_TOP));
pitchwheelroller->when(3);
} // Fl_Roller* pitchwheelroller
{ Fl_Button* o = new Fl_Button(625, 110, 20, 15, "R");
o->tooltip("Reset Pitch Bend");
o->box(FL_THIN_UP_BOX);
o->labelfont(1);
o->callback((Fl_Callback*)cb_R);
} // Fl_Button* o
{ WidgetPDial* o = new WidgetPDial(205, 105, 20, 20, "Vrnd");
o->tooltip("Velocity Randomness");
o->box(FL_ROUND_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_INACTIVE_COLOR);
o->labeltype(FL_NORMAL_LABEL);
o->labelfont(0);
o->labelsize(10);
o->labelcolor(FL_FOREGROUND_COLOR);
o->maximum(127);
o->step(1);
o->callback((Fl_Callback*)cb_Vrnd);
o->align(Fl_Align(129));
o->when(FL_WHEN_CHANGED);
o->value(virkeys->rndvelocity);
} // WidgetPDial* o
{ Fl_Choice* o = partrcv = new Fl_Choice(20, 105, 65, 20, "MIDI Ch.");
partrcv->tooltip("Send to Midi Channel");
partrcv->down_box(FL_BORDER_BOX);
partrcv->labelsize(10);
partrcv->textfont(1);
partrcv->textsize(10);
partrcv->callback((Fl_Callback*)cb_partrcv);
partrcv->align(Fl_Align(FL_ALIGN_TOP_LEFT));
char nrstr[10]; for(int i=0;i<NUM_MIDI_CHANNELS;i++){sprintf(nrstr,"Chn%d",i+1);if (i!=9) o->add(nrstr); else o->add("Drum10");};
o->value(virkeys->midich);
} // Fl_Choice* partrcv
virkeyboardwindow->end();
} // Fl_Double_Window* virkeyboardwindow
return virkeyboardwindow;
}

VirKeyboard::VirKeyboard(Master *master_) {
master=master_;
midictl=75;
make_window();
}

VirKeyboard::~VirKeyboard() {
delete virkeyboardwindow;
}

void VirKeyboard::show() {
virkeyboardwindow->show();
}

void VirKeyboard::relaseallkeys() {
virkeys->relaseallkeys(0);
}

+ 0
- 94
source/modules/carla_native/zynaddsubfx/UI/VirKeyboard.h View File

@@ -1,94 +0,0 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300

#ifndef VirKeyboard_h
#define VirKeyboard_h
#include <FL/Fl.H>
#include <stdlib.h>
#include <FL/fl_draw.H>
#include <FL/Fl_Box.H>
#include "../globals.h"
#include "../Misc/Master.h"
#include "../Misc/Util.h"
#include "WidgetPDial.h"
#include "common.H"
#ifdef NTK_GUI
#include "FL/Fl_Shared_Image.H"
#endif

class VirKeys : public Fl_Box {
static const int N_OCT=6;
static const int SIZE_WHITE=14;
static const int SIZE_BLACK=8;
public:
VirKeys(int x,int y, int w, int h, const char *label=0);
void init(Master *master_);
void draw();
int handle(int event);
void presskey(int nk,int exclusive,int type);
void relasekey(int nk,int type);
void relaseallkeys(int type);
private:
Master *master;
int pressed[N_OCT*12+1];
public:
unsigned char midich;
unsigned char midivel;
char midioct,keyoct1,keyoct2;
unsigned char rndvelocity;
};
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Counter.H>
#include <FL/Fl_Value_Slider.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Roller.H>

class VirKeyboard {
public:
Fl_Double_Window* make_window();
Fl_Double_Window *virkeyboardwindow;
private:
void cb_virkeyboardwindow_i(Fl_Double_Window*, void*);
static void cb_virkeyboardwindow(Fl_Double_Window*, void*);
public:
VirKeys *virkeys;
private:
void cb_qwer_i(Fl_Counter*, void*);
static void cb_qwer(Fl_Counter*, void*);
void cb_zxcv_i(Fl_Counter*, void*);
static void cb_zxcv(Fl_Counter*, void*);
void cb_Vel_i(Fl_Value_Slider*, void*);
static void cb_Vel(Fl_Value_Slider*, void*);
void cb_Oct_i(Fl_Counter*, void*);
static void cb_Oct(Fl_Counter*, void*);
void cb_Close_i(Fl_Button*, void*);
static void cb_Close(Fl_Button*, void*);
void cb_Cval_i(Fl_Value_Slider*, void*);
static void cb_Cval(Fl_Value_Slider*, void*);
void cb_Controller_i(Fl_Choice*, void*);
static void cb_Controller(Fl_Choice*, void*);
static Fl_Menu_Item menu_Controller[];
public:
Fl_Roller *pitchwheelroller;
private:
void cb_pitchwheelroller_i(Fl_Roller*, void*);
static void cb_pitchwheelroller(Fl_Roller*, void*);
void cb_R_i(Fl_Button*, void*);
static void cb_R(Fl_Button*, void*);
void cb_Vrnd_i(WidgetPDial*, void*);
static void cb_Vrnd(WidgetPDial*, void*);
public:
Fl_Choice *partrcv;
private:
void cb_partrcv_i(Fl_Choice*, void*);
static void cb_partrcv(Fl_Choice*, void*);
public:
VirKeyboard(Master *master_);
~VirKeyboard();
void show();
void relaseallkeys();
private:
Master *master;
int midictl;
};
#endif

Loading…
Cancel
Save