Commit Graph

2302 Commits

Author SHA1 Message Date
Tobias Doerffel
5c96adbd6d ZynAddSubFX: fix plugin descriptor name
While fixing the name of the plugin library in commit
883836aa8a the plugin descriptor
structure has not been updated.
2009-09-02 22:32:21 +02:00
Tobias Doerffel
883836aa8a ZynAddSubFX: keep plugin filename lower case
If we'd rename all plugins like I did with ZynAddSubFX, we'd run into
serious troubles, therefore keep plugin names lower case.
2009-09-01 00:14:21 +02:00
Tobias Doerffel
9ca04feb1d Win32: added missing symbol exports
Some new classes lacked the EXPORT declaration so they were not
accessible by plugins. Fixed this.
2009-08-30 14:52:36 +02:00
Tobias Doerffel
b4526ec1b4 AudioFileFlac: allow compilation withoug FLAC support
Compilation of AudioFileFlac source files failed when there's been
no FLAC support on the system. Fix this by adding according #ifdef's.
2009-08-28 23:56:15 +02:00
Tobias Doerffel
ee63a13f2d RemotePlugin: do not skip audio processing when debugging
If DEBUG_REMOTE_PLUGIN was set, RemotePlugin::process() always returned
as RemotePlugin::isRunning() returned false. Fix this by always
returning true when debugging.
2009-08-28 23:54:18 +02:00
Tobias Doerffel
78536d9065 ZynAddSubFX: fixed win32 compilation of FLTK and MXML
Some platform-specific constants got renamed during sed-mass-replace.
Fix this by reverting concerning constant names.
2009-08-28 23:53:02 +02:00
Tobias Doerffel
f1d383d04d ZynAddSubFX: added GUI-less mode
Added a new GUI-less mode to ZynAddSubFX instrument plugin which allows
to let ZynAddSubFX audio processing happen within LMMS, giving a much
better realtime behaviour.

As soon as showing up the GUI settings of GUI-less ZynAddSubFX instance
are saved and a traditional RemoteZynAddSubFx process is being launched
and the settings are applied there.
2009-08-28 23:52:38 +02:00
Tobias Doerffel
d2eea754bc ZynAddSubFX: lots of cleanups in RemotePlugin implementation
Moved all ZynAddSubFX instance related functions and variables into
RemoteZynAddSubFX class so there're no globals anymore. Also removed
some unused headers and ZynAddSubFX' main.c.

Additionally make use of full 80 chars/line with ts=4.
2009-08-27 11:34:59 +02:00
Tobias Doerffel
2287eca802 Plugin: typedef DescriptorList + more const improvements
Instead of writing QVector<Plugin::Descriptor> everywhere, mit up
iterators etc. centrally define Plugin::DescriptorList and use it
everywhere.

Additionally made pointers to Plugin::Descriptor and
Plugin::Descriptor::SubPluginFeatures::Key const in various places
so we can use ConstIterator everywhere when iterating through
Plugin::DescriptorList.
2009-08-26 01:46:27 +02:00
Tobias Doerffel
1c76c77d22 Plugin::Descriptor::SubPluginFeatures: made some methods const
We can safely make fillDescriptionWidget() and listSubPluginKeys()
const methods. Furthermore descriptor pointer to listSubPluginKeys()
can be const as well. Might allow more optimizations by the compiler.
2009-08-26 01:36:00 +02:00
Tobias Doerffel
e8c3c21f7f Plugin::Descriptor: renamed sub_plugin_features to subPluginFeatures
Renamed field sub_plugin_features to subPluginFeatures in
Plugin::Descriptor struct.
2009-08-26 01:01:35 +02:00
Tobias Doerffel
50004a4f89 EffectRackView: removed unused method mainLayout()
There's no need to get a pointer to the layout of an EffectRackView
outside the class, therefore remove the mainLayout() method.
2009-08-26 00:56:10 +02:00
Tobias Doerffel
cb85bfc906 EffectSelectDialog: rewritten using Designer
All of the GUI code of EffectSelectDialog has been replaced by an
according UI file. Also merged EffectListWidget class into
EffectSelectDialog to further simplify logic.
2009-08-26 00:52:17 +02:00
Tobias Doerffel
d7365e4cf3 Fixed mistakes made by sed-mass-replaces
Some variables got renamed the way the shouldn't. Doesn't have any
functional impact but fix it for the sake of cosmetics.
2009-08-26 00:50:41 +02:00
Tobias Doerffel
f7af62eab4 Build system: pass -nw as option for MOC to QT4_WRAP_CPP macro
Passing -nw as option for MOC to QT4_WRAP_CPP macro silences warnings
about non-MOCable headers (which confused a lots of users).
2009-08-24 23:37:28 +02:00
Tobias Doerffel
166701f9f3 sed: s/( void )/(), s/FALSE/false/, s/TRUE/true
Replaced remaining occurences of old constants and superfluous "void"
on empty argument list of functions.
2009-08-24 23:25:26 +02:00
Tobias Doerffel
8c9a9dd14c File and class renames part 1
Most files and most of the core classes and their methods have been
renamed to match new coding style conventions:

