Example #1
0
void ProcessorGraph::clearConnections()
{

    for (int i = 0; i < getNumNodes(); i++)
    {
        Node* node = getNode(i);
        int nodeId = node->nodeId;

        if (nodeId != OUTPUT_NODE_ID)
        {

            if (nodeId != RECORD_NODE_ID && nodeId != AUDIO_NODE_ID)
            {
                disconnectNode(node->nodeId);
            }

            GenericProcessor* p = (GenericProcessor*) node->getProcessor();
            p->resetConnections();

        }
    }

    // connect audio subnetwork
    for (int n = 0; n < 2; n++)
    {

        addConnection(AUDIO_NODE_ID, n,
                      OUTPUT_NODE_ID, n);

    }

    addConnection(MESSAGE_CENTER_ID, midiChannelIndex,
                  RECORD_NODE_ID, midiChannelIndex);
}
CDatagrams::~CDatagrams()
{
	if(m_bActive)
	{
		disconnectNode();
	}

	if(m_pSocket)
	{
		delete m_pSocket;
	}

	if(m_tSender)
	{
		delete m_tSender;
	}

	if(m_pRecvBuffer)
	{
		delete m_pRecvBuffer;
	}
	if(m_pHostAddress)
	{
		delete m_pHostAddress;
	}
}
Example #3
0
void ProcessorGraph::removeProcessor(GenericProcessor* processor)
{

    std::cout << "Removing processor with ID " << processor->getNodeId() << std::endl;

    disconnectNode(processor->getNodeId());
    removeNode(processor->getNodeId());

}
Example #4
0
void searchName (HEAD* head)
{
	HASH* hashTable = head->pHash;
	int found = 0;
    int i;
	int key;
	LIST_NODE* tempNode = NULL;
    LIST_NODE* tempPre = NULL;
	CRICKET* player = NULL;
	char* searchVal;
	char searchValTemp[30];

    printf("     Enter a name to search: ");
    gets(searchValTemp);

	searchVal = makeString(searchValTemp);
	searchVal = makeToupper(searchVal);

	key = convertToHash(searchVal);

    tempNode = hashTable[key].list;

	while (tempNode != NULL && !found)
    {
	    if (strcmp(searchVal, ((CRICKET*)(tempNode->dataPtr))->name)==0)
        {
			player = tempNode->dataPtr;
            found = 1;
			playerStats(player);
			disconnectNode(tempNode, tempPre, hashTable, key);
        }
        if (!found)
        {
			tempPre = tempNode;
            tempNode = tempNode->next;
        }

    }
    if (!found)
        printf("     Player not found\n");
	else
	{
		insertHash(player, hashTable, key);
		free(tempNode);
		hashTable[key].count--;
	}

	free(searchVal);
    return;
}
void CDatagrams::listen()
{
	QMutexLocker l(&m_pSection);

	if(m_bActive)
	{
		systemLog.postLog(LogSeverity::Debug, QString("CDatagrams::Listen - already listening"));
		return;
	}

	Q_ASSERT(m_pSocket == 0);

	m_pSocket = new QUdpSocket(this);

	CEndPoint addr = Network.getLocalAddress();
	if(m_pSocket->bind(addr.port()))
	{
		systemLog.postLog(LogSeverity::Debug, QString("Datagrams listening on %1").arg(m_pSocket->localPort()));
		m_nDiscarded = 0;

		for(int i = 0; i < quazaaSettings.Gnutella2.UdpBuffers; i++)
		{
			m_FreeBuffer.append(new CBuffer(1024));
		}

		for(int i = 0; i < quazaaSettings.Gnutella2.UdpInFrames; i++)
		{
			m_FreeDatagramIn.append(new DatagramIn);
		}

		for(int i = 0; i < quazaaSettings.Gnutella2.UdpOutFrames; i++)
		{
			m_FreeDatagramOut.append(new DatagramOut);
		}

		connect(this, SIGNAL(sendQueueUpdated()), this, SLOT(flushSendCache()), Qt::QueuedConnection);
		connect(m_pSocket, SIGNAL(readyRead()), this, SLOT(onDatagram()), Qt::QueuedConnection);

		m_bActive = true;
	}
	else
	{
		systemLog.postLog(LogSeverity::Debug, QString("Can't bind UDP socket! UDP communication disabled!"));
		disconnectNode();
	}

	m_bFirewalled = true;
}
void ProcessorGraph::removeProcessor(GenericProcessor* processor)
{

    std::cout << "Removing processor with ID " << processor->getNodeId() << std::endl;

    int nodeId = processor->getNodeId();

    disconnectNode(nodeId);
    removeNode(nodeId);

	if (processor->isSource())
	{
		m_validTimestampSources.removeAllInstancesOf(processor);

		if (m_timestampSource == processor)
		{
			const GenericProcessor* newProc = 0;

			//Look for the next source node. If none is found, set the sourceid to 0
			for (int i = 0; i < getNumNodes() && newProc == nullptr; i++)
			{
				if (getNode(i)->nodeId != OUTPUT_NODE_ID)
				{
					GenericProcessor* p = dynamic_cast<GenericProcessor*>(getNode(i)->getProcessor());
					//GenericProcessor* p = static_cast<GenericProcessor*>(getNode(i)->getProcessor());
					if (p && p->isSource() && p->isGeneratesTimestamps())
					{
						newProc = p;
					}
				}
			}
			m_timestampSource = newProc;
			m_timestampSourceSubIdx = 0;
		}
		if (m_timestampWindow)
			m_timestampWindow->updateProcessorList();
	}

}
Example #7
0
void ProcessorGraph::removeProcessor(GenericProcessor* processor)
{

    std::cout << "Removing processor with ID " << processor->getNodeId() << std::endl;

    int nodeId = processor->getNodeId();

    if (processor->isSource())
    {
        getMessageCenter()->removeSourceProcessor(processor);
    }

    disconnectNode(nodeId);
    removeNode(nodeId);

    if (getMessageCenter()->getSourceNodeId() == nodeId)
    {
        int newId = 0;

        //Look for the next source node. If none is found, set the sourceid to 0
        for (int i = 0; i < getNumNodes() && newId == 0; i++)
        {
			if (getNode(i)->nodeId != OUTPUT_NODE_ID)
			{
				GenericProcessor* p = dynamic_cast<GenericProcessor*>(getNode(i)->getProcessor());
				//GenericProcessor* p = static_cast<GenericProcessor*>(getNode(i)->getProcessor());
				if (p && p->isSource() && p->generatesTimestamps())
				{
					newId = p->nodeId;
				}
			}
        }
        getMessageCenter()->setSourceNodeId(newId);
    }

}