@@ -37,17 +37,20 @@ class Ticker
37
37
38
38
void attach_scheduled (float seconds, callback_function_t callback)
39
39
{
40
- attach (seconds, [callback]() { schedule_function (callback); });
40
+ _callback_function = [callback]() { schedule_function (callback); };
41
+ _attach_ms (1000UL * seconds, true , _static_callback, this );
41
42
}
42
43
43
44
void attach (float seconds, callback_function_t callback)
44
45
{
45
- attach_ms (1000UL * seconds, callback);
46
+ _callback_function = std::move (callback);
47
+ _attach_ms (1000UL * seconds, true , _static_callback, this );
46
48
}
47
49
48
50
void attach_ms_scheduled (uint32_t milliseconds, callback_function_t callback)
49
51
{
50
- attach_ms (milliseconds, [callback]() { schedule_function (callback); });
52
+ _callback_function = [callback]() { schedule_function (callback); };
53
+ _attach_ms (milliseconds, true , _static_callback, this );
51
54
}
52
55
53
56
void attach_ms (uint32_t milliseconds, callback_function_t callback)
@@ -60,7 +63,7 @@ class Ticker
60
63
void attach (float seconds, void (*callback)(TArg), TArg arg)
61
64
{
62
65
static_assert (sizeof (TArg) <= sizeof (void *), " attach() callback argument size must be <= sizeof(void*)" );
63
- attach_ms (1000UL * seconds, callback, arg);
66
+ _attach_ms (1000UL * seconds, true , reinterpret_cast < callback_with_arg_t >( callback), reinterpret_cast < void *>( arg) );
64
67
}
65
68
66
69
template <typename TArg>
@@ -72,17 +75,20 @@ class Ticker
72
75
73
76
void once_scheduled (float seconds, callback_function_t callback)
74
77
{
75
- once (seconds, [callback]() { schedule_function (callback); });
78
+ _callback_function = [callback]() { schedule_function (callback); };
79
+ _attach_ms (1000UL * seconds, false , _static_callback, this );
76
80
}
77
81
78
82
void once (float seconds, callback_function_t callback)
79
83
{
80
- once_ms (1000UL * seconds, callback);
84
+ _callback_function = std::move (callback);
85
+ _attach_ms (1000UL * seconds, false , _static_callback, this );
81
86
}
82
87
83
88
void once_ms_scheduled (uint32_t milliseconds, callback_function_t callback)
84
89
{
85
- once_ms (milliseconds, [callback]() { schedule_function (callback); });
90
+ _callback_function = [callback]() { schedule_function (callback); };
91
+ _attach_ms (milliseconds, false , _static_callback, this );
86
92
}
87
93
88
94
void once_ms (uint32_t milliseconds, callback_function_t callback)
@@ -95,7 +101,7 @@ class Ticker
95
101
void once (float seconds, void (*callback)(TArg), TArg arg)
96
102
{
97
103
static_assert (sizeof (TArg) <= sizeof (void *), " attach() callback argument size must be <= sizeof(void*)" );
98
- once_ms (1000UL * seconds, callback, arg);
104
+ _attach_ms (1000UL * seconds, false , reinterpret_cast < callback_with_arg_t >( callback), reinterpret_cast < void *>( arg) );
99
105
}
100
106
101
107
template <typename TArg>
0 commit comments