Remote Speakers Output Plug-In

Copyright (c) 2006-2013  Eric Milles

http://emilles.dyndns.org/software/out_apx.html



PREREQUISITES
-------------
1) Apple Bonjour for Windows SDK (http://www.apple.com/bonjour/)

	Copy dns_sd.h to rsoutput\lib\bonjour\


2) OpenSSL (http://www.openssl.org/)

	(Full instructions can be found in INSTALL.W32)

	Open Visual Studio x86 command prompt and cd to OpenSSL basedir

	> perl Configure VC-WIN32

	> ms\do_ms

	Copy ms\nt.mak to nt_debug.mak, then edit:
		CFLAG line: change /MT to /MTd, replace all /O options with /Od, and add /RTC1 /Zi
		APP_CFLAG and LIB_CFLAG lines: remove /Zi
		INC_D line: change inc32 to $(OUT_D)
		INCO_D line: change inc32 to $(INC_D)
		SSL line: change ssleay32 to ssleay32d
		CRYPTO line: change libeay32 to libeay32d

	> nmake -f ms\nt_debug.mak

	> nmake -f ms\nt_debug.mak test

	Copy [basedir]\out32\libeay32d.lib and [basedir]\out32\openssl to rsoutput\lib\openssl\


3) Poco (http://pocoproject.org/)

	Foundation
	----------
	Edit debug_static_mt Configuration:
		C/C++ > General > Debug Information Format: /Zi
		C/C++ > Preprocessor > Preprocessor Definitions: add POCO_WIN32_DEBUGGER_THREAD_NAMES
		Librarian > General > Output File: change "mt" to "32"
		Librarian > General > Additional Dependencies: delete all dependencies and uncheck inherit

	Build > Batch Build...:
		Check debug_static_mt Configuration for Foundation project and click Build

	Copy [basedir]\lib\PocoFoundation32d.lib and [basedir]\Foundation\include\Poco to rsoutput\lib\poco\

	Net
	---
	Edit debug_static_mt Configuration:
		C/C++ > General > Debug Information Format: /Zi
		C/C++ > Preprocessor > Preprocessor Definitions: add POCO_NO_AUTOMATIC_LIBS
		Librarian > General > Output File: change "mt" to "32"
		Librarian > General > Additional Dependencies: delete all dependencies and uncheck inherit

	Batch Build...:
		Check debug_static_mt Configuration for Net project and click Build

	Copy [basedir]\lib\PocoNet32d.lib and [basedir]\Net\include\Poco to rsoutput\lib\poco\


4) Secret Rabbit Code (http://www.mega-nerd.com/SRC/)

	Build using included libsamplerate.vcproj

	Copy [basedir]\out\samplerate32d.lib and [basedir]\src\samplerate.h to rsoutput\lib\samplerate\


5) Windows Template Library (http://sourceforge.net/projects/wtl/)

	In Visual Studio, go to Tools > Options... > Projects and Solutions > VC++ Directories

	Under 'Show directories for: Include files', add link to WTL's Include directory


6) Foobar2000 SDK (http://www.foobar2000.org/SDK/)

	Unzip contents of SDK archive to foobar\sdk\



COMMENTS
--------
I have included my Microsoft Visual Studio 2008 project files.  The projects are
set up to link in OpenSSL, Poco and SRC statically and Bonjour dynamically.  You
could modify the projects to link in everything dynamically if you have trouble
building static libraries from the source distributions of OpenSSL, Poco and SRC.
They were linked statically to keep the plug-in down to as few files as possible
and to eliminate potential DLL version conflicts.

The plug-in will run without Bonjour installed, but it is highly recommended to
install it for automatic discovery of remote speakers.

The icon file(s) for remote speakers devices have been included so the solution
will build.  However, the icons have been erased.  You can create custom device
icons or import some.
