Soon there will be three.
First refresh, described as, "Refresh the status at least every [...]" is the full device refresh. It will call the following operations:
Return XML data consisting of all the device information for the Roku. This is the most intensive operation, and the only operation used to determine if the TV is on or off.
Returns data about the media player. This is used to determine play, pause, stop state. This can also provide current position in the stream, the size of the stream (in milliseconds), and various codec details. The response if rather light weight.
Returns a very lightweight response of just the currently running app. When the TV is off, the current app returns to Roku (The name of the home-screen app)
Return XML of all the installed apps. This is used to know what apps are available for installing as a child app, and what the app ID numbers are to active that app.
Second Refresh, described as, "Refresh the current application at least [...]" is for determine what the current app is, and does nothing else. This calls the function
query/active-app which as shown above is rather light weight. I set my main refresh to every 30 seconds, and my app refresh to every 5 seconds.
You can always ask, but in this case, I cannot deliver. It would run counter to the design goals. Device drivers should be simple. Any integration type logic should appear within the rules, not the device driver. Failure to keep things simple and focus strictly on control logic, results in overly complex and less adaptable solutions.
To solve achieve what you want, just create a rule in
Rule Machine that calls refresh every 2 seconds, if the TV is in a Media Player state, like this:
After my next update, I will expose each of the refresh methods as commands, so you can call just the refresh for the media player. For now, this will work, and it should not be too taxing, since it will only enforce the aggressive refresh during media playback. But in addition, I will have logic for the 3rd (media player) refresh that when enabled as a separate refresh, allows the media player to refresh on its own schedule. And the refresh will only take place if the app is already active.
Thank you for bringing this up, as it exposed some more limitations in the driver that need updating.