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
Exemple #2
0
    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