AnyEvent-DAAP-Server

 view release on metacpan or  search on metacpan

README.pod  view on Meta::CPAN

            [ 'dmap.listing'             => \@playlists ],
        ]
    ]]);
}

sub _database_container_items {
    my ($self, $connection, $req, $args) = @_;
    # $args->{database_id}, $args->{container_id}

    my $playlist = $self->playlists->{ $args->{container_id} }
        or return $connection->respond(404);

    my $tracks = $self->__format_tracks_as_dmap($req, scalar $playlist->tracks);
    $connection->respond_dmap([[
        'daap.playlistsongs' => [
            [ 'dmap.status'              => 200 ],
            [ 'dmap.updatetype'          => 0 ],
            [ 'dmap.specifiedtotalcount' => scalar @$tracks ],
            [ 'dmap.returnedcount'       => scalar @$tracks ],
            [ 'dmap.listing'             => $tracks ]
        ]
    ]]);
}

sub _database_item {
    my ($self, $connection, $req, $args) = @_;
    # $args->{database_id}, $args->{item_id}

    my $track = $self->tracks->{ $args->{item_id} }
        or return $connection->respond(404);

    $track->stream($connection, $req, $args);
}

sub __format_tracks_as_dmap {
    my ($self, $req, $tracks) = @_;

    my @fields = ( qw(dmap.itemkind dmap.itemid dmap.itemname), split /,|%2C/i, scalar $req->uri->query_param('meta') || '' );

    my @tracks;

lib/AnyEvent/DAAP/Server.pm  view on Meta::CPAN

            [ 'dmap.listing'             => \@playlists ],
        ]
    ]]);
}

sub _database_container_items {
    my ($self, $connection, $req, $args) = @_;
    # $args->{database_id}, $args->{container_id}

    my $playlist = $self->playlists->{ $args->{container_id} }
        or return $connection->respond(404);

    my $tracks = $self->__format_tracks_as_dmap($req, scalar $playlist->tracks);
    $connection->respond_dmap([[
        'daap.playlistsongs' => [
            [ 'dmap.status'              => 200 ],
            [ 'dmap.updatetype'          => 0 ],
            [ 'dmap.specifiedtotalcount' => scalar @$tracks ],
            [ 'dmap.returnedcount'       => scalar @$tracks ],
            [ 'dmap.listing'             => $tracks ]
        ]
    ]]);
}

sub _database_item {
    my ($self, $connection, $req, $args) = @_;
    # $args->{database_id}, $args->{item_id}

    my $track = $self->tracks->{ $args->{item_id} }
        or return $connection->respond(404);

    $track->stream($connection, $req, $args);
}

sub __format_tracks_as_dmap {
    my ($self, $req, $tracks) = @_;

    my @fields = ( qw(dmap.itemkind dmap.itemid dmap.itemname), split /,|%2C/i, scalar $req->uri->query_param('meta') || '' );

    my @tracks;



( run in 0.486 second using v1.01-cache-2.11-cpan-39bf76dae61 )