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

Dependencies:   C12832_lcd USBDevice mbed

Committer:
jakowisp
Date:
Mon Aug 05 02:02:58 2013 +0000
Revision:
3:6da430f4818a
Parent:
1:948ffad3284f
Fixed several known issues to complete the assignment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jakowisp 0:69eb9d19fb91 1 #include "MyDisplayClass.h"
jakowisp 3:6da430f4818a 2 //Constructor
jakowisp 0:69eb9d19fb91 3 MyDisplayClass::MyDisplayClass(){
jakowisp 3:6da430f4818a 4 //Create a new LCD instance
jakowisp 0:69eb9d19fb91 5 lcd=new C12832_LCD();
jakowisp 3:6da430f4818a 6 //Create a new bargraph instance
jakowisp 0:69eb9d19fb91 7 volume=new bargraph(lcd,32);
jakowisp 3:6da430f4818a 8 //Set the default feature modes. Volme Display off. Graphic mode off.
jakowisp 1:948ffad3284f 9 volumeDisplayEnable=false;
jakowisp 1:948ffad3284f 10 graphicModeEnable=false;
jakowisp 0:69eb9d19fb91 11 }
jakowisp 0:69eb9d19fb91 12
jakowisp 0:69eb9d19fb91 13 void MyDisplayClass::drawNoConnection(C12832_LCD *lcd) {
jakowisp 0:69eb9d19fb91 14 lcd->fillrect(0, 31, 15,16, 0);
jakowisp 0:69eb9d19fb91 15 lcd->rect(0, 31, 15,16, 1);
jakowisp 0:69eb9d19fb91 16 lcd->line(2,29,13,18,1);
jakowisp 0:69eb9d19fb91 17 lcd->circle(7,24,4,1);
jakowisp 0:69eb9d19fb91 18 }
jakowisp 0:69eb9d19fb91 19
jakowisp 0:69eb9d19fb91 20 void MyDisplayClass::drawConnection(C12832_LCD *lcd) {
jakowisp 0:69eb9d19fb91 21 lcd->fillrect(0, 31, 15,16, 0);
jakowisp 0:69eb9d19fb91 22 lcd->rect(0, 31, 15,16, 1);
jakowisp 0:69eb9d19fb91 23 lcd->rect(5,26,10,21,1);
jakowisp 0:69eb9d19fb91 24 lcd->line(6,23,7,25,1);
jakowisp 0:69eb9d19fb91 25 lcd->line(7,25,14,17,1);
jakowisp 0:69eb9d19fb91 26 }
jakowisp 0:69eb9d19fb91 27
jakowisp 0:69eb9d19fb91 28 void MyDisplayClass::drawSuspend(C12832_LCD *lcd) {
jakowisp 0:69eb9d19fb91 29 lcd->fillrect(0, 31, 15,16, 0);
jakowisp 0:69eb9d19fb91 30 lcd->rect(0, 31, 15,16, 1);
jakowisp 0:69eb9d19fb91 31 lcd->line(4,20,11,20,1);
jakowisp 0:69eb9d19fb91 32 lcd->line(4,27,11,20,1);
jakowisp 0:69eb9d19fb91 33 lcd->line(4,27,11,27,1);
jakowisp 0:69eb9d19fb91 34 }
jakowisp 0:69eb9d19fb91 35
jakowisp 0:69eb9d19fb91 36 void MyDisplayClass::setLevel(int level){
jakowisp 0:69eb9d19fb91 37 volume->setLevel(level);
jakowisp 0:69eb9d19fb91 38 }
jakowisp 0:69eb9d19fb91 39
jakowisp 0:69eb9d19fb91 40 void MyDisplayClass::setMaxLevel(int level){
jakowisp 0:69eb9d19fb91 41 volume->setMaxLevel(level);
jakowisp 0:69eb9d19fb91 42 }
jakowisp 0:69eb9d19fb91 43
jakowisp 3:6da430f4818a 44 //When in Graphic mode update USB status with pictures.
jakowisp 0:69eb9d19fb91 45 void MyDisplayClass::UpdateStatus(int state){
jakowisp 0:69eb9d19fb91 46 switch(state) {
jakowisp 0:69eb9d19fb91 47 case 2: drawSuspend(lcd); break;
jakowisp 0:69eb9d19fb91 48 case 3: drawConnection(lcd); break;
jakowisp 0:69eb9d19fb91 49 default: drawNoConnection(lcd); break;
jakowisp 0:69eb9d19fb91 50 }
jakowisp 0:69eb9d19fb91 51 }
jakowisp 0:69eb9d19fb91 52
jakowisp 3:6da430f4818a 53 //When in text mode update the USB status based on state
jakowisp 0:69eb9d19fb91 54 void MyDisplayClass::UpdateTextStatus(int state){
jakowisp 0:69eb9d19fb91 55 lcd->locate(3,12);
jakowisp 0:69eb9d19fb91 56 lcd->printf(" ");
jakowisp 0:69eb9d19fb91 57 lcd->locate(3,12);
jakowisp 0:69eb9d19fb91 58 switch(state) {
jakowisp 0:69eb9d19fb91 59 case 2: lcd->printf("Suspended"); break;
jakowisp 0:69eb9d19fb91 60 case 3: lcd->printf("Normal"); break;
jakowisp 0:69eb9d19fb91 61 default: lcd->printf("Offline"); break;
jakowisp 0:69eb9d19fb91 62 }
jakowisp 0:69eb9d19fb91 63
jakowisp 0:69eb9d19fb91 64 }
jakowisp 0:69eb9d19fb91 65
jakowisp 3:6da430f4818a 66 //Update the volume control display bsed on feature enable state, USB state and volume
jakowisp 1:948ffad3284f 67 void MyDisplayClass::update(int state){
jakowisp 3:6da430f4818a 68 //Is volume display enabled
jakowisp 1:948ffad3284f 69 if(volumeDisplayEnable)
jakowisp 3:6da430f4818a 70 //Volume:Is Graphic mode enabled or should messages be in text
jakowisp 1:948ffad3284f 71 if(graphicModeEnable) {
jakowisp 3:6da430f4818a 72 //Call Graphic mode update function
jakowisp 0:69eb9d19fb91 73 volume->updateBargraph();
jakowisp 0:69eb9d19fb91 74 } else {
jakowisp 0:69eb9d19fb91 75 lcd->locate(3,3);
jakowisp 3:6da430f4818a 76 lcd->printf("Volume: %3d PCT%",(volume->level * 100)/volume->maxlevels);
jakowisp 0:69eb9d19fb91 77 }
jakowisp 3:6da430f4818a 78 //USB:Is Graphic mode enabled or should messages be in text
jakowisp 1:948ffad3284f 79 if(graphicModeEnable)
jakowisp 0:69eb9d19fb91 80 UpdateStatus(state);
jakowisp 0:69eb9d19fb91 81 else
jakowisp 0:69eb9d19fb91 82 UpdateTextStatus(state);
jakowisp 0:69eb9d19fb91 83 }