array ( "imagewidth" => 96, "imageheight" => 90, "textwidth" => 8, "textheight" => 7, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "F209i" => array ( "imagewidth" => 96, "imageheight" => 91, "textwidth" => 8, "textheight" => 7, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "N209i" => array ( "imagewidth" => 108, "imageheight" => 82, "textwidth" => 9, "textheight" => 6, "colour" => IMODE_COLOUR_GREYSCALE, "imageformats"=> array("gif") ), "P209i" => array ( "imagewidth" => 96, "imageheight" => 87, "textwidth" => 8, "textheight" => 6, "colour" => IMODE_COLOUR_GREYSCALE, "imageformats"=> array("gif") ), "P209is" => array ( "imagewidth" => 96, "imageheight" => 87, "textwidth" => 8, "textheight" => 6, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "R209i" => array ( "imagewidth" => 96, "imageheight" => 72, "textwidth" => 8, "textheight" => 6, "colour" => IMODE_COLOUR_GREYSCALE, "imageformats"=> array("gif") ), "ER209i" => array ( "imagewidth" => 120, "imageheight" => 72, "textwidth" => 10, "textheight" => 6, "colour" => IMODE_COLOUR_GREYSCALE, "imageformats"=> array("gif") ), "KO209i" => array ( "imagewidth" => 96, "imageheight" => 96, "textwidth" => 8, "textheight" => 8, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "D210i" => array ( "imagewidth" => 96, "imageheight" => 91, "textwidth" => 8, "textheight" => 7, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "F210i" => array ( "imagewidth" => 96, "imageheight" => 113, "textwidth" => 8, "textheight" => 8, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "N210i" => array ( "imagewidth" => 118, "imageheight" => 113, "textwidth" => 10, "textheight" => 8, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "P210i" => array ( "imagewidth" => 96, "imageheight" => 91, "textwidth" => 8, "textheight" => 6, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "KO210i" => array ( "imagewidth" => 96, "imageheight" => 96, "textwidth" => 8, "textheight" => 8, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "SO210i" => array ( "imagewidth" => 120, "imageheight" => 113, "textwidth" => 8, "textheight" => 7, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "D501i" => array ( "imagewidth" => 96, "imageheight" => 72, "textwidth" => 8, "textheight" => 6, "colour" => IMODE_COLOUR_BW, "imageformats"=> array("gif") ), "F501i" => array ( "imagewidth" => 112, "imageheight" => 84, "textwidth" => 8, "textheight" => 6, "colour" => IMODE_COLOUR_BW, "imageformats"=> array("gif") ), "N501i" => array ( "imagewidth" => 118, "imageheight" => 128, "textwidth" => 10, "textheight" =>10, "colour" => IMODE_COLOUR_BW, "imageformats"=> array("gif") ), "P501i" => array ( "imagewidth" => 96, "imageheight" => 120, "textwidth" => 8, "textheight" => 8, "colour" => IMODE_COLOUR_BW, "imageformats"=> array("gif") ), "D502i" => array ( "imagewidth" => 96, "imageheight" => 90, "textwidth" => 8, "textheight" => 7, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "F502i" => array ( "imagewidth" => 96, "imageheight" => 91, "textwidth" => 8, "textheight" => 7, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "F502it" => array ( "imagewidth" => 96, "imageheight" => 91, "textwidth" => 8, "textheight" => 7, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "N502i" => array ( "imagewidth" => 118, "imageheight" => 128, "textwidth" => 10, "textheight" => 10, "colour" => IMODE_COLOUR_GREYSCALE, "imageformats"=> array("gif") ), "N502it" => array ( "imagewidth" => 118, "imageheight" => 128, "textwidth" => 10, "textheight" => 10, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "P502i" => array ( "imagewidth" => 96, "imageheighth" => 117, "textwidth" => 8, "textheight" => 8, "colour" => IMODE_COLOUR_GREYSCALE, "imageformats"=> array("gif") ), "NM502i" => array ( // "imagewidth" => 111, "imageheight" => 106, "imagewidth" => 111, "imageheight" => 77, "textwidth" => 8, "textheight" => 6, "colour" => IMODE_COLOUR_BW, "imageformats"=> array("gif") ), "SO502i" => array ( "imagewidth" => 120, "imageheight" => 120, "textwidth" => 8, "textheight" => 8, "colour" => IMODE_COLOUR_GREYSCALE, "imageformats"=> array("gif") ), "SO502iwm" => array ( "imagewidth" => 120, "imageheight" => 113, "textwidth" => 8, "textheight" => 7, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "F503i" => array ( "imagewidth" => 120, "imageheight" => 130, "textwidth" => 10, "textheight" => 10, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "F503iS" => array ( "imagewidth" => 120, "imageheight" => 130, "textwidth" => 12, "textheight" => 12, "colour" => IMODE_COLOUR_4096, "imageformats"=> array("gif") ), "P503i" => array ( "imagewidth" => 120, "imageheight" => 130, "textwidth" => 12, "textheight" => 10, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "P503iS" => array ( "imagewidth" => 120, "imageheight" => 130, "textwidth" => 12, "textheight" => 10, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "SO503i" => array ( "imagewidth" => 120, "imageheight" => 113, "textwidth" => 8.5, "textheight" => 7, "colour" => IMODE_COLOUR_65536, "imageformats"=> array("gif") ), "D503i" => array ( "imagewidth" => 132, "imageheight" => 126, "textwidth" => 8, "textheight" => 7, "colour" => IMODE_COLOUR_4096, "imageformats"=> array("gif") ), "N503i" => array ( "imagewidth" => 118, "imageheight" => 128, "textwidth" => 10, "textheight" => 10, "colour" => IMODE_COLOUR_4096, "imageformats"=> array("gif", "jpg") ), "N503iS" => array ( "imagewidth" => 118, "imageheight" => 128, "textwidth" => 10, "textheight" => 10, "colour" => IMODE_COLOUR_4096, "imageformats"=> array("gif", "jpg") ), "N691i" => array ( "imagewidth" => 96, "imageheight" => 72, "textwidth" => 8, "textheight" => 6, "colour" => IMODE_COLOUR_GREYSCALE, "imageformats"=> array("gif") ), "SH821i" => array ( "imagewidth" => 96, "imageheight" => 78, "textwidth" => 8, "textheight" => 6, "colour" => IMODE_COLOUR_256, "imageformats"=> array("gif") ), "N821i" => array ( "imagewidth" => 118, "imageheight" => 128, "textwidth" => 10, "textheight" => 10, "colour" => IMODE_COLOUR_GREYSCALE, "imageformats"=> array("gif") ), "P821i" => array ( "imagewidth" => 118, "imageheight" => 128, "textwidth" => 10, "textheight" => 10, "colour" => IMODE_COLOUR_GREYSCALE, "imageformats"=> array("gif") ), "safe" => array ( "imagewidth" => 94, "imageheight" => 72, "textwidth" => 8, "textheight" => 6, "colour" => IMODE_COLOUR_BW, "imageformats"=> array("gif") ) ); var $_manufacturerlist = array ( "D" => "Mitsubishi", "P" => "Panasonic (Matsushita)", "NM" => "Nokia", "SO" => "Sony", "F" => "Fujitsu", "N" => "Nec", "SH" => "Sharp", "ER" => "Ericsson", "R" => "Japan Radio", "KO" => "Kokusai (Hitachi)" ); var $_extra = array ( "t" => "Transport layer", "e" => "English language", "s" => "Second version" ); // properties. meant be private. // var $_user_agent; var $_model; var $_manufacturer; var $_httpversion; var $_cache; var $_extra; var $_error; // Constructor // This gets called when new object is initialized. Does not // handle bogus user_agents or most of the other error situation // properly yet. // // Parameters: // String describing the user_agent. // // Returns: // Object // // Example usage: // $ua = new Imode_User_Agent($HTTP_USER_AGENT); // function Imode_User_Agent($input) { //DoCoMo/1.0/SO502i //DoCoMo/1.0/N502it/c10 $_error = 0; $temp = explode("/", $input); $this->_user_agent = $input; $this->_httpversion = $temp[1]; $this->_model = $temp[2]; if ($temp[3]) { $this->_cache = substr($temp[3], 1);; } else { $this->_cache = IMODE_DEFAULT_CACHE; } preg_match("/(^[a-zA-Z]+)([0-9]+i)(.*)\/?(.*)/", $this->_model, $matches); // TODO: Fix situation of unknown manufacturer. Implement // extrainfo properly // $this->_manufacturer = $this->_manufacturerlist[$matches[1]]; $this->_extra = $matches[3]; if (!($this->_data[$this->_model])) { $_error = IMODE_UNKNOWN_USER_AGENT; } } // Method // // Returns: // Array containing maximum imagewidth and imageheight // to fit on the handset screen without scrolling. // // Example usage: // $imagedim = $ua->getImageDimensions(); // $imagewidth = $imagedim[0]; // $imageheight = $imagedim[1]; // function getImageDimensions() { $data = $this->_data["$this->_model"]; $width = $data["imagewidth"]; $height = $data["imageheight"]; $retval = array($width, $height); return($retval); } // Method // // Returns: // Array containing maximum textwidth and textheight // to fit on the handset screen without scrolling. // // Example usage: // $textdim = $ua->getTextDimensions(); // $textwidth = $textdim[0]; // $textheight = $textdim[1]; // function getTextDimensions() { $data = $this->_data[$this->_model]; $width = $data[textwidth]; $height = $data[textheight]; $retval = array($width, $height); return($retval); } // Method // // Returns: // Integer containing the amount of handset cache in // kilobytes. // // Example usage: // $cache = $ua->getCache(); // function getCache() { return((int)$this->_cache); } function getManufacturer() { return($this->_manufacturer); } function getExtra() { return($this->_extra); } function getImageFormats() { $data = $this->_data[$this->_model]; $retval = $data[imageformats]; return($retval); } // Method // // Returns: // Integer describing what colour model the handset supports. // Values have the following meaning: // 0 -> black and white // 1 -> 4 tone greyscale // 2 -> 256 colour // // Example usage: // $ua->getColour() // function getColour() { $data = $this->_data[$this->_model]; $retval = $data[colour]; return($retval); } function getHTTPVersion() { return($this->_httpversion); } function isColour() { $data = $this->_data[$this->_model]; $colour = $data[colour]; $retval = 0; if ($colour = IMODE_COLOUR_256) { $retval = 1; }; return($retval); } function isGreyScale() { $data = $this->_data[$this->_model]; $colour = $data[colour]; $retval = 0; if ($colour = IMODE_COLOUR_GREYSCALE) { $retval = 1; }; return($retval); } function isBlackAndWhite() { $data = $this->_data[$this->_model]; $colour = $data[colour]; $retval = 0; if ($colour = IMODE_COLOUR_BW) { $retval = 1; }; return($retval); } function supportsGIF() { } function supportsJPG() { } function supportsPNG() { } function getAllInfo() { } } ?>