391 files changed, 25400 insertions(+), 25598 deletions(-)

Furthermore splitted some files where model and view classes were
declared or implemented together in the same file.

Should be tested thoroughly as I might have missed renaming some virtual
methods or SIGNAL/SLOT parameters.
2009-08-24 17:59:28 +02:00
Tobias Doerffel
b5d9fab944 AutomatableModel: do not return an out of range value in fittedValue()
If a certain step was set for a model, the fitted value (i.e. value
divided by step, rounded and multiplied with step again) could become
smaller than minValue or greater than maxValue. Therefore explicitely
check those cases after performing the described calculation.

Closes #2840202.
2009-08-23 23:38:34 +02:00
Tobias Doerffel
9615ceabd5 PeakController: initial work on attack- and decay-support
The decay knob didn't actually do anything before. Now it's useful
together with newly introduced attack knob. One can do much better
sidechaining now without disturbing artifacts due to too responsive
volume changes.
2009-08-23 19:14:19 +02:00
Tobias Doerffel
90e0cab629 QuickLoadDialog: implemented resource type filter
One can filter resource types now using the combobox. It's also possible
to pass a certain ResourceItem::Type to the QuickLoadDialog constructor
so the according type is preselected.
2009-08-22 01:17:03 +02:00
Tobias Doerffel
1c56bf4e55 ResourceItem: added descriptiveTypeName() method
The new ResourceItem::descriptiveTypeName() allows to query a
descriptive name for a given ResourceItem type.
2009-08-22 01:16:04 +02:00
Tobias Doerffel
beed7a6ee6 Moved UI files from src/gui/dialogs to src/gui/Forms and renamed files
All UI files are now located in src/gui/Forms and have been renamed.
Old classes using some of the forms (AboutDialog, ExportProjectDialog)
have been adapted to instantiate Ui::* instead of inheriting from it.
2009-08-22 00:18:23 +02:00
Tobias Doerffel
fe99a7a35c WelcomeScreen: implemented project loading functionality
It's now possible to load projects by clicking them in one of the
two lists (recent projects, recent community resources).
2009-08-21 23:48:33 +02:00
Tobias Doerffel
97e52de521 RecentResourceListModel: added item(QModelIndex) method
Added an item(QModelIndex) method to RecentResourceListModel which
maps given QModelIndex to source model and returns the according
ResourceItem from the source model.
2009-08-21 23:45:25 +02:00
Tobias Doerffel
0404cc760f MainWindow: integrated new WelcomeScreen widget
Initial integration of (not yet fully functional) WelcomeScreen.
2009-08-21 19:14:03 +02:00
Tobias Doerffel
34a20ba610 Added new WelcomeScreen widget
The new WelcomeScreen widget is intended to be shown after startup
by default. It allows the user to choose how to start the session,
i.e. shows a list of recently edited projects, a list of new stuff
at the Sharing Platform as well as some help related information and
links.
2009-08-21 19:11:40 +02:00
Tobias Doerffel
a5bf034575 RecentResourceListModel: new model providing resources sorted by date
RecentResourceListModel is a new proxy model which provides a list of
resources sorted by date (based on a ResourceListModel as source model).
2009-08-21 18:34:34 +02:00
Tobias Doerffel
0550132d1b Engine: provide individual ResourceDBs instead of one global provider
Pointers to individual ResourceDBs can be obtained from Engine now.
This allows for more specialized views and reduces complexity when
dealing with resources.
2009-08-21 18:17:32 +02:00
Tobias Doerffel
d3bb3ff13a ResourceModel: implement filter functionality
So far all subclasses implemented filtering on their own which doesn't
make much sense. Now one can set filter keywords and a filter type for
all ResourceModels. Subclasses simply have to call
ResourceModel::itemMatchesFilter( ResourceItem ) in order to determine
whether an item should be hidden or not. Additionally they have to
implement the updateFilters() method in order to update their internal
management data each time the filters change.
2009-08-21 18:10:38 +02:00
Tobias Doerffel
36ec30f649 WebResourcesProvider: parse date from WebResources index
The last-mod property was not set for non-local ResourceItem's. Parse
it from WebResources index file and pass it to ResourceItem constructor.
2009-08-21 16:36:53 +02:00
Tobias Doerffel
7bea6d0e07 MainWindow: renamed class to match new style
Renamed mainWindow to MainWindow and engine::getMainWindow() to
engine::mainWindow(). Additionally reduced some header dependencies.
2009-08-21 12:09:39 +02:00
Tobias Doerffel
14ec1d1d10 Changed version number to 0.4.90
As discussed in IRC, we're going to insert another release series
(0.5.x) between 0.4.x and 1.0 so users do not have to wait for cool
new features (such as Resource framework, automation recording etc.)
until things like SongEditorNG are finished.

