NAME
    AnyEvent::Onkyo - AnyEvent module for controlling Onkyo/Integra AV
    equipment

VERSION
    version 1.130220

SYNOPSIS
      use AnyEvent;
      use AnyEvent::Onkyo;
      $| = 1;
      my $cv = AnyEvent->condvar;
      my $onkyo = AnyEvent::Onkyo->new(device => 'discover',
                                       callback => sub {
                                         my $cmd = shift;
                                         print "$cmd\n";
                                         unless ($cmd =~ /^NLS/) {
                                           $cv->send;
                                         }
                                       });
      $onkyo->command('volume up');
      $cv->recv;

DESCRIPTION
    AnyEvent module for controlling Onkyo/Integra AV equipment.

    IMPORTANT: This is an early release and the API is still subject to
    change. The serial port usage is entirely untested.

METHODS
  "new(%params)"
    Constructs a new AnyEvent::Onkyo object. The supported parameters are:

    device
        The name of the device to connect to. The value can be a tty device
        name or "hostname:port" for TCP. It may also be the string
        'discover' in which case automatic discovery will be attempted. This
        value defaults to 'discover'. Note that discovery is currently
        blocking and not recommended.

    callback
        The code reference to execute when a message is received from the
        device. The callback is called with the body of the message as a
        string as the only argument.

    type
        Whether the protocol should be 'ISCP' or 'eISCP'. The default is
        'ISCP' if a tty device was given as the 'device' parameter or
        'eISCP' otherwise.

    baud
        The baud rate for the tty device. The default is 9600.

    port
        The port for a TCP device. The default is 60128.

    broadcast_source_ip
        The source IP address that the discovery process uses for its
        broadcast. The default, '0.0.0.0', should work in most cases but
        multi-homed hosts might need to specify the correct local interface
        address.

    broadcast_dest_ip
        The IP address that the discovery process uses for its broadcast.
        The default, '255.255.255.255', should work in most cases.

  "command($command)"
    This method takes a command and returns a callback to notify the caller
    when it has been sent.

  "cleanup()"
    This method attempts to destroy any resources in the event of a
    disconnection or fatal error.

  "anyevent_read_type()"
    This method is used to register an AnyEvent::Handle read type method to
    read Current Cost messages.

AUTHOR
    Mark Hindess <soft-cpan@temporalanomaly.com>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2012 by Mark Hindess.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

