NAME

AnyEvent::DAAP::Server::Track - Base class of daap tracks

DESCRIPTION

This class abstractly represents one track. Usually you will want to use AnyEvent::DAAP::Server::Track::File::MP3 for local mp3 files.

METHODS

my $data = $track->data([ $pos ]);

Abstract method. Should return track's music data immediately. If $track allows ranged request, the $pos parameter may be supplied. If so, $track should return data from the position at $pos byte.

my $bool = $track->allow_range;

Override this to return true if this track allows ranged request (i.e. skip/pause). Defaults to return 0.

$track->write_data($connection, $res, $pos);

Override this method if you want to send data to clients asynchronously.

$connection argument is an AnyEvent::DAAP::Server::Connection. $connection->handle is an AnyEvent::Handle so call $connection->handle->push_write() this to send data.

$res argument is partially filled HTTP::Response, without $res->content and $res->content_length.

$pos argument is requested start-position of music data or undef.

After writing all data, you should send $connection->handle->push_shutdown().

$track->daap_***, $track->dmap_***

Read AnyEvent::DAAP::Server::Track::File::MP3's source to grab what these mean.

AUTHOR

motemen <motemen@gmail.com>

SEE ALSO

AnyEvent::DAAP::Server::Track::File::MP3

LICENSE

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