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.