Exemple #1
0
 def testGetEstablishedTimingBitmap(self):
     establishedTimingBitmaps = [0x210800, 0x200000, 0, 0]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getEstablishedTimingBitmap(),
             establishedTimingBitmaps[key])
Exemple #2
0
 def testGetMaximumVerticalImageSize(self):
     maximumVerticalImageSizes = [900, 1300, 3400, 1400]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getMaximumVerticalImageSize(),
             maximumVerticalImageSizes[key])
Exemple #3
0
 def testGetSupportedFeaturesBitmap(self):
     supportedFeaturesBitmaps = [0x0A, 0x05, 0x22, 0x0A]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getSupportedFeaturesBitmap(),
             supportedFeaturesBitmaps[key])
Exemple #4
0
 def testGetVideoInputParametersBitmap(self):
     videoInputParametersBitmaps = [0x80, 0x08, 0xB5, 0x80]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getVideoInputParametersBitmap(),
             videoInputParametersBitmaps[key])
Exemple #5
0
 def testGetMaximumHorizontalImageSize(self):
     maximumHorizontalImageSizes = [16, 17, 60, 26]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getMaximumHorizontalImageSize(),
             maximumHorizontalImageSizes[key])
Exemple #6
0
 def testGetYearOfManufacture(self):
     yearOfManufactures = [2007, 2011, 2014, 2010]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getYearOfManufacture(),
             yearOfManufactures[key])
Exemple #7
0
 def testGetWeekOfManufacture(self):
     weekOfManufactures = [47, 12, 12, 32]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getWeekOfManufacture(),
             weekOfManufactures[key])
Exemple #8
0
 def testGetManufacturerProductCode(self):
     manufacturerProductCodes = [956, 256, 44547, 0x3DC4]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getManufacturerProductCode(),
             manufacturerProductCodes[key])
Exemple #9
0
 def testGetSupportedFeaturesBitmap(self):
     supportedFeaturesBitmaps = [0x0A, 0x05, 0x22, 0x0A]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getSupportedFeaturesBitmap(),
             supportedFeaturesBitmaps[key])
Exemple #10
0
 def testGetNumberOfExtensions(self):
     numberOfExtensions = [1, 0, 2, 1]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getNumberOfExtensions(),
             numberOfExtensions[key])
Exemple #11
0
 def testGetMaximumVerticalImageSize(self):
     maximumVerticalImageSizes = [900, 1300, 3400, 1400]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getMaximumVerticalImageSize(),
             maximumVerticalImageSizes[key])
Exemple #12
0
 def testGetEstablishedTimingBitmap(self):
     establishedTimingBitmaps = [0x210800, 0x200000, 0, 0]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getEstablishedTimingBitmap(),
             establishedTimingBitmaps[key])
Exemple #13
0
 def get_resolutions_display(self, disp):
     '''return a list of resolutions for the specified display'''
     # hash resolutions to avoid probing them twice
     if disp in self._resolutions: return self._resolutions[disp]
     # get supported resolutions from driver
     r = ResolutionList(self.backend.get_display_supported_res(disp))
     if len(r)==0:
         r = ResolutionList('800x600, 640x480')
         self.log.warning('no resolutions found for display %s, falling back to: %s'%(disp, r))
     # bump weight of flat-panel display with 1000
     res = self.backend.get_display_preferred_res(disp)
     if res:
         res = Resolution(res)
         if res in r: r[r.index(res)].weight += 1000
         else: r.append(res)
     # bump weight of EDID resolutions with 100
     edid_data = self.backend.get_display_edid(disp)
     if edid_data:
         edid = Edid(edid_data)
         for d in edid.get_monitor_details():
             title, info = d
             if title != 'Detailed Timing': continue
             res = Resolution([info['horizontal_active'], info['vertical_active']])
             if res in r: r[r.index(res)].weight += 100
             else: r.append(res)
     self.log.info('resolutions of '+str(disp)+': '+', '.join(map(str,sorted(r))))
     self._resolutions[disp] = r
     return r
Exemple #14
0
 def testGetVideoInputParametersBitmap(self):
     videoInputParametersBitmaps = [0x80, 0x08, 0xB5, 0x80]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getVideoInputParametersBitmap(),
             videoInputParametersBitmaps[key])
