A wxWidgets launcher for Fragment Audio Server built for the Fragment Synthesizer, a web-based Collaborative Spectral Synthesizer
This program should compile on most platforms.
The Fragment Audio Server executable should be put alongside the launcher application.
This program is a simple native launcher which provide an easy to use interface to start the Fragment Audio Server, the launcher also provide a convenient way to configure the audio server for individual sessions and provide a direct way to launch the web. application pre-linked with the native audio server by passing ?fas=1 as a web. argument.
A .deb package is available in the package folder along with the Debreate file project used to build the package for the amd64 platform, this package bundle the audio server and the launcher, this is the solution distributed on the Fragment homepage.
This program was made with the CodeLite IDE to ease the process of creating the wxWidgets UI with wxCrafter.
Requirements :
This also make use of SQLite (this is bundled)
This is easily compiled under GNU/Linux systems with the "Debug" or "Release" CodeLite target.
The launcher was successfully built for Windows systems under Linux (Ubuntu) by using the mingw-w64 package, x86_64-w64-mingw32 was tested successfully, the following guide will be written for this target but there should be minor changes needed for other targets.
A CodeLite target named "Release_WinCross" contain the configuration needed to build the application for Windows via cross-compilation.
There may be some issues building the needed libraries so here are some hints
- CodeLite may not detect automatically the compiler environment so you must add it manually via the build settings (for example, mine was located at /usr/x86_64-w64-mingw32)
Download the library somewhere (a folder named cross for example)
./configure --host=x86_64-w64-mingw32 --build=x86_64-linux CFLAGS='-I/usr/share/mingw-w64/include/ -I/home/julien/crosscompile/wxWidgets/lib/wx/include/x86_64-w64-mingw32-msw-unicode-3.1 -I/home/julien/crosscompile/wxWidgets/include -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMSW__'
Then make
& sudo make install
Download the library somewhere (a folder named cross for example)
Download the ASIO SDK (you will need to modify the ASIO SDK path appearing in the configure step below)
./configure --host=x86_64-w64-mingw32 --build=x86_64-linux CFLAGS='-I/usr/share/mingw-w64/include/ -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMSW__' --with-asiodir=/home/julien/crosscompile/ASIOSDK2.3/ --with-winapi=wmme,directx,asio
Then make
& sudo make install
Download the library somewhere (a folder named cross for example)
/usr/bin/x86_64-w64-mingw32-g++ -O2 -std=c++11 -D_WIN32 -D_WINCROSS_w64 -I/usr/x86_64-w64-mingw32/include -c process.cpp
/usr/bin/x86_64-w64-mingw32-g++ -O2 -std=c++11 -D_WIN32 -D_WINCROSS_w64 -I/usr/x86_64-w64-mingw32/include -c process_win.cpp
/usr/bin/x86_64-w64-mingw32-ar crf libtiny-process-library.a process_win.o
Some issues may arise when compiling tiny-process-library due to missing C++11 thread and mutex library and unicode support, this can be solved by using mingw-std-threads headers and by undefining unicode.
In process.hpp replace #include and #include by
#ifdef _WINCROSS_w64
#include <windows.h>
#include "mingw.mutex.h"
#include "mingw.thread.h"
#undef UNICODE
#else
#include <mutex>
#include <thread>
#endif