예제 #1
0
파일: dcvmu.cpp 프로젝트: bucanero/dci4vmi
void VMIFile::loadHeader(vmi_hdr_t *header) {
	DreamcastFile *df;
	uint16 year;

	df=getDCFile();
	setDescription(header->description);
	setCopyright(header->copyright);
	setResourceName(header->resource_name);
	df->setSize(header->filesize);
	df->setName(header->filename);
	df->setGameFile(header->filemode & VMI_VMUGAME);
	df->setCopyProtected(header->filemode & VMI_NOCOPY);
	memcpy(&year, &header->timestamp.cent, 2);
	header->timestamp.cent=year / 100;
	header->timestamp.year=year % 100;
	header->timestamp.dow=(header->timestamp.dow == 0) ? 6 : header->timestamp.dow-1;
	df->timeToBCD(&header->timestamp);
	df->setTime(header->timestamp);
}
예제 #2
0
/*!
 * \brief Opens a websocket connection using the given \a url.
 * If \a mask is true, all frames will be masked; this is only necessary for client side sockets; servers should never mask
 * \param url The url to connect to
 * \param mask When true, all frames are masked
 * \note A client socket must *always* mask its frames; servers may *never* mask its frames
 */
void WebSocket::open(const QUrl &url, bool mask)
{
	m_dataProcessor.clear();
	m_isClosingHandshakeReceived = false;
	m_isClosingHandshakeSent = false;

	setRequestUrl(url);
    QString resourceName = url.path() + url.toEncoded(); // NOTE 4.8
	if (resourceName.isEmpty())
	{
		resourceName = "/";
	}
	setResourceName(resourceName);
	enableMasking(mask);

	setSocketState(QAbstractSocket::ConnectingState);

	m_pSocket->connectToHost(url.host(), url.port(80));
}
/*!
    \internal
 */
