Update to xrandr 1.2.0.

This commit is contained in:
Julien Cristau 2007-02-19 09:59:47 +01:00
parent 599ab30561
commit fa0015436e
8 changed files with 2294 additions and 580 deletions

6
debian/changelog vendored
View File

@ -1,3 +1,9 @@
xbase-clients (1:7.2.ds2-1) experimental; urgency=low
* Update to xrandr 1.2.0.
-- Julien Cristau <jcristau@debian.org> Mon, 19 Feb 2007 09:59:14 +0100
xbase-clients (1:7.2.ds1-2) experimental; urgency=low
* Build-dep on libpng12-dev instead of libpng-dev. xcursorgen requires

View File

@ -21,7 +21,7 @@
bin_PROGRAMS = xrandr
xrandr_CFLAGS = $(XRANDR_CFLAGS)
AM_CFLAGS = $(XRANDR_CFLAGS)
xrandr_LDADD = $(XRANDR_LIBS)
xrandr_SOURCES = \

View File

@ -62,8 +62,7 @@ bin_PROGRAMS = xrandr$(EXEEXT)
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
compile config.guess config.sub depcomp install-sh missing \
mkinstalldirs
compile config.guess config.sub depcomp install-sh missing
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
@ -71,13 +70,13 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(appmandir)"
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS)
am_xrandr_OBJECTS = xrandr-xrandr.$(OBJEXT)
am_xrandr_OBJECTS = xrandr.$(OBJEXT)
xrandr_OBJECTS = $(am_xrandr_OBJECTS)
am__DEPENDENCIES_1 =
xrandr_DEPENDENCIES = $(am__DEPENDENCIES_1)
@ -212,7 +211,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
xrandr_CFLAGS = $(XRANDR_CFLAGS)
AM_CFLAGS = $(XRANDR_CFLAGS)
xrandr_LDADD = $(XRANDR_LIBS)
xrandr_SOURCES = \
xrandr.c
@ -331,7 +330,7 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xrandr-xrandr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xrandr.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@ -346,20 +345,6 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
xrandr-xrandr.o: xrandr.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xrandr_CFLAGS) $(CFLAGS) -MT xrandr-xrandr.o -MD -MP -MF "$(DEPDIR)/xrandr-xrandr.Tpo" -c -o xrandr-xrandr.o `test -f 'xrandr.c' || echo '$(srcdir)/'`xrandr.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xrandr-xrandr.Tpo" "$(DEPDIR)/xrandr-xrandr.Po"; else rm -f "$(DEPDIR)/xrandr-xrandr.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xrandr.c' object='xrandr-xrandr.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xrandr_CFLAGS) $(CFLAGS) -c -o xrandr-xrandr.o `test -f 'xrandr.c' || echo '$(srcdir)/'`xrandr.c
xrandr-xrandr.obj: xrandr.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xrandr_CFLAGS) $(CFLAGS) -MT xrandr-xrandr.obj -MD -MP -MF "$(DEPDIR)/xrandr-xrandr.Tpo" -c -o xrandr-xrandr.obj `if test -f 'xrandr.c'; then $(CYGPATH_W) 'xrandr.c'; else $(CYGPATH_W) '$(srcdir)/xrandr.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xrandr-xrandr.Tpo" "$(DEPDIR)/xrandr-xrandr.Po"; else rm -f "$(DEPDIR)/xrandr-xrandr.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xrandr.c' object='xrandr-xrandr.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xrandr_CFLAGS) $(CFLAGS) -c -o xrandr-xrandr.obj `if test -f 'xrandr.c'; then $(CYGPATH_W) 'xrandr.c'; else $(CYGPATH_W) '$(srcdir)/xrandr.c'; fi`
uninstall-info-am:
install-appmanDATA: $(appman_DATA)
@$(NORMAL_INSTALL)

40
xrandr/configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for xrandr 1.0.2.
# Generated by GNU Autoconf 2.61 for xrandr 1.2.0.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
#
@ -574,8 +574,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='xrandr'
PACKAGE_TARNAME='xrandr'
PACKAGE_VERSION='1.0.2'
PACKAGE_STRING='xrandr 1.0.2'
PACKAGE_VERSION='1.2.0'
PACKAGE_STRING='xrandr 1.2.0'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
ac_subst_vars='SHELL
@ -1194,7 +1194,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures xrandr 1.0.2 to adapt to many kinds of systems.
\`configure' configures xrandr 1.2.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1264,7 +1264,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of xrandr 1.0.2:";;
short | recursive ) echo "Configuration of xrandr 1.2.0:";;
esac
cat <<\_ACEOF
@ -1359,7 +1359,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
xrandr configure 1.0.2
xrandr configure 1.2.0
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@ -1373,7 +1373,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by xrandr $as_me 1.0.2, which was
It was created by xrandr $as_me 1.2.0, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@ -2043,7 +2043,7 @@ fi
# Define the identity of the package.
PACKAGE='xrandr'
VERSION='1.0.2'
VERSION='1.2.0'
cat >>confdefs.h <<_ACEOF
@ -3522,12 +3522,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_XRANDR_CFLAGS="$XRANDR_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
{ (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xrandr xrender x11\"") >&5
($PKG_CONFIG --exists --print-errors "xrandr xrender x11") 2>&5
{ (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xrandr >= 1.2.0 xrender x11\"") >&5
($PKG_CONFIG --exists --print-errors "xrandr >= 1.2.0 xrender x11") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
pkg_cv_XRANDR_CFLAGS=`$PKG_CONFIG --cflags "xrandr xrender x11" 2>/dev/null`
pkg_cv_XRANDR_CFLAGS=`$PKG_CONFIG --cflags "xrandr >= 1.2.0 xrender x11" 2>/dev/null`
else
pkg_failed=yes
fi
@ -3540,12 +3540,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_XRANDR_LIBS="$XRANDR_LIBS"
else
if test -n "$PKG_CONFIG" && \
{ (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xrandr xrender x11\"") >&5
($PKG_CONFIG --exists --print-errors "xrandr xrender x11") 2>&5
{ (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xrandr >= 1.2.0 xrender x11\"") >&5
($PKG_CONFIG --exists --print-errors "xrandr >= 1.2.0 xrender x11") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
pkg_cv_XRANDR_LIBS=`$PKG_CONFIG --libs "xrandr xrender x11" 2>/dev/null`
pkg_cv_XRANDR_LIBS=`$PKG_CONFIG --libs "xrandr >= 1.2.0 xrender x11" 2>/dev/null`
else
pkg_failed=yes
fi
@ -3564,14 +3564,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
XRANDR_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xrandr xrender x11"`
XRANDR_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xrandr >= 1.2.0 xrender x11"`
else
XRANDR_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xrandr xrender x11"`
XRANDR_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xrandr >= 1.2.0 xrender x11"`
fi
# Put the nasty error message in config.log where it belongs
echo "$XRANDR_PKG_ERRORS" >&5
{ { echo "$as_me:$LINENO: error: Package requirements (xrandr xrender x11) were not met:
{ { echo "$as_me:$LINENO: error: Package requirements (xrandr >= 1.2.0 xrender x11) were not met:
$XRANDR_PKG_ERRORS
@ -3582,7 +3582,7 @@ Alternatively, you may set the environment variables XRANDR_CFLAGS
and XRANDR_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
echo "$as_me: error: Package requirements (xrandr xrender x11) were not met:
echo "$as_me: error: Package requirements (xrandr >= 1.2.0 xrender x11) were not met:
$XRANDR_PKG_ERRORS
@ -4216,7 +4216,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by xrandr $as_me 1.0.2, which was
This file was extended by xrandr $as_me 1.2.0, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -4269,7 +4269,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
xrandr config.status 1.0.2
xrandr config.status 1.2.0
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"

View File

@ -22,7 +22,7 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
AC_INIT(xrandr,[1.0.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],xrandr)
AC_INIT(xrandr,[1.2.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],xrandr)
AM_INIT_AUTOMAKE([dist-bzip2])
AM_MAINTAINER_MODE
@ -32,7 +32,7 @@ AC_PROG_CC
AC_PROG_INSTALL
# Checks for pkg-config packages
PKG_CHECK_MODULES(XRANDR, xrandr xrender x11)
PKG_CHECK_MODULES(XRANDR, xrandr >= 1.2.0 xrender x11)
AC_SUBST(XRANDR_CFLAGS)
AC_SUBST(XRANDR_LIBS)

View File

@ -1,158 +0,0 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
scriptversion=2005-06-29.22
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain.
#
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
errstatus=0
dirmode=
usage="\
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
Create each directory DIR (with mode MODE, if specified), including all
leading file name components.
Report bugs to <bug-automake@gnu.org>."
# process command line arguments
while test $# -gt 0 ; do
case $1 in
-h | --help | --h*) # -h for help
echo "$usage"
exit $?
;;
-m) # -m PERM arg
shift
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
dirmode=$1
shift
;;
--version)
echo "$0 $scriptversion"
exit $?
;;
--) # stop option processing
shift
break
;;
-*) # unknown option
echo "$usage" 1>&2
exit 1
;;
*) # first non-opt arg
break
;;
esac
done
for file
do
if test -d "$file"; then
shift
else
break
fi
done
case $# in
0) exit 0 ;;
esac
# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
# mkdir -p a/c at the same time, both will detect that a is missing,
# one will create a, then the other will try to create a and die with
# a "File exists" error. This is a problem when calling mkinstalldirs
# from a parallel make. We use --version in the probe to restrict
# ourselves to GNU mkdir, which is thread-safe.
case $dirmode in
'')
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
echo "mkdir -p -- $*"
exec mkdir -p -- "$@"
else
# On NextStep and OpenStep, the `mkdir' command does not
# recognize any option. It will interpret all options as
# directories to create, and then abort because `.' already
# exists.
test -d ./-p && rmdir ./-p
test -d ./--version && rmdir ./--version
fi
;;
*)
if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
test ! -d ./--version; then
echo "mkdir -m $dirmode -p -- $*"
exec mkdir -m "$dirmode" -p -- "$@"
else
# Clean up after NextStep and OpenStep mkdir.
for d in ./-m ./-p ./--version "./$dirmode";
do
test -d $d && rmdir $d
done
fi
;;
esac
for file
do
case $file in
/*) pathcomp=/ ;;
*) pathcomp= ;;
esac
oIFS=$IFS
IFS=/
set fnord $file
shift
IFS=$oIFS
for d
do
test "x$d" = x && continue
pathcomp=$pathcomp$d
case $pathcomp in
-*) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
else
if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
lasterr=
chmod "$dirmode" "$pathcomp" || lasterr=$?
if test ! -z "$lasterr"; then
errstatus=$lasterr
fi
fi
fi
fi
pathcomp=$pathcomp/
done
done
exit $errstatus
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

File diff suppressed because it is too large Load Diff

View File

@ -27,48 +27,137 @@ xrandr \- primitive command line interface to RandR extension
.SH SYNOPSIS
.B "xrandr"
[-help] [-display \fIdisplay\fP]
[-o \fIorientation\fP]
[-q] [-v]
[--verbose]
[--screen \fIsnum\fP]
.br
.B RandR version 1.2 options
.br
[--prop]
[--fb <width>x<height>]
[--fbmm <width>x<height>]
[--dpi <dpi>]
.br
.B Per-output options
.br
[--output <output>]
[--auto]
[--mode <mode>]
[--preferred]
[--pos <x>x<y>]
[--rate <rate>]
[--reflect \fIreflection\fP]
[--rotate \fIorientation\fP]
[--left-of <output>\]
[--right-of <output>\]
[--above <output>\]
[--below <output>\]
[--off]
[--crtc <crtc>]
.br
.B RandR version 1.0 and version 1.1 options
.br
[-o \fIorientation\fP]
[-s \fIsize\fP]
[-x] [-y]
[--screen \fIsnum\fP]
[--verbose]
.SH DESCRIPTION
.I Xrandr
is used to set the screen size, orientation and/or reflection.
The
.I -s
option is a small integer index used to specify which size the screen should be set to.
To find out what sizes are available, use the
.I -q
option, which reports the sizes available, the current rotation, and
the possible rotations and reflections.
The default size is the first size specified in the list.
The
.I -o
option is used to specify the orientation of the screen,
and can be one of
\fI"normal inverted left right 0 1 2 3"\fP.
is used to set the size, orientation and/or reflection of the outputs for a
screen. It can also set the screen size.
There are a few global options; the rest modify a particular output and
follow the specification of that output on the command line.
.IP --help
Print out a summary of the usage and exit.
.IP -v
Print out the RandR version reported by the X server and exit.
.IP --verbose
causes xrandr to be more verbose. When used with -q (or without other
options), xrandr will display more information about the server state. When
used along with options that reconfigure the system, progress will be
reported while executing the configuration changes.
.IP -q
When this option is present, or when no configuration changes are requested,
xrandr will display the current state of the system.
.IP "-screen \fIsnum\fP"
This option selects which screen to manipulate. Note this refers to the X
screen abstraction, not the monitor (or output).
.SH "RandR version 1.2 options"
These options are only available for X server supporting RandR version 1.2
or newer.
.IP --prop
This option causes xrandr to display the contents of properties for each
output. --verbose also enables --prop.
.IP "--fb <width>x<height"
Reconfigures the screen to the specified size. All configured monitors must
fit within this size. When this option is not provided, xrandr computes the
smallest screen size that will hold the set of configured outputs; this
option provides a way to override that behaviour.
.IP "--fbmm <width>x<height"
Sets the reported values for the physical size of the screen. Normally,
xrandr resets the reported physical size values to keep the DPI constant.
This overrides that computation.
.IP "--dpi <dpi>"
This also sets the reported physical size values of the screen, it uses the
specified DPI value to compute an appropriate physical size using whatever
pixel size will be set.
.PP
The
.I -x
option instructs the server to reflect the screen on the X axis.
The
.I -y
option instructs the server to reflect the screen on the Y axis.
Reflection is applied after rotation.
.B "Per-output options"
.IP "--output <output>"
Selects an output to reconfigure. Use either the name of the output or the
XID.
.IP --auto
For connected but disabled outputs, this will enable them using their
preferred mode (or, something close to 96dpi if they have no preferred
mode). For disconnected but enabled outputs, this will disable them.
.IP "--mode <mode>"
This selects a mode. Use either the name or the XID for <mode>
.IP "--preferred"
This selects the same mode as --auto, but it doesn't automatically enable or
disable the output.
.IP "--pos <x>x<y>"
Position the output within the screen using pixel coordinates.
.IP "--rate <rate>
This marks a preference for refresh rates close to the specified value, when
multiple modes have the same name, this will select the one with the nearest
refresh rate.
.IP "--reflect \fIreflection\fP"
Reflection can be one of 'normal' 'x', 'y' or 'xy'. This causes the output
contents to be reflected across the specified axes.
.IP "--rotate \fIrotation\fP"
Rotation can be one of 'normal', 'left', 'right' or 'inverted'. This causes
the output contents to be rotated in the specified direction.
.IP "--left-of, --right-of, --above, --below <another output>"
Use one of these options to position the output relative to the position of
another output. This allows convenient tiling of outputs within the screen.
The position is always computed relative to the new position of the other
output, so it is not valid to say --output a --left-of b --output
b --left-of a.
.IP "--off"
Disables the output.
.IP "--crtc <crtc>"
Uses the specified crtc (either as an index in the list of CRTCs or XID).
In normal usage, this option is not required as xrandr tries to make
sensible choices about which crtc to use with each output. When that fails
for some reason, this option can override the normal selection.
.PP
The
.I -help
option prints out a usage summary.
The
.I --verbose
option tells you what xrandr is doing, selects for events, and tells you
when events are received to enable debugging.
.SH "RandR version 1.1 options"
These options are available for X server supporting RandR version 1.1 or
older. They are still valid for newer X servers, but they don't
.IP "-s <size index> or -s <width>x<height>"
This sets the screen size, either matching by size or using the index into
the list of available sizes.
.IP "-o \fIrotation\fP"
This specifies the orientation of the screen,
and can be one of normal, inverted, left or right.
.IP -x
Reflect across the X axis.
.IP -y
Reflect across the Y axis.
.SH "SEE ALSO"
Xrandr(3)
.SH AUTHORS
Keith Packard,
Open Source Technology Center, Intel Corporation.
and
Jim Gettys,
Cambridge Research Laboratory, HP Labs, HP.