Add support to $filename being an instance of an existing Reader. Constructor now throws exceptions.

git-svn-id: http://php-reader.googlecode.com/svn/trunk@103 51a70ab9-7547-0410-9469-37e369ee0574
This commit is contained in:
svollbehr
2008-07-29 20:03:58 +00:00
parent 3a84731d55
commit a2ed787036

View File

@@ -47,6 +47,7 @@ require_once("ID3/Exception.php");
* @package php-reader
* @subpackage ID3
* @author Sven Vollbehr <svollbehr@gmail.com>
* @author Ryan Butterfield <buttza@gmail.com>
* @copyright Copyright (c) 2008 The PHP Reader Project Workgroup
* @license http://code.google.com/p/php-reader/wiki/License New BSD License
* @version $Rev$
@@ -118,17 +119,20 @@ final class ID3v1
*/
public function __construct($filename = false)
{
if (($this->_filename = $filename) === false ||
file_exists($filename) === false)
if (($this->_filename = $filename) !== false &&
file_exists($filename) !== false)
$this->_reader = new Reader($filename);
else if ($filename instanceof Reader)
$this->_reader = &$filename;
else
return;
$this->_reader = new Reader($filename);
if ($this->_reader->getSize() < 128)
return;
throw new ID3_Exception("File does not contain ID3v1 tag");
$this->_reader->setOffset(-128);
if ($this->_reader->read(3) != "TAG") {
$this->_reader = false; // reset reader, see write
return;
throw new ID3_Exception("File does not contain ID3v1 tag");
}
$this->_title = rtrim($this->_reader->readString8(30), " \0");