' ***********************************************************
' PROGRAM: dpicalc.bac
' PURPOSE: to calculate dpi for a given screen resolution
' and size
' AUTHOR: vovchik (Puppy Linux forum)
' COMMENTS: ported from an Arch Linux python script
' DEPENDS: bash, bacon
' PLATFORM: Puppy Linux (actually, any *nix)
' DATE: 22-01-2010
' VERSION: 0.1
' ***********************************************************
' *****************
' DECLARATIONS
' *****************
GLOBAL hres, vres, dsize, dpi, mydpi TYPE FLOATING
GLOBAL version$ TYPE STRING
' *****************
' END DECLARATIONS
' *****************
' *****************
' INIT VARS
' *****************
version$ = "v. 0.1"
' *****************
' END INIT VARS
' *****************
' *****************
' FUNCTIONs
' *****************
FUNCTION CALCDPI(FLOATING hres, FLOATING vres, FLOATING dsize)
dpi = hres/(hres / SQR(POW(hres,2) + POW(vres,2)) * dsize)
RETURN dpi
END FUNCTION
FUNCTION USAGE()
PRINT NL$,"BaCon DPI Calculator - ", version$,NL$
PRINT "Usage: dpicalc hres vres size", NL$
PRINT "Where:"
PRINT " hres = horizontal resolution in pixels"
PRINT " vres = vertical resolution in pixels"
PRINT " size = diag. size of screen in inches",NL$
PRINT "Example: dpicalc 1280 1024 19", NL$
END
RETURN TRUE
END FUNCTION
FUNCTION GETARGS()
SPLIT ARGUMENT$ BY " " TO array$ SIZE dimension
IF dimension < 4 THEN
USAGE
ELSE
IF VAL(array$[1]) > 0 AND VAL(array$[2]) > 0 AND VAL(array$[3]) > 0 THEN
hres = VAL(array$[1])
vres = VAL(array$[2])
dsize = VAL(array$[3])
ELSE
PRINT NL$, "DPI Calculator: Input arguments contain bad values."
USAGE
END IF
END IF
RETURN TRUE
END FUNCTION
FUNCTION SHOWRESULTS()
STR1$ = "Calculated DPI for screen resolution of "
PRINT NL$, STR1$, hres,"x",vres,"pixels and ",dsize, " in."," diagonal = ", mydpi, NL$
RETURN TRUE
END FUNCTION
' *****************
' END FUNCTIONS
' *****************
' *****************
' MAIN
' *****************
GETARGS
mydpi = CALCDPI(hres, vres, dsize)
SHOWRESULTS
END
' *****************
' END MAIN
' *****************