Mediator::Mediator(Player* player,Download* download,HostUser* hostUser,QObject *parent):QObject(parent){ this->_player = player; this->_download = download; this->_hostUser = hostUser; this-> currentlyDownloading = false; connect(_hostUser->myServer,SIGNAL(newMessage(QString)),this,SLOT(addQueue(QString))); connect(_download,SIGNAL(finishedDownloading(QString)),this,SLOT(downloadToPlayer(QString))); connect(_download,SIGNAL(finishedDownloading(QString)),this,SLOT(finishedDownload(QString))); // connect(this,SIGNAL(mediatorToDownload(QString)),this,SLOT(serverToDownload(QString))); }
void ImageCache::httpFinished(MAUtil::HttpConnection* http, int result) { if (result == 200) { MAUtil::String *contentLengthStr = new MAUtil::String("-1"); int responseBytes = mHttp.getResponseHeader("content-length", contentLengthStr); mContentLength = 0; mDataOffset = 0; mData = maCreatePlaceholder(); if(responseBytes == CONNERR_NOHEADER) { } else { mContentLength = atoi(contentLengthStr->c_str()); } delete contentLengthStr; if (maCreateData(mData, mContentLength) == RES_OK){ } if(mContentLength >= 1024 || mContentLength == 0) { mHttp.recv(mBuffer, 1024); } else { mBuffer[mContentLength] = 0; mHttp.recv(mBuffer, mContentLength); } } else { finishedDownloading(); } }
void ImageCache::process(bool afterFin) { //Check to see if the cache can process this request at this time if(mIsBusy) return; //Check to see if there are any outstanding requests if(mRequests.size() == 0) return; //Set the mIsBusy flag, so we don't try to do too much at once mIsBusy = true; //Get the next image request from the queue mNextRequest = mRequests[0]; if(mHttp.isOpen()){ mHttp.close(); } if (mNextRequest->getType() == 5) { MAHandle store = maOpenStore((FILE_PREFIX+mNextRequest->getSaveName()).c_str(), 0); if(store != STERR_NONEXISTENT) { MAHandle cacheimage = maCreatePlaceholder(); maReadStore(store, cacheimage); maCloseStore(store, 0); if (maGetDataSize(cacheimage) > 0) { Util::returnImage(mNextRequest->getImage(), cacheimage, 64); } maDestroyObject(cacheimage); cacheimage = -1; } store = -1; finishedDownloading(); } else { mHttp = HttpConnection(this); int res = mHttp.create(mNextRequest->getUrl().c_str(), HTTP_GET); if(res < 0) { finishedDownloading(); } else { mHttp.finish(); } } }
void SubRequestBin::specificHandler() { buf = new QBuffer(); buf->open(QIODevice::ReadWrite); connect(netReply, SIGNAL(readyRead()), this, SLOT(writeToBuffer())); connect(netReply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(checkProgress(qint64,qint64))); connect(netReply, SIGNAL(finished()), this, SLOT(finishedDownloading())); }
void ImageCache::connRecvFinished(MAUtil::Connection* conn, int result) { if (result >= 0) { mDataOffset += result; if((mContentLength - mDataOffset)>=0) { maWriteData(mData, mBuffer, mDataOffset-result, result); mHttp.recv(mBuffer, 1024); } } else if(result == CONNERR_CLOSED) { mContentLength = 0; finishedDownloading(); //mHttp.close(); mIsBusy = false; } else { mIsBusy = false; } }
void ImageCache::connRecvFinished(MAUtil::Connection* conn, int result) { if (result >= 0) { mDataOffset += result; double val = (double)((double)mDataOffset/(double)mContentLength)*100; if (mNextRequest->getImage() != NULL) { if (mNextRequest->getType() == 0) { //normal loading } else if ((mNextRequest->getType() == 3)||(mNextRequest->getType() == 4)) { if (val <= 5.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP1)); } else if (val <= 11) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP2)); } else if (val <= 16.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP3)); } else if (val <= 22) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP4)); } else if (val <= 27.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP5)); } else if (val <= 33) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP6)); } else if (val <= 38.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP7)); } else if (val <= 44) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP8)); } else if (val <= 49.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP9)); } else if (val <= 55) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP10)); } else if (val <= 60.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP11)); } else if (val <= 66) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP12)); } else if (val <= 71.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP13)); } else if (val <= 77) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP14)); } else if (val <= 82.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP15)); } else if (val <= 88) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP16)); } else if (val <= 93.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP17)); } else if (val <= 99) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING_FLIP18)); } mNextRequest->getImage()->requestRepaint(); } else if ((mNextRequest->getType() == 1)||(mNextRequest->getType() == 2)) { if (val <= 5.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING1)); } else if (val <= 11) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING2)); } else if (val <= 16.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING3)); } else if (val <= 22) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING4)); } else if (val <= 27.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING5)); } else if (val <= 33) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING6)); } else if (val <= 38.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING7)); } else if (val <= 44) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING8)); } else if (val <= 49.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING9)); } else if (val <= 55) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING10)); } else if (val <= 60.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING11)); } else if (val <= 66) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING12)); } else if (val <= 71.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING13)); } else if (val <= 77) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING14)); } else if (val <= 82.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING15)); } else if (val <= 88) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING16)); } else if (val <= 93.5) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING17)); } else if (val <= 99) { maDestroyObject(mNextRequest->getImage()->getResource()); mNextRequest->getImage()->setResource(Util::loadImageFromResource(RES_LOADING18)); } mNextRequest->getImage()->requestRepaint(); } } if((mContentLength - mDataOffset)>=0) { maWriteData(mData, mBuffer, mDataOffset-result, result); mHttp.recv(mBuffer, READSIZE); } } else if(result == CONNERR_CLOSED) { mContentLength = 0; finishedDownloading(); mIsBusy = false; } else { mIsBusy = false; } }