The pjlink Reference Manual

This is the pjlink Reference Manual, version 1.2.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 17:34:14 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.2 Static


4 Packages

Packages are listed by definition order.


5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Constants

Constant: +default-port+

Default PJLink port.

Package

pjlink.

Source

pjlink.lisp.

Constant: +max-password-length+

Max number of characters in a PJLink password.

Package

pjlink.

Source

pjlink.lisp.


5.1.2 Ordinary functions

Function: add-handler (status-listener handler)

Add a ‘status-handler’ to ‘status-listener’.

Package

pjlink.

Source

class2.lisp.

Function: decrease-microphone (host-info &key port password local-host local-port)

Decrement the microphone volume by one level.

Package

pjlink.

Source

class2.lisp.

Function: decrease-speaker (host-info &key port password local-host local-port)

Decrement the speaker volume by one level.

Package

pjlink.

Source

class2.lisp.

Function: freeze-screen (host-info &key port password local-host local-port)

Freeze the screen.

Package

pjlink.

Source

class2.lisp.

Function: get-av-mute (host-info &key port password local-host local-port)

Query the current ‘av-mute-status’ of the projector. see ‘set-av-mute’

Package

pjlink.

Source

class1.lisp.

Function: get-error-status (host-info &key port password local-host local-port)

Query the ‘projector-status’ projector.

Package

pjlink.

Source

class1.lisp.

Function: get-filter-model (host-info &key port password local-host local-port)

Get the filter replacement model numbers.
nil if no replacement model numbers are available.

Package

pjlink.

Source

class2.lisp.

Function: get-filter-usage-time (host-info &key port password local-host local-port)

Get the filter usage time of the projector.

Package

pjlink.

Source

class2.lisp.

Function: get-freeze-status (host-info &key port password local-host local-port)

Query the current freeze status of the projector. true if freeze is ON
false if freeze is OFF

Package

pjlink.

Source

class2.lisp.

Function: get-input (host-info &key port password local-host local-port)

Query the current ‘projector-input’ on the projector.

Package

pjlink.

Source

class1.lisp.

Function: get-input-name (input-type input-number host-info &key port password local-host local-port)

Get the input name of the given input type and number nil if not available.

Package

pjlink.

Source

class2.lisp.

Function: get-input-name* (projector-input2 host-info &key port password local-host local-port)

As ‘get-input-name’ but using a ‘projector-input’ or ‘projector-input2’ object instead. nil if not available.

Package

pjlink.

Source

class2.lisp.

Function: get-input2 (host-info &key port password local-host local-port)
Package

pjlink.

Source

class2.lisp.

Function: get-inputs (host-info &key port password local-host local-port)

Query the available ‘projector-input’s on the projector as a list.

Package

pjlink.

Source

class1.lisp.

Function: get-inputs2 (host-info &key port password local-host local-port)

Query the available ‘projector-input2’s on the projector as a list.

Package

pjlink.

Source

class2.lisp.

Function: get-lamp-model (host-info &key port password local-host local-port)

Get the lamp replacement model numbers.
nil if no replacement model numbers are available.

Package

pjlink.

Source

class2.lisp.

Function: get-lamps (host-info &key port password local-host local-port)

Query the available ‘projector-lamp’s on the projector as a list.

Package

pjlink.

Source

class1.lisp.

Function: get-manufacturer-name (host-info &key port password local-host local-port)

Query the projector’s manufacturer name. nil if not available.

Package

pjlink.

Source

class1.lisp.

Query the pjlink class of the projector.

Package

pjlink.

Source

class1.lisp.

Function: get-power-status (host-info &key port password local-host local-port)

Query the ‘power-status’ of the projector. see ‘set-port-on’, ‘set-power-off’

Package

pjlink.

Source

class1.lisp.

Function: get-product-name (host-info &key port password local-host local-port)

Query the projector’s product name. nil if not available.

Package

pjlink.

Source

class1.lisp.

Function: get-projector-name (host-info &key port password local-host local-port)

Query the projector’s name. nil if not available.

Package

pjlink.

Source

class1.lisp.

Function: get-recommended-resolution (host-info &key port password local-host local-port)

Get the recommended ‘resolution’ for the projector.

Package

pjlink.

Source

class2.lisp.

Function: get-resolution (host-info &key port password local-host local-port)

Get the current resolution of the active input. :no-signal if no signal is available :unknown-signal if there is an unknown signal active

Package

pjlink.

Source

class2.lisp.

Function: get-serial-number (host-info &key port password local-host local-port)

Get the serial number of the projector. nil if not available.

Package

pjlink.

Source

class2.lisp.

Function: get-software-version (host-info &key port password local-host local-port)

Get the software version of the projector. nil if not available.

Package

pjlink.

Source

class2.lisp.

Function: increase-microphone (host-info &key port password local-host local-port)

Increment the microphone volume by one level.

Package

pjlink.

Source

class2.lisp.

Function: increase-speaker (host-info &key port password local-host local-port)

Increment the speaker volume by one level.

Package

pjlink.

Source

class2.lisp.

Function: input-number (projector-input)

Get the ‘input-number’ part of ‘projector-input’

Package

pjlink.

Source

class1.lisp.

Function: input-number2 (projector-input2)

Get the ‘input-number2’ part of ‘projector-input2’

Package

pjlink.

Source

class2.lisp.

Function: input-type (projector-input)

Get the ‘input-type’ part of ‘projector-input’

Package

pjlink.

Source

