##########################################################################
#
# Linux port:
#   + quitFlag is not possible for Qt. As it needs to be a function that can call a member of mainWindow
#     so quitFlag should be removed and replaced with a callable function something like 'quitStudioFactory()'
#
# Ideas:
#   - Transpose option in Patch settings
#   - note range in Patch settings
#   - velocity range in Patch settings
#   - Key to focus main window (easier keyboard control)
#   - scrollbars around mainwindow
#   + move html font generation to font_gdi.pl more platform independence
#   - 2,4,8,16 buttons to digital value (for use in switch)
#     - or A..Z / 0..N buttons for digital switch
#
# Open bugs:
#   - play patch, select and delete previous project, play button is gray, should be green.
#   - flushCaptureFile is in timertick of transport window. but is not optimal location. moveto mainwindow? and then ~cc~mainwindotick~ or such...
#   - Gray 'show resize icons' on/off button in colorselector if no graphic modules exist.
#   - setRecordMode -> setTheRecordMode (results in double function needs fix)
#   - setPlayMode -> setThePlayMode (results in double function needs fix)
#   - PageUp/PageDown/CursorUp/CursorDown must be supported in onlineHelp/AboutBox
#   - selecting project and then ctrl+C doesn't copy it.
#     - load/save should support multi project in one file
#   - Add help for FilterBank, EnvBank, SwiMux, EXPLIN (?), Switch, DRM, FF1, FF2
#   - Add also help for SIN (wave shaper), MIX&OUT, CON_AUX_RETURN, M-CC1, M-CC2, M-NOTE, M-CLK
#   - Close project should ask for conformation before deleting unsaved data.
#   - Deleting project in project browser should ask for conformation if project is not saved yet.
#   + no horizontal scrollbar for "Project Browser"
#   - Show/Hide label menu must be grayed out when no modules are selected (first add global counter for counting selected modules).
#   - Mixer window and CON, AUX, RETURN modules are not working.
#   + should prevent opening same file twice
#   + modified flag should be set correctly after all edits. Need to make a checklist.
#   + Modified flag should be stored inside autoload.stf
#   + Received request for fixed EQ filter (3 knobs for  freq, bandwidth, Q)
#
# 0.43
#   - Re-ordered OSC menu
#   - Fixed key handling bug (sometimes a command was executed multiple times)
#   - Added MinMax module.
#   - dsp runtime compiler extended with: AND, OR, NOT

