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_impl': parent[ 'name'] = 'frontend::FrontendTunerDevice<frontend_tuner_status_struct_struct>' parent['header'] = '<frontend/frontend.h>' # Set the parent to scanner if needed if 'DigitalScanningTuner' in deviceinfo or 'AnalogScanningTuner' in deviceinfo: if parent[ 'name'] == 'frontend::FrontendTunerDevice<frontend_tuner_status_struct_struct>': parent[ 'name'] = 'frontend::FrontendScanningTunerDevice<frontend_tuner_status_struct_struct>' 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_impl': parent[ 'name'] = 'frontend::FrontendTunerDevice<frontend_tuner_status_struct_struct>' parent['header'] = '<frontend/frontend.h>' # Add the most specific tuner delegate interface: # (Digital > Analog > Frontend) if 'DigitalTuner' in deviceinfo: classes.append({ 'name': 'virtual frontend::digital_tuner_delegation', 'header': '' }) elif 'AnalogTuner' in deviceinfo: classes.append({ 'name': 'virtual frontend::analog_tuner_delegation', 'header': '' }) else: classes.append({ 'name': 'virtual frontend::frontend_tuner_delegation', 'header': '' }) # Add additonal FRONTEND delegate interfaces if 'RFInfo' in deviceinfo: classes.append({ 'name': 'virtual frontend::rfinfo_delegation', 'header': '' }) if 'RFSource' in deviceinfo: classes.append({ 'name': 'virtual frontend::rfsource_delegation', 'header': '' }) if 'GPS' in deviceinfo: classes.append({ 'name': 'virtual frontend::gps_delegation', 'header': '' }) if 'NavData' in deviceinfo: classes.append({ 'name': 'virtual frontend::nav_delegation', 'header': '' }) 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_impl': parent['name'] = 'frontend::FrontendTunerDevice<frontend_tuner_status_struct_struct>' parent['header'] = '<frontend/frontend.h>' # Add the most specific tuner delegate interface: # (Digital > Analog > Frontend) if 'DigitalTuner' in deviceinfo: classes.append({'name': 'virtual frontend::digital_tuner_delegation', 'header': ''}) elif 'AnalogTuner' in deviceinfo: classes.append({'name': 'virtual frontend::analog_tuner_delegation', 'header': ''}) else: classes.append({'name': 'virtual frontend::frontend_tuner_delegation', 'header': ''}) # Add additonal FRONTEND delegate interfaces if 'RFInfo' in deviceinfo: classes.append({'name': 'virtual frontend::rfinfo_delegation', 'header': ''}) if 'RFSource' in deviceinfo: classes.append({'name': 'virtual frontend::rfsource_delegation', 'header': ''}) if 'GPS' in deviceinfo: classes.append({'name': 'virtual frontend::gps_delegation', 'header': ''}) if 'NavData' in deviceinfo: classes.append({'name': 'virtual frontend::nav_delegation', 'header': ''}) return classes