- packet.length = ret;
- packet.unitsize = vdevice->unitsize;
- packet.payload = buf;
- sr_session_bus(user_data, &packet);
+ sample_period_ps = 1000000000000 / vdevice->samplerate;
+ packet.timeoffset = sample_period_ps * (vdevice->bytes_read / vdevice->unitsize);
+ packet.duration = sample_period_ps * (ret / vdevice->unitsize);
+ packet.payload = &logic;
+ logic.length = ret;
+ logic.unitsize = vdevice->unitsize;
+ logic.data = buf;
+ vdevice->bytes_read += ret;
+ sr_session_bus(session_data, &packet);