OpenHome Sample Players (https://github.com/openhome/ohPlayer) for Mac Windows, Linux and Raspberry Pi.
Before building, clone ohdevtools (https://github.com/openhome/ohdevtools.git) into the same parent directory as ohPlayer.
OpenHome can fetch pre-built dependencies for ohNet and ohPipeline from the OpenHome build server.
To fetch dependencies, run 'go fetch --all' or 'go fetch --all --debug'
depending on your build requirements.
App dependencies will be downloaded to the ohPlayer/dependencies directory.
There are a number of optional features that are disabled by default.
These can be enabled by editing the 'OptionalFeatures.h' file for the platform or on the command line for the 'MakeRelease.pl' script.
If Mp3/Aac support is enabled the required pre-built codecs will be pulled in from the OpenHome dependencies.
Commercial distribution of the application containing the pre-built MP3 and AAC codecs will incur license fees. This can be avoided by following the instructions relating to building for native codecs. In this case platform codecs will be utilised for these formats.
sudo apt-get update sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 20 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 20 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50
sudo apt-get install gtk+-3-dev libnotify-dev notify-osd libasound2-dev libappindicator3-dev
sudo apt-get install libavcodec-dev libavformat-dev libavresample-dev
sudo apt-get install ruby-dev sudo gem install fpm
sudo apt-get install ruby-dev jruby sudo gem2.1 install fpm
cd ohPlayer/linux
make ubuntu // ubuntu release build or make raspbian // raspbian release build
DEBUG=1
make ubuntu-install or make raspbian-install
Cross-compilation is not yet supported. Test applications must be built on the target platform at present.
The project will build a GTK menubar application.
Open the OpenHomePlayer solution in Visual Studio 2013 Express and build the required configuration
Win32/OpenHomePlayer.sln
The solution has 4 configurations:
The '*IMF' configurations build in the native codecs, based on the Microsoft Media Foundation Interface.
The solution will build a windows tray application.
Open the Sample Xcode project and build the required target
osx/OpenHomePlayer.xcodeproj
The project has the following targets each having Release and Debug configurations:
The OpenHomePlayerAFSCodec target builds in the native codecs based on the AudioFileStream interface.
The project will build a system menu application.
The 'MakeRelease.pl' script, in the top level directory, can be used to generate installer packages for all supported platforms.
Linux
As mentioned in the earlier section the 'fpm' utility is required.
A debian package (openhome-player-X.Y.Z_armhf.deb) and self extracting
installer (openhome-player-X.Y.Z_armhf.sh) will be generated in the
the 'linux/
Windows
The Inno Setup 5 utility is required (http://www.jrsoftware.org/isinfo.php) The actual download was 'isetup-5.5.5.exe'.
All defaults were chosen during application installation including the installation of the optional pre-processor extensions..
The script must be run from a Visual Studio 2013 Express command prompt The Inno Setup 5 utility must be in the path.
An installer executable (OpenHomeOPlayerSetup-X-Y-Z.exe) will be generated in the 'Win32Installer' directory.
Osx
The Xcode LIne Command Tools package is required.
An installer (OpenHOmePlayer-X-Y-Z.pkg) will be generated in the 'osx' directory.
MakeRelease.pl --platform=<ubuntu|raspbian|Win32|osx> --version=
The script should be run from the directory in which it reside.
eg. The following command will build an osx installer with all features enabled and native codecs used for the restricted formats.
./MakeRelease.pl --platform=osx -v=1.2.3 --debug --enable-mp3 --enable-aac --use-native-codecs --enable-radio --tunein-partner-id="your tunein id" --enable-tidal --tidal-token="your tidal token" --enable-qobuz --qobuz-app-id="your qobuz app id" --qobuz-secret="your qobuz secret"