Exemple #15
0
 def testGetMaximumHorizontalImageSize(self):
     maximumHorizontalImageSizes = [16, 17, 60, 26]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getMaximumHorizontalImageSize(),
             maximumHorizontalImageSizes[key])
Exemple #16
0
 def testGetNumberOfExtensions(self):
     numberOfExtensions = [1, 0, 2, 1]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getNumberOfExtensions(),
             numberOfExtensions[key])
Exemple #17
0
 def testGetYearOfManufacture(self):
     yearOfManufactures = [2007, 2011, 2014, 2010]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getYearOfManufacture(),
             yearOfManufactures[key])
Exemple #18
0
 def testGetWeekOfManufacture(self):
     weekOfManufactures = [47, 12, 12, 32]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getWeekOfManufacture(),
             weekOfManufactures[key])
Exemple #19
0
 def testGetManufacturerProductCode(self):
     manufacturerProductCodes = [956, 256, 44547, 0x3DC4]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(
             edid.getManufacturerProductCode(),
             manufacturerProductCodes[key])
Exemple #20
0
    def testCalculateChecksum(self):
        edid = Edid(data=bytearray(128))
        # put wrong checksum
        edid[127] = 42

        edid.calculateChecksum()
        self.assertTrue(edid.checkChecksum())
        self.assertEqual(edid[127], 0x00)
Exemple #21
0
    def testCalculateChecksum2(self):
        edid = Edid(data=bytearray(128))
        # change data
        edid[0] = 1

        edid.calculateChecksum()
        self.assertTrue(edid.checkChecksum())
        self.assertEqual(edid[127], 255)
Exemple #22
0
 def testGetChromaticityCoordinatesWhite(self):
     chromaticityCoordinatesWhites = [
         (0.312, 0.329), (0.0, 0.0), (0.313, 0.329), (0.313, 0.329)]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         coordinates = edid.getChromaticityCoordinatesWhite()
         self.assertAlmostEqual(
             coordinates[0],
             chromaticityCoordinatesWhites[key][0], places=3)
         self.assertAlmostEqual(
             coordinates[1],
             chromaticityCoordinatesWhites[key][1], places=3)
Exemple #23
0
 def testGetChromaticityCoordinatesRed(self):
     chromaticityCoordinatesReds = [(0.640, 0.330), (0.0, 0.0),
                                    (0.655, 0.332), (0.573, 0.358)]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         coordinates = edid.getChromaticityCoordinatesRed()
         self.assertAlmostEqual(coordinates[0],
                                chromaticityCoordinatesReds[key][0],
                                places=3)
         self.assertAlmostEqual(coordinates[1],
                                chromaticityCoordinatesReds[key][1],
                                places=3)
Exemple #24
0
 def testGetChromaticityCoordinatesBlue(self):
     chromaticityCoordinatesBlues = [
         (0.150, 0.060), (0.0, 0.0), (0.148, 0.047), (0.153, 0.124)]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         coordinates = edid.getChromaticityCoordinatesBlue()
         self.assertAlmostEqual(
             coordinates[0],
             chromaticityCoordinatesBlues[key][0], places=3)
         self.assertAlmostEqual(
             coordinates[1],
             chromaticityCoordinatesBlues[key][1], places=3)
Exemple #25
0
 def testGetChromaticityCoordinatesGreen(self):
     chromaticityCoordinatesGreen = [(0.300, 0.600), (0.0, 0.0),
                                     (0.295, 0.625), (0.339, 0.568)]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         coordinates = edid.getChromaticityCoordinatesGreen()
         self.assertAlmostEqual(coordinates[0],
                                chromaticityCoordinatesGreen[key][0],
                                places=3)
         self.assertAlmostEqual(coordinates[1],
                                chromaticityCoordinatesGreen[key][1],
                                places=3)
Exemple #26
0
    def testCalculateChecksum3(self):
        edid = Edid(data=bytearray(128))
        for i in range(0, 127):
            edid[i] = 2

        # Databytes: 127 * 2 = 254
        # Checksum: 2
        # Sum: 256 % 256 = 0

        edid.calculateChecksum()
        self.assertTrue(edid.checkChecksum())
        self.assertEqual(edid[127], 2)