A new stable series also has the advantage of less maintainance work
because we can simply pull the stable branch into master branch for
bug fixes (instead of cherry-picking commits from master to stable).

Decreasing version number shouldn't have a functional impact as the
file format hasn't changed since 0.4.0.
2009-08-21 00:31:13 +02:00
Tobias Doerffel
6a9e45f733 TAP LADSPA plugins: updated to version 0.7.1
After (exactly) 5 years of silence, there's a new relase of TAP LADSPA
plugins. It fixes issues on 64 bit machines, uninitialised variables
and denormal issues.
2009-08-19 14:28:05 +02:00
Tobias Doerffel
9c5e04ba73 ZynAddSubFX: restructured initialization and shutdown code
Most of the stuff that was in main(...) function before directly is
related to creating a new instance of ZynAddSubFX master class,
therefore moved initialization and shutdown code into constructor
and destructor of RemoteZynAddSubFX class. Should have no functional
impact.

The shutdown code as extended to properly destroy the ZynAddSubFX
instance.
2009-08-18 23:19:54 +02:00
Tobias Doerffel
80f101cec6 AudioAlsa/AudioOss: set FD_CLOEXEC flag for file descriptors
Per default child processes inherit all file descriptors of their
parent process. This applied for file descriptors pointing to sound
devices as well. Reopening sound devices while e.g. a ZynAddSubFX
process was running always failed due to this "feature".

By manually setting the FD_CLOEXEC flag for the sound device file
descriptors they do not get inherited by child processes anymore.
2009-08-18 15:27:43 +02:00
Tobias Doerffel
c8d5497486 TreeRelation: fix compilation failure with older GCCs
Older GCCs do not allow scoping types for return value of functions.
Explicitely typedef a longer name to fix this.
2009-08-18 15:05:55 +02:00
Tobias Doerffel
49ebb835af ZynAddSubFX: forward MidiControlChange events to ZynAddSubFX core
So far we ignored all events other than MidiNoteOn, MidiNoteOff and
MidiPitchBend. By also processing MidiControlChange events one can
control some basic parameters of ZynAddSubFX via MIDI now.
2009-08-18 01:29:10 +02:00
Tobias Doerffel
0a6c187b86 MainWindow: initial integration of new QuickLoadDialog
This is an initial integration of the new QuickLoadDialog into LMMS.
One can either open up the dialog via Ctrl+L or the "Edit" menu.

