Added HangmanGame class, but does not work yet
Dependencies: SDFileSystem app epson mbed msp430 pl tests
pagetouch.cpp
- Committer:
- markpsymonds
- Date:
- 2017-12-04
- Revision:
- 1:a5ec6f9dcf0d
- Parent:
- 0:fa7450a43b99
File content as of revision 1:a5ec6f9dcf0d:
// // Filename: pagetouch.cpp // // Flexbook page for page A4. // #include "pagetouch.h" #include "pageflexenable.h" #include "log.h" #include <iostream> namespace Flexbook { PageTouch::PageTouch() : pageflexenable(), i2c(p28, p27), irq(p26), at42qt2120(i2c), key(0) { Log("Creating PageTouch"); at42qt2120.SetSliderOptions(HAL::WHEEL); at42qt2120.SetKeyControl(1, false, 2, false, true); at42qt2120.SetKeyControl(2, false, 2, false, true); at42qt2120.SetKeyControl(3, false, 2, false, true); at42qt2120.SetKeyControl(5, false, 1, false, true); at42qt2120.SetKeyControl(6, false, 1, false, true); at42qt2120.SetKeyControl(7, false, 1, false, true); at42qt2120.SetKeyControl(8, false, 1, false, true); at42qt2120.SetKeyControl(9, false, 1, false, true); at42qt2120.SetKeyControl(10, false, 1, false, true); irq.fall(callback(this, &Flexbook::PageTouch::TouchChange)); newtouch = false; imgnumber = 0; #ifdef VERBOSE for(int n = 0; n < 99; n++) printf("Register %03d %02x\n", n, at42qt2120.Read((HAL::REG_AT42QT2120) n)); #endif } PageTouch::~PageTouch() { Log("Deleting PageTouch"); irq.disable_irq(); } void PageTouch::TouchChange() { static volatile bool inirq = false; if(!inirq) { inirq = true; Page::ShortBeep(); HAL::AT42QT2120::Status status; if(at42qt2120.ReadStatus(status)) { if(status.keyschanged) { key = status.keys; if(status.keys & HAL::KEY0) Log("Key 0"); if(status.keys & HAL::KEY1) Log("Key 1"); if(status.keys & HAL::KEY2) Log("Key 2"); if(status.keys & HAL::KEY3) Log("Key 3"); if(status.keys & HAL::KEY4) Log("Key 4"); if(status.keys & HAL::KEY5) Log("Key 5"); if(status.keys & HAL::KEY6) { Log("Key 6"); if (imgnumber < 8) imgnumber = imgnumber + 1; printf("%i \n", imgnumber); pageflexenable.numimage = imgnumber; Log("number set"); //pageflexenable.UpdateImage(); Log("image updated"); } if(status.keys & HAL::KEY7) Log("Key 7"); if(status.keys & HAL::KEY8) Log("Key 8"); if(status.keys & HAL::KEY9) { Log("Key 9"); if (imgnumber > 0) imgnumber = imgnumber - 1; printf("%i \n", imgnumber); pageflexenable.numimage = imgnumber; Log("number set"); //pageflexenable.UpdateImage(); Log("image updated"); } if(status.keys & HAL::KEY10) Log("Key 10"); if(status.keys & HAL::KEY11) Log("Key 11"); } if(status.sliderchanged) { printf("Slider/wheel: %x\n", status.slider); } } inirq = false; } } int PageTouch::GetKey() { int outkey = key; key = 0; return outkey; } /* void PageTouch::HandlePageActions() { if (newtouch) { printf("%i \n", imgnumber); pageflexenable.numimage = imgnumber; //pageflexenable.UpdateImage(); newtouch = false; } } */ } // End Flexbook namespace.