qmlFrontend/hwengine.cpp
branchqmlfrontend
changeset 10418 091d2c0216c3
parent 10416 1c301054694d
child 10420 02c573d19224
equal deleted inserted replaced
10416:1c301054694d 10418:091d2c0216c3
    43     //m_argsList << datadir->absolutePath();
    43     //m_argsList << datadir->absolutePath();
    44     m_argsList << "--landpreview";
    44     m_argsList << "--landpreview";
    45 
    45 
    46     m_args.resize(m_argsList.size());
    46     m_args.resize(m_argsList.size());
    47     for(int i = m_argsList.size() - 1; i >=0; --i)
    47     for(int i = m_argsList.size() - 1; i >=0; --i)
    48         m_args[i] = m_argsList[i].data();
    48         m_args[i] = m_argsList[i].constData();
    49 
    49 
    50     RunEngine(m_args.size(), m_args.data());
    50     RunEngine(m_args.size(), m_args.data());
    51     sendIPC("!");
    51     sendIPC("!");
    52 }
    52 }
    53 
    53 
    66     qmlRegisterSingletonType<HWEngine>("Hedgewars.Engine", 1, 0, "HWEngine", hwengine_singletontype_provider);
    66     qmlRegisterSingletonType<HWEngine>("Hedgewars.Engine", 1, 0, "HWEngine", hwengine_singletontype_provider);
    67 }
    67 }
    68 
    68 
    69 void HWEngine::sendIPC(const QByteArray & b)
    69 void HWEngine::sendIPC(const QByteArray & b)
    70 {
    70 {
    71     string255 str;
    71     quint8 len = b.size() > 255 ? 255 : b.size();
    72     str.len = b.size() > 255 ? 255 : b.size();
    72     qDebug() << "sendIPC: len = " << len;
    73     qDebug() << "semdIPC: len = " << str.len;
       
    74     qCopy(b.data(), &(b.data()[str.len - 1]), &(str.str[0]));
       
    75 
    73 
    76     ipcToEngine(str);
    74     ipcToEngine(len, b.constData());
    77 }
    75 }
    78 
    76 
    79 void HWEngine::engineMessageCallback(void *context, string255 str)
    77 void HWEngine::engineMessageCallback(void *context, quint8 len, const char *msg)
    80 {
    78 {
    81     QByteArray b = QByteArray::fromRawData((const char *)&str.s, str.len + 1);
    79     QByteArray b = QByteArray::fromRawData(msg, len);
    82 
    80 
    83     qDebug() << "FLIPC in" << b;
    81     qDebug() << "FLIPC in" << b;
    84 }
    82 }