Skip to content

Commit 8ca872e

Browse files
author
Chris Hold
authored
Merge pull request #1 from chris-hld/mxe
Add ssr-brs and ssr-generic
2 parents 1506548 + 9eb9df7 commit 8ca872e

File tree

8 files changed

+92
-50
lines changed

8 files changed

+92
-50
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
ssr_scene_autosave.asd
22
_build
3+
bin
34
.vs
45
*.o
6+
*_moc.cpp
57
src/config.h
68
*.exe

.travis.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,18 @@ env:
1010

1111
matrix:
1212
include:
13+
# linux with gcc 8
14+
- os: linux
15+
addons:
16+
apt:
17+
sources:
18+
- ubuntu-toolchain-r-test
19+
install:
20+
- gcc-8
21+
dist: trusty
22+
env:
23+
- MATRIX_EVAL="CC=gcc-8 CXX=g++-8"
24+
compiler: gcc
1325
# linux with gcc 7
1426
- os: linux
1527
addons:
@@ -99,8 +111,8 @@ after_failure:
99111
branches:
100112
only:
101113
- master
102-
- networking-with-osc
103114
- travis-integration
115+
- ssr-windows
104116

105117
notifications:
106118
email: false

CMakeLists.txt

Lines changed: 37 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,12 @@ set(SOURCE_FILES
4646

4747
set(MAIN_SOURCE_FILES
4848
src/ssr_binaural
49-
src/ssr_wfs)
49+
src/ssr_brs
50+
src/ssr_generic
51+
src/ssr_nfc_hoa
52+
src/ssr_vbap
53+
src/ssr_wfs
54+
)
5055

5156
# Libraries
5257
# Add libraries to LINKLIBS
@@ -159,43 +164,37 @@ if(GUI)
159164

160165
option(ENABLE_GUI "graphical user interface (using Qt)" ON)
161166
option(ENABLE_FLOATING_CONTROL_PANEL "separate control window" ON)
162-
option(STATIC_QT "Use static Qt5 libraries" ON)
167+
option(STATIC_QT "Use static Qt5 libraries (Windows)" ON)
163168

164169
find_package(Qt5 COMPONENTS Core Gui Widgets OpenGL REQUIRED)
165-
#include_directories(${Qt5_DIR})
166170
message(STATUS "Found QT5: " ${Qt5_DIR})
167171

168-
# We need add -DQT_WIDGETS_LIB when using QtWidgets in Qt 5.
169-
#add_definitions(${Qt5Widgets_DEFINITIONS})
170-
171-
#Get platform support libs
172-
if(STATIC_QT)
173-
add_definitions(-DQT_STATICPLUGIN)
172+
if(WIN32)
173+
if(STATIC_QT)
174+
add_definitions(-DQT_STATICPLUGIN)
175+
endif(STATIC_QT)
174176

177+
# Platform support libs for Windows
175178
set(QT5PLATFORMSUPPORT_LIBS
176179
Qt5::QWindowsIntegrationPlugin
177180
)
178181

182+
# Qt5PlatformSupport modules
179183
find_library(Qt5ThemeSupport_LIBRARY Qt5ThemeSupport)
180184
list(APPEND QT5PLATFORMSUPPORT_LIBS ${Qt5ThemeSupport_LIBRARY})
181-
message(STATUS "Found Qt5ThemeSupport :" ${Qt5ThemeSupport_LIBRARY})
182-
183185
find_library(Qt5FontDatabaseSupport_LIBRARY Qt5FontDatabaseSupport)
184186
list(APPEND QT5PLATFORMSUPPORT_LIBS ${Qt5FontDatabaseSupport_LIBRARY})
185-
message(STATUS "Found Qt5FontDatabaseSupport :" ${Qt5FontDatabaseSupport_LIBRARY})
186-
187187
find_library(Qt5EventDispatcherSupport_LIBRARY Qt5EventDispatcherSupport)
188188
list(APPEND QT5PLATFORMSUPPORT_LIBS ${Qt5EventDispatcherSupport_LIBRARY})
189-
message(STATUS "Found Qt5EventDispatcherSupport :" ${Qt5EventDispatcherSupport_LIBRARY})
190-
191189
find_library(Qt5AccessibilitySupport_LIBRARY Qt5AccessibilitySupport)
192190
list(APPEND QT5PLATFORMSUPPORT_LIBS ${Qt5AccessibilitySupport_LIBRARY})
193-
message(STATUS "Found Qt5AccessibilitySupport :" ${Qt5AccessibilitySupport_LIBRARY})
194-
191+
find_library(Qt5WindowsUIAutomationSupport_LIBRARY Qt5WindowsUIAutomationSupport)
192+
list(APPEND QT5PLATFORMSUPPORT_LIBS ${Qt5WindowsUIAutomationSupport_LIBRARY})
195193
find_package(Freetype REQUIRED)
196194
list(APPEND QT5PLATFORMSUPPORT_LIBS ${FREETYPE_LIBRARIES})
197195

