qmlFrontend/hwengine.cpp
branchqmlfrontend
changeset 10951 89a7f617e091
parent 10896 5a74923120d5
child 11415 05cf35103206
equal deleted inserted replaced
10949:6a1f5f452460 10951:89a7f617e091
     8 #include "previewimageprovider.h"
     8 #include "previewimageprovider.h"
     9 #include "themeiconprovider.h"
     9 #include "themeiconprovider.h"
    10 
    10 
    11 extern "C" {
    11 extern "C" {
    12     RunEngine_t *flibRunEngine;
    12     RunEngine_t *flibRunEngine;
    13     registerGUIMessagesCallback_t *flibRegisterGUIMessagesCallback;
    13     registerUIMessagesCallback_t *flibRegisterUIMessagesCallback;
    14     setSeed_t *flibSetSeed;
    14     setSeed_t *flibSetSeed;
    15     getSeed_t *flibGetSeed;
    15     getSeed_t *flibGetSeed;
    16     setTheme_t *flibSetTheme;
    16     setTheme_t *flibSetTheme;
    17     setScript_t *flibSetScript;
    17     setScript_t *flibSetScript;
    18     setScheme_t *flibSetScheme;
    18     setScheme_t *flibSetScheme;
    33     tryAddTeam_t * flibTryAddTeam;
    33     tryAddTeam_t * flibTryAddTeam;
    34     tryRemoveTeam_t * flibTryRemoveTeam;
    34     tryRemoveTeam_t * flibTryRemoveTeam;
    35     changeTeamColor_t * flibChangeTeamColor;
    35     changeTeamColor_t * flibChangeTeamColor;
    36 
    36 
    37     connectOfficialServer_t * flibConnectOfficialServer;
    37     connectOfficialServer_t * flibConnectOfficialServer;
       
    38     passNetData_t * flibPassNetData;
    38 }
    39 }
    39 
    40 
    40 Q_DECLARE_METATYPE(MessageType);
    41 Q_DECLARE_METATYPE(MessageType);
    41 
    42 
    42 HWEngine::HWEngine(QQmlEngine *engine, QObject *parent) :
    43 HWEngine::HWEngine(QQmlEngine *engine, QObject *parent) :
    49 
    50 
    50     if(!hwlib.load())
    51     if(!hwlib.load())
    51         qWarning() << "Engine library not found" << hwlib.errorString();
    52         qWarning() << "Engine library not found" << hwlib.errorString();
    52 
    53 
    53     flibRunEngine = (RunEngine_t*) hwlib.resolve("RunEngine");
    54     flibRunEngine = (RunEngine_t*) hwlib.resolve("RunEngine");
    54     flibRegisterGUIMessagesCallback = (registerGUIMessagesCallback_t*) hwlib.resolve("registerGUIMessagesCallback");
    55     flibRegisterUIMessagesCallback = (registerUIMessagesCallback_t*) hwlib.resolve("registerUIMessagesCallback");
    55     flibGetSeed = (getSeed_t*) hwlib.resolve("getSeed");
    56     flibGetSeed = (getSeed_t*) hwlib.resolve("getSeed");
    56     flibGetPreview = (getPreview_t*) hwlib.resolve("getPreview");
    57     flibGetPreview = (getPreview_t*) hwlib.resolve("getPreview");
    57     flibRunQuickGame = (runQuickGame_t*) hwlib.resolve("runQuickGame");
    58     flibRunQuickGame = (runQuickGame_t*) hwlib.resolve("runQuickGame");
    58     flibRunLocalGame = (runLocalGame_t*) hwlib.resolve("runLocalGame");
    59     flibRunLocalGame = (runLocalGame_t*) hwlib.resolve("runLocalGame");
    59     flibInit = (flibInit_t*) hwlib.resolve("flibInit");
    60     flibInit = (flibInit_t*) hwlib.resolve("flibInit");
    78     flibTryAddTeam = (tryAddTeam_t*) hwlib.resolve("tryAddTeam");
    79     flibTryAddTeam = (tryAddTeam_t*) hwlib.resolve("tryAddTeam");
    79     flibTryRemoveTeam = (tryRemoveTeam_t*) hwlib.resolve("tryRemoveTeam");
    80     flibTryRemoveTeam = (tryRemoveTeam_t*) hwlib.resolve("tryRemoveTeam");
    80     flibChangeTeamColor = (changeTeamColor_t*) hwlib.resolve("changeTeamColor");
    81     flibChangeTeamColor = (changeTeamColor_t*) hwlib.resolve("changeTeamColor");
    81 
    82 
    82     flibConnectOfficialServer = (connectOfficialServer_t*) hwlib.resolve("connectOfficialServer");
    83     flibConnectOfficialServer = (connectOfficialServer_t*) hwlib.resolve("connectOfficialServer");
       
    84     flibPassNetData = (passNetData_t*) hwlib.resolve("passNetData");
    83 
    85 
    84     flibInit("/usr/home/unC0Rr/Sources/Hedgewars/Hedgewars-GC/share/hedgewars/Data", "/usr/home/unC0Rr/.hedgewars");
    86     flibInit("/usr/home/unC0Rr/Sources/Hedgewars/Hedgewars-GC/share/hedgewars/Data", "/usr/home/unC0Rr/.hedgewars");
    85     flibRegisterGUIMessagesCallback(this, &guiMessagesCallback);
    87     flibRegisterUIMessagesCallback(this, &guiMessagesCallback);
    86 
    88 
    87     ThemeIconProvider * themeIcon = (ThemeIconProvider *)m_engine->imageProvider(QLatin1String("theme"));
    89     ThemeIconProvider * themeIcon = (ThemeIconProvider *)m_engine->imageProvider(QLatin1String("theme"));
    88     themeIcon->setFileContentsFunction(flibGetThemeIcon);
    90     themeIcon->setFileContentsFunction(flibGetThemeIcon);
    89 
    91 
    90     fillModels();
    92     fillModels();
   168     case MSG_TEAMCOLOR: {
   170     case MSG_TEAMCOLOR: {
   169         QStringList l = QString::fromUtf8(msg).split('\n');
   171         QStringList l = QString::fromUtf8(msg).split('\n');
   170         emit teamColorChanged(l[0], QColor::fromRgba(l[1].toInt()).name());
   172         emit teamColorChanged(l[0], QColor::fromRgba(l[1].toInt()).name());
   171         break;
   173         break;
   172     }
   174     }
       
   175     case MSG_NETDATA: {
       
   176         flibPassNetData(msg.constData());
       
   177     }
   173     }
   178     }
   174 }
   179 }
   175 
   180 
   176 QString HWEngine::currentSeed()
   181 QString HWEngine::currentSeed()
   177 {
   182 {