Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
phoang
Level 7

screensaver?

I did a search on the forums and it did bring up forum posts regarding screensaver but the replies in my opinion is not satisfactory.

There's a post last year asking for documentation on screen saver. It still does not exist.

I've looked at the "clock" and "audioapp" sample, and screensaver implementation is non-trivial so I don't understand why there's no documentation on it.

I also tried the "audioapp" sample http://sourceforge.net/projects/rokusdkexamples/files/audioapp.zip/download but it only runs the default "Roku" screensaver.

The app channel I'm trying to write displays a blank screen on screen saver mode.

It would be great if someone could shed some light on this topic. Perhaps a little more details and not just a link to samples.
0 Kudos
11 Replies
TheEndless
Level 7

Re: screensaver?

"phoang" wrote:
screensaver implementation is non-trivial so I don't understand why there's no documentation on it.

It is actually pretty trivial. Just add a RunScreensaver() function to your code, and it will get executed when the screensaver kicks in.

"phoang" wrote:
The app channel I'm trying to write displays a blank screen on screen saver mode.

Is your channel using the 2D API, by any chance? If so, that would be the problem. The screensaver won't run over a 2D screen, presumably due to memory issues, so you'll get a black screen. I don't know if that's documented, but it definitely should/needs to be. The only way I've found to work around that is to send regular keypresses via ECP to keep the channel alive, and implemented my own screensaver logic. That's definitely a hack, and it prevents the box from going into low power mode, but it's an option...
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
EnTerr
Level 9

Re: screensaver?

Oh, frak me!
It's been almost 4 years since screen savers were introduced and they still haven't had time to document it?
Four. Years.
To give a perspective, that was before Roku can stream 1080 and the remotes had no "Back" button (nor "Replay", nor "Options"). It might have been before i have ever heard about Roku player but for sure before i got one. And i thought i was the king of procrastination. I humbly bow my head before thee, 六.

"TheEndless" wrote:
Just add a RunScreensaver() function to your code, and it will get executed when the screensaver kicks in. Is your channel using the 2D API, by any chance? If so, that would be the problem. The screensaver won't run over a 2D screen ...


  1. So, the system-wide screen saver (henceforth "global SS") is used for channels w/o RunScreensaver() and outside of channels?

  2. If i add RunScreensaver() to my channel, that will be used during my channel run instead of the global SS?

  3. Unless i have a roScreen alive, then none of the two SS will be called - instead screen will be blackened.

  4. Adding an appropriate flag to the manifest will make my SS selectable as system-wide SS?

  5. What's the timeout to activate the local SS, is that the global value from Settings?
0 Kudos
squirreltown
Level 9

Re: screensaver?

