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 "bargraph.h"
jakowisp 0:69eb9d19fb91 2 bargraph::bargraph(C12832_LCD *inlcd,int maxlevelsIn,int Xin,int Yin,int widthIn,int heightIn){
jakowisp 0:69eb9d19fb91 3 lcd=inlcd;
jakowisp 0:69eb9d19fb91 4 level=0;
jakowisp 0:69eb9d19fb91 5 lastLevel=0;
jakowisp 0:69eb9d19fb91 6 if(maxlevelsIn<=32 && maxlevelsIn >=4)
jakowisp 0:69eb9d19fb91 7 maxlevels=maxlevelsIn;
jakowisp 0:69eb9d19fb91 8 else
jakowisp 0:69eb9d19fb91 9 maxlevels=32;
jakowisp 0:69eb9d19fb91 10 if(Xin>=0 && Xin<=127-maxlevels)
jakowisp 0:69eb9d19fb91 11 x=Xin;
jakowisp 0:69eb9d19fb91 12 else
jakowisp 0:69eb9d19fb91 13 x=0;
jakowisp 0:69eb9d19fb91 14 if(Yin>=0 && Yin<=31-maxlevels)
jakowisp 0:69eb9d19fb91 15 y=Yin;
jakowisp 0:69eb9d19fb91 16 else
jakowisp 0:69eb9d19fb91 17 y=0;
jakowisp 0:69eb9d19fb91 18 if(widthIn>maxlevels && widthIn<128)
jakowisp 0:69eb9d19fb91 19 width=widthIn-1;
jakowisp 0:69eb9d19fb91 20 else
jakowisp 0:69eb9d19fb91 21 width=127;
jakowisp 0:69eb9d19fb91 22 if(heightIn>=(maxlevels-1) && heightIn<31)
jakowisp 0:69eb9d19fb91 23 height=heightIn;
jakowisp 0:69eb9d19fb91 24 else
jakowisp 0:69eb9d19fb91 25 height=31;
jakowisp 0:69eb9d19fb91 26 leveladjust=(height+1)/maxlevels;
jakowisp 0:69eb9d19fb91 27 levelwidth=(width+1)/maxlevels;
jakowisp 0:69eb9d19fb91 28 }
jakowisp 0:69eb9d19fb91 29
jakowisp 0:69eb9d19fb91 30 void bargraph::setMaxLevel(int maxlevels){
jakowisp 0:69eb9d19fb91 31 lcd->fillrect(x, y, x+width,y+height, 0);
jakowisp 0:69eb9d19fb91 32 leveladjust=(height+1)/maxlevels;
jakowisp 0:69eb9d19fb91 33 levelwidth=(width+1)/maxlevels;
jakowisp 0:69eb9d19fb91 34 }
jakowisp 0:69eb9d19fb91 35
jakowisp 0:69eb9d19fb91 36 void bargraph::setLevel(int level){
jakowisp 0:69eb9d19fb91 37 this->level=level;
jakowisp 0:69eb9d19fb91 38 }
jakowisp 0:69eb9d19fb91 39
jakowisp 0:69eb9d19fb91 40 void bargraph::updateBargraph(){
jakowisp 0:69eb9d19fb91 41 if(lcd!=NULL) {
jakowisp 0:69eb9d19fb91 42 if(level!=lastLevel) {
jakowisp 0:69eb9d19fb91 43 for(int i = 0 ; i<lastLevel;i++) {
jakowisp 0:69eb9d19fb91 44 lcd->fillrect(x+levelwidth*(i), y, x+levelwidth*(i+1)-1, y+i*leveladjust, 0);
jakowisp 0:69eb9d19fb91 45 }
jakowisp 0:69eb9d19fb91 46 for(int i = 0 ; i<level;i++) {
jakowisp 0:69eb9d19fb91 47 lcd->fillrect(x+levelwidth*(i), y, x+levelwidth*(i+1)-1, y+i*leveladjust, 1);
jakowisp 0:69eb9d19fb91 48 }
jakowisp 0:69eb9d19fb91 49 lastLevel=level;
jakowisp 0:69eb9d19fb91 50 }
jakowisp 0:69eb9d19fb91 51 }
jakowisp 0:69eb9d19fb91 52 };
jakowisp 0:69eb9d19fb91 53
jakowisp 0:69eb9d19fb91 54
jakowisp 0:69eb9d19fb91 55