README
author Dan
Tue, 01 Jul 2008 04:16:04 -0400
changeset 22 3a4f0cd0794e
parent 20 bb8237ca678d
child 35 8040903d25de
permissions -rw-r--r--
Added ability to gracefully fail the client if the connection to the server fails

<div align="center">
  <b>Greyhound</b><br />
  A PHP-based web interface for Amarok<br />
  <br />
  &gt;&gt;&gt; <b>To access this script once started navigate to: &lt;&lt;&lt;<br />
  &gt;&gt;&gt; <a href="http://localhost:7447/">http://localhost:7447/</a> &lt;&lt;&lt;
</div>
<p>I wrote Greyhound because of some issues I was having with other web
   interface scripts freezing and not working right. Greyhound is my first
   shot at writing Amarok scripts but it seems to work pretty well.
   </p>
<p>Greyhound's interface is based on the WebControl script by Jonas Christian
   Drewsen, Andr&#0233; Kelpe, and Peter C. Ndikuwera. However unlike WebControl
   Greyhound is written entirely in PHP, making it a bit more portable. This
   script doesn't require an external web server to run, it has a relatively
   basic built-in (single-threaded) server.</p>
<p>The script needs a browser with XmlHttpRequest (AJAX) support to work. It's
   been tested on Firefox 3.0 beta 4 and Safari.</p>
<p>It uses Smarty templates so you should be able to customize the HTML to
   your needs. The template file is /themes/funkymonkey/playlist.tpl. There's
   also a theme called iphone which is optimized for use on Apple's touch
   screen based mobile devices. Now your iPod&reg; can control music other than
   its own :-P</p>

<p>
  <b>License</b><br />
  I was originally planning to place this into the public domain but decided to
  make it <b>GPLv2</b> because it uses so many GPLv2 components.
</p>

<p>
  <b>Known issues</b><br />
  There are a few bugs in Greyhound that I haven't been able to iron out.
</p>

<ul>
  <li>The socket it listens on doesn't get fully closed until about a minute
      after you interrupt the script. This means that when you hit stop in
      the script manager, you won't be able to start Greyhound again for about
      60 seconds. I checked everything and socket_shutdown() and socket_close()
      are being called properly, so I don't know why it's failing.</li>
  <li>The playlist isn't reloaded properly. This is because each of the child
      threads have the playlist cached in memory, and I haven't figured out a
      way to make them all reread the playlist file. Eventually I'll have code
      in there that keeps track of the children and sends a SIGHUP to each of
      them and have that fire an event that reparses the playlist file. The
      only real way to fix this for now is to disable multi-threaded mode by
      setting $allow_fork to false at the top of greyhound.php.</li>
</ul>

<p>
  <b>Author</b><br />
  Dan Fuhry &lt;<a href="mailto:dan@enanocms.org">dan@enanocms.org</a>&gt;<br />
  If you like this script be sure to check out my other projects:
    <a href="http://enanocms.org/">Enano CMS</a> and
    <a href="http://lifecodeidiocy.enanocms.org/">my blog</a>.
</p>