Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
destruk
Level 10

Remote Consistency

Maybe I just don't understand - but why do you not allow each button on a remote to have a corresponding number/index? I have been trying to get a button map for months and some buttons simply don't have numbers?
Home (hardcoded to kill running app - no way to interrupt)
2=Up
3=Down
4=Left
5=Right
6=Select/OK
8=Rew
9=FF
13=Play

Some screens do not report a button number unless explicitly enabled (like for the springboard screen).
If a user presses a button on the remote, I want to know about it whenever it happens, regardless of what screen is showing or what the box itself is working on. If a routine is coded in the event loop for whatever button it should execute that loop - otherwise it can proceed as normal. It would also be immensely useful to me personally if when a user presses Home, I could send some information to the server - currently Home works as if an EMP hit the customer's house and they just 'disappeared from existence without saying goodbye', which isn't a nice thing to do. I don't get why you would only allow 2 or 3 buttons to do anything when you have all these possible options unless the core would be too slow to scan all 12 buttons on the remote however times per second?

If you could come up with any reason for it, that'd be appreciated. It's just one of those things I curse about when trying to get the box to have a little bit of consistent functionality between screens. As an example - you can go back to the home screen by repeatedly pressing the up button to get there and cleanly exit, or you can press Home to get there and close dirty. If you want every app to be consistent, then either choose one exit strategy or the other. Having two sequences means if I was going back to the category and hit it one too many times, I don't even get an "Are you sure you want to quit" prompt - it just kills itself.

For the category poster screens -- where the thin bar is selected for categories, you can press the down arrow to select the category, or you can press Select/OK, but you can't press Play/Pause to select it. Once the item is highlighted then Play/Pause can be scripted to make it show the detail screen. It's simply a confusing system that would be much easier if all buttons could be individually told to do something. I'd suggest a Default behaviour flag - if not specified leave it the way you have it now, but if it is then allow the channel app to tell it what to do with the buttons individually. There's no reason (as I see it) why the info button shouldn't be used to display say - information on the year of a tv series category, info on a month of a tv series, info on an episode of a tv series, info on the channel itself, info on buttons on dialog boxes - basically allowing it to be used for channel documentation if desired, popups during a film or song with lyrics while the song plays, etc etc etc. And why can't the instant replay button be programmed to take you to a different screen if desired? Like taking you back to the main menu of the app instantly without having to quit the channel and re-enter it, or press Up the requisite number of times?

Hopefully this gives you something to consider. I feel like I'm quite limited by the hard enforced UI and lack of control as it is now. Smiley Sad

You can press UP to go back through previous screens, from the actual playing of centent all the way to the channel select home screen - why can't you allow users to press the down arrow to go all the way through to playing content? It works on some screens to go down - like from the filter category poster screen to the episode itself - but to get from there to the springboard or playing content it's not allowed - confusing.

Now of course I haven't deeply experimented with the controls - the whole "this option works on this screen, but doesn't work on other screens" really screws me up - using button numbers is how I prefer to handle most everything because button 9 is always FF - not needing to mess with "isListItemInfo" and "isButtonInfo" and "InfoButton" and "isInfoButton" and "ProbInfoButton" confusion. Why it's not called the same thing throughout, consistently, is beyond my limited intelligence.
0 Kudos
13 Replies
TheEndless
Level 9

Re: Remote Consistency

The Home button behavior has been discussed extensively on this forum. In a nutshell, allowing the developer to override it could potentially allow for a poorly coded channel to lock a player into the channel, with no way to exit. Here's one thread that explains why Roku chose that behavior: viewtopic.php?f=34&t=28472&p=194582

As for the rest of your argument, it seems somewhat contradictory. The current model enforces a consistent UI experience across all apps. Allowing a developer to override that behavior would break that model and be very confusing for the end user.

That being said, you have the roImageCanvas and the roVideoPlayer that give you full control over the UI and the remote functionality, so if you want to draw a custom UI that behaves the way you suggest, then the tools are already there for you to do so.
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
destruk
Level 10

Re: Remote Consistency

Yes that thought had crossed my mind - to have it consistently inconsistent is probably what they are aiming for. Can you smooth scroll an image across roImageCanvas as fast as it moves in the PosterScreen and have it play sounds the same way?
0 Kudos
destruk
Level 10

Re: Remote Consistency

