Usb Device Interface, protocol, and programming homework #4 Audio Control device

Dependencies:   C12832_lcd USBDevice mbed

Committer:
jakowisp
Date:
Tue Jul 30 22:35:10 2013 +0000
Revision:
0:69eb9d19fb91
Child:
1:948ffad3284f
AudioControl Finctional
;

Who changed what in which revision?

UserRevisionLine numberNew 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 0:69eb9d19fb91 6 }
jakowisp 0:69eb9d19fb91 7
jakowisp 0:69eb9d19fb91 8 void MyDisplayClass::drawNoConnection(C12832_LCD *lcd) {
jakowisp 0:69eb9d19fb91 9 lcd->fillrect(0, 31, 15,16, 0);
jakowisp 0:69eb9d19fb91 10 lcd->rect(0, 31, 15,16, 1);
jakowisp 0:69eb9d19fb91 11 lcd->line(2,29,13,18,1);
jakowisp 0:69eb9d19fb91 12 lcd->circle(7,24,4,1);
jakowisp 0:69eb9d19fb91 13 }
jakowisp 0:69eb9d19fb91 14
jakowisp 0:69eb9d19fb91 15 void MyDisplayClass::drawConnection(C12832_LCD *lcd) {
jakowisp 0:69eb9d19fb91 16 lcd->fillrect(0, 31, 15,16, 0);
jakowisp 0:69eb9d19fb91 17 lcd->rect(0, 31, 15,16, 1);
jakowisp 0:69eb9d19fb91 18 lcd->rect(5,26,10,21,1);
jakowisp 0:69eb9d19fb91 19 lcd->line(6,23,7,25,1);
jakowisp 0:69eb9d19fb91 20 lcd->line(7,25,14,17,1);
jakowisp 0:69eb9d19fb91 21 }
jakowisp 0:69eb9d19fb91 22
jakowisp 0:69eb9d19fb91 23 void MyDisplayClass::drawSuspend(C12832_LCD *lcd) {
jakowisp 0:69eb9d19fb91 24 lcd->fillrect(0, 31, 15,16, 0);
jakowisp 0:69eb9d19fb91 25 lcd->rect(0, 31, 15,16, 1);
jakowisp 0:69eb9d19fb91 26 lcd->line(4,20,11,20,1);
jakowisp 0:69eb9d19fb91 27 lcd->line(4,27,11,20,1);
jakowisp 0:69eb9d19fb91 28 lcd->line(4,27,11,27,1);
jakowisp 0:69eb9d19fb91 29 }
jakowisp 0:69eb9d19fb91 30
jakowisp 0:69eb9d19fb91 31 void MyDisplayClass::setLevel(int level){
jakowisp 0:69eb9d19fb91 32 volume->setLevel(level);
jakowisp 0:69eb9d19fb91 33 }
jakowisp 0:69eb9d19fb91 34
jakowisp 0:69eb9d19fb91 35 void MyDisplayClass::setMaxLevel(int level){
jakowisp 0:69eb9d19fb91 36 volume->setMaxLevel(level);
jakowisp 0:69eb9d19fb91 37 }
jakowisp 0:69eb9d19fb91 38
jakowisp 0:69eb9d19fb91 39 void MyDisplayClass::UpdateStatus(int state){
jakowisp 0:69eb9d19fb91 40 switch(state) {
jakowisp 0:69eb9d19fb91 41 case 2: drawSuspend(lcd); break;
jakowisp 0:69eb9d19fb91 42 case 3: drawConnection(lcd); break;
jakowisp 0:69eb9d19fb91 43 default: drawNoConnection(lcd); break;
jakowisp 0:69eb9d19fb91 44 }
jakowisp 0:69eb9d19fb91 45 }
jakowisp 0:69eb9d19fb91 46
jakowisp 0:69eb9d19fb91 47 void MyDisplayClass::UpdateTextStatus(int state){
jakowisp 0:69eb9d19fb91 48
jakowisp 0:69eb9d19fb91 49 lcd->locate(3,12);
jakowisp 0:69eb9d19fb91 50 lcd->printf(" ");
jakowisp 0:69eb9d19fb91 51 lcd->locate(3,12);
jakowisp 0:69eb9d19fb91 52 switch(state) {
jakowisp 0:69eb9d19fb91 53 case 2: lcd->printf("Suspended"); break;
jakowisp 0:69eb9d19fb91 54 case 3: lcd->printf("Normal"); break;
jakowisp 0:69eb9d19fb91 55 default: lcd->printf("Offline"); break;
jakowisp 0:69eb9d19fb91 56 }
jakowisp 0:69eb9d19fb91 57
jakowisp 0:69eb9d19fb91 58 }
jakowisp 0:69eb9d19fb91 59
jakowisp 0:69eb9d19fb91 60 void MyDisplayClass::update(int state,int features){
jakowisp 0:69eb9d19fb91 61 if((features&0x1) == 0x1)
jakowisp 0:69eb9d19fb91 62 if((features&0x2) == 0x2) {
jakowisp 0:69eb9d19fb91 63 volume->updateBargraph();
jakowisp 0:69eb9d19fb91 64 } else {
jakowisp 0:69eb9d19fb91 65 lcd->locate(3,3);
jakowisp 0:69eb9d19fb91 66 lcd->printf("Volume: %2d",volume->level);
jakowisp 0:69eb9d19fb91 67 }
jakowisp 0:69eb9d19fb91 68
jakowisp 0:69eb9d19fb91 69 if((features&0x2) == 0x2)
jakowisp 0:69eb9d19fb91 70 UpdateStatus(state);
jakowisp 0:69eb9d19fb91 71 else
jakowisp 0:69eb9d19fb91 72 UpdateTextStatus(state);
jakowisp 0:69eb9d19fb91 73 }
jakowisp 0:69eb9d19fb91 74