"RokuMarkn" wrote:"Komag" wrote:
I just don't like that there is a black screen.
That's not really a good enough reason to disable the screensaver. Unless you're implementing your own screensaver functionality, you're risking damaging your users' TVs.
"RokuMarkn" wrote:
Yes, currently the black screen is shown instead of a screensaver over roScreen. I don't think anyone is talking about private screensavers here. What Komag is proposing is to DISABLE the screensaver, by periodically sending ECP commands, and then have his main app behave like a screensaver when appropriate.
--Mark
"RokuMarkn" wrote:
Yes, currently the black screen is shown instead of a screensaver over roScreen. I don't think anyone is talking about private screensavers here. What Komag is proposing is to DISABLE the screensaver, by periodically sending ECP commands, and then have his main app behave like a screensaver when appropriate.
"EnTerr" wrote:
Hmmm... radical question here!
Aren't periodic calls to ifScreen.swapBuffers() and .Finish() enough of a reason to ward-off the Black Screen?
"EnTerr" wrote:
But same can be said for roVideoPlayer - it may loop a video of the same still frame for many hours and ostensibly burn-into a cathode tube or plasma display after left for days
"squirreltown" wrote:"RokuMarkn" wrote:
Yes, currently the black screen is shown instead of a screensaver over roScreen. I don't think anyone is talking about private screensavers here. What Komag is proposing is to DISABLE the screensaver, by periodically sending ECP commands, and then have his main app behave like a screensaver when appropriate.
--Mark
Correct. You build a screen saver into your channel but you don't call it Runscreensaver(). I call mine FakeScreensaver(). Then you use appmanager to get the box SS interval and trigger yours ahead of it, while using the ECP trIck to ward off the evil black screen.
"TheEndless" wrote:
You can call RunScreensaver() from your code and it would work the same as calling it FakeScreensaver(). Only reason to rename it would be if you didn't want the Roku to see that you have a screensaver entry point for some reason. I actually use this trick so I only need the "fake" screensaver on newer devices, while legacy devices (which don't go to a black screen) can use the standard screensaver functionality.
app = CreateObject("roAppManager")
? app.GetScreensaverTimeout() ' Returns the number of minutes this Roku waits before running the system screensaver
? Type(app.GetScreensaverTimeout()) ' Returns "Integer"
di = CreateObject("roDeviceInfo")
? di.TimeSinceLastKeypress() ' Returns the number of seconds since the last remote keypress was received.
"Komag" wrote:
looks like using "keypress/Backspace" works fine too, so I can avoid "using up" any remote buttons just for this 🙂
this.CLOCK_KEY_PRESS = 9200
this.CLOCK_KEY_RELEASE = 9300
this.CLOCK_KEY_STRING = "Lit_%E2%8F%B0"
this.WAKEUP_KEY_PRESS = this.CLOCK_KEY_PRESS
this.WAKEUP_KEY_RELEASE = this.CLOCK_KEY_RELEASE
this.WAKEUP_KEY_STRING = this.CLOCK_KEY_STRING