X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=filter.c;h=80cef6abc47fc67f0f546148f85993a9a851f3e9;hb=e48846b1d211ce88e5ad427c034e0a2fb43bbe37;hp=d51471b285e2841dc34223702839e328767c445f;hpb=fdebec21082fdc7bb2642e717565bdbc8b98f287;p=libsigrok.git diff --git a/filter.c b/filter.c index d51471b2..80cef6ab 100644 --- a/filter.c +++ b/filter.c @@ -22,21 +22,32 @@ #include #include -/* +/** + * Remove unused probes from samples. + * * Convert sample from maximum probes -- the way the hardware driver sent * it -- to a sample taking up only as much space as required, with * unused probes removed. + * + * @param in_unitsize The unit size of the input (data_in). + * @param out_unitsize The unit size of the output (data_out). + * @param probelist Pointer to a list of integers (probe numbers). + * @param data_in The input data. + * @param length_in The input data length. + * @param data_out The output data. + * @param length_out The output data length. + * @return SR_OK upon success, SR_ERR_MALLOC upon memory allocation errors. */ -int filter_probes(int in_unitsize, int out_unitsize, int *probelist, - char *data_in, uint64_t length_in, char **data_out, - uint64_t *length_out) +int sr_filter_probes(int in_unitsize, int out_unitsize, int *probelist, + const unsigned char *data_in, uint64_t length_in, + char **data_out, uint64_t *length_out) { unsigned int in_offset, out_offset; int num_enabled_probes, out_bit, i; uint64_t sample_in, sample_out; if (!(*data_out = malloc(length_in))) - return SIGROK_ERR_MALLOC; + return SR_ERR_MALLOC; num_enabled_probes = 0; for (i = 0; probelist[i]; i++) @@ -46,7 +57,7 @@ int filter_probes(int in_unitsize, int out_unitsize, int *probelist, /* All probes are used -- no need to compress anything. */ memcpy(*data_out, data_in, length_in); *length_out = length_in; - return SIGROK_OK; + return SR_OK; } /* If we reached this point, not all probes are used, so "compress". */ @@ -65,5 +76,5 @@ int filter_probes(int in_unitsize, int out_unitsize, int *probelist, } *length_out = out_offset; - return SIGROK_OK; + return SR_OK; }