![](/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
Diff: MyDisplayClass.cpp
- Revision:
- 0:69eb9d19fb91
- Child:
- 1:948ffad3284f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MyDisplayClass.cpp Tue Jul 30 22:35:10 2013 +0000 @@ -0,0 +1,74 @@ +#include "MyDisplayClass.h" + +MyDisplayClass::MyDisplayClass(){ + lcd=new C12832_LCD(); + volume=new bargraph(lcd,32); +} + +void MyDisplayClass::drawNoConnection(C12832_LCD *lcd) { + lcd->fillrect(0, 31, 15,16, 0); + lcd->rect(0, 31, 15,16, 1); + lcd->line(2,29,13,18,1); + lcd->circle(7,24,4,1); +} + +void MyDisplayClass::drawConnection(C12832_LCD *lcd) { + lcd->fillrect(0, 31, 15,16, 0); + lcd->rect(0, 31, 15,16, 1); + lcd->rect(5,26,10,21,1); + lcd->line(6,23,7,25,1); + lcd->line(7,25,14,17,1); +} + +void MyDisplayClass::drawSuspend(C12832_LCD *lcd) { + lcd->fillrect(0, 31, 15,16, 0); + lcd->rect(0, 31, 15,16, 1); + lcd->line(4,20,11,20,1); + lcd->line(4,27,11,20,1); + lcd->line(4,27,11,27,1); +} + +void MyDisplayClass::setLevel(int level){ + volume->setLevel(level); + } + +void MyDisplayClass::setMaxLevel(int level){ + volume->setMaxLevel(level); + } + +void MyDisplayClass::UpdateStatus(int state){ + switch(state) { + case 2: drawSuspend(lcd); break; + case 3: drawConnection(lcd); break; + default: drawNoConnection(lcd); break; + } +} + +void MyDisplayClass::UpdateTextStatus(int state){ + + lcd->locate(3,12); + lcd->printf(" "); + lcd->locate(3,12); + switch(state) { + case 2: lcd->printf("Suspended"); break; + case 3: lcd->printf("Normal"); break; + default: lcd->printf("Offline"); break; + } + +} + +void MyDisplayClass::update(int state,int features){ + if((features&0x1) == 0x1) + if((features&0x2) == 0x2) { + volume->updateBargraph(); + } else { + lcd->locate(3,3); + lcd->printf("Volume: %2d",volume->level); + } + + if((features&0x2) == 0x2) + UpdateStatus(state); + else + UpdateTextStatus(state); +} +