Freemote is an open source library for remote controlling different kind of services in a household - but primarily for controlling music players and movie players.
But the library and protocol(based on JSON) is flexible enough to handle all kind of services. It consists of 2 kinds of packages: Intent and Outcome.
IntentThis is the "request" from the client. It describes what action the client wants to execute fx. change song, start player, stop coffemachine, list songs etc. It benefits of having an "extras" field that can contain any kind of data supported by JSON(Thats means no binary data unless its base64 encoded).
OutcomeThis is the "response" from the server/service. It describes what outcome the service had executing the action in the recieved intent. The outcome contains a result that describes if the intent was fullfilled(OK), an error happened etc. It also contains an "extras" field as the intent did, an can therefore return any kind of data supported by JSON.
name:"Banshee Audio Player"
IssuesThe current description of freemote has issues with binaries. It is possible to base64 encode it at contain it in the JSON protocol but:
It takes ressources to encode it and decode it It's not usable in a browser.(It cannot read the data from a file and encode it; it cannot decode the recieved base64 and use it for anything usefull)
A solution could be addind a standard that all service have a special binary service too. Fx. if a service is located at http://192.168.1.1:8080/freemote and the intent was to send a binary to it, the following intent would be added to the url:
...resulting in this url(when urlencoded and everything):
Then of course the request has to be a HTTP POST contaning the binary data.
Another issue i security.
Use Patent Claims
Include Install Instructions
These details are provided for information only. No information here is legal advice and should not be used as such.