controller: Pass ControllerParameters by reference in ReconfigureControllers()

Prevents unnecessary copies and heap reallocations from occurring.
This commit is contained in:
Lioncash 2020-10-26 19:36:58 -04:00
parent 98f4c5e7b8
commit 6b5f565324
4 changed files with 9 additions and 7 deletions

View file

@ -19,7 +19,7 @@ DefaultControllerApplet::DefaultControllerApplet(Service::SM::ServiceManager& se
DefaultControllerApplet::~DefaultControllerApplet() = default;
void DefaultControllerApplet::ReconfigureControllers(std::function<void()> callback,
ControllerParameters parameters) const {
const ControllerParameters& parameters) const {
LOG_INFO(Service_HID, "called, deducing the best configuration based on the given parameters!");
auto& npad =

View file

@ -38,7 +38,7 @@ public:
virtual ~ControllerApplet();
virtual void ReconfigureControllers(std::function<void()> callback,
ControllerParameters parameters) const = 0;
const ControllerParameters& parameters) const = 0;
};
class DefaultControllerApplet final : public ControllerApplet {
@ -47,7 +47,7 @@ public:
~DefaultControllerApplet() override;
void ReconfigureControllers(std::function<void()> callback,
ControllerParameters parameters) const override;
const ControllerParameters& parameters) const override;
private:
Service::SM::ServiceManager& service_manager;

View file

@ -589,7 +589,7 @@ QtControllerSelector::QtControllerSelector(GMainWindow& parent) {
QtControllerSelector::~QtControllerSelector() = default;
void QtControllerSelector::ReconfigureControllers(
std::function<void()> callback, Core::Frontend::ControllerParameters parameters) const {
std::function<void()> callback, const Core::Frontend::ControllerParameters& parameters) const {
this->callback = std::move(callback);
emit MainWindowReconfigureControllers(parameters);
}

View file

@ -120,11 +120,13 @@ public:
explicit QtControllerSelector(GMainWindow& parent);
~QtControllerSelector() override;
void ReconfigureControllers(std::function<void()> callback,
Core::Frontend::ControllerParameters parameters) const override;
void ReconfigureControllers(
std::function<void()> callback,
const Core::Frontend::ControllerParameters& parameters) const override;
signals:
void MainWindowReconfigureControllers(Core::Frontend::ControllerParameters parameters) const;
void MainWindowReconfigureControllers(
const Core::Frontend::ControllerParameters& parameters) const;
private:
void MainWindowReconfigureFinished();