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

Dependencies:   C12832_lcd USBDevice mbed

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?

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 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 }