shared_ptr for the GC adapter class, constexpr constants
This commit is contained in:
parent
4a54dc6bbf
commit
92a812d815
5 changed files with 55 additions and 69 deletions
|
@ -14,7 +14,8 @@ namespace InputCommon {
|
|||
|
||||
class GCButton final : public Input::ButtonDevice {
|
||||
public:
|
||||
explicit GCButton(int port_, int button_, int axis_, GCAdapter::Adapter* adapter)
|
||||
explicit GCButton(int port_, int button_, int axis_,
|
||||
std::shared_ptr<GCAdapter::Adapter> adapter)
|
||||
: port(port_), button(button_), gcadapter(adapter) {}
|
||||
|
||||
~GCButton() override;
|
||||
|
@ -26,13 +27,13 @@ public:
|
|||
private:
|
||||
const int port;
|
||||
const int button;
|
||||
GCAdapter::Adapter* gcadapter;
|
||||
std::shared_ptr<GCAdapter::Adapter> gcadapter;
|
||||
};
|
||||
|
||||
class GCAxisButton final : public Input::ButtonDevice {
|
||||
public:
|
||||
explicit GCAxisButton(int port_, int axis_, float threshold_, bool trigger_if_greater_,
|
||||
GCAdapter::Adapter* adapter)
|
||||
std::shared_ptr<GCAdapter::Adapter> adapter)
|
||||
: port(port_), axis(axis_), threshold(threshold_), trigger_if_greater(trigger_if_greater_),
|
||||
gcadapter(adapter) {}
|
||||
|
||||
|
@ -49,12 +50,11 @@ private:
|
|||
const int axis;
|
||||
float threshold;
|
||||
bool trigger_if_greater;
|
||||
GCAdapter::Adapter* gcadapter;
|
||||
std::shared_ptr<GCAdapter::Adapter> gcadapter;
|
||||
};
|
||||
|
||||
GCButtonFactory::GCButtonFactory() {
|
||||
adapter = GCAdapter::Adapter::GetInstance();
|
||||
}
|
||||
GCButtonFactory::GCButtonFactory(std::shared_ptr<GCAdapter::Adapter> adapter_)
|
||||
: adapter(adapter_) {}
|
||||
|
||||
GCButton::~GCButton() = default;
|
||||
|
||||
|
@ -171,7 +171,8 @@ void GCButtonFactory::EndConfiguration() {
|
|||
|
||||
class GCAnalog final : public Input::AnalogDevice {
|
||||
public:
|
||||
GCAnalog(int port_, int axis_x_, int axis_y_, float deadzone_, GCAdapter::Adapter* adapter)
|
||||
GCAnalog(int port_, int axis_x_, int axis_y_, float deadzone_,
|
||||
std::shared_ptr<GCAdapter::Adapter> adapter)
|
||||
: port(port_), axis_x(axis_x_), axis_y(axis_y_), deadzone(deadzone_), gcadapter(adapter) {}
|
||||
|
||||
float GetAxis(int axis) const {
|
||||
|
@ -230,13 +231,12 @@ private:
|
|||
const int axis_y;
|
||||
const float deadzone;
|
||||
mutable std::mutex mutex;
|
||||
GCAdapter::Adapter* gcadapter;
|
||||
std::shared_ptr<GCAdapter::Adapter> gcadapter;
|
||||
};
|
||||
|
||||
/// An analog device factory that creates analog devices from GC Adapter
|
||||
GCAnalogFactory::GCAnalogFactory() {
|
||||
adapter = GCAdapter::Adapter::GetInstance();
|
||||
};
|
||||
GCAnalogFactory::GCAnalogFactory(std::shared_ptr<GCAdapter::Adapter> adapter_)
|
||||
: adapter(adapter_) {}
|
||||
|
||||
/**
|
||||
* Creates analog device from joystick axes
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue