You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Play/_719/radio.ino

611 lines
16 KiB

//***********************************************
void radio2()
{
int STATION_1=1059;
int STATION_2=1000;
int STATION_3=1004;
int STATION_4=1010;
int STATION_5=1039;
int STATION_6=1025;
int STATION_7=1068;
int STATION_8=1052;
int STATION_9=1075;
int x,y,f;
boolean mem=0;
myGLCD.setColor(VGA_WHITE);
myGLCD.setBackColor(VGA_BLUE);
myGLCD.setFont(BigFont);
myGLCD.fillScr(66,32,7); //(66,32,7)
//******************************************************************************************************
if (rad==0)
{
StationFrequency=STATION_5*100;
MP1090S:: InitI2C (19);
MP1090S:: SetBand (MHz87_5_108);
MP1090S::SetSpace (kHz50);
MP1090S::SetVolume (volume);
MP1090S::SetStation (StationFrequency);
//***************
//myGLCD.setFont( Dingbats1_XL);
//myButtons.drawButton(but7);
// but7 = myButtons.addButton(270, 80, 35, 35, "w", BUTTON_SYMBOL);
// myGLCD.setFont( BigFont);
// volume=5;
// MP1090S::SetVolume (volume);
rad=1;
}
pictrad();
c=1;
//int a=0;
// drawButtons();
// myGLCD.setFont( Dingbats1_XL);
// pictradio();
myGLCD.setFont( BigFont);
drawButt();
strelka();
myGLCD.setBackColor(0,104,39);//goluboy
myGLCD.setColor(255,255,255);
myGLCD.setFont( BigFont);
myGLCD.print(" ", 160, 95);
int pos=100*volume/15;
myGLCD.printNumI(abs(pos) , 160, 95);
//bar(x,y, pos,l,h);
barrad(65,135, pos,270-25,10);
// myGLCD.setColor(255,255,255);
myGLCD.setColor(29,124,221);
myGLCD.setBackColor(66,32,7);
myGLCD.setFont( Ubuntubold);
myGLCD.printNumI(STATION_1 , 70, 370);
myGLCD.printNumI(STATION_2 ,119, 420);
myGLCD.printNumI(STATION_3 , 230, 370);
myGLCD.printNumI(STATION_4, 280, 420);
myGLCD.printNumI(STATION_5 , 388, 370);
myGLCD.printNumI(STATION_6 ,440, 420);
myGLCD.printNumI(STATION_7 , 540, 370);
myGLCD.printNumI(STATION_8 ,595, 420);
myGLCD.printNumI(STATION_9 , 695, 370);
// myGLCD.drawBitmap (639, 370, 160, 80, cl);
// myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
clcrad();
while(1)
{
sec=t.sec;
if (sec==0)
{
delay(800);
//kalend();
clcrad();
}
// digitalClockDisplay();
//{
if (myTouch.dataAvailable())
{
myTouch.read();
x=myTouch.getX();
y=myTouch.getY();
myGLCD.setColor(VGA_BLUE);
myGLCD.setBackColor(255,255,255);
// myGLCD.setFont( Ubuntubold);
// myGLCD.print("x= " , 650, 32);
//myGLCD.printNumI(x , 700, 32);
// myGLCD.setFont( Ubuntubold);
// myGLCD.print("y= " ,650 , 72);
//myGLCD.printNumI(y , 700, 72);
//**************************************************
if ((y>=405) && (y<=450)) // Upper row
{
if ((x>=62) && (x<=112))// 2
{waitForIt(62, 405, 112, 450);
if (mem==1)
{STATION_2= StationFrequency/100;
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(66,32,7);
myGLCD.setFont( Ubuntubold);
myGLCD.print(" ", 119, 420);
myGLCD.printNumI(STATION_2 ,119, 420);
mem=0;
}
else
{ StationFrequency=STATION_2*100;
strelka();
}
}
if ((x>=224) && (x<=274))// 4
{waitForIt(224, 405, 274, 450);
if (mem==1)
{STATION_4= StationFrequency/100;
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(66,32,7);
myGLCD.setFont( Ubuntubold);
myGLCD.print(" ", 280, 420);
myGLCD.printNumI(STATION_4, 280, 420);
mem=0;
}
else
{ StationFrequency=STATION_4*100;
strelka();
}
}
if ((x>=383) && (x<=433))// 6
{waitForIt(383, 405, 433, 450);
if (mem==1)
{STATION_6= StationFrequency/100;
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(66,32,7);
myGLCD.setFont( Ubuntubold);
myGLCD.print(" ", 440, 420);
myGLCD.printNumI(STATION_6 ,440, 420);
mem=0;
}
else
{ StationFrequency=STATION_6*100;
strelka();
}
}
if ((x>=540) && (x<=590))// 8
{waitForIt(540, 405, 590, 450);
if (mem==1)
{STATION_8= StationFrequency/100;
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(66,32,7);
myGLCD.setFont( Ubuntubold);
myGLCD.print(" ", 595, 420);
myGLCD.printNumI(STATION_8 ,595, 420);
mem=0;
}
else
{ StationFrequency=STATION_8*100;
strelka();
}
}
//******************************
}
if ((y>=5) && (y<=50)) // Upper row
{
if ((x>=230) && (x<=280)) // Button: x
{ waitcirForIt(260+3,30+10,22);
mem=1;
}
if ((x>=480) && (x<=520)) // Button:_
{
waitForIt(482, 3, 532, 48);
rad=1;
//clok();
return ;
}
if ((x>=540) && (x<=580)) // Button: x
{
waitForIt(540, 3, 590, 48);
rad=0;
volume=0;
MP1090S::SetVolume (volume);
//clok();
return ;
}
}
//**********************************************************************************
if ((y>=290) && (y<=330)) // Upper row
{
if ((x>=20) && (x<=55)) // Button:<<
{
waitForIt(10, 284, 62, 329);
// do
//{
StationFrequency=StationFrequency-1000;
if (StationFrequency<90000)
{StationFrequency=108000;
}
strelka();
//myGLCD.printNumI(ust , CENTER, 350);
// } while(ust>0);
}
if ((x>=75) && (x<=120)) // Button:-
{
waitForIt(70, 284, 120, 329);
StationFrequency=StationFrequency-50;
if (StationFrequency<90000)
{StationFrequency=108000;
}
strelka();
}
if ((x>=675) && (x<=725)) // Button:+
{
waitForIt(677, 284, 727, 329);
StationFrequency=StationFrequency+50;
if (StationFrequency>108000)
{StationFrequency=90000;
}
strelka();
}
if ((x>=735) && (x<=775)) // Button:>>
{
waitForIt(739, 284, 792, 329);
// do
// {
StationFrequency=StationFrequency+1000;
if (StationFrequency>107000)
{StationFrequency=90000;
}
strelka();
// myGLCD.printNumI(ust , CENTER, 350);
// } while(ust>0);
}
}
if ((y>=120) && (y<=150)) // Upper row
{
if ((x>=28) && (x<=48)) // Button:- volume
{
waitcirForIt(32-3,138+4,18);
if (volume<1)
{volume=1;
}
volume=volume-1;
MP1090S::SetVolume (volume);
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(0,104,39);
myGLCD.setFont( BigFont);
myGLCD.print(" ", 160, 95);
// myGLCD.printNumI(volume , 168, 90);
int pos=100*volume/15;
myGLCD.printNumI(abs(pos) ,160, 95);
barrad(65,135, pos,270-25,10);
}
if ((x>=316) && (x<=356)) // Button:+ volume
{
waitcirForIt(338+3,138+4,18);
if (volume>14)
{volume=14;
}
volume=volume+1;
MP1090S::SetVolume (volume);
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(0,104,39);
myGLCD.setFont( BigFont);
myGLCD.print(" ", 160, 95);
// myGLCD.printNumI(volume , 168, 90);
int pos=100*volume/15;
myGLCD.printNumI(abs(pos) , 160, 95);
barrad(65,135, pos,270-25,10);
}
}
if ((y>=70) && (y<=100)) // Upper row
{
if ((x>=17) && (x<=47)) // Button:mute
{ waitcirForIt(32-3,85+6,18);
volume=0;
MP1090S::SetVolume (volume);
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(0,104,39);
myGLCD.setFont( BigFont);
myGLCD.print(" ", 160, 95);
// myGLCD.printNumI(volume , 168, 90);
int pos=100*volume/15;
myGLCD.printNumI(abs(pos) , 160, 95);
barrad(65,135, pos,270-25,10);
}
}
if ((y>=355) && (y<=405)) // Upper row
{
if ((x>=16) && (x<=56))// 1
{waitForIt(6, 355, 56, 400);
if (mem==1)
{STATION_1= StationFrequency/100;
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(66,32,7);
myGLCD.setFont( Ubuntubold);
myGLCD.print(" ", 70, 370);
myGLCD.printNumI(STATION_1 , 70, 370);
mem=0;
}
else
{ StationFrequency=STATION_1*100;
strelka();
}
}
if ((x>=175) && (x<=215))// 3
{waitForIt(170, 355, 220, 400);
if (mem==1)
{STATION_3= StationFrequency/100;
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(66,32,7);
myGLCD.setFont( Ubuntubold);
myGLCD.print(" ", 230, 370);
myGLCD.printNumI(STATION_3 , 230, 370);
mem=0;
}
else
{ StationFrequency=STATION_3*100;
strelka();
}
}
if ((x>=330) && (x<=380))// 5
{waitForIt(330, 355, 380, 400);
if (mem==1)
{STATION_5= StationFrequency/100;
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(66,32,7);
myGLCD.setFont( Ubuntubold);
myGLCD.print(" ", 388, 370);
myGLCD.printNumI(STATION_5 , 388, 370);
mem=0;
}
else
{ StationFrequency=STATION_5*100;
strelka();
}
}
if ((x>=484) && (x<=530))// 7
{waitForIt(484, 355, 534, 400);
if (mem==1)
{STATION_7= StationFrequency/100;
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(66,32,7);
myGLCD.setFont( Ubuntubold);
myGLCD.print(" ", 540, 370);
myGLCD.printNumI(STATION_7 , 540, 370);
mem=0;
}
else
{ StationFrequency=STATION_7*100;
strelka();
}
}
if ((x>=640) && (x<=690))// 9
{waitForIt(640, 355, 690, 400);
if (mem==1)
{STATION_9= StationFrequency/100;
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(66,32,7);
myGLCD.setFont( Ubuntubold);
myGLCD.print(" ", 695, 370);
myGLCD.printNumI(STATION_9 , 695, 370);
mem=0;
}
else
{ StationFrequency=STATION_9*100;
strelka();
}
}
}
//**********-----------------------------------------------------------------------------------------------------
if ((y>=210) && (y<=270)) // Upper row
{f=x*10/44+900;
myGLCD.setFont( BigFont);
myGLCD.setColor(VGA_BLUE);
myGLCD.setBackColor(255,255,255);
// myGLCD.print("f= " , 650, 132);
// myGLCD.printNumI(f , 700, 132);
StationFrequency=f*100;
strelka();
}
}
delay(100);
}
}
// Рисуем кнопки
void drawButt()
{
// Draw the upper row of buttons
myGLCD.setColor(255, 232, 13);
myGLCD.drawRoundRect (482, 3, 532, 48);// _ 50x45
myGLCD.drawRoundRect (540, 3, 590, 48); //x
myGLCD.drawRoundRect (10, 284, 62, 329);//<<
myGLCD.drawRoundRect (70, 284, 120, 329);//- 50x45
myGLCD.drawRoundRect (677, 284, 727, 329);//+
myGLCD.drawRoundRect (739, 284, 792, 329);//>>
myGLCD.drawCircle (32-3,85+6,18);//mute
myGLCD.drawCircle (32-3,138+4,18);//-
myGLCD.drawCircle (338+3,138+4,18);//+
myGLCD.drawCircle (260+3,30+10,22);//glass
myGLCD.drawRoundRect (6, 355, 56, 400);//1
myGLCD.drawRoundRect (170, 355, 220, 400);//3
myGLCD.drawRoundRect (330, 355, 380, 400);//5
myGLCD.drawRoundRect (484, 355, 534, 400);//7
myGLCD.drawRoundRect (640, 355, 690, 400);//9
myGLCD.drawRoundRect (62, 405, 112, 450);//2
myGLCD.drawRoundRect (224, 405, 274, 450);//4
myGLCD.drawRoundRect (383, 405, 433, 450);//6
myGLCD.drawRoundRect (540, 405, 590, 450);//8
}
// Draw a red frame while a button is touched
void waitForIt(int x1, int y1, int x2, int y2)
{
myGLCD.setColor(0, 217, 48);
myGLCD.drawRoundRect (x1, y1, x2, y2);
while (myTouch.dataAvailable())
myTouch.read();
myGLCD.setColor(255, 232, 13);
myGLCD.drawRoundRect (x1, y1, x2, y2);
}
void waitcirForIt(int x1, int y1, int x2)
{
myGLCD.setColor(0, 217, 48);
myGLCD.drawCircle (x1,y1,x2);//glass
while (myTouch.dataAvailable())
myTouch.read();
myGLCD.setColor(255, 232, 13);
myGLCD.drawCircle (x1,y1,x2);//glass
}
//****************************strelka***********************************
void strelka()
{
int xstr;
xstr=(StationFrequency/100-900)*44/10;
xstr=abs(xstr);
myGLCD.setColor(0,104,39);
myGLCD.fillRoundRect (306, 279, 500, 333); //clear
myGLCD.setColor(255,255,255);
myGLCD.setBackColor(0,104,39);
myGLCD.setFont( SevenSegNumFont);
myGLCD.printNumI(StationFrequency/100 , CENTER, 280);
MP1090S::SetStation ( StationFrequency);
myGLCD.setColor(63,33, 9);
myGLCD.fillRoundRect (0, 246, 800, 266);
myGLCD.setColor(255,0, 0);
myGLCD.fillRoundRect (xstr-2, 246, xstr+3, 266);
}
//************************************************************************************
void clcrad()
{ char* strm[] = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"};
int cx=70;
int cy=30;
int month1;
//**********CLOK*******************************************************************************
myGLCD.setColor(VGA_WHITE);
myGLCD.setBackColor(0,38,92);
myGLCD.setFont( SevenSegNumFont);
if (t.hour<10)
{
myGLCD.printNumI(0,cx, cy);
myGLCD.printNumI(t.hour, cx+32, cy);
}
else
{
myGLCD.printNumI(t.hour,cx, cy);
}
myGLCD.print(":",cx+64, cy);
if (t.min<10)
{
myGLCD.printNumI(0,cx+96, cy);
myGLCD.printNumI(t.min, cx+128, cy);
}
else
{
myGLCD.printNumI(t.min, cx+96, cy);
}
// kalendar
myGLCD.setFont( Ubuntubold);
//myGLCD.setFont(BigFont);
myGLCD.setBackColor( VGA_TRANSPARENT);
myGLCD.setColor(245,61,6);
// myGLCD.setBackColor(255,114,0);
month1=t.mon;
myGLCD.print(strm[month1-1], 663-15, 18+8);
// myGLCD.print(rtc.getDOWStr(FORMAT_SHORT), 256+450, 8);
myGLCD.setFont( SevenSegNumFont);
myGLCD.setBackColor( VGA_TRANSPARENT);
// myGLCD.setBackColor(255,255,255);
myGLCD.setColor(29,124,221);//goluboy
if (t.date<10)
myGLCD.printNumI(t.date, 710-30, 56+5);
else
myGLCD.printNumI(t.date, 695-30, 56+5);
// myGLCD.setFont(BigFont);
// myGLCD.setBackColor(180,180,180);
myGLCD.setFont( Ubuntubold);
myGLCD.setColor(13,124,30);//zelen
dow= t.dow;
myGLCD.print(str[dow-1], 690-20,110+5);
/// myGLCD.printNumI(rtc_clock.get_months(), 695, 122);
myGLCD.setFont(BigFont);
myGLCD.setBackColor( VGA_TRANSPARENT);
//myGLCD.setBackColor(180,180,180);
myGLCD.printNumI(t.year, 694-20, 143+5);
//myGLCD.setBackColor(0,0,55);
}
void barrad(int x,int y,int pos,int l,int h)//kalendar(days, mon, years); l-длинна шкалы pos-позиция метки положения h-высота
{
//int h=40;//высота шкалы
myGLCD.setBackColor(0,0,255);
myGLCD.setColor(0,104,39);//цвет фоновый пр-к
// myGLCD.setColor(0,0,255);
myGLCD.fillRoundRect(x-5, y-5, l+x+5, h+y+5);//рисуем фоновый пр-к
myGLCD.setColor(255, 255, 255);//цвет обводки
myGLCD.drawRoundRect(x, y, l+x, h+y);//прямоугольник с обводкой
//myGLCD.setColor(255,114,0);
//myGLCD.fillRoundRect(80, 35, 632, 87);
myGLCD.setColor(29,124,221);// цвет прямоуг уровня
myGLCD.fillRoundRect(x+1, y+1, (pos*l/100+x)-1, h+y-1);//рисуем прямоуг уровня
// myGLCD.setFont(BigFont);
// myGLCD.setColor(VGA_WHITE);
// myGLCD.setBackColor(0,104,39);
// myGLCD.setBackColor(0,0,255);
// myGLCD.print("BRIGHT", x-48+(l/2), y-25);
// myGLCD.printNumI(abs(pos), x-10+(l/2), y+2);// уровень в процентах
}