MCPcopy Create free account
hub / github.com/apohl79/audiogridder / run

Method run

Server/Source/ProcessorClient.cpp:265–325  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

263}
264
265void ProcessorClient::run() {
266 traceScope();
267 MessageFactory msgFactory(this);
268
269 bool lastOk = true;
270
271 while (!threadShouldExit()) {
272 if (!isOk()) {
273 if (lastOk) {
274 lastOk = false;
275 if (onStatusChange) {
276 onStatusChange(false, m_error);
277 }
278 }
279 if (!init()) {
280 return;
281 }
282 if (!isOk()) {
283 sleepExitAware(1000);
284 continue;
285 }
286 if (m_loaded) {
287 String err;
288 if (!load(m_lastSettings, m_lastLayout, m_lastMonoChannels, err)) {
289 setAndLogError("reload failed: " + err);
290 }
291 }
292 }
293
294 if (!lastOk) {
295 lastOk = true;
296 if (onStatusChange) {
297 onStatusChange(m_error.isEmpty(), m_error);
298 }
299 }
300
301 TimeStatistic::Timeout timeout(1000);
302 while (timeout.getMillisecondsLeft() > 0 && !threadShouldExit()) {
303 MessageHelper::Error err;
304 auto msg = msgFactory.getNextMessage(m_sockCmdIn.get(), &err, 100);
305 if (nullptr != msg) {
306 switch (msg->getType()) {
307 case Key::Type:
308 handleMessage(Message<Any>::convert<Key>(msg));
309 break;
310 case ParameterValue::Type:
311 handleMessage(Message<Any>::convert<ParameterValue>(msg));
312 break;
313 case ParameterGesture::Type:
314 handleMessage(Message<Any>::convert<ParameterGesture>(msg));
315 break;
316 case ScreenBounds::Type:
317 handleMessage(Message<Any>::convert<ScreenBounds>(msg));
318 break;
319 default:
320 logln("unknown message type " << msg->getType());
321 }
322 }

Callers

nothing calls this directly

Calls 4

getMillisecondsLeftMethod · 0.80
getNextMessageMethod · 0.80
getMethod · 0.45
getTypeMethod · 0.45

Tested by

no test coverage detected