"EnTerr" wrote:

  • So, the system-wide screen saver (henceforth "global SS") is used for channels w/o RunScreensaver() and outside of channels?
  • If i add RunScreensaver() to my channel, that will be ran instead of the global SS?
  • Unless i have a roScreen alive, then none of the two SS will be called - instead screen will be blackened.
  • Adding an appropriate flag to the manifest will make my SS selectable as system-wide SS?
  • What's the timeout to activate the local SS, is that the global value from Settings?


  • Pretty sure it's
    1. Yes
    2. Yes
    3. Yes*
    4. Yes
    5. Yes.

    *This is just embarrassing. Like people who bondo their dents but never paint them. So close to finishing the job and then....Squirrel!
    Kinetics Screensavers
    0 Kudos
    TheEndless
    Level 7

    Re: screensaver?

    "EnTerr" wrote:
    Oh, frak me!
    It's been almost 4 years since screen savers were introduced and they still haven't had time to document it?

    It's documented, to some extent, in the PDF SDK documentation. Looks like it got lost when they moved to the wiki...
    Sub RunScreenSaver(Void)

    • Entered when the Roku has hit the configured idle-time. The screensaver to launch is selected by the user on the Screensaver settings page.

    • The Roku box may not start the custom screensaver and will use a default screensaver instead if there is insufficient memory to start a screensaver slideshow

    • roVideoPlayer and roAudioPlayer are not allowed to be run in a screensaver

    • If you have any dialogs with ShowBusyAnimation() enabled, you’ll want to make sure you close and kill the reference before painting a new screen on top of them. Otherwise, your app may lose focus when returning from the screensaver.

    Sub RunScreenSaverSettings(Void)

    • Entered when the user selects “custom settings” on the Screensaver settings page and the application is configured as the system screensaver.
    My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
    Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
    0 Kudos
    Highlighted
    EnTerr
    Level 9

    Re: screensaver?

    "squirreltown" wrote:

    Pretty sure it's
    1. Yes
    2. Yes
    3. Yes*
    4. Yes
    5. Yes.

    *This is just embarrassing. Like people who bondo their dents but never paint them. So close to finishing the job and then....Squirrel!

    There ya go, we just wrote 50% of the documentation. What i find embarrassing is that for years RokuCo cannot find a person to answer the more difficult technical questions and fix documentation. And yet, if i look on LinkedIn, i can find at least couple of "Developer Support Manager at Roku*" . What are they managing, i wonder - and who are they supporting, if not us the developers? Sounds like a case of "Too many chiefs and not enough braves**"! If they are so busy, why don't they authorize some respected community members (TheEndless comes to mind) to make changes to the documentation while they are busy doing... well, whatever they are menagerie-ing.

    (*) no, that's not RokuPatrick nor RokuJoel, nor one "very discerning individual"
    (**) 50% pun intended.

    PS. any relation between Roku and Squirrel Town?!
    0 Kudos
    Roku Employee
    Roku Employee

    Re: screensaver?

    Developer Support Manager, we do have at least three people with the same title, that would be, in org chart order top down:

    -----------------RokuRobB------------------
    -----RokuKevin-----|----RokuChris ------

    Rob and Kevin are the Docs folks, however their primary role is developer support of channels like Hulu+, Fox, Amazon etc.
    Chris does a lot of in-house development for those partners.

    My role is as the developer support lead for the rest of our development community, plus I occasionally am tasked with creating screensavers and holiday channels. I'm not directly involved with documentation writing other than to forward documentation issues that developers turn up on the forums to Rob & Kevin.

    Myself and Danny Ng are responsible for processing and publishing all your channels as well as developer support. But not Docs. Rob has initiated a project in which I am involved to reorganize and update all the docs.

    The relationship between Roku and "Squirreltown" is that he signed the developer agreement, has published a channel, and posts on our forums.

    Which more difficult technical issues do you feel haven't been answered? Let me know and I'll attempt to answer them or find someone who can.

    In some cases the answer may be "we are not going to answer that question at this time" as some things may be in regard to trade secrets or product releases that may be in the works.

    - Joel
    0 Kudos
    EnTerr
    Level 9

    Re: screensaver?

    "RokuJoel" wrote:
    Developer Support Manager, we do have at least three people with the same title, that would be, in org chart order top down:
    -----------------RokuRobB------------------
    -----RokuKevin-----|----RokuChris ------
    Rob and Kevin are the Docs folks, however their primary role is developer support of channels like Hulu+, Fox, Amazon etc.
    Chris does a lot of in-house development for those partners.
    Thank you for shedding light on how things work. I thought it was a good thing when RokuPatrick opened the Dev.blog with introducing the team at the time. Surprising there are only a few devs on the "using Roku" side, considering company is hundreds of people. If there is too much (over)work, mgmt might consider adding extra help.

    My role is as the developer support lead for the rest of our development community, plus I occasionally am tasked with creating screensavers and holiday channels. I'm not directly involved with documentation writing other than to forward documentation issues that developers turn up on the forums to Rob & Kevin. Myself and Danny Ng are responsible for processing and publishing all your channels as well as developer support. But not Docs. Rob has initiated a project in which I am involved to reorganize and update all the docs.
    RokuRobB and RokuKevin should be so kind to come to the forum and address the documentation issues brought here. Like this screen saver doco that has been missing for at least a year (trusting TheEndless, it is somewhere in the old PDFs). It is a gaffe when something like that - repeatedly asked since - has not been noticed and fixed. Some of my questions below are also doc ones. I get the gut feeling they are saying "this is under my level, talking to the plebs".

    The relationship between Roku and "Squirreltown" is that he signed the developer agreement, has published a channel, and posts on our forums.
    Oh, that was a joke to something Squirreltown said - if you see the thread above - namely "*This is just embarrassing. Like people who bondo their dents but never paint them. So close to finishing the job and then....Squirrel!" - was wondering if nickname relates.

    Which more difficult technical issues do you feel haven't been answered? Let me know and I'll attempt to answer them or find someone who can. In some cases the answer may be "we are not going to answer that question at this time" as some things may be in regard to trade secrets or product releases that may be in the works.
    I thought about that and sure - it is understandable some responses might be "answer denied, we consider this proprietary information/trade secret - at this time". Or "we consider it unimportant to fix" or "can you explain to me the significance of this?".

    Here are some unanswered questions of mine from this year (10, because the phpBB thing told me that's max URLs per msg Smiley Happy )
    0 Kudos
    georgejecook
    Level 7

    Re: screensaver?

    I was drawn here by your hilariously titled `objfun = no fun`.

    Are you on the slack group? It's got about 60 people and a some of roku's engineers roku regularly chime in.

    https://join.slack.com/t/rokudevelopers/shared_invite/enQtMzU5Njc5ODM5MzAyLWE2MTIxMWQ5Nzg0Y2E3ODgzYTk4NmQxMDg2YjRjYjdiMzM5ZDU4ZTc0YmM1ZmU0Mzc5MzI3ODU3MmUxOTdlNTE
    George Cook
    https://linkedin.com/in/georgejecook/
    Roku developers slack group (http://tiny.cc/nrdf0y) : georgejecook

    Contact me on roku developer slack group, or via pm to discuss consultancy/work opportunities/rooibos unit testing framework
    0 Kudos
    enter0
    Level 7

    Re: screensaver?

    "georgejecook" wrote:
    I was drawn here by your hilariously titled `objfun = no fun`.

    Are you on the slack group? It's got about 60 people and a some of roku's engineers roku regularly chime in.

    https://join.slack.com/t/rokudevelopers/shared_invite/enQtMzU5Njc5ODM5MzAyLWE2MTIxMWQ5Nzg0Y2E3ODgzYTk4NmQxMDg2YjRjYjdiMzM5ZDU4ZTc0YmM1ZmU0Mzc5MzI3ODU3MmUxOTdlNTE

    FYI, this Slack invite is no longer active/valid.
    0 Kudos