forked from benrussell/Mozzie
-
Notifications
You must be signed in to change notification settings - Fork 0
/
XPCmd.cpp
93 lines (57 loc) · 2.2 KB
/
XPCmd.cpp
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*
Mozzie - An MQTT plugin for the X-Plane flight simulator.
Copyright (C) 2017 Ben Russell - [email protected]
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//
// Created by br on 4/02/17.
//
#include "XPCmd.h"
#include "Mozzie.h"
XPCmd::XPCmd( const std::string cmd_name, const std::string cmd_description, void* button_router ) {
char caTmp[1024];
snprintf(caTmp, 1024, " cmd:(%s)\n", cmd_name.c_str());
Mozzie::debug(caTmp);
_name = cmd_name;
_xpcmd = XPLMCreateCommand(cmd_name.c_str(), cmd_description.c_str());
XPLMRegisterCommandHandler(_xpcmd, // in Command name
XPCmd::StaticXpCmdRouter, // in Handler
1, // Receive input before plugin windows.
(void *) this
);
} // Constructor..
void XPCmd::Begin() {
XPLMCommandBegin( _xpcmd );
_cmd_active = 1;
}
void XPCmd::Stop() {
if( _cmd_active ) {
XPLMCommandEnd( _xpcmd );
_cmd_active = 0;
}
}
int XPCmd::StaticXpCmdRouter( XPLMCommandRef inCommand,
XPLMCommandPhase inPhase,
void * inRefcon) {
XPCmd *cmd = (XPCmd*)inRefcon;
//GFMCPPro_Buttons *btn_router = (GFMCPPro_Buttons*)cmd->_button_router;
#if 1
char caTmp[1024];
snprintf( caTmp, 1024, "phase:%i cmdHandler: %s\n", inPhase, cmd->_name.c_str() );
Mozzie::debug( caTmp );
#endif
return cmd->_action_handler( inCommand, inPhase );
}
int XPCmd::_action_handler(XPLMCommandRef inCommand, XPLMCommandPhase inPhase) {
//Hmmm.
}
//eof