forked from leecbaker/datareftool
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplugin_custom_dataref.cpp
More file actions
42 lines (36 loc) · 1.49 KB
/
plugin_custom_dataref.cpp
File metadata and controls
42 lines (36 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <cstdint>
#include <cstring>
#include "XPLMDefs.h"
#include "XPLMPlugin.h"
#include "XPLMProcessing.h"
#include "XPLMDataAccess.h"
int dummy_dr_variable = -1337;
const intptr_t MSG_ADD_DATAREF = 0x01000000;
float register_dr_callback(float, float, int, void *)
{
XPLMPluginID plugin_id = XPLMFindPluginBySignature("com.leecbaker.datareftool");
if(XPLM_NO_PLUGIN_ID != plugin_id) {
XPLMSendMessageToPlugin(plugin_id, MSG_ADD_DATAREF, (void*)"datareftool/good_int");
XPLMSendMessageToPlugin(plugin_id, MSG_ADD_DATAREF, (void*)"datareftool/good_int"); //check duplicates
XPLMSendMessageToPlugin(plugin_id, MSG_ADD_DATAREF, (void*)"datareftool/bad_int");
}
return 0;
}
int dummy_dr_callback(void*) {
return 1337;
}
PLUGIN_API int XPluginStart(char * outName, char * outSig, char * outDesc) {
strcpy(outName, "DataRef Tool Custom Dataref Example");
strcpy(outSig, "com.leecbaker.datareftool_custom_dataref_example");
strcpy(outDesc, "Test for DataRefTool");
XPLMRegisterFlightLoopCallback(register_dr_callback, 1, nullptr);
XPLMDataRef dr = XPLMRegisterDataAccessor("datareftool/good_int", xplmType_Int, 0, dummy_dr_callback, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr);
if(nullptr == dr) {
return 0;
}
return 1;
}
PLUGIN_API void XPluginStop(void) { }
PLUGIN_API void XPluginDisable(void) { }
PLUGIN_API int XPluginEnable(void) { return 1; }
PLUGIN_API void XPluginReceiveMessage(XPLMPluginID, intptr_t, void *) { }