Exemplo n.º 1
0
/**
 * Convert a byte array into an OSCPacket (either an OSCMessage or OSCBundle).
 * @return an OSCPacket
 */
OSCPacket& OSCByteArrayToMsgConverter::convert(QByteArray* byteArray, qint32 btLength)
{
    iBytes  = byteArray;
    iBytesLength = btLength;
    iStreamPosition = 0;
    if(isBundle())
            return convertBundle();
    else
            return convertMessage();
}
Exemplo n.º 2
0
//------------------------------------------------------------------------------
void OpenSoundBundle::addElement(OpenSoundBase *entry, bool deleteWhenUsed)
{
    int32 size;

    size = entry->getSize();
    if(isBundle(entry->getData(), size))
    {
        bundleArray.push_back(static_cast<OpenSoundBundle *>(entry));
        bundleShouldBeDeleted.push_back(deleteWhenUsed);
    }
    else if(OpenSoundMessage::isMessage(entry->getData(), size))
    {
        messageArray.push_back(static_cast<OpenSoundMessage *>(entry));
        messageShouldBeDeleted.push_back(deleteWhenUsed);
    }
}
Exemplo n.º 3
0
//------------------------------------------------------------------------------
OpenSoundBundle::OpenSoundBundle (char *data, const int size)
    : OpenSoundBase(),
      bufferSize(0),
      outgoingSize(0),
      dataBuffer(0)
{
    int i;
    int32 tempSize;
    TimeTag *tempTag;
    OpenSoundMessage *newMessage;
    OpenSoundBundle *newBundle;

    //Start at 8, because we don't care about the first '#bundle' string.
    for (i = 8; i < size; ++i)
    {
        if (i < 16)
        {
            //Get timeTag.
            tempTag = new TimeTag(data+i);
            timeTag = *tempTag;
            delete tempTag;
            i += 7;
        }
        else
        {
            tempSize = ntohl(*(reinterpret_cast<int32 *>(data+i)));
            i += 4;

            if(isBundle((data+i), tempSize))
            {
                newBundle = new OpenSoundBundle((data+i), tempSize);
                addElement(newBundle);
                i += (tempSize-1); //-1 because it gets incremented at the end of the loop.
            }
            else if(OpenSoundMessage::isMessage((data+i), tempSize))
            {
                newMessage = new OpenSoundMessage((data+i), tempSize);
                addElement(newMessage);
                i += (tempSize-1); //-1 because it gets incremented at the end of the loop.
            }
        }
    }
}