The dialog is for testing only and not useful at all yet.
2009-08-18 00:29:17 +02:00
Tobias Doerffel
562688e845 QuickLoadDialog: initial version
This commit introduces initial version of the QuickLoadDialog.
It's a simple dialog with a filter line-edit as well as a ListView
showing all (filtered) ResourceItem's. Once integrated properly it'll
allow to quickly load a specific resource into current context, e.g. a
sample into AudioFileProcessor or a MIDI file into SongEditor.
2009-08-18 00:23:55 +02:00
Tobias Doerffel
cc987b2e6a ResourceListModel: new model providing resources in a flat list
The new ResourceListModel implements a ResourceModel to be used with
QListView & friends. It provides all items of the given ResourceDB as
a flat unsorted list. It'll be mainly used for the upcoming
QuickLoadDialog.

ResourceListModel features an internal lookup table, resulting in very
good performance when filtering (even with thousands of items).
2009-08-18 00:15:14 +02:00
Tobias Doerffel
13e9876b38 ResourceModel: made setFilter(...) a pure virtual public slot
Making setFilter(QString) a pure virtual public slot forces all derived
models to implement this slot. Furthermore it allows external GUI code
to connect e.g. QLineEdit::textChanged(QString) signal directly to the
setFilter(...) method.
2009-08-17 23:06:07 +02:00
Tobias Doerffel
13df5c92cf ResourceTreeView: minor coding style improvements
Just some minor fixes to improve general coding style.
2009-08-17 23:05:45 +02:00
Tobias Doerffel
38155d95c4 ResourceTreeModel: moved keyword matching code into ResourceItem class
Place functionality to where it belongs. ResourceItem::matchKeywords()
now returns whether a given list of strings matches with various
string properties of the item.
2009-08-17 22:15:51 +02:00
Tobias Doerffel
0a9d3aba6f ResourceTreeModel: removed unused headers
There's no need to include various headers as according code moved
into ResourceModel class.
2009-08-17 21:11:13 +02:00
Tobias Doerffel
f873ad2693 ItemRelation: new template for making up relations between ResourceItems
The new generic ItemRelation template class replaces ResourceTreeItem's,
resulting in cleaner and better organized code.

In the future other kind of items can be linked hierarchically using
the ItemRelation template.
2009-08-17 20:44:36 +02:00
Tobias Doerffel
26be3b0e81 ResourceModel: made m_db pointer non-modifieable by subclasses
Subclasses have to call ResourceModel::db() now in order to get the
pointer to the DB, the model is operating on.
2009-08-17 17:14:03 +02:00
Tobias Doerffel
3110e2188d Resource[Tree]Model: moved common functionality into base class
All functionality which is not related to a ResourceTreeModel has been
moved into ResourceModel base class, allowing to share them in other
resource model implementations.
2009-08-17 16:53:14 +02:00
Tobias Doerffel
dd42518bb9 Resource[Tree]Item: made hidden-flag multi-model capable
The hidden flag has been moved from ResourceTreeItem to ResourceItem
and has been made multi-model capable, i.e. a ResourceModel pointer is
being used for looking up the flag in a hash table.
2009-08-17 16:50:35 +02:00
Tobias Doerffel
dfae570700 MidiAlsaSeq: print error message if snd_seq_event_input() failed
Evaluate return value of snd_seq_event_input() and print an error
message if it failed.
2009-08-14 15:21:18 +02:00
Tobias Doerffel
27f5d20e05 ControllerConnectionDialog: improved auto detect feature for controllers
When opening up the ControllerConnectionDialog by default auto detect
is enabled and all MIDI input devices are selected. Upon the first
event all devices but the one the event came from get unchecked. This
eases the process of assigning MIDI controls to software controls.
2009-08-14 15:12:58 +02:00