fix an initialization order fiasco

This commit is contained in:
Seth Alves 2017-06-24 18:53:00 -07:00
parent 9c99b9d4c5
commit 05f0ec267e
3 changed files with 10 additions and 3 deletions

View file

@ -9,9 +9,14 @@
#include "Input.h" #include "Input.h"
namespace controller { namespace controller {
const Input Input::INVALID_INPUT = Input(0x7fffffff); const Input Input::INVALID_INPUT = invalidInput();
const uint16_t Input::INVALID_DEVICE = Input::INVALID_INPUT.device; const uint16_t Input::INVALID_DEVICE = Input::INVALID_INPUT.device;
const uint16_t Input::INVALID_CHANNEL = Input::INVALID_INPUT.channel; const uint16_t Input::INVALID_CHANNEL = Input::INVALID_INPUT.channel;
const uint16_t Input::INVALID_TYPE = Input::INVALID_INPUT.type; const uint16_t Input::INVALID_TYPE = Input::INVALID_INPUT.type;
const Input& Input::invalidInput() {
static const Input INVALID_INPUT = Input(0x7fffffff);
return INVALID_INPUT;
}
} }

View file

@ -83,6 +83,8 @@ struct Input {
using NamedPair = QPair<Input, QString>; using NamedPair = QPair<Input, QString>;
using NamedVector = QVector<NamedPair>; using NamedVector = QVector<NamedPair>;
static const Input& invalidInput();
}; };
} }

View file

@ -47,8 +47,8 @@
namespace controller { namespace controller {
const uint16_t UserInputMapper::STANDARD_DEVICE = 0; const uint16_t UserInputMapper::STANDARD_DEVICE = 0;
const uint16_t UserInputMapper::ACTIONS_DEVICE = Input::INVALID_DEVICE - 0x00FF; const uint16_t UserInputMapper::ACTIONS_DEVICE = Input::invalidInput().device - 0x00FF;
const uint16_t UserInputMapper::STATE_DEVICE = Input::INVALID_DEVICE - 0x0100; const uint16_t UserInputMapper::STATE_DEVICE = Input::invalidInput().device - 0x0100;
} }
// Default contruct allocate the poutput size with the current hardcoded action channels // Default contruct allocate the poutput size with the current hardcoded action channels