diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a007fea --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build/* diff --git a/README.md b/README.md index c289cb9..125c5d5 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Alow you to have a interactive checklist in your 2d or VR cockpit ``` choco install git cmake - choco install mingw --version 8.1.0 + choco install mingw --version 12.2.0 ``` You can also install the same programs manually if you prefer. diff --git a/src/chkl.y b/src/chkl.y index c96afe9..e2c1402 100644 --- a/src/chkl.y +++ b/src/chkl.y @@ -250,6 +250,13 @@ spec_string: coloured_string{ $3->resolve_colours(); $$ = new item_label($1, $3); } + | coloured_string TOKEN_PIPE coloured_string TOKEN_PIPE coloured_string TOKEN_PIPE coloured_string{ + $1->resolve_colours(); + $3->resolve_colours(); + $5->resolve_colours(); + $7->resolve_colours(); + $$ = new item_label($1, $3, $5, $7); + } ; coloured_string : coloured_string coloured_string_element { $2->append($1); diff --git a/src/chkl_parser.h b/src/chkl_parser.h index ecaca34..7776a59 100644 --- a/src/chkl_parser.h +++ b/src/chkl_parser.h @@ -261,15 +261,18 @@ class dataref_dsc : public dataref_t{ class item_label{ friend std::ostream& operator<<(std::ostream &output, const item_label& l); public: + item_label(coloured_string *label_left, coloured_string *label_right, coloured_string *label_left_phonetic, coloured_string *label_right_phonetic); item_label(coloured_string *label_left, coloured_string *label_right); item_label(coloured_string *label_left); - ~item_label(){if(label) delete label; if(suffix) delete suffix;}; + ~item_label(){if(label) delete label; if(suffix) delete suffix;if(label_phonetic) delete label_phonetic; if(suffix_phonetic) delete suffix_phonetic;}; bool getDesc(checklist_item_desc_t &desc); void say_label(); void say_suffix(); private: coloured_string *label; + coloured_string *label_phonetic; coloured_string *suffix; + coloured_string *suffix_phonetic; }; class show_item: public checklist_item{ diff --git a/src/parser.cpp b/src/parser.cpp index 7674ae9..0f54f30 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -574,29 +574,41 @@ bool dataref_dsc::trigered() +item_label::item_label(coloured_string *label_left, coloured_string *label_right, coloured_string *label_left_phonetic, coloured_string *label_right_phonetic) +{ + label = label_left; + label_phonetic = label_left_phonetic; + suffix = label_right; + suffix_phonetic = label_right_phonetic; +} + item_label::item_label(coloured_string *label_left, coloured_string *label_right) { label = label_left; + label_phonetic = label_left; suffix = label_right; + suffix_phonetic = label_right; } item_label::item_label(coloured_string *label_left) { label = label_left; + label_phonetic = label_left; suffix = new coloured_string("CHECK"); + suffix_phonetic = new coloured_string("CHECK"); } void item_label::say_label() { if(voice_state) { - say(label->c_str()); + say(label_phonetic->c_str()); } } void item_label::say_suffix() { if(voice_state) { - say(suffix->c_str()); + say(suffix_phonetic->c_str()); } }