# 0.42
#   - Bugfix in rendering of the menu help.
#   - Implemented 6th waveform of OSC.
#   - Anti-Alias filter of OSC module can be switched on and off.
#   - Added DC-Filter on output (play menu).
#     All frequencies below 5 Hz are suppressed when this filter is enabled.
#   - Added Quad-Osc (Quadrature sin oscillator with 8 fixed phase shifts)
#   - Increased contrast of midi activity monitor.
#
# 0.41
#   - Virtual MIDI keyboard
#   - Added PM-Osc
#
# 0.40
#   - Fixed output level of DAC. (It was 0 or 32768 and is now changed to 0 or 32767)
#   - Saving the project file clears modified flag.
#   - Possible to move mouse-arrow with ctrl+cursor keys.
#   - Fixed handling of doubleclick in patch-window.
#
# 0.39
#   - Bugfix of problem introduced in 0.38, fill background even when no project is loaded.
#   - In project browser the current playing project has [playing] behind the name.
#   - Fix in conversion of user-manual text for use in online help. Extra spaces removed.
#
# 0.38
#   - If playing project is different from current project, the playing one is colored green in the project browser.
#   - Menuhelp is now generated from the user-manual, so it will keep upto-date
#   - Reduced flickering of the screen when using scrollwheel/thumbs when scrolling beyond reachable range.
#   - ScopeWindows use double buffered output to eliminate screenflickering during update.
#
# 0.37
#   - Bugfix 'Configuration:Save Settings As' menu option.
#   - Bugfix draging cables in mode 0 (black lines) didn't show the cable during draging.
#
# 0.36
#   - Play button on transport turns gray if other then current project is playing.
#   - Patches show module count in project browser.
#   - Bugfix in refresh of patch screen when objects are selected in project browser.
#   - Bugfix in refresh of patch screen when icons are clicked in OSC module.
#
# 0.35
#   - Less flashing/redrawing of the main screen when performing edit operation on the current patch.
#   - Modules can be selected in the project browser with the mouse.
#   - Modules can be selected with the keyboard. Press enter to expand projects/patches.
#   - Fixed Ctrl+S (shortcut for save).
#   - Fixed resize for graphic modules (still need color editing before they really work)
#   - Memory leak bugfix (free projectName and patchName during delete)
#
# 0.34
#   - Removed click while using 'sync' input combined with the triangle waveform. (Original bug report was for SynFactory)
#   - Added M-CC3 and M-CC4. Support for CC messages 3, 9, 20-40, 49-69 and 80-84. (Michael W. Brown)
#	- Display current patch number/name in patch window.
#   - Many small internal changes for the port to Linux + Qt.
#
# 0.33
#   - Added sync input to Perlin-Osc. 
#   - Added 0 +1 +2 octave buttons for Perlin-Oscillator.
#   - Added M-CC-USER module. (can be used to respond to CC messages not provided by M-CC1 or M-CC2)
#   - Added Freq display for Freq. knob for both Perlin-Osc and Formanzzz.
#   - Internal bugfix in drawing code when 'translate' function is used for a knob and there are less then 3 inputs or outputs.
#   - Sustain pedal support on CC number 65, 66, 67, 68 or 69. Will hold all notes in the patch until released.
#
# 0.32
#   - Program supports onlinehelp in multiple languages (currently no translations available though)
#   - Help added (English language only) for CROSS module.
#   - OSC Oscillator has +1 and +2 octave modes. Buttons are rearanged a bit to make room for the
#     three new buttons.
#   - Begin port of studiofactory to Linux + Qt (using Qt will allows an easier port to Mac too)
#
# 0.31
#   - Independed buffersize setting for audio input and audio output.
#   - Fixed bug in filter definition for open file dialog.
#   - Open file dialog remembers last used filter.
#   - The maximize state of main window is stored in autoload.stf.
#   - Fixed the File:Save menu option.
#   - Filepath of project is stored in autoload.stf.
#   - main window has focus after program start.
#   - Added horizontal scrollbar in configuration windows
#
# 0.30
#   - Patches are correctly numbered in project window (all were called patch 0)
#   - New menu option File:Add/Merge to merge a file with the current project.
#   - Fixed cursor control in Project Browser, cursor is now brought into view
#     when the cursor keys are used.
#   - Value of the knobs on modules can be changed with the keyboard. Hover above
#     knob and type number (0-9, backspace or minus). '[' ']' decrement/increment
#     with one. '{' '}' decrement/increment with 10.
#   - Label editing possible. Hover over label and type text.
#
# 0.29
#   - Added CROSS module (cross fade between two signals).
#   - Added Scanner module (scan moothly across 9 inputs).
#   - Fixed MIX8 module (added missing inputs).
#   - If help window is open it defaults showing about box (it used to be empty).
#   - Tool windows can be closed by pressing Escape key
#   - When closing a tool window, focus is set to main window.
#
# 0.28
#   - Fixed playmode:record menu option.
#   - Fixed help:context menu option.
#   - Added online help for most of the modules. Press F1 or help:context
#     after selecting a module in the patch area.
#   - Fixed bug: Left double clicking on a module knob would sometimes
#     cause the mouse to get stuck in the middle of the screen.
#   - Check marker is set for play mode:record menu item when recording.
#
# 0.27
#   - A check marker is set in cable color menu for the currently selected
#     cable color.
#   - Again reduced the amount of memory leaks in the program.
#   - Selecting playmode:rewind, playmode:stop or playmode:play from the
#     menu is working.
#   - ADD, MUL, AND and OR modules have icon to easier distinguish between them.
#   - Moving the cursor in the project browser will automatically scroll
#     the contents of the window to the cursor location.
#   - Fixed Ctrl+C in project browser.
#   - Fixed 4Chan scope module (double click opens scope window)
#   - Deleting patch module also closes (edit) window belonging to the module
#     (SCRIPT, TEXT and SCOPE modules).
#   - Module help implemented (select module and press F1). Only help for
#     OSC and MOS at the moment.
#
# 0.26
#   - Reduced the amount of memory leaks in the program (still a few exist).
#   - Script from the SCRIPT module is now properly saved in .stf projects.
#   - Eliminated crash when deleting a project with one or more patches that
#     was followed by a project without any patches in the project window.
#   - Space and Return/Enter keys can be used in Project Browser to select
#     projects and patches with the keyboard.
#
# 0.25
#   - Store last used recording format. So next time record button is
#     pressed the same format is used (wav, mp3 or ogg).
#   - Copying in synfactory and then pasting in StudioFactory no longer
#     creates a new project but merges into an existing patch.
#     If 'createNewProject' is false in loadInfo we don't create a project.
#   - Shortcuts Ctrl+X Ctrl+C Ctrl+V work also in projectBrowserWindow.
#   - Both delete in menu and pressing delete key now have same result.
#   - Selected patches are deleted when selecting delete or cut.
#     In previous versions they where left empty in the project.
#   - Fixed highlight colors and cursor control in project browser.
#   - Mouse is properly released on ALT+TAB when modifying knob settings
#     or other cases where the mouse is captured for editing.
#
##########################################################################
