ah ah ah.. so I was looking shadows on the wall of the cavern supposing them to be real things :)
Anyway with you packed string (thanks again!) it seems I have meaningful results. I add it here for the posterity (hiding the serial number, just in case..), when we'll have 250 dpi monitors.
$VAR1 = {
'diagonal_size' => '21.5406146150976',
'monitor_details' => '',
'serial_number' => 1234,
'edid_revision' => 3,
'standard_timings' => [
{
'Y' => '1080',
'vfreq' => 60,
'X' => 1920,
'ratio' => '16/9'
},
{
'Y' => '900',
'vfreq' => 60,
'ratio' => '16/10',
'X' => 1440
},
{
'vfreq' => 75,
'Y' => '900',
'X' => 1440,
'ratio' => '16/10'
},
{
'X' => 1680,
'ratio' => '16/10',
'vfreq' => 60,
'Y' => '1050'
},
{
'X' => 1280,
'ratio' => '16/9',
'Y' => '720',
'vfreq' => 60
},
{
'vfreq' => 60,
'Y' => '1024',
'X' => 1280,
'ratio' => '5/4'
}
],
'video_input_definition' => {
'composite_sync' => 0,
'voltage_level' => 0,
'separate_sync' => 0,
'sync_on_green' => 0,
'digital' => 1
},
'ratio_name' => '16/9',
'detailed_timings' => [
{
'vertical_sync_positive' => 1,
'horizontal_sync_pulse_width' => 4
+4,
'horizontal_dpi' => '102.238993710
+692',
'horizontal_sync_offset' => 88,
'vertical_image_size' => 268,
'preferred' => 1,
'vertical_border' => 0,
'horizontal_blanking' => 280,
'ModeLine_comment' => '# Monitor p
+referred modeline (60.0 Hz vsync, 67.5 kHz hsync, ratio 16/9, 102 dpi
+)',
'interlaced' => 0,
'vertical_dpi' => '102.35820895522
+4',
'stereo' => 0,
'horizontal_sync_positive' => 1,
'digital_composite' => 3,
'vertical_active' => 1080,
'horizontal_active' => 1920,
'vertical_sync_offset' => 4,
'pixel_clock' => '148.5',
'vertical_sync_pulse_width' => 5,
'horizontal_border' => 0,
'ModeLine' => '"1920x1080" 148.5 1
+920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync',
'horizontal_image_size' => 477,
'vertical_blanking' => 45
}
],
'max_size_precision' => 'mm',
'gamma' => 120,
'max_size_horizontal' => '47.7',
'VertRefresh' => '56-76',
'extension_flag' => 1,
'feature_support' => {
'DPMS_suspend' => 0,
'DPMS_active_off' => 1,
'rgb' => 0,
'has_preferred_timing' => 1,
'GTF_compliance' => 0,
'sRGB_compliance' => 0,
'DPMS_standby' => 0
},
'max_size_vertical' => '26.8',
'week' => 5,
'manufacturer_name' => 'PHL',
'serial_number2' => [
'############'
],
'checksum' => 61,
'EISA_ID' => 'PHLc0e5',
'monitor_name' => 'PHL 227E6',
'ratio' => '1.77985074626866',
'year' => 2016,
'monitor_range' => {
'vertical_max' => 76,
'horizontal_max' => 83,
'pixel_clock_max' => 170,
'vertical_min' => 56,
'horizontal_min' => 30
},
'established_timings' => [
{
'Y' => '480',
'vfreq' => 60,
'X' => 640
},
{
'X' => 640,
'Y' => '480',
'vfreq' => 67
},
{
'X' => 640,
'Y' => '480',
'vfreq' => 72
},
{
'vfreq' => 75,
'Y' => '480',
'X' => 640
},
{
'X' => 720,
'vfreq' => '70',
'Y' => '400'
},
{
'vfreq' => 60,
'Y' => '600',
'X' => 800
},
{
'vfreq' => 75,
'Y' => '600',
'X' => 800
},
{
'Y' => '768',
'vfreq' => 60,
'X' => 1024
},
{
'Y' => '768',
'vfreq' => 75,
'X' => 1024
},
{
'X' => 1280,
'vfreq' => '75',
'Y' => '1024'
}
],
'HorizSync' => '30-83',
'ratio_precision' => 'mm',
'product_code' => 49381,
'edid_version' => 1
};
Even if I will remove mm calculation from my code, what is better than learn yet another unuseful thing? :)