sr_packet_copy: Support SR_DF_ANALOG2.
This commit is contained in:
parent
7d65dd3a86
commit
dbdfa4fb50
|
@ -1248,6 +1248,8 @@ SR_PRIV int sr_packet_copy(const struct sr_datafeed_packet *packet,
|
|||
struct sr_datafeed_logic *logic_copy;
|
||||
const struct sr_datafeed_analog *analog;
|
||||
struct sr_datafeed_analog *analog_copy;
|
||||
const struct sr_datafeed_analog2 *analog2;
|
||||
struct sr_datafeed_analog2 *analog2_copy;
|
||||
uint8_t *payload;
|
||||
|
||||
*copy = g_malloc0(sizeof(struct sr_datafeed_packet));
|
||||
|
@ -1290,6 +1292,24 @@ SR_PRIV int sr_packet_copy(const struct sr_datafeed_packet *packet,
|
|||
analog->num_samples * sizeof(float));
|
||||
(*copy)->payload = analog_copy;
|
||||
break;
|
||||
case SR_DF_ANALOG2:
|
||||
analog2 = packet->payload;
|
||||
analog2_copy = g_malloc(sizeof(analog2));
|
||||
analog2_copy->data = g_malloc(
|
||||
analog2->encoding->unitsize * analog2->num_samples);
|
||||
memcpy(analog2_copy->data, analog2->data,
|
||||
analog2->encoding->unitsize * analog2->num_samples);
|
||||
analog2_copy->num_samples = analog2->num_samples;
|
||||
analog2_copy->encoding = g_memdup(analog2->encoding,
|
||||
sizeof(struct sr_analog_encoding));
|
||||
analog2_copy->meaning = g_memdup(analog2->meaning,
|
||||
sizeof(struct sr_analog_meaning));
|
||||
analog2_copy->meaning->channels = g_slist_copy(
|
||||
analog2->meaning->channels);
|
||||
analog2_copy->spec = g_memdup(analog2->spec,
|
||||
sizeof(struct sr_analog_spec));
|
||||
(*copy)->payload = analog2_copy;
|
||||
break;
|
||||
default:
|
||||
sr_err("Unknown packet type %d", packet->type);
|
||||
return SR_ERR;
|
||||
|
|
Loading…
Reference in New Issue