GTK+ << C++ IOStream operators for GTK+. Now with ORBing, numerical computation, audio client and more ...
This software is for the following :
The GUI related classes are intended to be light weight GTK wrappers for use in C++.
As far as the GUI software is concerned, it is all contanined in the class header files, this means that you can simply include the headers and code away without having to worry about compiling any source code files other then your own.
The feedforward neural networks use Eigen3 for their implementation, which ensures the efficient evaluation using hardware vector processing and parrallel computation, where possible.
The audio system interfaces to the Jack audio server. This server allows real time audio processing when you have a patched kernel or if your operating system is capable of schedueling in some real time manner.
Various other parts of this distribution include
This distribution also ships with many examples of how to use the various classes contained within.
_____ _ __ __ _ / ____| | | / _| / _| | | (___ _ _ _ __ _ __ ___ _ __| |_ | |_ _ __ ___ ___ ___ ___ | |_| |___ ____ _ _ __ ___ \___ \| | | | '_ \| '_ \ / _ \| '__| __| | _| '__/ _ \/ _ \ / __|/ _ \| _| __\ \ /\ / / _` | '__/ _ \ ____) | |_| | |_) | |_) | (_) | | | |_ | | | | | __/ __/ \__ \ (_) | | | |_ \ V V / (_| | | | __/ |_____/ \__,_| .__/| .__/ \___/|_| \__| |_| |_| \___|\___| |___/\___/|_| \__| \_/\_/ \__,_|_| \___| | | | | |_| |_|
The general paradigm is that you can very easily construct GTK object and in some cases use the C++ IOStream paradigm to build graphical user interfaces (GUIs).
For example, I will create labels in a Vertical box like so :
Similar things can be done with buttons (label buttons, toggle buttons, XPM and transparent XPM buttons are also supported)
If you want to get compact, you can write like so :
If you want access to the GTK+ widgets, it is easy
Plotting is easy and is similar to Octave.org (Matlab) style plotting commands.
For example the following code :
Produces this :
Octave is simplistically instantiated and run like so :
A more detailed description can be found in the Octave class detailed description.
To utilise the Octave code, the Octave.C file must be linked with your code. The reason for separating the Octave source from the header is that octave uses libfftw.so, where as you may want to use libfftwf.so in your own code. By separating the Octave code out from the Octave header file, you are able to link against the Octave header and utilise octave without having to link against its shared libraries directly.
ORB is desigend to be trivial. On the originating side of the network, the following is executed
On the replication side of the network, the following is executed
A more detailed example is in the ORBTest.C class. There is also other documentation in the ORBOriginator and ORBReplicator class documentation.
To utilise the ORB (ORBOriginator and ORBReplicator) code, you must specify your network protocol in a .ice file. This .ice file specifies in object oriented code what objects you will be sending over the network (simple types are int, float, vector<TYPE> and many others). The slice2cpp application is run at compile time to machine generate .C code from the .ice files. These then are linked into your application.
Neural network computation is also designed to be efficient and quick to use. For more detail and example code reference here NeuralNetwork.
Jack is utilised for audio playback. Currently Jack runs on OSX, IOS, Linux, Microsoft (and hopefully soon android!). See JackClient for more detail.
If you only want to use the GTK GUI building classes, then there is no need to build and you can simply point your preprocessor or IDE to the correct header file location.
Requirements : You will need the Octave system, libsox, and ZeroC Ice. On a Debian derived system (e.g. Ubuntu) you can use the following :
To build the code, first run ./tools/autotools.sh then configure, make and make install. To clean the code, either make clean OR run ./tools/autotoolsClean.sh to clean everything !
Copyright 2001 to 2013 Matt Flax firstname.lastname@example.org@email@example.com@firstname.lastname@example.org
This software is governed by the GPL license.
GTK+ IOStream Beta
GTK+ << C++ IOStream operators for GTK+. Now with extra abilities ... like ORBing, numerical computation, audio clients and more...