class1.lisp.

Function: input-type2 (projector-input2)

Get the ‘input-type2’ part of ‘projector-input2’

Package

pjlink.

Source

class2.lisp.

Function: lamp-hours (lamp-status)

Get the ‘lamp-hours’ part of ‘lamp-status’

Package

pjlink.

Source

class1.lisp.

Function: lamp-on-p (lamp-status)

Get the ‘lamp-on-p’ part of ‘lamp-status’

Package

pjlink.

Source

class1.lisp.

Function: lamp-status (lamp-hours lamp-on-p)

Create a ‘lamp-status’ from ‘lamp-hours’ and ‘on-p’

Package

pjlink.

Source

class1.lisp.

Function: make-status-listener (&key handlers local-host port)

Creates a projector status listener listening on ‘local-host’.
‘handlers’ is either a ‘status-handler’ handler or a list of ‘status-handler’s these handlers will be initially registered as ‘add-handler’
if ‘handlers’ is non-nil, the listener will be started, as per ‘start-listener’

Package

pjlink.

Source

class2.lisp.

Function: power-off (host-info &key port password local-host local-port)

Instruct the projector to power off.

Package

pjlink.

Source

class1.lisp.

Function: power-on (host-info &key port password local-host local-port)

Instruct the projector to power on.

Package

pjlink.

Source

class1.lisp.

Function: projector-input (input-type input-number)

Create a ‘projector-input’ from ‘input-type’ and ‘input-number’

Package

pjlink.

Source

class1.lisp.

Function: projector-input2 (input-type2 input-number2)

Create a ‘projector-input2’ from ‘input-type2’ and ‘input-number2’

Package

pjlink.

Source

class2.lisp.

Function: projector-status (&key fan lamp temperature cover-open filter other)

Create a ‘projector-status’ from each ‘error-component’ ‘error-status’

Package

pjlink.

Source

class1.lisp.

Function: remove-handler (status-listener handler)

Remove a ‘status-handler’ from a ‘status-listener’.

Package

pjlink.

Source

class2.lisp.

Function: search-projectors (&key local-host port)

Performs a PJLink broadcast search.
Returns a list of ‘(‘hostname’ . ‘mac-address’)‘ pairs representing each projector that responded.

‘local-host’ indicates the local interface to use for the search. if nil will
use the general broadcast address instead.
‘port’ is the port used for the SRCH operation.

Package

pjlink.

Source

class2.lisp.

Function: set-av-mute (avmt host-info &key port password local-host local-port)

Set the ‘av-mute-status’ on the projector. see ‘get-av-mute’

Package

pjlink.

Source

class1.lisp.

Function: set-input (input-type input-number host-info &key port password local-host local-port)

Sets the input to the given ‘input-type’ and ‘input-number’ see ‘set-input*’, ‘get-input’

Package

pjlink.

Source

class1.lisp.

Function: set-input* (projector-input host-info &key port password local-host local-port)

As ‘set-input’ but using a ‘projector-input’ object instead.

Package

pjlink.

Source

class1.lisp.

Function: set-input2 (input-type input-number host-info &key port password local-host local-port)

Sets the input to the given ‘input-type2’ and ‘input-number2’ see ‘set-input2*’
see ‘get-input2’

Package

pjlink.

Source

class2.lisp.

Function: set-input2* (projector-input2 host-info &key port password local-host local-port)

As ‘set-input2’ but using a ‘projector-input’ or ‘projector-input2’ object instead.

Package

pjlink.

Source

class2.lisp.

Function: start-listener (status-listener)

Start a ‘status-listener’ if it is not already started.
This will cause incoming status notifications to alert any registered handlers.

Package

pjlink.

Source

class2.lisp.

Function: stop-listener (status-listener)

Stop a ‘status-listener’ if it is not already stopped. This will cease listening for status notification updates.

Package

pjlink.

Source

class2.lisp.

Function: unfreeze-screen (host-info &key port password local-host local-port)

Unfreeze the screen.

Package

pjlink.

Source

class2.lisp.


5.1.3 Generic functions

Generic Function: host (obj)

Get the ‘hostname’ designated by ‘obj’

Package

pjlink.

Source

pjlink.lisp.

Methods
Reader Method: host ((pjlink-config pjlink-config))

automatically generated reader method

Target Slot

%host.

Method: host (obj)

Use ‘obj’ as a ‘hostname’.

Generic Writer: (setf host) (object)
Package

pjlink.

Methods
Writer Method: (setf host) ((pjlink-config pjlink-config))

automatically generated writer method

Source

pjlink.lisp.

Target Slot

%host.

Generic Function: local-host (obj)

Get the ‘local-host’ designated by ‘obj’.

Package

pjlink.

Source

pjlink.lisp.

Methods
Reader Method: local-host ((pjlink-config pjlink-config))

automatically generated reader method

Target Slot

%local-host.

Method: local-host (obj)

No specific local-host

Generic Writer: (setf local-host) (object)
Package

pjlink.

Methods
Writer Method: (setf local-host) ((pjlink-config pjlink-config))

automatically generated writer method

Source

pjlink.lisp.

Target Slot

%local-host.

Generic Function: local-port (obj)

Get the ‘local-port’ designated by ‘obj’.

Package

pjlink.

Source

pjlink.lisp.

Methods
Reader Method: local-port ((pjlink-config pjlink-config))

automatically generated reader method

Target Slot

%local-port.

Method: local-port (obj)

No specific local-port

