/** * */ function picture($pict, &$text) { if ($this->status != sCCC_PICTURE) { return ccERR_STATUS; } $pack = new cc_packet(); $pack->setVer(CC_PROTO_VER); $pack->setCmd(cmdCC_PICTURE); $pack->setSize(strlen($pict)); $pack->setData($pict); if ($pack->packTo($this->s) === FALSE) { return ccERR_NET_ERROR; } if ($pack->unpackFrom($this->s) === FALSE) { return ccERR_NET_ERROR; } switch ($pack->getCmd()) { case cmdCC_TEXT: $text = $pack->getData(); return ccERR_OK; case cmdCC_BALANCE: // balance depleted return ccERR_BALANCE; case cmdCC_OVERLOAD: // server's busy return ccERR_OVERLOAD; case cmdCC_TIMEOUT: // picture timed out return ccERR_TIMEOUT; case cmdCC_FAILED: // server's error return ccERR_GENERAL; default: // unknown error return ccERR_UNKNOWN; } }