First commit. Basic things are working and implemented (webserver, templating, DCOP interface)
<?php/** * Web control interface script for Amarok * Written by Dan Fuhry - 2008 * * This script is in the public domain. Use it for good, not evil. */$public = true;$allowcontrol = false;$theme = 'funkymonkey';@ini_set('display_errors', 'on');// include filesrequire('functions.php');// start up...status('Starting WebControl v0.1-hg');status('loading files');require('webserver.php');define('SMARTY_DIR', './smarty/');require('smarty/Smarty.class.php');require('playlist.php');require('ajax.php');status('initializing Smarty');$smarty = new Smarty();$smarty->template_dir = "./themes/$theme";$smarty->compile_dir = "./themes/$theme/compiled";$smarty->cache_dir = "./cache";$smarty->config_dir = "./config";status('doing home directory detection');// get home directoryif ( !isset($_ENV['HOME']) ){ burnout('Could not get your home directory');}$homedir =& $_ENV['HOME'];status('initializing playlist');// init playlist object$playlist = array();rebuild_playlist();// startup webserver$ip = ( $public ) ? '0.0.0.0' : '127.0.0.1';$port = mt_rand(1025, 65534); // 7447;try{ status('starting PhpHttpd'); $httpd = new WebServer($ip, $port); // setup handlers status('initializing handlers'); $httpd->add_handler('index', 'function', 'amarok_playlist'); $httpd->add_handler('scripts', 'dir', './scripts'); $httpd->add_handler("themes/$theme", 'dir', "./themes/$theme"); $httpd->allow_dir_list = true; $httpd->default_document = 'index'; status("Entering main server loop - ^C to interrupt, listening on port $port"); $httpd->serve();}catch( Exception $e ){ burnout("Exception caught while running webserver:\n$e");}