NAME
Audio::Radio::XM::PCR - Perl extension for the XM PCR Radio
SYNOPSIS
use Audio::Radio::XM::PCR;
my $radio = new Audio::Radio::XM::PCR;
$radio->open;
# Basic
$radio->tune(8);
# Listen For a while
sleep(900);
# Advanced
$radio->set_trigger('artist_title_changed', \&print_info);
# Run for an hour
my $time = time;
my $end_time = $time + 3600;
while (1) {
my $now = time;
if ($now > $end_time) {
last;
}
$radio->monitor;
}
$radio->close;
sub print_info {
my $channel = $radio->{'current_channel'};
my $artist = $radio->{'channels'}->{$channel}->{'artist'};
my $title = $radio->{'channels'}->{$channel}->{'title'};
my $length = $radio->{'channels'}->{$channel}->{'remaining'};
my $minutes = int $length/60;
my $seconds = $length % 60;
print "$channel $artist - $title - $minutes:$seconds";
}
DESCRIPTION
The XM PCR Radio is a USB serial device.
TODO
- Fully documented. There are methods to get back the signal strength, etc. - But they're not documented
BUGS
SEE ALSO
We use the following modules: Device::SerialPort - Unix/Linux Win32::SerialPort - Windows
AUTHOR
Peter Bowen, <peter-radio@bowenfamily.org>
Special thanks to others who figured out the protocol. I'm definately standing on the shoulders of giants.
COPYRIGHT AND LICENSE
Copyright (C) 2004 by Peter Bowen
XM, XM Direct, and PCR are trademarks of XM Sattelite Radio. Windows is a trademark of Microsoft Corp.
Use of this library may be limited by the XM Service and Subscription Terms availalble at http://www.xmradio.com/get_xm/customer_service.html.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.3 or, at your option, any later version of Perl 5 you may have available.