1 // Copyright 2017 Dolphin Emulator Project
2 // Licensed under GPLv2+
3 // Refer to the license.txt file included.
4 
5 #pragma once
6 
7 #include <string>
8 #include <vector>
9 
10 #include "InputCommon/ControllerInterface/Device.h"
11 
12 class QString;
13 class OutputReference;
14 class QPushButton;
15 
16 namespace MappingCommon
17 {
18 enum class Quote
19 {
20   On,
21   Off
22 };
23 
24 QString GetExpressionForControl(const QString& control_name,
25                                 const ciface::Core::DeviceQualifier& control_device,
26                                 const ciface::Core::DeviceQualifier& default_device,
27                                 Quote quote = Quote::On);
28 
29 QString DetectExpression(QPushButton* button, ciface::Core::DeviceContainer& device_container,
30                          const std::vector<std::string>& device_strings,
31                          const ciface::Core::DeviceQualifier& default_device,
32                          Quote quote = Quote::On);
33 
34 void TestOutput(QPushButton* button, OutputReference* reference);
35 
36 void RemoveSpuriousTriggerCombinations(std::vector<ciface::Core::DeviceContainer::InputDetection>*);
37 
38 QString BuildExpression(const std::vector<ciface::Core::DeviceContainer::InputDetection>&,
39                         const ciface::Core::DeviceQualifier& default_device, Quote quote);
40 
41 }  // namespace MappingCommon
42