At least consider the possibility of removing the up button press from exiting the channel - so every app would exit with the home button only... even that would be an improvement to what is inconsistent now. and as far as 'full control' is a discussion thread - what are the button numbers for the instant replay and info button for roimagecanvas? The instant replay button number or information isn't covered in the documentation, and the info button only works on specific screens.
0 Kudos
TheEndless
Level 9

Re: Remote Consistency

"destruk" wrote:
Can you smooth scroll an image across roImageCanvas as fast as it moves in the PosterScreen and have it play sounds the same way?

It sounds like you're talking about the grid screen, not the poster screen. The poster screen doesn't do any smooth scrolling.. ? Assuming you are talking about the grid screen, no there's no way to get the same performance with the image canvas, but the grid screen is relatively new, so I'm sure it's functionality is actively being worked on.

"destruk" wrote:
At least consider the possibility of removing the up button press from exiting the channel - so every app would exit with the home button only... even that would be an improvement to what is inconsistent now.

The up button just closes the current screen. If you want to prevent it from exiting the channel, you could have your root screen re-launch itself on the IsScreenClosed() event. Remember that before the "back" button, the Up button was used to close screens (and still is for users without the new remote), so you don't want to remove a long standing functional behavior, especially considering the better part of the million+ units sold are those without the new remote.
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
destruk
Level 10

Re: Remote Consistency

http://shop.roku.com/Webpage2.aspx?WebpageId=2
every remote has a home button - which one didn't?

As for scrolling, I really thought it scrolled - it doesn't, so it must have been wishful thinking. sorry about that one. I think I'll need to set up something on the server for customer options, or use the info button to try to open an options menu for users who have twitchy fingers like me and hit UP repeatedly to exit to get back to the main screen without exiting the channel. Thanks. I would still prefer an option for the instant replay button to go back to the first screen of the channel - since it looks like a "go back" button. As far as changing longstanding functionality - they changed how the home button worked, so it has been done before. I can support changes that make the product more intuitive to use.
0 Kudos
renojim
Level 21

Re: Remote Consistency

TheEndless was referring to the Back button, not the Home button. Only some remotes have Back, Replay, and Info. You really want your app to be usable by people with both remotes.

-JT
0 Kudos
TheEndless
Level 9

Re: Remote Consistency

"destruk" wrote:
http://shop.roku.com/Webpage2.aspx?WebpageId=2
every remote has a home button - which one didn't?

The Up functionality is what I'm talking about, not the home button. Up closes the window just as the Back button does. The fact that Up exits the application is a function of your implementation (or lack of). Your application is closing, because the last screen in your stack is being closed. You can prevent it from doing so by capturing the IsScreenClosed() event of your top-most screen.

"destruk" wrote:
As far as changing longstanding functionality - they changed how the home button worked, so it has been done before.

They didn't change the functionality from an end-user perspective. Home has always been used to exit the application. It just used to be possible for a developer to prevent it from doing so.
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
destruk
Level 10

Re: Remote Consistency

ok, so by opening a blank registration screen first and then the home screen, I can capture the isclosed event and redraw a screen, and negate the up arrow to exit, however, doing so repeatedly results in thousands of orphaned objects and having a routine call itself is bad coding. Wouldn't it be simpler to make the first screen be the main one for the channel and allow exit with the home button as I originally requested here? The registration screen doesn't allow the up arrow to quit, so why should the first screen your new user sees? Press Home to quit. Sounds reasonable to me.
0 Kudos
TheEndless
Level 9

Re: Remote Consistency

"destruk" wrote:
If anyone is curious - when the last open screen is closed the roku instantly exits. So to do what TheEndless suggests, you need to open two or more screens for the first one, and then when the top level is closed you have time to reopen it again without being kicked out completely. However, for fast clickers it will still be able to exit if you hit up fast enough, so I don't consider this a viable alternative. btw - when you are linking the box, the UP arrow doesn't quit back to the home screen. go figure.

You should have a facade screen at the top of the stack as the SDK suggests, so you can capture the IsScreenClosed() on the last UI screen, before the facade closes, to prevent the instant exit.

The registration and paragraph screens usually contain critical information that require input from the user, so you wouldn't want users accidentally exiting those.

It seems you've made up your mind that it doesn't work the way it should, so I'm not sure any amount of explanation will convince you differently. I just think the current functionality makes sense in most cases.
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