Ejemplo n.º 1
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':
                        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
Ejemplo n.º 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 = 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
Ejemplo n.º 3
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':
                        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
Ejemplo n.º 4
0
 def _mapComponent(self, softpkg):
     pycomp = PullComponentMapper._mapComponent(self, softpkg)
     pycomp['progclass'] = self.progClass(softpkg)
     return pycomp
Ejemplo n.º 5
0
 def _mapComponent(self, softpkg):
     pycomp = PullComponentMapper._mapComponent(self, softpkg)
     pycomp['progclass'] = self.progClass(softpkg)
     return pycomp