Generic Writer: (setf local-port) (object)
Package

pjlink.

Methods
Writer Method: (setf local-port) ((pjlink-config pjlink-config))

automatically generated writer method

Source

pjlink.lisp.

Target Slot

%local-port.

Generic Reader: out-of-parameter-error-parameter (condition)
Package

pjlink.

Methods
Reader Method: out-of-parameter-error-parameter ((condition out-of-parameter-error))
Source

pjlink.lisp.

Target Slot

%parameter.

Generic Function: password (obj)

Get the password designated by ‘obj’. nil if no password is to be used.

Package

pjlink.

Source

pjlink.lisp.

Methods
Reader Method: password ((pjlink-config pjlink-config))

automatically generated reader method

Target Slot

%password.

Method: password (obj)

Provide no password

Generic Writer: (setf password) (object)
Package

pjlink.

Methods
Writer Method: (setf password) ((pjlink-config pjlink-config))

automatically generated writer method

Source

pjlink.lisp.

Target Slot

%password.

Generic Function: port (obj)

Get the port designated by ‘obj’

Package

pjlink.

Source

pjlink.lisp.

Methods
Reader Method: port ((pjlink-config pjlink-config))

automatically generated reader method

Target Slot

%port.

Method: port (obj)

Use the default PJLink port.

Generic Writer: (setf port) (object)
Package

pjlink.

Methods
Writer Method: (setf port) ((pjlink-config pjlink-config))

automatically generated writer method

Source

pjlink.lisp.

Target Slot

%port.

Generic Reader: projector-command-error-class (condition)
Package

pjlink.

Methods
Reader Method: projector-command-error-class ((condition projector-command-error))
Source

pjlink.lisp.

Target Slot

%class.

Generic Reader: projector-command-error-command (condition)
Package

pjlink.

Methods
Reader Method: projector-command-error-command ((condition projector-command-error))
Source

pjlink.lisp.

Target Slot

%command.

Generic Reader: projector-command-error-host (condition)
Package

pjlink.

Methods
Reader Method: projector-command-error-host ((condition projector-command-error))
Source

pjlink.lisp.

Target Slot

%host.


5.1.4 Conditions

Condition: authorization-error
Package

pjlink.

Source

pjlink.lisp.

Direct superclasses

projector-command-error.

Condition: out-of-parameter-error
Package

pjlink.

Source

pjlink.lisp.

Direct superclasses

projector-command-error.

Direct methods

out-of-parameter-error-parameter.

Direct slots
Slot: %parameter
Initargs

:parameter

Readers

out-of-parameter-error-parameter.

Writers

This slot is read-only.

Condition: projector-command-error
Package

pjlink.

Source

pjlink.lisp.

Direct superclasses

error.

Direct subclasses
Direct methods
Direct slots
Slot: %host
Initargs

:host

Readers

projector-command-error-host.

Writers

This slot is read-only.

Slot: %class
Initargs

:class

Readers

projector-command-error-class.

Writers

This slot is read-only.

Slot: %command
Initargs

:command

Readers

projector-command-error-command.

Writers

This slot is read-only.

Condition: projector-display-error
Package

pjlink.

Source

pjlink.lisp.

Direct superclasses

projector-command-error.

Condition: unavailable-time-error
Package

pjlink.

Source

pjlink.lisp.

Direct superclasses

projector-command-error.

Condition: undefined-command-error
Package

pjlink.

Source

pjlink.lisp.

Direct superclasses

projector-command-error.


5.1.5 Classes

Holds configuration for connecting with a PJLink projector host - host to connect to
port - port to connect to
password to use (unused if authentication disabled) local-host - Local interface to use
local-port - Local port to use

Package

pjlink.

Source

pjlink.lisp.

Direct methods
Direct slots
Slot: %host
Type

pjlink:hostname

Initform

"localhost"

Initargs

:host

Readers

host.

Writers

(setf host).

Slot: %port
Type

integer

Initform

pjlink:+default-port+

Initargs

:port

Readers

port.

Writers

(setf port).

Slot: %password
Type

(or null sequence)

Initargs

:password

Readers

password.

Writers

(setf password).

Slot: %local-host
Type

pjlink:hostname

Initargs

:local-host

Readers

local-host.

Writers

(setf local-host).

Slot: %local-port
Type

(or null integer)

Initargs

:local-port

Readers

local-port.

Writers

(setf local-port).

Class: status-listener
Package

pjlink.

Source

class2.lisp.

Direct slots
Slot: %lock
Type

bordeaux-threads:lock

Initform

(bordeaux-threads:make-lock)

Slot: %address
Type

pjlink:hostname

Initform

(alexandria:required-argument :address)

Initargs

:address

Slot: %port
Type

integer

Initform

(alexandria:required-argument :port)

Initargs

:port

Slot: %handlers-ref
Type

pjlink::%ref

Initform

(pjlink::%make-ref nil)

Slot: %end-thread-fn-ref
Type

pjlink::%ref

Initform

(pjlink::%make-ref nil)


5.1.6 Types

Type: av-mute-status ()

Status of the audio-video mute setting on a projector.
Audio-video mute will cease output of audio or video, without powering off the projector.

see ‘get-av-mute’
see ‘set-av-mute’

Package

pjlink.

Source

class1.lisp.

Type: error-component ()

A component of a projector that can be reported

see ‘get-error-status’
see ‘projector-status’
see ‘error-status’

Package

pjlink.

Source

class1.lisp.

