* Audio Plugins: added an initial release of an RTAS wrapper!
* new classes: IIRFilter and IIRFilterAudioSource
* changed the Synthesiser to use reference counting for SynthesiserSound objects, so that sounds can be allowed to play on after being removed.
* added some colour options to the GroupComponent and Toolbar classes
* added a mouse-sensitivity setting to sliders
* Linux: added support for XShm, which uses shared memory to improve rendering speed
* Added a new method File::getSpecialLocation(), which lets you find out various system paths, e.g. home folders, documents folders, etc. This replaces a bunch of existing static method calls in SystemStats.
* Added a TableListBoxModel::getDragSourceDescription() method to allow easier dragging of table rows
* Added an option to PropertiesFile for creating files that are common to all users. Also tweaked a couple of methods in this class.
* Mac: added a PlatformUtilities method to convert unicode strings to their precomposed form, and used this in lots of file handling routines to avoid mix-ups between encodings of extended characters.
* Altered the directory search code to optimise fetching of file attributes - this should help when browsing directories on slower network drives
* couple of small fixes for TableHeaderComponent in stretch-to-fit mode
* added a new virtual method to OpenGLComponent to provide a callback for setting-up a new GL context
* some improvements to the AudioDeviceManager to make it do a better job of saving and restoring its state
* Jucer: some fixes for embedded jucer components
* changed the PNG loading code to correctly handle interlaced PNG formats
* added methods to convert a Path into a simple string of co-ordinates that can be reloaded.
* added a multi-select option flag to treeviews
* fixed DirectSound handling of unicode driver names
In porting from previous JAPs: FilterInfo went away into the the new characteristics file, and the new calltype macro goes on all the remaining filter methods… Anything else?
Damn. Sorry, will patch that - it was a last-minute hack, and clearly doesn’t need the semi-colon… (Bizarrely it builds ok with VC8 though, just giving a warning, which is my excuse for why I missed it…)
The audio plugin re-organisation is because RTAS needed to know more about the plugin’s properties at compile-time. Basically most of the info that used to go into the FilterInfo now goes in your JucePluginCharacteristics.h file. This makes it all compile a bit more efficiently, too. Don’t think there are any other major changes.
anyway…
in juce_IIRFilterAudioSource.h @ line 37
gcc complains about
that should be
the rest is history
ah. another thing, not a real compiling problem, but since all the files normally have no warnings in gcc (actually 4.1.1 on my new edge 2.6.18 rt-kernel gentoo), i report these the same:
platform_specific_code/juce_linux_Windowing.cpp: In static member function 'static juce::LinuxComponentPeer* juce::LinuxComponentPeer::getPeerFor(Window)':
platform_specific_code/juce_linux_Windowing.cpp:580: warning: dereferencing type-punned pointer will break strict-aliasing rules
platform_specific_code/juce_linux_Windowing.cpp: In member function 'virtual bool juce::LinuxComponentPeer::isMinimised() const':
platform_specific_code/juce_linux_Windowing.cpp:717: warning: dereferencing type-punned pointer will break strict-aliasing rules
platform_specific_code/juce_linux_Windowing.cpp: In member function 'virtual bool juce::LinuxComponentPeer::isFocused() const':
platform_specific_code/juce_linux_Windowing.cpp:920: warning: dereferencing type-punned pointer will break strict-aliasing rules
platform_specific_code/juce_linux_Windowing.cpp: In member function 'void juce::LinuxComponentPeer::updateBorderSize()':
platform_specific_code/juce_linux_Windowing.cpp:1843: warning: dereferencing type-punned pointer will break strict-aliasing rules
platform_specific_code/juce_linux_Windowing.cpp: In function 'void juce::juce_updateMultiMonitorInfo(juce::Array<juce::Rectangle, juce::DummyCriticalSection>&, bool)':
platform_specific_code/juce_linux_Windowing.cpp:1972: warning: dereferencing type-punned pointer will break strict-aliasing rules
platform_specific_code/juce_linux_Windowing.cpp: In static member function 'static const juce::String juce::SystemClipboard::getTextFromClipboard()':
platform_specific_code/juce_linux_Windowing.cpp:2411: warning: dereferencing type-punned pointer will break strict-aliasing rules
the “punned pointer” remembers me of the “punic wars”
How do I initialize JucePlugin_PreferredChannelConfigurations? I moved everything else to JucePluginCharacteristics.h, but I’m not sure what to do with this one - what format it is etc.
I do want to be able to handle different channel configurations - I'm messing around with stereo and surround imaging, making instruments sound 'bigger.'
I haven't been screaming for help on this forum as much because I AM getting the hang of it. My learning curve is a square wave, and maybe the stubble helps. *(:
me.setWasUpAllNigtCoding(true);
Thanks for the warnings, kraken - I wonder why I didn’t get any of those myself…?
the channel configurations list is just a list of { in, out } pairs, one for each arrangement of ins and outs that you want your plugin to be able to handle. So if you wanted to do mono, stereo, or 5.1, you could say {1, 1}, {2, 2}, {6, 6}… Sorry, I can’t think of a better way of explaining this than the comments that are already there!
The file attributes fix seems to be working so far. I only had a few minutes to test it today, but performance with the new build of juce seemed to be as snappy as I would expect.
I’ll test more tomorrow to make sure it wasn;t a fluke, but I’m pretty confident that’s sorted it.
yes, that should all be fine now. On windows it gets all the file info while it’s searching for files without doing any extra calls, so it’s as fast as it could possibly be.