void OpenstreetmapMapProvider::getTile(const QGeoCoordinate& coord,
    int zoomLevel)
{
    cancelDownload();

    double tilex_exact = long2tilex(coord.longitude(), zoomLevel);
    double tiley_exact = lat2tiley(coord.latitude(), zoomLevel);

    Tile   info;
    info.x    = tilex_exact;
    info.y    = tiley_exact;
    info.w    = TILE_DIMENSION;
    info.h    = TILE_DIMENSION;
    info.zoom = zoomLevel;

    QQueue<Tile> queue;
    queue.enqueue(info);

    startDownload(queue);
}
Example #2
0
void TreeWidgetEditor::moveColumns(int fromColumn, int toColumn, int step)
{
    ui.treeWidget->blockSignals(true);

    moveColumnItems(treeHeaderPropList, ui.treeWidget->headerItem(), fromColumn, toColumn, step);

    QQueue<QTreeWidgetItem *> pendingQueue;
    for (int i = 0; i < ui.treeWidget->topLevelItemCount(); i++)
        pendingQueue.enqueue(ui.treeWidget->topLevelItem(i));

    while (!pendingQueue.isEmpty()) {
        QTreeWidgetItem *item = pendingQueue.dequeue();
        for (int i = 0; i < item->childCount(); i++)
            pendingQueue.enqueue(item->child(i));

        moveColumnItems(treeItemColumnPropList, item, fromColumn, toColumn, step);
    }

    ui.treeWidget->blockSignals(false);
}
Example #3
0
void AbstractLexer::printQueue(const QQueue<TOKEN>& q) const
{
    QStringList res;
    foreach(const TOKEN& t, q)
    {
        if(m_longOperators.values().contains(t.type))  res += m_longOperators.key(t.type);
        else if(m_operators.values().contains(t.type)) res += m_operators.key(t.type);
        else res+= (t.val + ';' + QString::number(t.type) + error());
    }
    qDebug() << q.count() << ":::" << "(" << res.join(QStringLiteral("|")) << ")";
}
Example #4
0
    void RecentItemsModel::deserializeItems(const QString &serialized) {
        LOG_DEBUG << "#";

        QByteArray originalData;
        originalData.append(serialized.toLatin1());
        QByteArray serializedBA = QByteArray::fromBase64(originalData);

        // historical reasons to have QQueue there
        // now only thing left is to be backward compatible
        QQueue<QString> items;
        QDataStream ds(&serializedBA, QIODevice::ReadOnly);
        ds >> items;

        Q_ASSERT(m_LRUcache.size() == 0);
        for (auto it = items.rbegin(); it != items.rend(); it++) {
            m_LRUcache.put(*it, 0);
        }
        rebuild();
        emit recentItemsCountChanged();
    }
