What information would you need that's not already included in the Capabilities class? Right now with Flash and AIR we can get access to screenDPI, screenResolutionX/Y, as well as color depth information.

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/Capabilities.html

Brent

On 2/28/12 11:36 AM, Erik Lundgren wrote:
Dear list,

Talking about displays and their native ppi:s we've mentioned ANEs a couple of 
time. I've tried to research this, because I believe there are real use-cases 
if we could get it to work – layout elements based on the users context, not 
his/hers device.

I'm a FLEX developer and feel that an ANE is a bit over my head. I may be able 
to figure something out in java, but everything I've been able to research 
about it points at C. And that is a no go for me at the moment.

Are there any C gurus on the list? :)


If anyone, more capable than me, would be willing to explore this with me I've 
tried to collect some material.

1. http://en.wikipedia.org/wiki/Extended_display_identification_data
2. http://www.insanelymac.com/forum/index.php?showtopic=208410
3. http://cgit.freedesktop.org/xorg/app/edid-decode/
4. https://github.com/claar/php-edid-decode
5. http://www.madrau.com/indexSRX4.html

First. There seems to be a spec regulating information exchanged between pc:s 
and monitors called EDID. [1]
Desktop computers stores EDID information in their registry, but in a binary 
format that needs to be parsed.
I can find the EDID data on my mac, following the guidelines given at [2].
I don't have access to a windows machine to search for it on that OS.

There is an active C project for parsing the EDID data at [3]. Not sure about 
licensing.
There is a php port at [4] if that would help us. Not sure about licensing.

On mac you can get parsed EDID-data using an application like SwitchResX. [5]

And looking at the output the program can generate from my system it seems 
really promising. I can read that my screens physical size is 286 mm x 179 mm, 
and a pixel size 1280 x 800 px. This is all I need to calculate my screens 
correct ppi (113 px/inch).

I'm enclosing the full print out below. It could serve as the foundation for the 
ActionScript ANE interface. I'm thinking something like a "NativeScreen" class, 
collecting properties like:

gamma:Number
timing:Number
widthCm:uint
heightCm:uint
widthInch:uint
heightInch:uint
widthPixel
heightPixel
ppi:uint

...

I'm sure there are some pain's down this road, but maybe there is a path ahed. 
Does this make anyone itch? Sorry for the mac-twisted research. I don't have 
access to windows at the moment.

Yours
/Erik



Printout from SwitchResX:

DDC block report generated by SwitchResX version 4.2.7 for display
Color LCD


-----------------------------------------------------
------------------- RAW DATA ------------------------
-----------------------------------------------------
       0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
-----------------------------------------------------
0  | 00 FF FF FF FF FF FF 00 06 10 BD 9C 00 00 00 00
1  | 03 13 01 03 80 1D 12 78 0A 00 00 00 00 00 00 00
2  | 00 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
3  | 01 01 01 01 01 01 52 1C 00 8F 50 20 2E 30 30 20
4  | 36 00 1E B3 10 00 00 18 00 00 00 01 00 06 10 20
5  | 00 00 00 00 00 00 00 00 0A 20 00 00 00 FE 00 4C
6  | 50 31 33 33 57 58 33 2D 54 4C 41 31 00 00 00 FE
7  | 00 43 6F 6C 6F 72 20 4C 43 44 0A 20 20 20 00 41

-----------------------------------------------------
  <   00FFFFFF FFFFFF00 0610BD9C 00000000 03130103 801D1278 0A000000 00000000 
00505400 00000101 01010101 01010101 01010101 0101521C 008F5020 2E303020 36001EB3 
10000018 00000001 00061020 00000000 00000000 0A200000 00FE004C 50313333 5758332D 
544C4131 000000FE 00436F6C 6F72204C 43440A20 20200041        >

-----------------------------------------------------
  {  0x00, 0xFF, 0xFF, 0xFF,  0xFF, 0xFF, 0xFF, 0x00,  0x06, 0x10, 0xBD, 0x9C,  
0x00, 0x00, 0x00, 0x00,  0x03, 0x13, 0x01, 0x03,  0x80, 0x1D, 0x12, 0x78,  
0x0A, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,  0x00, 0x50, 0x54, 0x00,  
0x00, 0x00, 0x01, 0x01,  0x01, 0x01, 0x01, 0x01,  0x01, 0x01, 0x01, 0x01,  
0x01, 0x01, 0x01, 0x01,  0x01, 0x01, 0x52, 0x1C,  0x00, 0x8F, 0x50, 0x20,  
0x2E, 0x30, 0x30, 0x20,  0x36, 0x00, 0x1E, 0xB3,  0x10, 0x00, 0x00, 0x18,  
0x00, 0x00, 0x00, 0x01,  0x00, 0x06, 0x10, 0x20,  0x00, 0x00, 0x00, 0x00,  
0x00, 0x00, 0x00, 0x00,  0x0A, 0x20, 0x00, 0x00,  0x00, 0xFE, 0x00, 0x4C,  
0x50, 0x31, 0x33, 0x33,  0x57, 0x58, 0x33, 0x2D,  0x54, 0x4C, 0x41, 0x31,  
0x00, 0x00, 0x00, 0xFE,  0x00, 0x43, 0x6F, 0x6C,  0x6F, 0x72, 0x20, 0x4C,  
0x43, 0x44, 0x0A, 0x20,  0x20, 0x20, 0x00, 0x41,     }

-----------------------------------------------------
        Valid EDID block: checksum passed

-----------------------------------------------------
------------------- MAIN EDID BLOCK -----------------
-----------------------------------------------------

EDID Version........1.3
Manufacturer........APP
Product Code........48540 (BD9C) (9CBD)
Serial Number.......00000000

Manufactured........Week 3 of year 2009
Max H Size..........29 cm
Max V Size..........18 cm
Gamma...............2,20

Display Supported Features:
---------------------------


Display type:
-------------
        RGB 4:4:4&  YCrCb 4:4:4 Color Encoding Formats
        Display is non continuous frequency
        Default color space is not sRGB standard
        Preferred timing mode includes Native Pixel Format


Input signal&  sync:
--------------------
Digital Input
        Color Bit Depth is undefined
        Digital Interface is not defined


Color info:
-----------
Red x = 0,000  Green x = 0,000  Blue x = 0,000  White x = 0,312
Red y = 0,000  Green y = 0,000  Blue y = 0,000  White y = 0,328

Established Timings:
--------------------

Manufacturer Reserved Timings:
------------------------------

Standard Timing Identification:
-------------------------------

Monitor Description blocks:
---------------------------
        Descriptor #0 - Timing definition:
        Mode = 1280 x 800 @ 60,223Hz
                Pixel Clock............. 72,50 MHz              Non-Interlaced

                                        Horizontal              Vertical
                Active.................. 1280 pixels             800 lines
                Front Porch.............   48 pixels               3 lines
                Sync Width..............   32 pixels               6 lines
                Back Porch..............   63 pixels              37 lines
                Blanking................  143 pixels              46 lines
                Total................... 1423 pixels             846 lines
                Scan Rate...............  50,949 kHz             60,223 Hz

                Image Size..............  286 mm                 179 mm
                Border..................    0 pixels               0 lines

                        Sync: Digital separate with
                                * Negative vertical polarity
                                * Negative horizontal polarity

        Descriptor #1 - Manufacturer specific data (not interpreted here)

        Descriptor #2 - ASCII data:
                        LP133WX3-TLA1

        Descriptor #3 - ASCII data:
                        Color LCD


Reply via email to