Netx-WebRadio
view release on metacpan or search on metacpan
lib/Netx/WebRadio/Station/Shoutcast.pm view on Meta::CPAN
Proto => 'tcp',
Type => SOCK_STREAM
)
or die $@;
$socket->blocking( $self->blocking || 0 );
$self->socket($socket);
}
=head2 process_chunk
Usage : process_chunk is called from receive() for processing audio-data-chunks
Purpose :
overload it
Returns : nothing
Argument : audio-data
Throws : nothing
See Also :
=cut
sub process_chunk {
my ( $self, $chunk ) = @_;
}
=head2 process_new_title
Usage : process_new_title is called everytime the station sends a new song-title
Purpose :
overload it
Returns : nothing
Argument : new song title
Throws : nothing
See Also :
=cut
sub process_new_title {
my ( $self, $title ) = @_;
print $title, "\n";
}
=head2 disconnected
Usage : is called when there is a write error on a socket
Purpose :
overload it.
The return value of this method is the value the failed method will return.
If you can 'fix' the error in this method you normaly return 1, otherwise 0.
You can also change the behaviour of Netx::WebRadio for a '0' return value.
Returns : what you want
Argument : nothing
Throws : nothing
See Also :
=cut
sub disconnected {
my $self = shift;
warn "disconnected " . (caller)[0] . " " . (caller)[2] . "\n";
return 0;
}
=head1 BUGS
=over 2
=item 1
doesn't work under Win32
=item 2
only works with stations that transmit metdata
=back
=head1 SUPPORT
=head1 AUTHOR
Nathanael Obermayer
CPAN ID: nathanael
natom-pause@smi2le.net
=head1 COPYRIGHT
This program is free software; you can redistribute
it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the
LICENSE file included with this module.
=head1 SEE ALSO
perl(1).
Netx::WebRadio
=cut
sub set_state {
my ( $self, $state ) = @_;
$self->{_state} = $state;
$self->pollmode( $Netx::WebRadio::Station::Shoutcast::pollmodes{$state} );
}
sub get_state {
my $self = shift;
return $self->{_state};
}
sub icySysread {
my ( $self, $socket, $in, $length ) = @_;
my $ret = sysread( $socket, $_[2], $length );
unless ( defined $ret ) {
if ( $! == EAGAIN ) {
return 0;
}
return undef;
( run in 1.053 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )