iPeng from 1.3.4 / 1.1.4 (iPad) on will be callable from other Apps through a URL scheme.
There currently is a basic implementation, and proposed enhancements which I would implement if somebody has a need for it.
Update: iPeng 2.0.9/1.4.9 (iPad) will probably support the "?sboxplayer=<MAC>" parameter as described in the advanced section.
This is what will be supported from iPeng 1.3.4/1.1.4 on
iPeng registers a handler for
iPeng 7 also registers a handler for
iPeng also registers a handler for
Comment: Use sbox instead of squeezebox as a common url scheme since obviously only one App can be called even on iPad.
Instead of sbox: iPeng UE will register a handler for
The general scheme will be
ipeng:<URL including protocol>
<URL including protocol>
A URL that is understood by Squeezebox Server or iPeng, so this can be a file URL or an App URL like "spotify://...". Use is currently limited to what Squeezebox Server supports, that means single tracks or streams.
iPeng will open a context menu and ask what to do with the element.
If no URL is specified, iPeng will do nothing.
iPeng understands the following schemes and services:
lfm:// napster:// rhapd:// rtsp:// spotify:, spotify://, spotifyradio:, spotifyradio:// slacker:// wimp:// youtube://
Services and their URL Ranges (http://)
This of course only applies to playable links.
- Spotify (open.spotify.om)
- YouTube (youtube.com)?
- Last.fm (lastfm.<country> or last.fm)
- Pandora (pandora.com)
- Slacker (slacker.com)
- Napster (napster.com)
- Rhapsody (rhapsody.com)
- WiMP (wimp.no and wimp.dk)
Since iPeng 2.0.9/1.4.9, an "sboxplayer" command is supported to select a player to be used. Just add
to the URL that's used to call iPeng.
A player the action should be executed on. If omitted, iPeng will
ask if more than one player is connected on the current server will use the current player. This is a temporary nuisance in iPeng 1.3.4 because it means you have to go back to the calling App if you have to switch players first (switching players will remove the menu from the stack) but that will go away in 1.3.5 when you will be able to switch players from everywhere, including this menu, while it is already a non-issue on iPad for the same reason (you can just bring up the player list to use a different player).
iPeng 7 from version 7.0.2 on supports the x-callback URL calling scheme. http://x-callback-url.com/
To support this, iPeng 7 registers an additional handler:
This handler supports the x-callback URL-scheme:
ipeng-x-callback://x-callback-url/[action]?[x-callback parameters]&[action parameters]
This handler does NOT use the syntax described above but the standardized x-callback format. The following actions are supported:
|No action (empty)||just open App, define a return-url and/or select a player|
|urlmenu||open a URL provided in the "url" parameter|
The following parameters are supported with x-callback, all of them are optional with the exception of the "url" parameter for the urlmenu-action:
|x-source=<name>||Name of source App|
|x-success=<url>||Return-URL to be used by return menu. If this is being supplied, iPeng 7 will show a menu item to return to the calling App in it's main menu|
|sboxplayer=<MAC>||Player to be used|
|url=<url>||URL to be used with the urlmenu action|
|urltitle=<name>||Name for the playable URL provided. This is meant to supply a readable title for the context menu opened to play the URL|
Note: A "url=" parameter needs to be the last parameter in the list. All subsequent parameters will be ignored Note 2: An "x-success=" URL must not include parameters or query strings. If it does, these will be ignored and not called.