.\"
.\" $XConsortium: p166,v 5.2 94/04/17 20:56:22 rws Exp $
.\"
.\" 
$XMCOPY
.\" Copyright (c) 1990, 1991 by Sun Microsystems, Inc. and the X Consortium.
.\" 
.\"                         All Rights Reserved
.\" 
.\" Permission to use, copy, modify, and distribute this software and its 
.\" documentation for any purpose and without fee is hereby granted, 
.\" provided that the above copyright notice appear in all copies and that
.\" both that copyright notice and this permission notice appear in 
.\" supporting documentation, and that the names of Sun Microsystems,
.\" and the X Consortium not be used in advertising or publicity 
.\" pertaining to distribution of the software without specific, written 
.\" prior permission.  
.\" 
.\" SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 
.\" INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
.\" EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
.\" CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
.\" USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
.\" OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\" PERFORMANCE OF THIS SOFTWARE.
.ds f \s-2INQUIRE LOCATOR DEVICE STATE 3\s+2
.TH "INQUIRE LOCATOR DEVICE STATE 3" 3P "29 February 1991"
.SH NAME
INQUIRE LOCATOR DEVICE STATE 3 \- inquire state of a locator device
.IX "Locator Input Devices" "INQUIRE LOCATOR DEVICE STATE 3"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void
pinq_loc_st3 ( ws, dev, type, store, err, op_mode, echo_switch, init_view_ind, init_loc_pos, 
    prompt_echo, echo_vol, loc_data)
Pint	ws;	\fIworkstation identifier\fP
Pint	dev;	\fIlocator device number\fP
Pinq_type	type;	\fItype of returned value\fP
Pstore	store;	\fIstore handle\fP
Pint	*err;	\fIOUT error indicator\fP
Pop_mode	*op_mode;	\fIOUT operating mode\fP
Pecho_switch	*echo_switch;	\fIOUT echo switch\fP
Pint	*init_view_ind;	\fIOUT initial view index\fP
Ppoint3	*init_loc_pos;	\fIOUT initial locator position\fP
Pint	*prompt_echo;	\fIOUT prompt/echo type\fP
Plimit3	*echo_vol;	\fIOUT echo volume \fP
Ploc_data3	**loc_data;	\fIOUT data record\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, WSOP, *, *)
.SH DESCRIPTION
.SS Purpose
Use \*f to retrieve the current state of a locator device.
.SS C Input Parameters
Applications using the \s-2C\s+2 binding must create a buffer to be used by this
function as memory space for storing data associated with the device state.
This buffer is passed as the \fIstore\fP argument.  
.LP
The store buffer is a data area managed by \s-2PHIGS\s+2. While the application 
is responsible for creating the inital buffer through a call to \s-2\CREATE STORE\s+2, 
\s-2PHIGS\s+2 manages this area such that there is sufficient memory for the 
specific inquiry. The locator device data record within the store buffer is accessed 
by the pointer pointed to by loc_data.
.IP \fIws\fP
Workstation identifier. An integer specifying the workstation with which
the specified locator device is associated.
.IP \fIdev\fP
The device number of the locator device.
See the \fIAvailable Devices\fP section of \s-2INITIALIZE LOCATOR\s+2
for a description of the available devices.
.IP \fItype\fP
An enumerated value specifying whether the values to be returned are 
those originally specified by the application (\s-2PINQ_SET\s+2), or
those resulting after \s-2PHIGS\s+2 mapped them to ones available on the
workstation (\s-2PINQ_REALIZED\s+2).  A Pinq_type structure is defined as:
.nf
.ta .5i +\w'PINQ_REALIZED     'u
.sp .4
typedef enum {
.sp .2
	PINQ_SET,
	PINQ_REALIZED
.sp .2
} Pinq_type;
.fi
.IP \fIstore\fP
The memory buffer \s-2PHIGS\s+2 is to use for storing the information
returned.  
This buffer must exist prior to calling this function (see
\s-2CREATE STORE (3P)\s+2).
.SS C Output Parameters
.IP \fIerr\fP
The error indicator.  See the \fIExecution\fP section below for a
description of its use.  See the \fIErrors\fP section below for the
possible values it may return.
.IP \fIop_mode\fP
A pointer to a variable of type Pop_mode, which contains the current
operating mode of the device.  Pop_mode is enumerated in phigs.h as follows:
.sp .2
.ta .5i
.nf
	POP_REQ
	POP_SAMPLE
	POP_EVENT
.fi
.IP \fIecho_switch\fP
A pointer to a variable of type Pecho_switch, which contains the state of
the devices echo switch. The value returned for \fIecho_switch\fP will be one of the following:
.sp .2
.ta .5i
.nf
	PSWITCH_ECHO
	PSWITCH_NO_ECHO
.fi
.IP \fIinit_view_ind\fP
Initial view index.
.IP \fIinit_loc_pos\fP
Initial locator position.
.IP \fIprompt_echo\fP
The prompt/echo type desired.
See the \fIAvailable Devices\fP Section of \s-2INITIALIZE LOCATOR\s+2
for a description of the available types.
.IP \fIecho_vol\fP
A pointer to a Plimit3 structure defining the
\fIx\fP, \fIy\fP, and \fIz\fP
components of the echo volume, in Device Coordinates.
Plimit3 is defined in phigs.h as follows:
.sp .4
.ta .5i +1i  +1i
.nf
typedef struct {
.sp .2
	Pfloat	x_min;	/* minimum x coordinate value */
	Pfloat	x_max;	/* maximum x coordinate value */
	Pfloat	y_min;	/* minimum y coordinate value */
	Pfloat	y_max;	/* maximum y coordinate value */
	Pfloat	z_min;	/* minimum z coordinate value */
	Pfloat	z_max;	/* maximum z coordinate value */
.sp .2
} Plimit3;
.fi
.IP \fIloc_data\fP
Points to a pointer to the locator device data within the store buffer.
.SS Execution
\*f returns the current state of the
specified locator device, which is stored in the workstation
state list of the workstation associated with the device.  The
current state includes the operating mode, echo switch, initial locator
value, prompt/echo type, echo volume, and data record.
See \s-2SET LOCATOR MODE\s+2 for a description of the operating mode and the
echo switch, and how to set these values.
See \s-2INITIALIZE LOCATOR 3\s+2 for a description of the initial locator
value, prompt/echo type, echo volume, and data record contents, and how to
set these values.
.LP
In the event of an error, the \fIerror indicator\fP 
indicates the error number of the error detected, and no other output data
is returned.  If no error is detected, the \fIerror indicator\fP 
is set to zero, and the inquired information will be available in the output
parameters.  Since this is an inquiry function, \s-2ERROR HANDLING\s+2 is not
invoked when an error is detected by this function.
.SH ERRORS
.IP 003
Ignoring function, function requires state (\s-2PHOP, WSOP, *, *\s+2)
.IP 054
Ignoring function, the specified workstation is not open
.IP 061
Ignoring function, specified workstation is neither of category \s-2INPUT\s+2
nor of category \s-2OUTIN\s+2
.IP 250
Ignoring function, the specified device is not available
on the specified workstation
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "INITIALIZE LOCATOR 3 (3P)"
.SM "SET LOCATOR MODE (3P)"
.SM "INQUIRE LOCATOR DEVICE STATE (3P)"
.SM "CREATE STORE (3P)"
.SM "DELETE STORE (3P)"
.fi
