This will now allow the mappings between services and channels to be created.
Some basic options have been created for the purpose of allowing certain
level of control of how the mapping is done.
The API code has also been updated to use the htsmsg auto conversion of
strings to map/list where required. Basic approach is check for list/map
first and if that fails fallback to string (if that's whats appropriate
for a mixed type field).
This is done on request if the string can be JSON deserialized. This is
useful for the common API where the webui will be sending in serialized
strings and saves having the special case "args" field.
For things like HTSP, which deal directly in htsmsg, the fields should
already have been converted to the right formats etc...
Really this lot could do with a proper tidy up, but probably for another day
and since this code is kinda shared with showtime I want to keep the changes
to a minimum until I've had a chance to discuss with Andreas.
The idea is that this will become a common API framework for both HTTP
and HTSP. And anything else we might think off.
The only real constraint at the moment is both assume a JSON like input
format (for simplicity) since they currently have that in common.
this is conditional based on a test run from the configure script, as this
type of test is certainly not 100% cross platform compatible.
However its very useful to have a true check of lock ownership rather than
the rather arbitary check that "someone" holds the lock.
navigation is done using a keyboard (no mouse scrolling or touch events
are supported). double clicking a channel (or pressing the enter key
while being selected) will tune to a channel. the channel list can be
hidden by pressing esc or backspace, and brought back by pressing enter.
page-up and page-down are also supported.
Navigation is very primitive. clicking on the logo will step up in
channel list, or you can use the up/down arrows on the keyboard. No UI
for listing channels is available, as this is more of a test to see
what browser are working.