Sorry about the ridiculous delay since 1.45, but I’ve finally done a new release!
There won’t be any surprises here for most of you, as most people have probably been using the tip for months now, but it’s nice to label a stable point.
Why so long since the last one? Well there are now so many little projects and platforms to test, that it takes me about 2 days just to go through all the checking and drudgery involved in doing a release, and it’s been hard to find enough time to do it. I’ll try not to leave it so long in future though!
Here’s a copy of the change list, although some of these features are already quite old!
new class: AudioProcessorGraph: This allows AudioProcessors to be efficiently wired together and run as a graph. I’ve converted the plugin host demo to now use this instead of its own graph rendering code.
new class: AudioProcessorPlayer: This allows an audio i/o device to stream through an AudioProcessor (or an AudioProcessorGraph).
new class QuickTimeAudioFormat, which uses QuickTime to implement an AudioFormat that can read .mov files and other formats that QT supports (e.g. mp3, aac, etc)
new class: WebBrowserComponent, for embedding a web browser in your app
AudioProcessor now has a few more pure virtual methods that you’ll need to implement: acceptsMidi(), producesMidi() and getName()
moved all the audio plugin hosting classes into the main juce tree
Mac: the project now requires at least XCode V2.5
new class: ScopedTryLock
added AudioUnit support to the audio hosting code
any top-level components will now have their parentSizeChanged() method called when the screen res is changed (not on linux yet though…)
jucer: added support for ImageButtons
audio devices - a few tweaks to the various audio drivers to try to make the best possible guess at the input and output latencies that they introduce
updated to include the latest version of Flac (1.2.1)
added a parameter to DragAndDropTarget::isInterestedInDragSource(). This ma
changed the parameters to AudioIODeviceCallback::audioDeviceAboutToStart(), so that it now just supplies a pointer to the device. If you need to, you can still find out the sample rate and block size by asking the device for them.
changes to the URL class to allow file uploading
new method: PlatformUtilities::launchEmailWithAttachments
new classes: AudioThumbnail and AudioThumbnailCache, which allow easy rendering of low-res waveform previews
new classes: InputSource and FileInputSource. These encapsulate some kind of resource, and also replace the XmlInputSource class.
moved some of the posix code that was the same in the mac and linux builds into a single, shared file
fixed InterprocessLock on mac/linux so that it can’t get stuck when an app quits unexpectedly
added an option to splash screens to close themselves when the mouse is clicked
change to ProgressBar to allow custom text and bars that are just spinning without a known progress position. This also meant a change to the params for LookAndFeel::drawProgressBar
ditched win98 non-unicode support (presumably nobody will miss that!)
change to the way that channel data is passed to an AudioIODeviceCallback. Previously, some of the channels could be null, but now is uses a packed array of all the active channels
I’ve been having an issue with using libpng from within my own code, I get the error: PNG unsigned integer out of range.
I changed libpng from #including the .c files, instead I added the .c files to the project like it was in the previous versions of juce and the error went away.
[quote=“G-Mon”]I’ve been having an issue with using libpng from within my own code, I get the error: PNG unsigned integer out of range.
I changed libpng from #including the .c files, instead I added the .c files to the project like it was in the previous versions of juce and the error went away.[/quote]
I’ve been loading pngs with no probs. Maybe send me a file that causes the error? It might just be a particular format that triggers it.
Yes, I know. I’m going to look at that as part of porting the mac code to Cocoa, which will be my next big task. No point changing it now and then re-writing it again.
ah, it’s typical - whenever I do a build, there’s always some kind of glitch that gets in there… I messed up the DSound file slightly, so best to grab that from the tip.
“jucedemo”, “the jucer” and others do not compile;
the error is always the same:
‘z_Byte’ does not name a type
In the “jucedemo” the exact error output is:
/Developer/usr/bin/gcc-4.0 -x objective-c++ -arch i386 -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -Os -mdynamic-no-pic -D_DEBUG=1 -DDEBUG=1 -isysroot /Developer/SDKs/MacOSX10.5.sdk -fvisibility=hidden -fvisibility-inlines-hidden -mmacosx-version-min=10.4 -gdwarf-2 -I/Users/kio/dev/zBuild/jucedemo.build/Debug/jucedemo.build/jucedemo.hmap -F/Users/kio/dev/zBuild/Debug -I/Users/kio/dev/zBuild/Debug/include -I/Developer/SDKs/MacOSX10.5.sdk/Developer/Headers/FlatCarbon -I/Users/kio/dev/zBuild/jucedemo.build/Debug/jucedemo.build/DerivedSources -c “/Users/kio/dev/zLibs/juce_1.46/extras/juce demo/build/macosx/…/…/src/juce_LibrarySource.mm” -o /Users/kio/dev/zBuild/jucedemo.build/Debug/jucedemo.build/Objects-normal/i386/juce_LibrarySource.o
In file included from /Users/kio/dev/zLibs/juce_1.46/extras/juce demo/build/macosx/…/…/src/…/…/…/juce_amalgamated.cpp:203889,
from /Users/kio/dev/zLibs/juce_1.46/extras/juce demo/build/macosx/…/…/src/…/…/…/juce_amalgamated.mm:10,
from /Users/kio/dev/zLibs/juce_1.46/extras/juce demo/build/macosx/…/…/src/juce_LibrarySource.mm:12:
/Developer/SDKs/MacOSX10.5.sdk/Developer/Headers/FlatCarbon/strings.h:1:2: warning: #warning Strings.h is not available on Mac OS X
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/CoreMIDI.framework/Headers/MIDIServices.h:371: error: ‘z_Byte’ does not name a type
…
…
…well, after recompiling a Windows audio application (using juce_amalgamated), an application crashes each time it reaches the AudioDeviceManager::initialize(…) member function call in my code. I couldn’t debug it - it stucks.
Yes, like I said above, I messed up the version of DSound that went into the build - grab the tip of juce_win32_DirectSound.cpp and it’ll be fine. SourceForge seems to be having problems right now but I’ll replace the 1.46 zip file with a fixed one as soon as they’re back on line.
[quote=“jules”][quote=“G-Mon”]I’ve been having an issue with using libpng from within my own code, I get the error: PNG unsigned integer out of range.
I changed libpng from #including the .c files, instead I added the .c files to the project like it was in the previous versions of juce and the error went away.[/quote]
I’ve been loading pngs with no probs. Maybe send me a file that causes the error? It might just be a particular format that triggers it.
[/quote]
What I meant was, your code for loading PNGs (juce_loadPNGImageFromStream) works fine.
But, when I try and call the pnglib functions from my code, then I have issues. It might have something to do with the using ::malloc and using ::free. What is the purpose of that?
What juce needs is a way to get the size of an image without loading it, and then I wouldn’t need to use pnglib directly at all.
…the resent JUCE SVN version doesn’t work properly. Audio files are played OK until I call the AudioDeviceManager::setAudioDevice(…) member function. In that case, an AudioDeviceManager instance becomes corrupted. It plays no sounds but still keeps decoding files with increased speed (play time increases much faster). Also, it crashes when an application is being closed, but sometimes it crashes when selecting another device to play to.
[quote=“igor”]My Mac release build is failing due to references to vsnprintf(). What’s the solution to this error? It seems to be new with the upgrade to 1.46