|
|
@ -22,7 +22,7 @@ void SelectionList::draw() { |
|
|
|
u8g2.drawLine(0,header_height,u8g2.getDisplayWidth(),header_height); |
|
|
|
|
|
|
|
/* draw menu items */ |
|
|
|
u8g2.setFont(u8g2_font_9x18B_tr); |
|
|
|
u8g2.setFont(u8g2_font_8x13B_tr); |
|
|
|
int length = std::min(visible, (uint8_t)string_list.size()); |
|
|
|
for (int i=0; i<length; i++) { |
|
|
|
u8g2.drawUTF8(item_x_offset,header_height+2+(i+1)*item_height,string_list[top_item+i].c_str()); |
|
|
@ -58,19 +58,10 @@ uint8_t SelectionList::select() { |
|
|
|
MainMenu::MainMenu() { |
|
|
|
string_list = { |
|
|
|
"PLAY", |
|
|
|
"80s Planet", |
|
|
|
"Left Coast 70s", |
|
|
|
"laradio Ska", |
|
|
|
"French Quarter Jams", |
|
|
|
"Radio Stations", |
|
|
|
"test", |
|
|
|
"test3", |
|
|
|
"Radio Kol Yavne", |
|
|
|
"ROCKIN626.COM", |
|
|
|
"Jive Time Radio", |
|
|
|
"Live Ireland", |
|
|
|
"Ye Ol Celtic Pub", |
|
|
|
"Gone Country - NZCMR", |
|
|
|
"Return"}; |
|
|
|
"« Return"}; |
|
|
|
if (mp3.playing) { |
|
|
|
string_list[0] = "STOP"; |
|
|
|
} |
|
|
@ -87,39 +78,77 @@ uint8_t MainMenu::select() { |
|
|
|
} |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
mp3.start("http://streaming.shoutcast.com/80sPlanet?lang=en-US"); |
|
|
|
menuChange = eStationMenu; |
|
|
|
return current_pos; |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
mp3.start("http://ice1.somafm.com/seventies-128-mp3"); |
|
|
|
iot.mqtt.publish(topic.c_str(), 1, true, "test" ); |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
mp3.start("http://streaming.radionomy.com/laradiostrong?lang=de"); |
|
|
|
iot.mqtt.publish(topic.c_str(), 1, true, "foo" ); |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
menuChange = eMainScreen; |
|
|
|
break; |
|
|
|
default: |
|
|
|
Serial.println("unknown entry selected"); |
|
|
|
break; |
|
|
|
} |
|
|
|
menuChange = eMainScreen; |
|
|
|
return current_pos; |
|
|
|
} |
|
|
|
|
|
|
|
StationMenu::StationMenu() { |
|
|
|
string_list = { |
|
|
|
"80s Planet", |
|
|
|
"Left Coast 70s", |
|
|
|
"laradio Ska", |
|
|
|
"French Quarter Jams", |
|
|
|
"Radio Kol Yavne", |
|
|
|
"ROCKIN626.COM", |
|
|
|
"Jive Time Radio", |
|
|
|
"Live Ireland", |
|
|
|
"Ye Ol Celtic Pub", |
|
|
|
"Gone Country - NZCMR", |
|
|
|
"« Return"}; |
|
|
|
} |
|
|
|
|
|
|
|
uint8_t StationMenu::select() { |
|
|
|
switch (current_pos) { |
|
|
|
case 0: |
|
|
|
mp3.start("http://streaming.shoutcast.com/80sPlanet?lang=en-US"); |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
mp3.start("http://ice1.somafm.com/seventies-128-mp3"); |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
mp3.start("http://streaming.radionomy.com/laradiostrong?lang=de"); |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
mp3.start("http://184.171.163.20:8162/stream"); |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
iot.mqtt.publish(topic.c_str(), 1, true, "test" ); |
|
|
|
case 6: |
|
|
|
iot.mqtt.publish(topic.c_str(), 1, true, "foo" ); |
|
|
|
case 7: |
|
|
|
case 4: |
|
|
|
mp3.start("http://212.83.129.92:8028/;?type=http&nocache=683"); |
|
|
|
break; |
|
|
|
case 8: |
|
|
|
case 5: |
|
|
|
mp3.start("http://192.99.4.210:3574/stream"); |
|
|
|
break; |
|
|
|
case 9: |
|
|
|
case 6: |
|
|
|
mp3.start("http://188.165.192.5:8279/stream?icy=http"); |
|
|
|
break; |
|
|
|
case 10: |
|
|
|
case 7: |
|
|
|
mp3.start("http://69.167.190.234:8080/stream"); |
|
|
|
break; |
|
|
|
case 11: |
|
|
|
case 8: |
|
|
|
mp3.start("http://192.240.102.133:11790/stream"); |
|
|
|
break; |
|
|
|
case 12: |
|
|
|
case 9: |
|
|
|
mp3.start("http://192.99.41.102:5044/stream"); |
|
|
|
break; |
|
|
|
case 10: |
|
|
|
menuChange = eMainMenu; |
|
|
|
return current_pos; |
|
|
|
break; |
|
|
|
default: |
|
|
|
Serial.println("unknown entry selected"); |
|
|
|
break; |
|
|
@ -138,14 +167,14 @@ void MainScreen::draw() { |
|
|
|
if(millis() - lastVolumeChange <= 1000) { |
|
|
|
//u8g2.drawXBMP(0,0, IMG_1872_width, IMG_1872_height, IMG_1872_bits);
|
|
|
|
u8g2.setFont(u8g2_font_inb19_mf); |
|
|
|
u8g2.drawStr(20, 20, "Volume"); |
|
|
|
u8g2.drawStr(15, 20, "Volume"); |
|
|
|
|
|
|
|
u8g2.drawRBox(10, 28, 108, 22, 5); |
|
|
|
u8g2.setDrawColor(0); |
|
|
|
u8g2.drawBox(14+volume, 31, 100-volume, 14); |
|
|
|
u8g2.drawBox(14+volume, 31, 100-volume, 16); |
|
|
|
char volumeStr[6]; |
|
|
|
sprintf(volumeStr, "%d %%", volume); |
|
|
|
u8g2.setFont(u8g2_font_crox3cb_mf); |
|
|
|
sprintf(volumeStr, "%3d %%", volume); |
|
|
|
u8g2.setFont(u8g2_font_profont17_mf); |
|
|
|
u8g2.setFontMode(1); |
|
|
|
u8g2.setDrawColor(2); |
|
|
|
u8g2.drawStr(40, 45, volumeStr); |
|
|
@ -155,20 +184,27 @@ void MainScreen::draw() { |
|
|
|
|
|
|
|
u8g2.setFont(u8g2_font_inb19_mf); |
|
|
|
u8g2.drawStr(0, 20, timeStr); |
|
|
|
|
|
|
|
char weather[32]; |
|
|
|
u8g2.setFont(u8g2_font_profont12_mf); // choose a suitable font
|
|
|
|
sprintf(weather, "%.1f°C %.1f%% %.0fhPa", bme280.readTemperature(), bme280.readHumidity(), bme280.readPressure()); |
|
|
|
u8g2.drawUTF8(0, 30, weather); |
|
|
|
u8g2.drawUTF8(0, 30, weatherStr); |
|
|
|
u8g2.setFont(u8g2_font_prospero_bold_nbp_tf); // choose a suitable font
|
|
|
|
|
|
|
|
u8g2_uint_t width = u8g2.getUTF8Width(titleStr); // calculate the pixel width of the text
|
|
|
|
|
|
|
|
if (width > u8g2.getDisplayWidth()) { |
|
|
|
u8g2_uint_t x = titleStr_offset; |
|
|
|
do { // repeated drawing of the scrolling text...
|
|
|
|
u8g2.drawUTF8(x, 54, titleStr); // draw the scolling text
|
|
|
|
x += width; // add the pixel width of the scrolling text
|
|
|
|
} while( x < u8g2.getDisplayWidth() ); // draw again until the complete display is filled
|
|
|
|
|
|
|
|
// repeated drawing of the scrolling text...
|
|
|
|
u8g2.drawUTF8(titleStr_offset, 54, titleStr); // draw the scolling text
|
|
|
|
|
|
|
|
titleStr_offset-=4; // scroll by one pixel
|
|
|
|
if ( (u8g2_uint_t)titleStr_offset < (u8g2_uint_t)-width ) |
|
|
|
titleStr_offset = 0; // start over again // u8g2.getDisplayWidth()
|
|
|
|
titleStr_offset-=4; // scroll by one pixel
|
|
|
|
if ( (u8g2_uint_t)titleStr_offset < (u8g2_uint_t)-width ) |
|
|
|
titleStr_offset = 0; // start over again
|
|
|
|
} else { |
|
|
|
u8g2.drawUTF8((u8g2.getDisplayWidth()-width)/2, 54, titleStr); |
|
|
|
} |
|
|
|
} |
|
|
|
u8g2.sendBuffer(); |
|
|
|
// bme280.printValues();
|
|
|
|