I'm trying to build a plugin for podcast playback, and I have most of the streaming, menu construction, etc. done (based on Slim::Plugin::OPMLBased).
As a part of this I'd like to be able to offer 30s skip features. The plugin function to actually jump position is straightforward, but I haven't been able to figure out how to wire it up in the web UI as well as other control surfaces.
What I think I know:
- Looking at other plugins, like Pandora, I see that its possible to replace the repeat/shuffle buttons for a particular song with custom code in getMetadataFor(). This seems useful, but doesn't appear to apply to anything other than the default web skin, correct? In particular it doesn't seem to change the Material Skin I prefer to use?
- Slim::Hardware::IR probably gets me IR remote control, but its not song-specific like getMetadataFor(). It's also mode-specific, and I'm not sure I should be modifying the mappings for most modes. For example, when the podcast is playing the client mode is "INPUT.List". Conflicts seem likely.
Neither of these approaches seem to work with mobile app controls (Squeezer) or Material Skin.
Looking for other options I tried to patch into the default 'rew' and 'fwd' commands via Slim::Buttons::Common::setFunction(), but those functions don't actually appear on the callpath from the web controls as far as I can tell.
What's the right way to do this? I'm fine with a skip button in the web UI and IR control, but I'd like to be less skin specific. I'm also happy to override rew/fwd if that's a more central location, with the understanding it would need to be an option for users since it's a change in default behavior for those buttons.
Thanks for any help...
As a part of this I'd like to be able to offer 30s skip features. The plugin function to actually jump position is straightforward, but I haven't been able to figure out how to wire it up in the web UI as well as other control surfaces.
What I think I know:
- Looking at other plugins, like Pandora, I see that its possible to replace the repeat/shuffle buttons for a particular song with custom code in getMetadataFor(). This seems useful, but doesn't appear to apply to anything other than the default web skin, correct? In particular it doesn't seem to change the Material Skin I prefer to use?
- Slim::Hardware::IR probably gets me IR remote control, but its not song-specific like getMetadataFor(). It's also mode-specific, and I'm not sure I should be modifying the mappings for most modes. For example, when the podcast is playing the client mode is "INPUT.List". Conflicts seem likely.
Neither of these approaches seem to work with mobile app controls (Squeezer) or Material Skin.
Looking for other options I tried to patch into the default 'rew' and 'fwd' commands via Slim::Buttons::Common::setFunction(), but those functions don't actually appear on the callpath from the web controls as far as I can tell.
What's the right way to do this? I'm fine with a skip button in the web UI and IR control, but I'd like to be less skin specific. I'm also happy to override rew/fwd if that's a more central location, with the understanding it would need to be an option for users since it's a change in default behavior for those buttons.
Thanks for any help...