diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2008-03-21 04:43:48 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2008-03-21 04:43:48 +0000 |
commit | 260b62361e031b3a0d4261e892170f294825ed61 (patch) | |
tree | 9ba79b0c5ac498c4cfd1caf896baa1d1caab7a84 /modules | |
parent | 06652fe0406b45732ad80a3ab08c7d97bae4b47c (diff) | |
download | ampache-260b62361e031b3a0d4261e892170f294825ed61.tar.gz ampache-260b62361e031b3a0d4261e892170f294825ed61.tar.bz2 ampache-260b62361e031b3a0d4261e892170f294825ed61.zip |
fixed recently played, removed a bunch of useless files, added new methods to api as requested by dev, fixed some minor issues with enabling of localplay methods
Diffstat (limited to 'modules')
-rw-r--r-- | modules/catalog.php | 238 | ||||
-rw-r--r-- | modules/localplay/xbmc.controller.php | 382 |
2 files changed, 0 insertions, 620 deletions
diff --git a/modules/catalog.php b/modules/catalog.php deleted file mode 100644 index 9b9c089a..00000000 --- a/modules/catalog.php +++ /dev/null @@ -1,238 +0,0 @@ -<?php -/* - Copyright (c) 2001 - 2007 Ampache.org - All rights reserved. - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License v2 - as published by the Free Software Foundation. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - Contains all of the catalog (local & remote) functions. - - DEAD FILE (Old Crap) - -*/ - -/* - * get_catalogs() - * - * return an array of catalog objects - * - */ - -function get_catalogs () { - global $dbh, $settings; - - $sql = "SELECT * FROM catalog"; - $db_result = mysql_query($sql, $dbh); - - $catalogs = array(); - while ( $catalog = mysql_fetch_object($db_result) ) { - $catalogs[] = $catalog; - } - - return ($catalogs); -} // get_catalogs() - - -/* - * update_artist_info() - * - * this will update the song and album counters for the artist - */ - -function update_artist_info($artist_id) { - GLOBAL $dbh, $settings; - - // get the count of songs - $query = "SELECT count(id) FROM song WHERE artist='$artist_id'"; - $db_result = mysql_query($query, $dbh); - - $r = mysql_fetch_row($db_result); - $artist->songs = $r[0]; - - // get the count of albums - $query = "SELECT count(DISTINCT album) FROM song WHERE artist='$artist_id'"; - $db_result = mysql_query($query, $dbh); - - $r = mysql_fetch_row($db_result); - $artist->albums = $r[0]; - - // now update the artist table - $query = "UPDATE artist SET songs='$artist->songs',albums='$artist->albums' WHERE id='$artist_id'"; - $db_result = mysql_query($query, $dbh); -} // update_artist_info() - - -/* - * select_artist() - * - * given an artist name (string) it will return: - * false: if the artist name doesn't exist - * true : if the artist name does exist - * in the database - * - */ - -function select_artist($artist) { - GLOBAL $dbh, $settings; - - $artist = sql_escape($artist); - - $sql = "SELECT id FROM artist WHERE name = '$artist'"; - $db_result = mysql_query( $sql, $dbh ); - $r = mysql_fetch_row( $db_result ); - - if ( $r[0] ) { - return ($r[0]); - } - else { - return 0; - } -} // select_artist() - - -/* - * insert_artist() - * - * given an artist name (string) it will insert an entry - * into the database, defaulting the catalog to 0 - * - */ - -/* -function insert_artist($artist, $catalog = 0) { - GLOBAL $dbh, $settings; - - $artist = sql_escape($artist); - - $sql = "INSERT INTO artist (name,catalog) VALUES ('$artist', $catalog)"; - $db_result = mysql_query($sql, $dbh); - - return (mysql_insert_id($dbh)); -} // insert_artist() -*/ - -/* - * update_artist_name() - * - * let's change the album name - * - */ - -function update_artist_name ($artist, $new_name) { - global $dbh, $settings; - - $query = "UPDATE artist SET name='$new_name' WHERE id='$artist'"; - $db_result = mysql_query($query, $dbh); -} // update_artist_name() - - -/* - * delete_artist() - * - * given an artist id (int) this will delete the associated - * entry from the database - * - */ - -function delete_artist($artist) { - GLOBAL $dbh, $settings; - - $sql = "DELETE FROM artist WHERE id = $artist"; - $db_result = mysql_query($sql, $dbh); -} // delete_artist() - - -/* - * select_album() - * - * given an album name and artist id, this will return: - * false: if the album name and artist id don't match - * id : of the album name and artist id match - */ - -function select_album($album, $artist) { - GLOBAL $dbh, $settings; - - $album = sql_escape($album); - - $sql = "SELECT id FROM album - WHERE name = '$album' AND artist = $artist"; - $db_result = mysql_query($sql, $dbh); - - $r = mysql_fetch_row($db_result); - - if ( $r[0] ) { - return ($r[0]); - } - else { - return 0; - } -} // select_album() - - -/* - * update_album_name() - * - * let's change the album name - * - */ - -function update_album_name ($album, $new_name) { - global $dbh, $settings; - - $sql = "UPDATE album SET name='$new_name' WHERE id='$album'"; - $db_result = mysql_query($sql, $dbh); -} // update_album_name() - - -/* - * update_local_mp3($name, $type, $songs) - * - * This will update all of the $songs with a new name of type $type. Used - * mostly for updating artist/album names for your _local_ mp3s. This - * will write out new ID3 tags. - */ - -function update_local_mp3($name, $type, $songs) { - // THIS IS DEAD!!! - //FIXME: I'm dead Jim! -} // update_local_mp3 - - - -/* - * get_check_array() - * - * returns a single dimension array of the md5 hashes - * for all songs in local catalogs - * - */ - -function get_check_array ( ) { - global $settings, $dbh; - - $check_array = array(); - - $sql = "SELECT md5 FROM song"; - $db_result = mysql_query($sql, $dbh ); - - while ( $md5 = mysql_fetch_object( $db_result ) ) - { - $check_array[] = $md5->md5; - } - - return $check_array; -} // get_check_array() - -?> diff --git a/modules/localplay/xbmc.controller.php b/modules/localplay/xbmc.controller.php deleted file mode 100644 index 213f9027..00000000 --- a/modules/localplay/xbmc.controller.php +++ /dev/null @@ -1,382 +0,0 @@ -<?php -/* - - Copyright 2001 - 2006 Ampache.org - All Rights Reserved - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2 - of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ - -/** - * AmpacheXBMC Class - * the Ampache XBMC Controller, this is the glue between - * the XBMC HTTPapi and the Ampahce Localplay class - */ -class AmpacheXBMC { - - /** - * Constructor - * This returns the array map for the localplay object - * REQUIRED for Localplay - */ - function AmpacheXBMC() { - - } // AmpacheXBMC - - - /** - * function_map - * This function returns a named array of the functions - * that this player supports and their names in this local - * class. This is a REQUIRED function - */ - function function_map() { - - $map = array(); - - /* Required Functions */ - $map['add'] = 'add_songs'; - $map['delete'] = 'delete_songs'; - $map['play'] = 'play'; - $map['stop'] = 'stop'; - $map['get'] = 'get_songs'; - $map['status'] = 'get_status'; - $map['connect'] = 'connect'; - - - /* Recommended Functions */ - $map['next'] = 'next'; - $map['prev'] = 'prev'; - $map['pause'] = 'pause'; - $map['volume_set'] = 'volume_set'; - - /* Optional Functions */ - $map['delete_all'] = 'clear_playlist'; - $map['shutdown'] = 'xbmc_shutdown'; - - return $map; - - } // function_map - - // - function aXBMCCmd($cmd, $param=''){ - - if($param == ''){ - $fs = fopen("http://" . conf('localplay_xbmc_hostname') . "/xbmcCmds/xbmcHttp?command=" . $cmd,"r"); - }else{ - $fs = fopen("http://" . conf('localplay_xbmc_hostname') . "/xbmcCmds/xbmcHttp?command=" . $cmd . "¶meter=" . $param,"r"); - } - - if($fs){ - stream_set_timeout($fs,2); - $ret = ""; - while (!feof($fs)) { - $ret = $ret . fgets($fs, 128); - } - fclose($fs); - - $ret = strip_tags($ret,"<li>"); - - $aret = explode("<li>",$ret); - $aret = array_slice($aret,1); - return $aret; - } - - return ""; - - } //aXBMCCmd - - function XBMCCmd($cmd, $param=''){ - - - if($param == ''){ - $fs = fopen("http://" . conf('localplay_xbmc_hostname') . "/xbmcCmds/xbmcHttp?command=" . $cmd,"r"); - }else{ - $fs = fopen("http://" . conf('localplay_xbmc_hostname') . "/xbmcCmds/xbmcHttp?command=" . $cmd . "¶meter=" . $param,"r"); - } - if($fs){ - stream_set_timeout($fs,1); - $ret = ""; - while (!feof($fs)) { - $ret = $ret . fgets($fs, 128); - } - fclose($fs); - - $ret = strip_tags($ret); - return trim($ret); - } - return ""; - - }//XBMCCmd - // - - /** - * preference - * This function returns an array of the preferences and their - * information for Ampache to use All preferences will get a - * localplay_xbmc_ appended to their name to avoid conflicts - * however this controller does not need to take that into acount - * REQUIRE for Locaplay - */ - function preferences() { - - $preferences = array(); - - $preferences[] = array('name'=>'hostname','default'=>'xbox','type'=>'string','description'=>'XBOX Hostname'); - $preferences[] = array('name'=>'smbpath','default'=>'smb://hostname/mp3/','type'=>'string','description'=>'Samba share path to mp3s'); - - //needed to add basic authentication support later - //$preferences[] = array('name'=>'username','default'=>'xbox','type'=>'string','description'=>'XBMC Username'); - //$preferences[] = array('name'=>'password','default'=>'','type'=>'string','description'=>'XBMC Password'); - - return $preferences; - - } // preferences - - - /** - * add_songs - * This must take an array of URL's from Ampache - * and then add them to XBMC - */ - function add_songs($songs) { - - //set playlist to music, playlist 0 - $ret = $this->XBMCCmd("SetCurrentPlaylist","0"); - - if ($ret != "OK") { - debug_event('xbmc_add','Error: Unable to set playlist on xbmc ' . $ret,'1'); - } - - - foreach ($songs as $song_id) { - $song = new Song($song_id); - - //print($song->get_rel_path()); - - $url = conf('localplay_xbmc_smbpath') . $song->get_rel_path(); - - //add song to playlist 0, note the ;0 after the url... - $ret = $this->XBMCCmd("AddToPlayList",urlencode($url . ";0")); - //print(urlencode($url).";0"); - - if ($ret != "OK") { - debug_event('xbmc_add','Error: Unable to add $url to xbmc ' . $ret,'1'); - } - - } // end foreach - - return true; - - } // add_songs - - - /** - * delete_songs - * This must take an array of ID's (as passed by get function) from Ampache - * and delete them from MPD - */ - function delete_songs($songs) { - - /* Default to true */ - $return = true; - - /* This should be an array of UID's as returned by - * the get function so that we can just call the class based - * functions to remove them or if there isn't a uid for - * the songs, then however ya'll have stored them - * in this controller - */ - - //RemoveFromPlaylist - foreach ($songs as $song_id) { - - $song = new Song($song_id); - - $url = conf('localplay_xbmc_smbpath') . $song->get_rel_path(); - - $ret = $this->XBMCCmd("RemoveFromPlaylist",urlencode($url . ";0")); - - if ($ret != "OK") { - $return = false; - debug_event('xbmc_del','Error: Unable to del $url from xbmc ' . $ret,'1'); - } - - - } // foreach of songs - - return $return; - - } // delete_songs - - - /** - * play - * This just tells XBMC to start playing, it does not - * take any arguments, it plays the NEXT track on the - * playlist or the first one if it is the first time... - */ - function play() { - - if ($this->XBMCCmd("PlayNext")!="OK") { return false; } - return true; - - } // play - - /** - * stop - * This just tells XBMC to stop playing, it does not take - * any arguments - */ - function stop() { - - if ($this->XBMCCmd("Stop")!="OK") { return false; } - return true; - - } // stop - - - /** - * next - * This just tells XBMC to skip to the next song - */ - function next() { - - if ($this->XBMCCmd("PlayNext")!="OK") { return false; } - return true; - - } // next - - /** - * prev - * This just tells XBMC to skip to the prev song - */ - function prev() { - - if ($this->XBMCCmd("PlayPrev")!="OK") { return false; } - return true; - - } // prev - - /** - * pause - * This tells XBMC to pause the current song - */ - function pause() { - - if ($this->XBMCCmd("Pause")!="OK") { return false; } - return true; - - } // pause - - - /** - * volume - * This tells XBMC to set the volume to the parameter - */ - function volume_set($volume) { - - if ($this->XBMCCmd("SetVolume",$volume)!="OK") { return false; } - return true; - - } // volume - - /** - * xbmc_shutdown - * This tells XBMC to turn off - */ - function xbmc_shutdown() { - - if ($this->XBMCCmd("shutdown")!="OK") { return false; } - return true; - - } // xbmc_shutdown - - /** - * clear_playlist - * This tells XBMC to clear the playlist - */ - function clear_playlist() { - - if ($this->XBMCCmd("clearplaylist","0")!="OK") { return false; } - return true; - - } // clear_playlist - - /** - * get_songs - * This functions returns an array containing information about - * The songs that XBMC currently has in it's playlist. This must be - * done in a standardized fashion - */ - function get_songs() { - - /* Get the Current Playlist */ - //echo $this->XBMCCmd("getcurrentplaylist"); - $playlist = $this->aXBMCCmd("getplaylistcontents","0"); - - foreach ($playlist as $entry) { - $data = array(); - - /* Required Elements */ - $data['id'] = get_song_id_from_file(trim(substr($entry,strrpos($entry,"/")+1))); - $data['raw'] = ''; - - - /* Optional Elements */ - $song = new Song($data['id']); - $song->format_song(); - $data['name'] = $song->f_artist . " - " . $song->f_title; - - $results[] = $data; - - } // foreach playlist items - - return $results; - - } // get_songs - - /** - * get_status - * This returns bool/int values for features, loop, repeat and any other features - * That this localplay method support - */ - function get_status() { - - /* Construct the Array */ - $array['state'] = false; //$this->_mpd->state; - $array['volume'] = $this->XBMCCmd("GetVolume"); - - return $array; - - } // get_status - - /** - * connect - * This functions tests the connection to XBMC and returns - * a boolean value for the status - */ - function connect() { - - if (is_null($this->XBMCCmd("help"))) { return false; } - - return true; - - } // connect - -} //end of AmpacheXBMC - -?> |