Type: error-status ()

Status of a component of a projector.

see ‘get-error-status’
see ‘projector-status’

Package

pjlink.

Source

class1.lisp.

Type: hostname ()

A valid hostname for a projector or local inteface.

Package

pjlink.

Source

pjlink.lisp.

Type: input-number ()

Input number for a projector

see ‘set-input’

Package

pjlink.

Source

class1.lisp.

Type: input-number2 ()

An input number for class 2 projectors, expanding the range of input numbers to [1, 35].

see ‘set-projector-input2’

Package

pjlink.

Source

class2.lisp.

Type: input-type ()

An input type for a projector.
Note that a projector may have several inputs of the same type, identified by an ‘input-number’

see ‘set-input’

Package

pjlink.

Source

class1.lisp.

Type: input-type2 ()

An input type for a class2 projector, adding ‘:internal’
Note that a projector may have several inputs of the same type, identified by an ‘input-number‘

see ‘set-projector-input2’

Package

pjlink.

Source

class2.lisp.

Type: lamp-hours ()

Number of hours a lamp has been on.

Package

pjlink.

Source

class1.lisp.

Type: lamp-status ()

A cons of (‘lamp-hours’ . on-p) eg.
’(500 . nil)

see ‘get-lamps’

Package

pjlink.

Source

class1.lisp.

Type: mac-address ()

A MAC address as a vector of 6 octets.

see ‘search-projectors’

Package

pjlink.

Source

class2.lisp.

Type: power-status ()

Power status of a projector.

see ‘power-on’
see ‘power-off’
see ‘get-power-status’

Package

pjlink.

Source

class1.lisp.

Type: projector-input ()

A cons of (‘input-type’ . ‘input-number’) eg.
’(:digital . 5)

see ‘get-input’
see ‘set-input’
see ‘set-input*’
see ‘get-inputs’

Package

pjlink.

Source

class1.lisp.

Type: projector-input2 ()

A cons of (‘input-type2’ . ‘input-number2’)

eg.
’(:internal . 30)

see ‘get-input2’
see ‘set-input2*’
see ‘get-inputs2’

Package

pjlink.

Source

class2.lisp.

Type: projector-resolution ()

Resolution of a projector, as:
a cons of (<horz-resolution> . <vert-resolution>) :no-signal if no signal is available :unknown-signal if the signal is unknown

see ‘get-resolution’
see ‘get-recommended-resolution’

Package

pjlink.

Source

class2.lisp.

Type: projector-status ()

An alist representing the projector error state.
the keys are ‘error-component’ and values ‘error-status’ eg.
’((:fan . nil)
(:lamp . nil)
(:temperature . :warning)
(:cover-open . nil)
(:filter . :error)
(:other . nil))

see ‘get-error-status’

Package

pjlink.

Source

class1.lisp.

Type: status-event ()

A keyword denoting a notification event type from the projector.

see ‘make-status-listener’

Package

pjlink.

Source

class2.lisp.

Type: status-handler ()

A function-designator for a function of three arguments: remote-host: a ‘hostname’ representing the origin of the status update event-type: a ‘status-event’ representing the status notification arg: an object representing the event status, depending on ‘event-type’:

:lkup - the ‘mac-address’ of the projector
:erst - ‘projector-status’
:powr - ‘power-status’
:inpt - ‘projector-input2’

see ‘make-status-listener’

Package

pjlink.

Source

class2.lisp.


5.2 Internals


5.2.1 Constants

Constant: +max-command-line-length+

The max length of a PJLink command line:
Header(1) Class(1) Command(4) Separator(1) Param(128) CR(1)

Package

pjlink.

Source

pjlink.lisp.

Constant: +max-connection-response-length+

Max length of an initial connection response. This is one with authentication enabled: PJLINK 1 01234567<CR>

Package

pjlink.

Source

pjlink.lisp.

Constant: +seed-length+

The number of random characters we receive from an authentication line, to be used as salt in our MD5 hash.

Package

pjlink.

Source

pjlink.lisp.


5.2.2 Macros

Helper macro to create a GET function.
‘name’ is the name of the resulting function
‘class’ indicates the class number for the command - eg 1
‘command’ is the string designating the command - eg "POWR"
‘input-args’ and ‘transform-body’ are used to receive input arguments and transform them into string PJLink parameters eg. ((input-type input-number)
(%input2->string input-type input-number))
arguments defined in ‘input-args’ always preceed the host and key args
‘result-var’ is the variable holding the result of the get
‘body’ is the body of the function, which processes the result.

Package

pjlink.

Source

pjlink.lisp.

Helper macro to create a SET function.
‘name’ is the name of the resulting function
‘class’ indicates the class number for the command - eg 1
‘command’ is the string designating the command - eg "POWR"
‘args’ is a list of additional arguments to the function. These always preceed the host and key arguments. ‘body’ is the body of the function, which generates the string PJLink parameter to send.

Package

pjlink.

Source

pjlink.lisp.

Package

pjlink.

Source

pjlink.lisp.


5.2.3 Compiler macros

Compiler Macro: %chars->string (&rest characters)
Package

pjlink.

Source

pjlink.lisp.


5.2.4 Ordinary functions

Function: %address-and-broadcast (local-host)

Returns the address and broadcast address to use for the interface ‘local-host’ Finds a suitable broadcast interface matching ‘local-host’ and returns its address. When ‘local-host’ is nil, the general broadcast address is used

Package

pjlink.

Source

class2.lisp.

