mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-30 00:00:11 +01:00
sample: add sample_data_{insert, remove}()
This commit is contained in:
parent
3f6ddaa653
commit
c906143338
2 changed files with 21 additions and 0 deletions
|
@ -136,6 +136,10 @@ int sample_decref_many(struct sample *smps[], int cnt);
|
||||||
|
|
||||||
enum signal_type sample_format(const struct sample *s, unsigned idx);
|
enum signal_type sample_format(const struct sample *s, unsigned idx);
|
||||||
|
|
||||||
|
void sample_data_insert(struct sample *smp, const union signal_data *src, size_t offset, size_t len);
|
||||||
|
|
||||||
|
void sample_data_remove(struct sample *smp, size_t offset, size_t len);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
17
lib/sample.c
17
lib/sample.c
|
@ -301,3 +301,20 @@ void sample_dump(struct sample *s)
|
||||||
if (s->signals)
|
if (s->signals)
|
||||||
signal_list_dump(s->signals, s->data, s->length);
|
signal_list_dump(s->signals, s->data, s->length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sample_data_insert(struct sample *smp, const union signal_data *src, size_t offset, size_t len)
|
||||||
|
{
|
||||||
|
memmove(&smp->data[offset + len], &smp->data[offset], sizeof(smp->data[0]) * (smp->length - offset));
|
||||||
|
memcpy(&smp->data[offset], src, sizeof(smp->data[0]) * len);
|
||||||
|
|
||||||
|
smp->length += len;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sample_data_remove(struct sample *smp, size_t offset, size_t len)
|
||||||
|
{
|
||||||
|
size_t sz = sizeof(smp->data[0]) * len;
|
||||||
|
|
||||||
|
memmove(&smp->data[offset], &smp->data[offset + len], sz);
|
||||||
|
|
||||||
|
smp->length -= len;
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue