
* README file for libirman v0.4.1           *
* by Tom Wheeley <tomw@tsys.demon.co.uk>    *

E-mail before September 1999 is best sent to
  <tom.wheeley@src.bae.co.uk>


Copyright and Licensing


libirman v0.4.1, Copyright (C) 1998,1999 Tom Wheeley <tomw@tsys.demon.co.uk>

The files which make up the library are covered under the GNU Library
General Public License, which is in the file COPYING.lib.

The files which make up the test programs and the documentation are covered
under the GNU General Public License, which is in the file COPYING.



Introduction


libirman is a library for accessing the IRMAN hardware from Linux,
and hopefully, other Unix systems.

Currently the package is mainly for advanced users and developers; this
does not mean that less experienced users will not be able to use it, but
that there are not a lot of applications for libirman at the moment, and
that if you run into problems you may have difficulty fixing things.

Read the file TECHNICAL to see how libirman works, and how to use it in your
applications.

New with version 0.4.1 is a program `lirmand' which should let Irman users
use their Irman hardware with the software provided by the LIRC project. 
Please see the LIRC documentation and README.lirc for more information.



Other Information


  libirman homepage
    http://www.evation.com/linux/

  Irman hompage
    http://www.evation.com/irman/

  LIRC Corner
    http://fsinfo.cs.uni-sb.de/~columbus/lirc/

  Infra red remotes (technical information)
    http://falcon.arts.cornell.edu/~dnegro/IR/IR.html

  Universal Infra Red Receiver (build your own Irman)
    http://www.geocities.com/SiliconValley/Sector/3863/infrared.html



Installation


To build libirman, run

  ./configure
  make
  make install

You may well like to check the available options to configure by typing

  ./configure --help

most importantly: --prefix, --with-swtest, --with-lirc

This will create the following important files:

  libirman.a	The library which talks to the irman and manages the results
  
  irman_func	Test program for the low level functions in libirman
  irman_func	Test program for the mid-level functions in libirman
  irman_func	test program for the name functions.
  
  workmanir	Program to control workmanvia infra red
  lirmand	interface for lirc.

  /dev/lirc     named pipe used by lirmand to communicate with lircd.

By default they are installed in /usr/pkg.  If you do not use the --prefix
option to `configure' then you will need to be root to run `make install'.

  
  
Using libirman


Firstly, you should test that the system works.  Run `irman_func' with the
hardware plugged in and see if code numbers appear on the screen when you
press buttons on your remote control.

Once the basic hardware works, you should run `irman_func' to help you set up
libirman for your remote control.  Make sure you have available virtual
consoles, or are running either `screen' or `X' or some other similar
multi-tasking aid.

The file `irman.conf' should be copied to /usr/pkg/etc/irman.conf.  You may
want to copy this to `~/.irmanrc'.  libirman searches first for ~/.irmanrc,
and if that is not found reads /usr/pkg/etc/irman.conf.

Press each button on your remote control, and note down the number printed -
you need to add a `bind' line to your irmanrc file, noting the naming
convention used:

  bind manufacturer-device-button code

once you have entered in the data for your remote control, you should change
the workman-* alias lines to point to your remote control's entries.

You may also like to specify the default port in the config file.

Once you have entered in names into your irman config file, try running
`irman_func' to see if the bindings have worked.  (You should see the names
you gave on the `bind' lines appear as you press the buttons).

To see if `workmanir' works, make sure you are already running `workman', then
start `workmanir' and try pressing buttons.



Testing


If you want to test libirman without using the irman hardware, you can run:

`make swtest'

 or

`./configure --with-swtest; make'

which will create libirman_sw.a and programs *_sw (except irman_func).  These
will ask you to enter a twelve digit hex code to represent a code instead of
querying the hardware.

If you compile libirman with the define -DDEBUG_COMM then every byte
read/written from the serial port is printed to stdout.



Credits


Thankyou to the following:

  Christoph Bartelmus <columbus@hit.handshake.de>
    original idea and then bugfixes for `lirmand'.

  Bill Ryder <bryder@sgi.com>
    fix to make it work on SGI boxes

  Minidiscs,  http://www.minidisc.org
    for being just so damn cool.