Function: %auth-handshake (stream password)

Read the initial connection line and output a digest, if necessary.

Package

pjlink.

Source

pjlink.lisp.

Function: %avmt->string (avmt)
Package

pjlink.

Source

class1.lisp.

Function: %avmt->sym (response)
Package

pjlink.

Source

class1.lisp.

Function: %calculate-broadcast-addr (address subnet)

Calculate a broadcast address vector from an ipv4 address and subnet.

Package

pjlink.

Source

class2.lisp.

Function: %calculate-broadcast-addr* (interface)

Calculates a broadcast address vector from an ‘ip-interfaces::ip-interface’

Package

pjlink.

Source

class2.lisp.

Function: %chars->string (&rest characters)
Package

pjlink.

Source

pjlink.lisp.

Function: %class->char (class)

Convert a class number to its character representation.

Package

pjlink.

Source

pjlink.lisp.

Function: %encrypt-password (seed password &optional seed-start)

Create a PJLink authentication digest from ‘seed’ and ‘password’ ‘seed-start’ indicates where reading from ‘seed’ should start. And password a sequence of characters length 32 or less.

Package

pjlink.

Source

pjlink.lisp.

Function: %erst->sym (erst)
Package

pjlink.

Source

class1.lisp.

Function: %find-broadcast-interface (interface-address)

Find an IP interface matching ‘interface-address’ with broadcast capabilities nil if no such interface is available.

Package

pjlink.

Source

class2.lisp.

Function: %input->string (input-type input-number)
Package

pjlink.

Source

class1.lisp.

Function: %input->sym (input-val)
Package

pjlink.

Source

class1.lisp.

Function: %input2->string (input-type2 input-number2)
Package

pjlink.

Source

class2.lisp.

Function: %input2->sym (input-val)
Package

pjlink.

Source

class2.lisp.

Function: %inst-str->projector-inputs (inst-str)

Parses a inst string into a list of ‘projector-input’s ‘inst-str’ should be a string where each input is represented by

<Type><Number>

Additional inputs are separated by spaces.

eg
11 45 51

Package

pjlink.

Source

class1.lisp.

Function: %inst-str2->projector-input2s (inst-str)

Parses a inst string into a list of ‘projector-input2”s ‘inst-str‘ should be a string where each input is represented by

<Type><Number>

Additional inputs are separated by spaces.

eg
11 2Z 3E 61

Package

pjlink.

Source

class2.lisp.

Function: %lamp-str->lamp-status (lamps-str)

Parses a lamp string into a list of ‘lamp-status’s ‘lamps-str‘ should be a string where each lamp is represented by

<Hours> SPC <OnOrOff>

Additional lamps are separated by spaces.

eg
8262 1 13451 1 198 0

Package

pjlink.

Source

class1.lisp.

Function: %make-end-thread-fn (running-ref thread socket address port)
Package

pjlink.

Source

class2.lisp.

Function: %make-finalizer (running-ref socket)
Package

pjlink.

Source

class2.lisp.

Function: %make-listener-thread (running-ref handlers-ref socket)
Package

pjlink.

Source

class2.lisp.

Function: %make-ref (&optional %ref-value)
Package

pjlink.

Source

class2.lisp.

Function: %md5->hex-str (md5)

Convert a 16-octet md5 hash into a 32-char hex-encoded string.

Package

pjlink.

Source

pjlink.lisp.

Function: %nibble->hex (nibble)

Convert a nibble into its hex char.

Package

pjlink.

Source

pjlink.lisp.

Function: %normalize-hostname (host)

Returns a normalized octet vector representation of host

Package

pjlink.

Source

class2.lisp.

Function: %notify-handlers (handlers remote-host event-type args)
Package

pjlink.

Source

class2.lisp.

Open a ‘usocker:socket’ on ‘host’ and authenticate if necessary using ‘password’

Package

pjlink.

Source

pjlink.lisp.

Function: %parse-erst-status (buf len)
Package

pjlink.

Source

class2.lisp.

Function: %parse-inpt-status (buf len)
Package

pjlink.

Source

class2.lisp.

Function: %parse-lkup-status (buf len)
Package

pjlink.

Source

class2.lisp.

Function: %parse-mac-address (buf &key start)
Package

pjlink.

Source

class2.lisp.

Function: %parse-powr-status (buf len)
Package

pjlink.

Source

class2.lisp.

Function: %parse-search-ack (response)
Package

pjlink.

Source

class2.lisp.

Conducts a ‘get‘ command on ‘stream‘, and returns the result string uses
‘class’ as the command class
‘command’ as the command name
‘param’ as the command parameter, if any

This will issue a query such as
%1POWR ?

Then given a result of
%1POWR=0
returns the string "0"

Package

pjlink.

Source

pjlink.lisp.

Conducts a ‘set‘ command on ‘stream‘, and returns the result string uses
‘class’ as the command class
‘command’ as the command name
‘param’ as the command parameter, if any

This will issue a query such as
%1POWR 1

Then given a result of
%1POWR=OK
will return no values.
Will error on error responses such as ERR1, ERRA, ERR3 etc.

Package

pjlink.

Source

pjlink.lisp.

Function: %powr->sym (input-val)
Package

pjlink.

Source

class1.lisp.

