TYPE: CHOP
TITLE: Pipe In CHOP

This CHOP is a mechanism that allows users to input from custom devices into
a CHOP, without needing the Houdini Developers' Kit or knowledge of Houdini
internals. It is implemented either as a "named pipe" or "FIFO" (first in, 
first out) or a network connection (for remote connections).

To make it work, you need a program that gets values from the input device,
and outputs them into a file specified in Filename or a Network port. The 
values are output in a format that is specified in the public-domain source 
code in the CHOP Reference Manual section on "Programming the Pipe In CHOP". 

The user's custom program writes formatted messages into the file or port, and
the Pipe In CHOP reads it, creating the channels specified in the messages.

One device that is implemented in this way is the Puppetworks device, and
its driver is $HFS/bin/puppetworks.

This CHOP can also receive network data from another server (possibly a
Houdini Pipe Out CHOP running remotely). A connection must be established
between the server and the Pipe In CHOP before data is sent. The server
should be listening for connections on the port that this CHOP is using.

To setup a link between two Houdini processes, one process should have a 
Pipe Out CHOP active (thus listening for connections) on an arbitrary port
(ie. port #5010). The second Houdini uses a Pipe In CHOP with the 
network address set to the name of the machine that the first Houdini
process is running on. The network port should be set to the same port
as the server (in this case, 5010). The port number can be any number
between 5000 and 10000, as long as it is consistent between the Pipe In
and Pipe Out CHOPs. For more than one connection, use distinct port numbers.
Pipe In/Out CHOPs with matching port numbers on different machines should
automatically sense one another.

The Pipe In CHOP's Network mode works on SGI only at present.

There are no local variables.

Parameters
    Source            - Data can be piped in through a UNIX pipe or a
                        Network port.
    Filename          - The file that the device data will be read from. 
                        The file must not be a regular file. It must be a 
                        "named pipe" or "FIFO". In UNIX, see "mknod".
    Server Address    - The network address of the server computer. This
                        address is a standard WWW address, such as 'foo'
                        or 'foo.bar.com'.
    Server Port       - The network port of the server. The port is a
                        number between 5000 and 10000, which both the
                        server and the client use to connect with.
    Active            - While active, the CHOP receives information from
                        the pipe or server. When off, no updating occurs.
                        Data sent by a server is lost, but a pipe will
                        store the data until active is turned on again.
                        If in Network mode, turning this parameter on 
                        initiates a connection, and turning it off breaks
                        the connection.
    Reset Channels    - Clears all channels and data.

See also: Audio In(audioin), MIDI In(midiin), Pipe Out(pipeout)
