def superClasses(softpkg): # Start with the superclasses from the pull mapping, overriding only # what's different for FRONTEND devices classes = PullComponentMapper.superClasses(softpkg) # Only plain devices are supported for FRONTEND if softpkg.type() == ComponentTypes.DEVICE: deviceinfo = FrontendComponentMapper.getImplementedInterfaces( softpkg) # If this device is any type of tuner, replace the Device_impl base # class with the FRONTEND-specific tuner device class if 'FrontendTuner' in deviceinfo: for parent in classes: if parent['name'] == 'Device': parent['name'] = 'FrontendTunerDevice' parent['package'] = 'frontend' # Add the most specific tuner delegate interface: # (Digital > Analog > Frontend) if 'DigitalTuner' in deviceinfo: classes.append({ 'name': 'digital_tuner_delegation', 'package': 'frontend' }) elif 'AnalogTuner' in deviceinfo: classes.append({ 'name': 'analog_tuner_delegation', 'package': 'frontend' }) else: classes.append({ 'name': 'frontend_tuner_delegation', 'package': 'frontend' }) # Add additonal FRONTEND delegate interfaces if 'RFInfo' in deviceinfo: classes.append({ 'name': 'rfinfo_delegation', 'package': 'frontend' }) if 'RFSource' in deviceinfo: classes.append({ 'name': 'rfsource_delegation', 'package': 'frontend' }) if 'GPS' in deviceinfo: classes.append({ 'name': 'gps_delegation', 'package': 'frontend' }) if 'NavData' in deviceinfo: classes.append({ 'name': 'nav_delegation', 'package': 'frontend' }) return classes
def superClasses(softpkg): # Start with the superclasses from the pull mapping, overriding only # what's different for FRONTEND devices classes = PullComponentMapper.superClasses(softpkg) # Only plain devices are supported for FRONTEND if softpkg.type() == ComponentTypes.DEVICE: deviceinfo = PullComponentMapper.getImplementedInterfaces(softpkg) # If this device is any type of tuner, replace the Device_impl base # class with the FRONTEND-specific tuner device class if 'FrontendTuner' in deviceinfo: for parent in classes: if parent['name'] == 'Device': parent['name'] = 'FrontendTunerDevice' parent['package'] = 'frontend' # Set the parent to scanner if needed if 'DigitalScanningTuner' in deviceinfo or 'AnalogScanningTuner' in deviceinfo: if parent['name'] == 'FrontendTunerDevice': parent['name'] = 'FrontendScannerDevice' return classes
def superClasses(softpkg): # Start with the superclasses from the pull mapping, overriding only # what's different for FRONTEND devices classes = PullComponentMapper.superClasses(softpkg) # Only plain devices are supported for FRONTEND if softpkg.type() == ComponentTypes.DEVICE: deviceinfo = FrontendComponentMapper.getImplementedInterfaces(softpkg) # If this device is any type of tuner, replace the Device_impl base # class with the FRONTEND-specific tuner device class if 'FrontendTuner' in deviceinfo: for parent in classes: if parent['name'] == 'Device': parent['name'] = 'FrontendTunerDevice' parent['package'] = 'frontend' # Add the most specific tuner delegate interface: # (Digital > Analog > Frontend) if 'DigitalTuner' in deviceinfo: classes.append({'name': 'digital_tuner_delegation', 'package': 'frontend'}) elif 'AnalogTuner' in deviceinfo: classes.append({'name': 'analog_tuner_delegation', 'package': 'frontend'}) else: classes.append({'name': 'frontend_tuner_delegation', 'package': 'frontend'}) # Add additonal FRONTEND delegate interfaces if 'RFInfo' in deviceinfo: classes.append({'name': 'rfinfo_delegation', 'package': 'frontend'}) if 'RFSource' in deviceinfo: classes.append({'name': 'rfsource_delegation', 'package': 'frontend'}) if 'GPS' in deviceinfo: classes.append({'name': 'gps_delegation', 'package': 'frontend'}) if 'NavData' in deviceinfo: classes.append({'name': 'nav_delegation', 'package': 'frontend'}) return classes
def _mapComponent(self, softpkg): pycomp = PullComponentMapper._mapComponent(self, softpkg) pycomp['progclass'] = self.progClass(softpkg) return pycomp