Re: [tvcontrol-api] Why retrieve a list of tuners instead of just one tuner?

I received this feedback from Mr Igarashi:

> My concern was that the implementations of sources could be 
independent so that the capabilities of sources may be constrained.
>
> Looking over the change, I do not prefer that TV Managers handles 
all channels for all sources. Ideally, an application might want to 
seamlessly handle channels across sources, e.g. DVB-T, DVB-S, IPTV 
services, OTT services, HDMI, etc. However, the idea can not be 
supported with some existing systems where each source is implemented 
independently or it is not allowed to handle sources seamlessly due to
 some business issues. Because of those reasons, the most UI on TV 
systems is that users have to select sources and then select a channel
 of the source. To support such existing systems, I think that the TV 
Manager should return list of sources and then a source provides a 
list of channels.
>
> In terms of constrains among sources, I need further study. One 
question is if TV source can represents only constrains among sources 
or it can present constrains among sources as well. I know a TV system
 which supports PinP screens which slow only two video from two DVB-T 
tuners and two DVB-S tuner. Since constrains on sources are very 
completed and implementation specific, I do not think that the TV 
Control WG can define the best mechanize to cover all cases of 
constrains. It would be OK even if the capability and constrains can 
not be pre-deterministic, i.e. try-and-error would be OK.
>
> My suggestion is like the following which is very similar to the 
original model of TV Control API. The Mozilla's model would match the 
existing TV systems. I wonder that the proposal idea matches 
subsidized STBs.

```webidl
partial interface Navigator {
  TVControl tv;
}

interface TVControl {
  Promise<TVManager> getTVManager();
  Promise<TVManager> getRadioManager();
}

interface TVManager {
  TVSourceCapabilities getCapabilities();
  Promise<TVSource> getSource(TVSourceConstraints constraints);
};

interface TVSource {
  isSourceAvailable(TVSourceConstraints constraints);
  TVSourceConstraints getConstraints();
  // A single channel list is managed by the UA.
  Promise<sequence<TVChannel>> getChannelList();

  // The scanning API is TBD (see issue #7):
  Promise<void> startScanning(optional TVStartScanningOptions 
options);
  Promise<void> stopScanning();

  readonly attribute boolean isScanning;
           attribute EventHandler onscanningstatechanged;

  // I've left out the recording, parental control, and CI card APIs
  // for brevity.

  Promise<void> tuneToChannel(TVChannel channel);
  Promise<void> tuneTo(TVTuningParameters parameters);

  // See issue #29 -- alternatively: getDataComponents();
  Promise<TVApplication> getApplications();

  readonly attribute TVMediaStream? stream;

           attribute EventHandler oncurrentchannelchanged;
           attribute EventHandler oneitbroadcasted;
           attribute EventHandler onemergencyalerted;
};
```

-- 
GitHub Notification of comment by chrisn
Please view or discuss this issue at 
https://github.com/w3c/tvcontrol-api/issues/4#issuecomment-275065086 
using your GitHub account

Received on Wednesday, 25 January 2017 09:54:25 UTC