Skip to content

Commit 37e7893

Browse files
committed
Don't declare ready until after configuring. Add a way to query for tick precision.
1 parent 3b0f2e9 commit 37e7893

File tree

7 files changed

+18
-10
lines changed

7 files changed

+18
-10
lines changed

SerialPrograms/Source/NintendoSwitch/Controllers/NintendoSwitch_ProController.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,9 @@ class ProController::KeyboardManager : public KeyboardInputController{
103103
ProController::~ProController(){
104104

105105
}
106-
ProController::ProController()
107-
: m_keyboard_manager(CONSTRUCT_TOKEN, *this)
106+
ProController::ProController(Milliseconds timing_variation)
107+
: m_timing_variation(timing_variation)
108+
, m_keyboard_manager(CONSTRUCT_TOKEN, *this)
108109
{
109110

110111
}

SerialPrograms/Source/NintendoSwitch/Controllers/NintendoSwitch_ProController.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,14 @@ class ProController : public AbstractController{
7878
using ContextType = ProControllerContext;
7979

8080
virtual ~ProController();
81-
ProController();
81+
ProController(Milliseconds timing_variation);
8282

8383
virtual Logger& logger() = 0;
8484

85+
Milliseconds timing_variation() const{
86+
return m_timing_variation;
87+
}
88+
8589

8690
public:
8791
// General Control
@@ -294,6 +298,8 @@ class ProController : public AbstractController{
294298

295299

296300
private:
301+
const Milliseconds m_timing_variation;
302+
297303
class KeyboardManager;
298304
Pimpl<KeyboardManager> m_keyboard_manager;
299305
};

SerialPrograms/Source/NintendoSwitch/Controllers/NintendoSwitch_ProControllerWithScheduler.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ using namespace std::chrono_literals;
1717

1818

1919

20-
ProControllerWithScheduler::ProControllerWithScheduler(Logger& logger)
21-
: SuperscalarScheduler(
20+
ProControllerWithScheduler::ProControllerWithScheduler(Logger& logger, Milliseconds timing_variation)
21+
: ProController(timing_variation)
22+
, SuperscalarScheduler(
2223
logger, Milliseconds(4),
2324
{
2425
&m_buttons[ 0],

SerialPrograms/Source/NintendoSwitch/Controllers/NintendoSwitch_ProControllerWithScheduler.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class ProControllerWithScheduler :
4747
protected SuperscalarScheduler
4848
{
4949
public:
50-
ProControllerWithScheduler(Logger& logger);
50+
ProControllerWithScheduler(Logger& logger, Milliseconds timing_variation);
5151

5252
virtual Logger& logger() override{
5353
return m_logger;

SerialPrograms/Source/NintendoSwitch/Controllers/NintendoSwitch_ProController_SerialPABotBase.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ ProController_SerialPABotBase::ProController_SerialPABotBase(
3535
SerialPABotBase::SerialPABotBase_Connection& connection,
3636
const ControllerRequirements& requirements
3737
)
38-
: ProControllerWithScheduler(logger)
38+
: ProControllerWithScheduler(logger, 0ms)
3939
, m_handle(connection)
4040
, m_serial(connection.botbase())
4141
{

SerialPrograms/Source/NintendoSwitch/Controllers/SysbotBase/SysbotBase_Connection.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,11 @@ void SysbotBaseNetwork_Connection::thread_body_internal(){
174174
m_logger.log(message + " (Success)", COLOR_BLUE);
175175
set_status(html_color_text("Connected!", COLOR_BLUE));
176176

177-
declare_ready(supported_controllers());
178-
179177
m_socket->write("configure mainLoopSleepTime 0\n");
180178
m_socket->flush();
181179

180+
declare_ready(supported_controllers());
181+
182182
//
183183
// This is stupid. Since we cannot block the constructor of this class to
184184
// wait for the connection, we spawn this thread to do the connection.

SerialPrograms/Source/NintendoSwitch/Controllers/SysbotBase/SysbotBase_ProController.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ ProController_SysbotBase::ProController_SysbotBase(
2626
SysbotBase::SysbotBaseNetwork_Connection& connection,
2727
const ControllerRequirements& requirements
2828
)
29-
: ProControllerWithScheduler(logger)
29+
: ProControllerWithScheduler(logger, std::chrono::milliseconds(40))
3030
, m_connection(connection)
3131
, m_stopping(false)
3232
, m_replace_on_next(false)

0 commit comments

Comments
 (0)