Commit Graph

2270 Commits

Author SHA1 Message Date
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
Tobias Doerffel
5ec96a9483 MidiEvent: allow querying name of port which it came from
Added functionality to query the name of the source port of a MidiEvent
by calling MidiClient::sourcePortName( const MidiEvent & ).
2009-08-14 15:12:57 +02:00
Tobias Doerffel
2475cf982b RemotePlugin: added missing include + coding style fixes
The header cstdlib is required for NULL pointer definition. Additionally
some minor coding style fixes.
2009-08-14 15:12:57 +02:00
Tobias Doerffel
40c56de898 MidiWinMM: fixed typo that caused writablePorts() not being overloaded
The MidiClient::writablePorts() method was not overloaded properly in
MidiWinMM implementation due to a typo. This should fix list of output
devices being empty on win32.
2009-08-14 15:12:57 +02:00
Tobias Doerffel
bfe90a8ade MidiAlsaSeq: construction of port name in separate function
A port name is constructed from snd_seq_* structures at various places,
therefore separate it into a static helper function. This avoids
redundancy and eases maintainability.
2009-08-14 15:12:57 +02:00
Tobias Doerffel
9d811bf080 MidiAlsaSeq: improved MIDI event polling loop
Use poll() with a finite timeout so we can quit the thread properly
without manually writing stuff into the pipe.

Check for pending events at the beginning of the loop so we can't end up
in an endless loop.

Furthermore check return value of snd_seq_event_input() and get out of
loop if it indicates an error.
2009-08-14 15:12:56 +02:00
Tobias Doerffel
295b332650 MidiAlsaSeq: QString related fixups
Use QString::isEmpty() rather than comparing against an empty string.
Furthermore use QStrin::toUtf8() instead of QString::toAscii() for
retrieving name of a MidiPort.
2009-08-14 15:12:56 +02:00
Andrew Kelley
7d0c1ef6c2 vst_remote_plugin: add include directory
If libraries are being used from somewhere other than
/usr/include or /usr/local/include, building vst_remote would fail.
Now it checks CMAKE_INSTALL_PREFIX/include.
2009-08-13 05:30:25 -07:00
Andrew Kelley
a86ca968b7 BuildPlugin.cmake: add include directory
If libraries are being used from somewhere other than
/usr/include or /usr/local/include, building plugins would fail.
Now it checks CMAKE_INSTALL_PREFIX/include.
2009-08-13 04:25:07 -07:00
Andrew Kelley
1ee5b8a340 made FindFLAC.cmake more robust
FindFLAC.cmake now searches the cmake install prefix for
flac, fixing some configure problems in non-standard cases.
2009-08-13 02:50:53 -07:00
Tobias Doerffel
55337ad2be Renamed MIDI and audio related classes/files to match new style
Renamed all MIDI and audio related classes/files to match new style.
Additionally various cleanups.
(cherry picked from commit b8ebfbd06a)
2009-08-13 01:46:49 +02:00
Andrew Kelley
fb733051bd added FLAC as an export format 2009-08-12 07:18:16 -07:00
Andrew Kelley
6cf2d83808 made CLI rendering smoother
Suppressed a message box that would pop up in command
line interface causing a crash and made lmms act properly
when a rendering plugin fails. Need to figure out how to
terminate program in project_renderer line 222.
2009-08-12 07:14:44 -07:00
Andrew Kelley
0ab12b4eb9 Merge branch 'master' of ssh://superjoe30@lmms.git.sourceforge.net/gitroot/lmms 2009-08-12 05:52:46 -07:00
Andrew Kelley
a55b134263 mp3 rendering: apply master gain to output
Apply master gain when rendering an mp3. Don't use hardcoded
number of channels.
Additionally replaced short int with Sint16 and printf with qWarning.
2009-08-12 05:44:20 -07:00
Andrew Kelley
1c118f1a46 sample_buffer: made MP3 decoder more robust
The mp3 decoder was using an uncomfortably large buffer,
laughably because of a negative overflow. Fixed this and
added a failsafe check to prevent buffer overflows.

Additionally changed printfs to qWarnings and fixed copyright
notice in audio_file_mp3.
2009-08-12 04:34:24 -07:00
Peter Nelson
1fe0c689b0 AudioJACK: removed incorret JACK transport code
The audio_jack driver currently treats the jack transport status as a
flag for whether or not to output audio. This is incorrect and
unintended usage of jack transport. The attached patch simply removes
all references to jack transport from the driver, so that LMMS will
always be able to produce audio.