void QWebSocketPrivate::open(const QUrl &url, bool mask)
{
    //just delete the old socket for the moment;
    //later, we can add more 'intelligent' handling by looking at the URL
    //m_pSocket.reset();
    Q_Q(QWebSocket);
    if (!url.isValid() || url.toString().contains(QStringLiteral("\r\n"))) {
        setErrorString(QWebSocket::tr("Invalid URL."));
        Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError);
        return;
    }
    QTcpSocket *pTcpSocket = m_pSocket.take();
    if (pTcpSocket) {
        releaseConnections(pTcpSocket);
        pTcpSocket->deleteLater();
    }
    //if (m_url != url)
    if (Q_LIKELY(!m_pSocket)) {
        m_dataProcessor.clear();
        m_isClosingHandshakeReceived = false;
        m_isClosingHandshakeSent = false;

        setRequestUrl(url);
        QString resourceName = url.path();
        if (resourceName.contains(QStringLiteral("\r\n"))) {
            setRequestUrl(QUrl());  //clear requestUrl
            setErrorString(QWebSocket::tr("Invalid resource name."));
            Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError);
            return;
        }
        if (!url.query().isEmpty()) {
            if (!resourceName.endsWith(QChar::fromLatin1('?'))) {
                resourceName.append(QChar::fromLatin1('?'));
            }
            resourceName.append(url.query());
        }
        if (resourceName.isEmpty())
            resourceName = QStringLiteral("/");
        setResourceName(resourceName);
        enableMasking(mask);

    #ifndef QT_NO_SSL
        if (url.scheme() == QStringLiteral("wss")) {
            if (!QSslSocket::supportsSsl()) {
                const QString message =
                        QWebSocket::tr("SSL Sockets are not supported on this platform.");
                setErrorString(message);
                Q_EMIT q->error(QAbstractSocket::UnsupportedSocketOperationError);
            } else {
                QSslSocket *sslSocket = new QSslSocket;
                m_pSocket.reset(sslSocket);
                if (Q_LIKELY(m_pSocket)) {
                    m_pSocket->setSocketOption(QAbstractSocket::LowDelayOption, 1);
                    m_pSocket->setSocketOption(QAbstractSocket::KeepAliveOption, 1);
                    m_pSocket->setReadBufferSize(m_readBufferSize);
                    m_pSocket->setPauseMode(m_pauseMode);

                    makeConnections(m_pSocket.data());
                    QObject::connect(sslSocket, &QSslSocket::encryptedBytesWritten, q,
                                     &QWebSocket::bytesWritten);
                    typedef void (QSslSocket:: *sslErrorSignalType)(const QList<QSslError> &);
                    QObject::connect(sslSocket,
                                     static_cast<sslErrorSignalType>(&QSslSocket::sslErrors),
                                     q, &QWebSocket::sslErrors);
                    setSocketState(QAbstractSocket::ConnectingState);

                    sslSocket->setSslConfiguration(m_configuration.m_sslConfiguration);
                    if (Q_UNLIKELY(m_configuration.m_ignoreSslErrors))
                        sslSocket->ignoreSslErrors();
                    else
                        sslSocket->ignoreSslErrors(m_configuration.m_ignoredSslErrors);
    #ifndef QT_NO_NETWORKPROXY
                    sslSocket->setProxy(m_configuration.m_proxy);
    #endif
                    sslSocket->connectToHostEncrypted(url.host(), url.port(443));
                } else {
                    const QString message = QWebSocket::tr("Out of memory.");
                    setErrorString(message);
                    Q_EMIT q->error(QAbstractSocket::SocketResourceError);
                }
            }
        } else
    #endif
        if (url.scheme() == QStringLiteral("ws")) {
            m_pSocket.reset(new QTcpSocket);
            if (Q_LIKELY(m_pSocket)) {
                m_pSocket->setSocketOption(QAbstractSocket::LowDelayOption, 1);
                m_pSocket->setSocketOption(QAbstractSocket::KeepAliveOption, 1);
                m_pSocket->setReadBufferSize(m_readBufferSize);
                m_pSocket->setPauseMode(m_pauseMode);

                makeConnections(m_pSocket.data());
                QObject::connect(m_pSocket.data(), &QAbstractSocket::bytesWritten, q,
                                 &QWebSocket::bytesWritten);
                setSocketState(QAbstractSocket::ConnectingState);
    #ifndef QT_NO_NETWORKPROXY
                m_pSocket->setProxy(m_configuration.m_proxy);
    #endif
                m_pSocket->connectToHost(url.host(), url.port(80));
            } else {
                const QString message = QWebSocket::tr("Out of memory.");
                setErrorString(message);
                Q_EMIT q->error(QAbstractSocket::SocketResourceError);
            }
        } else {
            const QString message =
                    QWebSocket::tr("Unsupported WebSocket scheme: %1").arg(url.scheme());
            setErrorString(message);
            Q_EMIT q->error(QAbstractSocket::UnsupportedSocketOperationError);
        }
    }
}
예제 #4
0
파일: dcvmu.cpp 프로젝트: bucanero/dci4vmi
VMIFile::VMIFile(char *fn, char *ds, char *cr, char *rn) {
	setFileName(fn);
	setDescription(ds);
	setCopyright(cr);
	setResourceName(rn);
}
예제 #5
0
void Element::xmlConfigure(xmlNode *fNode)
{
    while (fNode) {
       if (!strcmp((char *) fNode->name, "Dimensions") && fNode->children) {
          xmlNode *t = fNode->children->next;
          while (t) {
             if (!strcmp((char *) t->name, "Width") && t->children) {
                mDimensions.w = atoi((char *) t->children->content);
             } else if (!strcmp((char *) t->name, "Height") && t->children) {
                mDimensions.h = atoi((char *) t->children->content);
             } else if (!strcmp((char *) t->name, "Top") && t->children) {
                mDimensions.y = atoi((char *) t->children->content);
             } else if (!strcmp((char *) t->name, "Left") && t->children) {
                mDimensions.x = atoi((char *) t->children->content);
             }
             t = t->next;
          }
       } else if (!strcmp((char *) fNode->name, "Layer") && fNode->children) {
          setLayer(atoi((char *) fNode->children->content));
       } else if (!strcmp((char *) fNode->name, "SkinID") && fNode->children) {
          setSkinID((char *) fNode->children->content);
       } else if (!strcmp((char *) fNode->name, "Resource") && fNode->children) {
          setResourceName((char *) fNode->children->content);
       } else if (!strcmp((char *) fNode->name, "Content") && fNode->children && fNode->children->content) {
          if (!strcmp((char *) fNode->children->content, "BackgroundImage")) {
             setContent(CONTENT_BACKGROUND_IMAGE);
          } else if (!strcmp((char *) fNode->children->content, "MenuEntryBG")) {
             setContent(CONTENT_MENUENTRY_BG);
          } else if (!strcmp((char *) fNode->children->content, "MenuEntrySelectedBG")) {
             setContent(CONTENT_MENUENTRY_SELECTED_BG);
          } else if (!strcmp((char *) fNode->children->content, "MenuFont")) {
             setContent(CONTENT_MENUFONT);
          } else if (!strcmp((char *) fNode->children->content, "MenuSelectedFont")) {
             setContent(CONTENT_MENUFONT_SELECTED);
          } else if (!strcmp((char *) fNode->children->content, "MenuBrowseSound")) {
             setContent(CONTENT_MENUBROWSE_SOUND);
          } else if (!strcmp((char *) fNode->children->content, "MenuSelectSound")) {
             setContent(CONTENT_MENUSELECT_SOUND);
          } else if (!strcmp((char *) fNode->children->content, "Menu")) {
             setContent(CONTENT_MENU);
          } else if (!strcmp((char *) fNode->children->content, "BoardTemp")) {
	     setContent(CONTENT_BOARDTEMP);
	  } else if (!strcmp((char *) fNode->children->content, "CPUTemp")) {
	     setContent(CONTENT_CPUTEMP);
	  } else if (!strcmp((char *) fNode->children->content, "TrayState")) {
	     setContent(CONTENT_TRAYSTATE);
	  } else if (!strcmp((char *) fNode->children->content, "FanSpeed")) {
	     setContent(CONTENT_FANSPEED);
	  } else if (!strcmp((char *) fNode->children->content, "MessageText")) {
             setContent(CONTENT_MESSAGETEXT);
          } else if (!strcmp((char *) fNode->children->content, "MessageTitle")) {
             setContent(CONTENT_MESSAGETITLE);
          } else if (!strcmp((char *) fNode->children->content, "MessageBackground")) {
             setContent(CONTENT_MESSAGEBACKGROUND);
          } else if (!strcmp((char *) fNode->children->content, "QuestionText")) {
             setContent(CONTENT_QUESTIONTEXT);
          } else if (!strcmp((char *) fNode->children->content, "QuestionTitle")) {
             setContent(CONTENT_QUESTIONTITLE);
          } else if (!strcmp((char *) fNode->children->content, "QuestionBackground")) {
             setContent(CONTENT_QUESTIONBACKGROUND);
          } else if (!strcmp((char *) fNode->children->content, "QuestionTimer")) {
	     setContent(CONTENT_QUESTIONTIMER);
	  } else if (!strcmp((char *) fNode->children->content, "Status")) {
             setContent(CONTENT_STATUS);
          } else if (!strcmp((char *) fNode->children->content, "ProgressBarBackground")) {
	     setContent(CONTENT_PROGRESSBACKGROUND);
	  } else if (!strcmp((char *) fNode->children->content, "ProgressBarPercent")) {
	     setContent(CONTENT_PROGRESSTEXT);
	  } else if (!strcmp((char *) fNode->children->content, "ProgressBarTitle")) {
	     setContent(CONTENT_PROGRESSTITLE);
	  } else if (!strcmp((char *) fNode->children->content, "ProgressBar")) {
	     setContent(CONTENT_PROGRESSBAR);
	  } else if (!strcmp((char *) fNode->children->content, "ProgressBarText")) {
	     setContent(CONTENT_PROGRESSMESSAGE);
	  }
       } else if (!strcmp((char *) fNode->name, "Color") && fNode->children) {
          xmlNode *t = fNode->children->next;
	  SDL_Color j;
	  memset(&j, 0x00, sizeof(SDL_Color));
	  while (t) {
	     if (!strcmp((char *) t->name, "Red") && t->children) {
	        j.r = atoi((char *) t->children->content);
             } else if (!strcmp((char *) t->name, "Green") && t->children) {
	        j.g = atoi((char *) t->children->content);
             } else if (!strcmp((char *) t->name, "Blue") && t->children) {
	        j.b = atoi((char *) t->children->content);
             } else if (!strcmp((char *) t->name, "Alpha") && t->children) {
	        j.unused = atoi((char *) t->children->content);
             }
	     t = t->next;
	  }
	  
	  
          setColor(j);
       } else if (!strcmp((char *) fNode->name, "Align") && fNode->children) {
          if (!strcmp((char *) fNode->children->content, "Center") || !strcmp((char *) fNode->children->content, "Centre")) {
             setAlign(Align_Center);
          } else if (!strcmp((char *) fNode->children->content, "Left")) {
             setAlign(Align_Left);
          } else if (!strcmp((char *) fNode->children->content, "Right")) {
             setAlign(Align_Right);
          }
       } else if (!strcmp((char *) fNode->name, "Rotation") && fNode->children) {
          setRotation(atoi((char *) fNode->children->content));
       }
       fNode = fNode->next;
    }
}
예제 #6
0
bool QLCCapability::loadXML(const QDomElement& root)
{
    uchar min = 0;
    uchar max = 0;
    QString str;

    if (root.tagName() != KXMLQLCCapability)
    {
        qWarning() << Q_FUNC_INFO << "Capability node not found";
        return false;
    }

    /* Get low limit attribute (critical) */
    str = root.attribute(KXMLQLCCapabilityMin);
    if (str.isEmpty() == true)
    {
        qWarning() << Q_FUNC_INFO << "Capability has no minimum limit.";
        return false;
    }
    else
    {
        min = CLAMP(str.toInt(), 0, UCHAR_MAX);
    }

    /* Get high limit attribute (critical) */
    str = root.attribute(KXMLQLCCapabilityMax);
    if (str.isEmpty() == true)
    {
        qWarning() << Q_FUNC_INFO << "Capability has no maximum limit.";
        return false;
    }
    else
    {
        max = CLAMP(str.toInt(), 0, UCHAR_MAX);
    }

    /* Get (optional) resource name for gobo/effect/... */
    if(root.hasAttribute(KXMLQLCCapabilityResource))
    {
        QString path = root.attribute(KXMLQLCCapabilityResource);
        if (QFileInfo(path).isRelative())
        {
            QDir dir = QLCFile::systemDirectory(GOBODIR);
            path = dir.path() + QDir::separator() + path;
        }
        setResourceName(path);
    }

    /* Get (optional) color resource for color presets */
    if (root.hasAttribute(KXMLQLCCapabilityColor1))
    {
        QColor col1 = QColor(root.attribute(KXMLQLCCapabilityColor1));
        QColor col2 = QColor();
        if (root.hasAttribute(KXMLQLCCapabilityColor2))
            col2 = QColor(root.attribute(KXMLQLCCapabilityColor2));
        if (col1.isValid())
        {
            setResourceColors(col1, col2);
        }
    }

    if (min <= max)
    {
        setName(root.text());
        setMin(min);
        setMax(max);

        return true;
    }
    else
    {
        qWarning() << Q_FUNC_INFO << "Capability min(" << min
                   << ") is greater than max(" << max << ")";
        return false;
    }
}
예제 #7
0
BaseDialog::BaseDialog(const TCHAR *resourceName)
: m_ctrlParent(NULL), m_resourceName(0), m_resourceId(0)
{
  setResourceName(resourceName);
}
예제 #8
0
Skeleton::Skeleton(const core::string&name)
{
	m_lastID=0;
	setResourceName(name);
	m_animationMixer=new animation::TransformationAnimationMixer();
}
예제 #9
0
ResourceNotes::ResourceNotes( const KConfig *config )
    : KRES::Resource( config ), mManager( 0 )
{
    if ( !config )
        setResourceName( "Notes" );
}