Reads a pjlink command-line (delimited by #Return) from ‘stream‘ into ‘buffer‘ Returns the number of characters read, before encountering #Return

Package

pjlink.

Source

pjlink.lisp.

Function: %read-response (host stream class command param)

Reads and checks a PJLink response from ‘stream’, and returns the result.

Package

pjlink.

Source

pjlink.lisp.

Reader: %ref-value (instance)
Writer: (setf %ref-value) (instance)
Package

pjlink.

Source

class2.lisp.

Target Slot

%ref-value.

Function: %res-str->resolution (res-str)

Parses a resolution string of the form

<horz>x<vert>

eg
1920x1080.

Package

pjlink.

Source

class2.lisp.

Function: %valid-command-response-p (class command response &optional rlen)

Returns true if the response ‘response’ is a valid response string, given ‘class’ and ‘command’ Given ‘class’ = 1, and ‘command’ = "POWR", a valid response would be
%1POWR=

Package

pjlink.

Source

pjlink.lisp.

Function: %validate-and-parse-status (buf len)
Package

pjlink.

Source

class2.lisp.

Function: %validate-search-ack (response len)
Package

pjlink.

Source

class2.lisp.

Function: %verify-connection-response-and-generate-digest (response password &optional rlen)

Verifies that ‘response’ is a valid connection response, and generates a digest from it and ‘password’ ‘rlen’ is the number of characters in ‘response’ we should read.

Package

pjlink.

Source

pjlink.lisp.

Function: %write-command (stream class command &rest params)

Writes a PJLink command to ‘stream’ using ‘class’, ‘command’, and ‘params’ eg.
%1CLSS ?<Return>

Package

pjlink.

Source

pjlink.lisp.

Function: get-other-info (host-info &key port password local-host local-port)

Query other information about the projector. nil if not available.

Package

pjlink.

Source

class1.lisp.


5.2.5 Structures

Structure: %ref

A ’reference’/’box’ to use as indirect value references for eg. finalizing slot values

Package

pjlink.

Source

class2.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: %ref-value
Readers

%ref-value.

Writers

(setf %ref-value).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
A   C   D   F   G   H   I   L   M   O   P   R   S   U  
Index Entry  Section

%
%address-and-broadcast: Private ordinary functions
%auth-handshake: Private ordinary functions
%avmt->string: Private ordinary functions
%avmt->sym: Private ordinary functions
%calculate-broadcast-addr: Private ordinary functions
%calculate-broadcast-addr*: Private ordinary functions
%chars->string: Private compiler macros
%chars->string: Private ordinary functions
%class->char: Private ordinary functions
%defpjlink-get: Private macros
%defpjlink-set: Private macros
%encrypt-password: Private ordinary functions
%erst->sym: Private ordinary functions
%find-broadcast-interface: Private ordinary functions
%input->string: Private ordinary functions
%input->sym: Private ordinary functions
%input2->string: Private ordinary functions
%input2->sym: Private ordinary functions
%inst-str->projector-inputs: Private ordinary functions
%inst-str2->projector-input2s: Private ordinary functions
%lamp-str->lamp-status: Private ordinary functions
%make-end-thread-fn: Private ordinary functions
%make-finalizer: Private ordinary functions
%make-listener-thread: Private ordinary functions
%make-ref: Private ordinary functions
%md5->hex-str: Private ordinary functions
%nibble->hex: Private ordinary functions
%normalize-hostname: Private ordinary functions
%notify-handlers: Private ordinary functions
%open-pjlink-socket: Private ordinary functions
%parse-erst-status: Private ordinary functions
%parse-inpt-status: Private ordinary functions
%parse-lkup-status: Private ordinary functions
%parse-mac-address: Private ordinary functions
%parse-powr-status: Private ordinary functions
%parse-search-ack: Private ordinary functions
%pjlink-get: Private ordinary functions
%pjlink-set: Private ordinary functions
%powr->sym: Private ordinary functions
%read-pjlink-command-line: Private ordinary functions
%read-response: Private ordinary functions
%ref-value: Private ordinary functions
%res-str->resolution: Private ordinary functions
%valid-command-response-p: Private ordinary functions
%validate-and-parse-status: Private ordinary functions
%validate-search-ack: Private ordinary functions
%verify-connection-response-and-generate-digest: Private ordinary functions
%with-pjlink-connection: Private macros
%write-command: Private ordinary functions

(
(setf %ref-value): Private ordinary functions
(setf host): Public generic functions
(setf host): Public generic functions
(setf local-host): Public generic functions
(setf local-host): Public generic functions
(setf local-port): Public generic functions
(setf local-port): Public generic functions
(setf password): Public generic functions
(setf password): Public generic functions
(setf port): Public generic functions
(setf port): Public generic functions

A
add-handler: Public ordinary functions

C
Compiler Macro, %chars->string: Private compiler macros

D
decrease-microphone: Public ordinary functions
decrease-speaker: Public ordinary functions

F
freeze-screen: Public ordinary functions
Function, %address-and-broadcast: Private ordinary functions
Function, %auth-handshake: Private ordinary functions
Function, %avmt->string: Private ordinary functions
Function, %avmt->sym: Private ordinary functions
Function, %calculate-broadcast-addr: Private ordinary functions
Function, %calculate-broadcast-addr*: Private ordinary functions
Function, %chars->string: Private ordinary functions
Function, %class->char: Private ordinary functions
Function, %encrypt-password: Private ordinary functions
Function, %erst->sym: Private ordinary functions
Function, %find-broadcast-interface: Private ordinary functions
Function, %input->string: Private ordinary functions
Function, %input->sym: Private ordinary functions
Function, %input2->string: Private ordinary functions
Function, %input2->sym: Private ordinary functions
Function, %inst-str->projector-inputs: Private ordinary functions
Function, %inst-str2->projector-input2s: Private ordinary functions
Function, %lamp-str->lamp-status: Private ordinary functions
Function, %make-end-thread-fn: Private ordinary functions
Function, %make-finalizer: Private ordinary functions
Function, %make-listener-thread: Private ordinary functions
Function, %make-ref: Private ordinary functions
Function, %md5->hex-str: Private ordinary functions
Function, %nibble->hex: Private ordinary functions
Function, %normalize-hostname: Private ordinary functions
Function, %notify-handlers: Private ordinary functions
Function, %open-pjlink-socket: Private ordinary functions
Function, %parse-erst-status: Private ordinary functions
Function, %parse-inpt-status: Private ordinary functions
Function, %parse-lkup-status: Private ordinary functions
Function, %parse-mac-address: Private ordinary functions
Function, %parse-powr-status: Private ordinary functions
Function, %parse-search-ack: Private ordinary functions
Function, %pjlink-get: Private ordinary functions
Function, %pjlink-set: Private ordinary functions
Function, %powr->sym: Private ordinary functions
Function, %read-pjlink-command-line: Private ordinary functions
Function, %read-response: Private ordinary functions
Function, %ref-value: Private ordinary functions
Function, %res-str->resolution: Private ordinary functions
Function, %valid-command-response-p: Private ordinary functions
Function, %validate-and-parse-status: Private ordinary functions
Function, %validate-search-ack: Private ordinary functions
Function, %verify-connection-response-and-generate-digest: Private ordinary functions
Function, %write-command: Private ordinary functions
Function, (setf %ref-value): Private ordinary functions
Function, add-handler: Public ordinary functions
Function, decrease-microphone: Public ordinary functions
Function, decrease-speaker: Public ordinary functions
Function, freeze-screen: Public ordinary functions
Function, get-av-mute: Public ordinary functions
Function, get-error-status: Public ordinary functions
Function, get-filter-model: Public ordinary functions
Function, get-filter-usage-time: Public ordinary functions
Function, get-freeze-status: Public ordinary functions
Function, get-input: Public ordinary functions
Function, get-input-name: Public ordinary functions
Function, get-input-name*: Public ordinary functions
Function, get-input2: Public ordinary functions
Function, get-inputs: Public ordinary functions
Function, get-inputs2: Public ordinary functions
Function, get-lamp-model: Public ordinary functions
Function, get-lamps: Public ordinary functions
Function, get-manufacturer-name: Public ordinary functions
Function, get-other-info: Private ordinary functions
Function, get-pjlink-class: Public ordinary functions
Function, get-power-status: Public ordinary functions
Function, get-product-name: Public ordinary functions
Function, get-projector-name: Public ordinary functions
Function, get-recommended-resolution: Public ordinary functions
Function, get-resolution: Public ordinary functions
Function, get-serial-number: Public ordinary functions
Function, get-software-version: Public ordinary functions
Function, increase-microphone: Public ordinary functions
Function, increase-speaker: Public ordinary functions
Function, input-number: Public ordinary functions
Function, input-number2: Public ordinary functions
Function, input-type: Public ordinary functions
Function, input-type2: Public ordinary functions
Function, lamp-hours: Public ordinary functions
Function, lamp-on-p: Public ordinary functions
Function, lamp-status: Public ordinary functions
Function, make-status-listener: Public ordinary functions
Function, power-off: Public ordinary functions
Function, power-on: Public ordinary functions
Function, projector-input: Public ordinary functions
Function, projector-input2: Public ordinary functions
Function, projector-status: Public ordinary functions
Function, remove-handler: Public ordinary functions
Function, search-projectors: Public ordinary functions
Function, set-av-mute: Public ordinary functions
Function, set-input: Public ordinary functions
Function, set-input*: Public ordinary functions
Function, set-input2: Public ordinary functions
Function, set-input2*: Public ordinary functions
Function, start-listener: Public ordinary functions
Function, stop-listener: Public ordinary functions
Function, unfreeze-screen: Public ordinary functions

G
Generic Function, (setf host): Public generic functions
Generic Function, (setf local-host): Public generic functions
Generic Function, (setf local-port): Public generic functions
Generic Function, (setf password): Public generic functions
Generic Function, (setf port): Public generic functions
Generic Function, host: Public generic functions
Generic Function, local-host: Public generic functions
Generic Function, local-port: Public generic functions
Generic Function, out-of-parameter-error-parameter: Public generic functions
Generic Function, password: Public generic functions
Generic Function, port: Public generic functions
Generic Function, projector-command-error-class: Public generic functions
Generic Function, projector-command-error-command: Public generic functions
Generic Function, projector-command-error-host: Public generic functions
get-av-mute: Public ordinary functions
get-error-status: Public ordinary functions
get-filter-model: Public ordinary functions
get-filter-usage-time: Public ordinary functions
get-freeze-status: Public ordinary functions
get-input: Public ordinary functions
get-input-name: Public ordinary functions
get-input-name*: Public ordinary functions
get-input2: Public ordinary functions
get-inputs: Public ordinary functions
get-inputs2: Public ordinary functions
get-lamp-model: Public ordinary functions
get-lamps: Public ordinary functions
get-manufacturer-name: Public ordinary functions
get-other-info: Private ordinary functions
get-pjlink-class: Public ordinary functions
get-power-status: Public ordinary functions
get-product-name: Public ordinary functions
get-projector-name: Public ordinary functions
get-recommended-resolution: Public ordinary functions
get-resolution: Public ordinary functions
get-serial-number: Public ordinary functions
get-software-version: Public ordinary functions

H
host: Public generic functions
host: Public generic functions
host: Public generic functions

I
increase-microphone: Public ordinary functions
increase-speaker: Public ordinary functions
input-number: Public ordinary functions
input-number2: Public ordinary functions
input-type: Public ordinary functions
input-type2: Public ordinary functions

L
lamp-hours: Public ordinary functions
lamp-on-p: Public ordinary functions
lamp-status: Public ordinary functions
local-host: Public generic functions
local-host: Public generic functions
local-host: Public generic functions
local-port: Public generic functions
local-port: Public generic functions
local-port: Public generic functions

M
Macro, %defpjlink-get: Private macros
Macro, %defpjlink-set: Private macros
Macro, %with-pjlink-connection: Private macros
make-status-listener: Public ordinary functions
Method, (setf host): Public generic functions
Method, (setf local-host): Public generic functions
Method, (setf local-port): Public generic functions
Method, (setf password): Public generic functions
Method, (setf port): Public generic functions
Method, host: Public generic functions
Method, host: Public generic functions
Method, local-host: Public generic functions
Method, local-host: Public generic functions
Method, local-port: Public generic functions
Method, local-port: Public generic functions
Method, out-of-parameter-error-parameter: Public generic functions
Method, password: Public generic functions
Method, password: Public generic functions
Method, port: Public generic functions
Method, port: Public generic functions
Method, projector-command-error-class: Public generic functions
Method, projector-command-error-command: Public generic functions
Method, projector-command-error-host: Public generic functions

O
out-of-parameter-error-parameter: Public generic functions
out-of-parameter-error-parameter: Public generic functions

P
password: Public generic functions
password: Public generic functions
password: Public generic functions
port: Public generic functions
port: Public generic functions
port: Public generic functions
power-off: Public ordinary functions
power-on: Public ordinary functions
projector-command-error-class: Public generic functions
projector-command-error-class: Public generic functions
projector-command-error-command: Public generic functions
projector-command-error-command: Public generic functions
projector-command-error-host: Public generic functions
projector-command-error-host: Public generic functions
projector-input: Public ordinary functions
projector-input2: Public ordinary functions
projector-status: Public ordinary functions

R
remove-handler: Public ordinary functions

S
search-projectors: Public ordinary functions
set-av-mute: Public ordinary functions
set-input: Public ordinary functions
set-input*: Public ordinary functions
set-input2: Public ordinary functions
set-input2*: Public ordinary functions
start-listener: Public ordinary functions
stop-listener: Public ordinary functions

U
unfreeze-screen: Public ordinary functions


A.3 Variables


A.4 Data types

Jump to:   %  
A   C   E   F   H   I   L   M   O   P   Q   S   T   U  
Index Entry  Section

%
%ref: Private structures

A
authorization-error: Public conditions
av-mute-status: Public types

C
Class, pjlink-config: Public classes
Class, status-listener: Public classes
class1.lisp: The pjlink/class1․lisp file
class2.lisp: The pjlink/class2․lisp file
Condition, authorization-error: Public conditions
Condition, out-of-parameter-error: Public conditions
Condition, projector-command-error: Public conditions
Condition, projector-display-error: Public conditions
Condition, unavailable-time-error: Public conditions
Condition, undefined-command-error: Public conditions

E
error-component: Public types
error-status: Public types

F
File, class1.lisp: The pjlink/class1․lisp file
File, class2.lisp: The pjlink/class2․lisp file
File, package.lisp: The pjlink/package․lisp file
File, pjlink.asd: The pjlink/pjlink․asd file
File, pjlink.lisp: The pjlink/pjlink․lisp file
File, qlfile: The pjlink/qlfile file

H
hostname: Public types

I
input-number: Public types
input-number2: Public types
input-type: Public types
input-type2: Public types

L
lamp-hours: Public types
lamp-status: Public types

M
mac-address: Public types

O
out-of-parameter-error: Public conditions

P
Package, pjlink: The pjlink package
package.lisp: The pjlink/package․lisp file
pjlink: The pjlink system
pjlink: The pjlink package
pjlink-config: Public classes
pjlink.asd: The pjlink/pjlink․asd file
pjlink.lisp: The pjlink/pjlink․lisp file
power-status: Public types
projector-command-error: Public conditions
projector-display-error: Public conditions
projector-input: Public types
projector-input2: Public types
projector-resolution: Public types
projector-status: Public types

Q
qlfile: The pjlink/qlfile file

S
status-event: Public types
status-handler: Public types
status-listener: Public classes
Structure, %ref: Private structures
System, pjlink: The pjlink system

T
Type, av-mute-status: Public types
Type, error-component: Public types
Type, error-status: Public types
Type, hostname: Public types
Type, input-number: Public types
Type, input-number2: Public types
Type, input-type: Public types
Type, input-type2: Public types
Type, lamp-hours: Public types
Type, lamp-status: Public types
Type, mac-address: Public types
Type, power-status: Public types
Type, projector-input: Public types
Type, projector-input2: Public types
Type, projector-resolution: Public types
Type, projector-status: Public types
Type, status-event: Public types
Type, status-handler: Public types

U
unavailable-time-error: Public conditions
undefined-command-error: Public conditions