Skip to content

Commit b6d9cdd

Browse files
committed
Static init doesn't work through a library.
1 parent 43579f0 commit b6d9cdd

7 files changed

+32
-16
lines changed

SerialPrograms/Source/Controllers/SerialPABotBase/Connection/MessageConverter.cpp

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
#include "Controllers/SerialPABotBase/Connection/BotBaseMessage.h"
1515
#include "MessageConverter.h"
1616

17+
#include "Controllers/SerialPABotBase/SerialPABotBase_Routines_HID_Keyboard.h"
18+
#include "Controllers/SerialPABotBase/SerialPABotBase_Routines_NS2_WiredController.h"
19+
#include "Controllers/SerialPABotBase/SerialPABotBase_Routines_NS1_WirelessControllers.h"
20+
1721
namespace PokemonAutomation{
1822

1923

@@ -481,17 +485,27 @@ int register_message_converters_custom_info(){
481485
}
482486

483487

484-
int init_MessageLogger =
485-
register_message_converters_framework_errors() +
486-
register_message_converters_framework_acks() +
487-
register_message_converters_framework_requests() +
488+
489+
const std::map<uint8_t, MessageConverter>& make_MESSAGE_MAP(){
490+
register_message_converters_framework_errors();
491+
register_message_converters_framework_acks();
492+
register_message_converters_framework_requests();
488493
register_message_converters_custom_info();
489494

495+
SerialPABotBase::register_message_converters_HID_Keyboard();
496+
SerialPABotBase::register_message_converters_NS2_WiredController();
497+
SerialPABotBase::register_message_converters_NS1_WirelessControllers();
498+
499+
return converter_map();
500+
}
501+
502+
490503

491504
std::string message_to_string(const BotBaseMessage& message){
492-
const std::map<uint8_t, MessageConverter>& converters = converter_map();
493-
auto iter = converters.find(message.type);
494-
if (iter == converters.end()){
505+
static const std::map<uint8_t, MessageConverter>& CONVERTER_MAP = make_MESSAGE_MAP();
506+
507+
auto iter = CONVERTER_MAP.find(message.type);
508+
if (iter == CONVERTER_MAP.end()){
495509
std::ostringstream ss;
496510
ss << "Unknown Message Type " << (unsigned)message.type << ": length = " << message.body.size();
497511
return ss.str();

SerialPrograms/Source/Controllers/SerialPABotBase/SerialPABotBase_Routines_HID_Keyboard.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ namespace SerialPABotBase{
1414

1515

1616

17-
int register_message_converters_HID_Keyboard(){
17+
void register_message_converters_HID_Keyboard(){
1818
register_message_converter(
1919
PABB_MSG_COMMAND_HID_KEYBOARD_STATE,
2020
[](const std::string& body){
@@ -45,9 +45,7 @@ int register_message_converters_HID_Keyboard(){
4545
return ss.str();
4646
}
4747
);
48-
return 0;
4948
}
50-
int init_PushButtonFramework = register_message_converters_HID_Keyboard();
5149

5250

5351

SerialPrograms/Source/Controllers/SerialPABotBase/SerialPABotBase_Routines_HID_Keyboard.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ namespace PokemonAutomation{
1414
namespace SerialPABotBase{
1515

1616

17+
void register_message_converters_HID_Keyboard();
18+
19+
1720
class DeviceRequest_HID_Keyboard_StateMs : public BotBaseRequest{
1821
public:
1922
pabb_Message_Command_HID_Keyboard_State params;

SerialPrograms/Source/Controllers/SerialPABotBase/SerialPABotBase_Routines_NS1_WirelessControllers.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace SerialPABotBase{
1515

1616

1717

18-
int register_message_converters_NS1_WirelessControllers(){
18+
void register_message_converters_NS1_WirelessControllers(){
1919
register_message_converter(
2020
PABB_MSG_REQUEST_STATUS,
2121
[](const std::string& body){
@@ -99,9 +99,7 @@ int register_message_converters_NS1_WirelessControllers(){
9999
return ss.str();
100100
}
101101
);
102-
return 0;
103102
}
104-
int init_Messages_ESP32 = register_message_converters_NS1_WirelessControllers();
105103

106104

107105

SerialPrograms/Source/Controllers/SerialPABotBase/SerialPABotBase_Routines_NS1_WirelessControllers.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ namespace PokemonAutomation{
1616
namespace SerialPABotBase{
1717

1818

19+
void register_message_converters_NS1_WirelessControllers();
1920

2021

2122
class MessageControllerReadSpi : public BotBaseRequest{

SerialPrograms/Source/Controllers/SerialPABotBase/SerialPABotBase_Routines_NS2_WiredController.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace SerialPABotBase{
1515

1616

1717

18-
int register_message_converters_NS2_WiredController(){
18+
void register_message_converters_NS2_WiredController(){
1919
register_message_converter(
2020
PABB_MSG_COMMAND_NS2_WIRED_CONTROLLER_STATE,
2121
[](const std::string& body){
@@ -46,9 +46,7 @@ int register_message_converters_NS2_WiredController(){
4646
return ss.str();
4747
}
4848
);
49-
return 0;
5049
}
51-
int init_NS2_WiredController = register_message_converters_NS2_WiredController();
5250

5351

5452

SerialPrograms/Source/Controllers/SerialPABotBase/SerialPABotBase_Routines_NS2_WiredController.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ namespace PokemonAutomation{
1414
namespace SerialPABotBase{
1515

1616

17+
void register_message_converters_NS2_WiredController();
18+
19+
20+
1721
class DeviceRequest_NS2_WiredController_ControllerStateMs : public BotBaseRequest{
1822
public:
1923
pabb_Message_Command_NS2_WiredController_State params;

0 commit comments

Comments
 (0)