AnyEvent-DAAP-Server
    
    
  
  
  
view release on metacpan or search on metacpan
    is => 'rw',
    default => '13950142391337751523', # XXX magic value (from Net::DAAP::Server)
);
has tracks => (
    is  => 'rw',
    isa => 'HashRef[AnyEvent::DAAP::Server::Track]',
    default => sub { +{} },
);
has global_playlist => (
    is  => 'rw',
    isa => 'AnyEvent::DAAP::Server::Playlist',
    default => sub { AnyEvent::DAAP::Server::Playlist->new },
);
has playlists => (
    is  => 'rw',
    isa => 'HashRef[AnyEvent::DAAP::Server::Playlist]',
    default => sub { +{} },
);
    isa => 'Router::Simple',
    default => sub { Router::Simple->new },
);
__PACKAGE__->meta->make_immutable;
no Any::Moose;
sub BUILD {
    my $self = shift;
    $self->add_playlist($self->global_playlist);
}
sub publish {
    my $self = shift;
    $self->rendezvous_service; # build
}
sub setup {
    my $self = shift;
    foreach my $connection (@{ $self->connections }) {
        $connection->pause_cv->send if $connection->pause_cv;
    }
}
# XXX dmap_itemid is used as only its lower 3 bytes
sub add_track {
    my ($self, $track) = @_;
    $self->tracks->{ $track->dmap_itemid & 0xFFFFFF } = $track;
    $self->global_playlist->add_track($track);
}
sub add_playlist {
    my ($self, $playlist) = @_;
    $self->playlists->{ $playlist->dmap_itemid & 0xFFFFFF } = $playlist;
}
### Handlers
sub _server_info {
            [ 'dmap.returnedcount'       => scalar @$tracks ],
            [ 'dmap.listing'             => $tracks ]
        ]
    ]]);
}
sub _database_containers {
    my ($self, $connection, $req, $args) = @_;
    # $args->{database_id};
    my @playlists = map { $_->as_dmap_struct } $self->global_playlist, values %{ $self->playlists };
    $connection->respond_dmap([[
        'daap.databaseplaylists' => [
            [ 'dmap.status'              => 200 ],
            [ 'dmap.updatetype'          => 0 ],
            [ 'dmap.specifiedtotalcount' => 1 ],
            [ 'dmap.returnedcount'       => 1 ],
            [ 'dmap.listing'             => \@playlists ],
        ]
    ]]);
inc/Module/Install.pm view on Meta::CPAN
		);
	}
	my @exts = @{$self->{extensions}};
	unless ( @exts ) {
		@exts = $self->{admin}->load_all_extensions;
	}
	my %seen;
	foreach my $obj ( @exts ) {
		while (my ($method, $glob) = each %{ref($obj) . '::'}) {
			next unless $obj->can($method);
			next if $method =~ /^_/;
			next if $method eq uc($method);
			$seen{$method}++;
		}
	}
	my $who = $self->_caller;
	foreach my $name ( sort keys %seen ) {
		local $^W;
lib/AnyEvent/DAAP/Server.pm view on Meta::CPAN
    is => 'rw',
    default => '13950142391337751523', # XXX magic value (from Net::DAAP::Server)
);
has tracks => (
    is  => 'rw',
    isa => 'HashRef[AnyEvent::DAAP::Server::Track]',
    default => sub { +{} },
);
has global_playlist => (
    is  => 'rw',
    isa => 'AnyEvent::DAAP::Server::Playlist',
    default => sub { AnyEvent::DAAP::Server::Playlist->new },
);
has playlists => (
    is  => 'rw',
    isa => 'HashRef[AnyEvent::DAAP::Server::Playlist]',
    default => sub { +{} },
);
lib/AnyEvent/DAAP/Server.pm view on Meta::CPAN
    isa => 'Router::Simple',
    default => sub { Router::Simple->new },
);
__PACKAGE__->meta->make_immutable;
no Any::Moose;
sub BUILD {
    my $self = shift;
    $self->add_playlist($self->global_playlist);
}
sub publish {
    my $self = shift;
    $self->rendezvous_service; # build
}
sub setup {
    my $self = shift;
lib/AnyEvent/DAAP/Server.pm view on Meta::CPAN
    foreach my $connection (@{ $self->connections }) {
        $connection->pause_cv->send if $connection->pause_cv;
    }
}
# XXX dmap_itemid is used as only its lower 3 bytes
sub add_track {
    my ($self, $track) = @_;
    $self->tracks->{ $track->dmap_itemid & 0xFFFFFF } = $track;
    $self->global_playlist->add_track($track);
}
sub add_playlist {
    my ($self, $playlist) = @_;
    $self->playlists->{ $playlist->dmap_itemid & 0xFFFFFF } = $playlist;
}
### Handlers
sub _server_info {
lib/AnyEvent/DAAP/Server.pm view on Meta::CPAN
            [ 'dmap.returnedcount'       => scalar @$tracks ],
            [ 'dmap.listing'             => $tracks ]
        ]
    ]]);
}
sub _database_containers {
    my ($self, $connection, $req, $args) = @_;
    # $args->{database_id};
    my @playlists = map { $_->as_dmap_struct } $self->global_playlist, values %{ $self->playlists };
    $connection->respond_dmap([[
        'daap.databaseplaylists' => [
            [ 'dmap.status'              => 200 ],
            [ 'dmap.updatetype'          => 0 ],
            [ 'dmap.specifiedtotalcount' => 1 ],
            [ 'dmap.returnedcount'       => 1 ],
            [ 'dmap.listing'             => \@playlists ],
        ]
    ]]);
( run in 0.243 second using v1.01-cache-2.11-cpan-c333fce770f )