198-
endif(STATIC_QT)
196+
message(STATUS "Found Qt5PlatformSupport :" ${QT5PLATFORMSUPPORT_LIBS})
197+
endif(WIN32)
199198

200199
# OpenGL
201200
find_package(OpenGL REQUIRED)
@@ -220,11 +219,11 @@ if(ENABLE_IP_INTERFACE)
220219
)
221220
include_directories(${PROJECT_SOURCE_DIR}/src/network)
222221
add_definitions(-DASIO_STANDALONE)
223-
add_definitions(-D_WIN32_WINNT=0x0601)
222+
add_definitions(-D_WIN32_WINNT=0x0601) # Windows 7
224223
list(APPEND LINKLIBS "-lws2_32 -lmswsock")
225224
message(STATUS "Enabled network interface")
226225

227-
else(ENABLE_IP_INTERFACE)
226+
else(ENABLE_IP_INTERFACE)
228227
message(WARNING "IP_INTERFACE disabled.")
229228
endif(ENABLE_IP_INTERFACE)
230229

@@ -237,8 +236,8 @@ if(HEAD_TRACKER)
237236
src/trackerpolhemus.cpp
238237
)
239238
set(ENABLE_RAZOR ON)
240-
add_definitions(-DENABLE_O_NDELAY_WORKAROUND) # bits/fcntl2.h
241239
set(ENABLE_POLHEMUS ON)
240+
add_definitions(-DENABLE_O_NDELAY_WORKAROUND) # bits/fcntl2.h
242241
message(STATUS "Basic head tracker support")
243242
else(HEAD_TRACKER)
244243
message(WARNING "HEAD_TRACKER disabled.")
@@ -262,8 +261,16 @@ configure_file (
262261
# Add a few for release builds (MAKE_BUILD_TYPE=RELEASE)
263262
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -fomit-frame-pointer -ffast-math -funroll-loops -march=k8 -mmmx -msse -mfpmath=sse -msse2 -mfpmath=sse")
264263

265-
# Compile
264+
# Compile executables
265+
set(EXECUTABLES
266+
ssr-binaural
267+
ssr-brs
268+
ssr-generic
269+
ssr-wfs
270+
)
266271
add_executable(ssr-binaural src/ssr_binaural.cpp ${SOURCE_FILES})
272+
add_executable(ssr-brs src/ssr_brs.cpp ${SOURCE_FILES})
273+
add_executable(ssr-generic src/ssr_generic.cpp ${SOURCE_FILES})
267274
add_executable(ssr-wfs src/ssr_wfs.cpp ${SOURCE_FILES})
268275

269276

@@ -274,9 +281,11 @@ endif(WIN32)
274281

275282
message(STATUS "Linking: " ${LINKLIBS} ${QT5PLATFORMSUPPORT_LIBS})
276283

277-
target_link_libraries(ssr-binaural Threads::Threads ${LINKLIBS})
278-
target_link_libraries(ssr-wfs Threads::Threads ${LINKLIBS})
279-
if(GUI)
280-
target_link_libraries(ssr-binaural Qt5::Gui Qt5::Core Qt5::Widgets Qt5::OpenGL ${QT5PLATFORMSUPPORT_LIBS})
281-
target_link_libraries(ssr-wfs Qt5::Gui Qt5::Core Qt5::Widgets Qt5::OpenGL ${QT5PLATFORMSUPPORT_LIBS})
282-
endif(GUI)
284+
foreach(executable ${EXECUTABLES})
285+
target_link_libraries(${executable} Threads::Threads ${LINKLIBS})
286+
target_link_libraries(${executable} Threads::Threads ${LINKLIBS})
287+
if(GUI)
288+
target_link_libraries(${executable} Qt5::Gui Qt5::Core Qt5::Widgets Qt5::OpenGL ${QT5PLATFORMSUPPORT_LIBS})
289+
target_link_libraries(${executable} Qt5::Gui Qt5::Core Qt5::Widgets Qt5::OpenGL ${QT5PLATFORMSUPPORT_LIBS})
290+
endif(GUI)
291+
endforeach(executable ${EXECUTABLES})

MXE-settings.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ MXE_TARGETS := x86_64-w64-mingw32.static.posix
1717
# This variable controls which plugins are in use.
1818
# See plugins/README.md for further information.
1919
#override MXE_PLUGIN_DIRS += plugins/apps plugins/native
20-
override MXE_PLUGIN_DIRS += plugins/gcc7
20+
override MXE_PLUGIN_DIRS += plugins/gcc8
2121

2222
# This variable controls the download mirror for SourceForge,
2323
# when it is used. Enabling the value below means auto.

README

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,26 @@ This is a fork of the SoundScape Renderer (SSR), which aims at porting the sourc
33
The basic idea is to cross-compile on a linux machine an executable (.exe) for Windows.
44
We use the M cross environment ([MXE](http://mxe.cc/)), which provides cross-compilation scripts for the dependencies and the MinGW64 (GCC) compiler.
55

6+
Pre-compiled binaries for Windows currently include:
7+
`ssr-binaural.exe`, `ssr-brs.exe`, `ssr-wfs.exe` and `ssr-generic.exe`.
8+
9+
610
Getting started
711
---------------
8-
* Install Jack Audio for Windows (64bit) from [Jack Audio Downloads](http://www.jackaudio.org/downloads/)
12+
* Install Jack Audio for Windows (64bit) from [Jack Audio Downloads](http://www.jackaudio.org/downloads/).
913
* Get it running by following the [Installation and Configuration](http://jackaudio.org/faq/jack_on_windows.html).
10-
Hint: If you plan on using other (ASIO) Audio-software with Jack, don't forget to register the 64-bit JackRouter.
11-
* Download and extract the latest [Release](https://github.com/chris-hld/ssr/releases). It contains everything you need, including the cross-compiled executables `ssr-binaural.exe` and `ssr-wfs.exe`.
12-
* Adapt the configuration file `ssr.conf.windows` to your needs. Replace the paths (`Z:\SSR`) to yours. For now, please only use absolute paths.
14+
Hint: If you plan on using other (ASIO) Audio-software with Jack Audio, don't forget to register the 64-bit JackRouter.
15+
* Download and extract the latest [Release](https://github.com/chris-hld/ssr/releases).
16+
It contains everything you need, including the cross-compiled executables.
17+
* Adapt the configuration file `ssr.conf.windows` to your needs. Replace the paths (`Z:\SSR`) to yours. For now, please use absolute paths.
1318

1419
Running the SSR on Windows
1520
--------------------------
16-
* Have a look at the (Documentation)[http://ssr.readthedocs.io/en/latest/operation.html#running-the-ssr]
17-
* First, start Jack audio, e.g. with the `qjackctl.exe`.
21+
* Have a look at the [Documentation](http://ssr.readthedocs.io/en/latest/operation.html#running-the-ssr)
22+
* First, start the Jack Audio Server, e.g. with `qjackctl.exe`.
1823
* Start the SSR. There is a simple example script `start-ssr.cmd`.
1924
* Optional: Start your ASIO playback Software.
20-
* Connect everything using Jack Connection.
25+
* Connect everything using Jack Audio Connection.
2126

2227
This could look like this:
2328

@@ -42,7 +47,7 @@ Documentation: http://ssr.readthedocs.io/en/latest/
4247

4348
Copyright (c) 2016-2018 Division of Applied Acoustics
4449
Chalmers University of Technology
45-
50+
4651
Copyright (c) 2012-2014 Institut für Nachrichtentechnik, Universität Rostock
4752

4853
Copyright (c) 2006-2012 Quality & Usability Lab

README.md

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,26 @@ This is a fork of the SoundScape Renderer (SSR), which aims at porting the sourc
33
The basic idea is to cross-compile on a linux machine an executable (.exe) for Windows.
44
We use the M cross environment ([MXE](http://mxe.cc/)), which provides cross-compilation scripts for the dependencies and the MinGW64 (GCC) compiler.
55

6+
Pre-compiled binaries for Windows currently include:
7+
`ssr-binaural.exe`, `ssr-brs.exe`, `ssr-wfs.exe` and `ssr-generic.exe`.
8+
9+
610
Getting started
711
---------------
8-
* Install Jack Audio for Windows (64bit) from [Jack Audio Downloads](http://www.jackaudio.org/downloads/)
12+
* Install Jack Audio for Windows (64bit) from [Jack Audio Downloads](http://www.jackaudio.org/downloads/).
913
* Get it running by following the [Installation and Configuration](http://jackaudio.org/faq/jack_on_windows.html).
10-
Hint: If you plan on using other (ASIO) Audio-software with Jack, don't forget to register the 64-bit JackRouter.
11-
* Download and extract the latest [Release](https://github.com/chris-hld/ssr/releases). It contains everything you need, including the cross-compiled executables `ssr-binaural.exe` and `ssr-wfs.exe`.
12-
* Adapt the configuration file `ssr.conf.windows` to your needs. Replace the paths (`Z:\SSR`) to yours. For now, please only use absolute paths.
14+
Hint: If you plan on using other (ASIO) Audio-software with Jack Audio, don't forget to register the 64-bit JackRouter.
15+
* Download and extract the latest [Release](https://github.com/chris-hld/ssr/releases).
16+
It contains everything you need, including the cross-compiled executables.
17+
* Adapt the configuration file `ssr.conf.windows` to your needs. Replace the paths (`Z:\SSR`) to yours. For now, please use absolute paths.
1318

1419
Running the SSR on Windows
1520
--------------------------
16-
* Have a look at the (Documentation)[http://ssr.readthedocs.io/en/latest/operation.html#running-the-ssr]
17-
* First, start Jack audio, e.g. with the `qjackctl.exe`.
21+
* Have a look at the [Documentation](http://ssr.readthedocs.io/en/latest/operation.html#running-the-ssr)
22+
* First, start the Jack Audio Server, e.g. with `qjackctl.exe`.
1823
* Start the SSR. There is a simple example script `start-ssr.cmd`.
1924
* Optional: Start your ASIO playback Software.
20-
* Connect everything using Jack Connection.
25+
* Connect everything using Jack Audio Connection.
2126

2227
This could look like this:
2328

@@ -36,11 +41,12 @@ installation instructions can be found in the file INSTALL.
3641

3742
For questions, bug reports and feature requests:
3843

39-
Contact: ssr@spatialaudio.net
40-
Website: http://spatialaudio.net/ssr/
44+
Contact: ssr@spatialaudio.net
45+
Website: http://spatialaudio.net/ssr/
46+
Documentation: http://ssr.readthedocs.io/en/latest/
4147

42-
Copyright (c) 2016 Division of Applied Acoustics
43-
Chalmers University of Technology
48+
Copyright (c) 2016-2018 Division of Applied Acoustics
49+
Chalmers University of Technology
4450

4551
Copyright (c) 2012-2014 Institut für Nachrichtentechnik, Universität Rostock
4652

build.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
export PATH=/home/chris/git/mxe/usr/bin:$PATH
1+
# Configure MXE path:
2+
MXE_PATH=/home/chris/git/mxe
3+
4+
5+
export PATH=$MXE_PATH/usr/bin:$PATH
26

37
rm -r _build
48
mkdir -p _build && cd _build

ci/install-deps.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ if [ "$TRAVIS_OS_NAME" == "linux" ]; then
4545
if [ "${CC}" == "gcc-7" ]; then
4646
sudo apt-get install gcc-7 g++-7
4747
fi
48+
# force installation of gcc-8 if required
49+
if [ "${CC}" == "gcc-8" ]; then
50+
sudo apt-get install gcc-8 g++-8
51+
fi
4852
# force installation of clang-3.8 if required
4953
if [ "${CC}" == "clang-3.8" ]; then
5054
sudo apt-get install clang-3.8

0 commit comments

Comments
 (0)