transform/invert: Support SR_DF_ANALOG2.

This commit is contained in:
Martin Ling 2015-09-09 23:57:18 +01:00 committed by Uwe Hermann
parent b1aa4f34bc
commit 0662a7d083
1 changed files with 12 additions and 1 deletions

View File

@ -31,12 +31,14 @@ static int receive(const struct sr_transform *t,
{ {
const struct sr_datafeed_logic *logic; const struct sr_datafeed_logic *logic;
const struct sr_datafeed_analog *analog; const struct sr_datafeed_analog *analog;
const struct sr_datafeed_analog2 *analog2;
struct sr_channel *ch; struct sr_channel *ch;
GSList *l; GSList *l;
float *fdata, *f; float *fdata, *f;
int si, num_channels, c; int si, num_channels, c;
uint8_t *b; uint8_t *b;
uint64_t i, j; int64_t p;
uint64_t i, j, q;
if (!t || !t->sdi || !packet_in || !packet_out) if (!t || !t->sdi || !packet_in || !packet_out)
return SR_ERR_ARG; return SR_ERR_ARG;
@ -66,6 +68,15 @@ static int receive(const struct sr_transform *t,
} }
} }
break; break;
case SR_DF_ANALOG2:
analog2 = packet_in->payload;
p = analog2->encoding->scale.p;
q = analog2->encoding->scale.q;
if (q > INT64_MAX)
return SR_ERR;
analog2->encoding->scale.p = (p < 0) ? -q : q;
analog2->encoding->scale.q = (p < 0) ? -p : p;
break;
default: default:
sr_spew("Unsupported packet type %d, ignoring.", packet_in->type); sr_spew("Unsupported packet type %d, ignoring.", packet_in->type);
break; break;