This discussion is archived
1 Reply Latest reply: Jul 12, 2009 9:28 PM by 843851 RSS

Cable STB with Two tuners: Can I specify a particular tuner to tune with?

843851 Newbie
Currently Being Moderated
Briefly, I am developing some OCAP stb test Xlets. One of the tests is to tune to a service in the service list and specify a particular tuner to use.

How do I specify a particular tuner to be used for a tune?

I'm pretty new at this but having some success, so I'm finding my way around the system pretty well, but this one has me stumped.

Short Story:
I'm able to tune by first getting the service list and passing the Service into the method.

basically I get the service list:
 // get all available Services from SIManager
        ServiceTypeFilter filter = new ServiceTypeFilter(ServiceType.DIGITAL_TV);
        SIManager siDatabase = SIManager.createInstance();        
        final ServiceList serviceList = siDatabase.filterServices(filter);
When I want to tune, I get the Service with it's sourceId and use the select(Service) method.

I can also get the tuners with
// multiple tuners?
NetworkInterfaceManager = NetworkInterfaceManager.getInstance();
NetworkInterface[] tuners = manager.getNetworkInterfaces();
So how do I get the specify one of the tuners be used for the tune command?

Thanks in advance.


The Tune method:
     * Tune by source ID.
     * @param sourceID
    public void tune(final int sourceID)
        // create OcapLocator with sourceID
        OcapLocator ocapLoc = null;

            // log.logDebug("tuning to sourceID: " + sourceID);
            ocapLoc = new OcapLocator(sourceID);
        catch (InvalidLocatorException e1)
            log.logError("InvalidLocatorException" + e1.getLocalizedMessage());

        if (ocapLoc != null)
            final SIManager siManager = (SIManager) SIManager.createInstance();

            if (siManager != null)
                // Retrieve the service corresponding to the locator
                Service service;
                    service = siManager.getService(ocapLoc);
                    log.logTrace("****** TUNING to: " + sourceID);
                catch (SecurityException e)
                    log.logError("SecurityException: ");
                // TODO: we may want to throw this exception,
                // so the app can tune away or whatever.
                catch ( e)
                    log.logError("InvalidLocatorException: ");
                    // tuneUp();