MythSqueezeBox Code
Status: Alpha
Brought to you by:
ggalt
File | Date | Author | Commit |
---|---|---|---|
mythsqueezebox2 | 2010-05-04 | ggalt | [r6] Attempted fixes for downloading large number of... |
qtc-gdbmacros | 2010-04-08 | ggalt | [r1] Initial Import |
squeezeslave | 2010-04-08 | ggalt | [r1] Initial Import |
theme | 2010-04-08 | ggalt | [r1] Initial Import |
.directory | 2010-04-08 | ggalt | [r1] Initial Import |
AUTHORS | 2010-04-08 | ggalt | [r1] Initial Import |
COPYING | 2010-04-08 | ggalt | [r1] Initial Import |
ChangeLog | 2010-04-08 | ggalt | [r1] Initial Import |
README | 2010-04-12 | ggalt | [r2] Fixing portaudio/pulse audio issues |
mythlog | 2010-04-08 | ggalt | [r1] Initial Import |
mythsqueezebox2.pro | 2010-04-08 | ggalt | [r1] Initial Import |
mythsqueezebox2.pro.user | 2010-05-04 | ggalt | [r6] Attempted fixes for downloading large number of... |
qtsqueezerc | 2010-04-08 | ggalt | [r1] Initial Import |
MythSqueezebox 2 -- NOTE: FOR MYTHTV Version 0.22 OR GREATER ONLY and for SQUEEZEBOX SERVER Version 7.4 OR GREATER ONLY Release 0.01 INTRODUCTION ------------ I cobbled the original Mythsqueezebox program together from Richard Titmuss's squeezeslave libraries and from translating some of his display code from SoftSqueeze into C++ from Java, mostly to get things started, and not to have the last word. This program relies more explicitly on the SqueezeSlave program and actually builds a copy that gets launched as its own process to handle playing music. As with the past program, this program was written more to satisfy my own needs than anything else. The program has changed significantly and now presents a interface by which the user can control all Slimp3 and SqueezeBox (and Squeezeslave or SoftSqueeze programs) attached to the Squeezebox Server. Control is through the command-line interface functionality of the SqueezeBox Server. George Galt GOALS: ------ 1) Fix what I can from the list below, and hope others help out with some of the other issues (and the many new ones that are likely to crop up). 2) Change the audio decoding code to be based on the libraries already existing in Myth rather than importing lots of news things. 3) Clean up the mess. 4) Implement the display transitions and visualizations used by SqueezeBox. 5) Implement some means for controlling and interfacing with the newer screen-based devices such as the SqueezeBox Radio and the Duet. BUILD/CONFIGURATION INSTRUCTIONS -------------------------------- PREREQUISITES (need -devel packages too, if you go that route): MythTV 0.22 or higher. THIS WILL NOT WORK with version <0.22. Squeezebox Server Version 7.4 or greater. While it will kind of work, there is a bug in the CLI display module for versions before 7.4 r28242 (check nightly builds at http://downloads.slimdevices.com/nightly/?ver=7.4) libportaudio available through http://www.portaudio.com. Need version >- .19 libFLAC libmad libogg libvorbisfile libvorbis curses (NOTE: this is to build squeezeslave, which needs it to provide an interface that we piggyback off of). When all prerequisites are in place: $ qmake-qt4 -recursive $ make $ sudo make install This will install libmythsqueezebox.so into PREFIX/lib/mythtv/plugins Finally, you will need to create a button in the library.xml file (my suggestion) found in the default location of PREFIX/share/mythtv/themes/defaultmenu/: <button> <type>MYTHSQUEEZEBOX2</type> <text>MythSqueezeBox2</text> <depends>mythsqueezebox2</depends> <action>PLUGIN mythsqueezebox2</action> </button> And changes to media_settings.xml (also my suggestion) found in the same location. <button> <type>MYTHSQUEEZEBOX2</type> <text>MythSqueezeBox2 Settings</text> <depends>mythsqueezebox2</depends> <action>CONFIGPLUGIN mythsqueezebox2</action> </button> USING ----- -- Setup Before you can use mythsqueezebox, you need to setup the location of the server. By default this is set to 127.0.0.1 but if you use an external server you will need to go into setup and change the IP address of the server. There are a few other settings as well, but I suggest you leave them at their defaults unless you know what you are doing. These fields should be self-explanatory. I have not tested authentication, so I would suggest that you don't use it unless you are truly paranoid. ************** NOTE ON PULSE AUDIO, PORTAUDIO, AND MYTHTV ************************** It seems that sometimes portaudio, which is used by the underlying squeezeslave player, sometimes uses Pulse Audio as the default output. MythTV appears to turn this off (at least my testing version of 0.23, though it may be possible to alter this behavior somewhere). If you experience this, try the following: 1) Launch a terminal window. 2) Start MythTV as usual 3) Alt-Tab to the terminal window. 4) Type the following command: "squeezeslave-alsa -L", this will list the devices that PortAudio sees. 5) Attempt to play something through squeezeslave **while mythtv** is running by using the following command: "squeezeslave -D -o<device number <squeezeboxserver address>" Note that this will give you the curses interface so you can control the player using the arrow keys. 6) Cycle through the available devices until you find one that works **while MythTV is playing** 7) Go to the settings screen (mythtv->Utilities/Setup->setup->media settings->mythsqueezebox2 settings) and insert the working device number in the appropriate place (currently last setting item). 8) See if this fixes it. BUGS, PROBLEMS, ISSUES: ----------------------- A short list of the many: 1) Display does not aways update the "Now Playing" info (try hitting the "space" bar to refresh the "Now Playing" display). 2) The display is only rudimentary. It does not handle the fancy transitions or animations that the normal SqueezeBox player or Richard's SoftSqueeze handle. However, it puts up the essential information. 3) The player does not handle streaming radio stations. This is a known issue for the "squeezeslave" client and I'm not sure it's ever going to be fixed. The real solution is to create my own player, but I just haven't had the time.