Closes #2816029.
2009-08-12 11:47:35 +02:00
Tobias Doerffel
c3100e36d0 TODO list: properly assign items to versions, cleanups
Sorted items in TODO list a bit to match release goals of planned
versions. Items regarding 0.4.x series were moved over to TODO list
in stable-0.4 branch. Furthermore removed items that are out of date.
2009-08-11 14:49:22 +02:00
Andrew Kelley
24b1baf5fa Organized TODO list. Tentatively attached versions
Organized and polished TODO list. Tentatively attached each item
to a version to have it done by. This file needs to be looked over
by Tobias.
2009-08-11 03:02:43 -07:00
Tobias Doerffel
58023cf2cf MidiWinMM: added missing break directive after case-block
A break directive was missing in MidiWinMM::handleInputEvent(), leading
to inappropriate calls to qWarning() on pitch bend.
2009-08-10 13:51:09 +02:00
Tobias Doerffel
35ca0aab69 Added CALF LADSPA plugins
As per popular demand I added CALF LADSPA plugins to be shipped with
LMMS. After some minor modifications the plugins compile and work on
win32 platform too.
2009-08-10 13:42:09 +02:00
Tobias Doerffel
ee9d88e2d4 FlpImport: fixed crash on invalid notes
Added a range check for channel parameter when adding notes. This fixes
a crash when for example importing the project posted on lmms-devel
by Andew Kelley lately.
2009-08-09 11:10:10 +02:00
Tobias Doerffel
20eda9a756 FlpImport: changed most printf()s to qDebug()s and qWarning()s
This improves structure of messages when importing FLP files.
2009-08-09 11:09:12 +02:00
Paul Giblock
f1d60958f0 Rename all Controller-family classes to new style
Adjust capitialization on all Controller-related classes to new
standards and update all calling code
2009-08-08 13:05:22 -04:00
Paul Giblock
a9a3c796f7 Hotfix for resizable controller rack
Apparently I didn't compile the latest version of my changes and there
was a lurking error.  This has been fixed.
2009-08-08 12:04:15 -04:00
Paul Giblock
bb76ba5121 Make Controller-Rack resizable
Per request, make the Controller-rack vertically sizable.  This is also
part of our effort to slowly deprecate old fixed-positioning code in
favor of layouts.
2009-08-07 16:26:07 -04:00
Tobias Doerffel
d66c71ebf8 MainWindow: removed HQ mode button
Switching to HQ mode in standard workflow doesn't make much sense and
is likely to cause problems. Therefore remove the HQ mode button for
for time being. One can still export projects in high(er) quality.
2009-08-07 17:44:49 +02:00
Tobias Doerffel
94c5c5a46f MidiWinMM: use qWarning() rather than printf()
Using printf() is really old C-style, therefore changed all printf()s
to qWarning()s.
2009-08-06 13:16:22 +02:00
Tobias Doerffel
94ebcf30bc Win32Toolchain: define MINGW_PREFIX and QT_HEADERS_DIR
MINGW_PREFIX is a better variable name than CC_PREFIX (cross copmling
prefix), therefore rename it. Furthermore define QT_HEADERS_DIR due to
changed logic in CMake's FindQt4 module.
2009-08-06 13:14:11 +02:00
Tobias Doerffel
803fd68a56 ZynAddSubFX/FLTK: updated to SVN revision 6826
Updated FLTK to SVN revision 6841 of branch-1.3:

- Fixed glibc 2.10 compiler problems (Fedora 11 and others)
  with scandir() and strchr() (STR #2222)
- Fl_Scroll mods for global scrollbar size control
- various other minor stuff (see SVN log)
2009-08-05 19:03:19 +02:00
Tobias Doerffel
9cdb6cca3b SampleBuffer: display different message if file was not found
Instead of displaying a message about failed decoding of a file,
properly indicate the actual problem if the file itself does not exist.
2009-08-05 18:19:04 +02:00
Tobias Doerffel
964c6532f2 Sf2Player: removed trailing spaces in code
There were some unsolicited trailing spaces in the code. Removed them.
2009-08-05 18:04:39 +02:00
Tobias Doerffel
144f0c6c80 Sf2Player: fixed crash and race conditions
Do not crash if no fluid_voice could be determined in
sf2Instrument::playNote() (which for example happens if no soundfont
is loaded). Furthermore protect the FluidSynth API calls in the
envelope and panning code with global synth mutex.
2009-08-05 18:00:04 +02:00