v1.28

Hi folks, got another new version for you. There were a couple of silly windowing bugs in the last one I wanted to fix, and there’s some new classes here to play with. Changes are:

* Cleaned up the audio device driver architecture, adding an AudioIODeviceType class to represent the different types, (e.g. DSound, ASIO, CoreAudio, ALSA, etc). The AudioIODevice class is now an abstract base class, and instances can only be created by using an AudioIODeviceType object. This means that user code no longer needs to care whether support for ASIO is enabled or not.
* Fixes to the ReadWriteLock class
* Couple of bugfixes to stop older VC7 compilers complaining
* Finally found a way of making the windows come to the front correctly under Gnome on Linux
* Fixed a linux mouse focus bug that messed up menus
* New class: Socket, which is.. you guessed it.. a socket.
* New class: NamedPipe, which is, unsurprisingly, a named pipe, for interprocess comms.
* new class: InterprocessConnection, which manages a simple two-way socket or pipe-based message passing connection to another process or machine on the network.
* Added a new interprocess comms page to the demo, to demonstrate InterprocessConnections.
* Improvements to repaint speed on win32 when there are complex repaint regions
* Fix for a mac windowing bug that stopped modal windows coming to the front correctly

Ooo, can’t wait to try it out! Oh and thanks for all the added data access methods in the Slider class in v1.27 – made my life a heck of a lot easier.

BTW, I’ve been meaning to add my socket classes to JUCE that supports both UDP and TCP and has a robust implementation for managing hosts, callbacks, and connections, and is portable to Win32 and Mac OS (I can add a port to Linux too). It’s something I’ve used repeatedly over the years, developing things like mail clients, audio streaming servers, and the like. Because it’s been so well designed I can throw it into any network-enabled project with minimal fuss, but whipping the library into JUCE shape (and format) will take some effort. I don’t know when I’ll be able to get to it since it has to take a backseat to my current (getting paid for) project, but if you’re interested, I can see about making it somewhat presentable so at the very least you can steal some ideas from it.

  • kbj

Cool. Would love to see your stuff. I’m pretty new this networking lark…

oooh sockets :smiley: do they work on all platforms?

neat-o! sockets and pipes = really nice cool addition, thanks a lot jules!

socket…cool! :slight_smile:

I have a suggestion that I mentioned in Mac thread in this discussioin board, why don’t you use Xcode’s build configuration file for juce.xcodeproj?

If you prefer Mac OS 10.3.9 SDK, set it as project setting and make juce.xcconfig file with settings below:

GCC_VERSION_i386 = 4.0 MACOSX_DEPLOYMENT_TARGET_i386 = 10.4 SDKROOT_i386 = /Developer/SDKs/MacOSX10.4u.sdk

And remove gcc3.3 in the rules of the project.

I think this helps us, not to change the project settigns for each release. :slight_smile:

  • Masa

Ah yes, I meant to look into that, but forgot! I’ll get onto it soon…