| Index: utility/bmpblk_utility.cc
|
| diff --git a/utility/bmpblk_utility.cc b/utility/bmpblk_utility.cc
|
| index 8605dde046fa4d699197a7d238ef4ea5db69875b..078a5cebbe8fab423e83c3f955fbaeeb5300aae0 100644
|
| --- a/utility/bmpblk_utility.cc
|
| +++ b/utility/bmpblk_utility.cc
|
| @@ -139,6 +139,8 @@ void BmpBlockUtil::parse_first_layer(yaml_parser_t *parser) {
|
| keyword = (char*)event.data.scalar.value;
|
| if (keyword == "bmpblock") {
|
| parse_bmpblock(parser);
|
| + } else if (keyword == "compression") {
|
| + parse_compression(parser);
|
| } else if (keyword == "images") {
|
| parse_images(parser);
|
| } else if (keyword == "screens") {
|
| @@ -174,6 +176,24 @@ void BmpBlockUtil::parse_bmpblock(yaml_parser_t *parser) {
|
| yaml_event_delete(&event);
|
| }
|
|
|
| +void BmpBlockUtil::parse_compression(yaml_parser_t *parser) {
|
| + yaml_event_t event;
|
| + yaml_parser_parse(parser, &event);
|
| + if (event.type != YAML_SCALAR_EVENT) {
|
| + error("Syntax error in parsing bmpblock.\n");
|
| + }
|
| + char *comp_str = (char *)event.data.scalar.value;
|
| + char *e = 0;
|
| + uint32_t comp = (uint32_t)strtoul(comp_str, &e, 0);
|
| + if (!*comp_str || (e && *e) || comp >= MAX_COMPRESS) {
|
| + error("Invalid compression specified in config file\n");
|
| + }
|
| + if (!set_compression_) {
|
| + compression_ = comp;
|
| + }
|
| + yaml_event_delete(&event);
|
| +}
|
| +
|
| void BmpBlockUtil::parse_images(yaml_parser_t *parser) {
|
| yaml_event_t event;
|
| string image_name, image_filename;
|
|
|