summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControlReference/ControlReference.cpp
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2019-02-27 18:10:18 -0600
committerJordan Woyak <jordan.woyak@gmail.com>2019-03-03 18:39:02 -0600
commitc389d68186ea7fa95d763d7bb55bc09e5a45c4cd (patch)
tree9712b3e25f700cdbeb5b75652078867f5d8e548a /Source/Core/InputCommon/ControlReference/ControlReference.cpp
parent48b69ca01841ba724049895a83d8d88ec95d66de (diff)
ControllerInterface/DolphinQt: Make mapping "all devices" way less hacky.
Diffstat (limited to 'Source/Core/InputCommon/ControlReference/ControlReference.cpp')
-rw-r--r--Source/Core/InputCommon/ControlReference/ControlReference.cpp89
1 files changed, 0 insertions, 89 deletions
diff --git a/Source/Core/InputCommon/ControlReference/ControlReference.cpp b/Source/Core/InputCommon/ControlReference/ControlReference.cpp
index 3132baf07b..1f392c4e3a 100644
--- a/Source/Core/InputCommon/ControlReference/ControlReference.cpp
+++ b/Source/Core/InputCommon/ControlReference/ControlReference.cpp
@@ -4,9 +4,6 @@
#include "InputCommon/ControlReference/ControlReference.h"
-#include <vector>
-
-#include "Common/Thread.h"
// For InputGateOn()
// This is a bad layering violation, but it's the cleanest
// place I could find to put it.
@@ -15,12 +12,6 @@
using namespace ciface::ExpressionParser;
-namespace
-{
-// Compared to an input's current state (ideally 1.0) minus abs(initial_state) (ideally 0.0).
-constexpr ControlState INPUT_DETECT_THRESHOLD = 0.55;
-} // namespace
-
bool ControlReference::InputGateOn()
{
return SConfig::GetInstance().m_BackgroundInput || Host_RendererHasFocus() ||
@@ -115,83 +106,3 @@ ControlState OutputReference::State(const ControlState state)
m_parsed_expression->SetValue(state * range);
return 0.0;
}
-
-// Wait for input on a particular device.
-// Inputs are considered if they are first seen in a neutral state.
-// This is useful for crazy flightsticks that have certain buttons that are always held down
-// and also properly handles detection when using "FullAnalogSurface" inputs.
-// Upon input, return a pointer to the detected Control, else return nullptr.
-ciface::Core::Device::Control* InputReference::Detect(const unsigned int ms,
- ciface::Core::Device* const device)
-{
- struct InputState
- {
- ciface::Core::Device::Input& input;
- ControlState initial_state;
- };
-
- std::vector<InputState> input_states;
- for (auto* input : device->Inputs())
- {
- // Don't detect things like absolute cursor position.
- if (!input->IsDetectable())
- continue;
-
- // Undesirable axes will have negative values here when trying to map a "FullAnalogSurface".
- input_states.push_back({*input, input->GetState()});
- }
-
- if (input_states.empty())
- return nullptr;
-
- unsigned int time = 0;
- while (time < ms)
- {
- Common::SleepCurrentThread(10);
- time += 10;
-
- device->UpdateInput();
- for (auto& input_state : input_states)
- {
- // We want an input that was initially 0.0 and currently 1.0.
- const auto detection_score =
- (input_state.input.GetState() - std::abs(input_state.initial_state));
-
- if (detection_score > INPUT_DETECT_THRESHOLD)
- return &input_state.input;
- }
- }
-
- // No input was detected. :'(
- return nullptr;
-}
-
-//
-// OutputReference :: Detect
-//
-// Totally different from the inputReference detect / I have them combined so it was simpler to make
-// the GUI.
-// The GUI doesn't know the difference between an input and an output / it's odd but I was lazy and
-// it was easy
-//
-// set all binded outputs to <range> power for x milliseconds return false
-//
-ciface::Core::Device::Control* OutputReference::Detect(const unsigned int ms,
- ciface::Core::Device* const device)
-{
- // ignore device
-
- // don't hang if we don't even have any controls mapped
- if (BoundCount() > 0)
- {
- State(1);
- unsigned int slept = 0;
-
- // this loop is to make stuff like flashing keyboard LEDs work
- while (ms > (slept += 10))
- Common::SleepCurrentThread(10);
-
- State(0);
- }
- return nullptr;
-}