diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-05-30 19:06:05 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-05-30 19:06:05 +0200 |
commit | ed61a16faf025671d9ff751b827980cc44f9f088 (patch) | |
tree | e3bd806be9b0fec8ee931e019793fdc3d248d87a | |
parent | a9aa888729f2564c14b668b19c9433d07d2669b5 (diff) |
use an array for messages
-rw-r--r-- | convert-modeswitch.pl | 16 | ||||
-rw-r--r-- | switch.c | 4 |
2 files changed, 11 insertions, 9 deletions
diff --git a/convert-modeswitch.pl b/convert-modeswitch.pl index f7ac9ff..97f1d7b 100644 --- a/convert-modeswitch.pl +++ b/convert-modeswitch.pl @@ -153,12 +153,13 @@ sub dev_opt { my @val = @$val; undef $val; foreach my $elem (@val) { + my $json = json_val($elem, $type); + next unless defined $json; if (defined $val) { - $val = "$val, " + $val = "$val, $json" } else { - $val = ""; + $val = $json; } - $val .= json_val($elem, $type); } $val = "[ $val ]"; } else { @@ -205,9 +206,12 @@ foreach my $devid (sort keys %devices) { dev_opt($cur->{Mode}, "mode", "string", \$sep); dev_opt($cur->{NoDriverLoading}, "no_driver", "bool", \$sep); dev_opt($cur->{MessageEndpoint}, "msg_endpoint", "int", \$sep); - dev_opt($cur->{MessageContent}, "msg", "int", \$sep); - dev_opt($cur->{MessageContent2}, "msg2", "int", \$sep); - dev_opt($cur->{MessageContent3}, "msg3", "int", \$sep); + my $msg = [ + $cur->{MessageContent}, + $cur->{MessageContent2}, + $cur->{MessageContent3} + ]; + dev_opt($msg, "msg", "array:int", \$sep); dev_opt($cur->{WaitBefore}, "wait", "int", \$sep); dev_opt($cur->{ReleaseDelay}, "release_delay", "int", \$sep); dev_opt($cur->{NeedResponse}, "response", "bool", \$sep); @@ -84,9 +84,7 @@ void handle_switch(struct usbdev_data *data) { static const struct blobmsg_policy data_policy[__DATA_MAX] = { [DATA_MODE] = { .name = "mode", .type = BLOBMSG_TYPE_STRING }, - [DATA_MSG] = { .name = "msg", .type = BLOBMSG_TYPE_INT32 }, - [DATA_MSG2] = { .name = "msg2", .type = BLOBMSG_TYPE_INT32 }, - [DATA_MSG3] = { .name = "msg3", .type = BLOBMSG_TYPE_INT32 }, + [DATA_MSG] = { .name = "msg", .type = BLOBMSG_TYPE_ARRAY }, }; struct blob_attr *tb[__DATA_MAX]; int mode = MODE_GENERIC; |