Skip to content

mantheman/LMS-to-uPnP

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This application is a bridge between Logitech Media Server (LMS) /
SqueezeBox Server(SBS) and uPnP devices. It allows any uPNP device 
to be controlled as a normal SqueezeBox device.

===========================================================================
MINIMUM TO READ
===========================================================================
If you do not want to RTFM, at least do the following:
- put the application on a LOCAL disk where you have read/Write access
- launch it with "-i config.xml" on the command line, and wait 30s till it exits
- launch the application without parameters (type exit to quit)
- if it does not work try again with firewall disabled and pay at least
attention to the following parameters in the config.xml file 

	<stream_length>    : if nothing is played
	<accept_nexturi>   : if playback is stuck in playlist
	<seek_after_pause> : if resume after pause does not restart

Really, have a look at "New User Guide.pdf" in /stable/bin

===========================================================================
WHAT VERSION TO CHOOSE
===========================================================================
/stable is for the build I'm not changing anymore
/dev is work under progress
/x.y.z are older versions

in ./bin, there are binaries for Windows, Linux (x86 and ARM) and OSX. 

- squeeze2upnp.exe, pthreadbc2.dll, cc32160mt.dll : Windows Vista and above
- squeeze2upnp-winxp.exe, pthreadvc2.dll : Windows XP
- squeeze2upnp-x86 : Linux (Intel CPU) 32 or 64 bits (see user guide for 64 bits)
- squeeze2upnp-x86-static : same as above, but libc librairies are statically 
linked (must be used on some NAS e.G. Atom-base, that don't have the right libc
available - squeeze2upnp-x86 launch will fail)
- squeeze2upnp-armv6hf : Linux (ARM v6 CPU, hard float)
- squeeze2upnp-armv6hf-static : same as above, with static libraries
- squeeze2upnp-armv5 : Linux (ARM v5 CPU)
- squeeze2upnp-armv5-static : same as above, with static libraries
- squeeze2upnp-osx-x86_10.10: x86 binaries for OSX Yosemite 10.10 
- squeeze2upnp-osx-x86: x86 binaries for OSX 10.6+

(Thanks Ralphy for arm, osx and winXP binaries)

NB: Main tests are on Windows Vista+ and Linux x86 versions. OSX and Linux ARM 
are "as is"

===========================================================================
ADVANCED
===========================================================================
REBUILDING IS NOT NEEDED, but if you want to rebuild, here is what should be 
done. This can be built for Linux, OSX or Windows. My main Windows environment 
is C++ builder, so I've not made a proper makefile. The Linux/OSX makefile is
very hardcoded.


DEPENDENCIES
 - pthread (pthread_win32 on Windows) and dynamically linked
 - libupnp, statically linked

LIBUPNP
 - Under Win32, libupnp is build with the following defines
        WIN32
        UPNP_STATIC_LIB
        UPNP_USE_BCBPP (for C++ builder)
 - Under Linux : N/A

 - The are few changes in libupnp, so the file webserver.c, upnp.h and 
httpreadwrite.c must be taken from here, not from libupnp main repository, 
to rebuild the library

- TCP blocking *must* be disabled otherwise when a upnp player disappears
"non gracefully", it will block other communication for a long delay, creating
a "too many job" log in libupnp and all sort of nasty side effects. When 
launching ./configure, use --disable-blocking_tcp_connections (or 
--enable-blocking_tcp_connections). Sorry, the doc is a bit confusing on that 
topic. I choose to modify direcly the autoconfig.h in the root directory 
(and in build/inc) to make sure that the following was commented out 
	/* #define UPNP_ENABLE_BLOCKING_TCP_CONNECTIONS 1 */

- It is recommended to make the following changes to config.h (find the 
existing corresponding lines)
	#define MAX_JOBS_TOTAL 200 
	#define GENA_NOTIFICATION_SENDING_TIMEOUT 5
	#define GENA_NOTIFICATION_ANSWERING_TIMEOUT 5

===========================================================================
Main application for Windows Vista + 
 - For compilation, use following defines
        WIN32
        UPNP_STATIC_LIB
        UPNP_USE_BCBPP (for C++ builder)
        NO_CODEC
 - Link with the generated libupnp static lib and ptrhead import lib
 - For runtime
        On C++ builder, requires cc32160mt.dll
        pthread.dll
NB: the build rules for WinXP need to be added

===========================================================================
Main application for Linux and OSX
 - For compilation, use following defines
        NO_CODEC
        _FILE_OFFSET_BITS=64
 - Put the 3 libraries defined generated by libupnp in the Makefile directory
 - For runtime : N/A





About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 99.1%
  • Other 0.9%