Exemple #27
0
 def testGetChromaticityCoordinatesRed(self):
     chromaticityCoordinatesReds = [
         (0.640, 0.330), (0.0, 0.0), (0.655, 0.332), (0.573, 0.358)]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         coordinates = edid.getChromaticityCoordinatesRed()
         self.assertAlmostEqual(
             coordinates[0],
             chromaticityCoordinatesReds[key][0], places=3)
         self.assertAlmostEqual(
             coordinates[1],
             chromaticityCoordinatesReds[key][1], places=3)
Exemple #28
0
 def testGetChromaticityCoordinatesGreen(self):
     chromaticityCoordinatesGreen = [
         (0.300, 0.600), (0.0, 0.0), (0.295, 0.625), (0.339, 0.568)]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         coordinates = edid.getChromaticityCoordinatesGreen()
         self.assertAlmostEqual(
             coordinates[0],
             chromaticityCoordinatesGreen[key][0], places=3)
         self.assertAlmostEqual(
             coordinates[1],
             chromaticityCoordinatesGreen[key][1], places=3)
Exemple #29
0
    def testGetStandardTimingInformation(self):
        standardTimingInformations = [
            [(1280, 5.0 / 4.0, 60), (1600, 4.0 / 3.0, 60)],
            [(640, 4.0 / 3.0, 60)],
            [],
            []
        ]
        for key, data in enumerate(self.VALID_EDID_DATA):
            edid = Edid(data=data)
            for index in range(0, 8):
                standardTimingInformation = edid.getStandardTimingInformation(
                    index)
                correctStandardTimingInformation = standardTimingInformations[key][
                    index] if index < len(standardTimingInformations[key]) else (None, None, None)

                self.assertEqual(
                    standardTimingInformation[0],
                    correctStandardTimingInformation[0])
                self.assertEqual(
                    standardTimingInformation[1],
                    correctStandardTimingInformation[1])
                self.assertEqual(
                    standardTimingInformation[2],
                    correctStandardTimingInformation[2])
Exemple #30
0
 def testCheckChecksumInvalid(self):
     edid = Edid(data=self.VALID_EDID_DATA[0])
     edid[127] = 0
     self.assertFalse(edid.checkChecksum())
Exemple #31
0
 def testCheckChecksumValid(self):
     for data in self.VALID_EDID_DATA:
         edid = Edid(data=data)
         self.assertTrue(edid.checkChecksum())
Exemple #32
0
 def testSetVideoInputParametersBitmap(self):
     edid = Edid(data=bytearray(128))
     edid.setVideoInputParametersBitmap(0x80)
     self.assertEqual(edid[20], 0x80)
Exemple #33
0
 def testSetNumberOfExtensions(self):
     edid = Edid(version=1.3)
     edid.setNumberOfExtensions(2)
     self.assertEqual(edid[126], 2)
Exemple #34
0
 def testSetChromaticityCoordinatesRed(self):
     edid = Edid(data=bytearray(128))
     edid.setChromaticityCoordinatesRed(0.888, 0.777)
     self.assertEqual(edid[25], 0x10)
     self.assertEqual(edid[27], 0xE3)
     self.assertEqual(edid[28], 0xC7)
Exemple #35
0
 def testSetChromaticityCoordinatesGreen(self):
     edid = Edid(data=bytearray(128))
     edid.setChromaticityCoordinatesGreen(0.888, 0.777)
     self.assertEqual(edid[25], 0x01)
     self.assertEqual(edid[29], 0xE3)
     self.assertEqual(edid[30], 0xC7)
Exemple #36
0
 def testSetChromaticityCoordinatesWhite(self):
     edid = Edid(data=bytearray(128))
     edid.setChromaticityCoordinatesWhite(0.888, 0.777)
     self.assertEqual(edid[26], 0x01)
     self.assertEqual(edid[33], 0xE3)
     self.assertEqual(edid[34], 0xC7)
Exemple #37
0
 def testSetChromaticityCoordinatesBlue(self):
     edid = Edid(data=bytearray(128))
     edid.setChromaticityCoordinatesBlue(0.888, 0.777)
     self.assertEqual(edid[26], 0x10)
     self.assertEqual(edid[31], 0xE3)
     self.assertEqual(edid[32], 0xC7)
Exemple #38
0
 def testSetChromaticityCoordinatesGreen(self):
     edid = Edid(data=bytearray(128))
     edid.setChromaticityCoordinatesGreen(0.888, 0.777)
     self.assertEqual(edid[25], 0x01)
     self.assertEqual(edid[29], 0xE3)
     self.assertEqual(edid[30], 0xC7)
