@ -441,7 +441,7 @@ function calcMain() {
if ( Global _InputVars [ 'V_SW_INT' ] == '' ) { submitVar ( 'V_SW_INT' ) }
* /
if ( ! input _ok ( ) ) { clearResults ( ) ; return ; }
if ( ! input _ok ( ) ) { clearResults ( ) ; $ ( '#TIMING_FORMAT_NAME' ) . html ( '' ) ; return ; }
var hres = Global _InputVars [ 'HRES' ] ;
var vres = Global _InputVars [ 'VRES' ] ;
@ -462,178 +462,257 @@ function calcMain() {
var v _eff = Timing [ 'V_EFF' ] * scan
var freq _act = Timing [ 'F_ACTUAL' ] ;
/ *
var results = {
hres : hres ,
vres : vres ,
freq : freq ,
px _bits : color _depth ,
px _format : px _format ,
comp : comp ,
scan : scan ,
Timing : Timing ,
// Calculate results
// Resolution with blanking intervals
h _eff : Timing [ 'H_EFF' ] ,
v _eff : Timing [ 'V_EFF' ] ,
// Aspect ratio
ratio _num : hres / vres ,
ratio _str : ( hres / GCD ( hres , vres ) ) + ':' + ( vres / GCD ( hres , vres ) ) ,
// Total pixel count of image
px _per _frame : hres * vres ,
px _per _frame _eff : ( Timing [ 'H_EFF' ] ) * ( Timing [ 'V_EFF' ] ) ,
// Size (bits) of one frame
bits _per _frame : hres * vres * color _depth ,
bits _per _frame _eff : ( Timing [ 'H_EFF' ] ) * ( Timing [ 'V_EFF' ] ) * color _depth ,
// Pixel clock
px _per _sec : hres * vres * Timing [ 'F_ACTUAL' ] ,
px _per _sec _eff : ( Timing [ 'H_EFF' ] ) * ( Timing [ 'V_EFF' ] ) * Timing [ 'F_ACTUAL' ] ,
// Raw bit rate
bits _per _sec _eff : ( Timing [ 'H_EFF' ] ) * ( Timing [ 'V_EFF' ] ) * color _depth * Timing [ 'F_ACTUAL' ] ,
} ; * /
Detailed _Results [ 'data_rate' ] = SI (
( h _eff * v _eff * freq _act * color _depth / px _format / scan / comp ) ,
'bit/s' ,
{ 'p' : 2 , 'output' : 'split' } ,
) ;
Detailed _Results [ '8b10b' ] = SI (
( h _eff * v _eff * freq _act * color _depth / px _format / scan / comp ) * ( 1.25 ) ,
'bit/s' ,
{ 'p' : 2 , 'output' : 'split' } ,
) ;
Detailed _Results [ '16b18b' ] = SI (
( h _eff * v _eff * freq _act * color _depth / px _format / scan / comp ) * ( 1.125 ) ,
'bit/s' ,
{ 'p' : 2 , 'output' : 'split' } ,
) ;
Detailed _Results [ 'pixel_rate' ] = SI (
( h _eff * v _eff * freq _act / scan ) ,
'px/s' ,
{ 'p' : [ 3 , 'b1' , 'k1' , 'M1' ] , 'output' : 'split' } ,
) ;
Detailed _Results [ 'pixel_rate_active' ] = SI (
( hres * vres * freq _act / scan ) ,
'px/s' ,
{ 'p' : [ 3 , 'b1' , 'k1' , 'M1' ] , 'output' : 'split' } ,
) ;
Detailed _Results [ 'active_px' ] = {
'h' : hres ,
'v' : vres ,
't' : SI ( hres * vres , 'px' , { 'p' : 0 , 'output' : 'split' , 'include' : [ 'b' ] } ) ,
}
Detailed _Results [ 'blank_px' ] = {
'h' : h _eff - hres ,
'v' : v _eff - vres ,
't' : SI ( ( h _eff * v _eff ) - ( hres * vres ) , 'px' , { 'p' : 0 , 'output' : 'split' , 'include' : [ 'b' ] } ) ,
}
Detailed _Results [ 'total_px' ] = {
'h' : h _eff ,
'v' : v _eff ,
't' : SI ( h _eff * v _eff , 'px' , { 'p' : 0 , 'output' : 'split' , 'exclude' : [ '<B' , '>B' ] } ) ,
}
Detailed _Results [ 'overhead_px' ] = {
'h' : SI ( 100 * ( ( h _eff / hres ) - 1 ) , '%' , { 'p' : 2 , 'output' : 'split' , 'exclude' : [ '<B' , '>B' ] } ) ,
'v' : SI ( 100 * ( ( v _eff / vres ) - 1 ) , '%' , { 'p' : 2 , 'output' : 'split' , 'exclude' : [ '<B' , '>B' ] } ) ,
't' : SI ( 100 * ( ( ( h _eff * v _eff ) / ( hres * vres ) ) - 1 ) , '%' , { 'p' : 2 , 'output' : 'split' , 'exclude' : [ '<B' , '>B' ] } ) ,
// DATA TRANSMISSION
{
Detailed _Results [ 'data_rate' ] = SI (
( h _eff * v _eff * freq _act * color _depth / px _format / scan / comp ) ,
'bit/s' ,
{ 'p' : 2 , 'output' : 'split' } ,
) ;
Detailed _Results [ '8b10b' ] = SI (
( h _eff * v _eff * freq _act * color _depth / px _format / scan / comp ) * ( 1.25 ) ,
'bit/s' ,
{ 'p' : 2 , 'output' : 'split' } ,
) ;
Detailed _Results [ '16b18b' ] = SI (
( h _eff * v _eff * freq _act * color _depth / px _format / scan / comp ) * ( 1.125 ) ,
'bit/s' ,
{ 'p' : 2 , 'output' : 'split' } ,
) ;
Detailed _Results [ 'pixel_rate' ] = SI (
( h _eff * v _eff * freq _act / scan ) ,
'px/s' ,
{ 'p' : [ 3 , 'b1' , 'k1' , 'M1' ] , 'output' : 'split' } ,
) ;
Detailed _Results [ 'pixel_rate_active' ] = SI (
( hres * vres * freq _act / scan ) ,
'px/s' ,
{ 'p' : [ 3 , 'b1' , 'k1' , 'M1' ] , 'output' : 'split' } ,
) ;
}
// RESOLUTION
{
Detailed _Results [ 'active_px' ] = {
'h' : { 'val' : hres } ,
'v' : { 'val' : vres } ,
't' : SI ( hres * vres , 'px' , { 'p' : 0 , 'output' : 'split' , 'include' : [ 'b' ] } ) ,
} ;
Detailed _Results [ 'blank_px' ] = {
'h' : { 'val' : h _eff - hres } ,
'v' : { 'val' : v _eff - vres } ,
't' : SI ( ( h _eff * v _eff ) - ( hres * vres ) , 'px' , { 'p' : 0 , 'output' : 'split' , 'include' : [ 'b' ] } ) ,
} ;
Detailed _Results [ 'total_px' ] = {
'h' : { 'val' : h _eff } ,
'v' : { 'val' : v _eff } ,
't' : SI ( h _eff * v _eff , 'px' , { 'p' : 0 , 'output' : 'split' , 'exclude' : [ '<B' , '>B' ] } ) ,
} ;
Detailed _Results [ 'overhead_px' ] = {
'h' : SI ( 100 * ( ( h _eff / hres ) - 1 ) , '%' , { 'p' : 2 , 'output' : 'split' , 'exclude' : [ '<B' , '>B' ] } ) ,
'v' : SI ( 100 * ( ( v _eff / vres ) - 1 ) , '%' , { 'p' : 2 , 'output' : 'split' , 'exclude' : [ '<B' , '>B' ] } ) ,
't' : SI ( 100 * ( ( ( h _eff * v _eff ) / ( hres * vres ) ) - 1 ) , '%' , { 'p' : 2 , 'output' : 'split' , 'exclude' : [ '<B' , '>B' ] } ) ,
} ;
}
if ( $ ( 'input[name=COLOR_DEPTH_SLCT]:checked' ) . val ( ) == 'Custom' ) {
if ( color _depth % 3 == 0 ) { Detailed _Results [ 'bpc' ] = { 'val' : color _depth / 3 , 'unit' : 'bpc' } ; }
else { Detailed _Results [ 'bpc' ] = { 'val' : '-' , 'unit' : '' } ; }
// FORMAT
{
if ( $ ( 'input[name=COLOR_DEPTH_SLCT]:checked' ) . val ( ) == 'Custom' ) {
if ( color _depth % 3 == 0 ) { Detailed _Results [ 'bpc' ] = { 'val' : color _depth / 3 , 'unit' : 'bpc' } ; }
else { Detailed _Results [ 'bpc' ] = { 'val' : '-' , 'unit' : '' } ; }
}
else {
Detailed _Results [ 'bpc' ] = { 'val' : color _depth / 3 , 'unit' : 'bpc' } ;
}
Detailed _Results [ 'bpp' ] = { 'val' : color _depth , 'unit' : 'bit/px' } ;
Detailed _Results [ 'palette' ] = SI ( Math . pow ( 2 , color _depth ) , 'colors' , { 'p' : 0 , 'output' : 'split' , 'include' : [ 'b' ] } ) ;
if ( $ ( 'input[name=PX_FORMAT_SLCT]:checked' ) . val ( ) == 'RGB' ) { Detailed _Results [ 'px_format' ] = 'RGB' ; }
else if ( $ ( 'input[name=PX_FORMAT_SLCT]:checked' ) . val ( ) == 'YCBCR 4:4:4' ) { Detailed _Results [ 'px_format' ] = 'YC<sub>B</sub>C<sub>R</sub> 4:4:4' ; }
else if ( $ ( 'input[name=PX_FORMAT_SLCT]:checked' ) . val ( ) == 'YCBCR 4:2:2' ) { Detailed _Results [ 'px_format' ] = 'YC<sub>B</sub>C<sub>R</sub> 4:2:2' ; }
else if ( $ ( 'input[name=PX_FORMAT_SLCT]:checked' ) . val ( ) == 'YCBCR 4:2:0' ) { Detailed _Results [ 'px_format' ] = 'YC<sub>B</sub>C<sub>R</sub> 4:2:0' ; }
if ( scan == 1 ) { Detailed _Results [ 'scan' ] = 'Progressive' ; }
if ( scan == 2 ) { Detailed _Results [ 'scan' ] = 'Interlaced' ; }
}
// VERTICAL REFRESH FOR PROGRESSIVE SCAN
{
Detailed _Results [ 'v_freq' ] = SI (
freq ,
'Hz' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '>=b' ] } ,
) ;
Detailed _Results [ 'v_freq_actual' ] = SI (
freq _act ,
'Hz' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '>=b' ] } ,
) ;
Detailed _Results [ 'v_freq_dev' ] = SI (
Math . abs ( freq - freq _act ) ,
'Hz' ,
{ 'p' : 6 , 'output' : 'split' , 'include' : [ '>=b' ] } ,
) ;
Detailed _Results [ 'v_freq_dev_perc' ] = SI (
Math . abs ( 100 * ( ( freq - freq _act ) / freq ) ) ,
'%' ,
{ 'p' : 6 , 'output' : 'split' , 'include' : [ 'b' ] } ,
) ;
Detailed _Results [ 'v_per' ] = SI (
1 / freq ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
Detailed _Results [ 'v_per_actual' ] = SI (
1 / freq _act ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
Detailed _Results [ 'v_per_dev' ] = SI (
Math . abs ( ( 1 / freq ) - ( 1 / freq _act ) ) ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
Detailed _Results [ 'v_per_dev_perc' ] = SI (
Math . abs ( 100 * ( ( 1 / freq ) - ( 1 / freq _act ) ) / ( 1 / freq ) ) ,
'%' ,
{ 'p' : 6 , 'output' : 'split' , 'include' : [ 'b' ] } ,
) ;
}
// VERTICAL REFRESH FOR INTERLACED SCAN
{
Detailed _Results [ 'v_field' ] = SI (
freq ,
'Hz' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '>=b' ] } ,
) ;
Detailed _Results [ 'v_field_actual' ] = SI (
Timing [ 'F_ACTUAL' ] ,
'Hz' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '>=b' ] } ,
) ;
Detailed _Results [ 'v_field_dev' ] = SI (
Math . abs ( freq - freq _act ) ,
'Hz' ,
{ 'p' : 6 , 'output' : 'split' , 'include' : [ '>=b' ] } ,
) ;
Detailed _Results [ 'v_field_dev_perc' ] = SI (
Math . abs ( 100 * ( ( freq - freq _act ) / freq ) ) ,
'%' ,
{ 'p' : 6 , 'output' : 'split' , 'include' : [ 'b' ] } ,
) ;
Detailed _Results [ 'v_field_per' ] = SI (
1 / freq ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
Detailed _Results [ 'v_field_per_actual' ] = SI (
1 / freq _act ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
Detailed _Results [ 'v_field_per_dev' ] = SI (
Math . abs ( ( 1 / freq ) - ( 1 / freq _act ) ) ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
Detailed _Results [ 'v_field_per_dev_perc' ] = SI (
Math . abs ( 100 * ( ( 1 / freq ) - ( 1 / freq _act ) ) / ( 1 / freq ) ) ,
'%' ,
{ 'p' : 6 , 'output' : 'split' , 'include' : [ 'b' ] } ,
) ;
Detailed _Results [ 'v_frame' ] = SI (
freq / 2 ,
'FPS' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ 'b' ] } ,
) ;
Detailed _Results [ 'v_frame_actual' ] = SI (
freq _act / 2 ,
'FPS' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ 'b' ] } ,
) ;
Detailed _Results [ 'v_frame_dev' ] = SI (
Math . abs ( ( freq / 2 ) - ( freq _act / 2 ) ) ,
'FPS' ,
{ 'p' : 6 , 'output' : 'split' , 'include' : [ 'b' ] } ,
) ;
Detailed _Results [ 'v_frame_dev_perc' ] = SI (
Math . abs ( 100 * ( ( freq - freq _act ) / freq ) ) ,
'%' ,
{ 'p' : 6 , 'output' : 'split' , 'include' : [ 'b' ] } ,
) ;
Detailed _Results [ 'v_frame_per' ] = SI (
( 1 / ( freq / 2 ) ) ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
Detailed _Results [ 'v_frame_per_actual' ] = SI (
1 / ( freq _act / 2 ) ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
Detailed _Results [ 'v_frame_per_dev' ] = SI (
Math . abs ( ( 2 / freq ) - ( 2 / freq _act ) ) ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
Detailed _Results [ 'v_frame_per_dev_perc' ] = SI (
Math . abs ( 100 * ( ( 2 / freq ) - ( 2 / freq _act ) ) / ( 2 / freq ) ) ,
'%' ,
{ 'p' : 6 , 'output' : 'split' , 'include' : [ 'b' ] } ,
) ;
}
// HORIZONTAL REFRESH
{
Detailed _Results [ 'h_freq' ] = SI (
( v _eff * freq _act ) / scan ,
'Hz' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '>=b' ] } ,
) ;
Detailed _Results [ 'h_per' ] = SI (
scan / ( v _eff * freq _act ) ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
}
else {
Detailed _Results [ 'bpc' ] = { 'val' : color _depth / 3 , 'unit' : 'bpc' }
}
Detailed _Results [ 'bpp' ] = { 'val' : color _depth , 'unit' : 'bit/px' } ;
Detailed _Results [ 'palette' ] = SI ( Math . pow ( 2 , color _depth ) , 'colors' , { 'p' : 0 , 'output' : 'split' , 'include' : [ 'b' ] } ) ;
if ( $ ( 'input[name=PX_FORMAT_SLCT]:checked' ) . val ( ) == 'RGB' ) { Detailed _Results [ 'px_format' ] = 'RGB' ; }
else if ( $ ( 'input[name=PX_FORMAT_SLCT]:checked' ) . val ( ) == 'YCBCR 4:4:4' ) { Detailed _Results [ 'px_format' ] = 'YC<sub>B</sub>C<sub>R</sub> 4:4:4' ; }
else if ( $ ( 'input[name=PX_FORMAT_SLCT]:checked' ) . val ( ) == 'YCBCR 4:2:2' ) { Detailed _Results [ 'px_format' ] = 'YC<sub>B</sub>C<sub>R</sub> 4:2:2' ; }
else if ( $ ( 'input[name=PX_FORMAT_SLCT]:checked' ) . val ( ) == 'YCBCR 4:2:0' ) { Detailed _Results [ 'px_format' ] = 'YC<sub>B</sub>C<sub>R</sub> 4:2:0' ; }
if ( scan == 1 ) { Detailed _Results [ 'scan' ] = 'Progressive' ; }
if ( scan == 2 ) { Detailed _Results [ 'scan' ] = 'Interlaced' ; }
Detailed _Results [ 'v_freq' ] = SI (
freq ,
'Hz' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '>=b' ] } ,
) ;
Detailed _Results [ 'v_freq_actual' ] = SI (
Timing [ 'F_ACTUAL' ] ,
'Hz' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '>=b' ] } ,
) ;
DEBUG ( 'freq:' , typeof ( freq ) , freq )
DEBUG ( 'f_actual' , typeof ( Timing [ 'F_ACTUAL' ] ) , Timing [ 'F_ACTUAL' ] )
DEBUG ( 'f - fa' , freq - Timing [ 'F_ACTUAL' ] )
Detailed _Results [ 'v_freq_dev' ] = SI (
Math . abs ( freq - Timing [ 'F_ACTUAL' ] ) ,
'Hz' ,
{ 'p' : 6 , 'output' : 'split' , 'include' : [ '>=b' ] } ,
) ;
Detailed _Results [ 'v_freq_dev_perc' ] = SI (
Math . abs ( 100 * ( ( freq - Timing [ 'F_ACTUAL' ] ) / freq ) ) ,
'%' ,
{ 'p' : 6 , 'output' : 'split' , 'include' : [ 'b' ] } ,
) ;
Detailed _Results [ 'v_per' ] = SI (
1 / freq ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
Detailed _Results [ 'v_per_actual' ] = SI (
1 / Timing [ 'F_ACTUAL' ] ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
Detailed _Results [ 'v_per_dev' ] = SI (
Math . abs ( ( 1 / freq ) - ( 1 / Timing [ 'F_ACTUAL' ] ) ) ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
Detailed _Results [ 'v_per_dev_perc' ] = SI (
Math . abs ( 100 * ( ( 1 / freq ) - ( 1 / Timing [ 'F_ACTUAL' ] ) ) / ( 1 / freq ) ) ,
'%' ,
{ 'p' : 6 , 'output' : 'split' , 'include' : [ 'b' ] } ,
) ;
Detailed _Results [ 'h_freq' ] = SI (
( v _eff * Timing [ 'F_ACTUAL' ] ) / scan ,
'Hz' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '>=b' ] } ,
) ;
Detailed _Results [ 'h_per' ] = SI (
scan / ( v _eff * Timing [ 'F_ACTUAL' ] ) ,
's' ,
{ 'p' : 3 , 'output' : 'split' , 'include' : [ '<=b' ] } ,
) ;
//DEBUG('Results:', SI(results['bits_per_sec_eff'], 'bit/s', 2), results);
updateDisplay ( ) ;
@ -661,6 +740,9 @@ function getTiming(timing_standard) {
'V_BL' : '' ,
'H_BL' : '' ,
'V_EFF' : '' ,
'H_EFF' : '' ,
'F_ACTUAL' : Global _InputVars [ 'FREQ' ] ,
} ;
}
@ -669,16 +751,26 @@ function getTiming(timing_standard) {
if ( timing _standard != 'Custom' ) {
if ( timing _standard == 'CVT-R2' ) {
DEBUG ( 'Fetching CVT-R2 Timing...' )
if ( Global _InputVars [ 'FREQ' ] >= ( 1 / 0.00046 ) ) {
$ ( '#TIMING_FORMAT_NAME' ) . html ( '≥ 2173.9 Hz not allowed' ) ;
return false ;
}
Timing = CVT _R ( 2 ) ;
if ( ! Timing ) {
DEBUG ( 'CVT-R2 calculation error.' ) ;
clearTiming ( ) ;
return false ; }
return false ;
}
else {
$ ( '#TIMING_FORMAT_NAME' ) . html ( '<b>VESA Name:</b> ' + ( Global _InputVars [ 'HRES' ] * Global _InputVars [ 'VRES' ] / 1000000 ) . toFixed ( 2 ) + 'M' + Timing [ 'VESA_AR' ] + '-R' ) ;
}
}
else if ( timing _standard == 'CVT-RB' ) {
DEBUG ( 'Fetching CVT-R2 Timing...' )
if ( Global _InputVars [ 'FREQ' ] >= ( 1 / 0.00046 ) ) {
$ ( '#TIMING_FORMAT_NAME' ) . html ( '≥ 2173.9 Hz not allowed' ) ;
return false ;
}
Timing = CVT _R ( 1 ) ;
if ( ! Timing ) {
DEBUG ( 'CVT-RB calculation error.' ) ;
@ -690,6 +782,10 @@ function getTiming(timing_standard) {
}
}
else if ( timing _standard == 'CVT' ) {
if ( Global _InputVars [ 'FREQ' ] >= ( 1 / 0.00055 ) ) {
$ ( '#TIMING_FORMAT_NAME' ) . html ( '≥ 1818.<span style="text-decoration: overline">18</span> Hz not allowed' ) ;
return false ;
}
Timing = CVT ( ) ;
if ( ! Timing ) {
DEBUG ( 'CVT calculation error.' ) ;
@ -701,6 +797,10 @@ function getTiming(timing_standard) {
}
}
else if ( timing _standard == 'GTF' ) {
if ( Global _InputVars [ 'FREQ' ] >= ( 1 / 0.00055 ) ) {
$ ( '#TIMING_FORMAT_NAME' ) . html ( '≥ 1818.<span style="text-decoration: overline">18</span> Hz not allowed' ) ;
return false ;
}
Timing = GTF ( ) ;
$ ( '#TIMING_FORMAT_NAME' ) . html ( '' ) ;
if ( ! Timing ) {
@ -747,7 +847,7 @@ function getTiming(timing_standard) {
'V_BL' : 0 ,
'H_BL' : 0 ,
'V_EFF' : Global _InputVars [ 'VRES' ] ,
'V_EFF' : Global _InputVars [ 'VRES' ] / Global _InputVars [ 'SCAN' ] ,
'H_EFF' : Global _InputVars [ 'HRES' ] ,
'F_ACTUAL' : Global _InputVars [ 'FREQ' ] ,
@ -776,9 +876,9 @@ function getTiming(timing_standard) {
submitVar ( 'H_FP' , $ ( '#H_FP' ) . val ( ) ) ;
submitVar ( 'H_BP' , $ ( '#H_BP' ) . val ( ) ) ;
submitVar ( 'H_SW' , $ ( '#H_SW' ) . val ( ) ) ;
submitVar ( 'V_FP_INT' , Global _InputVars [ 'V_FP' ] + 0.5 ) ;
submitVar ( 'V_SW_INT' , Global _InputVars [ 'V_SW' ] ) ;
submitVar ( 'V_BP_INT' , Global _InputVars [ 'V_BP' ] + 0.5 ) ;
if ( isNum ( Global _InputVars [ 'V_FP' ] ) ) { submitVar ( 'V_FP_INT' , Global _InputVars [ 'V_FP' ] + 0.5 ) ; }
if ( isNum ( Global _InputVars [ 'V_SW' ] ) ) { submitVar ( 'V_SW_INT' , Global _InputVars [ 'V_SW' ] ) ; }
if ( isNum ( Global _InputVars [ 'V_BP' ] ) ) { submitVar ( 'V_BP_INT' , Global _InputVars [ 'V_BP' ] + 0.5 ) ; }
Timing = {
'V_FP' : Global _InputVars [ 'V_FP' ] ,
@ -1341,80 +1441,71 @@ function DMT() {
}
function updateDisplay ( ) {
function updateDisplay ( mode ) {
var clear = 'clear'
var cells ;
var id ;
id _list = [ 'data_rate' , '8b10b' , '16b18b' , 'pixel_rate' , 'pixel_rate_active' ] ;
for ( var x = 0 ; x < id _list . length ; x ++ ) {
id = id _list [ x ] ;
cells = $ ( '#results_' + id ) . children ( ) ;
DEBUG ( 'Detailed Results:' , Detailed _Results [ id ] ) ;
DEBUG ( 'Cells:' , cells )
cells [ 1 ] . innerHTML = Detailed _Results [ id ] [ 'val' ] ;
cells [ 2 ] . innerHTML = Detailed _Results [ id ] [ 'unit' ] ;
}
id _list = [
'data_rate' , '8b10b' , '16b18b' , 'pixel_rate' , 'pixel_rate_active' ,
'bpc' , 'bpp' , 'palette' ,
id _list = [ 'active_px' , 'blank_px' , 'total_px' ] ;
for ( var x = 0 ; x < id _list . length ; x ++ ) {
id = id _list [ x ] ;
cells = $ ( '#results_' + id ) . children ( ) ;
DEBUG ( 'Detailed Results:' , Detailed _Results [ id ] ) ;
DEBUG ( 'Cells:' , cells )
cells [ 1 ] . innerHTML = Detailed _Results [ id ] [ 'h' ] ;
cells [ 2 ] . innerHTML = Detailed _Results [ id ] [ 'v' ] ;
cells [ 3 ] . innerHTML = Detailed _Results [ id ] [ 't' ] [ 'val' ] ;
cells [ 4 ] . innerHTML = Detailed _Results [ id ] [ 't' ] [ 'unit' ] ;
}
id = 'overhead_px' ;
cells = $ ( '#results_' + id ) . children ( ) ;
DEBUG ( 'Detailed Results:' , Detailed _Results [ id ] ) ;
DEBUG ( 'Cells:' , cells )
cells [ 1 ] . innerHTML = Detailed _Results [ id ] [ 'h' ] [ 'val' ] ;
cells [ 2 ] . innerHTML = Detailed _Results [ id ] [ 'v' ] [ 'val' ] ;
cells [ 3 ] . innerHTML = Detailed _Results [ id ] [ 't' ] [ 'val' ] ;
cells [ 4 ] . innerHTML = Detailed _Results [ id ] [ 't' ] [ 'unit' ] ;
id _list = [ 'bpc' , 'bpp' , 'palette' ] ;
'v_freq' , 'v_freq_actual' , 'v_freq_dev' , 'v_freq_dev_perc' ,
'v_per' , 'v_per_actual' , 'v_per_dev' , 'v_per_dev_perc' ,
'h_freq' , 'h_per' ,
'v_field' , 'v_field_actual' , 'v_field_dev' , 'v_field_dev_perc' ,
'v_field_per' , 'v_field_per_actual' , 'v_field_per_dev' , 'v_field_per_dev_perc' ,
'v_frame' , 'v_frame_actual' , 'v_frame_dev' , 'v_frame_dev_perc' ,
'v_frame_per' , 'v_frame_per_actual' , 'v_frame_per_dev' , 'v_frame_per_dev_perc' ,
] ;
for ( var x = 0 ; x < id _list . length ; x ++ ) {
id = id _list [ x ] ;
cells = $ ( '#results_' + id ) . children ( ) ;
DEBUG ( 'Detailed Results:' , Detailed _Results [ id ] ) ;
DEBUG ( 'Cells:' , cells )
cells [ 1 ] . innerHTML = Detailed _Results [ id ] [ 'val' ] ;
cells [ 2 ] . innerHTML = Detailed _Results [ id ] [ 'unit' ] ;
}
id = 'px_format' ;
cells = $ ( '#results_' + id ) . children ( ) ;
DEBUG ( 'Detailed Results:' , Detailed _Results [ id ] ) ;
DEBUG ( 'Cells:' , cells )
cells [ 1 ] . innerHTML = Detailed _Results [ id ]
if ( mode != clear ) {
DEBUG ( 'Detailed Results:' , Detailed _Results [ id ] ) ;
DEBUG ( 'Cells:' , cells )
cells [ 1 ] . innerHTML = Detailed _Results [ id ] [ 'val' ] ;
cells [ 2 ] . innerHTML = Detailed _Results [ id ] [ 'unit' ] ;
} else {
cells [ 1 ] . innerHTML = '' ;
cells [ 2 ] . innerHTML = '' ;
id = 'scan' ;
cells = $ ( '#results_' + id ) . children ( ) ;
DEBUG ( 'Detailed Results:' , Detailed _Results [ id ] ) ;
DEBUG ( 'Cells:' , cells )
cells [ 1 ] . innerHTML = Detailed _Results [ id ]
}
}
id _list = [ ' v_freq', 'v_freq_actual' , 'v_freq_dev' , 'v_freq_dev_perc' , 'v_per' , 'v_per_actual' , 'v_per_dev' , 'v_per_dev_perc '] ;
id _list = [ 'active_px' , 'blank_px' , 'total_px' , 'overhead_px' ] ;
for ( var x = 0 ; x < id _list . length ; x ++ ) {
id = id _list [ x ] ;
cells = $ ( '#results_' + id ) . children ( ) ;
DEBUG ( 'Detailed Results:' , Detailed _Results [ id ] ) ;
DEBUG ( 'Cells:' , cells )
cells [ 1 ] . innerHTML = Detailed _Results [ id ] [ 'val' ] ;
cells [ 2 ] . innerHTML = Detailed _Results [ id ] [ 'unit' ] ;
if ( mode != clear ) {
DEBUG ( 'Detailed Results:' , Detailed _Results [ id ] ) ;
DEBUG ( 'Cells:' , cells )
cells [ 1 ] . innerHTML = Detailed _Results [ id ] [ 'h' ] [ 'val' ] ;
cells [ 2 ] . innerHTML = Detailed _Results [ id ] [ 'v' ] [ 'val' ] ;
cells [ 3 ] . innerHTML = Detailed _Results [ id ] [ 't' ] [ 'val' ] ;
cells [ 4 ] . innerHTML = Detailed _Results [ id ] [ 't' ] [ 'unit' ] ;
} else {
cells [ 1 ] . innerHTML = '' ;
cells [ 2 ] . innerHTML = '' ;
cells [ 3 ] . innerHTML = '' ;
cells [ 4 ] . innerHTML = '' ;
}
}
id _list = [ 'h_freq' , 'h_per' ] ;
id _list = [ ' px_format', 'scan '] ;
for ( var x = 0 ; x < id _list . length ; x ++ ) {
id = id _list [ x ] ;
cells = $ ( '#results_' + id ) . children ( ) ;
DEBUG ( 'Detailed Results:' , Detailed _Results [ id ] ) ;
DEBUG ( 'Cells:' , cells )
cells [ 1 ] . innerHTML = Detailed _Results [ id ] [ 'val' ] ;
cells [ 2 ] . innerHTML = Detailed _Results [ id ] [ 'unit' ] ;
if ( mode != clear ) {
DEBUG ( 'Detailed Results:' , Detailed _Results [ id ] ) ;
DEBUG ( 'Cells:' , cells )
cells [ 1 ] . innerHTML = Detailed _Results [ id ]
} else {
cells [ 1 ] . innerHTML = '' ;
}
}
return ;
@ -1422,9 +1513,14 @@ function updateDisplay() {
function clearResults ( ) {
updateDisplay ( 'clear' ) ;
if ( $ ( '#TIMING_DROP' ) . val ( ) != 'Custom' ) {
clearTiming ( ) ;
}
return ;
}
function timingUIChange ( ) {
// Controls the enabled/disabled state of the custom timing format input fields
var timing _params = [
@ -1465,6 +1561,8 @@ function timingUIChange() {
$ ( '#V_SW_INT_CONTAINER' ) . css ( 'display' , 'table-cell' ) ;
$ ( '#V_BLANK_INT_CONTAINER' ) . css ( 'display' , 'table-cell' ) ;
$ ( '#V_BLANK_EVEN_LABEL' ) . html ( '(Even) V<sub>blank</sub>' ) ;
$ ( '#results_v_progressive' ) . css ( 'display' , 'none' ) ;
$ ( '#results_v_interlaced' ) . css ( 'display' , 'table' ) ;
}
else if ( value == 'p' ) {
$ ( '#V_BLANK_INT_LABEL' ) . css ( 'display' , 'none' ) ;
@ -1473,6 +1571,8 @@ function timingUIChange() {
$ ( '#V_SW_INT_CONTAINER' ) . css ( 'display' , 'none' ) ;
$ ( '#V_BLANK_INT_CONTAINER' ) . css ( 'display' , 'none' ) ;
$ ( '#V_BLANK_EVEN_LABEL' ) . html ( 'V<sub>blank</sub>' ) ;
$ ( '#results_v_progressive' ) . css ( 'display' , 'table' ) ;
$ ( '#results_v_interlaced' ) . css ( 'display' , 'none' ) ;
}
else {
DEBUG ( 'Something somewhere has gone terribly wrong. Attemped to grab SCAN_SLCT value, and it was neither "p" nor "i"!' ) ;