options to blank the screen added
This commit is contained in:
Binary file not shown.
@@ -78,21 +78,29 @@
|
|||||||
<div class="row-title"><span>screensaver</span></div>
|
<div class="row-title"><span>screensaver</span></div>
|
||||||
<div class="flex-row group group_tft group_oled group_nextion hidden" style="margin-top:20px;">
|
<div class="flex-row group group_tft group_oled group_nextion hidden" style="margin-top:20px;">
|
||||||
<div class="inputwrap">
|
<div class="inputwrap">
|
||||||
<span class="inputtitle">screensaver enabled</span>
|
<span class="inputtitle">while not playing</span>
|
||||||
<div class="checkbox off nous" id="screensaverenabled" style="padding-top:16px;"></div>
|
<div class="checkbox off nous" id="screensaverenabled" style="padding-top:16px;"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="inputwrap">
|
<div class="inputwrap">
|
||||||
<span class="inputtitle">screensaver timeout (sec)</span>
|
<span class="inputtitle">blank screen</span>
|
||||||
|
<div class="checkbox off nous" id="screensaverblank"></div>
|
||||||
|
</div>
|
||||||
|
<div class="inputwrap">
|
||||||
|
<span class="inputtitle">timeout (sec)</span>
|
||||||
<input type="number" id="screensavertimeout" class="textinput inputchange" name="screensavertimeout" value="" maxlength="3" min="5" max="65520" />
|
<input type="number" id="screensavertimeout" class="textinput inputchange" name="screensavertimeout" value="" maxlength="3" min="5" max="65520" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-row group group_tft group_oled group_nextion hidden">
|
<div class="flex-row group group_tft group_oled group_nextion hidden">
|
||||||
<div class="inputwrap">
|
<div class="inputwrap">
|
||||||
<span class="inputtitle">screensaver while playing</span>
|
<span class="inputtitle">while playing</span>
|
||||||
<div class="checkbox off nous" id="screensaverplayingenabled"></div>
|
<div class="checkbox off nous" id="screensaverplayingenabled"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="inputwrap">
|
<div class="inputwrap">
|
||||||
<span class="inputtitle">screensaver timeout (min)</span>
|
<span class="inputtitle">blank screen</span>
|
||||||
|
<div class="checkbox off nous" id="screensaverplayingblank"></div>
|
||||||
|
</div>
|
||||||
|
<div class="inputwrap">
|
||||||
|
<span class="inputtitle">timeout (min)</span>
|
||||||
<input type="number" id="screensaverplayingtimeout" class="textinput inputchange" name="screensaverplayingtimeout" value="" maxlength="3" min="1" max="1080" />
|
<input type="number" id="screensaverplayingtimeout" class="textinput inputchange" name="screensaverplayingtimeout" value="" maxlength="3" min="1" max="1080" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#ifndef COMMON_H
|
#ifndef COMMON_H
|
||||||
#define COMMON_H
|
#define COMMON_H
|
||||||
|
|
||||||
enum displayMode_e { PLAYER, VOL, STATIONS, NUMBERS, LOST, UPDATING, INFO, SETTINGS, TIMEZONE, WIFI, CLEAR, SLEEPING, SDCHANGE, SCREENSAVER };
|
enum displayMode_e { PLAYER, VOL, STATIONS, NUMBERS, LOST, UPDATING, INFO, SETTINGS, TIMEZONE, WIFI, CLEAR, SLEEPING, SDCHANGE, SCREENSAVER, SCREENBLANK };
|
||||||
enum pages_e : uint8_t { PG_PLAYER=0, PG_DIALOG=1, PG_PLAYLIST=2, PG_SCREENSAVER=3 };
|
enum pages_e : uint8_t { PG_PLAYER=0, PG_DIALOG=1, PG_PLAYLIST=2, PG_SCREENSAVER=3 };
|
||||||
|
|
||||||
enum displayRequestType_e { BOOTSTRING, NEWMODE, CLOCK, NEWTITLE, NEWSTATION, NEXTSTATION, DRAWPLAYLIST, DRAWVOL, DBITRATE, AUDIOINFO, SHOWVUMETER, DSPRSSI, SHOWWEATHER, NEWWEATHER, PSTOP, PSTART, DSP_START, WAITFORSD, SDFILEINDEX, NEWIP, NOPE };
|
enum displayRequestType_e { BOOTSTRING, NEWMODE, CLOCK, NEWTITLE, NEWSTATION, NEXTSTATION, DRAWPLAYLIST, DRAWVOL, DBITRATE, AUDIOINFO, SHOWVUMETER, DSPRSSI, SHOWWEATHER, NEWWEATHER, PSTOP, PSTART, DSP_START, WAITFORSD, SDFILEINDEX, NEWIP, NOPE };
|
||||||
|
|||||||
@@ -99,8 +99,10 @@ void Config::_setupVersion(){
|
|||||||
saveValue(&store.skipPlaylistUpDown, false);
|
saveValue(&store.skipPlaylistUpDown, false);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
|
saveValue(&store.screensaverBlank, false);
|
||||||
saveValue(&store.screensaverPlayingEnabled, false);
|
saveValue(&store.screensaverPlayingEnabled, false);
|
||||||
saveValue(&store.screensaverPlayingTimeout, (uint16_t)5);
|
saveValue(&store.screensaverPlayingTimeout, (uint16_t)5);
|
||||||
|
saveValue(&store.screensaverPlayingBlank, false);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -136,8 +136,10 @@ struct config_t
|
|||||||
bool rotate90;
|
bool rotate90;
|
||||||
bool screensaverEnabled;
|
bool screensaverEnabled;
|
||||||
uint16_t screensaverTimeout;
|
uint16_t screensaverTimeout;
|
||||||
|
bool screensaverBlank;
|
||||||
bool screensaverPlayingEnabled;
|
bool screensaverPlayingEnabled;
|
||||||
uint16_t screensaverPlayingTimeout;
|
uint16_t screensaverPlayingTimeout;
|
||||||
|
bool screensaverPlayingBlank;
|
||||||
char mdnsname[24];
|
char mdnsname[24];
|
||||||
bool skipPlaylistUpDown;
|
bool skipPlaylistUpDown;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -284,9 +284,10 @@ void Display::_swichMode(displayMode_e newmode) {
|
|||||||
_pager.setPage( pages[PG_PLAYER]);
|
_pager.setPage( pages[PG_PLAYER]);
|
||||||
pm.on_display_player();
|
pm.on_display_player();
|
||||||
}
|
}
|
||||||
if (newmode == SCREENSAVER) {
|
if (newmode == SCREENSAVER || newmode == SCREENBLANK) {
|
||||||
config.isScreensaver = true;
|
config.isScreensaver = true;
|
||||||
_pager.setPage( pages[PG_SCREENSAVER]);
|
_pager.setPage( pages[PG_SCREENSAVER]);
|
||||||
|
if (newmode == SCREENBLANK) dsp.clearClock();
|
||||||
}else{
|
}else{
|
||||||
config.screensaverTicks=SCREENSAVERSTARTUPDELAY;
|
config.screensaverTicks=SCREENSAVERSTARTUPDELAY;
|
||||||
config.screensaverPlayingTicks=SCREENSAVERSTARTUPDELAY;
|
config.screensaverPlayingTicks=SCREENSAVERSTARTUPDELAY;
|
||||||
|
|||||||
@@ -298,7 +298,7 @@ void NetServer::processQueue(){
|
|||||||
config.vuThreshold,
|
config.vuThreshold,
|
||||||
config.store.mdnsname);
|
config.store.mdnsname);
|
||||||
break;
|
break;
|
||||||
case GETSCREEN: sprintf (wsbuf, "{\"flip\":%d,\"inv\":%d,\"nump\":%d,\"tsf\":%d,\"tsd\":%d,\"dspon\":%d,\"br\":%d,\"con\":%d,\"scre\":%d,\"scrt\":%d,\"scrpe\":%d,\"scrpt\":%d}",
|
case GETSCREEN: sprintf (wsbuf, "{\"flip\":%d,\"inv\":%d,\"nump\":%d,\"tsf\":%d,\"tsd\":%d,\"dspon\":%d,\"br\":%d,\"con\":%d,\"scre\":%d,\"scrt\":%d,\"scrb\":%d,\"scrpe\":%d,\"scrpt\":%d,\"scrpb\":%d}",
|
||||||
config.store.flipscreen,
|
config.store.flipscreen,
|
||||||
config.store.invertdisplay,
|
config.store.invertdisplay,
|
||||||
config.store.numplaylist,
|
config.store.numplaylist,
|
||||||
@@ -309,8 +309,10 @@ void NetServer::processQueue(){
|
|||||||
config.store.contrast,
|
config.store.contrast,
|
||||||
config.store.screensaverEnabled,
|
config.store.screensaverEnabled,
|
||||||
config.store.screensaverTimeout,
|
config.store.screensaverTimeout,
|
||||||
|
config.store.screensaverBlank,
|
||||||
config.store.screensaverPlayingEnabled,
|
config.store.screensaverPlayingEnabled,
|
||||||
config.store.screensaverPlayingTimeout);
|
config.store.screensaverPlayingTimeout,
|
||||||
|
config.store.screensaverPlayingBlank);
|
||||||
break;
|
break;
|
||||||
case GETTIMEZONE: sprintf (wsbuf, "{\"tzh\":%d,\"tzm\":%d,\"sntp1\":\"%s\",\"sntp2\":\"%s\"}",
|
case GETTIMEZONE: sprintf (wsbuf, "{\"tzh\":%d,\"tzm\":%d,\"sntp1\":\"%s\",\"sntp2\":\"%s\"}",
|
||||||
config.store.tzHour,
|
config.store.tzHour,
|
||||||
@@ -516,6 +518,14 @@ void NetServer::onWsMessage(void *arg, uint8_t *data, size_t len, uint8_t client
|
|||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (strcmp(cmd, "screensaverblank") == 0) {
|
||||||
|
bool valb = static_cast<bool>(atoi(val));
|
||||||
|
config.saveValue(&config.store.screensaverBlank, valb);
|
||||||
|
#ifndef DSP_LCD
|
||||||
|
display.putRequest(NEWMODE, PLAYER);
|
||||||
|
#endif
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (strcmp(cmd, "screensaverplayingenabled") == 0) {
|
if (strcmp(cmd, "screensaverplayingenabled") == 0) {
|
||||||
bool valb = static_cast<bool>(atoi(val));
|
bool valb = static_cast<bool>(atoi(val));
|
||||||
config.saveValue(&config.store.screensaverPlayingEnabled, valb);
|
config.saveValue(&config.store.screensaverPlayingEnabled, valb);
|
||||||
@@ -533,6 +543,14 @@ void NetServer::onWsMessage(void *arg, uint8_t *data, size_t len, uint8_t client
|
|||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (strcmp(cmd, "screensaverplayingblank") == 0) {
|
||||||
|
bool valb = static_cast<bool>(atoi(val));
|
||||||
|
config.saveValue(&config.store.screensaverPlayingBlank, valb);
|
||||||
|
#ifndef DSP_LCD
|
||||||
|
display.putRequest(NEWMODE, PLAYER);
|
||||||
|
#endif
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (strcmp(cmd, "tzh") == 0) {
|
if (strcmp(cmd, "tzh") == 0) {
|
||||||
int8_t vali = atoi(val);
|
int8_t vali = atoi(val);
|
||||||
config.saveValue(&config.store.tzHour, vali);
|
config.saveValue(&config.store.tzHour, vali);
|
||||||
@@ -632,8 +650,10 @@ void NetServer::onWsMessage(void *arg, uint8_t *data, size_t len, uint8_t client
|
|||||||
config.saveValue(&config.store.numplaylist, false);
|
config.saveValue(&config.store.numplaylist, false);
|
||||||
config.saveValue(&config.store.screensaverEnabled, false);
|
config.saveValue(&config.store.screensaverEnabled, false);
|
||||||
config.saveValue(&config.store.screensaverTimeout, (uint16_t)20);
|
config.saveValue(&config.store.screensaverTimeout, (uint16_t)20);
|
||||||
|
config.saveValue(&config.store.screensaverBlank, false);
|
||||||
config.saveValue(&config.store.screensaverPlayingEnabled, false);
|
config.saveValue(&config.store.screensaverPlayingEnabled, false);
|
||||||
config.saveValue(&config.store.screensaverPlayingTimeout, (uint16_t)5);
|
config.saveValue(&config.store.screensaverPlayingTimeout, (uint16_t)5);
|
||||||
|
config.saveValue(&config.store.screensaverPlayingBlank, false);
|
||||||
display.putRequest(NEWMODE, CLEAR); display.putRequest(NEWMODE, PLAYER);
|
display.putRequest(NEWMODE, CLEAR); display.putRequest(NEWMODE, PLAYER);
|
||||||
requestOnChange(GETSCREEN, clientId);
|
requestOnChange(GETSCREEN, clientId);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -51,10 +51,24 @@ void ticks() {
|
|||||||
}
|
}
|
||||||
#ifndef DSP_LCD
|
#ifndef DSP_LCD
|
||||||
if(config.store.screensaverEnabled && display.mode()==PLAYER && !player.isRunning()){
|
if(config.store.screensaverEnabled && display.mode()==PLAYER && !player.isRunning()){
|
||||||
if(config.screensaverTicks++ > config.store.screensaverTimeout+SCREENSAVERSTARTUPDELAY) display.putRequest(NEWMODE, SCREENSAVER);
|
config.screensaverTicks++;
|
||||||
|
if(config.screensaverTicks > config.store.screensaverTimeout+SCREENSAVERSTARTUPDELAY){
|
||||||
|
if(config.store.screensaverBlank){
|
||||||
|
display.putRequest(NEWMODE, SCREENBLANK);
|
||||||
|
}else{
|
||||||
|
display.putRequest(NEWMODE, SCREENSAVER);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(config.store.screensaverPlayingEnabled && display.mode()==PLAYER && player.isRunning()){
|
if(config.store.screensaverPlayingEnabled && display.mode()==PLAYER && player.isRunning()){
|
||||||
if(config.screensaverPlayingTicks++ > config.store.screensaverPlayingTimeout*60+SCREENSAVERSTARTUPDELAY) display.putRequest(NEWMODE, SCREENSAVER);
|
config.screensaverPlayingTicks++;
|
||||||
|
if(config.screensaverPlayingTicks > config.store.screensaverPlayingTimeout*60+SCREENSAVERSTARTUPDELAY){
|
||||||
|
if(config.store.screensaverPlayingBlank){
|
||||||
|
display.putRequest(NEWMODE, SCREENBLANK);
|
||||||
|
}else{
|
||||||
|
display.putRequest(NEWMODE, SCREENSAVER);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if RTCSUPPORTED
|
#if RTCSUPPORTED
|
||||||
|
|||||||
Reference in New Issue
Block a user