Exemple #39
0
    def testCalculateChecksum(self):
        edid = Edid(data=bytearray(128))
        edid[-1] = 42

        edid.calculateChecksum()
        self.assertEqual(edid[127], 0x00)
Exemple #40
0
 def testSetChromaticityCoordinatesWhite(self):
     edid = Edid(data=bytearray(128))
     edid.setChromaticityCoordinatesWhite(0.888, 0.777)
     self.assertEqual(edid[26], 0x01)
     self.assertEqual(edid[33], 0xE3)
     self.assertEqual(edid[34], 0xC7)
Exemple #41
0
 def testSetChromaticityCoordinatesRed(self):
     edid = Edid(data=bytearray(128))
     edid.setChromaticityCoordinatesRed(0.888, 0.777)
     self.assertEqual(edid[25], 0x10)
     self.assertEqual(edid[27], 0xE3)
     self.assertEqual(edid[28], 0xC7)
Exemple #42
0
 def testSetMaximumVerticalImageSize(self):
     edid = Edid(data=bytearray(128))
     edid.setMaximumVerticalImageSize(0x80)
     self.assertEqual(edid[22], 0x80)
Exemple #43
0
 def testSetChromaticityCoordinatesBlue(self):
     edid = Edid(data=bytearray(128))
     edid.setChromaticityCoordinatesBlue(0.888, 0.777)
     self.assertEqual(edid[26], 0x10)
     self.assertEqual(edid[31], 0xE3)
     self.assertEqual(edid[32], 0xC7)
Exemple #44
0
 def testSetSupportedFeaturesBitmap(self):
     edid = Edid(data=bytearray(128))
     edid.setSupportedFeaturesBitmap(10)
     self.assertEqual(edid[24], 10)
Exemple #45
0
    def testSetStandardTimingInformation(self):
        for index in range(0, 8):
            edid = Edid(version=1.2)
            edid.setStandardTimingInformation(index, 640, 1.0, 70)
            self.assertEqual(edid[38 + 2 * index + 0], 49)
            self.assertEqual(edid[38 + 2 * index + 1], 10)

            edid = Edid(version=1.3)
            edid.setStandardTimingInformation(index, None, None, None)
            self.assertEqual(edid[38 + 2 * index + 0], 1)
            self.assertEqual(edid[38 + 2 * index + 1], 1)

            edid = Edid(version=1.3)
            edid.setStandardTimingInformation(index, 256, 16.0 / 10.0, 80)
            self.assertEqual(edid[38 + 2 * index + 0], 1)
            self.assertEqual(edid[38 + 2 * index + 1], 20)

            edid = Edid(version=1.3)
            edid.setStandardTimingInformation(index, 1024, 4.0 / 3.0, 90)
            self.assertEqual(edid[38 + 2 * index + 0], 97)
            self.assertEqual(edid[38 + 2 * index + 1], 94)

            edid = Edid(version=1.3)
            edid.setStandardTimingInformation(index, 1600, 5.0 / 4.0, 100)
            self.assertEqual(edid[38 + 2 * index + 0], 169)
            self.assertEqual(edid[38 + 2 * index + 1], 168)

            edid = Edid(version=1.3)
            edid.setStandardTimingInformation(index, 1920, 16.0 / 9.0, 120)
            self.assertEqual(edid[38 + 2 * index + 0], 209)
            self.assertEqual(edid[38 + 2 * index + 1], 252)
Exemple #46
0
 def testSetDisplayGamma(self):
     edid = Edid(data=bytearray(128))
     edid.setDisplayGamma(2.2)
     self.assertEqual(edid[23], 120)
Exemple #47
0
 def testSetEstablishedTimingBitmap(self):
     edid = Edid(data=bytearray(128))
     edid.setEstablishedTimingBitmap(0x123456)
     self.assertEqual(edid[35:38], bytearray.fromhex('12 34 56'))
Exemple #48
0
 def testGetDisplayGamma(self):
     displayGammas = [2.2, 2.2, 2.2, 2.2]
     for key, data in enumerate(self.VALID_EDID_DATA):
         edid = Edid(data=data)
         self.assertEqual(edid.getDisplayGamma(), displayGammas[key])