DisassemblerModelItem DisassemblerModel::decodeInstruction(word *currentPC)
{
	DisassemblerModelItem newItem;

	QTextStream resultStream;
	QString result;
	resultStream.setString(&result, QIODevice::WriteOnly);

	byte readByte = d->controller->memory()->readByte( *currentPC );
	DisassemblerEntry entry = disassemblerTable[readByte];

	newItem.ramIndex = *currentPC;
	newItem.opcodeSize = entry.numBytes;

	// Print the RAM address
	resultStream << "0x" << QString::number( static_cast<int>(*currentPC), 16) << QLatin1String(": ");

	// Fetch the values (if any)
	QQueue<byte> values;
	int numBytesToFetch = entry.numBytes-1;
	
	for(int i=0; i<numBytesToFetch; i++)
	{
		values.enqueue( d->controller->memory()->readByte( ++(*currentPC) ) );
	}
	// Output bytes
	QString tempNumber = QString::number(readByte,16).toUpper();
	if(tempNumber.size() == 1)
	{
		tempNumber.prepend('0');
	}
	resultStream << ' ' << tempNumber << ' ';
	foreach(byte argByte, values)
	{
		QString tempNumber = QString::number(argByte,16).toUpper();
		if(tempNumber.size() == 1)
		{
			tempNumber.prepend('0');
		}
		resultStream << tempNumber << ' ';
	}
Example #6
0
void Algorithms::breadthSearch(Vertex * firstVertex, GraphSearchWorker *worker)
{
    if(firstVertex == nullptr || worker == nullptr) {
        return;
    }

    QQueue<Edge *> edgeQueue;
    QSet<int> visitedVertexId;
    Edge * tmpEdge;

    worker->firstVertex(firstVertex);
    visitedVertexId.insert(firstVertex->id());
//    firstVertex->setBitToken(0, true);
    for(Edge *edge : firstVertex->outEdges()) {
//        qDebug() << "111";
        edgeQueue.append(edge);
    }

    while( !edgeQueue.empty() ) {
        tmpEdge = edgeQueue.takeFirst();
//        qDebug() << tmpEdge->vertex()->id();
        if(visitedVertexId.contains(tmpEdge->targetVertex()->id())) {
//            qDebug() << "if" << tmpEdge->vertex()->id() << edgeQueue.empty();
//        if(tmpEdge->vertex()->bitToken(0) == true) {
            continue;
        }
        worker->nextVertexEdge(tmpEdge);

        if(worker->isEnd()) {
            break;
        }

        visitedVertexId.insert(tmpEdge->targetVertex()->id());

        for(Edge * edge : tmpEdge->targetVertex()->outEdges()) {
            edgeQueue.append(edge);
        }
    }

    worker->searchEnded();
}
void UBQuickTimeFile::run()
{
    EnterMoviesOnThread(kCSAcceptThreadSafeComponentsOnlyMode);

    mSouldStopCompression = false;
    mPendingFrames = 0;

    createCompressionSession();

    mCompressionSessionRunning = true;
    emit compressionSessionStarted();

    while(!mSouldStopCompression)
    {
        frameQueueMutex.lock();
        //qDebug() << "run .... wait" << QTime::currentTime();

        frameBufferNotEmpty.wait(&UBQuickTimeFile::frameQueueMutex);

        //qDebug() << "awakend ..." << QTime::currentTime();
        if (!frameQueue.isEmpty())
        {
            QQueue<VideoFrame> localQueue = frameQueue;
            frameQueue.clear();

            frameQueueMutex.unlock();

            while (!localQueue.isEmpty())
            {
                VideoFrame frame = localQueue.dequeue();
                appendVideoFrame(frame.buffer, frame.timestamp);
            }
        }
        else
        {
            frameQueueMutex.unlock();
        }
    }

    flushPendingFrames();
}
Example #8
0
void threadDeregister(void)
{
    if (logThreadFinished)
        return;

    QMutexLocker qLock(&logQueueMutex);

    LoggingItem *item = createItem(__FILE__, __FUNCTION__, __LINE__,
                                   (LogLevel_t)LOG_DEBUG, kDeregistering);
    if (item)
        logQueue.enqueue(item);
}
void TrkWriteQueue::queueTrkMessage(unsigned char code, TrkCallback callback,
                                         const QByteArray &data, const QVariant &cookie,
                                         bool invokeOnNAK)
{
    const unsigned char token = code == TRK_WRITE_QUEUE_NOOP_CODE ?
                                (unsigned char)(0) : nextTrkWriteToken();
    SharedPointerTrkMessage msg(new TrkMessage(code, token, callback));
    msg->data = data;
    msg->cookie = cookie;
    msg->invokeOnNAK = invokeOnNAK;
    trkWriteQueue.append(msg);
}
Example #10
0
inline bool addLetterToQueue(QQueue<letter_node *> &queue, QQueue<letter_node *> &queue_emptyCharacters,
                             node *current_node, QChar future_letter) {
    bool added = false;
    letter_node *let_node = current_node->getLetterChild(future_letter);

    if (let_node != NULL) {
        queue.enqueue(let_node);
        added = true;
    }

    if (future_letter != '\0') { //just needed to traverse also the empty character always
        QChar l = '\0';
        let_node = current_node->getLetterChild(l);

        if (let_node != NULL) {
            queue_emptyCharacters.enqueue(let_node);
        }
    }

    return added;
}
Example #11
0
QQueue<QString> Data::getListList()
{
    tryConnectListList();
    QQueue <QString> q;
    QSqlQuery query;
    query.exec("select * from listlist order by id;");
    while (query.next())
    {
        q.push_back(query.value(0).toString());
        qDebug() << "Get list" << query.value(1).toInt() << ":" << query.value(0).toString()<< endl;
    }
    if (q.size() == 0)
    {
        query.exec("insert into listlist"
                   "(name, id, count) values('默认列表', 0, 0);");
        Data::changeListCount(1);
        q.push_back(QString("默认列表"));
        qDebug() << "Create list:默认列表" << endl;
    }
    return q;
}
Example #12
0
void MusicWindow::readData()
{
    if (!Data::connectData()) return;
    this->setBackgroud(Data::getCurrentBackground());
    this->bottomBar->setPlayMode(Data::getPlayMode());
    this->bottomBar->setSoundLevel(Data::getSoundLevel());

    QQueue <QString> qq = Data::getListList();
    QString listName;
    QQueue <MusicInfo> q;
    while (!qq.empty())
    {
        listName = qq.front();
        qq.pop_front();
        musicPage->createList(listName);
        q = Data::getMusicList(listName);
        musicPage->addMusics(Data::getListId(listName), q);
        player->addMusics(listName, q);
    }
    musicPage->setCurrentList(0);
}
Example #13
0
void BFS::initializeAnimation(){
    setMenu(false);
    int r=255, g=255, b=0;
    int color_step= 25;
    m_operations.push_back([=,this](){ getNode(_currentNode)->setColor(QColor(r, g, b));colorNode(_currentNode); });
    r-=color_step;
    g-=color_step;
    QQueue<int> queue;
    queue.append(_currentNode);
    getNode(_currentNode)->setVisited(true);
    while(!queue.empty()){
        int curr = queue.at(0);
        queue.pop_front();
        NodeList list = getNeighbours(curr);
        for (auto iter : list){
            if(!getNode(iter)->visited()){
                getNode(iter)->setVisited(true);
                m_operations.push_back([=,this](){getEdge(curr, iter)->setColor(QColor(r,g,b)); colorEdge(curr, iter); emit highlightLine(10);});
            m_operations.push_back([=,this](){getNode(iter)->setColor(QColor(r,g,b)); colorNode(iter);});
                queue.append(iter);
            }
        }
        r-=color_step;
        g-=color_step;
    }

    m_animationInitialized= true;
    m_currentStepInAnimation= 0;
    m_numberOfStepsInAnimation= m_operations.size();
}
Example #14
0
void IPProcessGrid::propagateNeedsUpdate(IPLProcess* process)
{
    QQueue<IPProcessStep*> tmpQueue;

    // find step from process
    for(auto it = _scene->steps()->begin(); it < _scene->steps()->end(); ++it)
    {
        IPProcessStep* step = (IPProcessStep*) *it;
        IPLProcess* tmpProcess = step->process();

        if(tmpProcess == process)
        {
            step->process()->requestUpdate();

            tmpQueue.enqueue(step);
            break;
        }
    }


    // add all following processes via BFS
    int counter = 0;
    int limit   = 100;
    while(!tmpQueue.isEmpty() && counter < limit)
    {
        // set status
        IPProcessStep* step = tmpQueue.dequeue();

        for(auto it = step->edgesOut()->begin(); it < step->edgesOut()->end(); ++it)
        {
            IPProcessEdge* edge = (IPProcessEdge*) *it;
            IPProcessStep* nextStep = edge->to();

            nextStep->process()->requestUpdate();

            // add to queue and list
            tmpQueue.enqueue(nextStep);
        }
    }
}
Example #15
0
QQueue<CustomerSite> ControlThread::buildCustomerList()
{
	QQueue<CustomerSite>  newCustomerSiteQueue;
	QSqlQuery customersitequery;
	customersitequery.prepare("SELECT customer_sites.* FROM customer_sites INNER JOIN users ON customer_sites.user=users.id WHERE customer_sites.site=? AND active=1");
	customersitequery.addBindValue(site_id);
	customersitequery.exec();
	if(customersitequery.isActive())
	{
		while(customersitequery.next()) {
			CustomerSite site;
			site.setId(customersitequery.record().value("id").toULongLong());
			site.setUserId(customersitequery.record().value("user").toULongLong());
			site.setRepeatTime(customersitequery.record().value("repeat_time").toUInt());
			site.setLogSuccessful(customersitequery.record().value("log_successful").toBool());
			site.setFullPage(customersitequery.record().value("full_page").toBool());
			site.setName(customersitequery.record().value("name").toString());
			site.setUrl(customersitequery.record().value("url").toString());
			site.setMaxTimeOut(customersitequery.record().value("max_timeout").toUInt());
			if(customersitequery.record().value("host").toString() != "")
			{
				site.setHost(customersitequery.record().value("host").toString());
			}
			else
			{
				site.setHost(QUrl(site.getUrl()).host());
			}
				
			site.setFetchRemote(customersitequery.record().value("fetch_remote").toBool());
			site.setMonitorSiteId(site_id);
			
			newCustomerSiteQueue.enqueue(site);
		}
	}
	else {
// 		qDebug() << "ControlThread::BuildSiteList - Query Failed" << customersitequery.lastError().text();
	}
	
	return newCustomerSiteQueue;
}
Example #16
0
void TreeWidgetEditor::moveColumnsRight(int fromColumn, int toColumn)
{
    if (fromColumn >= toColumn)
        return;

    QTreeWidgetItem *headerItem = ui.treeWidget->headerItem();
    const QString text = headerItem->text(fromColumn);
    const QIcon icon = headerItem->icon(fromColumn);
    const QVariant data = headerItem->data(fromColumn, QAbstractFormBuilder::resourceRole());
    for (int i = fromColumn; i < toColumn; i++) {
        headerItem->setText(i, headerItem->text(i + 1));
        headerItem->setIcon(i, headerItem->icon(i + 1));
        headerItem->setData(i, QAbstractFormBuilder::resourceRole(), headerItem->data(i + 1, QAbstractFormBuilder::resourceRole()));
    }
    headerItem->setText(toColumn, text);
    headerItem->setIcon(toColumn, icon);
    headerItem->setData(toColumn, QAbstractFormBuilder::resourceRole(), data);

    QQueue<QTreeWidgetItem *> pendingQueue;
    for (int i = 0; i < ui.treeWidget->topLevelItemCount(); i++)
        pendingQueue.enqueue(ui.treeWidget->topLevelItem(i));

    while (!pendingQueue.isEmpty()) {
        QTreeWidgetItem *item = pendingQueue.dequeue();
        for (int i = 0; i < item->childCount(); i++)
            pendingQueue.enqueue(item->child(i));

        const QString text = item->text(fromColumn);
        const QIcon icon = item->icon(fromColumn);
        const QVariant data = item->data(fromColumn, QAbstractFormBuilder::resourceRole());
        for (int i = fromColumn; i < toColumn; i++) {
            item->setText(i, item->text(i + 1));
            item->setIcon(i, item->icon(i + 1));
            item->setData(i, QAbstractFormBuilder::resourceRole(), item->data(i + 1, QAbstractFormBuilder::resourceRole()));
        }
        item->setText(toColumn, text);
        item->setIcon(toColumn, icon);
        item->setData(toColumn, QAbstractFormBuilder::resourceRole(), icon);
    }
}
Example #17
0
Node *Node::getNode(const int index)
{
    Q_ASSERT(index < getSize() && index >= 0);

    // Check a valid index is given
    if (index >= getSize() || index < 0)
        return NULL;

    // Do depth-first traversal until we reach the target index
    QQueue<Node *> queue;
    queue.enqueue(this);

    for (int i = 0; i < index; i++)
    {
        Node *node = queue.dequeue();

        foreach (Node *child, node->getChildren())
            queue.enqueue(child);
    }

    return queue.front();
}
Example #18
0
void QwwSmtpClientPrivate::sendRcpt() {
    SMTPCommand &cmd = commandqueue.head();
    QVariantList vlist = cmd.data.toList();
    QList<QVariant> rcptlist = vlist.at(1).toList();
    QByteArray buf = QByteArray("RCPT TO:<").append(rcptlist.first().toByteArray()).append(">\r\n");
    qDebug() << "SMTP >>>" << buf;
    socket->write(buf);
    rcptlist.removeFirst();
    vlist[1] = rcptlist;
    cmd.data = vlist;

    if (rcptlist.isEmpty()) cmd.extra = 1;
}
Example #19
0
void Data::addMusicsToEnd(QString listName, QQueue<MusicInfo> musics)
{
    QSqlDatabase::database().transaction();
    listName = listName.replace("'", "''");
    tryConnectMusicList();
    int cnt;
    QSqlQuery query;
    QString str =
            QString("select * from listlist where name='%1';").arg(listName);
    query.exec(str);
    if (query.next())
        cnt = query.value(2).toInt();
    else
        cnt = 0;
    MusicInfo musicInfo;
    while (!musics.empty())
    {
        musicInfo = musics.front();
        QString str
                = QString("insert into "
                          "musiclist(listname, id, dir, name, artist) "
                          "values('%1', %2, '%3', '%4', '%5');").arg(
                      listName).arg(
                      cnt).arg(
                      musicInfo.getDir().replace("'", "''")).arg(
                      musicInfo.getName().replace("'", "''")).arg(
                      musicInfo.getArtist());
        qDebug() << "Add music:" << musicInfo.getName() << endl;
        query.exec(str);
        cnt++;
        musics.pop_front();
    }
    query.exec("select * from listlist;");
    str = QString("update listlist set count = %1 "
                    "where name = '%2';").arg(cnt).arg(listName);
    query.exec(str);
    QSqlDatabase::database().commit();
}
Example #20
0
bool MeshDispose::set_even(Vertex *&vertex, QQueue<Vertex *> &vtx_queue)
{
    if (vertex->isOod()) {
        qDebug() << "Oh my god!!!!";
        return false;
    }
    if (vertex->isEven())
        return true;
    vertex->set_even();
    bool flag = true;


    for (int i=0; i<vertex->edge_list_out.size(); ++i) {
        if (!vertex->edge_list_out[i]->vertex2->isEven()) {
            if (!vertex->edge_list_out[i]->vertex2->isOod()) {
                vertex->edge_list_out[i]->vertex2->set_ood();
                vtx_queue.enqueue(vertex->edge_list_out[i]->vertex2);
            }
        }
        else {
            flag = false;
            break;
        }
    }
    for (int i=0; i<vertex->edge_list_in.size(); ++i) {
        if (!vertex->edge_list_in[i]->vertex1->isEven()) {
            if (!vertex->edge_list_in[i]->vertex1->isOod()) {
                vertex->edge_list_in[i]->vertex1->set_ood();
                vtx_queue.enqueue(vertex->edge_list_in[i]->vertex1);
            }
        }
        else {
            flag = false;
            break;
        }
    }
    return flag;
}
Example #21
0
void QtResourceViewPrivate::createPaths()
{
    if (!m_resourceModel)
        return;

    const QString root(QLatin1Char(':'));

    QMap<QString, QString> pathToParentPath; // full path to full parent path
    QMap<QString, QStringList> pathToSubPaths; // full path to full sub paths

    QMap<QString, QString> contents = m_resourceModel->contents();
    QMapIterator<QString, QString> itContents(contents);
    while (itContents.hasNext()) {
        const QString filePath = itContents.next().key();
        const QFileInfo fi(filePath);
        QString dirPath = fi.absolutePath();
        m_pathToContents[dirPath].append(fi.fileName());
        while (!pathToParentPath.contains(dirPath) && dirPath != root) {
            const QFileInfo fd(dirPath);
            const QString parentDirPath = fd.absolutePath();
            pathToParentPath[dirPath] = parentDirPath;
            pathToSubPaths[parentDirPath].append(dirPath);
            dirPath = parentDirPath;
        }
    }

    QQueue<QPair<QString, QTreeWidgetItem *> > pathToParentItemQueue;
    pathToParentItemQueue.enqueue(qMakePair(root, static_cast<QTreeWidgetItem *>(0)));
    while (!pathToParentItemQueue.isEmpty()) {
        QPair<QString, QTreeWidgetItem *> pathToParentItem = pathToParentItemQueue.dequeue();
        const QString path = pathToParentItem.first;
        QTreeWidgetItem *item = createPath(path, pathToParentItem.second);
        QStringList subPaths = pathToSubPaths.value(path);
        QStringListIterator itSubPaths(subPaths);
        while (itSubPaths.hasNext())
            pathToParentItemQueue.enqueue(qMakePair(itSubPaths.next(), item));
    }
}
Example #22
0
void MusicWindow::addMusics()
{
    QQueue<MusicInfo> musics;
    MusicInfo musicInfo;
    QStringList fileDir = QFileDialog::getOpenFileNames(
                this,
                tr("添加"),
                ".",
                tr("MP3 音频文件(*.mp1 *.mp2 *.mp3);; WMA 音频文件(*.wma)"));
    if (fileDir.isEmpty())
        return;
    QStringList::iterator it;
    musicPage->addMusics(fileDir);
    for (it = fileDir.begin(); it != fileDir.end(); ++it)
    {
        musicInfo.setDir(*it);
        musicInfo.setName(QFileInfo(*it).baseName());
        musicInfo.setArtist("");
        musics.push_back(musicInfo);
    }
    player->addMusics(musicPage->getCurrentList(), musics);
    Data::addMusicsToEnd(musicPage->getCurrentList(), musics);
}
Example #23
0
void FramebufferCache::setFrameBufferSize(QSize frameBufferSize) {
    //If the size changed, we need to delete our FBOs
    if (_frameBufferSize != frameBufferSize) {
        _frameBufferSize = frameBufferSize;
        _primaryFramebufferFull.reset();
        _primaryFramebufferDepthColor.reset();
        _primaryDepthTexture.reset();
        _primaryColorTexture.reset();
        _primaryNormalTexture.reset();
        _primarySpecularTexture.reset();
        _selfieFramebuffer.reset();
        _cachedFramebuffers.clear();
    }
}
Example #24
0
void SBusController::finish()
{
    QStringList keys;

    keys = queued_buses->keys();
    for( int i=0 ; i<keys.count() ; i++ )
    {
        const QString & bus = keys.at(i);
        if( !queued_buses->contains(bus) )
            continue;

        QQueue<SBusController*> *queue = queued_buses->value(bus);
        if( queue == 0 )
            continue;

        for( int j=0 ; j<queue->count() ; j++ )
            if( queue->at(j) == this )
            {
                queue->removeAt( j );
                j--;
            }

        if( queued_buses->value(bus)->isEmpty() )
            delete queued_buses->take( bus );
    }

    keys = active_buses->keys();
    for( int i=0 ; i<keys.count() ; i++ )
    {
        const QString & bus = keys.at(i);
        if( !active_buses->contains(bus) )
            continue;

        if( active_buses->value(bus) == this )
            finish( bus );
    }
}
 void reloadIconResources(DesignerIconCache *iconCache, QObject *object)
 {
     if (QListWidget *listWidget = qobject_cast<QListWidget *>(object)) {
         for (int i = 0; i < listWidget->count(); i++)
             reloadListItem(iconCache, listWidget->item(i));
     } else if (QComboBox *comboBox = qobject_cast<QComboBox *>(object)) {
         for (int i = 0; i < comboBox->count(); i++) {
             const QVariant v = comboBox->itemData(i, Qt::DecorationPropertyRole);
             if (qVariantCanConvert<PropertySheetIconValue>(v)) {
                 QIcon icon = iconCache->icon(qVariantValue<PropertySheetIconValue>(v));
                 comboBox->setItemIcon(i, icon);
                 comboBox->setItemData(i, icon);
             }
         }
     } else if (QTreeWidget *treeWidget = qobject_cast<QTreeWidget *>(object)) {
         reloadTreeItem(iconCache, treeWidget->headerItem());
         QQueue<QTreeWidgetItem *> itemsQueue;
         for (int i = 0; i < treeWidget->topLevelItemCount(); i++)
             itemsQueue.enqueue(treeWidget->topLevelItem(i));
         while (!itemsQueue.isEmpty()) {
             QTreeWidgetItem *item = itemsQueue.dequeue();
             for (int i = 0; i < item->childCount(); i++)
                 itemsQueue.enqueue(item->child(i));
             reloadTreeItem(iconCache, item);
         }
     } else if (QTableWidget *tableWidget = qobject_cast<QTableWidget *>(object)) {
         const int columnCount = tableWidget->columnCount();
         const int rowCount = tableWidget->rowCount();
         for (int c = 0; c < columnCount; c++)
             reloadTableItem(iconCache, tableWidget->horizontalHeaderItem(c));
         for (int r = 0; r < rowCount; r++)
             reloadTableItem(iconCache, tableWidget->verticalHeaderItem(r));
         for (int c = 0; c < columnCount; c++)
             for (int r = 0; r < rowCount; r++)
                 reloadTableItem(iconCache, tableWidget->item(r, c));
     }
 }
int BleRtmpSendThread::service(BleRtmpMuxer & muxer)
{
    int ret = BLE_SUCESS;

    if ((ret = sendVideoSh(muxer)) != BLE_SUCESS) {
        return ret;
    }

    if ((ret = sendAudioSh(muxer)) != BLE_SUCESS) {
        return ret;
    }

    while (!m_stop) {
        QQueue<BleAVPacket *> pkts = BleAVQueue::instance()->dequeue();
        if (pkts.isEmpty()) {
            msleep(50);
            continue;
        }

        BleAutoLocker(m_mutex);

        while (!pkts.empty()) {
            BleAVPacket *pkt = pkts.dequeue();
            BleAutoFree(BleAVPacket, pkt);

            MStream &data = pkt->data;

            if (pkt->pktType == Packet_Type_Video) {
                if (muxer.addH264(data, pkt->dts) != TRUE ) {
                    ret = BLE_RTMPSEND_ERROR;
                    break;
                }

                m_videoKbps += (data.size() + 11);
                m_fps += 1;
            } else if (pkt->pktType == Packet_Type_Audio) {
                if (muxer.addAAC(data, pkt->dts) != TRUE ) {
                    ret = BLE_RTMPSEND_ERROR;
                    break;
                }

                m_audioKbps += (data.size() + 11);
            }

            m_sendDataCount += (data.size() + 11);
        }

        // if send failed, then pkts may has some pkt
        // we should delete it.
        for (int i = 0; i < pkts.size(); ++i) {
            BleAVPacket *pkt = pkts.at(i);
            BleFree(pkt);
        }
    }

    return ret;
}
Example #27
0
int main ()
{
    QQueue<int> myQQueue;

    myQQueue.enqueue(12);
    myQQueue.enqueue(75);   // this is now the back
    assert(myQQueue.back() == 75);
    myQQueue.back() -= myQQueue.head();
    assert(myQQueue.back() == 63);
    cout << "myQQueue.back() is now " << myQQueue.back() << endl;

    return 0;
}
Example #28
0
int main ()
{
  QQueue<int> myQQueue;

  myQQueue.enqueue(77);
  myQQueue.enqueue(16);
  assert(myQQueue.head() == 77);
  myQQueue.head() -= myQQueue.back();    // 77-16=61
  assert(myQQueue.head() == 61);
  cout << "myQQueue.head() is now " << myQQueue.head() << endl;

  return 0;
}
Example #29
0
bool ProcessModel::conPathExists(const ListDigraph::Node &s, const ListDigraph::Node & t) {
	QQueue<ListDigraph::Node> q; // Used for later processing of the nodes
	ListDigraph::Node curnode;
	ListDigraph::NodeMap<bool> q_contains(graph, false); // Consider revising for optimization

	// Initialize the queue with the s' successors
	for (ListDigraph::OutArcIt oait(graph, s); oait != INVALID; ++oait) {
		// Consider only the conjunctive arcs
		if (conjunctive[oait]) {
			q.enqueue(graph.target(oait));
			q_contains[graph.target(oait)] = true;
		}
	}

	while (!q.empty()) {
		curnode = q.dequeue();

		//Debugger::info << "Queue size: " << q.size() << ENDL;

		// Iterate over the graph successors of the node which are reachable over the conjunctive arcs. 
		if (curnode == t) {
			return true;
		} else {
			for (ListDigraph::OutArcIt oait(graph, curnode); oait != INVALID; ++oait) {
				if (conjunctive[oait]) {
					if (!q_contains[graph.target(oait)]) {
						q.enqueue(graph.target(oait));
						q_contains[graph.target(oait)] = true;
					}
				}
			}
		}
	}

	return false;
}
Example #30
0
QQueue<MusicInfo> Data::getMusicList(QString listName)
{
    tryConnectMusicList();
    listName = listName.replace("'", "''");
    QQueue <MusicInfo> q;
    MusicInfo musicInfo;
    QSqlQuery query;
    query.exec("select * from musiclist where listname = '"+listName+"' order by id;");
    while (query.next())
    {
        musicInfo.setDir(query.value(2).toString());
        musicInfo.setName(query.value(3).toString());
        musicInfo.setArtist(query.value(4).toString());
        q.push_back(musicInfo);
        qDebug() << "Get music:" << query.value(3).toString() << endl;
    }
    int all = q.size();
    query.exec("select * from listlist;");
    QString str =
            QString("update listlist set count = %1 "
                    "where name = '%2';").arg(all).arg(listName);
    query.exec(str);
    return q;
}