Skip to content

Commit 6bd0723

Browse files
committed
Cleanup of keyboard recorder path.
1 parent caa0a59 commit 6bd0723

File tree

12 files changed

+53
-137
lines changed

12 files changed

+53
-137
lines changed

SerialPrograms/Source/Controllers/Controller.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,37 @@
55
*/
66

77
#include "Common/Cpp/Exceptions.h"
8+
#include "Common/Cpp/ListenerSet.h"
9+
#include "Common/Cpp/Containers/Pimpl.tpp"
810
#include "Controller.h"
911

1012
namespace PokemonAutomation{
1113

1214

1315

16+
17+
struct AbstractController::Data{
18+
ListenerSet<InputSniffer> input_sniffers;
19+
};
20+
void AbstractController::add_input_sniffer(InputSniffer& listener){
21+
m_data->input_sniffers.add(listener);
22+
}
23+
void AbstractController::remove_input_sniffer(InputSniffer& listener){
24+
m_data->input_sniffers.remove(listener);
25+
}
26+
void AbstractController::on_command_input(WallClock timestamp, const ControllerState& state){
27+
m_data->input_sniffers.run_method(&InputSniffer::on_command_input, timestamp, state);
28+
}
29+
30+
31+
AbstractController::AbstractController()
32+
: m_data(CONSTRUCT_TOKEN)
33+
{}
34+
AbstractController::~AbstractController() = default;
35+
36+
37+
38+
1439
void AbstractController::throw_bad_cast(const char* desired_typename){
1540
throw UserSetupError(
1641
logger(),

SerialPrograms/Source/Controllers/Controller.h

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@
1010
#include "Common/Compiler.h"
1111
#include "Common/Cpp/AbstractLogger.h"
1212
#include "Common/Cpp/Time.h"
13-
#include "Controllers/KeyboardInput/KeyboardEventHandler.h"
13+
#include "Common/Cpp/Containers/Pimpl.h"
1414
#include "Common/Cpp/CancellableScope.h"
1515

1616
namespace PokemonAutomation{
1717

1818
class RecursiveThrottler;
1919
class ControllerInputState;
20+
class ControllerState;
2021
enum class ControllerType;
2122
enum class ControllerPerformanceClass;
2223
enum class ControllerClass;
@@ -28,7 +29,8 @@ class AbstractController{
2829
public:
2930
static const char NAME[];
3031

31-
virtual ~AbstractController() = default;
32+
AbstractController();
33+
virtual ~AbstractController();
3234

3335
virtual Logger& logger() = 0;
3436
virtual RecursiveThrottler& logging_throttler() = 0;
@@ -196,8 +198,18 @@ class AbstractController{
196198

197199
virtual void run_controller_input(const ControllerInputState& state){}
198200

199-
virtual void add_input_sniffer(KeyboardEventHandler::KeyboardListener& listener){};
200-
virtual void remove_input_sniffer(KeyboardEventHandler::KeyboardListener& listener){};
201+
struct InputSniffer{
202+
virtual void on_command_input(WallClock timestamp, const ControllerState& state) = 0;
203+
};
204+
void add_input_sniffer(InputSniffer& listener);
205+
void remove_input_sniffer(InputSniffer& listener);
206+
protected:
207+
void on_command_input(WallClock timestamp, const ControllerState& state);
208+
209+
210+
private:
211+
struct Data;
212+
Pimpl<Data> m_data;
201213
};
202214

203215

SerialPrograms/Source/Controllers/KeyboardInput/KeyboardEventHandler.cpp

Lines changed: 0 additions & 46 deletions
This file was deleted.

SerialPrograms/Source/Controllers/KeyboardInput/KeyboardEventHandler.h

Lines changed: 0 additions & 45 deletions
This file was deleted.

SerialPrograms/Source/Controllers/StandardHid/StandardHid_Keyboard.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ void Keyboard::run_controller_input(const ControllerInputState& state){
129129
std::vector<KeyboardKey>(lstate.keys().begin(), lstate.keys().end())
130130
);
131131

132-
// m_data->m_input_sniffer.report_keyboard_command_sent(timestamp, controller_state);
132+
// on_command_input(timestamp, controller_state);
133133
}
134134

135135

SerialPrograms/Source/NintendoSwitch/Controllers/Joycon/NintendoSwitch_Joycon.cpp

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ const char RightJoycon::NAME[] = "Nintendo Switch: Right Joycon";
3838

3939
struct JoyconController::Data{
4040
std::map<KeyboardKey, JoyconDeltas> m_keyboard_mapping;
41-
KeyboardEventHandler m_input_sniffer;
4241
};
4342

4443

@@ -95,14 +94,7 @@ void JoyconController::run_controller_input(const ControllerInputState& state){
9594
controller_state.joystick_y
9695
);
9796

98-
m_data->m_input_sniffer.report_keyboard_command_sent(timestamp, controller_state);
99-
}
100-
101-
void JoyconController::add_input_sniffer(KeyboardEventHandler::KeyboardListener& listener){
102-
m_data->m_input_sniffer.add_listener(listener);
103-
}
104-
void JoyconController::remove_input_sniffer(KeyboardEventHandler::KeyboardListener& listener){
105-
m_data->m_input_sniffer.remove_listener(listener);
97+
on_command_input(timestamp, controller_state);
10698
}
10799

108100

SerialPrograms/Source/NintendoSwitch/Controllers/Joycon/NintendoSwitch_Joycon.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,9 +168,6 @@ class JoyconController : public AbstractController{
168168

169169
virtual void run_controller_input(const ControllerInputState& state) override;
170170

171-
virtual void add_input_sniffer(KeyboardEventHandler::KeyboardListener& listener) override;
172-
virtual void remove_input_sniffer(KeyboardEventHandler::KeyboardListener& listener) override;
173-
174171

175172
private:
176173
struct Data;

SerialPrograms/Source/NintendoSwitch/Controllers/Procon/NintendoSwitch_ProController.cpp

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ const char ProController::NAME[] = "Nintendo Switch: Pro Controller";
3737

3838
struct ProController::Data{
3939
std::map<KeyboardKey, ProControllerDeltas> m_keyboard_mapping;
40-
KeyboardEventHandler m_input_sniffer;
4140
};
4241

4342

@@ -100,14 +99,7 @@ void ProController::run_controller_input(const ControllerInputState& state){
10099
controller_state.right_y
101100
);
102101

103-
m_data->m_input_sniffer.report_keyboard_command_sent(timestamp, controller_state);
104-
}
105-
106-
void ProController::add_input_sniffer(KeyboardEventHandler::KeyboardListener& listener){
107-
m_data->m_input_sniffer.add_listener(listener);
108-
}
109-
void ProController::remove_input_sniffer(KeyboardEventHandler::KeyboardListener& listener){
110-
m_data->m_input_sniffer.remove_listener(listener);
102+
on_command_input(timestamp, controller_state);
111103
}
112104

113105

SerialPrograms/Source/NintendoSwitch/Controllers/Procon/NintendoSwitch_ProController.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,6 @@ class ProController : public AbstractController{
223223

224224
virtual void run_controller_input(const ControllerInputState& state) override;
225225

226-
virtual void add_input_sniffer(KeyboardEventHandler::KeyboardListener& listener) override;
227-
virtual void remove_input_sniffer(KeyboardEventHandler::KeyboardListener& listener) override;
228226

229227
private:
230228
struct Data;

SerialPrograms/Source/NintendoSwitch/Programs/NintendoSwitch_RecordKeyboardController.cpp

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -338,28 +338,19 @@ JsonValue RecordKeyboardController::controller_history_to_json(Logger& logger, C
338338
}
339339

340340

341-
void RecordKeyboardController::on_keyboard_command_sent(WallClock time_stamp, const ControllerState& state){
341+
void RecordKeyboardController::on_command_input(WallClock timestamp, const ControllerState& state){
342342
cout << "keyboard_command_sent" << endl;
343343
JsonValue serialized_state = state.to_json();
344344
cout << serialized_state.dump(0) << endl;
345-
345+
346346
ControllerStateSnapshot state_snapshot = {
347-
time_stamp,
347+
timestamp,
348348
std::move(serialized_state)
349349
};
350350
m_controller_history.emplace_back(std::move(state_snapshot));
351351
}
352-
void RecordKeyboardController::on_keyboard_command_stopped(WallClock time_stamp){
353-
cout << "keyboard_command_stopped" << endl;
354-
JsonObject obj;
355-
// obj["is_neutral"] = true;
356352

357-
ControllerStateSnapshot state_snapshot = {
358-
time_stamp,
359-
std::move(obj)
360-
};
361-
m_controller_history.emplace_back(std::move(state_snapshot));
362-
}
353+
363354

364355

365356

0 commit comments

Comments
 (0)