MCPcopy Index your code
hub / github.com/DreamSourceLab/DSView / data_feed_in

Method data_feed_in

DSView/pv/sigsession.cpp:1380–1478  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1378 }
1379
1380 void SigSession::data_feed_in(const struct sr_dev_inst *sdi,
1381 const struct sr_datafeed_packet *packet)
1382 {
1383 assert(sdi);
1384 assert(packet);
1385
1386 ds_lock_guard lock(_data_mutex);
1387
1388 if (_data_lock && packet->type != SR_DF_END)
1389 return;
1390
1391 if (packet->type != SR_DF_END &&
1392 packet->status != SR_PKT_OK)
1393 {
1394 _error = Pkt_data_err;
1395 _callback->session_error();
1396 return;
1397 }
1398
1399 switch (packet->type)
1400 {
1401 case SR_DF_HEADER:
1402 feed_in_header(sdi);
1403 break;
1404
1405 case SR_DF_META:
1406 assert(packet->payload);
1407 feed_in_meta(sdi,
1408 *(const sr_datafeed_meta *)packet->payload);
1409 break;
1410
1411 case SR_DF_TRIGGER:
1412 assert(packet->payload);
1413 feed_in_trigger(*(const ds_trigger_pos *)packet->payload);
1414 break;
1415
1416 case SR_DF_LOGIC:
1417 assert(packet->payload);
1418 feed_in_logic(*(const sr_datafeed_logic *)packet->payload);
1419 break;
1420
1421 case SR_DF_DSO:
1422 assert(packet->payload);
1423 feed_in_dso(*(const sr_datafeed_dso *)packet->payload);
1424 break;
1425
1426 case SR_DF_ANALOG:
1427 assert(packet->payload);
1428 feed_in_analog(*(const sr_datafeed_analog *)packet->payload);
1429 break;
1430
1431 case SR_DF_OVERFLOW:
1432 {
1433 if (_error == No_err)
1434 {
1435 _error = Data_overflow;
1436 _callback->session_error();
1437 }

Callers 1

data_feed_callbackMethod · 0.80

Calls 9

session_errorMethod · 0.80
get_logicMethod · 0.80
get_dsoMethod · 0.80
get_analogMethod · 0.80
get_work_modeMethod · 0.80
trigger_messageMethod · 0.80
get_device_statusMethod · 0.80
capture_endedMethod · 0.45
frame_endedMethod · 0.45

Tested by

no test coverage detected