55 void operator()(std::array<float, 2> val)
57 const double msec = msecs.msec();
58 auto it = recorder.vec2_records.find(addr);
59 SCORE_ASSERT(it != recorder.vec2_records.end());
61 const auto& proc_data = it->second;
63 const constexpr std::size_t N = 2;
64 for(std::size_t i = 0; i < N; i++)
66 RecordingPolicy{}(proc_data[i], msecs, msec, val[i]);
70 void operator()(std::array<float, 3> val)
72 const double msec = msecs.msec();
73 auto it = recorder.vec3_records.find(addr);
74 SCORE_ASSERT(it != recorder.vec3_records.end());
76 const auto& proc_data = it->second;
78 const constexpr std::size_t N = 3;
79 for(std::size_t i = 0; i < N; i++)
81 RecordingPolicy{}(proc_data[i], msecs, msec, val[i]);
85 void operator()(std::array<float, 4> val)
87 const double msec = msecs.msec();
88 auto it = recorder.vec4_records.find(addr);
89 SCORE_ASSERT(it != recorder.vec4_records.end());
91 const auto& proc_data = it->second;
93 const constexpr std::size_t N = 4;
94 for(std::size_t i = 0; i < N; i++)
96 RecordingPolicy{}(proc_data[i], msecs, msec, val[i]);
100 void handle_numeric(
float newval)
102 const double msec = msecs.msec();
103 auto it = recorder.numeric_records.find(addr);
104 SCORE_ASSERT(it != recorder.numeric_records.end());
108 RecordingPolicy{}(proc_data, msecs, msec, newval);
111 void operator()(
float f) { handle_numeric(f); }
113 void operator()(
int f) { handle_numeric(f); }
115 void operator()(
char f) { handle_numeric(f); }
117 void operator()(
bool f) { handle_numeric(f); }
119 template <
typename... T>
120 void operator()(
const T&...)