![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Usb Device Interface, protocol, and programming homework #4 Audio Control device
Dependencies: C12832_lcd USBDevice mbed
MyDisplayClass.cpp@1:948ffad3284f, 2013-07-31 (annotated)
- Committer:
- jakowisp
- Date:
- Wed Jul 31 22:20:00 2013 +0000
- Revision:
- 1:948ffad3284f
- Parent:
- 0:69eb9d19fb91
- Child:
- 3:6da430f4818a
Instructor requested publish of HW#4
;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jakowisp | 0:69eb9d19fb91 | 1 | #include "MyDisplayClass.h" |
jakowisp | 0:69eb9d19fb91 | 2 | |
jakowisp | 0:69eb9d19fb91 | 3 | MyDisplayClass::MyDisplayClass(){ |
jakowisp | 0:69eb9d19fb91 | 4 | lcd=new C12832_LCD(); |
jakowisp | 0:69eb9d19fb91 | 5 | volume=new bargraph(lcd,32); |
jakowisp | 1:948ffad3284f | 6 | volumeDisplayEnable=false; |
jakowisp | 1:948ffad3284f | 7 | graphicModeEnable=false; |
jakowisp | 0:69eb9d19fb91 | 8 | } |
jakowisp | 0:69eb9d19fb91 | 9 | |
jakowisp | 0:69eb9d19fb91 | 10 | void MyDisplayClass::drawNoConnection(C12832_LCD *lcd) { |
jakowisp | 0:69eb9d19fb91 | 11 | lcd->fillrect(0, 31, 15,16, 0); |
jakowisp | 0:69eb9d19fb91 | 12 | lcd->rect(0, 31, 15,16, 1); |
jakowisp | 0:69eb9d19fb91 | 13 | lcd->line(2,29,13,18,1); |
jakowisp | 0:69eb9d19fb91 | 14 | lcd->circle(7,24,4,1); |
jakowisp | 0:69eb9d19fb91 | 15 | } |
jakowisp | 0:69eb9d19fb91 | 16 | |
jakowisp | 0:69eb9d19fb91 | 17 | void MyDisplayClass::drawConnection(C12832_LCD *lcd) { |
jakowisp | 0:69eb9d19fb91 | 18 | lcd->fillrect(0, 31, 15,16, 0); |
jakowisp | 0:69eb9d19fb91 | 19 | lcd->rect(0, 31, 15,16, 1); |
jakowisp | 0:69eb9d19fb91 | 20 | lcd->rect(5,26,10,21,1); |
jakowisp | 0:69eb9d19fb91 | 21 | lcd->line(6,23,7,25,1); |
jakowisp | 0:69eb9d19fb91 | 22 | lcd->line(7,25,14,17,1); |
jakowisp | 0:69eb9d19fb91 | 23 | } |
jakowisp | 0:69eb9d19fb91 | 24 | |
jakowisp | 0:69eb9d19fb91 | 25 | void MyDisplayClass::drawSuspend(C12832_LCD *lcd) { |
jakowisp | 0:69eb9d19fb91 | 26 | lcd->fillrect(0, 31, 15,16, 0); |
jakowisp | 0:69eb9d19fb91 | 27 | lcd->rect(0, 31, 15,16, 1); |
jakowisp | 0:69eb9d19fb91 | 28 | lcd->line(4,20,11,20,1); |
jakowisp | 0:69eb9d19fb91 | 29 | lcd->line(4,27,11,20,1); |
jakowisp | 0:69eb9d19fb91 | 30 | lcd->line(4,27,11,27,1); |
jakowisp | 0:69eb9d19fb91 | 31 | } |
jakowisp | 0:69eb9d19fb91 | 32 | |
jakowisp | 0:69eb9d19fb91 | 33 | void MyDisplayClass::setLevel(int level){ |
jakowisp | 0:69eb9d19fb91 | 34 | volume->setLevel(level); |
jakowisp | 0:69eb9d19fb91 | 35 | } |
jakowisp | 0:69eb9d19fb91 | 36 | |
jakowisp | 0:69eb9d19fb91 | 37 | void MyDisplayClass::setMaxLevel(int level){ |
jakowisp | 0:69eb9d19fb91 | 38 | volume->setMaxLevel(level); |
jakowisp | 0:69eb9d19fb91 | 39 | } |
jakowisp | 0:69eb9d19fb91 | 40 | |
jakowisp | 0:69eb9d19fb91 | 41 | void MyDisplayClass::UpdateStatus(int state){ |
jakowisp | 0:69eb9d19fb91 | 42 | switch(state) { |
jakowisp | 0:69eb9d19fb91 | 43 | case 2: drawSuspend(lcd); break; |
jakowisp | 0:69eb9d19fb91 | 44 | case 3: drawConnection(lcd); break; |
jakowisp | 0:69eb9d19fb91 | 45 | default: drawNoConnection(lcd); break; |
jakowisp | 0:69eb9d19fb91 | 46 | } |
jakowisp | 0:69eb9d19fb91 | 47 | } |
jakowisp | 0:69eb9d19fb91 | 48 | |
jakowisp | 0:69eb9d19fb91 | 49 | void MyDisplayClass::UpdateTextStatus(int state){ |
jakowisp | 0:69eb9d19fb91 | 50 | |
jakowisp | 0:69eb9d19fb91 | 51 | lcd->locate(3,12); |
jakowisp | 0:69eb9d19fb91 | 52 | lcd->printf(" "); |
jakowisp | 0:69eb9d19fb91 | 53 | lcd->locate(3,12); |
jakowisp | 0:69eb9d19fb91 | 54 | switch(state) { |
jakowisp | 0:69eb9d19fb91 | 55 | case 2: lcd->printf("Suspended"); break; |
jakowisp | 0:69eb9d19fb91 | 56 | case 3: lcd->printf("Normal"); break; |
jakowisp | 0:69eb9d19fb91 | 57 | default: lcd->printf("Offline"); break; |
jakowisp | 0:69eb9d19fb91 | 58 | } |
jakowisp | 0:69eb9d19fb91 | 59 | |
jakowisp | 0:69eb9d19fb91 | 60 | } |
jakowisp | 0:69eb9d19fb91 | 61 | |
jakowisp | 1:948ffad3284f | 62 | void MyDisplayClass::update(int state){ |
jakowisp | 1:948ffad3284f | 63 | if(volumeDisplayEnable) |
jakowisp | 1:948ffad3284f | 64 | if(graphicModeEnable) { |
jakowisp | 0:69eb9d19fb91 | 65 | volume->updateBargraph(); |
jakowisp | 0:69eb9d19fb91 | 66 | } else { |
jakowisp | 0:69eb9d19fb91 | 67 | lcd->locate(3,3); |
jakowisp | 0:69eb9d19fb91 | 68 | lcd->printf("Volume: %2d",volume->level); |
jakowisp | 0:69eb9d19fb91 | 69 | } |
jakowisp | 0:69eb9d19fb91 | 70 | |
jakowisp | 1:948ffad3284f | 71 | if(graphicModeEnable) |
jakowisp | 0:69eb9d19fb91 | 72 | UpdateStatus(state); |
jakowisp | 0:69eb9d19fb91 | 73 | else |
jakowisp | 0:69eb9d19fb91 | 74 | UpdateTextStatus(state); |
jakowisp | 0:69eb9d19fb91 | 75 | } |